From 2fa48187b98c6f16f466c5599b87d3b2c394b8c5 Mon Sep 17 00:00:00 2001 From: wenyifan Date: Fri, 25 Aug 2023 22:43:19 +0800 Subject: [PATCH] use com.android.phone --- .idea/misc.xml | 2 +- .idea/vcs.xml | 6 + app/build.gradle | 2 +- app/libs/mirilhook.jar | Bin 112280 -> 0 bytes app/src/main/AndroidManifest.xml | 13 +- .../java/run/evan/modemtool/MainActivity.java | 39 +-- .../java/run/evan/modemtool/MiRilHook.java | 238 ++++++++++++++++++ 7 files changed, 253 insertions(+), 47 deletions(-) create mode 100644 .idea/vcs.xml delete mode 100644 app/libs/mirilhook.jar create mode 100644 app/src/main/java/run/evan/modemtool/MiRilHook.java diff --git a/.idea/misc.xml b/.idea/misc.xml index 773fe0f..8978d23 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 3e8dd10..eb5806a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -36,5 +36,5 @@ dependencies { androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' implementation files('libs/qcrilhook.jar') - implementation files('libs/mirilhook.jar') + implementation files('libs/qti-telephony-utils.jar') } \ No newline at end of file diff --git a/app/libs/mirilhook.jar b/app/libs/mirilhook.jar deleted file mode 100644 index ae64bb8ab35d70f444214d2e41f5e10f91113a87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112280 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 - - - - @@ -21,20 +17,15 @@ - - - diff --git a/app/src/main/java/run/evan/modemtool/MainActivity.java b/app/src/main/java/run/evan/modemtool/MainActivity.java index 2f13567..b14365a 100644 --- a/app/src/main/java/run/evan/modemtool/MainActivity.java +++ b/app/src/main/java/run/evan/modemtool/MainActivity.java @@ -5,7 +5,6 @@ import android.os.Bundle; import android.telephony.CellIdentityNr; import android.telephony.CellInfo; import android.telephony.CellInfoNr; -import android.telephony.CellSignalStrength; import android.telephony.CellSignalStrengthNr; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; @@ -19,11 +18,8 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; -import com.qualcomm.qcrilhook.QcRilHook; import com.qualcomm.qcrilhook.QcRilHookCallback; -import com.xiaomi.mirilhook.MiRilHook; -import java.lang.reflect.Field; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.List; @@ -61,9 +57,6 @@ public class MainActivity extends AppCompatActivity { private boolean miRilHookReady = false; - private QcRilHook mQcRilHook = null; - - private boolean mQcRilHookReady = false; TelephonyManager.CellInfoCallback cellInfoCallback; @@ -163,20 +156,6 @@ public class MainActivity extends AppCompatActivity { } }); - mQcRilHook = new QcRilHook(getApplicationContext(), new QcRilHookCallback() { - @Override - public void onQcRilHookDisconnected() { - Log.i(TAG, "onMiRilHookDisconnected"); - mQcRilHookReady = false; - } - - @Override - public void onQcRilHookReady() { - Log.i(TAG, "onQcRilHookReady"); - mQcRilHookReady = true; - } - }); - } catch (Exception e) { @@ -186,23 +165,12 @@ public class MainActivity extends AppCompatActivity { } - private void modemSSR() { - try { - if (miRilHookReady) { - miRilHook.onHookCommonMsgSync(31, 4, -2147483647); - } else { - Toast.makeText(getApplicationContext(), "miRilHookReady = false", Toast.LENGTH_LONG).show(); - } - } catch (Exception e) { - - } - } private void refreshMbn() { try { - if (mQcRilHookReady) { + if (miRilHookReady) { int slotIndex = SubscriptionManager.getSlotIndex(getSub()); - mQcRilHook.qcRilRefreshMbn(slotIndex); + miRilHook.qcRilRefreshMbn(slotIndex); } else { Toast.makeText(getApplicationContext(), "mQcRilHookReady = false", Toast.LENGTH_LONG).show(); } @@ -299,4 +267,7 @@ public class MainActivity extends AppCompatActivity { } + + + } \ No newline at end of file diff --git a/app/src/main/java/run/evan/modemtool/MiRilHook.java b/app/src/main/java/run/evan/modemtool/MiRilHook.java new file mode 100644 index 0000000..87c4a9c --- /dev/null +++ b/app/src/main/java/run/evan/modemtool/MiRilHook.java @@ -0,0 +1,238 @@ +package run.evan.modemtool; + +import android.content.Context; +import android.os.RemoteException; + +import com.qualcomm.qcrilhook.QcRilHook; +import com.qualcomm.qcrilhook.QcRilHookCallback; + +import org.codeaurora.telephony.utils.CommandException; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.util.Arrays; + +public class MiRilHook extends QcRilHook { + + + private final int mHeaderSize; + + private static final int HOOK_HEAD_SIZE = "QOEMHOOK".length() + 8; + + + public MiRilHook(Context context) { + super(context); + this.mHeaderSize = "QOEMHOOK".length() + 8; + + } + + public MiRilHook(Context context, QcRilHookCallback qcRilHookCallback) { + super(context, qcRilHookCallback); + this.mHeaderSize = "QOEMHOOK".length() + 8; + + } + + + public ByteBuffer onHookBigEfsReadSync(int sub, String path, int responseSize) { + return onHookSendSync(onPkHookEfsOpt(sub, path, 4), responseSize, 0); + } + + public ByteBuffer onHookBigEfsReadSync(int sub, String path) { + return onHookSendSync(onPkHookEfsOpt(sub, path, 4), 102400, 0); + } + + private ByteBuffer onHookSendSync(byte[] requestBytes, int responseSize, int phoneId) { + if (requestBytes == null) { + return null; + } else if (responseSize <= 0) { + return null; + } else { + return sendQcRilHookMsgSync(524970, requestBytes, responseSize, phoneId); + } + } + public ByteBuffer sendQcRilHookMsgSync(int requestId, byte[] request, int responseSize, int phoneId) { + org.codeaurora.telephony.utils.AsyncResult ar = sendQcRilHookMsg(requestId, request, responseSize, phoneId); + if (ar == null) { + return null; + } else if (ar.exception != null) { + return null; + } else if (ar.result == null) { + return null; + } else { + byte[] response = (byte[]) ar.result; + ByteBuffer byteBuf = ByteBuffer.wrap(response); + byteBuf.order(ByteOrder.nativeOrder()); + return byteBuf; + } + } + + + public org.codeaurora.telephony.utils.AsyncResult sendQcRilHookMsg(int requestId, byte[] request, int responseSize, int phoneId) { + validateInternalState(); + int mHeaderSize = "QOEMHOOK".length() + 8; + byte[] request_new = new byte[mHeaderSize + request.length]; + ByteBuffer reqBuffer = createBufferWithNativeByteOrder(request_new); + addQcRilHookHeader(reqBuffer, requestId, request.length); + reqBuffer.put(request); + return sendRilOemHookMsg(requestId, request_new, responseSize, phoneId); + } + + public ByteBuffer onHookEfsWriteSync(int sub, String path, byte[] data) { + if (data == null) { + return null; + } + return onHookEfsWriteSync(sub, path, data, data.length); + } + public ByteBuffer onHookEfsWriteSync(int sub, String path, byte[] data, int dataLen) { + return onHookSendSync(onPkHookEfsWrite(sub, path, data, dataLen)); + } + + public ByteBuffer sendQcRilHookMsgSync(int requestId, byte[] request, int phoneId) { + org.codeaurora.telephony.utils.AsyncResult ar = sendQcRilHookMsg(requestId, request, phoneId); + if (ar == null) { + return null; + } else if (ar.exception != null) { + return null; + } else if (ar.result == null) { + return null; + } else { + byte[] response = (byte[]) ar.result; + ByteBuffer byteBuf = ByteBuffer.wrap(response); + byteBuf.order(ByteOrder.nativeOrder()); + return byteBuf; + } + } + public ByteBuffer onHookEfsOptSync(int sub, String path, int hook_id) { + return onHookSendSync(onPkHookEfsOpt(sub, path, hook_id)); + } + + + public static boolean putByteToBuffer(ByteBuffer buf, byte[] value, int len) { + if (value == null) { + return false; + } else if (buf == null) { + return false; + } else if (len <= 0) { + return false; + } else { + for (int i = 0; i < len; i++) { + buf.put(value[i]); + } + return true; + } + } + private ByteBuffer onHookSendSync(byte[] requestBytes) { + return onHookSendSync(requestBytes, 0); + } + + private ByteBuffer onHookSendSync(byte[] requestBytes, int phoneId) { + if (requestBytes == null) { + return null; + } else { + return sendQcRilHookMsgSync(524970, requestBytes, phoneId); + } + } + + + private void validateInternalState() { + if (isDisposed()) { + throw new IllegalStateException("QcRilHook is in disposed state"); + } + } + + private org.codeaurora.telephony.utils.AsyncResult sendRilOemHookMsg(int requestId, byte[] request, int responseSize, int phoneId) { + if (responseSize <= 0) { + return null; + } + byte[] response = new byte[responseSize]; + try { + int retVal = this.mService.sendOemRilRequestRaw(request, response, phoneId); + if (retVal >= 0) { + byte[] validResponseBytes = null; + if (retVal > 0) { + validResponseBytes = Arrays.copyOf(response, retVal); + } + org.codeaurora.telephony.utils.AsyncResult ar = new org.codeaurora.telephony.utils.AsyncResult(Integer.valueOf(retVal), validResponseBytes, (Throwable) null); + return ar; + } + byte[] validResponseBytes2 = Arrays.copyOf(response, response.length); + CommandException ex = CommandException.fromRilErrno(retVal * (-1)); + org.codeaurora.telephony.utils.AsyncResult ar2 = new org.codeaurora.telephony.utils.AsyncResult(request, validResponseBytes2, ex); + return ar2; + } catch (RemoteException e) { + org.codeaurora.telephony.utils.AsyncResult ar3 = new org.codeaurora.telephony.utils.AsyncResult(Integer.valueOf(requestId), (Object) null, e); + return ar3; + } catch (NullPointerException e2) { + org.codeaurora.telephony.utils.AsyncResult ar4 = new org.codeaurora.telephony.utils.AsyncResult(Integer.valueOf(requestId), (Object) null, e2); + return ar4; + } + } + + + private byte[] onPkHookEfsOpt(int sub, String path, int hook_id) { + if (path == null) { + return null; + } else if (4 != hook_id && 6 != hook_id && 110 != hook_id && 51 != hook_id) {; + return null; + } else { + int msg_len = path.length() + 12; + byte[] hookBytes = onGetHookMsgBytes(msg_len); + ByteBuffer reqBuffer = onGetHookMsgBuffer(hookBytes); + if (reqBuffer == null) { + return null; + } + reqBuffer.putInt(hook_id); + reqBuffer.putInt(sub); + reqBuffer.putInt(path.length()); + reqBuffer.put(path.getBytes()); + return hookBytes; + } + } + + private byte[] onGetHookMsgBytes(int msg_len) { + int i = HOOK_HEAD_SIZE; + byte[] hookBytes = new byte[i + msg_len]; + return hookBytes; + } + + private ByteBuffer onGetHookMsgBuffer(byte[] hookBytes) { + if (hookBytes == null) { + return null; + } + ByteBuffer reqBuffer = createBufferWithNativeByteOrder(hookBytes); + return reqBuffer; + } + + + + + + + private byte[] onPkHookEfsWrite(int sub, String path, byte[] data, int dataLen) { + if (sub != 0 && 1 != sub) { + return null; + } else if (path == null) { + return null; + } else if (data == null) { + return null; + } else if (dataLen <= 0) { + return null; + } else { + int msg_len = path.length() + 12 + 4 + dataLen; + byte[] hookBytes = onGetHookMsgBytes(msg_len); + ByteBuffer reqBuffer = onGetHookMsgBuffer(hookBytes); + if (reqBuffer == null) { + return null; + } + reqBuffer.putInt(5); + reqBuffer.putInt(sub); + reqBuffer.putInt(path.length()); + reqBuffer.put(path.getBytes()); + reqBuffer.putInt(dataLen); + putByteToBuffer(reqBuffer, data, dataLen); + return hookBytes; + } + } + + +}