【问题标题】:Google Glass // System signature // Install APK in backgroundGoogle Glass // 系统签名 // 在后台安装 APK
【发布时间】:2016-07-02 00:27:49
【问题描述】:

我想在 google glass 设备上以编程方式在后台下载和安装/删除 APK。

我已经尝试过的步骤:

  • 将 APK 移至 /system/priv-apps
  • 尝试使用系统签名对APK进行签名(不知道我是否使用正确的签名)
  • 将 android sharedUserId 设置为“android.uid.system” -> 这在安装时给了我一个权限错误

谁能帮我让我的应用通过系统签名进行签名?我真的不想编写在每次启动时运行的 shell 脚本..

我在尝试执行时也收到以下错误

pm install -r APK_PATH

以编程方式命令:

Error running exec(). Command: [su] Working Directory: null Environment: null

请帮帮我! :-)

【问题讨论】:

    标签: android google-glass android-permissions package-managers elevated-privileges


    【解决方案1】:

    根据这个documentation,注意APK需要满足以下条件:

    • 它必须是拉链对齐的。
    • 在此之后,您不得对包名称或私有签名密钥进行任何更改(如果有这些更改,Android 包管理器将不允许升级)。
    • 它必须小于 50 兆字节。
    • 必须使用最新版本的 GDK 编译。

    要基于此thread 对 APK 进行签名,

    除了使用由 生成的证书签署 Android 1.6 for Dream 之外 我自己,我也设法用平台证书签署了我的应用程序 并使用系统 sharedUserId 运行它。这些是我采取的步骤:

    • 使用http://source.android.com/documentation/building-for-dream 构建并刷入您自己的 Android 梦想。使用 mkkey.sh 脚本 http://pdk.android.com/online-pdk/guide/release_keys.html 创建 新证书,包括“制作”之前的 x509 证书。
    • 在应用程序的AndroidManifest.xml 中:在<manifest> 元素下,添加属性android:sharedUserId="android.uid.system"
    • 使用 Eclipse 导出 Android 应用程序的未签名版本:右键单击项目 >> Android 工具 >> 导出 未签名的应用程序包。
    • 使用<root-of-android-source-tree>/out/host/<your-host>/framework/signapk.jar<root-of-android-source-tree>/build/target/product/security 中使用platform.x509.pemplatform.pk8 为您的应用签名 之前生成的:

      java -jar signapk.jar platform.x509.pem platform.pk8 YourApp-unsigned.apk YourApp-signed.apk.
      
    • 将应用安装到您的设备上:

      adb install YourApp-signed.apk
      
    • 运行您的应用
    • 使用adb shell ps 确认您的应用正在作为系统运行。

    查看这些相关论坛:

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-10
      • 2012-09-17
      • 1970-01-01
      • 2017-12-06
      相关资源
      最近更新 更多