目录
建议:ubuntu18.04 或 ubuntu20.04
建议:最大磁盘大小300GB以上,内存16GB以上,4个CPU内核以上
打开主目录bin文件夹下的repo
将REPO_URL = 'https://gerrit.googlesource.com/git-repo'
改为REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
切换分支
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-12.0.0_r1
(要和自己手机里的版本进行对应,位置在 Android 版本中的版本号。进入该网页查看对应路径,然后修改android-12.0.0_r1
)
进入该网页找对所下载安卓源代码版本所对应的驱动,之前的版本和此处的驱动要与手机对应
点击链接中对应版本的Link
下载机器对应的驱动编译脚本文件并解压,得到extract-google_devices-crosshatch.sh
和extract-qcom-crosshatch.sh
(不同手机对应不同文件),放到源码的根目录执行(会让输入 I ACCEPT,回车别按的太快 之后ctrl+c 跳过),执行后会得到vender目录
./extract-qcom-crosshatch.sh(自行修改为手机对应驱动编译脚本文件)
./extract-google_devices-crosshatch.sh(自行修改为手机对应驱动编译脚本文件)
cd#(源代码文件名)
source build/envsetup.sh
make clobber
lunch
输入#后的数字 25(进入该网页找到手机对应的build配置,然后修改25
)
(make update-api ,该步可以不执行,在报错时可以通过更新 api 尝试解决)
make
export ANDROID_PRODUCT_OUT=/home/xxx/android12.0.0/out/target/product/crosshatch
(/home/xxx/android12.0.0/是编译过后的源代码目录 注意要用自己的路径替代)
mkdir android-kernel && cd android-kernel
repo init -u https://android.googlesource.com/kernel/manifest -b android-msm-crosshatch-4.9-android12
(将 android-msm-crosshatch-4.9-android12
替换为自己手机的内核版本)
repo sync
build/build.sh
报错
private/msm-google/scripts/extract-cert.c:21:10: fatal error: 'openssl/bio.h' file not found
#include
^~~~~~
在编译好的安卓源码目录下有一个out文件夹,将目录out/target/product/crosshatch目录下的*.img和kernel删除
然后备份安卓源码的目录device/google/crosshatch-kernel下的Image.lz4,用内核源码中的Image.lz4进行替换
回到安卓目录后进行:
可以在根目录终端中输入命令vi build.sh
之后编写脚本:
cd android-kernel/
build/build.sh
cd out/android-msm-pixel-4.9/private/msm-google/arch/arm64/boot
adb reboot bootloader
fastboot boot Image.lz4-dtb
编译完后观察framework.jar是否发生了更新
(framework.jar的路径:out/target/product/crosshatch/system/framework)
adb root
adb remount (将'/system' 部分置于可写入的模式)
(执行上述命令的路径随意)
adb reboot
adb root
adb remount
adb shell
cd system/framework
rm -r oat
rm -r arm
rm -r arm64
exit(退出adbshell模式)
adb push /home/xxx/android12.0.0/out/target/product/crosshatch/system/framework/framework.jar /system/framework
(将刚刚编译新生成的framework.jar导入手机中,framework.jar的路径需要修改成自己的路径,将 /home/xxx/android12.0.0/
换成自己的路径)
手机扫一扫
移动阅读更方便
你可能感兴趣的文章