QIANQIANZHUANG Telegram 33
前文再续。三个月之后,Magisk 终于修复了这个问题。方法也很简单直接:Magisk 在开机时修补 sepolicy 有两个阶段,第一阶段拦截 init 写入 /sys/fs/selinux/load 的过程,获取原本要写入的 sepolicy 数据库;第二阶段从数据库中 dump 出 policy,在加入 Magisk 自身与模块所需规则后重新编译数据库,再向内核写入。因此,Magisk 可以在第一阶段时读取 init 编译好的数据库携带的 config bits,在第二阶段时直接原样写入内核。

看起来所有问题都得到了修复。然而,根据用户反馈,部分新设备上又出现了任意应用都可以获取 MAC 地址的问题(Native Test 报 Permission Loophole),且这些设备都使用了 live patch (magiskpolicy —live)功能。live patch 的原理,是从 /sys/fs/selinux/policy 读取内核当前加载的 policy 数据库,加入所需条目后重新写入内核。而前述补丁已经按原样写入了 config bits,难道出问题的是内核?

经过进一步调查,我们确认这是一个 AOSP bug。谷歌撰写的两个加入 Android 专用 class 的提交(第一个第二个),只处理了 policydb_read() 函数,没有处理 policydb_write() 函数。也就是说,用户态可以向内核传递正确的 config,但却无法从内核导出正确的 config。在 live patch 时,内核输出的数据库并不包括前述两个 config,导致 Magisk 在回写内核时,也无法正确处理这两个 config。昨天向 AOSP 提交了补丁,希望能尽快被合并。

怎么修?我有想过在 Magisk 处理,要么在开机时手动保存从 init 读取到的 config,要么直接根据系统版本判断。但考虑到这其实并不是 Magisk 自身的问题,可能还是由谷歌来修复更为合适。对开发者的建议是,在任何情况下,都要优先使用 sepolicy.rule 来修补 sepolicy。



tgoop.com/qianqianzhuang/33
Create:
Last Update:

前文再续。三个月之后,Magisk 终于修复了这个问题。方法也很简单直接:Magisk 在开机时修补 sepolicy 有两个阶段,第一阶段拦截 init 写入 /sys/fs/selinux/load 的过程,获取原本要写入的 sepolicy 数据库;第二阶段从数据库中 dump 出 policy,在加入 Magisk 自身与模块所需规则后重新编译数据库,再向内核写入。因此,Magisk 可以在第一阶段时读取 init 编译好的数据库携带的 config bits,在第二阶段时直接原样写入内核。

看起来所有问题都得到了修复。然而,根据用户反馈,部分新设备上又出现了任意应用都可以获取 MAC 地址的问题(Native Test 报 Permission Loophole),且这些设备都使用了 live patch (magiskpolicy —live)功能。live patch 的原理,是从 /sys/fs/selinux/policy 读取内核当前加载的 policy 数据库,加入所需条目后重新写入内核。而前述补丁已经按原样写入了 config bits,难道出问题的是内核?

经过进一步调查,我们确认这是一个 AOSP bug。谷歌撰写的两个加入 Android 专用 class 的提交(第一个第二个),只处理了 policydb_read() 函数,没有处理 policydb_write() 函数。也就是说,用户态可以向内核传递正确的 config,但却无法从内核导出正确的 config。在 live patch 时,内核输出的数据库并不包括前述两个 config,导致 Magisk 在回写内核时,也无法正确处理这两个 config。昨天向 AOSP 提交了补丁,希望能尽快被合并。

怎么修?我有想过在 Magisk 处理,要么在开机时手动保存从 init 读取到的 config,要么直接根据系统版本判断。但考虑到这其实并不是 Magisk 自身的问题,可能还是由谷歌来修复更为合适。对开发者的建议是,在任何情况下,都要优先使用 sepolicy.rule 来修补 sepolicy。

BY 钱庄


Share with your friend now:
tgoop.com/qianqianzhuang/33

View MORE
Open in Telegram


Telegram News

Date: |

When choosing the right name for your Telegram channel, use the language of your target audience. The name must sum up the essence of your channel in 1-3 words. If you’re planning to expand your Telegram audience, it makes sense to incorporate keywords into your name. 3How to create a Telegram channel? Add the logo from your device. Adjust the visible area of your image. Congratulations! Now your Telegram channel has a face Click “Save”.! Users are more open to new information on workdays rather than weekends. Telegram iOS app: In the “Chats” tab, click the new message icon in the right upper corner. Select “New Channel.”
from us


Telegram 钱庄
FROM American