【问题标题】:How to create System Apps in android如何在android中创建系统应用程序
【发布时间】:2013-04-26 09:12:38
【问题描述】:

我想为无根应用程序创建一个系统应用程序(安装时会询问用户是否允许将其设置为系统应用程序)。由于我对android不熟悉,请告诉我如何创建它。

提前致谢。

【问题讨论】:

  • 我不确定你能做到这一点。首先,您需要使用 Android 密钥对您的应用程序进行签名,并且由于您的手机未 root,我不知道您是否可以这样做
  • 看这篇文章(androidauthority.com/…)。也许它会帮助你。
  • 您的问题似乎自相矛盾。由于您告诉我们您不熟悉 Android,因此您必须在使用“系统应用程序”一词时准确说明其含义。例如,Android 上的 iOS 开发人员肯定会对 Android 上的“系统应用”有完全不同的定义。

标签: android settings system application-settings system-administration


【解决方案1】:

真正的系统应用程序被烘焙到 ROM 映像中,并使用与 ROM 签名相同的密钥进行签名,从而为它们提供对系统的额外访问权限。

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

拥有根设备允许标准应用获得额外访问权限,而无需成为系统应用。

【讨论】:

  • 不完全正确。系统应用程序不需要需要在固件/ROM 中 - 它们可以像普通(非系统)应用程序一样安装。正如您所指出的,关键点是应用必须使用与固件应用签名相同的密钥进行签名。
  • @adelphus 但是如果像普通应用一样安装的话,也可以像iirc一样卸载。
  • 它们可以被卸载,但这不一定是个问题。 (如果它们被正确地烘焙到 ROM 中,则只能卸载更新)
  • @adelphus :(1)您是说如果应用程序使用与操作系统相同的密钥进行签名,那么即使它们驻留在数据/应用程序中,它们也像系统应用程序一样拥有所有权限? (2) 说,一旦我们用系统密钥签署了一个应用程序,我们有什么方法可以确认该应用程序真的成为了系统应用程序?
  • @Basher51 (1) 是的。 (2)。要真正使应用程序以系统用户身份运行,您需要在应用程序的清单中指定 android:sharedUserId="android.uid.system" (当然,使用固件密钥对其进行签名)。确定应用程序是否实际作为系统运行的最简单方法是查看其在 logcat 消息中的 uid - 系统用户的 uid 始终为 1000。
猜你喜欢
  • 1970-01-01
  • 2013-06-17
  • 1970-01-01
  • 2020-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-16
  • 1970-01-01
相关资源
最近更新 更多