关于官改rom和闭源rec的一点杂谈(了解当前刷机现状)

绝客博客 浏览736

首先给出我的观点:除非你足够了解这位开发者,或者这位开发者放出了官改包的所有细节,并且这个官改包相同的版本/功能官方版rom没有提供,这个版本和功能是你的刚需,不要使用任何官改ROM,不要使用任何非开源twrp。

1:关于官改ROM

为什么要给出这样一个观点,首先一家手机开发商在正常运营的情况下,不会在官方ROM内塞入侵犯隐私,泄露个人信息的软件或后面(内鬼除外),软件开发商经过了大量的自我审查,并且这样的后门获利相对于手机营业额太小,一般来讲除了官方的广告不会有太大问题,并且塞入其他内容存在大量舆论风险,是厂商头上的一把达摩克利斯之剑。

但是个人开发者发布官改ROM,没有任何的经济来源支持,对ROM进行修改放出,表面上只是加入一些温控配置模块和root框架一类的东西,事实上刷写这样的ROM就是把你整个手机的全部文件权限全部交给了这位“和蔼可亲”的开发者,包括/system,/data等关键目录,开发者有足够多的机会挂上键盘记录器,社工程序,后门,广告推送一类的东西。这些东西是我们使用应用看不见的,开发者的隐蔽手段也有很多。

换句话来讲,你是把底裤都卖给了这些和蔼可亲的开发者。很多人说自己不怕隐私泄露,不怕社工。但是通过这些手段,开发者可以向境外建立非法链接,模拟传递非法信息,进行网络攻击,将个人信息提交到社工库乃至敏感地带。

image.png

开发者今天分发ROM收你五元钱,但更新ROM也是有成本的,人心也是会变的。哪天某位开发者资金链断裂,是否会利用可能的存在于他官改包中的后门进行一些令人不齿之事,谁也说不清楚。大家购买手机,实际上已经向厂商支付了后续系统维护的费用,更新维护系统是厂商的责任,而解锁之后大家也拥有对自己设备的控制权,可以刷写经过社区代码审查的开源ROM,也可以对系统信息进行修改,乃至编译内核替换(只要厂商遵守GPLv2协议实时更新了系统内核并开源),没有必要为了所谓“开发版名额”,“偷渡”,“温控模块”将自己手机的控制权与其他人分享,看似别人是大善人给你做ROM,实际上最后不知道谁是大善人。

1653967505126623.png

2:再讲讲TWRP。

最近社区由于骁龙888系列手机的发布同时带来了如下改动:厂商驱动与配置文件,Android 11/12内核较新,V-A/B结构的普及,导致迟迟没有开源的TWRP可用。以我不甚详细的调查,现在网络上流传的任何骁龙888小米机型的TWRP都是由国内某位知名开发者编写,只有刷入工具强制捆绑放出。

唯一的开源TWRP放出是K40等870机型因为与865机型使用了同样的sm8250处理器驱动及配置文件。sm8350机型迟迟没有TWRP,一方面是厂商放出配置文件不全面,一方面是市场占有量较已经低价大量铺开的sm8250机型差距较大,没有个人开发者适配并且开源,一方面是某些开发者虽然适配但是由于各种各样的原因拒绝或忽略开源。下文会提到我对dt,vt等配置文件开源协议的看法。


使用第三方闭源TWRP,一方面您在支持闭源TWRP这种行为,因为您以及其他开发者就失去了制作开源TWRP的动力及支持来源。一方面您也会遭遇与使用官改ROM同样的系统安全问题,甚至更为严重。众所周知,TWRP这个软件本身的主体文件是以GNUv3协议发布的。因此任何对TWRP的修改,以及再发布都要开放源代码。这里的源代码定义我贴一段GNU基金会网站上的非官方简体中文翻译。


  目标码形式的作品中“相应的源码”指所有修改作品及生成、安装、运行(对可执行作品而言)目标码所需的源码,包括控制上述行为的脚本。可是,其中不包括系统库、通用工具、未修改直接用于支持上述行为却不是该作品一部分的通常可得的自由软件。例如,相应的源码包含配合作品源文件的接口定义,以及共享库和作品专门依赖的动态链接子程序的源码。这里的依赖体现为频密的数据交换或者该子程序和作品其他部分的控制流切换。

  相应的源码不必包含那些用户可以通过源码其他部分自动生成的内容

