我正在开发一款应用程序,将它打包为安装在Android设备上的系统应用。由于制造商还需要一段时间才能向我们交付设备,因此在此期间,我想在模拟器中授予我的应用程序系统级别权限,以便我可以开发自动更新功能,从而实现静默安装APK文件而无需用户进行任何交互。根据我的理解,在Android上执行静默安装的唯一方法是,您的应用程序必须使用与操作系统相同的证书进行签名。那么,我该如何在模拟器中模拟这个过程呢?
我正在开发一款应用程序,将它打包为安装在Android设备上的系统应用。由于制造商还需要一段时间才能向我们交付设备,因此在此期间,我想在模拟器中授予我的应用程序系统级别权限,以便我可以开发自动更新功能,从而实现静默安装APK文件而无需用户进行任何交互。根据我的理解,在Android上执行静默安装的唯一方法是,您的应用程序必须使用与操作系统相同的证书进行签名。那么,我该如何在模拟器中模拟这个过程呢?
如果您想要一个signatureOrSystem权限,您只需要被放置在系统映像中; 您不需要签署任何特殊证书。您可以像这样一次性地执行此操作(直到退出仿真器):
> adb root
> adb remount
> adb push /path/to/My.apk /system/app/My.apk
完成此步骤后,您可以使用正常的过程在数据分区上安装进一步更新(“adb install -r /path/to/My.apk”,这是在Eclipse中运行时开发工具所做的)。以这种方式安装时,应用程序保留它从系统映像上的原始版本请求的任何签名或系统权限,但不能获得任何新的这样的权限。
如果您需要纯签名权限,则需要使用与声明这些权限的证书相同的证书对您的应用程序进行签名(通常是核心框架,但媒体系统是单独的证书等)。如果您正在请求不需要安装在系统映像上的签名权限,则可以将其安装为普通应用程序,因为由于签名,它仍然可以获得权限。
/build/target/product/security/
。android:sharedUserId="android.uid.system"
。