Android系统目录与权限管理

android /data/data/数据作用,Android 导出data/data目录数据库 释放双眼,带上耳机,听听看~!我们调试 App 的时候有时候要去除应用下 data/data/ 的文件,之前我都是运行在虚拟机上,然后再取出数据。今天发现一个好的方法,可以在真机上(不用 root )直接去除 data/data/ 下的数据。首先打开 Android studio 的 Terminal 界面,或者打开命令行,切换到项目的目录下;然后依次执行下面的命令$ adb shell #执行a... 阅读详情
AI摘要

本文详细介绍了Android系统的关键目录结构,如data/data、data/app、data/local/tmp等,以及system目录下的子目录作用。同时,深入解析了Android的权限管理系统,包括文件和目录的权限表示、修改方法及SELinux策略的影响。

一、Android目录结构

1. data/data目录

data/data目录存放用户应用的数据,每个应用都有自己的子目录,以包名命名。例如,包名为com.example.app的应用,其数据存放在data/data/com.example.app中。该目录是私有目录,只有相应的应用能够访问,除非获得了root权限。

2. data/app目录

用户安装的应用存放在data/app目录下。

3. data/local/tmp目录

data/local/tmp是一个临时目录,具有较大的权限,通常用于存放一些临时文件。

4. system/app目录

system/app目录存放系统自带的应用。

5. system/lib和system/lib64目录

system/lib和system/lib64目录存放应用使用的共享库文件(.so文件)。

6. system/bin目录

system/bin目录存放Android系统的shell命令。

7. system/framework目录

system/framework目录存放Android系统使用的框架文件,如一些jar文件和XposedBridge.jar。

8. sd卡目录

无论设备是否有外部存储卡,都会有sd卡目录,通常是/sdcard,链接到/storage/self/primary。访问sd卡目录需要申请权限,如:

/sdcard -> /storage/self/primary
/mnt/sdcard
/storage/emulated/0

二、Android系统权限管理

在Linux系统中,文件和目录的权限通过ls -l命令显示,权限部分如下所示:

lrwxrwxrwx 1 root root 8 May 29 04:09 sbin -> usr/sbin

1. 权限解释

a) 文件类型
  • -:普通文件
  • l:链接文件,后面用->指向真实文件
  • d:目录,相当于Windows的文件夹
  • c:字符设备文件,例如鼠标、键盘(位于/dev目录)
  • b:块设备文件,例如硬盘(位于/dev目录)
b) 权限位
  • 第1-3位:所有者权限
  • 第4-6位:所属组权限
  • 第7-9位:其他用户权限

2. 权限表示方式

权限表示可以使用字母或数字:

  • r:可读(4)
  • w:可写(2)
  • x:可执行(1)
  • -:无权限

例如,rwx表示可读、可写、可执行,数值表示为7(4+2+1)。

3. 其他说明

  • 硬链接数:访问同一文件的不同路径数,文件一般为1,目录至少为2。
  • 用户和组:文件的所有者和所属组。
  • 文件大小:以字节为单位,目录大小通常显示为4096字节。
  • 修改日期:最后修改的日期和时间。
  • 文件名:包括软链接名和实际指向的文件或目录。

4. 修改权限

使用chmod命令修改文件或目录权限:

  • 使用符号方式:
    • u:所有者
    • g:所属组
    • o:其他人
    • a:所有人
    • 示例:
      • chmod u=rwx,g=rx,o=x 文件/目录名
      • chmod o+w 文件/目录名
      • chmod a-x 文件/目录名
  • 使用数字方式:
    • 示例:chmod 777 文件/目录名

5. SELinux策略

并非所有目录和文件都能通过上述方式修改权限,有些需要修改SELinux策略。

6. Android目录权限测试

  • /data/data/pkgName:应用的私有目录,文件通常拷贝到sd卡目录再pull出来。
  • /data/local/tmp:权限较大的临时目录,逆向工程人员常用。
  • /sdcard:访问权限需在清单文件中申请,Android 6.0以上需要动态申请,10.0以后还需额外设置。
反反调试:app 检测 data/local/tmp 目录绕过手段 阅读详情

相关推荐

Android 进阶——系统启动之SystemServer创建并启动PackageManagerService服务(十二)

Android 系统每次启动后都需要把原来安装过的App 全部还原回来(因为不可能每一次都执行全新的安装,这样会丢失掉用户信息)

最美不过,心中有梦,身旁有你! 1569

Android免Root执行脚本,无Root可以修改权限的目录 :/data/local/tmp

Android免Root执行脚本,无Root可以修改权限的目录 :/data/local/tmp 在Android中,访问data目录一般需要root权限,但是有个另外那就是/data/local/tmp目录。 注意: (1)cd /data/local/tmp可以打开这个目录,而不是一级一级目录的打开 (2)修改该目录下的文件属性,chmod 777 /data/local/tmp/xxx,这个是可以赋予权限的。 adb shell mkdir -p /data/local/tmp/

love520222的博客 1万+

adb日志分析

