我有一个带有Android 7.1.2的root电视盒,它没有附带Files
应用程序(com.android.documentsui
),所以我不能给外部驱动器写入权限。
我尝试了以下步骤来安装DocumentsUI.apk
:
DocumentsUI.apk
移至/system/priv-app/DocumentsUI/DocumentsUI.apk
chmod 744 /system/priv-app/DocumentsUI
chmod 644 /system/priv-app/DocumentsUI/DocumentsUI.apk
chown 0.0 /system/priv-app/DocumentsUI
chown 0.0 /system/priv-app/DocumentsUI/DocumentsUI.apk
chcon u:object_r:system_file:s0 /system/priv-app/DocumentsUI
chcon u:object_r:system_file:s0 /system/priv-app/DocumentsUI/DocumentsUI.apk
即便如此,当我尝试启动应用程序时,它总是强制关闭logcat上的以下错误消息:
Neither user 10072 nor current process has android.permission.CACHE_CONTENT
不知道我错过了什么吗?
请注意我不在Android 8+上,所以据我所知,我不必在/system/etc/permissions
上添加XML。
答案 0 :(得分:0)
CACHE_CONTENT
权限具有保护级别签名:
<!-- @hide Allows an application to cache content.
<p>Not for use by third-party applications.
<p>Protection level: signature
-->
<permission android:name="android.permission.CACHE_CONTENT"
android:protectionLevel="signature" />
将您的应用放入/system/priv-app
是不够的。它还需要使用用于签署平台的相同密钥进行签名(因为它是定义该权限的Android平台)。
AFAIK这里不是一个简单的答案。您需要将未签名的APK集成到Android构建系统中作为预构建(或者如果您有源代码,作为常规应用程序),并构建您自己的Android dist和flash。
答案 1 :(得分:0)
只需在Kodi网站上找到该线程可能会有所帮助。 https://forum.kodi.tv/showthread.php?tid=308040&page=2
简短版本:由于您已扎根,因此请找到 /data/system/packages.xml 和 /data/system/packages.list
现在,您应该在packages.list中找到您的软件包名称,然后编辑packages.xml
找到所需的应用部分(例如com.ghisler.android.TotalCommander),
locate its <perms> section and add the following line:
<item name="android.permission.WRITE_MEDIA_STORAGE" granted="true" flags="0" />
如果我输入的内容不清楚,请查看Kodi线程。希望这会有所帮助,
克里斯。