sdm710-common: android.hardware.biometrics.fingerprint >> vendor.oppo.hardware.biometrics.fingerprint

This commit is contained in:
SamarV-121 2019-09-11 10:46:45 +00:00
parent f0e9dfe754
commit a1db24fe8f
15 changed files with 3178 additions and 0 deletions

View file

@ -0,0 +1,147 @@
From 61e2fb2a3847a643a3ce7ea3f573ed54eb4f3cf3 Mon Sep 17 00:00:00 2001
From: SamarV-121 <samarvispute121@gmail.com>
Date: Tue, 10 Sep 2019 10:00:43 +0000
Subject: [PATCH] services: core: android.hardware.biometrics.fingerprint >>
vendor.oppo.hardware.biometrics.fingerprint
Change-Id: Ia4cca5e99ca4fca42d345db7b731d2263a16bbcb
---
services/core/Android.bp | 2 +-
.../fingerprint/AuthenticationClient.java | 2 +-
.../server/fingerprint/ClientMonitor.java | 2 +-
.../server/fingerprint/EnrollClient.java | 2 +-
.../server/fingerprint/EnumerateClient.java | 2 +-
.../fingerprint/FingerprintService.java | 32 +++++++++++++++++--
.../server/fingerprint/RemovalClient.java | 2 +-
7 files changed, 36 insertions(+), 8 deletions(-)
diff --git a/services/core/Android.bp b/services/core/Android.bp
index e9f79ebd..5492b7b7 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -38,7 +38,7 @@ java_library_static {
"android.hardware.health-V1.0-java",
"android.hardware.health-V2.0-java",
"android.hardware.weaver-V1.0-java",
- "android.hardware.biometrics.fingerprint-V2.1-java",
+ "vendor.oppo.hardware.biometrics.fingerprint-V2.1-java",
"android.hardware.oemlock-V1.0-java",
"android.hardware.tetheroffload.control-V1.0-java",
"android.hardware.vibrator-V1.0-java",
diff --git a/services/core/java/com/android/server/fingerprint/AuthenticationClient.java b/services/core/java/com/android/server/fingerprint/AuthenticationClient.java
index adcb21a4..61daa610 100644
--- a/services/core/java/com/android/server/fingerprint/AuthenticationClient.java
+++ b/services/core/java/com/android/server/fingerprint/AuthenticationClient.java
@@ -19,7 +19,7 @@ package com.android.server.fingerprint;
import android.content.Context;
import android.content.ComponentName;
import android.content.pm.PackageManager;
-import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
+import vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
import android.hardware.biometrics.BiometricPrompt;
import android.hardware.biometrics.IBiometricPromptReceiver;
import android.hardware.fingerprint.Fingerprint;
diff --git a/services/core/java/com/android/server/fingerprint/ClientMonitor.java b/services/core/java/com/android/server/fingerprint/ClientMonitor.java
index e14179d0..15c6be25 100644
--- a/services/core/java/com/android/server/fingerprint/ClientMonitor.java
+++ b/services/core/java/com/android/server/fingerprint/ClientMonitor.java
@@ -18,7 +18,7 @@ package com.android.server.fingerprint;
import android.Manifest;
import android.content.Context;
-import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
+import vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.IFingerprintServiceReceiver;
import android.media.AudioAttributes;
diff --git a/services/core/java/com/android/server/fingerprint/EnrollClient.java b/services/core/java/com/android/server/fingerprint/EnrollClient.java
index 9944266c..87cef724 100644
--- a/services/core/java/com/android/server/fingerprint/EnrollClient.java
+++ b/services/core/java/com/android/server/fingerprint/EnrollClient.java
@@ -18,7 +18,7 @@ package com.android.server.fingerprint;
import android.content.Context;
import android.content.pm.PackageManager;
-import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
+import vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.IFingerprintServiceReceiver;
import android.os.IBinder;
diff --git a/services/core/java/com/android/server/fingerprint/EnumerateClient.java b/services/core/java/com/android/server/fingerprint/EnumerateClient.java
index b6bbd1b7..c687c601 100644
--- a/services/core/java/com/android/server/fingerprint/EnumerateClient.java
+++ b/services/core/java/com/android/server/fingerprint/EnumerateClient.java
@@ -17,7 +17,7 @@
package com.android.server.fingerprint;
import android.content.Context;
-import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
+import vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.IFingerprintServiceReceiver;
import android.os.IBinder;
diff --git a/services/core/java/com/android/server/fingerprint/FingerprintService.java b/services/core/java/com/android/server/fingerprint/FingerprintService.java
index 1fa4d34c..54e49002 100644
--- a/services/core/java/com/android/server/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/fingerprint/FingerprintService.java
@@ -39,8 +39,8 @@ import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
import android.hardware.biometrics.IBiometricPromptReceiver;
-import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
-import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprintClientCallback;
+import vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
+import vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprintClientCallback;
import android.hardware.fingerprint.Fingerprint;
import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.IFingerprintClientActiveCallback;
@@ -1189,6 +1189,34 @@ public class FingerprintService extends SystemService implements IHwBinder.Death
}
});
}
+
+ @Override
+ public void onTouchDown(final long deviceId) {
+ }
+
+ @Override
+ public void onTouchUp(final long deviceId) {
+ }
+
+ @Override
+ public void onMonitorEventTriggered(final int type, final String data) {
+ }
+
+ @Override
+ public void onImageInfoAcquired(final int type, final int quality, final int match_score) {
+ }
+
+ @Override
+ public void onSyncTemplates(final long deviceId, final ArrayList<Integer> fingerIds, final int groupId) {
+ }
+
+ @Override
+ public void onEngineeringInfoUpdated(final int lenth, final ArrayList<Integer> keys, final ArrayList<String> values) {
+ }
+
+ @Override
+ public void onFingerprintCmd(final int cmdId , final ArrayList<Byte> result, final int resultLen) {
+ }
};
private final class FingerprintServiceWrapper extends IFingerprintService.Stub {
diff --git a/services/core/java/com/android/server/fingerprint/RemovalClient.java b/services/core/java/com/android/server/fingerprint/RemovalClient.java
index ffc84888..8074140f 100644
--- a/services/core/java/com/android/server/fingerprint/RemovalClient.java
+++ b/services/core/java/com/android/server/fingerprint/RemovalClient.java
@@ -17,7 +17,7 @@
package com.android.server.fingerprint;
import android.content.Context;
-import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
+import vendor.oppo.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint;
import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.IFingerprintServiceReceiver;
import android.os.IBinder;
--
2.17.1

View file

@ -0,0 +1,6 @@
java_library {
name: "vendor.oppo.hardware.biometrics.fingerprint-V2.1-java",
srcs: ["src/vendor/oppo/hardware/biometrics/fingerprint/V2_1/*java"],
static_libs: ["android.hidl.base-V1.0-java"],
libs: ["android.hidl.base-V1.0-java"],
}

View file

@ -0,0 +1,82 @@
package vendor.oppo.hardware.biometrics.fingerprint.V2_1;
import android.os.HidlSupport;
import android.os.HwBlob;
import android.os.HwParcel;
import java.util.ArrayList;
import java.util.Objects;
public final class FingerprintAcquired {
public int acquiredInfo;
public final boolean equals(Object otherObject) {
if (this == otherObject) {
return true;
}
if (otherObject == null || otherObject.getClass() != FingerprintAcquired.class) {
return false;
}
if (this.acquiredInfo != ((FingerprintAcquired) otherObject).acquiredInfo) {
return false;
}
return true;
}
public final int hashCode() {
return Objects.hash(new Object[]{Integer.valueOf(HidlSupport.deepHashCode(Integer.valueOf(this.acquiredInfo)))});
}
public final String toString() {
StringBuilder builder = new StringBuilder();
builder.append("{");
builder.append(".acquiredInfo = ");
builder.append(FingerprintAcquiredInfo.toString(this.acquiredInfo));
builder.append("}");
return builder.toString();
}
public final void readFromParcel(HwParcel parcel) {
readEmbeddedFromParcel(parcel, parcel.readBuffer(4), 0);
}
public static final ArrayList<FingerprintAcquired> readVectorFromParcel(HwParcel parcel) {
ArrayList<FingerprintAcquired> _hidl_vec = new ArrayList<>();
HwBlob _hidl_blob = parcel.readBuffer(16);
int _hidl_vec_size = _hidl_blob.getInt32(8);
HwBlob childBlob = parcel.readEmbeddedBuffer((long) (_hidl_vec_size * 4), _hidl_blob.handle(), 0, true);
_hidl_vec.clear();
for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; _hidl_index_0++) {
FingerprintAcquired _hidl_vec_element = new FingerprintAcquired();
_hidl_vec_element.readEmbeddedFromParcel(parcel, childBlob, (long) (_hidl_index_0 * 4));
_hidl_vec.add(_hidl_vec_element);
}
return _hidl_vec;
}
public final void readEmbeddedFromParcel(HwParcel parcel, HwBlob _hidl_blob, long _hidl_offset) {
this.acquiredInfo = _hidl_blob.getInt32(0 + _hidl_offset);
}
public final void writeToParcel(HwParcel parcel) {
HwBlob _hidl_blob = new HwBlob(4);
writeEmbeddedToBlob(_hidl_blob, 0);
parcel.writeBuffer(_hidl_blob);
}
public static final void writeVectorToParcel(HwParcel parcel, ArrayList<FingerprintAcquired> _hidl_vec) {
HwBlob _hidl_blob = new HwBlob(16);
int _hidl_vec_size = _hidl_vec.size();
_hidl_blob.putInt32(8, _hidl_vec_size);
_hidl_blob.putBool(12, false);
HwBlob childBlob = new HwBlob(_hidl_vec_size * 4);
for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; _hidl_index_0++) {
((FingerprintAcquired) _hidl_vec.get(_hidl_index_0)).writeEmbeddedToBlob(childBlob, (long) (_hidl_index_0 * 4));
}
_hidl_blob.putBlob(0, childBlob);
parcel.writeBuffer(_hidl_blob);
}
public final void writeEmbeddedToBlob(HwBlob _hidl_blob, long _hidl_offset) {
_hidl_blob.putInt32(0 + _hidl_offset, this.acquiredInfo);
}
}

