我正在编写一个Android应用程序,它将在具有我控制的ROM的自定义硬件上运行。
设备将运行一个应用程序(作为启动器),并且一旦部署了设备,我(通常)将无法再访问它。该应用程序还支持自身更新。
这样,我需要一种适当处理应用程序权限的方法,即,如果将权限添加到清单中,则需要自动授予这些权限(包括危险的权限)。
现在,应用程序正在使用与设备上运行的Android OS相同的证书进行签名,并且在刷新设备时,该应用程序将放置在priv-app目录中。 我以为这会自动授予权限,但事实并非如此。
我尝试将android:sharedUserId="android.uid.system"
添加到清单中,的确确实授予了所有权限,但是由于已经有很多旧设备“荒野”,因此添加此选项可以使应用程序能够不再更新(引发INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
错误)。
那么,在这种情况下处理权限的最佳方法是什么?我在这里还缺少其他的伏都教巫术吗?我应该咬一下子弹,添加sharedUserId
选项并手动更新所有设备(不需要的但可行的选项)吗?