Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中创建系统应用程序_Android_Settings_System_Application Settings_System Administration - Fatal编程技术网

如何在android中创建系统应用程序

如何在android中创建系统应用程序,android,settings,system,application-settings,system-administration,Android,Settings,System,Application Settings,System Administration,我想为非根应用程序创建一个系统应用程序(安装时将请求用户许可将其设置为系统应用程序)。由于我不熟悉android,请告诉我如何创建它 提前感谢。真正的系统应用程序被烘焙到ROM映像中,并使用与ROM签名相同的密钥进行签名,使它们能够额外访问系统 如果不更新设备的ROM映像,您无法在同一级别上添加新的系统应用程序,即使这样,您也需要OEM密钥来签署您的应用程序,并且您必须请求他们将其包含在ROM中 拥有根设备可以让标准应用程序获得额外的访问权限,而不必成为系统应用程序。我不确定你能否做到这一点。首

我想为非根应用程序创建一个系统应用程序(安装时将请求用户许可将其设置为系统应用程序)。由于我不熟悉android,请告诉我如何创建它


提前感谢。

真正的系统应用程序被烘焙到ROM映像中,并使用与ROM签名相同的密钥进行签名,使它们能够额外访问系统

如果不更新设备的ROM映像,您无法在同一级别上添加新的系统应用程序,即使这样,您也需要OEM密钥来签署您的应用程序,并且您必须请求他们将其包含在ROM中


拥有根设备可以让标准应用程序获得额外的访问权限,而不必成为系统应用程序。

我不确定你能否做到这一点。首先,您需要使用Android密钥对应用程序进行签名,由于您的手机没有根目录,我不知道您是否能够做到这一点。请参阅本文()。也许这会对你有所帮助。你的问题似乎自相矛盾。既然你告诉我们你不熟悉安卓系统,你就必须明确说明你使用“系统应用”这个词的确切含义。例如,安卓系统上的iOS开发者肯定会对安卓系统上的“系统应用”有完全不同的定义,这并不完全正确。系统应用不需要在固件/ROM中-它们可以像普通(非系统)应用一样安装。正如您所指出的,关键点是应用程序必须使用与固件应用程序签名相同的密钥进行签名。@adelphus但如果它们像普通应用程序一样安装,也可以用iirc的相同方式卸载。尽管可以卸载它们,但这不一定是个问题。(如果它们被正确地烘焙到ROM中,则只能卸载更新)@adelphus:(1)你是说,如果一个应用程序使用与操作系统相同的密钥进行签名,那么即使它们驻留在数据/应用程序中,它们也拥有像系统应用程序一样的所有权限?(2) 比如说,一旦我们用系统密钥签署了一个应用程序,我们有没有办法确认该应用程序真的已经成为一个系统应用程序?@Basher51(1)是的。(2). 要使应用程序以系统用户的身份运行,您需要在应用程序的清单中指定android:sharedUserId=“android.uid.system”(当然,还需要使用固件密钥对其进行签名)。确定应用程序是否实际作为系统运行的最简单方法是在logcat消息中查看其uid-系统用户的uid始终为1000。