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

Commit 361b2d69 authored by Jim Miller's avatar Jim Miller Committed by Android (Google) Code Review
Browse files

Merge "Fix crash in fingerprint and problem where directory has wrong selinux label" into mnc-dev

parents 8b20cdb2 16ef71f4
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import android.os.IRemoteCallback;
import android.os.Looper;
import android.os.MessageQueue;
import android.os.RemoteException;
import android.os.SELinux;
import android.os.ServiceManager;
import android.util.Slog;

@@ -50,6 +51,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.NoSuchElementException;

/**
 * A service to manage multiple clients that want to access the fingerprint HAL API.
@@ -432,7 +434,12 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe

        public void destroy() {
            if (token != null) {
                try {
                    token.unlinkToDeath(this, 0);
                } catch (NoSuchElementException e) {
                    // TODO: remove when duplicate call bug is found
                    Slog.e(TAG, "destroy(): " + this + ":", new Exception("here"));
                }
                token = null;
            }
            receiver = null;
@@ -719,6 +726,13 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe
                        Slog.v(TAG, "Cannot make directory: " + fpDir.getAbsolutePath());
                        return;
                    }
                    // Calling mkdir() from this process will create a directory with our
                    // permissions (inherited from the containing dir). This command fixes
                    // the label.
                    if (!SELinux.restorecon(fpDir)) {
                        Slog.w(TAG, "Restorecons failed. Directory will have wrong label.");
                        return;
                    }
                }
                daemon.setActiveGroup(userId, fpDir.getAbsolutePath().getBytes());
            } catch (RemoteException e) {