View file

@ -0,0 +1,102 @@
package vendor.oppo.hardware.biometrics.fingerprint.V2_1;
import java.util.ArrayList;
public final class FingerprintAcquiredInfo {
public static final int ACQUIRED_ALREADY_ENROLLED = 1002;
public static final int ACQUIRED_GOOD = 0;
public static final int ACQUIRED_IMAGER_DIRTY = 3;
public static final int ACQUIRED_INSUFFICIENT = 2;
public static final int ACQUIRED_PARTIAL = 1;
public static final int ACQUIRED_TOO_FAST = 5;
public static final int ACQUIRED_TOO_SIMILAR = 1001;
public static final int ACQUIRED_TOO_SLOW = 4;
public static final int ACQUIRED_VENDOR = 6;
public static final int ACQUIRED_VENDOR_BASE = 1000;
public static final String toString(int o) {
if (o == 0) {
return "ACQUIRED_GOOD";
}
if (o == 1) {
return "ACQUIRED_PARTIAL";
}
if (o == 2) {
return "ACQUIRED_INSUFFICIENT";
}
if (o == 3) {
return "ACQUIRED_IMAGER_DIRTY";
}
if (o == 4) {
return "ACQUIRED_TOO_SLOW";
}
if (o == 5) {
return "ACQUIRED_TOO_FAST";
}
if (o == 6) {
return "ACQUIRED_VENDOR";
}
if (o == 1000) {
return "ACQUIRED_VENDOR_BASE";
}
if (o == 1001) {
return "ACQUIRED_TOO_SIMILAR";
}
if (o == 1002) {
return "ACQUIRED_ALREADY_ENROLLED";
}
StringBuilder sb = new StringBuilder();
sb.append("0x");
sb.append(Integer.toHexString(o));
return sb.toString();
}
public static final String dumpBitfield(int o) {
ArrayList<String> list = new ArrayList<>();
int flipped = 0;
list.add("ACQUIRED_GOOD");
if ((o & 1) == 1) {
list.add("ACQUIRED_PARTIAL");
flipped = 0 | 1;
}
if ((o & 2) == 2) {
list.add("ACQUIRED_INSUFFICIENT");
flipped |= 2;
}
if ((o & 3) == 3) {
list.add("ACQUIRED_IMAGER_DIRTY");
flipped |= 3;
}
if ((o & 4) == 4) {
list.add("ACQUIRED_TOO_SLOW");
flipped |= 4;
}
if ((o & 5) == 5) {
list.add("ACQUIRED_TOO_FAST");
flipped |= 5;
}
if ((o & 6) == 6) {
list.add("ACQUIRED_VENDOR");
flipped |= 6;
}
if ((o & ACQUIRED_VENDOR_BASE) == 1000) {
list.add("ACQUIRED_VENDOR_BASE");
flipped |= ACQUIRED_VENDOR_BASE;
}
if ((o & ACQUIRED_TOO_SIMILAR) == 1001) {
list.add("ACQUIRED_TOO_SIMILAR");
flipped |= ACQUIRED_TOO_SIMILAR;
}
if ((o & ACQUIRED_ALREADY_ENROLLED) == 1002) {
list.add("ACQUIRED_ALREADY_ENROLLED");
flipped |= ACQUIRED_ALREADY_ENROLLED;
}
if (o != flipped) {
StringBuilder sb = new StringBuilder();
sb.append("0x");
sb.append(Integer.toHexString((~flipped) & o));
list.add(sb.toString());
}
return String.join(" | ", list);
}
}

View file

@ -0,0 +1,49 @@
package vendor.oppo.hardware.biometrics.fingerprint.V2_1;
import java.util.ArrayList;
public final class FingerprintAuthType {
public static final int TYPE_KEYGUARD = 1;
public static final int TYPE_OTHER = 3;
public static final int TYPE_PAY = 2;
public static final String toString(int o) {
if (o == 1) {
return "TYPE_KEYGUARD";
}
if (o == 2) {
return "TYPE_PAY";
}
if (o == 3) {
return "TYPE_OTHER";
}
StringBuilder sb = new StringBuilder();
sb.append("0x");
sb.append(Integer.toHexString(o));
return sb.toString();
}
public static final String dumpBitfield(int o) {
ArrayList<String> list = new ArrayList<>();
int flipped = 0;
if ((o & 1) == 1) {
list.add("TYPE_KEYGUARD");
flipped = 0 | 1;
}
if ((o & 2) == 2) {
list.add("TYPE_PAY");
flipped |= 2;
}
if ((o & 3) == 3) {
list.add("TYPE_OTHER");
flipped |= 3;
}
if (o != flipped) {
StringBuilder sb = new StringBuilder();
sb.append("0x");
sb.append(Integer.toHexString((~flipped) & o));
list.add(sb.toString());
}
return String.join(" | ", list);
}
}

