在此讨论之后,我使用从制造商处收到的特定设备的专有平台证书签署了我正在开发的系统应用程序。我签名如下:
java -jar out/host/linux-x86/framework/signapk.jar \
build/target/product/security/platform.x509.pem \
build/target/product/security/platform.pk8 \
Launcher-unsigned.apk \
Launcher-unsigned.apk
zipalign -f 4 Launcher-signed.apk Launcher.apk
我的启动器具有各种权限:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
[snip]
<uses-permission
android:name="android.permission.SET_PREFERRED_APPLICATIONS"
tools:ignore="ProtectedPermissons" />
我在清单中包括:
<manifest [...]
android:sharedUserId="android.uid.system" >
以前我的应用程序可以成功写入 SD 卡,但无法设置首选应用程序(我的代码与此类似),它现在不再抛出 SecurityException,而是写入 SD 卡会抛出 FileNotFoundException 并显示一条消息权限被拒绝。
如果我的应用程序获得了一些受保护的权限,但失去了一些其他权限,会发生什么情况?