如何在AOSP Android 11中禁用设备加密以迁移用户数据?
阻止Android 11 AOSP设备加密的实现方案
一、核心配置文件修改
- 在设备目录的
BoardConfig.mk或device.mk中添加/修改以下变量:
这些变量会直接告知AOSP构建系统跳过默认加密逻辑。TARGET_DISABLE_ENCRYPTION := true TARGET_ENABLE_ENCRYPTION := false TARGET_WANTS_ENCRYPTION := false
二、调整fstab分区配置
找到设备对应的fstab文件(通常路径为device/<vendor>/<device>/fstab.<device>),修改userdata分区的属性:
- 将原配置中的
encryptable=footer或encrypted替换为none,示例:
确保分区挂载时不启用加密逻辑。/dev/block/platform/soc/1da4000.ufshc/by-name/userdata /data ext4 defaults,noatime,discard none
三、修改系统服务与Vold模块逻辑
PackageManagerService调整
打开frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.java,找到触发强制加密的代码段(通常在系统初始化阶段),直接跳过加密检查逻辑,比如注释掉enforceEncryption相关的调用。Vold模块修改
进入system/vold目录,修改CryptCommand.cpp或VoldNativeService.cpp,注释掉cryptfs_enable_default、cryptfs_encrypt_default等主动触发加密的函数调用,确保vold服务不会自动启动加密流程。Recovery模式加密逻辑移除
打开bootable/recovery/recovery.cpp,找到检查加密状态并触发加密的代码块,修改为直接返回未加密状态,避免recovery阶段触发加密。
四、验证加密状态
刷机完成后,通过以下命令确认加密已被禁用:
- 查看系统属性:
adb shell getprop ro.crypto.state,返回值应为unencrypted - 查看挂载信息:
adb shell mount,确认/data分区未通过dm-crypt设备挂载
内容的提问来源于stack exchange,提问作者Top4o
相关产品推荐
相关产品推荐

