遇到“权限被拒绝”等问题,主因是Android沙盒限制、数据库加密、缺少调试权限或非debuggable模式;解决方法包括:一、用adb shell run-as读取路径;二、root后改chmod/chown权限;三、ADB backup导出再解包;四、反编译设debuggable为true。

如果您在尝试读取 com.tencent.mm 数据库文件(如 enmicromsg.db)时遇到“权限被拒绝”或“无法打开数据库”提示,通常是由于 Android 系统沙盒机制限制、数据库文件处于加密状态、未获得运行时调试权限或应用未以 debuggable 模式启动所致。以下是针对不同访问场景的权限修改与读取方法:
一、启用 USB 调试并使用 run-as 获取临时读取权限
Android 系统允许已调试签名的应用通过 adb shell run-as 命令以该应用身份执行命令,从而绕过常规文件权限检查。此方法适用于未 root 设备且微信处于前台运行状态时读取 /data/data/com.tencent.mm/MicroMsg/ 下的数据库结构(仅限查看路径与文件列表,无法直接导出加密数据库)。
1、在手机【设置】中连续点击【关于手机】→【版本号】7次,开启【开发者选项】。
2、进入【设置】→【系统与更新】→【开发者选项】,开启【USB调试】和【USB调试(安全设置)】。
3、用 USB 数据线连接手机与电脑,在电脑命令行中输入:adb devices,确认设备在线。
4、输入:adb shell run-as com.tencent.mm ls /data/data/com.tencent.mm/MicroMsg/,若返回哈希文件夹列表,说明调试通道可用。
5、执行:adb shell run-as com.tencent.mm ls /data/data/com.tencent.mm/MicroMsg/[哈希ID]/,定位 enmicromsg.db 所在子目录。
二、修改数据库文件访问权限(需 root 权限)
在已 root 的设备上,可直接修改 /data/data/com.tencent.mm/MicroMsg/ 目录及其子文件的 Linux 文件权限(chmod)与所有者(chown),使 RE 文件管理器或 adb pull 能够读取数据库文件。注意:此操作不解除数据库加密,仅开放文件级读取权限。
1、使用支持 root 的文件管理器(如 Solid Explorer、MT管理器)获取 root 权限。
2、导航至 /data/data/com.tencent.mm/MicroMsg/[哈希ID]/ 目录。
3、长按 enmicromsg.db 文件,选择【属性】→【权限】,将“所有者”与“组”的“读取”权限设为允许,即设置为 rw-r----- 或更宽松的 rw-rw-r--。
4、若提示“只读文件系统”,需先 remount data 分区为可写:adb shell su -c "mount -o rw,remount /data"。
5、完成权限修改后,即可使用 adb pull 或文件管理器复制 enmicromsg.db 至外部存储供后续解密分析。
三、通过 ADB backup 创建可导出备份包
ADB backup 是 Android 提供的官方应用数据导出机制,无需 root 即可打包 com.tencent.mm 的部分非敏感数据(含数据库文件副本),但需用户在手机端手动授权。备份文件为 .ab 格式,需转换为 tar 后提取 enmicromsg.db。
1、确保微信未运行,关闭后台进程。
2、在电脑命令行执行:adb backup -f wechat_backup.ab -noapk com.tencent.mm。
3、手机屏幕将弹出备份确认界面,勾选【备份我的数据】,点击【确定】。
4、等待备份完成(约数分钟),生成 wechat_backup.ab 文件。
5、使用开源工具 android-backup-extractor 将 .ab 文件转为 .tar:java -jar abe.jar unpack wechat_backup.ab wechat_backup.tar。
6、解压 tar 包,在 apps/com.tencent.mm/db/ 路径下查找 enmicromsg.db。
四、重置微信为 debuggable 版本(仅限测试环境)
官方发布版微信默认设置 android:debuggable="false",导致 run-as 失效。若设备已解锁 Bootloader 并刷入自定义 recovery,可通过反编译微信 APK 修改 AndroidManifest.xml 中的 debuggable 属性,再重新签名安装。该方法仅适用于开发调试,且可能触发微信安全检测导致登录异常。
1、下载对应版本微信 APK(如 8.0.0),使用 apktool 反编译:apktool d com.tencent.mm.apk。
2、编辑反编译目录下的 AndroidManifest.xml,将 android:debuggable="true" 添加至 application 标签内。
3、重新打包并签名:apktool b com.tencent.mm -o mm_debug.apk,再用 apksigner 签名。
4、卸载原微信,安装 mm_debug.apk。
5、重启后执行 adb shell run-as com.tencent.mm 即可完整访问 /data/data/com.tencent.mm 全部子目录及数据库文件。

















