【问题标题】:Android System App InfoAndroid系统应用信息
【发布时间】:2014-05-10 09:38:49
【问题描述】:

我想要一些有关系统应用的一般信息。我正在与愿意向我提供使我的应用程序成为系统应用程序所需的信息的制造商合作。但是,我不确切知道这些信息应该是什么以及如何更改我的应用程序以使其成为具有给定信息的系统应用程序。我相信我的清单中需要这样的东西

android:sharedUserId="android.uid.system"

然后我需要使用制造商密钥签署我的应用程序吗?我不确定有人可以向我解释一下具体的流程吗?

另外,我的应用需要成为系统应用的原因是用户无法卸载它,但我的应用仍需要更新。当它是系统应用程序时,是否可以更新我的应用程序?如果像往常一样从谷歌播放,我会更新。

感谢您的帮助,我无法找到有关此主题的大量信息,希望您能提供帮助。

【问题讨论】:

  • ...........有人知道吗?
  • 系统分区内的所有应用程序都将被视为系统应用程序,应用程序不需要任何特定功能或实现,只需将apk放在system/app文件夹中即可,为此您需要Root访问权限,如果您计划随设备发布应用程序,则设备制造商会将您的应用程序放在特定文件夹中,然后再转售设备。

标签: android system sign


【解决方案1】:

此链接将为您提供一些信息。

系统应用程序不是由操作系统签名的应用程序 平台签名。这是许多人认为的常见错误,我们 稍后会谈到这一点。一个系统应用程序仅仅是一个 放置在 Android 中 /system/app 文件夹下的应用程序 设备。如果我们有一个应用程序只能安装在该文件夹中 访问操作系统的 ROM (system.img)。该应用程序位于 ROM 解压后的 /app 文件夹。加载的设备 自定义 ROM 将添加新的系统应用程序。的好处 系统应用程序是该应用程序无法从中删除 设备(用户无法卸载)。这只是因为 /system/app 是一个只读文件夹。

http://ricston.com/blog/explaining-behavior-android-application-system-apps-nonsystem-apps/

至于通过 Play 商店更新您的应用,我假设如果应用在 Play 商店中并且您每次都使用相同的签名,那么您应该能够毫无问题地做到这一点。它不必是制造商的证书,但最好使用该证书来签署您的应用程序。

因此,您唯一需要确保的是,在构建 ROM 时,制造商将您的 apk 放入系统文件夹中,它应该可以工作。

【讨论】:

  • 链接指向的页面仅显示 PHP 错误;(
  • 如果您将 apk 移动到 /system/priv-app 而不是 /system/app,您将获得另一个好处:您现在有权使用系统权限,例如 android.permission.SHUTDOWN。这是使用固件密钥签名的好选择。以下是移动应用程序的方法:stackoverflow.com/questions/2007024/push-my-apk-to-system-app/…
【解决方案2】:
  1. 使用 mkkey.sh http://www.kandroid.org/online-pdk/guide/release_keys.html 脚本创建新证书,包括 x509 证书。您不需要这些步骤,因为制造商会给您钥匙。
  2. 在应用程序的 AndroidManifest.xml 中:在元素下添加属性 android:sharedUserId=”android.uid.system”
  3. 使用 Eclipse 导出您的 Android 应用程序的未签名版本。 项目 >> Android 工具 >> 导出未签名的应用程序包
  4. 使用 /out/host//framework/signapk.jar 使用之前生成的 /build/target/product/security/ 中的 platform.x509.pem 和 platform.pk8 对您的应用进行签名

java –jar signapk.jar platform.x509.pem platform.pk8 your_app_unsigned.apk your_app_signed.apk

Kumar Bibek 已经回答了您的其他一些问题。这些是我必须执行相同操作时遵循的步骤。这是在 Android ICS 中完成的。步骤可能已经改变,但仍然值得一试。

【讨论】:

  • 好的,我已经完成了所有这些,并安装了 adb,但仍然无法 su。它说 uid 1000 不允许 su。也许我需要以某种方式安装到系统文件夹,而不仅仅是 adb install?
  • 如果您可以访问根文件系统的系统文件夹。复制到系统/应用文件夹并重新启动。我不确定这一切是否有效。 ICS 之后很多事情都发生了变化,比如通过 SELinux 等增加了安全性。
  • 移到 /system,不起作用。我认为 su 非常有货。有趣,我可以自己替换 su 吗?
  • 不是系统文件夹,而是 /system/app 文件夹。至少我们过去是这样做的。我想你的手机已经植根了,你正试图从 android 应用程序运行 su。
  • 嗨,有什么方法可以创建这些密钥吗?
【解决方案3】:

自 Android O (Oreo) 以来,您需要使用开发密钥对系统应用程序进行签名,与过去的版本不同,您只需将它们复制到过去不同的系统文件夹即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多