我最近在自定义 Android 版本中遇到了一个奇怪的问题?我已经有几个月的工作 ROM,并且使用这个 ROM 我已经能够将平台签名的 apk 安装到用户空间(/data/app)。最近,在重建 ROM 后,我一直无法安装相同的 apk。任何安装平台签名应用程序的尝试(无论是通过 adb install 还是 pm install)都会产生以下消息:
Failure [INSTALL_FAILED_INVALID_INSTALL_LOCATION]
翻遍Android源码后,发现如下相关代码块:
if ((compareSignatures(pkg.mSignatures, s1) == PackageManager.SIGNATURE_MATCH)) {
Slog.w(TAG, "Cannot install platform packages to user storage");
mLastScanError = PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION;
return null;
}
根据我的阅读,似乎绝不应该允许在用户空间中安装系统应用程序。在用户空间中安装系统应用程序的最初情况是否异常?是否可以在用户空间中安装平台签名的应用程序,如果可以,如何做到这一点?