按此处的文档
https://source.android.com/devices/bootloader/product-partitions
Google说:
Android 9中的/ product分区是/ system分区的扩展。由于/ product和/ system分区之间的ABI较弱,因此必须同时升级两个分区,并且ABI应该基于System SDK。如果System SDK无法涵盖/ product和/ system之间的所有API界面,则应由OEM负责在两个分区之间维护自己的ABI。
/ product和/ system分区可以相互依赖。但是,使用通用系统映像(GSI)进行的测试必须能够在没有/ product分区的情况下正常运行。
/ product分区不得与/ vendor分区有任何依赖性,并且/ product分区与/ vendor之间不允许直接交互(由SEpolicy强制执行)。
放置在/ product / priv-app与/ system / priv-app中的APK表现不一样时,我遇到了麻烦。
APK详细信息:
AOSP:
问题:
将APK放置在/ system / priv-app中后(手动将其放置在文件夹中),所有功能均正确。该应用程序能够通过/ data中的套接字进行通信。该套接字归系统所有,该应用程序(在多用户环境中)具有2个实例。一种作为系统运行,另一种作为用户运行。当发生某种情况时,此应用程序将写入套接字。在/ system / priv-app上时,该应用程序可以连接到套接字并成功进行写入。当我生成一个新的干净系统映像并将apk放到/ product / priv-app中时,我在套接字上获得了拒绝的权限。
文档非常混乱,多年来,Google尚未根据APK在系统上的位置来澄清或列出特定权限。
我读过一些东西,例如某些应用程序比其他应用程序更系统,但这意味着什么。因此,我所知道的所有权限来自我自己的实验。
此行为在任何文档中都没有描述,我希望其他在产品分区中处理过priv-apps的人对此有所了解,并在可能的情况下予以澄清。
谢谢!