android.content.Context#CONTEXT_IGNORE_SECURITY源码实例Demo

下面列出了android.content.Context#CONTEXT_IGNORE_SECURITY 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: AndroidComponentPlugin   文件: ActivityThread.java
public final LoadedApk getPackageInfo(ApplicationInfo ai, CompatibilityInfo compatInfo,
        int flags) {
    boolean includeCode = (flags&Context.CONTEXT_INCLUDE_CODE) != 0;
    boolean securityViolation = includeCode && ai.uid != 0
            && ai.uid != Process.SYSTEM_UID && (mBoundApplication != null
                    ? !UserId.isSameApp(ai.uid, mBoundApplication.appInfo.uid)
                    : true);
    if ((flags&(Context.CONTEXT_INCLUDE_CODE
            |Context.CONTEXT_IGNORE_SECURITY))
            == Context.CONTEXT_INCLUDE_CODE) {
        if (securityViolation) {
            String msg = "Requesting code from " + ai.packageName
                    + " (with uid " + ai.uid + ")";
            if (mBoundApplication != null) {
                msg = msg + " to be run in process "
                    + mBoundApplication.processName + " (with uid "
                    + mBoundApplication.appInfo.uid + ")";
            }
            throw new SecurityException(msg);
        }
    }
    return getPackageInfo(ai, compatInfo, null, securityViolation, includeCode);
}
 
源代码2 项目: AndroidComponentPlugin   文件: ActivityThread.java
public final LoadedApk getPackageInfo(ApplicationInfo ai, CompatibilityInfo compatInfo,
        int flags) {
    boolean includeCode = (flags&Context.CONTEXT_INCLUDE_CODE) != 0;
    boolean securityViolation = includeCode && ai.uid != 0
            && ai.uid != Process.SYSTEM_UID && (mBoundApplication != null
                    ? ai.uid != mBoundApplication.appInfo.uid : true);
    if ((flags&(Context.CONTEXT_INCLUDE_CODE
            |Context.CONTEXT_IGNORE_SECURITY))
            == Context.CONTEXT_INCLUDE_CODE) {
        if (securityViolation) {
            String msg = "Requesting code from " + ai.packageName
                    + " (with uid " + ai.uid + ")";
            if (mBoundApplication != null) {
                msg = msg + " to be run in process "
                    + mBoundApplication.processName + " (with uid "
                    + mBoundApplication.appInfo.uid + ")";
            }
            throw new SecurityException(msg);
        }
    }
    return getPackageInfo(ai, compatInfo, null, securityViolation, includeCode);
}
 
源代码3 项目: AndroidComponentPlugin   文件: ContextImpl.java
@Override
public boolean canLoadUnsafeResources() {
    if (getPackageName().equals(getOpPackageName())) {
        return true;
    }
    return (mFlags & Context.CONTEXT_IGNORE_SECURITY) != 0;
}
 
源代码4 项目: AndroidComponentPlugin   文件: ContextImpl.java
@Override
public boolean canLoadUnsafeResources() {
    if (getPackageName().equals(getOpPackageName())) {
        return true;
    }
    return (mFlags & Context.CONTEXT_IGNORE_SECURITY) != 0;
}
 
源代码5 项目: AndroidComponentPlugin   文件: ContextImpl.java
@Override
public boolean canLoadUnsafeResources() {
    if (getPackageName().equals(getOpPackageName())) {
        return true;
    }
    return (mFlags & Context.CONTEXT_IGNORE_SECURITY) != 0;
}
 
源代码6 项目: AndroidComponentPlugin   文件: ContextImpl.java
@Override
public boolean canLoadUnsafeResources() {
    if (getPackageName().equals(getOpPackageName())) {
        return true;
    }
    return (mFlags & Context.CONTEXT_IGNORE_SECURITY) != 0;
}
 