View file

@ -0,0 +1,89 @@
package vendor.oppo.hardware.biometrics.fingerprint.V2_1;
import android.os.HidlSupport;
import android.os.HwBlob;
import android.os.HwParcel;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Objects;
public final class FingerprintAuthenticated {
public final FingerprintFingerId finger = new FingerprintFingerId();
public final byte[] hat = new byte[69];
public final boolean equals(Object otherObject) {
if (this == otherObject) {
return true;
}
if (otherObject == null || otherObject.getClass() != FingerprintAuthenticated.class) {
return false;
}
FingerprintAuthenticated other = (FingerprintAuthenticated) otherObject;
if (HidlSupport.deepEquals(this.finger, other.finger) && HidlSupport.deepEquals(this.hat, other.hat)) {
return true;
}
return false;
}
public final int hashCode() {
return Objects.hash(new Object[]{Integer.valueOf(HidlSupport.deepHashCode(this.finger)), Integer.valueOf(HidlSupport.deepHashCode(this.hat))});
}
public final String toString() {
StringBuilder builder = new StringBuilder();
builder.append("{");
builder.append(".finger = ");
builder.append(this.finger);
builder.append(", .hat = ");
builder.append(Arrays.toString(this.hat));
builder.append("}");
return builder.toString();
}
public final void readFromParcel(HwParcel parcel) {
readEmbeddedFromParcel(parcel, parcel.readBuffer(80), 0);
}
public static final ArrayList<FingerprintAuthenticated> readVectorFromParcel(HwParcel parcel) {
ArrayList<FingerprintAuthenticated> _hidl_vec = new ArrayList<>();
HwBlob _hidl_blob = parcel.readBuffer(16);
int _hidl_vec_size = _hidl_blob.getInt32(8);
HwBlob childBlob = parcel.readEmbeddedBuffer((long) (_hidl_vec_size * 80), _hidl_blob.handle(), 0, true);
_hidl_vec.clear();
for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; _hidl_index_0++) {
FingerprintAuthenticated _hidl_vec_element = new FingerprintAuthenticated();
_hidl_vec_element.readEmbeddedFromParcel(parcel, childBlob, (long) (_hidl_index_0 * 80));
_hidl_vec.add(_hidl_vec_element);
}
return _hidl_vec;
}
public final void readEmbeddedFromParcel(HwParcel parcel, HwBlob _hidl_blob, long _hidl_offset) {
this.finger.readEmbeddedFromParcel(parcel, _hidl_blob, 0 + _hidl_offset);
_hidl_blob.copyToInt8Array(8 + _hidl_offset, this.hat, 69);
}
public final void writeToParcel(HwParcel parcel) {
HwBlob _hidl_blob = new HwBlob(80);
writeEmbeddedToBlob(_hidl_blob, 0);
parcel.writeBuffer(_hidl_blob);
}
public static final void writeVectorToParcel(HwParcel parcel, ArrayList<FingerprintAuthenticated> _hidl_vec) {
HwBlob _hidl_blob = new HwBlob(16);
int _hidl_vec_size = _hidl_vec.size();
_hidl_blob.putInt32(8, _hidl_vec_size);
_hidl_blob.putBool(12, false);
HwBlob childBlob = new HwBlob(_hidl_vec_size * 80);
for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; _hidl_index_0++) {
((FingerprintAuthenticated) _hidl_vec.get(_hidl_index_0)).writeEmbeddedToBlob(childBlob, (long) (_hidl_index_0 * 80));
}
_hidl_blob.putBlob(0, childBlob);
parcel.writeBuffer(_hidl_blob);
}
public final void writeEmbeddedToBlob(HwBlob _hidl_blob, long _hidl_offset) {
this.finger.writeEmbeddedToBlob(_hidl_blob, 0 + _hidl_offset);
_hidl_blob.putInt8Array(8 + _hidl_offset, this.hat);
}
}

View file

@ -0,0 +1,93 @@
package vendor.oppo.hardware.biometrics.fingerprint.V2_1;
import android.os.HidlSupport;
import android.os.HwBlob;
import android.os.HwParcel;
import java.util.ArrayList;
import java.util.Objects;
public final class FingerprintEnroll {
public final FingerprintFingerId finger = new FingerprintFingerId();
public long msg;
public int samplesRemaining;
public final boolean equals(Object otherObject) {
if (this == otherObject) {
return true;
}
if (otherObject == null || otherObject.getClass() != FingerprintEnroll.class) {
return false;
}
FingerprintEnroll other = (FingerprintEnroll) otherObject;
if (HidlSupport.deepEquals(this.finger, other.finger) && this.samplesRemaining == other.samplesRemaining && this.msg == other.msg) {
return true;
}
return false;
}
public final int hashCode() {
return Objects.hash(new Object[]{Integer.valueOf(HidlSupport.deepHashCode(this.finger)), Integer.valueOf(HidlSupport.deepHashCode(Integer.valueOf(this.samplesRemaining))), Integer.valueOf(HidlSupport.deepHashCode(Long.valueOf(this.msg)))});
}
public final String toString() {
StringBuilder builder = new StringBuilder();
builder.append("{");
builder.append(".finger = ");
builder.append(this.finger);
builder.append(", .samplesRemaining = ");
builder.append(this.samplesRemaining);
builder.append(", .msg = ");
builder.append(this.msg);
builder.append("}");
return builder.toString();
}
public final void readFromParcel(HwParcel parcel) {
readEmbeddedFromParcel(parcel, parcel.readBuffer(24), 0);
}
public static final ArrayList<FingerprintEnroll> readVectorFromParcel(HwParcel parcel) {
ArrayList<FingerprintEnroll> _hidl_vec = new ArrayList<>();
HwBlob _hidl_blob = parcel.readBuffer(16);
int _hidl_vec_size = _hidl_blob.getInt32(8);
HwBlob childBlob = parcel.readEmbeddedBuffer((long) (_hidl_vec_size * 24), _hidl_blob.handle(), 0, true);
_hidl_vec.clear();
for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; _hidl_index_0++) {
FingerprintEnroll _hidl_vec_element = new FingerprintEnroll();
_hidl_vec_element.readEmbeddedFromParcel(parcel, childBlob, (long) (_hidl_index_0 * 24));
_hidl_vec.add(_hidl_vec_element);
}
return _hidl_vec;
}
public final void readEmbeddedFromParcel(HwParcel parcel, HwBlob _hidl_blob, long _hidl_offset) {
this.finger.readEmbeddedFromParcel(parcel, _hidl_blob, 0 + _hidl_offset);
this.samplesRemaining = _hidl_blob.getInt32(8 + _hidl_offset);
this.msg = _hidl_blob.getInt64(16 + _hidl_offset);
}
public final void writeToParcel(HwParcel parcel) {
HwBlob _hidl_blob = new HwBlob(24);
writeEmbeddedToBlob(_hidl_blob, 0);
parcel.writeBuffer(_hidl_blob);
}
public static final void writeVectorToParcel(HwParcel parcel, ArrayList<FingerprintEnroll> _hidl_vec) {
HwBlob _hidl_blob = new HwBlob(16);
int _hidl_vec_size = _hidl_vec.size();
_hidl_blob.putInt32(8, _hidl_vec_size);
_hidl_blob.putBool(12, false);
HwBlob childBlob = new HwBlob(_hidl_vec_size * 24);
for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; _hidl_index_0++) {
((FingerprintEnroll) _hidl_vec.get(_hidl_index_0)).writeEmbeddedToBlob(childBlob, (long) (_hidl_index_0 * 24));
}
_hidl_blob.putBlob(0, childBlob);
parcel.writeBuffer(_hidl_blob);
}
public final void writeEmbeddedToBlob(HwBlob _hidl_blob, long _hidl_offset) {
this.finger.writeEmbeddedToBlob(_hidl_blob, 0 + _hidl_offset);
_hidl_blob.putInt32(8 + _hidl_offset, this.samplesRemaining);
_hidl_blob.putInt64(16 + _hidl_offset, this.msg);
}
}

