编译 Android 11源码

参考小米6 lineageos官方编译文档:https://wiki.lineageos.org/devices/sagit/build

单独编译 framework

以LineageOS18.1(Android 11)为例:

1、在源码根目录执行:

bash 复制代码
make framework-minus-apex

2、用生成的framework.jar替换系统的framework.jar

bash 复制代码
adb root
adb remount
adb push framework.jar /system/framework/framework.jar

3、重启zygote

bash 复制代码
adb shell stop
adb shell start

如果卡开机界面不能进入系统,修改下面配置,并编译完整系统刷机,再编译framework.jar单独替换:

1、build/make/core目录下board_config.mk文件

1)WITH_DEXPREOPT := ture 改为 WITH_DEXPREOPT := false

2、build/make/core目录下dex_preopt_config.mk文件

1)WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY ?= ture 改为 WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY ?= false

2)注释下面代码:

bash 复制代码
ifeq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
   ifneq (true,$(WITH_DEXPREOPT))
     ifneq (true,$(WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY))
       $(call pretty-error, DEXPREOPT must be enabled for user and userdebug builds)
     endif
   endif
 endif
相关推荐
叶辞树1 小时前
死锁问题分析
android
TimeFine2 小时前
让 Codex “用上”Android Studio:JetBrains MCP Server 接入与实践
android
__Witheart__3 小时前
3568 Android 设置首次烧录后 usb otg 口模式
android·adb·rockchip
AFinalStone4 小时前
Android 7系统编译与刷机(三)从编译产物到高通刷机包
android·系统编译
AFinalStone4 小时前
Android 7系统编译与刷机(四)QFIL刷机工具详解
android·系统编译
plainGeekDev5 小时前
JUnit 4 → JUnit 5 + Kotlin
android·java·kotlin
plainGeekDev5 小时前
Mockito → MockK
android·java·kotlin
5 小时前
使用ffmpeg将mp4视频转为m3u8格式
android·ffmpeg·音视频
00后程序员张5 小时前
使用Instruments工具深入分析iOS应用性能与启动时间优化
android·macos·ios·小程序·uni-app·cocoa·iphone
zbmwa6 小时前
jetpack compose 副作用 snapshotFlow
android