android私有目录直接读取

一、说明

Android应用或游戏在数据持久化时,一般会将文件写入到sdcard或者私有目录files目录下,也可以直接在私有目录下新建文件夹进行存入。
如:
/storage/emulated/0/Android/data/[package name]/
/storage/emulated/0/Android/data/[package name]/files/
/data/user/0/[package name]/
/data/user/0/[package name]/files

由于权限机制的设定,sdcard目录用户只需注册对应权限即可访问,shell用户可直接访问。
而应用私有目录,一般用户除自应用外没有权限进行访问,包括shell在内。

二、可行方案

1、手机进行ROOT,shell运行时执行su命令,通过权限管理工具获取ROOT权限,进而可以访问任意位置;
2、利用多开器的特性,在virtualxposed、平行空间中运行程序,利用其它应用对该程序进行读取数据,因为都处于同一多开器中,权限对等,可以相互访问私有目录和内存空间等;
3、自身应用执行时,代码执行权限设置,开放私有目录给外部用户,用于测试。

三、实现

1、获取ROOT权限后,使用是最方便的,但是出于某些原因或者情况,可能没法获取ROOT权限,因此此方案不提。

2、多开器的方案需要定制化的设置,当然可以和第三种方案进行结合,效果也不错,唯一有个问题,要保证自身应用兼容多开器。

3、通过自身代码执行获取权限,关键在通过chmod函数实现.

String filesPath = getApplication().getFilesDir().getAbsolutePath();
String privatePath = filesPath.substring(0,filesPath.lastIndexOf('/'));

try {
    Runtime.getRuntime().exec("chmod 777 " + filesPath);
    Runtime.getRuntime().exec("chmod 777 " + privatePath);
} catch (IOException e) {
    e.printStackTrace();
}

改了之后直接可以通shell权限进行访问。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值