源代码7 项目: AndroidComponentPlugin   文件: ContextImpl.java
@Override
public boolean canLoadUnsafeResources() {
    if (getPackageName().equals(getOpPackageName())) {
        return true;
    }
    return (mFlags & Context.CONTEXT_IGNORE_SECURITY) != 0;
}
 
源代码8 项目: android_9.0.0_r45   文件: ContextImpl.java
@Override
public boolean canLoadUnsafeResources() {
    if (getPackageName().equals(getOpPackageName())) {
        return true;
    }
    return (mFlags & Context.CONTEXT_IGNORE_SECURITY) != 0;
}
 
源代码9 项目: AndroidComponentPlugin   文件: ActivityThread.java
public final LoadedApk getPackageInfo(String packageName, CompatibilityInfo compatInfo,
        int flags) {
    synchronized (mPackages) {
        WeakReference<LoadedApk> ref;
        if ((flags&Context.CONTEXT_INCLUDE_CODE) != 0) {
            ref = mPackages.get(packageName);
        } else {
            ref = mResourcePackages.get(packageName);
        }
        LoadedApk packageInfo = ref != null ? ref.get() : null;
        //Slog.i(TAG, "getPackageInfo " + packageName + ": " + packageInfo);
        //if (packageInfo != null) Slog.i(TAG, "isUptoDate " + packageInfo.mResDir
        //        + ": " + packageInfo.mResources.getAssets().isUpToDate());
        if (packageInfo != null && (packageInfo.mResources == null
                || packageInfo.mResources.getAssets().isUpToDate())) {
            if (packageInfo.isSecurityViolation()
                    && (flags&Context.CONTEXT_IGNORE_SECURITY) == 0) {
                throw new SecurityException(
                        "Requesting code from " + packageName
                        + " to be run in process "
                        + mBoundApplication.processName
                        + "/" + mBoundApplication.appInfo.uid);
            }
            return packageInfo;
        }
    }

    ApplicationInfo ai = null;
    try {
        ai = getPackageManager().getApplicationInfo(packageName,
                PackageManager.GET_SHARED_LIBRARY_FILES, UserId.myUserId());
    } catch (RemoteException e) {
        // Ignore
    }

    if (ai != null) {
        return getPackageInfo(ai, compatInfo, flags);
    }

    return null;
}
 
源代码10 项目: AndroidComponentPlugin   文件: ActivityThread.java
public final LoadedApk getPackageInfo(String packageName, CompatibilityInfo compatInfo,
        int flags) {
    synchronized (mPackages) {
        WeakReference<LoadedApk> ref;
        if ((flags&Context.CONTEXT_INCLUDE_CODE) != 0) {
            ref = mPackages.get(packageName);
        } else {
            ref = mResourcePackages.get(packageName);
        }
        LoadedApk packageInfo = ref != null ? ref.get() : null;
        //Slog.i(TAG, "getPackageInfo " + packageName + ": " + packageInfo);
        //if (packageInfo != null) Slog.i(TAG, "isUptoDate " + packageInfo.mResDir
        //        + ": " + packageInfo.mResources.getAssets().isUpToDate());
        if (packageInfo != null && (packageInfo.mResources == null
                || packageInfo.mResources.getAssets().isUpToDate())) {
            if (packageInfo.isSecurityViolation()
                    && (flags&Context.CONTEXT_IGNORE_SECURITY) == 0) {
                throw new SecurityException(
                        "Requesting code from " + packageName
                        + " to be run in process "
                        + mBoundApplication.processName
                        + "/" + mBoundApplication.appInfo.uid);
            }
            return packageInfo;
        }
    }

    ApplicationInfo ai = null;
    try {
        ai = getPackageManager().getApplicationInfo(packageName,
                PackageManager.GET_SHARED_LIBRARY_FILES);
    } catch (RemoteException e) {
        // Ignore
    }

    if (ai != null) {
        return getPackageInfo(ai, compatInfo, flags);
    }

    return null;
}
 
 方法所在类
 同类方法