Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55cf361d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Don't depend directly on AppplicationInfo" into nyc-dev

parents 1c4da665 c3a6c78f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -5260,7 +5260,7 @@ public final class ActivityThread {
        // code is loaded to prevent issues with instances of TLS objects being created before
        // the provider is installed.
        Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "NetworkSecurityConfigProvider.install");
        NetworkSecurityConfigProvider.install(appContext, data.appInfo);
        NetworkSecurityConfigProvider.install(appContext);
        Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);

        // Continue loading instrumentation.
+16 −15
Original line number Diff line number Diff line
@@ -29,13 +29,19 @@ public class ManifestConfigSource implements ConfigSource {

    private final Object mLock = new Object();
    private final Context mContext;
    private final ApplicationInfo mInfo;
    private final int mApplicationInfoFlags;
    private final int mTargetSdkVersion;
    private final int mConfigResourceId;

    private ConfigSource mConfigSource;

    public ManifestConfigSource(Context context, ApplicationInfo info) {
    public ManifestConfigSource(Context context) {
        mContext = context;
        mInfo = info;
        // Cache values because ApplicationInfo is mutable and apps do modify it :(
        ApplicationInfo info = context.getApplicationInfo();
        mApplicationInfoFlags = info.flags;
        mTargetSdkVersion = info.targetSdkVersion;
        mConfigResourceId = info.networkSecurityConfigRes;
    }

    @Override
@@ -53,29 +59,24 @@ public class ManifestConfigSource implements ConfigSource {
            if (mConfigSource != null) {
                return mConfigSource;
            }
            int targetSdkVersion = mInfo.targetSdkVersion;
            int configResourceId = 0;
            if (mInfo != null) {
                configResourceId = mInfo.networkSecurityConfigRes;
            }

            ConfigSource source;
            if (configResourceId != 0) {
                boolean debugBuild = (mInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
            if (mConfigResourceId != 0) {
                boolean debugBuild = (mApplicationInfoFlags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
                if (DBG) {
                    Log.d(LOG_TAG, "Using Network Security Config from resource "
                            + mContext.getResources().getResourceEntryName(configResourceId)
                            + mContext.getResources().getResourceEntryName(mConfigResourceId)
                            + " debugBuild: " + debugBuild);
                }
                source = new XmlConfigSource(mContext, configResourceId, debugBuild,
                        targetSdkVersion);
                source = new XmlConfigSource(mContext, mConfigResourceId, debugBuild,
                        mTargetSdkVersion);
            } else {
                if (DBG) {
                    Log.d(LOG_TAG, "No Network Security Config specified, using platform default");
                }
                boolean usesCleartextTraffic =
                        (mInfo.flags & ApplicationInfo.FLAG_USES_CLEARTEXT_TRAFFIC) != 0;
                source = new DefaultConfigSource(usesCleartextTraffic, targetSdkVersion);
                        (mApplicationInfoFlags & ApplicationInfo.FLAG_USES_CLEARTEXT_TRAFFIC) != 0;
                source = new DefaultConfigSource(usesCleartextTraffic, mTargetSdkVersion);
            }
            mConfigSource = source;
            return mConfigSource;
+2 −3
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package android.security.net.config;

import android.content.Context;
import android.content.pm.ApplicationInfo;
import java.security.Security;
import java.security.Provider;

@@ -33,8 +32,8 @@ public final class NetworkSecurityConfigProvider extends Provider {
        put("Alg.Alias.TrustManagerFactory.X509", "PKIX");
    }

    public static void install(Context context, ApplicationInfo info) {
        ApplicationConfig config = new ApplicationConfig(new ManifestConfigSource(context, info));
    public static void install(Context context) {
        ApplicationConfig config = new ApplicationConfig(new ManifestConfigSource(context));
        ApplicationConfig.setDefaultInstance(config);
        int pos = Security.insertProviderAt(new NetworkSecurityConfigProvider(), 1);
        if (pos != 1) {