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

Commit 333f9119 authored by Harshit Mahajan's avatar Harshit Mahajan
Browse files

Minor fixes for CrashRecovery modules

1. Move to updated getDataSystemDeviceProtectedDirectory API
2. Fix "isModule" function
3. Add temporary PackageWatchdog contructor to match module

Bug: 289203818
Test: TH
Flag: EXEMPT Test change
Change-Id: I1d98815da37809acd98816c44309473d984f94c3
parent e42c74d5
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -896,7 +896,8 @@ public class RescueParty {
        int systemUserId = UserHandle.SYSTEM.getIdentifier();
        int systemUserId = UserHandle.SYSTEM.getIdentifier();
        int[] userIds = { systemUserId };
        int[] userIds = { systemUserId };
        try {
        try {
            for (File file : FileUtils.listFilesOrEmpty(Environment.getDataSystemDeDirectory())) {
            for (File file : FileUtils.listFilesOrEmpty(
                    Environment.getDataSystemDeviceProtectedDirectory())) {
                try {
                try {
                    final int userId = Integer.parseInt(file.getName());
                    final int userId = Integer.parseInt(file.getName());
                    if (userId != systemUserId) {
                    if (userId != systemUserId) {
+2 −2
Original line number Original line Diff line number Diff line
@@ -499,8 +499,8 @@ public final class RollbackPackageHealthObserver implements PackageHealthObserve
        // Check if the package is listed among the system modules or is an
        // Check if the package is listed among the system modules or is an
        // APK inside an updatable APEX.
        // APK inside an updatable APEX.
        try {
        try {
            final PackageInfo pkg = mContext.getPackageManager()
            PackageManager pm = mContext.getPackageManager();
                    .getPackageInfo(packageName, 0 /* flags */);
            final PackageInfo pkg = pm.getPackageInfo(packageName, 0 /* flags */);
            String apexPackageName = pkg.getApexPackageName();
            String apexPackageName = pkg.getApexPackageName();
            if (apexPackageName != null) {
            if (apexPackageName != null) {
                packageName = apexPackageName;
                packageName = apexPackageName;
+25 −0
Original line number Original line Diff line number Diff line
@@ -300,6 +300,31 @@ public class PackageWatchdog {
        sPackageWatchdog = this;
        sPackageWatchdog = this;
    }
    }


    /**
     * Creating this temp constructor to match module constructor.
     * Note: To be only used in tests.
     * Creates a PackageWatchdog that allows injecting dependencies,
     * except for connectivity module connector.
     */
    @VisibleForTesting
    PackageWatchdog(Context context, AtomicFile policyFile, Handler shortTaskHandler,
            Handler longTaskHandler, ExplicitHealthCheckController controller,
            SystemClock clock) {
        mContext = context;
        mPolicyFile = policyFile;
        mShortTaskHandler = shortTaskHandler;
        mLongTaskHandler = longTaskHandler;
        mHealthCheckController = controller;
        mConnectivityModuleConnector = ConnectivityModuleConnector.getInstance();
        mSystemClock = clock;
        mNumberOfNativeCrashPollsRemaining = NUMBER_OF_NATIVE_CRASH_POLLS;
        mBootThreshold = new BootThreshold(DEFAULT_BOOT_LOOP_TRIGGER_COUNT,
                DEFAULT_BOOT_LOOP_TRIGGER_WINDOW_MS);

        loadFromFile();
        sPackageWatchdog = this;
    }

    /** Creates or gets singleton instance of PackageWatchdog. */
    /** Creates or gets singleton instance of PackageWatchdog. */
    public static  @NonNull PackageWatchdog getInstance(@NonNull Context context) {
    public static  @NonNull PackageWatchdog getInstance(@NonNull Context context) {
        synchronized (sPackageWatchdogLock) {
        synchronized (sPackageWatchdogLock) {