想必各位刷机大佬,都遇到过这样的问题:在twrp中,无法解密data,又或者是乱码,又或者识别的内存大小为0,完全没法用,最后为了能够从电脑复制数据到手机,不得不格式化data,从而所有数据均丢失,严重影响体验。
【这里,先引入一个清除data的概念。清除data:删除data分区里面的所有文件。格式化data:重新初始化data分区,并删除data分区里面的所有文件。所以,这种data被加密的情况,清除data是没有任何用的,必须格式化data,让手机重新初始化data分区。】
其实从安卓4.4开始就引入了data加密的概念,加密也是为了安全,data分区中的sdcard目录,存储了用户数据(其实就是内置内存,电影,歌曲等都在这里),所以谷歌对他们进行了加密。
现在2022年了,设备加密这个功能都默认强制启用,但是加密这玩意还是对功耗,性能是有影响的,特别是读写速度较慢的emmc闪存,data加密后,读写速度进一步下降…
ufs闪存的话,读写速度虽然也下降了,但毕竟ufs闪存本来读写就快,感觉没emmc闪存下降得那么明显而已。所以,本帖的目的便是永久去除data加密(只要不格式化data),无论新旧TWRP,都能正常挂载上data分区。首先,我们需要在目录【/vendor/etc/】中找到文件【fstab.qcom】,有的机型可能不叫这个名字,总之就是带有【fstab】字样的所有文件,都需要修改。
打开【fstab】字样的文件,里面是这样的:
找到【userdata】这一行代码,里面有类似于这样的代码【fileencryption=ice,wrappedkey,keydirectory=/metadata/vold/metadata_encryption,】,如图:
注意,每个机型可能代码不是完全一模一样,但是基本上都差不多长这个样子。然后就是删掉他【注意上图我选中的代码中,末尾包含了一个逗号的,不要删漏了】。然后就是保存,然后进行一次data格式化后,再开机时,data便不会被加密了。
如果保存时,无法读写,请参考此贴解锁vendor分区。 【出厂安卓11机型解锁system分区教程_oAiYinSiTan12的博客-CSDN博客_安卓11解锁system分区】
格式化data方法一:进入rec,格式化data(需要刷入yes的那种)。
格式化data方法二:进入fastboot(小米动态非vab机型和魅族动态分区机型),输入命令【fastboot format userdata】和【fastboot format metadata】
格式化data方法三:进入fastbootd(小米动态vab机型),输入命令【fastboot format userdata】和【fastboot format metadata】
data加密的判断方式:格式化data后,第一次开机时,读取【/vendor/etc/fstab.qcom】文件,该文件是否存在上面我们删除的代码,如果存在,则对data进行加密操作,若不存在,则不对data进行data操作。