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

Commit a7cb4d15 authored by Jiakai Zhang's avatar Jiakai Zhang
Browse files

Take DynamicCodeLogger out of DexManager.

Before this change, DynamicCodeLogger was inside DexManager. However,
once we switch to ART Services implementation, DexManager will no longer
be used unless the user opts out ART Services. Therefore, we need to
take DynamicCodeLogger out to keep it functioning.

This is a no-op change. The DynamicCodeLogger - ART Services integration
will be done in a separate CL.

Bug: 263165518
Test: Presubmit
Change-Id: Ia19ea397f9db8e9f0095da47b98631ddec11fa17
parent 58495ae2
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -616,6 +616,7 @@ public class AppDataHelper {
                Slog.w(TAG, String.valueOf(e));
            }
            mPm.getDexManager().notifyPackageDataDestroyed(pkg.getPackageName(), userId);
            mPm.getDynamicCodeLogger().notifyPackageDataDestroyed(pkg.getPackageName(), userId);
        }
    }

+0 −7
Original line number Diff line number Diff line
@@ -49,7 +49,6 @@ import android.util.SparseArray;

import com.android.server.pm.Installer.LegacyDexoptDisabledException;
import com.android.server.pm.dex.DexManager;
import com.android.server.pm.dex.DynamicCodeLogger;
import com.android.server.pm.permission.PermissionManagerServiceInternal;
import com.android.server.pm.pkg.AndroidPackage;
import com.android.server.pm.pkg.PackageStateInternal;
@@ -773,10 +772,4 @@ abstract class PackageManagerInternalBase extends PackageManagerInternal {
    public final void shutdown() {
        mService.shutdown();
    }

    @Override
    @Deprecated
    public final DynamicCodeLogger getDynamicCodeLogger() {
        return getDexManager().getDynamicCodeLogger();
    }
}
+18 −1
Original line number Diff line number Diff line
@@ -204,6 +204,7 @@ import com.android.server.pm.Settings.VersionInfo;
import com.android.server.pm.dex.ArtManagerService;
import com.android.server.pm.dex.ArtUtils;
import com.android.server.pm.dex.DexManager;
import com.android.server.pm.dex.DynamicCodeLogger;
import com.android.server.pm.dex.ViewCompiler;
import com.android.server.pm.local.PackageManagerLocalImpl;
import com.android.server.pm.parsing.PackageInfoUtils;
@@ -793,6 +794,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService
    // DexManager handles the usage of dex files (e.g. secondary files, whether or not a package
    // is used by other apps).
    private final DexManager mDexManager;
    private final DynamicCodeLogger mDynamicCodeLogger;

    final ViewCompiler mViewCompiler;

@@ -1529,7 +1531,8 @@ public class PackageManagerService implements PackageSender, TestUtilityService
                (i, pm) -> new PackageDexOptimizer(i.getInstaller(), i.getInstallLock(),
                        i.getContext(), "*dexopt*"),
                (i, pm) -> new DexManager(i.getContext(), i.getPackageDexOptimizer(),
                        i.getInstaller(), i.getInstallLock()),
                        i.getInstaller(), i.getInstallLock(), i.getDynamicCodeLogger()),
                (i, pm) -> new DynamicCodeLogger(i.getInstaller()),
                (i, pm) -> new ArtManagerService(i.getContext(), i.getInstaller(),
                        i.getInstallLock()),
                (i, pm) -> ApexManager.getInstance(),
@@ -1711,6 +1714,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService
        mDefaultAppProvider = testParams.defaultAppProvider;
        mLegacyPermissionManager = testParams.legacyPermissionManagerInternal;
        mDexManager = testParams.dexManager;
        mDynamicCodeLogger = testParams.dynamicCodeLogger;
        mFactoryTest = testParams.factoryTest;
        mIncrementalManager = testParams.incrementalManager;
        mInstallerService = testParams.installerService;
@@ -1889,6 +1893,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService

        mPackageDexOptimizer = injector.getPackageDexOptimizer();
        mDexManager = injector.getDexManager();
        mDynamicCodeLogger = injector.getDynamicCodeLogger();
        mBackgroundDexOptService = injector.getBackgroundDexOptService();
        mArtManagerService = injector.getArtManagerService();
        mMoveCallbacks = new MovePackageHelper.MoveCallbacks(FgThread.get().getLooper());
