Android访问data目录

真机连上调试后,发现data根目录可见,但无法展开,查看权限发现:

data   drwxrwx–x 

没有读权限。

接下来我们用chmod来修改权限,不过要先root掉,

第一次尝试用一键ROOT大师,root失败,换了另外一个工具(百度一键root),root成功;

接下来我们用如下命令修改即可:

>adb shell
$ su
# chmod -R 755 /data



访问 `Android/data` 目录的操作通常涉及到对外部存储(External Storage)的读取或写入权限,以及对特定文件路径的理解。 ### 一、理解外部存储结构 对于 Android 系统来说,“`/storage/emulated/0/Android/data/`”这个路径下存放着每个应用对应的专属数据目录。每一个应用程序都有一个以其包名命名的数据文件夹,在这里可以保存一些缓存、配置或者其他形式的应用特有信息。 例如:如果你安装了名为 com.example.app 的应用程序,则它的默认私有存储位置将会是在 `/storage/emulated/0/Android/data/com.example.app/` 中。 注意从 **Android 10** (API level 29) 开始引入了一个叫做 "分区存储" 或者说是scoped storage的新特性,默认开启了限制第三方app直接操作其他应用专有的文件夹的功能;而到了 **Android 13**, 这种趋势进一步加强,并且官方持续鼓励开发者尽量使用系统提供的 API 来代替手动管理文件的方式。 因此如果提到的是未来的版本如“Android 15”,虽然目前还没有确切的信息关于它将有哪些改动,但是预计会延续甚至强化现有的安全措施及隐私保护政策,比如更严格的存储空间隔离机制等。 ### 二、如何获得相应的权限 为了能够在上述路径内创建新文件或是更改已有内容: #### 对于低于 Android 10 版本: 你需要请求用户的同意授予你两个基本权限&mdash;&mdash;`READ_EXTERNAL_STORAGE` 和 `WRITE_EXTERNAL_STORAGE`. ```xml <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> ``` 然后通过运行时检查是否已经获得了必要的授权,如果没有的话需要提示用户授予权限。 ```java if(ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(thisActivity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE); } ``` #### 针对 Android 10 及以上版本 : - 如果只需要读取公共媒体资源(图片、视频),那么仅需声明 READ_MEDIA_IMAGES / READ_MEDIA_VIDEO 就足够。 - 若要向 `Android/data/<package_name>` 内写入非媒体类型的文档,则应考虑申请 MANAGE_EXTERNAL_STORAGE ,不过这项权力会被平台视为高风险级别并受到更多审查。 重要提醒:自 Android 11 起除非满足非常特殊的情况并且明确说明理由给到Google Play审核团队批准外,普通应用是很难获批获取所有文件访问权(manage_all_files_access_permission) 的。 考虑到未来版本可能会继续收紧权限控制策略,建议尽可能采用更加安全合规的方式来处理本地持久化需求,包括但不限于利用 ContentResolver 操作共享内容提供程序所提供的接口、MediaStore 数据库记录新增多媒体条目等等。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值