• 本站压缩包统一解压密码:crowsong.xyz
  • 请善用右上角的搜索功能和下方的标签功能
  • 文章存在时效性,请注意发布时间与最后修改时间

Android如何不通过root获取到data/data目录下的文件

Android 水之笔记 6年前 (2019-05-06) 最后修改:6年前 (2019-05-07) 1210次浏览 2个评论

一、前言

获取 data/data 目录下的文件最简单的方法当然是直接 root,但是有的时候自己的手机可能没有办法 root 或者懒得 root(备份资料太麻烦了)所以就需要用一些比较绕的方法来实现了。这个方法的适用性也不是很广泛,现在很多的软件都会二次校验 apk 的签名,这种方法也就失效了。还有的软件做了很多的加密,你连 AndroidManifest.xml 都看不见所以就更不可能了。
一句话说明方法:解包→添加 debuggable 属性→重新打包→签名→安装→使用 ADB 或者使用 Android Studio 的 Device File Explore 取得所需文件。


二、所需工具

  1. Apktool(安装与使用请参考官网或者本博客的另外一篇文章)
    官网下载地址:https://ibotpeaches.github.io/Apktool/
    博主备份地址(2.4.0 版本):http://waternote.ctfile.net/fs/2276132-372991817
  2. Auto-sign
    TT 中文网修改版:http://www.tttabc.com/android/android.html
    博主备份地址:http://waternote.ctfile.net/fs/2276132-372991808
  3. ADB Shell 或者 Android Studio3.0+
    ADB Shell 请自行百度或谷歌
    Android Studio 下载:https://developer.android.google.cn/studio
    博主备份地址(3.2 版本):http://waternote.ctfile.net/fs/2276132-372994612


三、原理

正常情况下没有 root 权限是没有办法查看 data/data 内的内容的,更不用说你是使用cd命令(错误的方法)还是run-as命令了(正确的方法)。所以我们需要将 apk 拆包然后找到AndroidManifest.xml文件,在里面添加android:debuggable="true"这条属性使程序变为开发 debug 模式,之后我们在使用run-as命令即可。

  • 使用错误的cd命令:除非你拥有 root 权限否则即使你写入了 debuggable 也是没有办法进入的
  • 使用正确的run-as命令:这里我使用的是 Android Studio 的 Device File Explorer 工具(Android Studio 3.0 以上自带)等同于在 ADB Shell 使用run-as命令。但是由于该 APP 没有打开 debug 模式,所以我们还是不能够查看到里面的文件。


四、使用示例

我们这里以某个国外的日麻小游戏(不是雀魂=。=)作为实际操作的例子。

  1. 我们使用 apktool 来对软件进行拆包,运行 CMD→进入 apk 所在目录,之后对其进行解包。
apktool d .\雀娘!てんぱい_1.0.1.apk"

进入目录输入命令:

解包完毕:

在解包之后的文件会在与该 apk 同级的目录下:

  1. 我们打开该文件夹,找到并打开AndroidManifest.xml文件,找到 application 字段,并在其后面添加android:debuggable="true"属性(它里面属性太多了为了方便截图我删了一些,正常在后面添加就好了)。
  2. 然后我们需要使用 apktool 将其重新打包成 apk,还是在刚才的路径下。
apktool b .\雀娘!てんぱい_1.0.1

进入目录输入命令:

打包完毕:

打包完毕后的 apk 文件会被保存在你打包的那个文件夹的dist目录下
注意路径:

  1. 虽然打包完了但是现在这个 apk 是没有签名的,没有签名是不能够安装的,所以我们还需要使用 Auto-sign 来对其进行签名。
    将已经打包好的 apk 放到 Auto-sign 的文件夹里面,直接运行auto-sign-tt-v1.1.bat即可,签名完毕的 apk 会在Signed文件夹中。
    运行签名的程序:

    获得一个已经签名过了的 apk:
  2. 安装,这个不用说了,然后我们可以使用 ADB Shell 或者 Android Studio 里面的 Device File Explorer 对文件进行操作了。
    使用 Device File Explorer 已经可以成功的查看到里面的文件了(上面的是没有添加 debuggable 属性的另外一个 apk):

    这里强烈推荐 Android Studio 自带的 Device File Explorer 工具,非常的好用。
    如果你要使用 ADB Shell 来操作的话需要注意以下几点:首先对于你想要修改的目录你需要先对其赋予额外的权限chmod 777 XXX/之后才可以去修改里面的文件,并且请不要尝试把修改后的文件先复制到 sdcard 然后再去复制或者移动到里面去,你会发现你还是没有权限=。=所以请直接使用adb pulladb push命令来对文件进行修改操作。当你操作完之后请记得把权限修改回去否则 APP 有可能会出错。

当然最简单的方法绝对是 root。。。。这方法麻烦死了


参考资料:


本文章笔记版本地址:http://ccdd6ec5.wiz03.com/share/s/3cTmX51TMQ-b2QTact03UPg80Yl5A73U7ALk2WfJML1iy4wy


水之笔记 , 版权所有丨如未注明 , 均为原创丨转载请注明出自 水之笔记的博客 crowsong.xyz
小站不易,若您觉得文章对您有所帮助,您可以在网页右上方使用支付宝赞助下小站或者扫描下支付宝红包。
喜欢 (5)
发表我的评论
取消评论

表情 加粗 删除线 居中 斜体

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 想问下apk的签名是如何获取的?(和应用程序原本的签名不一致是否有问题?)
    放手也是一种抉择2024-11-05 00:57 回复
    • 水之笔记
      没办法获取,签名不一致会导致你无法覆盖安装,需要先卸载之前的应用才能安装新签名过的apk。并且现在很多手游会联网校验,不一致会导致无法进入游戏。同时这篇文章也比较老了,新的话推荐找一个叫做‘MT管理器’的APP,可以直接在手机上完成这些,更方便。具体可以搜索下相关教程,网上很多。
      水之笔记2024-11-12 16:09 (8小时前)回复