adb shell 进入linux命令行模式 目录结构 system 系统应用 app 安卓系统的安装包.apk 可以root删除无用包,但是root之后手机不能升级(hash校验通不过) build.prop 属性文件 priv-app 里面应用权限高于app framework 安卓系统中间件文件 data 应用信息 data 进入应用包名 (软件身份证) c...

weixin_41949143的博客 1911

Android系统目录介绍

Android系统目录重要文件目录功能介绍

AfinalStone的专栏 1万+

Android技能树 — Android存储路径及IO操作小结

本文讲解了我对Android开发现状的一些看法,也许有些人会觉得我的观点不对,但我认为没有绝对的对与错,一切交给时间去证明吧!愿与各位坚守的同胞们互相学习,共同进步!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!g" />本文讲解了我对Android开发现状的一些看法,也许有些人会觉得我的观点不对,但我认为没有绝对的对与错,一切交给时间去证明吧!愿与各位坚守的同胞们互相学习,共同进步!

2401_84121998的博客 496

Android系统 文件访问权限笔记

本文简单学习 Android 系统的文件访问权限的概念、分类、申请方法、framework层源码位置和关键函数,以及 Android 11、12 和 13 的文件访问权限的变化和适配方法。

我其实什么都不会 4825

Android之PackageManagerService构造函数部分分析

1.Settings 在PackageManagerService构造方法中初始化如下:mSettings = new Settings(context);Settings构造方法如下: Settings(Context context) { this(context, Environment.getDataDirectory()); } Setting

dianshanglian的专栏 747

数据结构实验1 集合的交、并、差

姓名:Far_Rainbow 学号: 202505000X 专业: 软件工程 年级:2020级 实验名称:实验1 集合的交、并、差 实验内容: (1)实验目的 通过该实验,让学生复习巩固C语言中的循环结构、循环控制条件、分支结构和数组/链表、函数的调用等有关内容,体会到用数组存储集合时,需要记录集合元素的个数,否则输出结果会出现数据越界现象。 (2)实验内容 通过键盘,分别输入两个数据元素类型为正整数的集合A和B,以负数输入为结束条件,输出两个集合的交、并、差。 (3)实验要求 从程序完善性上考虑,集合元

Far_Rainbow的博客 2177

开源项目推荐:ADB Root Magisk 模块

开源项目推荐:ADB Root Magisk 模块 1. 项目基础介绍及编程语言 本项目是一个开源的Magisk模块,旨在为Android设备提供一种运行ADB(Android Debug Bridge)守护进程的root权限的方法。该项目主要使用Makefile和Shell脚本语言进行开发,确保了模块的跨平台兼容性和易用性。 2. 项目核心功能 该Magisk模块的核心功能是允许用户在Andro...

gitblog_00032的博客 966

Agent 长期记忆三代演进:从 RAG 到 Memory Graph,mem0 / Zep / LangMem / Letta 深度横评

文章摘要 2026年,Agent长期记忆技术迎来关键突破,OpenAI、Anthropic等厂商通过扩大上下文窗口和推出记忆工具,推动长期记忆从工程补丁发展为独立技术层。本文通过分析三代记忆架构演进(RAG→结构化Fact→MemoryGraph)和四大方案(mem0/Zep/LangMem/Letta)的8维度横评,揭示以下核心观点: 长上下文≠长期记忆:128K上下文如同RAM,仍需硬盘式记忆层筛选和结构化存储,避免“Context Rot”导致的准确率下降。 三代架构演进: Gen1(RAG):向量检

LDZKKJ的博客 1417

CMake是什么?为什么学习CMake

CMake的主要作用和重要性,包括其在跨平台构建中的应用、如何支持多种编译器及操作系统,以及它在管理大型和复杂项目中的优势。

小鱼酱的博客 3870

PKMS--安卓10源码解析

PKMS解析

hugh88的博客 630

虚拟机VMware Horizon Client与主机之间建立共享文件夹

因经常需要在虚拟机和主机之间传递一些日常文件,所以建立共享文件夹。 虚拟机中安装的系统为win10,主机中的系统为win10。 步骤: 第一步:先在虚拟机win10中新建文件夹(我重命名为“共享文件夹”),然后右键属性->共享->共享 进去之后点击自己的账户名 然后点共享。操作完成后,再返回属性界面就能看到该文件夹已经共享而且出现了共享链接,记下此链接。 第二步:回到主机桌面->此电脑->最上面计算机->添加一个网络位置- 点击下一步 然后自定义网络位置,下一步,如下图

AnChenliang_1002的博客 1万+

EasyClick 修改system目录文件

EasyClick 修改system目录文件

Mr、老鬼的博客 623

Claude Code Auto Memory 的 Storage Location,SAP ABAP 项目里的本地记忆仓库应该怎么理解

本文介绍了 SAP ABAP 项目中 Claude Code 的 auto memory 机制,重点探讨了其存储位置的设计原理。auto memory 不是存储在项目目录中,而是默认位于 ~/.claude/projects/<project>/memory/,其中 <project> 基于 Git 仓库路径推导,确保同一仓库下的所有工作目录和分支共享记忆。记忆目录包含入口文件 MEMORY.md(仅加载前 200 行)和详细主题文件,这种分层设计类似 CDS View 架构思想。文章还分析了按 Git 仓

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 100

