Midnight.Coup 发表于 2021-11-18 21:12

矛盾与新生: 新 Magisk Canary [转sspai] ... Android 玩机药丸+1

原文地址: Android 玩机「神器」的矛盾与新生:Magisk Canary 更新详解



核心更新内容

    - John Wu 将继续维护 Magisk,开发重点放在 Magisk 更核心的功能上
    - Magisk 获取系统 root 权限、安装模块的能力和安装方式将不会改变
    - Magisk 将不再集成官方的模块库,现存的 GitHub 的模块库拟交给社区维护
    - 新推出 Zygisk,为模块提供更强大的 API;同时提供排除列表,让被排除的应用不受模块影响
    - MagiskHide 相关代码被移除,但用户仍可以通过一些方法通过 SafetyNet 测试。
和在线模块仓库说再见
用 Magisk 开发者的话来说,移除对官方模块库的集成实际上对开发者和用户都有好处。

原先集成的在线模块列表托管在 GitHub Magisk Modules Repo 上,由 John Wu 抽空清理和维护列表的模块。Wu 曾经集中移除一批字体修改模块,NotoCJK 就是那个时候被移出官方库的,这么做的理由是此时已经有修改系统字体的更强大的模块,这些模块显得多余。不过 Wu 的做法也引起了一些开发者的不满。

另一方面,官方库的模块整体质量低得令人发指。在柯帕的 模块推荐文章 中,他整理了官方库总共一百零几个模块,列为一个 表格,其中半数以上的模块年久失修,完全不可用,还有许多模块功能重复或者系统适配差。因此在这篇 2021 年写就的模块推荐文章中作者仅推荐了 20 多个模块,并非因为篇幅所限,而是官方库中还能正常工作的模块只有这么多。

Zygisk:Android 的「遗传信息」编辑工具
Android 将一个特殊的进程命名为 Zygote。每个应用进程都从一个名为 Zygote 的现有进程分叉。系统启动并加载通用框架代码和资源时,Zygote 进程随之启动。为启动新的应用进程,系统会分叉 Zygote 进程,然后在新进程中加载并运行应用代码。

Zygote 是 Android 所有其他应用进程的父进程,如果将代码注入此进程中,类似于编辑了受精卵中的遗传信息,更改将对所有应用生效。从原理上来说,Zygisk 的得名非常直白 —— 注入 Zygote 的 Magisk。

Zygisk 的开启方式很简单,在 Magisk Canary 中,通过设置 > Zygisk 即可启用。对于模块开发者而言,Zygisk 提供了更加方便易用的 接口和文档;但对于一般用户而言,由于 Zygisk 与 riru 模块(文章内有介绍)无法兼容,部分受影响的模块还需要等开发者进行适配。

当下,LSPosed 已经完成对 Zygisk 的适配,用户在开启 Zygisk 后可以通过刷入 LSPosed Zygisk 版本的方式来进行使用。当我们尝试在开启了 Zygist 的 Magisk 使用 Riru 相关模块时,会显示「由于 Zygisk 已被启用,此模块不再生效」字样。启用 Zygisk 则必须停用 Riru 系列模块(见下方第三张图),Zygisk 和 Riru 必须二选一的情况预计在新的稳定版本推出时仍然不会改变。


另外,当在设置中开启 Zygisk 时,会多出「排除列表」的选项。排除列表的作用是使模块不对列表中的应用生效。举例来说,某模块通过 Zygisk 相关的 API 修改了字体,若将应用 A 添加进排除列表,那么应用 A 内的字体是不会发生变化的,因为它被排除在模块起作用的进程之外。
虽然效果和 MagiskHide 有些类似,但排除列表并不会起到任何隐藏的作用,这也是 John Wu 反复强调的。



SafetyNet 墙高,MagiskHide 退场

MagiskHide 确实有着不可或缺的地位,它被设计用于隐藏 root,同时帮助设备通过 SafetyNet 验证。
一些 Canary 版用户一厢情愿地把排除列表当作 MagiskHide 也正反映了用户们对 MagiskHide 的留念。
然而玩机经验丰富的人应该知道,如果把 MagiskHide 当作 Magisk 最重要的功能的话,那么 Magisk 的病危通知书在 2020 年初就下达了。

SafetyNet 全称为 SafetyNet Attestation API ,是 Google 内置于 GMS 中的用于认证设备完整性状态的接口。使用 SafetyNet 的应用向 Google 服务应用发送请求,SafetyNet Attestation 此时会评估硬件设备的运行环境,然后向远程的 SafetyNet 服务器请求签名的评估结果证明 —— 代表基本完整性的 basicIntegrity 和代表处于已知的良好环境的 ctsProfileMatch。
一般来说,只有设备通过 SafetyNet 验证,金融、通信和游戏应用才能够正确运行。

