在/ system / priv-app上安装APK

时间:2018-04-27 19:13:32

标签: android install system android-external-storage android-7.1-nougat

我有一个带有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。

2 个答案:

答案 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线程。希望这会有所帮助,

克里斯。