前才准备好
motoX 连接
至于说要安装什么依赖什么工具的,可以等出问题时再apt-get,以下仅简述流程。
源码下载与其他的是一样的,git地址在这里,同样也是使用repo下载。
repo init -u git://github.com/LineageOS/android.git -b cm-14.1
<manifest>
<project name="LineageOS/android_device_lge_hammerheadcaf" path="device/lge/hammerheadcaf" remote="github" />
<project name="LineageOS/android_device_lge_hammerhead" path="device/lge/hammerhead" remote="github" />
<project name="LineageOS/android_kernel_lge_hammerhead" path="kernel/lge/hammerhead" remote="github" />
manifest>
repo sync
包括说以后需要更新源码也可以使用sync来同步 。
至于说git的配置啊,账号什么的,不在这篇文章的记录范围。
完成后就可以开始构建了
source build/envsetup.sh
breakfast hammerhead
如果上一步没啥问题,就会显示
获取驱动(这里可以下载)
为了加速以后的编译过程,可以开启ccache
ccache -M 50G
export JACK_SERVER_VM_ARGUMENTS=”-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx16g”
./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server
其中,-Xmx设置的是可申请的最大内存范围,按实际要求设置,如我是16G内存,就可以设置为16G。
export WITH_SU=true
brunch hammerhead
然后就是等待和出错的调试了。
cm的源码一个好处就是可以看到整个编译的进度,最后打完后会如下图所示
然后就可以去./out/target/product/hammerhead拿包了。
包也与aosp不同,这个更加友好,帮你把刷机包给做好了,不用fastboot去flash,直接使用twrp就可以了。
以后遇到问题再记录问题与解决办法。
创建模拟器
此处的模拟器并非使用lineageos来创建的,而是使用androidN的原生码码使用mini-emulator-x86_64来编译的,编译好后自动会设计ANDROID_PRODUCT_OUT的环境变量,如果需要切换加载的地方就切换到其他目录即可,否则就为类型“out/target/product/mini-emulator-x86_64”的目录,使用直接调用
emulator
就会自动创建模拟器了。
[link]
Info about hammerhead
Build for hammerhead
Install Lineage on hammerhead
root
commanders
可以使用mmm单独编译一个模块,使用重新打入到system.img当中,如
mmm packages/apps/Launcher2/
此处只记录一个我遇到的神奇情况。开始的时候在start-server时监控是会后台运行的,但在我更新了系统后,发现再start-server就不行了,会一直卡在那,我开始还以为是由于SSL啊还是什么鬼的版本问题导致的,折腾了老久,才发现原来卡住是正常的,显示
我以为这里已经出了问题,毕竟之前是不会卡住的,于是一直找 办法。
事实上这个问题有可能是与我手动install-server有关,如果在是uninstall-server所有server的情况下(包括home目录下的.jack-server,.jack,.jack-setting文件),直接进行brunch或者make,这个lunch server的过程能够正常,即不会卡住。所以在构建前还是不要多手,手动去开启和安装jack-server。
error: ro.build.fingerprint cannot exceed 91 bytes
xda上有人是这么回答的:
Edit build/tools/post_process_props.py. Change lines as follows:
PROP_NAME_MAX = 31
#PROP_VALUE_MAX = 91
PROP_VALUE_MAX = 128
Edit bionic/libc/include/sys/system_properties.h. Change lines as follows:
#define PROP_NAME_MAX 32
// #define PROP_VALUE_MAX 92
#define PROP_VALUE_MAX 128
Do
make clean
make
You can also run the second make command in parallel using syntax such as make -j8
但这样改了后会导致编译失败
原因在于还有文件未改全,导致assert失败。
Edit frameworks/native/cmds/installd/installd_deps.h . Change lines as follows:
//constexpr size_t kPropertyValueMax = 92u;
constexpr size_t kPropertyValueMax = 128u;