[搬运][修复] FED-Patcher v7 (禁用强制加密补丁) 没重复!别删!

原帖作者: gladiac, 中级会员升级于2015年9月13日, 上午10:29

大家好,

我制作了一个工具给nexus 9,让它用通用的方法摆脱强制加密(意味着无论你在用什么rom它都应该有用). 这通过破解已安装的boot.img来完成.

背景
Android CDD (Compatibility Definition Document)建议所有的设备都应该默认开启 完全的磁盘加密(FDE). 尽管我赞同每一步都是朝着更加安全的方向但我仍然要批评这种做法. FDE是有代价的. 加密需要时间,因为一些组成必须要解密和加密它们存储在磁盘上的东西,在nexus 9 (aka flounder)的某种程度和某种情况,这是处理器的任务. 尽管nexus 9的处理器拥有两颗高速的核心,但你仍然能轻易的感觉到FDE开关状态下的区别. I/O更快并且启动时间只要一半. (我没测过)
cyanogenmod’s gerrit有一个和这个话题有关的进行中的讨论. 尽管阅读它很有趣,但很明显,观点的交换不会得到任何有用的结果.
由于性能对我很重要,而且我的平板不需要额外的安全,于是我制作了FED-Patcher (禁用强制加密补丁)

它如何工作?
FED-Patcher是一个简单的卡刷包,应该运行在一个集成busybox的recovery里(像 TWRP 或者 CWM). 它会这么做:

  1. 检查设备是否兼容
  2. 转储当前已安装的boot.img.
  3. 解包上述转储. 解包工作会通过一次自我编译完成, 静态连接版本的unmkbootimg.
  4. 它会破解包含强制加密flags的filesystem tables. 这会把"强制加密"改成"不可加密".
  5. 然后它破解filesystem tables为不使用dm-verity. 这通过移除"verify" mount-parameter.
  6. 创建一个新的boot.img. 解包工作会通过一次自我编译完成, 静态连接版本的mkbootimg.
  7. 刷入修改版boot.img

支持的设备

● HTC Nexus 9 WiFi (flounder)
● HTC Nexus 9 LTE (flounder_lte)
● Motorola Nexus 6 (shamu)

版本历史

● v1 - Initial version with HTC Nexus 9 WiFi (flounder) support
● v2 - Added Motorola Nexus 6 (shamu) support
● v3 - Added support for HTC Nexus 9 LTE (flounder_lte)
● v4 - Added support for signed boot-images
● v5 - Changed error handling to compensate for missing fstab files. Some roms seem not to ship with the complete set of boot-files from AOSP.
● v6 - FED-Patcher will enforce the same structure for the patched boot.img that the original boot.img had. Additionally, the kernel commandline will also be taken over. This should fix pretty much every case where devices would not boot after patching.
● v7 - FED-Patcher现在会在fstab禁用dm-verity来摆脱marshmallow roms上的红色错误标志.

我需要什么来让它工作?

  1. 一台支持的设备 (你的nexus 9)
  2. 一个解锁了的启动引导
  3. 一个包含强制加密的已安装的ROM. (像cyanogenmod CM12.1)
  4. 一个含busybox的recovery (TWRP, CWM)

我要怎么使用?

  1. 如果你设备上还有的话,给你的数据做一次彻底的、保守的备份
  2. 进入你的recovery (TWRP, CWM)
  3. 刷入 fed_patcher-signed.zip
  4. 如果你的设备已经加密 (你至少启动过一次你的ROM) 你需要进行一次彻底清除来摆脱加密. 这个完全清除会清除你在你data分区上所有的数据(你的应用和它们存放设置的地方)以及你的内置存储。因此请,先做一次备份. 如果你不备份还想还原你的数据… 好吧… 打电话给奥巴马.

我怎么知道它生效了?
前往你的"设置"应用. 在"安全"里, 如果它给你加密你未加密的设备的选项. 如果它提示如"设备已加密"它就确实加密了.

重要: 如果你更新了你的ROM,你就必须再次运行FED-Patcher。因为ROM更新也会更新boot分区,这会有效移除我的破解. 那么, 如果你在用CM12.1之类的并且用了我的部队并且升级到了更新的每夜版,你必须再运行一次FED-Patcher. 如果你不这么做,Android会在首次启动时加密你的设备.

它有危险吗?
Well, 我做了成吨的检查来防止很多坏事发生. 不过, 当然, 我们正在这里处理boot分区. 尽管我们测试了FED-Patcher很多次,there is still room for crap hitting the fan.

截图
下滑至附图.

感谢

  • 感谢pbatard制作(un)mkbootimg (不知道他在不在xda)
  • @rovo89 的xposed框架 - 我阅读他的Xposed安装卡刷包源码后把他的一些创意用在了FED-Patcher上.

附图

附件zip.gif fed_patcher_v3-signed.zip
zip.gif fed_patcher_v4-signed.zip
zip.gif fed_patcher_v5-signed.zip
zip.gif fed_patcher_v6-signed.zip
zip.gif fed_patcher_v7-signed.zip

所有文件自测!!!