也就是说,开发者一旦发布了自己的TWRP版本(这里的修改包括任何TWRP的适配),他必须附上自己修改后TWRP的源码,以及编译此TWRP所需的配置文件,以GPLv3协议发布,他无权限制你将源码用作任何用途,他对TWRP进行的任何修改都必须进入自由软件领域。如果使用没有遵守协议发布的TWRP分发,那么第一您在支持这种违反协议的,行为,而且您会面临严重的安全问题。


在写入卡刷包,写入magisk时,开发者有权限对您的bootloader做任何事情,包括但不限于上述官改ROM会包含的行为,还有在启动设备(postboot)时运行脚本等行为也被允许。这会带来更加严重的安全风险。基于对法律,版权的尊重,以及一个用户对自己权利的认知,我不建议也不提倡使用并分发第三方TWRP。以上是我对第三方TWRP和第三方ROM的一点看法。

另外回答几个问题。

1:于TWRP的官方仓库中device tree是以Apache 2.0协议发布这一事实。

我并不否认。我倾向于认为这是开发者自己犯的错误,也支持对这件事提出异议(尽管我自己并没有精力和意愿这样做),但是他仍然以一个开源协议进行了源代码的发布,这比国内某些开发者对协议的践踏与蔑视要好很多。

2:关于V-A/B分区MIUI机型的玩机问题。

事实上不需要任何的官改ROM也能实现大部分需求。更新刷包问题可以通过替换MIUI更新下载的卡刷包来刷入开发版。开发版可以使用官方root后授权magisk安装并重新刷入完整包来顶掉官方root。即便不使用开发版在解锁后也能使用fastboot工具刷入magisk修补后的boot.img。OTA也不需要任何形式的第三方recovery。方法如下,首先在magisk app内卸载magisk,这一行为并不会影响到已经加载到bootloader中的magisk拥有root权限。在OTA包更新完成之后将magisk刷入下一个槽位重启完成OTA更新。

3:关于V-A/B机制的争议简单回答一下。

V-A/B机制是谷歌引入的,是一个面向用户体验的机制。它相比单一分区减少了更新系统时手机不可用的时长,相对于A-B分区解决了占用空间大的问题,并且降低了升级失败导致手机不可用需要借助其他方式恢复到上一个系统版本的几率,对用户体验的优化显然是成功的。

4:关于开发者获利的问题。

开发者拥有自己源代码的知识产权,付出了劳动,获利是理所应当的,我也乐意为此付费。但是我反对利用qq收费等方式让用户必须为此付费,并由于要强制收费忽略拒绝源代码开源这件事。开发者可以插入捐助请求,通过呼吁的方式减少白嫖情况的发生而不是摆烂,任由这一切烂下去,连带开源社区一起。用户们也该反省,自己是否在获得方便之后回报那些方便你的开发者。另外,官改ROM的知识产权仍然属于厂商,你无法回避厂商应用厂商具有copyright的事实,那些嚷嚷自己copyright的开发者在收钱之前,是否应该按照贡献的多少给厂商分出你的收入,到时候开发者还能得到多少钱。黑灰地带的事情,还是按在黑灰地带自己黑灰下去的好。

5:关于开发版权限。

纯属小米自己[语言规制],在这里我建议大家通过其他方式刷内测ROM。用户付了钱,同样是给开发组付钱了,用户应该拥有任何MIUI发布的ROM使用权,二不熟为他们打工之后这一切才变得理所应当,请大胆使用MIUI的OTA CDN。

 End 

分享