0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Android系统层级分析与权限问题

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:Jasonangel 2023-10-07 15:03 次阅读

Android 层级分析

这个图中 kernel 和 native 层的通信是 syscall,这个大家都很熟悉,就是系统调用,毕竟 C++ 调用 C 语言还是很简单的。

而 FrameWork 层和 Native 层通信就比较复杂了,java 如何调用 C++ 语言,这里会有一个 JNI 机制,JNI 有特定的语法,类似于 C 语言但又不是 C 语言,他可以实现 java 调用 C++的函数,这个过程需要 Android Runtime(ART) 安卓虚拟机的配合。

在 Native 层中,有很多 C++ 写的系统服务,供上层使用,比如最重要的ServiceManager,管理所有其他服务的服务。

案例分析

手机 app 想要控制喇叭、LED硬件,要从 app 传递到 kernel,操作硬件,这个流程要比 Linux 的应用程序复杂得多。并且方式不止一种,举例:

1、app 通过直接读写 kernel 节点,向其写入数据,这就类似于在 Linux 命令行直接 echo,这是最简单的方式。因为 java 本身也有文件读写函数,有按字节读写和字符串读写两种方式。

2、app 的 java 语言调用 JNI 文件,JNI 调用 C 语言,在 C 函数中去操作节点。

3、也可以用 C++ 写一个 Native 服务,APP 通过 binder 通信访问这个服务,在这个服务中操作节点。当然 socket 通信也可以。

Android 权限问题

当然,以上所有的操作都需要权限,安卓系统的权限限制的比较严格,防止黑客破解。

如果你有 root 权限,那么你可以在安卓系统命令行中输入 setenforce 0 来关闭Android 系统的 SELinux 检查机制,那基本上你所有操作都可以被允许。

在 Linux 系统中,安全机制是:我是 root,我派出去的程序访问任何东西也应该是 root 权限,没有人可以阻止我。

在 Andorid 系统中,安全机制是:不管你是谁,做任何事情都要提前申请,否则会被 SELinux 检查,没有提前申请的行为都会被拒绝,看 log 会发现很多 avc deny。

举个形象一点的例子:一个公司老板,派他的儿子去自己的公司上班,按理来说是应该类似于 root 权限,谁能挡我?实际上呢,到公司上班可以,因为老板提前说了,但是去卫生间要申请权限,用电脑要申请权限,用打印机要申请权限,除了过来上班,其余任何没有提前说明的行为都会被拒绝。

这就是 Andorid 系统严格的安全机制,防止了黑客破解 root 权限以后乱搞你的手机,比如:内置一个程序,定期访问你的 xxx 文件,然后通过网络发出去。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3851

    浏览量

    125642
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206737
  • 函数
    +关注

    关注

    3

    文章

    3881

    浏览量

    61310
  • 系统
    +关注

    关注

    1

    文章

    981

    浏览量

    21036
收藏 人收藏

    评论

    相关推荐

    Android系统文件权限解释

    众所周知,安卓是基于linux开发的,因此想要了解android系统文件的权限,需要从Linux说起。  Linux系统权限简介:  一个文
    发表于 07-10 15:10

    AM335X开发板Android 应用程序获得system权限的方法

    Android应用程序开发中,有些操作的实现,会发现单纯添加了相应的功能语句却不能实现想要的效果,这个时候就可能是因为这些功能必须使apk有system权限才能操作,这也是Android系统
    发表于 05-20 17:55

    [资料分享]+《Android软件安全与逆向分析

    `[资料分享]+《Android软件安全与逆向分析》一、看威武霸气的封面作者:丰生强 二、读读简介,看看适合你吗? 本书由浅入深、循序渐进地讲解了Android 系统的软件安全、逆向
    发表于 09-26 10:53

    系统层级静电放电与芯片层级静电放电有什么差异

    军方所制定的人体静电放电模型最具代表性,又称之为芯片层级静电放电测试。而针对终端消费者所使用的电子产品,则以IEC 61000-4-2所制定的人体静电放电模型为测试主流,这就是一般认知的系统层级静电放电
    发表于 07-25 06:45

    Android 系统添加SELinux权限

    CPU:RK3288系统Android 5.1SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。通过虚拟文件系统 proc 来读写
    发表于 02-09 22:49

    安装android程序需要调用哪些重要权限

    安装android程序需要调用哪些重要权限呢?你都知道哪些?
    发表于 11-02 07:26

    Android Framework电源子系统分析

    系列文章解读&说明:Android Framework 电源子系统分析主要分为以下部分:Android Framework 电源子系统
    发表于 12-31 06:51

    请问android 7.1应用获取root权限的方法是什么

    应开发需要,应用软件需要获取root权限,请问android7.1.1如何root呢?
    发表于 01-04 06:11

    Android框架里的相关默认权限操作有何作用

    Android框架里的相关默认权限操作有何作用?
    发表于 02-17 06:23

    Android系统权限提升攻击检测技术_王聪

    Android系统权限提升攻击检测技术_王聪
    发表于 03-19 11:41 0次下载

    如何使用权限Android进行应用风险评估方法的资料说明

    针对Android权限机制存在的问题以及传统的应用风险等级评估方法的不足,提出了一种基于权限Android应用风险评估方法。首先,通过对应用程序进行逆向工程
    发表于 03-28 16:49 4次下载
    如何使用<b class='flag-5'>权限</b>的<b class='flag-5'>Android</b>进行应用风险评估方法的资料说明

    如何使用Android权限实现应用风险评估详细方法说明

    针对Android权限机制存在的问题以及传统的应用风险等级评估方法的不足,提出了一种基于权限Android应用风险评估方法。首先,通过对应用程序进行逆向工程
    发表于 10-25 16:57 4次下载
    如何使用<b class='flag-5'>Android</b>的<b class='flag-5'>权限</b>实现应用风险评估详细方法说明

    基于权限Android应用风险评估方法

    针对Android权限机制存在的问题以及传统的应用风险等级评估方法的不足,提出了一种基于权限Android应用风险评估方法。首先,通过对应用程序进行逆向工程
    发表于 07-17 15:55 11次下载
    基于<b class='flag-5'>权限</b>的<b class='flag-5'>Android</b>应用风险评估方法

    Android挂载system文件夹读写权限

    Android系统中,system文件夹一般都是只读属性,无论是root用户还是普通权限用户,在Android安全研究或开发过程中
    的头像 发表于 08-08 09:36 7209次阅读
    <b class='flag-5'>Android</b>挂载system文件夹读写<b class='flag-5'>权限</b>

    oracle系统权限和对象权限的区别

    Oracle系统权限和对象权限是Oracle数据库中的两种不同类型的权限控制机制。虽然它们都是用于限制用户对数据库进行操作的权限,但它们的作
    的头像 发表于 12-05 16:21 358次阅读