View file

@ -0,0 +1,94 @@
package vendor.oppo.hardware.biometrics.fingerprint.V2_1;
import java.util.ArrayList;
public final class FingerprintError {
public static final int ERROR_CANCELED = 5;
public static final int ERROR_HW_UNAVAILABLE = 1;
public static final int ERROR_LOCKOUT = 7;
public static final int ERROR_NO_ERROR = 0;
public static final int ERROR_NO_SPACE = 4;
public static final int ERROR_TIMEOUT = 3;
public static final int ERROR_UNABLE_TO_PROCESS = 2;
public static final int ERROR_UNABLE_TO_REMOVE = 6;
public static final int ERROR_VENDOR = 8;
public static final String toString(int o) {
if (o == 0) {
return "ERROR_NO_ERROR";
}
if (o == 1) {
return "ERROR_HW_UNAVAILABLE";
}
if (o == 2) {
return "ERROR_UNABLE_TO_PROCESS";
}
if (o == 3) {
return "ERROR_TIMEOUT";
}
if (o == 4) {
return "ERROR_NO_SPACE";
}
if (o == 5) {
return "ERROR_CANCELED";
}
if (o == 6) {
return "ERROR_UNABLE_TO_REMOVE";
}
if (o == 7) {
return "ERROR_LOCKOUT";
}
if (o == 8) {
return "ERROR_VENDOR";
}
StringBuilder sb = new StringBuilder();
sb.append("0x");
sb.append(Integer.toHexString(o));
return sb.toString();
}
public static final String dumpBitfield(int o) {
ArrayList<String> list = new ArrayList<>();
int flipped = 0;
list.add("ERROR_NO_ERROR");
if ((o & 1) == 1) {
list.add("ERROR_HW_UNAVAILABLE");
flipped = 0 | 1;
}
if ((o & 2) == 2) {
list.add("ERROR_UNABLE_TO_PROCESS");
flipped |= 2;
}
if ((o & 3) == 3) {
list.add("ERROR_TIMEOUT");
flipped |= 3;
}
if ((o & 4) == 4) {
list.add("ERROR_NO_SPACE");
flipped |= 4;
}
if ((o & 5) == 5) {
list.add("ERROR_CANCELED");
flipped |= 5;
}
if ((o & 6) == 6) {
list.add("ERROR_UNABLE_TO_REMOVE");
flipped |= 6;
}
if ((o & 7) == 7) {
list.add("ERROR_LOCKOUT");
flipped |= 7;
}
if ((o & 8) == 8) {
list.add("ERROR_VENDOR");
flipped |= 8;
}
if (o != flipped) {
StringBuilder sb = new StringBuilder();
sb.append("0x");
sb.append(Integer.toHexString((~flipped) & o));
list.add(sb.toString());
}
return String.join(" | ", list);
}
}

View file

@ -0,0 +1,88 @@
package vendor.oppo.hardware.biometrics.fingerprint.V2_1;
import android.os.HidlSupport;
import android.os.HwBlob;
import android.os.HwParcel;
import java.util.ArrayList;
import java.util.Objects;
public final class FingerprintFingerId {
public int fid;
public int gid;
public final boolean equals(Object otherObject) {
if (this == otherObject) {
return true;
}
if (otherObject == null || otherObject.getClass() != FingerprintFingerId.class) {
return false;
}
FingerprintFingerId other = (FingerprintFingerId) otherObject;
if (this.gid == other.gid && this.fid == other.fid) {
return true;
}
return false;
}
public final int hashCode() {
return Objects.hash(new Object[]{Integer.valueOf(HidlSupport.deepHashCode(Integer.valueOf(this.gid))), Integer.valueOf(HidlSupport.deepHashCode(Integer.valueOf(this.fid)))});
}
public final String toString() {
StringBuilder builder = new StringBuilder();
builder.append("{");
builder.append(".gid = ");
builder.append(this.gid);
builder.append(", .fid = ");
builder.append(this.fid);
builder.append("}");
return builder.toString();
}
public final void readFromParcel(HwParcel parcel) {
readEmbeddedFromParcel(parcel, parcel.readBuffer(8), 0);
}
public static final ArrayList<FingerprintFingerId> readVectorFromParcel(HwParcel parcel) {
ArrayList<FingerprintFingerId> _hidl_vec = new ArrayList<>();
HwBlob _hidl_blob = parcel.readBuffer(16);
int _hidl_vec_size = _hidl_blob.getInt32(8);
HwBlob childBlob = parcel.readEmbeddedBuffer((long) (_hidl_vec_size * 8), _hidl_blob.handle(), 0, true);
_hidl_vec.clear();
for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; _hidl_index_0++) {
FingerprintFingerId _hidl_vec_element = new FingerprintFingerId();
_hidl_vec_element.readEmbeddedFromParcel(parcel, childBlob, (long) (_hidl_index_0 * 8));
_hidl_vec.add(_hidl_vec_element);
}
return _hidl_vec;
}
public final void readEmbeddedFromParcel(HwParcel parcel, HwBlob _hidl_blob, long _hidl_offset) {
this.gid = _hidl_blob.getInt32(0 + _hidl_offset);
this.fid = _hidl_blob.getInt32(4 + _hidl_offset);
}
public final void writeToParcel(HwParcel parcel) {
HwBlob _hidl_blob = new HwBlob(8);
writeEmbeddedToBlob(_hidl_blob, 0);
parcel.writeBuffer(_hidl_blob);
}
public static final void writeVectorToParcel(HwParcel parcel, ArrayList<FingerprintFingerId> _hidl_vec) {
HwBlob _hidl_blob = new HwBlob(16);
int _hidl_vec_size = _hidl_vec.size();
_hidl_blob.putInt32(8, _hidl_vec_size);
_hidl_blob.putBool(12, false);
HwBlob childBlob = new HwBlob(_hidl_vec_size * 8);
for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; _hidl_index_0++) {
((FingerprintFingerId) _hidl_vec.get(_hidl_index_0)).writeEmbeddedToBlob(childBlob, (long) (_hidl_index_0 * 8));
}
_hidl_blob.putBlob(0, childBlob);
parcel.writeBuffer(_hidl_blob);
}
public final void writeEmbeddedToBlob(HwBlob _hidl_blob, long _hidl_offset) {
_hidl_blob.putInt32(0 + _hidl_offset, this.gid);
_hidl_blob.putInt32(4 + _hidl_offset, this.fid);
}
}

View file

