Android究竟如何确定应用程序是否具有root权限的system application
?Android中的系统应用程序
我知道对于这样的应用程序,ApplicationInfo.FLAG_SYSTEM
将被启用,并且这些应用程序必须在Manifest
文件中声明共享用户标识为"android.uid.system"
。 除此之外,还有另一个标准,其中位于/system/app
中的应用程序也应该被视为系统应用程序。
我搜索了AOSP中PackageMangerService.java的源代码,我观察到如果共享用户标识为android.uid.system
,那么该应用程序将被指定为FLAG_SYSTEM
。
但我想,在/system/app
可用的应用程序不包含共享用户ID为android.uid.system
然后他们如何获得此标志FLAG_SYSTEM
为他们启用?
系统应用程序没有“root权限”。具有root访问权限并安装在'/ system'分区上并不相关。 – CommonsWare
@CommonsWare在这种情况下,我实际上在两者之间感到困惑,并希望获得关于这两者的完整信息。每种方式的特征/特点以及如何将某个应用程序转换为系统应用程序和/或向其提供root权限?你能否澄清我的疑问,或者至少重定向我? – darthvading
@darthvading没有应用程序将具有root权限。如果一个设备已经被植入,一个应用程序可以调用su(如果已安装)以root身份执行操作,但这些应用程序以标准用户身份运行。 * system *是android中定义的特殊用户,拥有额外的权限。 http://androidxref.com/5.1.0_r1/xref/system/core/include/private/android_filesystem_config.h#36描述了特殊用户的映射。 如果它是一个没有root的工厂设备,那么您将无法以系统用户的身份安装应用程序。 – odexcide