Android R 和S版本的编译,首先是环境配置,配置好环境之后,需要的不仅仅是push framework.jar 这么简单,需要push的还有其生成的附属文件。如果是make framework 后面只能编译一个寂寞,需要 make framework-minus-apex services,才能生成对应的jar包。

1.环境配置(Ubuntu 18.04)

安装openjdk8-jdk

sudo apt-get install openjdk-8-jdk

安装fastboot

sudo apt-get install android-tools-fastboot

安装依赖库

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
sudo apt-get install libssl-dev

如果安装libesd0-dev报错 按照如下安装方式安装。 

​​​​​​​​​​​​​​Ubuntu18.04 安装libesd0-dev

2.编译Framework

进入源码根目录

1.source build/envsetup.sh 

2.lunch xxxx-userdebug

3.make  framework-minus-apex services  -j16

4.cp prebuilts/build-tools/linux-x86/bin/ninja out/host/linux-x86/bin/

如碰到无 out/host/linux-x86/bin/ 目录 可直接mkdir out/host/linux-x86/bin/

再执行上面的命令。

5.cp prebuilts/build-tools/linux-x86/lib64/* out/host/linux-x86/lib64/

如碰到无 out/host/linux-x86/lib64/ 目录 可直接mkdir out/host/linux-x86/lib64/

再执行上面的命令。

6.ln -sf out/combined-xxx.ninja build.ninja

7.编译之后可以用 ninja 命令实行快速编译

8.ninja framework-res -j16 (编译 framework-res.apk非必须选项)

比如 ninja  framework-minus-apex services  -j16 

执行完成上面的步骤,需要把如下文件对应的文件push到手机对应的版本里面,方便的模式是将下面的脚本保存为一个脚本直接执行比较方便。

3.push文件

ninja framework-minus-apex services   -j16
adb root
adb remount
#如果当前操作是在源码根目录下操作,该路径不用改动,否则要根据自己的实际路径修改
# xxx代表自己编译的版本
OUT=out/target/product/xxxx

adb push $OUT/system/framework/boot-framework.vdex /system/framework/

adb push $OUT/system/framework/arm/boot-framework.art /system/framework/arm
adb push $OUT/system/framework/arm/boot-framework.oat /system/framework/arm
adb push $OUT/system/framework/arm64/boot-framework.vdex /system/framework/arm64/

adb push $OUT/system/framework/arm64/boot-framework.art /system/framework/arm64
adb push $OUT/system/framework/arm64/boot-framework.oat /system/framework/arm64
adb push $OUT/system/framework/arm/boot-framework.vdex /system/framework/arm/

adb push $OUT/system/framework/services.jar system/framework/
adb push $OUT/system/framework/framework.jar system/framework/
adb push $OUT/system/framework/framework-res.apk system/framework/


adb reboot

GitHub 加速计划 / ni / ninja
5
0
下载
a small build system with a focus on speed
最近提交(Master分支:6 天前 )
3844671f Fix MacOS github builds. 7 天前
ef65f36d MacOS builds are now failing at the "Install dependencies" step because Homebrew is now complaining that cmake is already installed on the system. It also warns about p7zip, so remove them both from the list of installed packages to resolve the problem. The macos.yml workflow file uses the macos-13 image that was updated recently. The latest succesful MacOS action on https://github.com/ninja-build/ninja [1] used release 20250818.1405, while the failing ones are using release 20250901.1455 [2]. From the corresponding image release pages, it seems that Homebrew was updated from 4.5.13 to 4.6.7 between the two, so assuming here this is why this started to happen. [1] https://github.com/ninja-build/ninja/actions/runs/17216151150/job/48840158004#step:1:15 [2] https://github.com/ninja-build/ninja/actions/runs/17460573439/job/49584121159#step:1:15 8 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