@ -0,0 +1,88 @@
package vendor.oppo.hardware.biometrics.fingerprint.V2_1;
import android.os.HidlSupport;
import android.os.HwBlob;
import android.os.HwParcel;
import java.util.ArrayList;
import java.util.Objects;
public final class FingerprintIterator {
public final FingerprintFingerId finger = new FingerprintFingerId();
public int remainingTemplates;
public final boolean equals(Object otherObject) {
if (this == otherObject) {
return true;
}
if (otherObject == null || otherObject.getClass() != FingerprintIterator.class) {
return false;
}
FingerprintIterator other = (FingerprintIterator) otherObject;
if (HidlSupport.deepEquals(this.finger, other.finger) && this.remainingTemplates == other.remainingTemplates) {
return true;
}
return false;
}
public final int hashCode() {
return Objects.hash(new Object[]{Integer.valueOf(HidlSupport.deepHashCode(this.finger)), Integer.valueOf(HidlSupport.deepHashCode(Integer.valueOf(this.remainingTemplates)))});
}
public final String toString() {
StringBuilder builder = new StringBuilder();
builder.append("{");
builder.append(".finger = ");
builder.append(this.finger);
builder.append(", .remainingTemplates = ");
builder.append(this.remainingTemplates);
builder.append("}");
return builder.toString();
}
public final void readFromParcel(HwParcel parcel) {
readEmbeddedFromParcel(parcel, parcel.readBuffer(12), 0);
}
public static final ArrayList<FingerprintIterator> readVectorFromParcel(HwParcel parcel) {
ArrayList<FingerprintIterator> _hidl_vec = new ArrayList<>();
HwBlob _hidl_blob = parcel.readBuffer(16);
int _hidl_vec_size = _hidl_blob.getInt32(8);
HwBlob childBlob = parcel.readEmbeddedBuffer((long) (_hidl_vec_size * 12), _hidl_blob.handle(), 0, true);
_hidl_vec.clear();
for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; _hidl_index_0++) {
FingerprintIterator _hidl_vec_element = new FingerprintIterator();
_hidl_vec_element.readEmbeddedFromParcel(parcel, childBlob, (long) (_hidl_index_0 * 12));
_hidl_vec.add(_hidl_vec_element);
}
return _hidl_vec;
}
public final void readEmbeddedFromParcel(HwParcel parcel, HwBlob _hidl_blob, long _hidl_offset) {
this.finger.readEmbeddedFromParcel(parcel, _hidl_blob, 0 + _hidl_offset);
this.remainingTemplates = _hidl_blob.getInt32(8 + _hidl_offset);
}
public final void writeToParcel(HwParcel parcel) {
HwBlob _hidl_blob = new HwBlob(12);
writeEmbeddedToBlob(_hidl_blob, 0);
parcel.writeBuffer(_hidl_blob);
}
public static final void writeVectorToParcel(HwParcel parcel, ArrayList<FingerprintIterator> _hidl_vec) {
HwBlob _hidl_blob = new HwBlob(16);
int _hidl_vec_size = _hidl_vec.size();
_hidl_blob.putInt32(8, _hidl_vec_size);
_hidl_blob.putBool(12, false);
HwBlob childBlob = new HwBlob(_hidl_vec_size * 12);
for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; _hidl_index_0++) {
((FingerprintIterator) _hidl_vec.get(_hidl_index_0)).writeEmbeddedToBlob(childBlob, (long) (_hidl_index_0 * 12));
}
_hidl_blob.putBlob(0, childBlob);
parcel.writeBuffer(_hidl_blob);
}
public final void writeEmbeddedToBlob(HwBlob _hidl_blob, long _hidl_offset) {
this.finger.writeEmbeddedToBlob(_hidl_blob, 0 + _hidl_offset);
_hidl_blob.putInt32(8 + _hidl_offset, this.remainingTemplates);
}
}

View file

@ -0,0 +1,73 @@
package vendor.oppo.hardware.biometrics.fingerprint.V2_1;
import java.util.ArrayList;
public final class FingerprintMsgType {
public static final int ACQUIRED = 1;
public static final int AUTHENTICATED = 5;
public static final int ERROR = -1;
public static final int TEMPLATE_ENROLLING = 3;
public static final int TEMPLATE_ENUMERATING = 6;
public static final int TEMPLATE_REMOVED = 4;
public static final String toString(int o) {
if (o == -1) {
return "ERROR";
}
if (o == 1) {
return "ACQUIRED";
}
if (o == 3) {
return "TEMPLATE_ENROLLING";
}
if (o == 4) {
return "TEMPLATE_REMOVED";
}
if (o == 5) {
return "AUTHENTICATED";
}
if (o == 6) {
return "TEMPLATE_ENUMERATING";
}
StringBuilder sb = new StringBuilder();
sb.append("0x");
sb.append(Integer.toHexString(o));
return sb.toString();
}
public static final String dumpBitfield(int o) {
ArrayList<String> list = new ArrayList<>();
int flipped = 0;
if ((o & -1) == -1) {
list.add("ERROR");
flipped = 0 | -1;
}
if ((o & 1) == 1) {
list.add("ACQUIRED");
flipped |= 1;
}
if ((o & 3) == 3) {
list.add("TEMPLATE_ENROLLING");
flipped |= 3;
}
if ((o & 4) == 4) {
list.add("TEMPLATE_REMOVED");
flipped |= 4;
}
if ((o & 5) == 5) {
list.add("AUTHENTICATED");
flipped |= 5;
}
if ((o & 6) == 6) {
list.add("TEMPLATE_ENUMERATING");
flipped |= 6;
}
if (o != flipped) {
StringBuilder sb = new StringBuilder();
sb.append("0x");
sb.append(Integer.toHexString((~flipped) & o));
list.add(sb.toString());
}
return String.join(" | ", list);
}
}

View file

@ -0,0 +1,38 @@
package vendor.oppo.hardware.biometrics.fingerprint.V2_1;
import java.util.ArrayList;
public final class FingerprintScreenState {
public static final int FINGERPRINT_SCREEN_OFF = 0;
public static final int FINGERPRINT_SCREEN_ON = 1;
public static final String toString(int o) {
if (o == 0) {
return "FINGERPRINT_SCREEN_OFF";
}
if (o == 1) {
return "FINGERPRINT_SCREEN_ON";
}
StringBuilder sb = new StringBuilder();
sb.append("0x");
sb.append(Integer.toHexString(o));
return sb.toString();
}
public static final String dumpBitfield(int o) {
ArrayList<String> list = new ArrayList<>();
int flipped = 0;
list.add("FINGERPRINT_SCREEN_OFF");
if ((o & 1) == 1) {
list.add("FINGERPRINT_SCREEN_ON");
flipped = 0 | 1;
}
if (o != flipped) {
StringBuilder sb = new StringBuilder();
sb.append("0x");
sb.append(Integer.toHexString((~flipped) & o));
list.add(sb.toString());
}
return String.join(" | ", list);
}
}

View file

