Magisk alpha
57.4K subscribers
18 photos
231 files
72 links
Download Telegram
Forwarded from 陰角Anon與陽角Soyo的樂隊革命
app-release.apk
11.1 MB
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
ASH_STANDALONE=1 /debug_ramdisk/.magisk/busybox/sh

使用技巧,magisk tmp目录内的busybox不需要root权限即可使用
华为现在的根证书
华为之前用的根证书
与三星SAK不同,KeyAttestation应用决定不予信任华为根证书。
使用 termux 从完整OTA包提取boot镜像

pkg install python
pip install https://github.com/5ec1cff/payload-dumper/archive/refs/heads/master.zip
payload_dumper --out /sdcard/Documents --partitions init_boot https://dl.google.com/dl/android/aosp/husky-ota-ud1a.230803.022.b1-13ff7dfb.zip
即可在存储空间的Documents文件夹中找到init_boot.img。

以上示例中init_boot.img为8MiB,总下载大小1.7MiB,用时不到一分钟。
Forwarded from 陰角Anon與陽角Soyo的樂隊革命
app-release.apk
11.1 MB
Forwarded from LSPosed Bot
Shamiko-v1.0.1-341-release.zip
2.3 MB
版本号没变,不推送更新通道。
shamiko是alpha专版,因为旧版本有兼容性问题,需要一起升级。如果还在用旧版本alpha就别升级。
Forwarded from 陰角Anon與陽角Soyo的樂隊革命
app-release.apk
12.8 MB
Forwarded from 陰角Anon與陽角Soyo的樂隊革命
app-release.apk
12.2 MB
Forwarded from 陰角Anon與陽角Soyo的樂隊革命
关于部分本地模块成功安装后实际未刷入的说明

直接安装脚本已于4年前淘汰,在v20.4后应该替换为调用magisk内置安装函数的安装脚本,如果模块开发者坚持不更换脚本使用官方安装流程,那么适配magisk内部行为变化是开发者的责任。
另外,通过命令行安装或者在线更新模块强制执行官方安装流程,仅本地安装需要开发者更新模块安装脚本。

https://github.com/topjohnwu/Magisk/blob/master/scripts/module_installer.sh
Forwarded from 陰角Anon與陽角Soyo的樂隊革命
app-release.apk
10.8 MB
Forwarded from 陰角Anon與陽角Soyo的樂隊革命
Magisk alpha
Photo
新功能预告:认证设备唯一ID和导入keybox
测试apk在群内
旧式 SAR 设备,特征是无 RamDisk,根目录为 /dev/root 由内核直接挂载,升级到不再支持旧式 SAR 的新Android版本,第三方ROM有两种选择:
1. 切换到现代的 2SI 模式
2. 保持旧式 SAR 模式

对于情况1,很多第三方ROM没有把 skip_initramfs 标志从内核参数过滤掉,导致 magisk 依然识别为旧式 SAR 从而无法开机。
在近几个版本,magisk完全忽略skip_initramfs标志,通过判断RamDisk是否含有2SI相关特征选择 2SI 或旧式 SAR 模式。但是,
对于情况2,RamDisk也可能存在并且符合2SI特征。因为它实际上不使用,所以第三方ROM可能继承了AOSP内容而不是空的。

最终,我们认为没有简单的启发式方法判断设备实际采用哪种模式。决定在正式版本回退对带 skip_initramfs 内核参数2SI设备的支持,恢复旧行为。注意,这些行为改变均不影响标准设备,仅第三方ROM可能受到影响。
下个大版本,magisk将在修补boot时检测/dev/root并写入配置文件,取消在开机时猜测的做法。