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

Commit 48cbd0cf authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add a system api to reset secure element"

parents 92e0799d 7ee5c99b
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -7092,6 +7092,14 @@ package android.provider {
}
package android.se.omapi {
  public final class Reader {
    method @RequiresPermission(android.Manifest.permission.SECURE_ELEMENT_PRIVILEGED) public boolean reset();
  }
}
package android.security.keystore {
  public abstract class AttestationUtils {
+6 −0
Original line number Diff line number Diff line
@@ -48,4 +48,10 @@ interface ISecureElementReader {
     */
    void closeSessions();

    /**
     * Closes all the sessions opened on this reader and resets the reader.
     * All the channels opened by all these sessions will be closed.
     * @return true if the reset is successful, false otherwise.
     */
    boolean reset();
}
+23 −0
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@
package android.se.omapi;

import android.annotation.NonNull;
import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.os.RemoteException;
import android.os.ServiceSpecificException;
import android.util.Log;
@@ -150,4 +152,25 @@ public final class Reader {
            } catch (RemoteException ignore) { }
        }
    }

    /**
     * Close all the sessions opened on this reader and reset the reader.
     * All the channels opened by all these sessions will be closed.
     * @return <code>true</code> if reset success, <code>false</code> otherwise.
     * @hide
     */
    @SystemApi
    @RequiresPermission(android.Manifest.permission.SECURE_ELEMENT_PRIVILEGED)
    public boolean reset() {
        if (!mService.isConnected()) {
            Log.e(TAG, "service is not connected");
            return false;
        }
        synchronized (mLock) {
            try {
                closeSessions();
                return mReader.reset();
            } catch (RemoteException ignore) {return false;}
        }
    }
}