Android :正在使用系统签名登录 android 应用

Android :Signing in android app with system signature

在我们公司,我们希望根据要求从应用程序更改设备日期和时间。该应用程序将 运行 在具有制造商提供的自定义 ROM 的专用 android 设备上。为了实现我正在尝试使用制造商密钥签署我们的应用程序,如下所示。

java -jar signapk.jar platform.x509.pem platform.pk8 old.apk new.apk

但是没有用。如果我用下面的代码验证它说应用程序不是系统应用程序。

public boolean isSystemApp(String packageName) {
        final String SYSTEM_PACKAGE_NAME = "android";
        PackageManager mPackageManager = (PackageManager) getPackageManager();
        try {
            // Get packageinfo for target application
            PackageInfo targetPkgInfo = mPackageManager.getPackageInfo(
                    packageName, PackageManager.GET_SIGNATURES);
            // Get packageinfo for system package
            PackageInfo sys = mPackageManager.getPackageInfo(
                    SYSTEM_PACKAGE_NAME, PackageManager.GET_SIGNATURES);
            // Match both packageinfo for there signatures
            return (targetPkgInfo != null && targetPkgInfo.signatures != null && sys.signatures[0]
                    .equals(targetPkgInfo.signatures[0]));
        } catch (PackageManager.NameNotFoundException e) {
            return false;
        }
    }

此外,按照建议 here,如果我在清单中添加 android:sharedUserId="android.uid.system",我将无法安装我的应用程序,因为它显示“该包与同名的现有包冲突”。

这里有什么我遗漏的吗?请有人帮我解决这个问题。谢谢。

我没有进一步分析它是我的错误,我尝试安装它 adb install -r ".apk" 并找到了确切的错误,即“签名不匹配”。然后联系了厂家,问题解决了