aosp单编单刷framework模块以及恢复remount

我修改了framework里的Activity.java,在他的onCreate()方法中加了一行log,这样其它activity调用的时候就会触发这行log。然后编译framework,会生成framework.jar,然后push framework.jar到机器验证。

1、Activity.java的onCreate方法中添加log

shell 复制代码
frameworks/base⟫ find -name Activity.java
./core/java/android/app/Activity.java

frameworks/base⟫ grep -nr "cmy" ./core/java/android/app/Activity.java
1818:   android.util.Log.d("cmy-test1", "Activity is onCreate");

2、单编framework

在在初始化完环境后,执行以下命令,这里我用的是make framework-minus-apex

bash 复制代码
# 进入工程根目录
make framework-minus-apex
# 或者
make framework
  • framework-minus-apex: 它编译 framework 的核心库,速度比全量编译快得多。
  • 结果文件 : 编译完成后,我这里生成的framework.jar路径为out\target\product\qssi\system\framework\framework.jar

3、adb push

正常情况下,你adb root,然后remount,再然后push到设备后,然后重启,framework.jar的修改就生效了。 但是我这里remount失败了,下面记录我恢复remount的过程:

bash 复制代码
C:\Users\cmy>adb push Z:\workspace\A8003B-NEW\LA.QSSI.15.0\LINUX\android\out\target\product\qssi\system\framework\framework.jar /system/framework
adb: error: failed to copy 'Z:\workspace\A8003B-NEW\LA.QSSI.15.0\LINUX\android\out\target\product\qssi\system\framework\framework.jar' to '/system/framework/framework.jar': remote couldn't create file: Read-only file system
Z:\workspace\A8003B-NEW\LA.QSSI.15.0\LINUX\android\out\target\product\qssi\system\framework\framework.jar: 1 file pushed, 0 skipped. 44.5 MB/s (43486481 bytes in 0.933s)

我这台设备是debug版本,可以root,但是remount就报错,说解锁bootloader:

bash 复制代码
C:\Users\cmy>adb remount
Device must be bootloader unlocked

首先打开 开发者模式中的OED解锁,这里OED解锁只是允许你去解锁,和真正执行解锁的操作两者不是一回事。

一、确认当前 Bootloader 状态

先执行:

复制代码
adb reboot bootloader

进入 fastboot 后:

复制代码
fastboot flashing get_unlock_ability

如果返回:

makefile 复制代码
get_unlock_ability: 1

说明 允许解锁

再执行:

复制代码
fastboot getvar unlocked

如果返回:

yaml 复制代码
unlocked: no

说明 Bootloader 仍然锁着


二、真正解锁 Bootloader

在 fastboot 模式执行:

复制代码
fastboot flashing unlock

设备屏幕会出现确认界面,用 音量键选择 Unlock,电源键确认。

等到设备启动后,就可以正常adb remount了。

相关推荐
灰鲸广告联盟31 分钟前
新老用户广告价值不同?差异化策略如何实现收益最大化
android·开发语言·flutter·ios
朱涛的自习室1 小时前
逃离“古法测试”:AI 测试的“三大定律”
android·前端·人工智能
QING6181 小时前
Android面试 —— 八股文(一)
android·面试·android jetpack
带娃的IT创业者1 小时前
围墙花园的隐形锁:当 reCAPTCHA 拒绝了“去谷歌化”的 Android 用户
android·隐私安全·人机验证·recaptcha·去谷歌化·grapheneos
awu的Android笔记2 小时前
Android 用户态实现 TCP 代理:从 SYN 到 FIN 的完整生命周期
android·tcp/ip
Geek_Vison2 小时前
技术实践:保险健康APP引入第三方小程序实战,如何构建一个安全可控的沙箱环境~
android·安全·小程序·uni-app·mpaas
2501_915918413 小时前
Python如何抓取HTTPS请求包的完整教程与代码示例
android·ios·小程序·https·uni-app·iphone·webview
. . . . .3 小时前
android开发
android
程序员看世界3 小时前
Kotlin协程是如何实现优先级机制的
android·kotlin
Carson带你学Android3 小时前
Kotlin放大招!官方 Skills 直接喂出「专家级」代码
android·前端·kotlin