这篇文章上次修改于 384 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
https://github.com/dqzg12300/MikRom
https://github.com/dqzg12300/MikRom/issues/40#issuecomment-1364508642
General110提供了移植到安卓12的版本:
下载:https://wwpl.lanzoue.com/iytaA0jbotwb 密码:389m
于是想编译一个高版本的MikRom,同时参考了下面的文章完成了编译
原issue提到是基于android-12.1.0_r22
改的,所以我选择拉取了android-12.1.0_r22
分支的源代码
不过参考文章的是android-12.1.0_r11
,实测用android-12.1.0_r22
可以完成编译,并且能正常使用(只测试了脱壳)
- 拉取
android-12.1.0_r22
分支的AOSP,具体略 - 从Driver Binaries for Nexus and Pixel Devices下载手机对应的驱动,并在AOSP根目录下解压
- 根据自己的型号找到
device/google/coral/flame/BoardConfig.mk
,添加下面的补充
BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
否则会遇到一个关于预编译二进制文件的错误,具体没有截图,是下面文件的PRODUCT_COPY_FILES
- build/make/target/product/handheld_system.mk
- 删除下面代码中关于
Lineage Services
的部分,因为General110是基于LineageOS改的,AOSP里面不需要这部分
- frameworks/base/services/java/com/android/server/SystemServer.java
- 在下面的文件中,末尾添加相关的内容:
- build/soong/scripts/check_boot_jars/package_allowed_list.txt
如果是安卓10,那么路径是下面这个:
- build/core/tasks/check_boot_jars/package_whitelist.txt
追加如下内容,否则也会遇到报错,具体忘了是啥
###################################################
cn\.mik
cn\.mik\..*
- 替换sepolicy文件,编译途中提示
32.0
路径下面这个和另外路径下的不一致,我这里选择直接用32下面这个覆盖原来的,不止这一个
- system/sepolicy/prebuilts/api/32.0/public/domain.te
- system/sepolicy/public/domain.te
- adbrootservice_aidl的问题
即frameworks/base/Android.bp
里面有adbrootservice_aidl
,会提示找不到,因为这个AOSP里面并没有,直接去掉即可
- NvAppProfileService
这个也是LineageOS的,AOSP里面没有,去掉相关的内容即可
- frameworks/base/core/java/android/content/pm/PackageParser.java
其他注意事项:
- 需要配套使用General110提供的压缩包的
MikManager.apk
,原版本有点bug,好像没适配安卓12 - 直接编译user版本是没有root的
- 要先编译
system/extras/su/Android.mk
得到xuuu
,等于另外搞个root,即mmm system/extras/su
,不过实际上说setgid失败,可能不适用AOSP - 每次改动之后记得先
make update-api
- 内存不够加swap,我是20G+8G
已有 5 条评论
大佬,问一下我的4XL现在是13系统,降级12失败,在fastbootd节目显示wait devices,能否使用您这个方法安装MIKROM,谢谢!
@XIANG 这种情况我也不清楚,谨慎尝试
@sfx 我现在只能刷13系统,问一下你有刷过13吗?
@XIANG 没有
@sfx 问一下这个setgid失败有什么影响吗?像编译一个玩玩