`
yelinsen05
  • 浏览: 493204 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Android Permission 机制

阅读更多
AndroidManifest.xml里面的sharedUserID能够让不同的apk运行在同一个进程里,分享里面的数据,比如Contacts等,当然这个sharedUserID可以设置成“android.uid.system”就可以运行在系统进程中,有权修改系统数据。

但仅仅有着一个sharedUserID并不能够保证你的apk一定能运行成功,怎么办?签名啊。如果你有Android的源码就比较方便了,直接把Android.mk里面的LOCAL_CERTIFICATE 赋值为platform就行了。然后mm编辑,就能安装了。因为在安装的时候,PackageManager会检查,如果sharedUserId是system的,它会看这个apk的签名是不是system.crt,如果不是,会报出permission deny的error。而把LOCAL_CERTIFICATE改成platform就等于给APK签名。

进而可以通过这个问题研究一下整个Android permission的机制。系统的安全机制通过给每个用户分配单独的uid和gid来实现,Android系统中pid代表进程ID,这个是有系统在程序运行时分配的,这一点可以防止地址空间的数据共享,增强内存空间的安全性。对于外部则用到了uid进行封锁。

系统会给于用户进程单独的uid,当然系统也是要运行进程的,比如System,Radio,蓝牙,IO设备。系统中的init.rc文件会详细定义这些文件的权限。Android中对uid的定义是Root最高,其次是system,最低的是app。这是基于Linux系统的结果。

那么在APP里,要对一些进程进行访问,或者接受Broadcast,或者启动Activity、Service都是需要权限的,不能说你的app什么都能做,这也是需要在manifest file中设置的。

比如在startActivity时,如果你start自己apk里的activity,它们会在同一个application下,那么自然也就使用一个uid,start过程自然没有什么问题。如果你需要start别人写的Activity或者service,都需要用到同一个shareUserId才行,因为在ActivityManagerService要启动activity的之前,会首先检查uid,用checkPermission方法,透过binder获得pid和uid,检查你activity的binder的权限,如果你有权限则已,没权限的话就会抛出security exception。至于broadcast,检查则更为严格,会双向的检查发出者和接受者的权限.
分享到:
评论

相关推荐

    Android权限管理之Permission权限机制及使用详解

    本篇文章主要介绍了Android权限管理之Permission权限机制及使用,主要讲诉了android的权限使用问题,有需要的可以了解一下。

    Android中Permission权限机制的具体使用

    由上篇Android Permission权限机制引子,我们知道Android 通过在每台设备上实施了基于权限的安全策略来处理安全问题,采用权限来限制安装应用程序的能力。本篇文章继续来探讨和Android权限相关的话题,主要集中在...

    Android 安全机制

    还 在此基础上进行扩展,提供了 permission 机制,它主要是用来对 Application 可以执行的某 些具体操作进行权限细分和访问控制,同时提供了 per-URI permission 机制,用来提供对某些特 定的数据块进行 ad-hoc 方式的...

    Android中的Permission权限机制介绍

    但这不得不带来了开发者滥用权限,黑客通过权限来进行恶意行为的风险,所以作为静态分析一个app是否为恶意软件的第一道关,获取并了解Android Permission权限意义是十分重大的。 权限策略 Android 框架提供一套默认...

    Android权限机制带来的一些安全问题介绍

    Android Permission权限机制引子 Android Permission权限机制的具体使用 权限机制的缺陷和不足 (1) 应用程序可以自由地命名一个新的权限,无须遵循一定的命名规则和限制,期盼用户对不同应用程序(包括未曾安装过的...

    Android签名机制介绍:生成keystore、签名、查看签名信息等方法

    我曾在Android Permission权限机制的具体使用一文中提过,对于申请权限的 protection level 为 signature 或者 signatureOrSystem 的,会检查权限申请者和权限声明者的证书是否是一致的。 至于签名机制的原理及其他...

    Android应用本地监听端口的安全风险

    可以通过网络与Android应用通信,其原本用于linux环境下开放网络服务,由于 缺乏对网络调用者身份或者本地调用者pid、permission等细粒度的安全检查机制,在实现不当的情况下,可以突破Android 的沙箱限制,以被攻击...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    Android 4游戏编程入门经典

     4.1.4 [uses-permission]元素  4.1.5 [uses-feature]元素  4.1.6 [uses-sdk]元素  4.1.7 10个简单步骤建立android游戏项目  4.1.8 市场过滤器  4.1.9 定义游戏图标  4.2 android api基础  4.2.1 创建测试...

    Android 6.0 蓝牙搜索不到设备原因,MIUI权限申请机制方法

    为提供更高的数据保护 ...<uses android:name=android.permission.ACCESS_COARSE_LOCATION/> <uses android:name=android.permission.ACCESS_FINE_LOCATION/> 在代码中调用时先进行权限判断,如果没有权限就去申请权

    RTPermission:[Deprecated] Android6.0 运行时权限申请工具,Android Marshmallow runtime permission utils

    [Deprecated]推荐使用RTPermissionAndroid6.0 运行时权限申请工具,Android Marshmallow runtime permission utilsRTPermission想了解该项目可参考下面的博客:前言Android6.0发布后带来的运行时权限机制,使得...

    android-push-manager:提供了一种机制,可以使Android应用程序中的Google Cloud Messaging快速运行

    该库提供了一种机制,可以使Android应用程序中的Google Cloud Messaging快速运行。 它提供了检索GCM注册ID和挂钩以将其发送到您的后端所需的代码,还涵盖了PushBullet在发现的所有陷阱,以确保其可靠运行,包括在...

    Android powermanger wakelock

    <uses-permission android:name="android.permission.DEVICE_POWER" /> 2. 所有的锁必须成对的使用, 如果申请了而没有及时释放,会造成系统故障。如申请了partial wakelock,而没有及时释放, 那系统就永远进不了...

    深入理解aidl&service;

    如果自己的service可以在别package中被引用,需要在manifest文件中把此service的android:exported属性设置为true,否则会导致引用时异常Android: java.lang.SecurityException: Permission Denial

    Android 代码分析

    26 Android IPC 通讯机制源码分析 73 26.1 Binder通信简介: 73 26.1.1. ServiceMananger进程注册过程源码分析: 74 26.1.2. client获取remote IServiceManager IBinder接口: 75 26.1.3. client获取Service的远程...

    android游戏编程入门

    uses-permission>元素 82  4.1.5 <uses-feature>元素 83  4.1.6 <uses-sdk>元素 84  4.1.7 10个简单步骤建立Android  游戏项目 84  4.1.8 市场过滤器 86  4.1.9 定义游戏图标 87  4.2 Android...

    Android6.0权限问题解决

    ● Acp 为 Android check permission 缩写,此库简化Android 6.0 系统复杂的权限操作而编写。 特点 ● 支持批量权限申请,不需要重写 onRequestPermissionsResult 方法,Activity 与 Fragment 中用法一致,一句话...

Global site tag (gtag.js) - Google Analytics