1.ninja命令安装:
项目中执行~/KXXXAA1/android/:
mkdir -p ~/bin ~/lib64
cp prebuilts/build-tools/linux-x86/bin/ninja ~/bin/
cp prebuilts/build-tools/linux-x86/lib64/libc++.so ~/lib64/
cp prebuilts/build-tools/linux-x86/lib64/libjemalloc.so ~/lib64/
bashrc文件最后增加命令findm:
alias findm="grep -rnws --include='*.[mb][kp]' 'LOCAL_MODULE\|LOCAL_PACKAGE_NAME\|name:'"
(非必须)
2.编译命令:
ninja -f out/combined-KXXXAA1.ninja services
生成:
[34/34] Copy: out/target/product/KXXXAA1/system/framework/oat/arm64/services.odex
ninja -f out/combined-KXXXAA1.ninja framework
生成:
[1891/1891] Copy: out/target/product/KXXXAA1/system/framework/arm64/boot.art
3.替换jar包
以编译services为例
adb remount
adb push services.jar /system/framework/services.jar
adb push services.jar.prof /system/framework/services.jar.prof
adb push services.vdex /system/framework/oat/arm64/services.vdex
adb push services.odex /system/framework/oat/arm64/services.odex
adb push services.art /system/framework/oat/arm64/services.art
adb reboot
adb push Z:\KXXXAA1\android\out\target\product\KXXXAA1\system\framework /system/
adb reboot