@@ -2316,6 +2321,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService
                        .getList());
            }
            mDexManager.load(userPackages);
            mDynamicCodeLogger.load(userPackages);
            if (mIsUpgrade) {
                FrameworkStatsLog.write(
                        FrameworkStatsLog.BOOT_TIME_EVENT_DURATION_REPORTED,
@@ -2980,9 +2986,14 @@ public class PackageManagerService implements PackageSender, TestUtilityService
        return mDexManager;
    }

    /*package*/ DynamicCodeLogger getDynamicCodeLogger() {
        return mDynamicCodeLogger;
    }

    public void shutdown() {
        mCompilerStats.writeNow();
        mDexManager.writePackageDexUsageNow();
        mDynamicCodeLogger.writeNow();
        PackageWatchdog.getInstance(mContext).writeNow();

        synchronized (mLock) {
@@ -6346,6 +6357,12 @@ public class PackageManagerService implements PackageSender, TestUtilityService
            return mDexManager;
        }

        @NonNull
        @Override
        public DynamicCodeLogger getDynamicCodeLogger() {
            return mDynamicCodeLogger;
        }

        @Override
        public boolean isPlatformSigned(String packageName) {
            PackageStateInternal packageState = snapshot().getPackageStateInternal(packageName);
+8 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.server.SystemConfig;
import com.android.server.compat.PlatformCompat;
import com.android.server.pm.dex.ArtManagerService;
import com.android.server.pm.dex.DexManager;
import com.android.server.pm.dex.DynamicCodeLogger;
import com.android.server.pm.dex.ViewCompiler;
import com.android.server.pm.parsing.PackageParser2;
import com.android.server.pm.permission.LegacyPermissionManagerInternal;
@@ -106,6 +107,7 @@ public class PackageManagerServiceInjector {
    private final Singleton<PackageDexOptimizer>
            mPackageDexOptimizerProducer;
    private final Singleton<DexManager> mDexManagerProducer;
    private final Singleton<DynamicCodeLogger> mDynamicCodeLoggerProducer;
    private final Singleton<ArtManagerService>
            mArtManagerServiceProducer;
    private final Singleton<ApexManager> mApexManagerProducer;
@@ -154,6 +156,7 @@ public class PackageManagerServiceInjector {
            Producer<SystemConfig> systemConfigProducer,
            Producer<PackageDexOptimizer> packageDexOptimizerProducer,
            Producer<DexManager> dexManagerProducer,
            Producer<DynamicCodeLogger> dynamicCodeLoggerProducer,
            Producer<ArtManagerService> artManagerServiceProducer,
            Producer<ApexManager> apexManagerProducer,
            Producer<ViewCompiler> viewCompilerProducer,
@@ -200,6 +203,7 @@ public class PackageManagerServiceInjector {
        mPackageDexOptimizerProducer = new Singleton<>(
                packageDexOptimizerProducer);
        mDexManagerProducer = new Singleton<>(dexManagerProducer);
        mDynamicCodeLoggerProducer = new Singleton<>(dynamicCodeLoggerProducer);
        mArtManagerServiceProducer = new Singleton<>(
                artManagerServiceProducer);
        mApexManagerProducer = new Singleton<>(apexManagerProducer);
@@ -314,6 +318,10 @@ public class PackageManagerServiceInjector {
        return mDexManagerProducer.get(this, mPackageManager);
    }

    public DynamicCodeLogger getDynamicCodeLogger() {
        return mDynamicCodeLoggerProducer.get(this, mPackageManager);
    }

    public ArtManagerService getArtManagerService() {
        return mArtManagerServiceProducer.get(this, mPackageManager);
    }
+2 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.content.om.OverlayConfig;
import com.android.server.pm.dex.ArtManagerService;
import com.android.server.pm.dex.DexManager;
import com.android.server.pm.dex.DynamicCodeLogger;
import com.android.server.pm.dex.ViewCompiler;
import com.android.server.pm.parsing.PackageParser2;
import com.android.server.pm.permission.LegacyPermissionManagerInternal;
@@ -49,6 +50,7 @@ public final class PackageManagerServiceTestParams {
    public int defParseFlags;
    public DefaultAppProvider defaultAppProvider;
    public DexManager dexManager;
    public DynamicCodeLogger dynamicCodeLogger;
    public List<ScanPartition> dirsToScanAsSystem;
    public boolean factoryTest;
    public ArrayMap<String, FeatureInfo> availableFeatures;
Loading