如题,lineageos 用 kernelflash 刷入了 anykernel3.zip 的包,刷到一半手机自动重启了,现在重新刷入原本的 boot 也无法启动,也尝试过完整刷入系统。
有开机 log ,看上去都卡在同一个地方。
日志文件较大,节选了下面的信息,如果有熟悉的兄弟请留下联系方式请教一下,薄酬 50 红包,谢谢。
03-18 18:13:08.535 0 0 I init : starting service 'vendor.ipacm'...
03-18 18:13:08.537 0 0 I init : ... started service 'vendor.ipacm' has pid 5719
03-18 18:13:08.556 0 0 I init : Service 'vendor.ipacm' (pid 5719) exited with status 0
03-18 18:13:08.556 0 0 I init : Sending signal 9 to service 'vendor.ipacm' (pid 5719) process group...
03-18 18:13:08.556 0 0 I libprocessgroup: Successfully killed process cgroup uid 1001 pid 5719 in 0ms
03-18 18:13:08.556 0 0 E init : process with updatable components 'vendor.ipacm' exited 4 times before boot completed
03-18 18:13:08.557 0 0 I init : processing action (sys.init.updatable_crashing=1) from (/system/etc/init/flags_health_check.rc:10)
03-18 18:13:08.557 0 0 I init : starting service 'exec 129 (/system/bin/flags_health_check UPDATABLE_CRASHING)'...
03-18 18:13:08.558 0 0 I init : ... started service 'exec 129 (/system/bin/flags_health_check UPDATABLE_CRASHING)' has pid 5720
03-18 18:13:08.558 0 0 I init : SVC_EXEC service 'exec 129 (/system/bin/flags_health_check UPDATABLE_CRASHING)' pid 5720 (uid 1000 gid 1000+0 context default) started; waiting...
03-18 18:13:08.565 5720 5720 I flags_health_check: ServerConfigurableFlagsReset reset_mode value: 1
03-18 18:13:08.565 5720 5720 I flags_health_check: ServerConfigurableFlagsReset updatable crashing detected, resetting flags.
03-18 18:13:08.570 0 0 I init : Service 'exec 129 (/system/bin/flags_health_check UPDATABLE_CRASHING)' (pid 5720) exited with status 0 waiting took 0.012000 seconds
03-18 18:13:08.570 0 0 I init : Sending signal 9 to service 'exec 129 (/system/bin/flags_health_check UPDATABLE_CRASHING)' (pid 5720) process group...
03-18 18:13:08.570 0 0 I libprocessgroup: Successfully killed process cgroup uid 1000 pid 5720 in 0ms
03-18 18:13:09.621 0 0 E FG : fg_psy_get_property: unsupported property 76
03-18 18:13:09.627 0 0 E FG : fg_psy_get_property: unsupported property 76
03-18 18:13:09.631 0 0 W healthd : battery l=100 v=4369 t=29.2 h=2 st=2 c=78000 fc=2878000 cc=0 chg=u
03-18 18:13:09.636 0 0 E FG : fg_psy_get_property: unsupported property 76
03-18 18:13:09.773 750 1012 D BootAnimation: Playing files = /product/media/bootanimation.zip/part1, Requested repeat = 0, playUntilComplete = true
03-18 18:13:10.311 0 0 I sysrq : Show Blocked State
03-18 18:13:10.311 0 0 I : task PC stack pid father
03-18 18:13:10.311 0 0 I kworker/u16: 1 D ffffff955ec85a64 0 83 2 0x00000010
03-18 18:13:10.311 0 0 I Workqueue: mpm msm_mpm_work_fn
03-18 18:13:10.311 0 0 I Call trace:
03-18 18:13:10.311 0 0 I : [<ffffff955ec85a64>] __switch_to+0xa8/0xb4
03-18 18:13:10.311 0 0 I : [<ffffff955fcfc990>] __schedule+0x578/0x7f4
03-18 18:13:10.311 0 0 I : [<ffffff955fcfc3f8>] schedule+0x70/0x90
03-18 18:13:10.311 0 0 I : [<ffffff955fcfff54>] schedule_timeout+0x3c/0x308
03-18 18:13:10.311 0 0 I : [<ffffff955fcfdbdc>] wait_for_common+0xb0/0x130
03-18 18:13:10.311 0 0 I : [<ffffff955fcfdb24>] wait_for_completion+0x14/0x1c
03-18 18:13:10.311 0 0 I : [<ffffff955f192364>] msm_mpm_work_fn+0x50/0xd4
03-18 18:13:10.311 0 0 I : [<ffffff955ecc9190>] process_one_work+0x1b0/0x478
03-18 18:13:10.311 0 0 I : [<ffffff955ecc8c68>] worker_thread+0x240/0x484
03-18 18:13:10.311 0 0 I : [<ffffff955eccdc68>] kthread+0xf4/0x13c
03-18 18:13:10.311 0 0 I : [<ffffff955ec83310>] ret_from_fork+0x10/0x40
03-18 18:13:10.311 0 0 I : mdss_dsi_event D ffffff955ec85a64 0 175 2 0x00000010
03-18 18:13:10.311 0 0 I Call trace:
03-18 18:13:10.311 0 0 I : [<ffffff955ec85a64>] __switch_to+0xa8/0xb4
03-18 18:13:10.311 0 0 I : [<ffffff955fcfc990>] __schedule+0x578/0x7f4
03-18 18:13:10.311 0 0 I : [<ffffff955fcfc3f8>] schedule+0x70/0x90
03-18 18:13:10.311 0 0 I : [<ffffff955f09a154>] dsi_event_thread+0xc4/0x3a8
03-18 18:13:10.311 0 0 I : [<ffffff955eccdc68>] kthread+0xf4/0x13c
03-18 18:13:10.311 0 0 I : [<ffffff955ec83310>] ret_from_fork+0x10/0x40
03-18 18:13:10.311 0 0 I msm-core: sampli D ffffff955ec85a64 0 541 2 0x00000010
03-18 18:13:10.311 0 0 I Call trace:
03-18 18:13:10.311 0 0 I : [<ffffff955ec85a64>] __switch_to+0xa8/0xb4
03-18 18:13:10.311 0 0 I : [<ffffff955fcfc990>] __schedule+0x578/0x7f4
03-18 18:13:10.311 0 0 I : [<ffffff955fcfc3f8>] schedule+0x70/0x90
03-18 18:13:10.311 0 0 I : [<ffffff955fcfff54>] schedule_timeout+0x3c/0x308
03-18 18:13:10.311 0 0 I : [<ffffff955fcfdbdc>] wait_for_common+0xb0/0x130
03-18 18:13:10.311 0 0 I : [<ffffff955fcfdb24>] wait_for_completion+0x14/0x1c
03-18 18:13:10.311 0 0 I : [<ffffff955fcfa688>] do_sampling+0xbc/0x244
03-18 18:13:10.311 0 0 I : [<ffffff955eccdc68>] kthread+0xf4/0x13c
03-18 18:13:10.311 0 0 I : [<ffffff955ec83310>] ret_from_fork+0x10/0x40
03-18 18:13:10.311 0 0 I : mdss_fb0 D ffffff955ec85a64 0 785 2 0x00000010
03-18 18:13:10.311 0 0 I Call trace:
03-18 18:13:10.311 0 0 I : [<ffffff955ec85a64>] __switch_to+0xa8/0xb4
03-18 18:13:10.311 0 0 I : [<ffffff955fcfc990>] __schedule+0x578/0x7f4
03-18 18:13:10.311 0 0 I : [<ffffff955fcfc3f8>] schedule+0x70/0x90
03-18 18:13:10.311 0 0 I : [<ffffff955f0d5f18>] __mdss_fb_display_thread+0x154/0x5fc
03-18 18:13:10.311 0 0 I : [<ffffff955eccdc68>] kthread+0xf4/0x13c
03-18 18:13:10.311 0 0 I : [<ffffff955ec83310>] ret_from_fork+0x10/0x40
03-18 18:13:10.311 0 0 I sysrq : Show backtrace of all active CPUs
03-18 18:13:10.311 0 0 I : Backtrace for cpu 7 (current):
03-18 18:13:10.311 0 0 I : CPU: 7 PID: 5209 Comm: watchdog Not tainted 4.4.302-perf+ #1
完整 log: https://f.ws59.cn/f/e70xi28hdcm
补充下后续。首先,希望不要有人是因为要搜索解决方法而找到这个帖子的。
其次,bad ending。数据丢失,wipe data分区后开机了。
事故分析
一开始应该是因为在系统中刷新内核的时候软重启导致损坏了某些内容导致无法开机。 关于@SGRRYRS 发现的‘keystore2’的问题,估计当时开机就因为密钥不存在,导致加密的数据丢失了。
至于keystore2的问题,我的猜测是因为我胡乱操作下使用了twrp的恢复context 或者是/system/bin/restorecon -Rv /data、这是其中一部分原因。
另外的原因应该是软重启应该是损坏了/data/misc和/data/vendor、/data/system这三个文件夹的元数据,我在排查通过对比另一台正常启动的android系统和android的源码发现,不少本应该是system:system用户组和用户持有文件都变成了root:root用户所持有。
在recovery下为系统打开adb调试:https://gist.github.com/varhub/7b9555cdd1e5ad785ffde2300fcfd0bd
uesrdebug标志构建的系统,比如lineageos、开机动画时候就会有adbd在运行,可以使用adb shell执行一些操作、或者用adb logcat获取到早期开机的日志,我觉得在引导循环的时候调试是非常有用的一个方案,要是平常没有开adb调试或者没有注册设备,上面这个方案就用得上。
1
JayZXu 216 天前 1
是用的什么手机刷的?
感觉这种刷机反复重启,多半还是 vbmeta 的问题吧 虽然 anykernel3 能自动修补 vbmeta ,但是很多手机还会校验 vbmeta 的签名 |
2
amrnxcdt OP @JayZXu #1 一加 5 ,已解锁的设备,组后看到 anykernel3 的 log 提示是在刷入 boot ,然后手机就软重启了。尝试清空过/system 重新刷入了一个旧版本(之前能正常启动的)系统。也是卡在同样的位置。
|
4
winzkh 216 天前 1
要不试试删除/data/adb 呗,anykernel3 配置中如果 do.systemless=1 的话,会创建一个 magisk 模块,可能是这个影响了系统启动
|
6
Musong 216 天前 1
init_boot 刷回系统的试试呢?
|
8
azuyume 216 天前 1
一加 5 机型太老了不能刷 Anykernel3 。KernelSU 官网对非 GKI 设备有其他人编译的一加 5 内核,要刷这个才行。
|
9
amrnxcdt OP @azuyume #8 我知道,anykernel3.zip 是我自己编译的内核。但是现在看上去并不是内核问题,因为我刷回 lineageos 官方的 boot.img 也无法启动。
看起来是刷入内核的途中软重启不知道弄坏了什么。 |
10
SGRRYRS 216 天前 1
等一下,我捋一下。首先可以确定,Anykernel3 这都随便乱来的,兼容性好到离谱,我之前的 Nexus6P 都刷了不少,也是自编译的内核。(直接解压现成的 XDA 上的内核,把我编译的放进去,哈哈哈哈)还有,你不会是在系统里刷的内核吧,这个 kernelflash 怕是那个刷写的软件?综上,一方面可能和你刷入方式有关,总不能还破坏了 vendor 那了吧。容我再看看日志
|
11
amrnxcdt OP @SGRRYRS #10
没错,anykerenl3 配置是手动写好的,不匹配是刷不进去的。 kernel flash 指这个工具: https://github.com/capntrips/KernelFlasher 以上这两个都用了有一段时间了,不知道为什么突然翻车。 现在怀疑的是/data 有损坏的设置,因为已经尝试清空所有除/data 以外的分区了。包括/system 和/vendor ,然后重新刷入完整的系统,一样是卡在相同的地方。 |
12
SGRRYRS 216 天前
@amrnxcdt 哈哈,是这个啊,之前在 Fdroid 里还看见过(设计很好看嘛),我觉得它的问题可能还蛮大的,毕竟一加 5 这个原生也不支持 PT(后续倒是弄上了),更是 A only 的设备,难免有点水土不服。不过,我还是更关心问题本身,你是要找回原系统的数据,还是说只是简简单单要修好设备,让它可以启动?
|
14
SGRRYRS 216 天前
@amrnxcdt 那只能一条条排除,可能要点时间了,试着 wipe 一下缓存什么的。对了,你之前提到的“刷入完整的系统”是 Recovery 里重新刷入卡刷包还是什么其他的
|
15
SGRRYRS 216 天前
还是先 twrp 里做个备份,让系统可以启动了再回去折腾
|
17
amrnxcdt OP @SGRRYRS #15 twrp 备份对于我说已经没用了,因为我启用了工作资料,所以程序数据的文件在 twrp 下都是加密的,比如/data/data/,内置储存等。
|
18
SGRRYRS 216 天前
@amrnxcdt emmm 这默认加密是真难受,看来你启动不了的原因应该就在这了,可是要保数据又不可能格式化,死循环。BTW ,你的 lineage os 不是最新版,5.20 还有一个更新,实在不行试试看那个。
|
19
SGRRYRS 216 天前 1
@amrnxcdt 再细细看了日志 Service 'keystore2' (pid 1065) received signal 6 就是加密这边的问题了,它启动后续的也启动不了,晕~
|
20
SGRRYRS 216 天前
P.S. 站内居然有讨论这个的: https://www.v2ex.com/t/926342
|
23
amrnxcdt OP @SGRRYRS #22 有进展了,keystore2 的问题解决了,虽然现在还是没能开机。
keystore2 的问题是因为/data/misc/keystore/ 这个目录下的文件所有者变成了 root:root 。改成 keystore:keystore 就可以正常启动了。参考:https://stackoverflow.com/questions/71108966/andoid-12-keystore-user-0-missing-foder 这是修 keystore2 后的 log: https://f.ws59.cn/f/e7cuiqj2ktx 上面这个日志也是会报告 ```` 01-01 22:11:14.203 760 760 E keystore2: system/security/keystore2/src/error.rs:200 - system/security/keystore2/src/maintenance.rs:177: getting keymint device 01-01 22:11:14.203 760 760 E keystore2: 01-01 22:11:14.203 760 760 E keystore2: Caused by: 01-01 22:11:14.203 760 760 E keystore2: 0: system/security/keystore2/src/globals.rs:339: Cannot connect to Keymint 01-01 22:11:14.203 760 760 E keystore2: 1: system/security/keystore2/src/globals.rs:250: Trying to get Legacy wrapper. 01-01 22:11:14.203 760 760 E keystore2: 2: Error::Km(r#HARDWARE_TYPE_UNAVAILABLE) 01-01 22:11:14.203 736 736 E vold : keystore2 Keystore earlyBootEnded returned service specific error: -68 01-01 22:11:14.203 0 0 E vold : keystore2 Keystore earlyBootEnded returned service specific error: -68 ```` 我找了之前这个手机正常启动时候的 dmesg 发现里面也会报 ```` [ 10.272954] incfs: IncFs_Features: failed to open features dir, assuming v1/none.: No such file or directory [ 10.307151] vold: keystore2 Keystore earlyBootEnded returned service specific error: -68 [ 10.307938] init: Service 'exec 5 (/system/bin/vdc keymaster earlyBootEnded)' (pid 794) exited with status 0 waiting took 0.043000 seconds ```` keystore2 现在应该是正常的。 |