一直到 2020 年 5 月,一些用户的 MagiskHide 功能突然失效:Google 商店就无法搜到某些应用;昨天还能正常运行今天就再也打不开《宝可梦 Go》;部分设备则在短暂「宕机」后恢复正常……
2021 年 2 月,Google 正式揭开了这个新技术的面纱 —— Hardware Key Attestation,基于硬件密钥的 SafetyNet 验证方法。这项技术将在受支持的设备上逐步推行,采用这项技术的设备安装 Magisk 后只能通过基本的 Basic 验证,无法通过更为严苛的 CTS 验证,它几乎也在第一时间宣判了 MagiskHide 的死刑。


Hardware Key Attestation 使用根植在设备硬件的密钥来与 Google SafetyNet 服务器进行匹配。具体到接口,SafetyNet API 中增加了一个新的返回项目 evaluationType,若此项目为 BASIC,则表明设备仍然是传统的验证方法,若为 HARDWARE_BACKED,则表明设备已经采用基于硬件的新验证方法。
对黑客们而言,Google 服务器自然不可能被修改,破解设备硬件密钥也因此变得极为困难。而对 MagiskHide 来说,它仍然可以伪造设备镜像依然完整的假象,但在新的验证机制下已无法隐藏设备已解锁 Bootloader 的事实。

第三方 ROM & Bootloader 解锁设备将无法通过 cts 认证。一些民间的开发者请求不要广泛推行此措施,因为这种技术也是对自定义 ROM 社区的毁灭性打击。不能通过 SafetyNet,意味着不能使用一些关键的银行、影视和游戏应用,极大限制了自定义 ROM 的生存空间。但目前来看,已经有越来越多的设备部署了这一安全技术。MagiskHide 更无法再凭一己之力「瞒天过海」了。因此当 Magisk Canary 移除了 MagiskHide 相关代码时,也有人对此毫不惊讶,这可以说是一场酝酿许久的退场。一方面,来自雇主 Google 的压力让 John Wu 不可能「自相矛盾」;另一方面,以往的 MagiskHide 已经没有能力应对 SafetyNet,在此领域投入更多的开发精力并不明智,也不是 Wu 希望做的。


以退为进:通过 SafetyNet 的新方案
(参考原文,SafetyNet Fix 方法原理就是通过伪装使 Google 采用 basic 级别的安全认证而不是 hardware)



作者总结
Zygisk 的实装似乎给 Magisk 模块铺就了一条充满希望的前路,而 MagiskHide 的退场却不甚乐观。虽然目前尚有替补队员,但如果 Google 和其他厂商推行更加严格的安全措施,那么 Android 玩机用户的未来是注定艰难的。

Magisk 仍将继续前进,在可以解锁 Bootloader 的设备上,我们依然拥有 root 的自由,但可以预想,这自由将会伴随着越来越多人无法接受的代价。

如果有那么一天,root Android 这份「虚假的自由」消失殆尽,我们或许还可以慰藉自己说:

「我至少曾经有过」
感觉真的可以提前跑路去适应 iOS(外区) 了 ,毕竟解锁 Bootloader 这点无论如何都无法隐藏。不能解锁的 Android 那是个🎤个人隐私收集器+广告接收器。


不不作恶这样的公司对 App 的恶行视而不见,坐视不管。对核心用户倒是一路追杀,从单独rec 分区到 A/B 再到虚拟 A/B 的改动也大幅挤压了 twrp 的生存空间。
作为靠广告盈利的公司上梁不正,国内四巨头的魔改系统塞满广告下梁歪。之前 Epic 起诉苹果的时候顺便起诉了 Google 还觉得其垄断的没那么厉害,再下去 Android 不如直接闭源得了,AOSP 都用不了 GMS 里最基础的完整的 Play 商店,而GMS 的垄断几乎不可能打破的。


战狼PTSD 发表于 2021-11-18 21:29

两个路人 发表于 2021-11-18 21:38

鸳鸳相抱 发表于 2021-11-18 21:43

双持就好了啊 一台root 一台不root

Nanachi 发表于 2021-11-18 21:50

别忘了之前谷歌严打GooglePlay跨区礼品卡的事,现在用外区正版软件反而是iOS更方便……

azraelwang 发表于 2021-11-18 21:54

啊,没有了MagiskHide这可怎么办啊,有些软件,像是“虎牙直播”都检测root环境,我是真的服了

—— 来自 Xiaomi Redmi K20 Pro Premium Edition, Android 11上的 S1Next-鹅版 v2.5.2-play

nanonya2 发表于 2021-11-18 22:05

鸳鸳相抱 发表于 2021-11-18 21:43
双持就好了啊 一台root 一台不root