@ -0,0 +1,826 @@
package vendor.oppo.hardware.biometrics.fingerprint.V2_1;
import android.hidl.base.V1_0.DebugInfo;
import android.hidl.base.V1_0.IBase;
import android.os.HidlSupport;
import android.os.HwBinder;
import android.os.HwBlob;
import android.os.HwParcel;
import android.os.IHwBinder;
import android.os.IHwBinder.DeathRecipient;
import android.os.IHwInterface;
import android.os.RemoteException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Objects;
public interface IBiometricsFingerprintClientCallback extends IBase {
public static final String kInterfaceName = "vendor.oppo.hardware.biometrics.fingerprint@2.1::IBiometricsFingerprintClientCallback";
public static final class Proxy implements IBiometricsFingerprintClientCallback {
private IHwBinder mRemote;
public Proxy(IHwBinder remote) {
this.mRemote = (IHwBinder) Objects.requireNonNull(remote);
}
public IHwBinder asBinder() {
return this.mRemote;
}
public String toString() {
try {
StringBuilder sb = new StringBuilder();
sb.append(interfaceDescriptor());
sb.append("@Proxy");
return sb.toString();
} catch (RemoteException e) {
return "[class or subclass of vendor.oppo.hardware.biometrics.fingerprint@2.1::IBiometricsFingerprintClientCallback]@Proxy";
}
}
public final boolean equals(Object other) {
return HidlSupport.interfacesEqual(this, other);
}
public final int hashCode() {
return asBinder().hashCode();
}
public void onEnrollResult(long deviceId, int fingerId, int groupId, int remaining) throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBiometricsFingerprintClientCallback.kInterfaceName);
_hidl_request.writeInt64(deviceId);
_hidl_request.writeInt32(fingerId);
_hidl_request.writeInt32(groupId);
_hidl_request.writeInt32(remaining);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(1, _hidl_request, _hidl_reply, 1);
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public void onAcquired(long deviceId, int acquiredInfo, int vendorCode) throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBiometricsFingerprintClientCallback.kInterfaceName);
_hidl_request.writeInt64(deviceId);
_hidl_request.writeInt32(acquiredInfo);
_hidl_request.writeInt32(vendorCode);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(2, _hidl_request, _hidl_reply, 1);
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public void onAuthenticated(long deviceId, int fingerId, int groupId, ArrayList<Byte> token) throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBiometricsFingerprintClientCallback.kInterfaceName);
_hidl_request.writeInt64(deviceId);
_hidl_request.writeInt32(fingerId);
_hidl_request.writeInt32(groupId);
_hidl_request.writeInt8Vector(token);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(3, _hidl_request, _hidl_reply, 1);
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public void onError(long deviceId, int error, int vendorCode) throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBiometricsFingerprintClientCallback.kInterfaceName);
_hidl_request.writeInt64(deviceId);
_hidl_request.writeInt32(error);
_hidl_request.writeInt32(vendorCode);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(4, _hidl_request, _hidl_reply, 1);
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public void onRemoved(long deviceId, int fingerId, int groupId, int remaining) throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBiometricsFingerprintClientCallback.kInterfaceName);
_hidl_request.writeInt64(deviceId);
_hidl_request.writeInt32(fingerId);
_hidl_request.writeInt32(groupId);
_hidl_request.writeInt32(remaining);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(5, _hidl_request, _hidl_reply, 1);
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public void onEnumerate(long deviceId, int fingerId, int groupId, int remaining) throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBiometricsFingerprintClientCallback.kInterfaceName);
_hidl_request.writeInt64(deviceId);
_hidl_request.writeInt32(fingerId);
_hidl_request.writeInt32(groupId);
_hidl_request.writeInt32(remaining);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(6, _hidl_request, _hidl_reply, 1);
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public void onTouchDown(long deviceId) throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBiometricsFingerprintClientCallback.kInterfaceName);
_hidl_request.writeInt64(deviceId);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(7, _hidl_request, _hidl_reply, 1);
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public void onTouchUp(long deviceId) throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBiometricsFingerprintClientCallback.kInterfaceName);
_hidl_request.writeInt64(deviceId);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(8, _hidl_request, _hidl_reply, 1);
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public void onMonitorEventTriggered(int type, String data) throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBiometricsFingerprintClientCallback.kInterfaceName);
_hidl_request.writeInt32(type);
_hidl_request.writeString(data);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(9, _hidl_request, _hidl_reply, 1);
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public void onImageInfoAcquired(int type, int quality, int match_score) throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBiometricsFingerprintClientCallback.kInterfaceName);
_hidl_request.writeInt32(type);
_hidl_request.writeInt32(quality);
_hidl_request.writeInt32(match_score);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(10, _hidl_request, _hidl_reply, 1);
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public void onSyncTemplates(long deviceId, ArrayList<Integer> fingerIds, int groupId) throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBiometricsFingerprintClientCallback.kInterfaceName);
_hidl_request.writeInt64(deviceId);
_hidl_request.writeInt32Vector(fingerIds);
_hidl_request.writeInt32(groupId);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(11, _hidl_request, _hidl_reply, 1);
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public void onEngineeringInfoUpdated(int lenth, ArrayList<Integer> keys, ArrayList<String> values) throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBiometricsFingerprintClientCallback.kInterfaceName);
_hidl_request.writeInt32(lenth);
_hidl_request.writeInt32Vector(keys);
_hidl_request.writeStringVector(values);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(12, _hidl_request, _hidl_reply, 1);
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public void onFingerprintCmd(int cmdId, ArrayList<Byte> result, int resultLen) throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBiometricsFingerprintClientCallback.kInterfaceName);
_hidl_request.writeInt32(cmdId);
_hidl_request.writeInt8Vector(result);
_hidl_request.writeInt32(resultLen);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(13, _hidl_request, _hidl_reply, 1);
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public ArrayList<String> interfaceChain() throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBase.kInterfaceName);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(256067662, _hidl_request, _hidl_reply, 0);
_hidl_reply.verifySuccess();
_hidl_request.releaseTemporaryStorage();
return _hidl_reply.readStringVector();
} finally {
_hidl_reply.release();
}
}
public String interfaceDescriptor() throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBase.kInterfaceName);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(256136003, _hidl_request, _hidl_reply, 0);
_hidl_reply.verifySuccess();
_hidl_request.releaseTemporaryStorage();
return _hidl_reply.readString();
} finally {
_hidl_reply.release();
}
}
public ArrayList<byte[]> getHashChain() throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBase.kInterfaceName);
HwParcel _hidl_reply = new HwParcel();
try {
int _hidl_index_0 = 0;
this.mRemote.transact(256398152, _hidl_request, _hidl_reply, 0);
_hidl_reply.verifySuccess();
_hidl_request.releaseTemporaryStorage();
ArrayList arrayList = new ArrayList();
HwBlob _hidl_blob = _hidl_reply.readBuffer(16);
int _hidl_vec_size = _hidl_blob.getInt32(8);
HwBlob childBlob = _hidl_reply.readEmbeddedBuffer((long) (_hidl_vec_size * 32), _hidl_blob.handle(), 0, true);
arrayList.clear();
while (true) {
int _hidl_index_02 = _hidl_index_0;
if (_hidl_index_02 >= _hidl_vec_size) {
return arrayList;
}
byte[] _hidl_vec_element = new byte[32];
childBlob.copyToInt8Array((long) (_hidl_index_02 * 32), _hidl_vec_element, 32);
arrayList.add(_hidl_vec_element);
_hidl_index_0 = _hidl_index_02 + 1;
}
} finally {
_hidl_reply.release();
}
}
public void setHALInstrumentation() throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBase.kInterfaceName);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(256462420, _hidl_request, _hidl_reply, 1);
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public boolean linkToDeath(DeathRecipient recipient, long cookie) throws RemoteException {
return this.mRemote.linkToDeath(recipient, cookie);
}
public void ping() throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBase.kInterfaceName);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(256921159, _hidl_request, _hidl_reply, 0);
_hidl_reply.verifySuccess();
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public DebugInfo getDebugInfo() throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBase.kInterfaceName);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(257049926, _hidl_request, _hidl_reply, 0);
_hidl_reply.verifySuccess();
_hidl_request.releaseTemporaryStorage();
DebugInfo _hidl_out_info = new DebugInfo();
_hidl_out_info.readFromParcel(_hidl_reply);
return _hidl_out_info;
} finally {
_hidl_reply.release();
}
}
public void notifySyspropsChanged() throws RemoteException {
HwParcel _hidl_request = new HwParcel();
_hidl_request.writeInterfaceToken(IBase.kInterfaceName);
HwParcel _hidl_reply = new HwParcel();
try {
this.mRemote.transact(257120595, _hidl_request, _hidl_reply, 1);
_hidl_request.releaseTemporaryStorage();
} finally {
_hidl_reply.release();
}
}
public boolean unlinkToDeath(DeathRecipient recipient) throws RemoteException {
return this.mRemote.unlinkToDeath(recipient);
}
}
public static abstract class Stub extends HwBinder implements IBiometricsFingerprintClientCallback {
public IHwBinder asBinder() {
return this;
}
public final ArrayList<String> interfaceChain() {
return new ArrayList<>(Arrays.asList(new String[]{IBiometricsFingerprintClientCallback.kInterfaceName, IBase.kInterfaceName}));
}
public final String interfaceDescriptor() {
return IBiometricsFingerprintClientCallback.kInterfaceName;
}
public final ArrayList<byte[]> getHashChain() {
return new ArrayList<>(Arrays.asList(new byte[][]{new byte[]{26, -80, -106, -40, -116, -25, 4, 112, 9, 84, 93, 47, 6, -77, -22, 89, -82, 118, -32, -93, -54, -9, -86, 101, -11, -40, -96, 122, -47, 121, 99, -119}, new byte[]{-67, -38, -74, 24, 77, 122, 52, 109, -90, -96, 125, -64, -126, -116, -15, -102, 105, 111, 76, -86, 54, 17, -59, 31, 46, 20, 86, 90, 20, -76, 15, -39}}));
}
public final void setHALInstrumentation() {
}
public final boolean linkToDeath(DeathRecipient recipient, long cookie) {
return true;
}
public final void ping() {
}
public final DebugInfo getDebugInfo() {
DebugInfo info = new DebugInfo();
info.pid = HidlSupport.getPidIfSharable();
info.ptr = 0;
info.arch = 0;
return info;
}
public final void notifySyspropsChanged() {
HwBinder.enableInstrumentation();
}
public final boolean unlinkToDeath(DeathRecipient recipient) {
return true;
}
public IHwInterface queryLocalInterface(String descriptor) {
if (IBiometricsFingerprintClientCallback.kInterfaceName.equals(descriptor)) {
return this;
}
return null;
}
public void registerAsService(String serviceName) throws RemoteException {
registerService(serviceName);
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(interfaceDescriptor());
sb.append("@Stub");
return sb.toString();
}
public void onTransact(int _hidl_code, HwParcel _hidl_request, HwParcel _hidl_reply, int _hidl_flags) throws RemoteException {
HwParcel hwParcel = _hidl_request;
HwParcel hwParcel2 = _hidl_reply;
int _hidl_index_0 = 0;
boolean _hidl_is_oneway = true;
switch (_hidl_code) {
case 1:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 1) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBiometricsFingerprintClientCallback.kInterfaceName);
onEnrollResult(_hidl_request.readInt64(), _hidl_request.readInt32(), _hidl_request.readInt32(), _hidl_request.readInt32());
return;
case 2:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 1) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBiometricsFingerprintClientCallback.kInterfaceName);
onAcquired(_hidl_request.readInt64(), _hidl_request.readInt32(), _hidl_request.readInt32());
return;
case 3:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 1) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBiometricsFingerprintClientCallback.kInterfaceName);
onAuthenticated(_hidl_request.readInt64(), _hidl_request.readInt32(), _hidl_request.readInt32(), _hidl_request.readInt8Vector());
return;
case 4:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 1) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBiometricsFingerprintClientCallback.kInterfaceName);
onError(_hidl_request.readInt64(), _hidl_request.readInt32(), _hidl_request.readInt32());
return;
case 5:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 1) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBiometricsFingerprintClientCallback.kInterfaceName);
onRemoved(_hidl_request.readInt64(), _hidl_request.readInt32(), _hidl_request.readInt32(), _hidl_request.readInt32());
return;
case 6:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 1) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBiometricsFingerprintClientCallback.kInterfaceName);
onEnumerate(_hidl_request.readInt64(), _hidl_request.readInt32(), _hidl_request.readInt32(), _hidl_request.readInt32());
return;
case FingerprintError.ERROR_LOCKOUT /*7*/:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 1) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBiometricsFingerprintClientCallback.kInterfaceName);
onTouchDown(_hidl_request.readInt64());
return;
case FingerprintError.ERROR_VENDOR /*8*/:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 1) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBiometricsFingerprintClientCallback.kInterfaceName);
onTouchUp(_hidl_request.readInt64());
return;
case 9:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 1) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBiometricsFingerprintClientCallback.kInterfaceName);
onMonitorEventTriggered(_hidl_request.readInt32(), _hidl_request.readString());
return;
case 10:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 1) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBiometricsFingerprintClientCallback.kInterfaceName);
onImageInfoAcquired(_hidl_request.readInt32(), _hidl_request.readInt32(), _hidl_request.readInt32());
return;
case 11:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 1) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBiometricsFingerprintClientCallback.kInterfaceName);
onSyncTemplates(_hidl_request.readInt64(), _hidl_request.readInt32Vector(), _hidl_request.readInt32());
return;
case 12:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 1) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBiometricsFingerprintClientCallback.kInterfaceName);
onEngineeringInfoUpdated(_hidl_request.readInt32(), _hidl_request.readInt32Vector(), _hidl_request.readStringVector());
return;
case 13:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 1) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBiometricsFingerprintClientCallback.kInterfaceName);
onFingerprintCmd(_hidl_request.readInt32(), _hidl_request.readInt8Vector(), _hidl_request.readInt32());
return;
default:
switch (_hidl_code) {
case 256067662:
if ((_hidl_flags & 1) == 0) {
_hidl_is_oneway = false;
}
if (_hidl_is_oneway) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBase.kInterfaceName);
ArrayList<String> _hidl_out_descriptors = interfaceChain();
hwParcel2.writeStatus(0);
hwParcel2.writeStringVector(_hidl_out_descriptors);
_hidl_reply.send();
return;
case 256131655:
if ((_hidl_flags & 1) == 0) {
_hidl_is_oneway = false;
}
if (_hidl_is_oneway) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBase.kInterfaceName);
hwParcel2.writeStatus(0);
_hidl_reply.send();
return;
case 256136003:
if ((_hidl_flags & 1) == 0) {
_hidl_is_oneway = false;
}
if (_hidl_is_oneway) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBase.kInterfaceName);
String _hidl_out_descriptor = interfaceDescriptor();
hwParcel2.writeStatus(0);
hwParcel2.writeString(_hidl_out_descriptor);
_hidl_reply.send();
return;
case 256398152:
if ((_hidl_flags & 1) == 0) {
_hidl_is_oneway = false;
}
if (_hidl_is_oneway) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBase.kInterfaceName);
ArrayList<byte[]> _hidl_out_hashchain = getHashChain();
hwParcel2.writeStatus(0);
HwBlob _hidl_blob = new HwBlob(16);
int _hidl_vec_size = _hidl_out_hashchain.size();
_hidl_blob.putInt32(8, _hidl_vec_size);
_hidl_blob.putBool(12, false);
HwBlob childBlob = new HwBlob(_hidl_vec_size * 32);
while (_hidl_index_0 < _hidl_vec_size) {
childBlob.putInt8Array((long) (_hidl_index_0 * 32), (byte[]) _hidl_out_hashchain.get(_hidl_index_0));
_hidl_index_0++;
}
_hidl_blob.putBlob(0, childBlob);
hwParcel2.writeBuffer(_hidl_blob);
_hidl_reply.send();
return;
case 256462420:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 1) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBase.kInterfaceName);
setHALInstrumentation();
return;
case 256660548:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 0) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
return;
case 256921159:
if ((_hidl_flags & 1) == 0) {
_hidl_is_oneway = false;
}
if (_hidl_is_oneway) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBase.kInterfaceName);
ping();
hwParcel2.writeStatus(0);
_hidl_reply.send();
return;
case 257049926:
if ((_hidl_flags & 1) == 0) {
_hidl_is_oneway = false;
}
if (_hidl_is_oneway) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBase.kInterfaceName);
DebugInfo _hidl_out_info = getDebugInfo();
hwParcel2.writeStatus(0);
_hidl_out_info.writeToParcel(hwParcel2);
_hidl_reply.send();
return;
case 257120595:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 1) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
hwParcel.enforceInterface(IBase.kInterfaceName);
notifySyspropsChanged();
return;
case 257250372:
if ((_hidl_flags & 1) != 0) {
_hidl_index_0 = 1;
}
if (_hidl_index_0 != 0) {
hwParcel2.writeStatus(Integer.MIN_VALUE);
_hidl_reply.send();
return;
}
return;
default:
return;
}
}
}
}
IHwBinder asBinder();
DebugInfo getDebugInfo() throws RemoteException;
ArrayList<byte[]> getHashChain() throws RemoteException;
ArrayList<String> interfaceChain() throws RemoteException;
String interfaceDescriptor() throws RemoteException;
boolean linkToDeath(DeathRecipient deathRecipient, long j) throws RemoteException;
void notifySyspropsChanged() throws RemoteException;
void onAcquired(long j, int i, int i2) throws RemoteException;
void onAuthenticated(long j, int i, int i2, ArrayList<Byte> arrayList) throws RemoteException;
void onEngineeringInfoUpdated(int i, ArrayList<Integer> arrayList, ArrayList<String> arrayList2) throws RemoteException;
void onEnrollResult(long j, int i, int i2, int i3) throws RemoteException;
void onEnumerate(long j, int i, int i2, int i3) throws RemoteException;
void onError(long j, int i, int i2) throws RemoteException;
void onFingerprintCmd(int i, ArrayList<Byte> arrayList, int i2) throws RemoteException;
void onImageInfoAcquired(int i, int i2, int i3) throws RemoteException;
void onMonitorEventTriggered(int i, String str) throws RemoteException;
void onRemoved(long j, int i, int i2, int i3) throws RemoteException;
void onSyncTemplates(long j, ArrayList<Integer> arrayList, int i) throws RemoteException;
void onTouchDown(long j) throws RemoteException;
void onTouchUp(long j) throws RemoteException;
void ping() throws RemoteException;
void setHALInstrumentation() throws RemoteException;
boolean unlinkToDeath(DeathRecipient deathRecipient) throws RemoteException;
static IBiometricsFingerprintClientCallback asInterface(IHwBinder binder) {
if (binder == null) {
return null;
}
IHwInterface iface = binder.queryLocalInterface(kInterfaceName);
if (iface != null && (iface instanceof IBiometricsFingerprintClientCallback)) {
return (IBiometricsFingerprintClientCallback) iface;
}
IBiometricsFingerprintClientCallback proxy = new Proxy(binder);
try {
Iterator it = proxy.interfaceChain().iterator();
while (it.hasNext()) {
if (((String) it.next()).equals(kInterfaceName)) {
return proxy;
}
}
} catch (RemoteException e) {
}
return null;
}
static IBiometricsFingerprintClientCallback castFrom(IHwInterface iface) {
if (iface == null) {
return null;
}
return asInterface(iface.asBinder());
}
static IBiometricsFingerprintClientCallback getService(String serviceName, boolean retry) throws RemoteException {
return asInterface(HwBinder.getService(kInterfaceName, serviceName, retry));
}
static IBiometricsFingerprintClientCallback getService(boolean retry) throws RemoteException {
return getService("default", retry);
}
static IBiometricsFingerprintClientCallback getService(String serviceName) throws RemoteException {
return asInterface(HwBinder.getService(kInterfaceName, serviceName));
}
static IBiometricsFingerprintClientCallback getService() throws RemoteException {
return getService("default");
}
}

