Last updated 2 years, 3 months ago
Last updated 2 years, 3 months ago
Last updated 1 year, 10 months ago
从完整OTA包提取boot镜像
从微软商店安装python3.12;
pip install git+https://github.com/5ec1cff/payload\-dumper
payload_dumper \-\-partitions
init_boot https://dl.google.com/dl/android/aosp/husky-ota-ud1a.230803.022.b1-13ff7dfb.zip
即可在output目录找到init_boot.img。
以上示例中init_boot.img为8MiB,总下载大小1.7MiB,用时不到一分钟。
GitHub
GitHub - 5ec1cff/payload-dumper: Dump Android's payload.bin
Dump Android's payload.bin. Contribute to 5ec1cff/payload-dumper development by creating an account on GitHub.
与三星SAK不同,KeyAttestation应用决定不予信任华为根证书。
华为之前用的根证书
华为现在的根证书
https://developer.android.com/google/play/integrity/additional-tools#check-device
Play Integrity API 自测方法现在有了官方文档,不需要通过第三方app查看测试结果
Android Developers
Additional tools and support | Google Play | Android Developers
ASH_STANDALONE=1 /debug_ramdisk/.magisk/busybox/sh
使用技巧,magisk tmp目录内的busybox不需要root权限即可使用
magisk可能导致设备唯一标识符泄漏
受影响版本:27.0之前所有版本,以及特殊情况下27003以后所有版本
受影响设备:Android11及更高设备
详情
Android11起系统限制用户应用使用netlink的RTM_GETLINK读取网卡mac地址,这是通过自定义SELinux添加标志位实现的,该修改被Linux上游拒绝,是Android特定修改。
在27.0之前,magisk使用上游libselinux库,因此该Android特定标志在修补sepolicy时丢失,导致未能正常启用限制,任何应用都可以读取mac地址。
在27.0后,magisk为所有设备无条件启用限制。但是部分升级了新内核的设备支持处理该标志,用户空间内的sepolicy却没有做好准备,导致全部进程都受到限制,直观表现是无法连接WiFi。
27003起,magisk解析旧sepolicy的标志,复制到新sepolicy,原问题得以解决。
magisk的sepolicy实时修补功能从内核读取当前sepolicy,修补规则后重新加载sepolicy。由于内核存在bug,Android特定标志不会报告给用户空间,magisk读取出的当前sepolicy永远没有此特定标志。因此在sepolicy实时修补后,限制被禁用,所有应用可以读取mac地址。
可以用 https://android-review.googlesource.com/c/kernel/common/+/3009995 修复此内核bug,但补丁由于不明原因被Google要求应该提交给Linux上游,随后又说应该删除此Android特定功能。总之,该补丁目前被Google拒绝合并,我们也无能为力。比起无法连接WiFi,实时修补sepolicy后会泄露mac地址显得可以接受。
利用情况
我们观察到流行应用正在使用RTM_GETLINK获取设备mac地址。至少一个应用通过判断Android11+设备依然能读取mac地址检测magisk。
建议
Android11之前的设备不受影响。其它设备应该升级到magisk 27.0。如果无法使用WiFi,升级到27003。在27003+时,不要使用sepolicy实时修补,检查所有模块和root应用,要求它们的开发者切换到sepolicy.rule。
相关链接
magisk导致mac地址泄露 https://github.com/topjohnwu/Magisk/issues/7636
magisk破坏了WiFi https://github.com/topjohnwu/Magisk/issues/7764
magisk复制Android特定标志到新sepolicy https://github.com/topjohnwu/selinux/commit/48fcf8bba0635dc597bef75994294fd055d9f0ba
内核中Android特定标志的实现(只处理了 policydb_read() 函数,忘记处理 policydb_write() 函数) https://android.googlesource.com/kernel/common/+/dc34c9f193fd4e3476e0e9331f5fdacce6fbc6fc https://android.googlesource.com/kernel/common/+/bdf56fbea560eea1e9c2793d69ba13cca2596d7d
内核修复补丁,处理了 policydb_write() 函数 https://android-review.googlesource.com/c/kernel/common/+/3009995
致谢
aviraxp https://t.me/qianqianzhuang/33
ecc74d45-alpha 27002
https://github.com/LSPosed/Magisk/commits/15615027a2318f2c0a8c68b21cec51be0258c1fa
https://install.appcenter.ms/users/vvb2060/apps/magisk/distribution_groups/public 从 7826d752-alpha 起,可以通过网页直接下载,由 Azure 边缘网络提供文件分发支持。 从下一个版本起,应用内更新使用 appcenter,屏蔽 api.appcenter.ms 将无法检查更新,屏蔽 *.azureedge.net 将无法下载apk。GitHub文件仓库同时停止更新。
Docs
Visual Studio App Center Retirement - Visual Studio App Center
Visual Studio App Center is scheduled for retirement
使用可调试的官方Magisk app时,adb shell可以自动获取root权限
run-as com.topjohnwu.magisk
su
希望这个小技巧能对救砖有所帮助
Last updated 2 years, 3 months ago
Last updated 2 years, 3 months ago
Last updated 1 year, 10 months ago