2

此讨论之后,我使用从制造商处收到的特定设备的专有平台证书签署了我正在开发的系统应用程序。我签名如下:

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 并显示一条消息权限被拒绝。

如果我的应用程序获得了一些受保护的权限,但失去了一些其他权限,会发生什么情况?

4

1 回答 1

4

Ricardo Cerqueira(CyanogenMod 开发人员)非常乐意通过 Google+ 私下回复我:

根据设计,系统用户不能写入外部存储。它实际上是唯一被禁止这样做的用户。

于 2013-01-05T00:42:11.950 回答