美文网首页
Android无root,获取其他应用内部存储的数据

Android无root,获取其他应用内部存储的数据

作者: Yilia_11d2 | 来源:发表于2018-11-14 16:53 被阅读0次

前言

最近在负责一个项目,需要获取其他应用的内部存储中的文件,即data/data/下的文件,并转存到sdcard上。有一点Android基础的都知道data/data/中的文件对其他应用是不可见的,在没有源码的条件下,无法直接访问data/data中的文件。问了公司的大佬,大佬提供了两种思路,一种是run-as命令进入data/data,直接copy;另一种是hook。具体怎么实施,且听我慢慢道来。

方法一,run-as命令

条件:

安装包是debug包(release包也可以利用反编译重新打包,变成debug包,网上有很多文章可以参考)

步骤:

1、连接手机到电脑,打开usb调试

2、命令行中输入 adb shell run-as <包名>

示例:

1.png

com.ss.android.ugc.aweme(抖音)不是debug包,无法使用run-as命令。

com.example.yilialin.jsonreport(我自己写的app)是debug包,使用run-as命令可以进入data/data目录下,输入ls,可以看到data/data目录下的所有文件/文件夹

3、输入 cat <文件名> > <sdcard中的文件名> ,直接拷贝到sdcard中

示例:

2.png

不出现任何提示,表明已经成功拷贝到了sdcard中。

优点:

几行命令直接搞定

缺点:

1、需要手工敲命令,难以实现自动化

2、debug包才能使用

方法二,hook神器——xposed插件

条件:

没有限制,安装包是release包或者debug包都可以,手机不需要root

步骤:

有关于xposed插件可以参考文章:https://blog.csdn.net/yzzst/article/details/47659479

https://blog.csdn.net/niubitianping/article/details/52571438

https://blog.csdn.net/niubitianping/article/details/52574650

其实无root也是可以使用virtualxposed的,将xposed插件和想要hook的app克隆到virtualxposed中就可以使用了。

优点:

不受root权限和debug包的限制

缺点:

前期需要做的事情多,xposed插件编写比较麻烦

后序

我研究了几个星期的xposed hook,才学会了怎么使用,原理还不是特别明白,先用着吧==

听别人说再多也只是纸上谈兵,关键是要自己动手操作,有很多问题都是在实施的过程中出现并解决的,在问题中学习不失为一种好方法。

干货

奉上我的xposed插件,供学习参考,有什么不对的地方,还望不吝赐教!

https://github.com/Yiliayan/douyinxposed.git

相关文章

  • Android无root,获取其他应用内部存储的数据

    前言 最近在负责一个项目,需要获取其他应用的内部存储中的文件,即data/data/下的文件,并转存到sdcard...

  • Android文件系统

    内部存储 内部存储主要用于保存应用的私有文件,其他应用无法访问这些数据。当应用卸载的时候,这些数据也会被删除。使用...

  • Android知识点整理

    一、数据存储 1.掌握Android的3种本地数据存储方式以及应用场景 2.掌握Android的文件存储系统的内部...

  • Android中存储目录

    Android中存储目录 对于一个APP来说,存储是分为应用内部存储和应用外存储。 内部存储 描述 应用内部存储是...

  • Android 内部存储使用方法详解

    Android 可以直接保存文件到内部存储,保存在内部存储的文件是应用的私有文件,其他应用无法访问,当app被卸载...

  • Android Scoped storage 分区存储

    Android存储目录 内部存储 getFilesDir - 应用内部存储 放在data/data/package...

  • SharedPreference与文件存储

    Android常用数据存储方式有SharedPreferences存储数据(虽然还是属于内部存储)、文件存储(内部...

  • Android-获取当前应用根目录

    一:获取 Android 当前应用内部私有根目录 二:获取 Android 当前应用外部公共根目录

  • 我问你答-什么是 Content Providers

    官方定义:帮助应用获取自身存储的数据,其他应用的数据,以及对外提供数据。另外,要注意区别「Content Prov...

  • Android中数据存储介绍

    前言 Android提供了多种选项来保存永久性应用数据。用户可以选择的数据存储选项有:共享首选项、内部存储、外部存...

网友评论

      本文标题:Android无root,获取其他应用内部存储的数据

      本文链接:https://www.haomeiwen.com/subject/ttrjfqtx.html