我已将我的应用程序复制到/ system / priv-app /并重新启动了系统。该应用程序不再显示在“下载的应用程序”下,而是现在显示在“系统应用程序”下。但是,仅当我没有删除/ data / app /下的应用程序原始副本时,才会发生这种情况。如果我确实删除了/ data / app /下的原始副本并重新启动,则该应用程序根本不会显示在任何地方,即使在/ system / priv-app /下也有它的副本。此外,我还使用getPackageManager()。getApplicationInfo(getPackageName(),0).sourceDir进行了验证,当该应用确实运行时(如果我在/ data / app /中仍然有一个副本),该应用将从非特权目录运行,即使我是从System Apps下启动的。
我的权限和所有权与/ system / priv-app /目录中的所有其他应用一致: drwxr-xr-x根目录
我发现了一些相关的stackoverflow问题,据说有时候复制到/ system / priv-app /之后,有必要在APK上运行chcon。我的系统发出错误消息“无法用u:object_r:app_data_file:s0标记[我的路径]:传输端点不支持该操作”。我发现了一些文档,其中说:“您仅限于更改分区使用ext4文件系统格式化的文件的上下文。任何尝试在另一个系统上更改文件的上下文都会导致[我得到的错误消息]。”因此,显然chcon不是我的解决方案。
对于将我的应用显示在“系统应用”下并从/ system / priv-app /目录运行的任何提示,我将不胜感激。
谢谢!
编辑后添加:我还用已用于关键系统应用程序的系统密钥对我的APK进行了签名。这也没有效果。
答案 0 :(得分:0)
事实证明,我需要先使用 Android软件包管理器从其原始位置卸载软件包,然后系统才能将其安装。以前,我只是在命令行中将其从原始位置删除。这次,我将文件从/ data / app /复制到/ system / priv-app /,运行 pm卸载[我的软件包名称] ,然后重新启动。重新启动系统后,程序已成功安装。