在this discussion之后,我签署了一个系统应用程序,我正在使用我从制造商处收到的特定设备的专有平台证书。我签了如下:
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卡,但无法设置首选应用程序(my code similar to this),它现在不再抛出SecurityException,而是写入SD卡会抛出FileNotFoundException许可被拒绝的消息。
我的应用程序获得了一些受保护的权限,但却失去了其他一些权限,可能会发生什么?
答案 0 :(得分:4)
Ricardo Cerqueira(CyanogenMod开发者)非常友好地通过Google +私下回复我:
系统用户无法编写外部存储。它的 实际上是唯一禁止这样做的用户。