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

Commit b1e828ff authored by Jack Yu's avatar Jack Yu Committed by android-build-merger
Browse files

Merge "Add a system api to reset secure element"

am: 48cbd0cf

Change-Id: Ibaace66c1bddab6ba5bc3f3cd9b44087d6034d30
parents 7704c379 48cbd0cf
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line 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 {
package android.security.keystore {
  public abstract class AttestationUtils {
  public abstract class AttestationUtils {
+6 −0
Original line number Original line Diff line number Diff line
@@ -48,4 +48,10 @@ interface ISecureElementReader {
     */
     */
    void closeSessions();
    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 Original line Diff line number Diff line
@@ -23,6 +23,8 @@
package android.se.omapi;
package android.se.omapi;


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