美文网首页
PackageManager 检查调用者是否有系统签名(系统Ap

PackageManager 检查调用者是否有系统签名(系统Ap

作者: 行走中的3卡 | 来源:发表于2023-08-21 15:43 被阅读0次

抽取方法:

    boolean checkPlatformSignatureByUid(int uid){
        if (mContext.getPackageManager().checkSignatures(Process.SYSTEM_UID, uid) == PackageManager.SIGNATURE_MATCH) {
            return true;
        }

        return false;
    }

使用时,通过 Binder.getCallingUid() 获取当前调用者的uid
checkPlatformSignatureByUid(Binder.getCallingUid()) == false

源码

有两个方法,packageName 或者 uid 比较
frameworks/base/core/java/android/content/pm/PackageManager.java

    @CheckResult
    @SignatureResult
    public abstract int checkSignatures(@NonNull String packageName1,
            @NonNull String packageName2);
            
    @CheckResult
    public abstract @SignatureResult int checkSignatures(int uid1, int uid2);       

相关文章

网友评论

      本文标题:PackageManager 检查调用者是否有系统签名(系统Ap

      本文链接:https://www.haomeiwen.com/subject/mracudtx.html