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,检查则更为严格,会双向的检查发出者和接受者的权限.
分享到:
相关推荐
本文将详细介绍Permission权限机制及其在Android系统中的使用。 首先,Permission权限机制是Android系统为了防止恶意软件或者未经授权的操作而设计的一种安全措施。权限分为普通权限和危险权限两大类。普通权限通常...
Android权限机制通过一系列的权限声明和权限检查来实现这一目标。本文将详细介绍部分Android权限,并解释它们的作用与应用场景。 #### 二、详细权限介绍 1. **ACCESS_COARSE_LOCATION** - **定义**:此权限用于...
在Android操作系统中,权限管理是保护用户数据和设备安全的关键机制。每个应用程序在运行时,如果需要访问特定的系统资源或执行敏感操作,必须先在`AndroidManifest.xml`文件中声明所需权限。以下是对给定文件中列出...
Android权限是一种机制,用于限制应用程序可以访问或执行的操作,以保护用户的数据和设备安全。本资源"Android permission 访问权限大全.zip"提供了一个全面的Android权限列表,对于开发者来说,理解和掌握这些权限...
在Android操作系统中,权限管理是保护用户数据和系统安全的关键机制。Android权限分为多个级别,开发者需要在应用程序的AndroidManifest.xml文件中明确声明所需的权限,以便系统在安装时检查并控制应用对敏感资源的...
Android 权限配置是 Android 操作系统中的一项重要机制,用于保护用户隐私、数据安全和设备安全。通过配置权限,开发者可以控制应用程序对设备硬件、数据和操作系统的访问权限,从而避免恶意应用程序对用户数据和...
在Android系统中,权限管理是保障应用安全性和用户隐私的重要机制。默认情况下,Android提供了许多预定义的权限,如访问互联网、读写联系人等。然而,在某些特殊场景下,开发者可能需要创建自定义权限(Custom ...
《Android权限申请插件——AndroidPermission-1.0.0》 在Android系统中,从6.0(API级别23)开始,引入了运行时权限的概念,这使得应用程序在运行时需要请求用户授予特定的敏感权限,而不再像之前版本那样在安装时...
Android permission 是 Android 操作系统中的一种机制,用于控制应用程序对系统资源的访问权限。该机制可以保护用户的隐私和系统的安全,使得应用程序只能访问被授予的权限范围内的资源。 在 AndroidManifest.xml ...
在Android系统中,访问权限是控制应用程序如何与操作系统交互的关键机制。这些权限涉及到用户隐私、设备功能以及系统服务等多个方面。Android权限分为多个层次,包括正常权限、危险权限和特殊权限,它们各自有不同的...
本文将详细介绍Android权限机制,并针对部分常见的Android权限进行解析。 #### 一、Android权限概述 Android系统为了保护用户隐私以及提高系统的安全性,引入了一套权限管理机制。开发者在编写应用时需要明确声明...
由上篇Android Permission权限机制引子,我们知道Android 通过在每台设备上实施了基于权限的安全策略来处理安全问题,采用权限来限制安装应用程序的能力。本篇文章继续来探讨和Android权限相关的话题,主要集中在...
在Android操作系统中,权限管理是保护用户隐私和应用安全的关键机制。Android SDK权限大全涵盖了多个方面,涉及到系统、网络、位置、硬件等多个领域的访问控制。以下是对这些权限的详细解释: 1. `android....
在Android系统中,权限机制是保护应用程序数据和功能的关键组件,它允许开发者控制其他应用或系统服务对特定功能的访问。本实例将深入探讨如何在Android中创建和使用自定义权限,这对于理解Android的安全模型至关...
Android SDK Permission 系统是一种保护 Android 设备和用户隐私的机制,它允许应用程序访问特定的系统功能和用户数据,但同时也对应用程序的权限进行限制和控制。通过在 AndroidManifest.xml 文件中声明权限,应用...
在深入介绍Android权限之前,需要了解Android应用权限机制是Android安全模型的基础。Android系统为每一个应用分配一个用户ID,并运行在独立的进程上,这种机制为不同应用之间的隔离提供了保障。Android的权限系统...
在Android系统中,权限管理是保护用户数据和系统安全的关键机制。Android权限分为两种类型:普通权限(Normal Permissions)和危险权限(Dangerous Permissions)。在Android 6.0(API级别23)及以上版本,应用在...
AndroidPermission项目是针对Android平台的一个源码示例,旨在帮助开发者理解和实现应用的权限控制。本文将深入解析该项目中的关键知识点,并探讨如何在实际开发中应用这些知识。 ### 一、Android权限系统 Android...