Android 多APK签名-签名保护级别行为
假设出现以下情况: 我有两个应用程序:A1和A2 A1定义了一个签名级别的权限,比如com.example.myapp.permission A2声明A1定义的权限 我有两个签名密钥:K1和K2 A1与K1和K2均签署。 A2仅与K1签名Android 多APK签名-签名保护级别行为,android,android-permissions,Android,Android Permissions,假设出现以下情况: 我有两个应用程序:A1和A2 A1定义了一个签名级别的权限,比如com.example.myapp.permission A2声明A1定义的权限 我有两个签名密钥:K1和K2 A1与K1和K2均签署。 A2仅与K1签名 如果A1公开受com.example.myapp.PERMISSION权限保护的服务,A2可以访问该服务吗?这两个应用程序是否都必须有所有签名,或者只要两个应用程序之间存在匹配,签名是否有效 Android将所有签名都视为Set-2应用程序必须具有相同的签名集
如果A1公开受com.example.myapp.PERMISSION权限保护的服务,A2可以访问该服务吗?这两个应用程序是否都必须有所有签名,或者只要两个应用程序之间存在匹配,签名是否有效 Android将所有签名都视为Set-2应用程序必须具有相同的签名集才能被认为是等效的。因此,在您的示例中,A2不会被授予权限,因为它的签名集不等于A1 下面是来自
ArraySet<Signature> set1 = new ArraySet<Signature>();
for (Signature sig : s1) {
set1.add(sig);
}
ArraySet<Signature> set2 = new ArraySet<Signature>();
for (Signature sig : s2) {
set2.add(sig);
}
// Make sure s2 contains all signatures in s1.
if (set1.equals(set2)) {
return PackageManager.SIGNATURE_MATCH;
}
return PackageManager.SIGNATURE_NO_MATCH;
}