Android系统应用信息

时间:2014-03-31 06:36:18

标签: android system sign

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

android:sharedUserId="android.uid.system"

然后我需要使用制造商密钥签署我的应用程序?我不确定是否有人可以向我解释这个过程会取得什么样的好处?

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

感谢您的帮助,我根本无法找到有关此主题的非常多信息,并希望得到帮助。

3 个答案:

答案 0 :(得分:13)

这里的链接会给你一些信息。

  

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

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

至于通过游戏商店更新您的应用程序,我假设您应该能够毫无问题地执行此操作,如果该应用程序位于游戏商店,并且您每次都使用相同的签名。它不一定是制造商的证书,但最好使用该证书来签署您的应用程序。

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

答案 1 :(得分:5)

  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签署您的应用
  5.   

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

    Kumar Bibek已经回答了你的一些其他问题。这些是我必须做同样的步骤。这是在Android ICS中完成的。这些步骤可能已经改变,但仍值得一试。

答案 2 :(得分:2)

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