我已经是iOS和Android双持了,一台root过的Android手机专门用来做iOS做不到的事

ipcjs 发表于 2021-11-18 23:19

屁股都歪到脸上了
A/B分区是给你快速升级系统用的,不然更新个补丁还要像Windows一样等半天?要限制第三方ROM为啥不学华为直接不给解锁bootloader?

到Android12以来,APP能够获取的权限,都影响到正常应用使用了,上架个应用能退回来N次,到你这就是总结成“视而不见”?

GMS垄断更是要笑死人,国内GMS能用?你刷抖音的时候有影响?







— from Google Pixel 6 Pro, Android 12 of S1 Next Goose v2.5.2-play

flymop 发表于 2021-11-18 23:32

不能root的Android,你和咸鱼有什么区别

souseiseki 发表于 2021-11-18 23:44

上次折腾ab分区把我整不会了半天

maritimus 发表于 2021-11-18 23:56

总结就是android越来越像iOS,这本来也无可厚非,安卓在隐私保护上确实在不断进步。但是国内的应用环境就。。。

Midnight.Coup 发表于 2021-11-19 00:23

azraelwang 发表于 2021-11-18 21:54
啊,没有了MagiskHide这可怎么办啊,有些软件,像是“虎牙直播”都检测root环境,我是真的服了

国内的 App 可以直接用 Magisk 的带 Hide 分支 Magisk Alpha
或者使用Zygisk 的 排除列表 功能
可以参看这个 如何绕过汇丰银行 App 的 root 检测?

OldGlory 发表于 2021-11-19 00:47

ios也有自己屎的地方,没得选

系统杀手 发表于 2021-11-19 08:48

Midnight.Coup 发表于 2021-11-19 00:23
国内的 App 可以直接用 Magisk 的带 Hide 分支 Magisk Alpha
或者使用Zygisk 的 排除列表 功能
可以参 ...

Zygisk的排除列表功能是不带欺骗的。 只是功能不起效,软件主动检测面具机器特征时一抓一个准。

KDN_Observer 发表于 2021-11-19 09:45

ipcjs 发表于 2021-11-18 11:19
屁股都歪到脸上了
A/B分区是给你快速升级系统用的,不然更新个补丁还要像Windows一样等半天?要限制 ...

我倒奇怪了,你个用pixel的人还觉得gms不够垄断?不会买了pixel装的全是国产毒瘤app吧

A/B分区快速升级?你真的升过?我fastboot线刷都它快好吧

trentswd 发表于 2021-11-19 10:31

root锁紧那就只能双持了

Buke 发表于 2021-11-19 10:46

之前发帖询问安卓机事宜,最后买了台二手pixel
感觉安卓机现在也越锁越紧,要不锁BL,要不就搞什么奇奇怪怪的分区方法。twrp刷不上,去官方一看说不支持了,只能ADB sideload勉强苟一苟
magimask也没有当年好用了。大概是因为各个厂商锁BL,第三方ROM感觉大部分也死了还剩下lineage OS这几个苟延残喘

Buke 发表于 2021-11-19 10:55

用过老爹的花为,我哥的猴米,同事的三丧(借来做测试,玩了一年还没还),还有我自己的pixel,感受就是我还是继续用iPhone吧,安卓现在这鬼样子还不如用iOS。

当然iOS12之前这个系统就是反人类的纯SB我没少骂,当时我还是安卓iOS双持,现在14.8我已经纯用iPhone了

r_ex 发表于 2021-11-19 13:11

都来支持PinePhone啥的啊

—— 来自 BlackBerry BBF100-4, Android 8.1.0上的 S1Next-鹅版 v2.1.2

huaxianyan 发表于 2021-11-19 13:20

本帖最后由 huaxianyan 于 2021-11-19 13:25 编辑

其实 rikka 说过 riru 和 zygisk 并不冲突,现在的问题可以说是 wu 主观造成的

另外 zygisk 虽然可以排除进程不注入,但是也不能得到 magisk 特性加持,对于某些需要 magisk 但是又需要隐藏的的场景就无能为力了

虽然对于目前的我来说 hide 和排除基本可以无缝,但是 riru 对我来说基本不可缺少

感觉用户会开始分化了,现在开发者也被逼着站台,之前很多依赖 riru 的模块现在同步更新 riru 和 zygisk 依赖,但是 rikka 的几个核心模块不做兼容的话,我感觉我很难转移到 zygisk 上

Midnight.Coup 发表于 2021-11-19 14:19

本帖最后由 Midnight.Coup 于 2021-11-19 14:22 编辑

huaxianyan 发表于 2021-11-19 13:20
其实 rikka 说过 riru 和 zygisk 并不冲突,现在的问题可以说是 wu 主观造成的