View file

@ -0,0 +1,126 @@
package vendor.oppo.hardware.biometrics.fingerprint.V2_1;
import java.util.ArrayList;
public final class RequestStatus {
public static final int SYS_EACCES = -13;
public static final int SYS_EAGAIN = -11;
public static final int SYS_EBUSY = -16;
public static final int SYS_EFAULT = -14;
public static final int SYS_EINTR = -4;
public static final int SYS_EINVAL = -22;
public static final int SYS_EIO = -5;
public static final int SYS_ENOENT = -2;
public static final int SYS_ENOMEM = -12;
public static final int SYS_ENOSPC = -28;
public static final int SYS_ETIMEDOUT = -110;
public static final int SYS_OK = 0;
public static final int SYS_UNKNOWN = 1;
public static final String toString(int o) {
if (o == 1) {
return "SYS_UNKNOWN";
}
if (o == 0) {
return "SYS_OK";
}
if (o == -2) {
return "SYS_ENOENT";
}
if (o == -4) {
return "SYS_EINTR";
}
if (o == -5) {
return "SYS_EIO";
}
if (o == -11) {
return "SYS_EAGAIN";
}
if (o == -12) {
return "SYS_ENOMEM";
}
if (o == -13) {
return "SYS_EACCES";
}
if (o == -14) {
return "SYS_EFAULT";
}
if (o == -16) {
return "SYS_EBUSY";
}
if (o == -22) {
return "SYS_EINVAL";
}
if (o == -28) {
return "SYS_ENOSPC";
}
if (o == -110) {
return "SYS_ETIMEDOUT";
}
StringBuilder sb = new StringBuilder();
sb.append("0x");
sb.append(Integer.toHexString(o));
return sb.toString();
}
public static final String dumpBitfield(int o) {
ArrayList<String> list = new ArrayList<>();
int flipped = 0;
if ((o & 1) == 1) {
list.add("SYS_UNKNOWN");
flipped = 0 | 1;
}
list.add("SYS_OK");
if ((o & -2) == -2) {
list.add("SYS_ENOENT");
flipped |= -2;
}
if ((o & -4) == -4) {
list.add("SYS_EINTR");
flipped |= -4;
}
if ((o & -5) == -5) {
list.add("SYS_EIO");
flipped |= -5;
}
if ((o & -11) == -11) {
list.add("SYS_EAGAIN");
flipped |= -11;
}
if ((o & -12) == -12) {
list.add("SYS_ENOMEM");
flipped |= -12;
}
if ((o & -13) == -13) {
list.add("SYS_EACCES");
flipped |= -13;
}
if ((o & -14) == -14) {
list.add("SYS_EFAULT");
flipped |= -14;
}
if ((o & -16) == -16) {
list.add("SYS_EBUSY");
flipped |= -16;
}
if ((o & -22) == -22) {
list.add("SYS_EINVAL");
flipped |= -22;
}
if ((o & -28) == -28) {
list.add("SYS_ENOSPC");
flipped |= -28;
}
if ((o & SYS_ETIMEDOUT) == -110) {
list.add("SYS_ETIMEDOUT");
flipped |= SYS_ETIMEDOUT;
}
if (o != flipped) {
StringBuilder sb = new StringBuilder();
sb.append("0x");
sb.append(Integer.toHexString((~flipped) & o));
list.add(sb.toString());
}
return String.join(" | ", list);
}
}