1.刷机
准备如下文件:
boot.img
dtbo.img
vbmeta.img
system.img
vendor.img
product.img
system_ext.img
手机开启“开发者选项”和“OEM 解锁”。
连接电脑,重启到 fastboot 模式
adb reboot bootloader
fastboot flashing unlock
fastboot flash boot boot.img
fastboot flash dtbo dtbo.img
**刷入带有禁用验证标志的 vbmeta,这是开机后能够 remount 的核心
fastboot flash vbmeta --disable-verity --disable-verification vbmeta.img
fastboot reboot fastboot
fastboot flash system system.img
fastboot flash vendor vendor.img
fastboot flash product product.img
fastboot flash system_ext system_ext.img
fastboot reboot bootloader
fastboot -w
fastboot reboot
2.在原生AudioManager中新增方法
需要加上FlaggedApi注解,然后用下列命令更新api:
m update-api
m api-stubs-docs-non-updatable-update-current-api
然后重新单编。
如果需要给app使用新增的方法,需要提供下面这里的jar,而不是编译完成的jar(out\target\profuct…):
lineageOS/out/soong/.intermediates/frameworks/base/framework/android_common/turbine-combined$检查是否包含新增方法:
C:\Program Files\Java\jdk-23\bin>javap-classpathG:\LineageOS_PKG\framework.jar android.media.AudioManager|findstr zzmeow public void zzmeowSetStreamVolume(int, int, int);C:\Program Files\Java\jdk-23\bin>检查androdi studio中用的是哪一个sdk, 以及项目现在配置的是哪一个sdk
我这边用的D盘下面的sdk 34, 找到对应路径,把原来的android.jar备份成android.jar.bak
然后直接把我们生成的framework.jar改名替换android.jar
最后在android studio中清除缓存,重新gradle sync就可以识别到新方法了: