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"
并找到了确切的错误,即“签名不匹配”。然后联系了厂家,问题解决了
在我们公司,我们希望根据要求从应用程序更改设备日期和时间。该应用程序将 运行 在具有制造商提供的自定义 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"
并找到了确切的错误,即“签名不匹配”。然后联系了厂家,问题解决了