一网打尽身份验证与授权:深入剖析ASP.NET Core Identity在C#中的全方位实战应用

ASP.NET Core Identity 是 Microsoft 提供的一个强大且可扩展的身份验证和授权框架,用于构建基于用户账户、角色和权限的Web应用程序。它提供了用户注册、登录、密码管理、多因素认证、角色分配、授权等功能,与ASP.NET Core框架深度集成,简化了安全相关的开发工作。通过上述代码示例和注释,展示了如何安装配置Identity、自定义用户实体与数据库上下文、实现用户注册登录、管理角色与用户角色关系,以及如何使用授权策略保护应用程序资源。,并指定用户和角色类型以及主键类型。

java专栏 1528

android文件数据库相关

一、文件访问      android文件系统(Linux操作系统的文件系统)      1、文件目录分析          system---系统目录                        1.1 \system\app---这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\d

chuyouyinghe的专栏 700

触摸芯片RM1015B基本使用方法

RM1015B触摸芯片使用指南:该芯片采用4通道设计(实际使用3通道),通过I2C接口通信(设备地址0x2B)。硬件设计需注意中断/复位引脚复用,需上拉处理。软件配置包括初始化、中断处理和定时器扫描,通过设置各通道阈值(0-300W)调节灵敏度,值越小越灵敏。调试时可调用rm1015B_debug_func()输出波形数据。典型应用场景包括接近检测和手势识别,中断触发后需在8ms内响应。特别注意不同通道的寄存器映射关系及校准流程,确保检测准确性。

云淡风轻 176

彻底搞明白PMS原理

在 Android 系统中,有着四大组件ActivityServiceBroadcast,然而,在我们和这四大组件进行交互的时候,一定有着一个系统服务在后台默默的运行。这个服务就是 PackageManagerService(后续简称 PMS)。当我们在应用中启动一个 Activity 或者 Service 时,需要 PMS 进行查找,当我们安装新的应用时,PMS 会进行安装,解析,优化等等。可以说,PMS 是我们 Android 中最重要的几个服务之一。

博客 1238

10万+字超硬核 机器学习 笔记(面试八股)

10w字总结面试中可能用到的机器学习八股和常用算法,包括感知机(Perceptron)、多层感知机(MLP, Multi-Layer Perceptron)、支持向量机(SVM, Support Vector Machine)、K 最近邻(KNN, K-Nearest Neighbors)、朴素贝叶斯(Naive Bayes)、决策树(Decision Tree)、随机森林(Random Forest)、Bagging、Boosting、GBDT、XGBoos、LightGBM等。

haopinglianlian的博客 4658

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Linux指令

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

qq_45596259的博客 190

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Android源码分析(十四)PackageManagerService服务分析

一. PackageManagerService启动过程分析 PackageManagerService(PMS)主要是管理应用的安装,卸载,更新,解析以及权限。   如果想了解SystemService启动过程请看这篇文章:Android 源码分析(六) SystemServer 进程如果想了解AMS服务分析请看这篇文章:Android源码分析(十三)ActivityManagerSe...

weixin_34218890的博客 137

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android 修改记录

Settings system 里添加字段并且在SettingProvider里初始化 frameworks/base/core/java/android/provider/Settings.java 最好在system表里其他字段的附近加 public static final String DEFAULT_ISQCHATING = "isQchating"; public stati...

393

一些OEM的厂商的漏洞分析

现在给予Android平台 生态系统玩的终端厂商越来越大,暴漏的漏洞也越来越多了。 转帖请帖http://blog.youkuaiyun.com/u011069813/article/details/9209221 公司越大,漏洞越多,原因也是定制的更多了。尤其是三星哈! http://www.quarkslab.com/dl/Android-OEM-applications-insecurity-an

创造晴天 2472

android sd卡目录查看,Android sd卡目录详解

一直以来对Android系统目录的获取方法和具体代表含义没有掌握清楚,今天特意整理了一下,分享给大家,对自己也是一个总结。在android 6.0以前,你可以只关注外置存储是否挂载即可,但是从6.0以后,也就是M系统后,还需要判断是否有读写权限,只有具备这些权限才可以读写外置存储(6.0系统权限机制不在本文讨论范围,大家可以阅读我写的另外一篇博文-android M上可能需要开发者注意的权限大全)...

weixin_42113456的博客 2710

PMS 简析

pms 介绍: 这是 android studio编译 apk,安装成功后的截图adb shell pm install -r "/data/local/tmp/com.crg.installtest"就是安装 apk。Android系统中PackageManagerService简称PMS,主要负责各种APK的安装,卸载,优化和查询。 Android系统中,pm工具是PMS的一个展现命令。通过

Jack_SivenChen的博客 4459
上一篇: Android逆向中常用的Linux命令
下一篇: Android应用的执行入口
LittleFishC
博客等级 码龄10年 163粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值