我应该怎么做才能创建一个系统应用程序(以获得android:sharedUserId="android.uid.system"
在清单文件中使用的权利而不会收到包管理器关于认证问题的错误?
我使用带有股票固件的植根手机。
我应该怎么做才能创建一个系统应用程序(以获得android:sharedUserId="android.uid.system"
在清单文件中使用的权利而不会收到包管理器关于认证问题的错误?
我使用带有股票固件的植根手机。
好的,我认为我从优秀的 xda 开发人员那里找到了解决方案:http: //forum.xda-developers.com/showthread.php? t=1776095这里是完整描述如何获得对平台密钥签名的应用程序的访问权限。你应用这种方法吗?
PS有趣的是,来自堆栈而不是立即调查难题的用户说您无法解决它,然后降低新手用户的声誉......
我应该做什么来创建一个系统应用程序
有两种类型的系统应用程序:
安装在系统分区的应用程序,可由具有root权限的用户完成
由与固件签名相同的签名密钥签名的应用程序
获取使用android:sharedUserId="android.uid.system"的权利
这肯定需要您的应用程序使用与固件签名相同的签名密钥进行签名。对于任何android:sharedUserId
.
但是有些人编辑股票应用程序,准备 zip 文件,用户可以通过恢复来更新系统应用程序。
欢迎您提供任何证据证明他们的所作所为以某种方式涉及android:sharedUserId="android.uid.system"
。
系统应用程序必须使用平台密钥进行签名。这是由开发人员在自己的设备或移动运营商上部署 android 平台来完成的。
如果这是您的情况,最简单的方法是将其添加到您的 Android.mk:
LOCAL_CERTIFICATE := platform
LOCAL_PRIVILEGED_MODULE := true
如果您添加这些行而不将 android:sharedUserId="android.uid.system" 添加到您的清单中,您将成为一个 platform_app。系统应用程序比平台应用程序更有特权。它使用平台密钥并以系统用户身份运行。
如果您不是平台供应商,则平台供应商需要使用他们的平台密钥对您的应用程序进行签名。包括我公司在内的一些供应商会为第 3 方这样做,以证明这样做的正当理由。
如果没有签名,您的应用程序只能在有根设备上使用。
我不需要使用固件签名来签署我的应用程序!我有一个根设备。因此,我可以授予自己使用 adb 写入某些目录的权限。
我将我的应用程序移动到/system/priv-app
而不是/system/app
使用这些步骤:将我的 apk 推送到 /system/app
现在,我可以访问系统权限,例如android.permission.SHUTDOWN
有两种类型的系统应用程序。
类型 1:与 Device ROM 签名相同的 App。
类型 2:设备存储位置中 system/priv-app 中的签名应用程序(可能因 adnroid 版本而异)。