另外 zygisk 虽然可以排除 ...
感觉是 topjohnwu 就职在 Google 造成的,fork 一个兼容 Riru 还带 Hide 的 Magisk 比较理想

ゼカキユ 发表于 2021-11-19 15:18

本帖最后由 ゼカキユ 于 2021-11-19 15:20 编辑

再过两个版本号股沟怕是就像强制Powered by Android一样以安全为名强制设备制造商锁BL,反正制造商基本也都锁了,权限也收得越来越紧ROOT越来越困难

伊克路西安 发表于 2021-11-19 16:01

所以现在大家都在用什么版本的magisk?我换机的时候就下了个稳定版,看了这个帖子才发现原来5月份开始就没更新了。。

qwased 发表于 2021-11-19 16:08

2021年了还有吹谷歌是自由开放旗手的,开眼了

Litccc 发表于 2021-11-19 16:12

伊克路西安 发表于 2021-11-19 16:01
所以现在大家都在用什么版本的magisk?我换机的时候就下了个稳定版,看了这个帖子才发现原来5月份开 ...

canary或者alpha

Jumbohard 发表于 2021-11-19 16:30

说起来感觉检测safetyNet环境的大部分还是日系手游吧,国内的手游好像只是单纯检测一下root?相比之下各大银行app(尤其是建行)和12123的检测简直才是丧心病狂。感觉后续可能手机真的需要双持个mini iPhone当炼妖壶沙盒,安卓这边日用小而美+折腾了

—— 来自 OnePlus LE2100, Android 11上的 S1Next-鹅版 v2.5.2-play

ipcjs 发表于 2021-11-19 16:34

KDN_Observer 发表于 2021-11-19 09:45
我倒奇怪了,你个用pixel的人还觉得gms不够垄断?不会买了pixel装的全是国产毒瘤app吧

A/B分区快 ...

A/B分区点重启就能完成升级,线刷你来教教我,要多少步?

Google做开源又不是做慈善。开源AOSP,闭源GMS,谁规定做开源一定要公开所有源码?
Google确实在通过GMS掌控Android生态,但因为亚马逊、WSA、鸿蒙、和国内安卓生态的存在,即使脱离GMS,大多数APP依然可以正常运行。
即统一又分裂开源就是这样的

国内不装毒瘤连门都出不了,不用毒瘤我的p2还能再战10年,倒不如说我买新手机就是为了能流畅运行国产毒瘤



— from Google Pixel 6 Pro, Android 12 of S1 Next Goose v2.5.2-play

ipcjs 发表于 2021-11-19 16:36

qwased 发表于 2021-11-19 16:08
2021年了还有吹谷歌是自由开放旗手的,开眼了

都靠同行衬托

— from Google Pixel 6 Pro, Android 12 of S1 Next Goose v2.5.2-play

ipcjs 发表于 2021-11-19 17:41

@若荼泱 也就是说前两条你是赞同的喽?+1+1-1结果为啥是-1

“垄断”这个东西没有绝对的定义。要看和谁比吧。
说GMS比之前更“垄断”我是赞同的,越来越多的功能被放到GMS里面去了
但是和iOS比则并不那么“垄断”,你可以解锁bootloader,可以装apk,可以只用AOSP不集成GMS,没人限制你只能用WebKit的浏览器,没人限制你只能用Google官方的支付方式



若荼泱 发表于 2021-11-19 18:01

ipcjs 发表于 2021-11-19 17:41
@若荼泱 也就是说前两条你是赞同的喽?+1+1-1结果为啥是-1

“垄断”这个东西没有绝对的定义。要看 ...

是,要看和谁比了。你举的例子太烂了,不垄断的理由居然是国内没法用?这让我不得不扣。

ipcjs 发表于 2021-11-19 18:07

若荼泱 发表于 2021-11-19 18:01
是,要看和谁比了。你举的例子太烂了,不垄断的理由居然是国内没法用?这让我不得不扣。 ...

如果不是国内的特殊的安卓生态的存在,GMS肯定会更“垄断”呀

— from Google Pixel 6 Pro, Android 12 of S1 Next Goose v2.5.2-play

御坂14084 发表于 2021-11-19 18:56

御坂14084 发表于 2021-11-19 18:56

御坂14084 发表于 2021-11-19 18:56

御坂14084 发表于 2021-11-19 18:58

lestran 发表于 2021-11-19 19:25

已经决定下一部手机run iOS了,礼品卡至今氪不进去

—— 来自 HUAWEI YAL-AL00, Android 10上的 S1Next-鹅版 v2.5.2
页: [1]
查看完整版本: 矛盾与新生: 新 Magisk Canary [转sspai] ... Android 玩机药丸+1