Loading src/java/com/android/internal/telephony/BaseCommands.java +12 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ public abstract class BaseCommands implements CommandsInterface { protected RegistrantList mIccSlotStatusChangedRegistrants = new RegistrantList(); protected RegistrantList mVoicePrivacyOnRegistrants = new RegistrantList(); protected RegistrantList mVoicePrivacyOffRegistrants = new RegistrantList(); protected Registrant mUnsolOemHookRawRegistrant; protected RegistrantList mOtaProvisionRegistrants = new RegistrantList(); protected RegistrantList mCallWaitingInfoRegistrants = new RegistrantList(); protected RegistrantList mDisplayInfoRegistrants = new RegistrantList(); Loading Loading @@ -596,6 +597,17 @@ public abstract class BaseCommands implements CommandsInterface { mSignalInfoRegistrants.add(r); } public void setOnUnsolOemHookRaw(Handler h, int what, Object obj) { mUnsolOemHookRawRegistrant = new Registrant (h, what, obj); } public void unSetOnUnsolOemHookRaw(Handler h) { if (mUnsolOemHookRawRegistrant != null && mUnsolOemHookRawRegistrant.getHandler() == h) { mUnsolOemHookRawRegistrant.clear(); mUnsolOemHookRawRegistrant = null; } } @Override public void unregisterForSignalInfo(Handler h) { mSignalInfoRegistrants.remove(h); Loading src/java/com/android/internal/telephony/CommandsInterface.java +10 −0 Original line number Diff line number Diff line Loading @@ -1456,6 +1456,8 @@ public interface CommandsInterface { */ void reportStkServiceIsRunning(Message result); void invokeOemRilRequestRaw(byte[] data, Message response); /** * Sends carrier specific information to the vendor ril that can be used to * encrypt the IMSI and IMPI. Loading @@ -1468,6 +1470,14 @@ public interface CommandsInterface { void setCarrierInfoForImsiEncryption(ImsiEncryptionInfo imsiEncryptionInfo, Message response); void invokeOemRilRequestStrings(String[] strings, Message response); /** * Fires when RIL_UNSOL_OEM_HOOK_RAW is received from the RIL. */ void setOnUnsolOemHookRaw(Handler h, int what, Object obj); void unSetOnUnsolOemHookRaw(Handler h); /** * Send TERMINAL RESPONSE to the SIM, after processing a proactive command * sent by the SIM. Loading src/java/com/android/internal/telephony/DefaultPhoneNotifier.java +9 −0 Original line number Diff line number Diff line Loading @@ -333,6 +333,15 @@ public class DefaultPhoneNotifier implements PhoneNotifier { } } @Override public void notifyOemHookRawEventForSubscriber(int subId, byte[] rawData) { try { mRegistry.notifyOemHookRawEventForSubscriber(subId, rawData); } catch (RemoteException ex) { // system process is dead } } /** * Convert the {@link Phone.DataActivityState} enum into the TelephonyManager.DATA_* constants * for the public API. Loading src/java/com/android/internal/telephony/OemHookIndication.java 0 → 100644 +53 −0 Original line number Diff line number Diff line /** * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.telephony; import android.hardware.radio.deprecated.V1_0.IOemHookIndication; import android.os.AsyncResult; import java.util.ArrayList; import static com.android.internal.telephony.RILConstants.RIL_UNSOL_OEM_HOOK_RAW; /** * Class containing oem hook indication callbacks */ public class OemHookIndication extends IOemHookIndication.Stub { RIL mRil; public OemHookIndication(RIL ril) { mRil = ril; } /** * @param indicationType RadioIndicationType * @param data Data sent by oem */ public void oemHookRaw(int indicationType, ArrayList<Byte> data) { mRil.processIndication(indicationType); byte[] response = RIL.arrayListToPrimitiveArray(data); if (RIL.RILJ_LOGD) { mRil.unsljLogvRet(RIL_UNSOL_OEM_HOOK_RAW, com.android.internal.telephony.uicc.IccUtils.bytesToHexString(response)); } if (mRil.mUnsolOemHookRawRegistrant != null) { mRil.mUnsolOemHookRawRegistrant.notifyRegistrant(new AsyncResult(null, response, null)); } } } src/java/com/android/internal/telephony/OemHookResponse.java 0 → 100644 +59 −0 Original line number Diff line number Diff line /** * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.telephony; import android.hardware.radio.deprecated.V1_0.IOemHookResponse; import android.hardware.radio.V1_0.RadioError; import android.hardware.radio.V1_0.RadioResponseInfo; import java.util.ArrayList; /** * Class containing oem hook response callbacks */ public class OemHookResponse extends IOemHookResponse.Stub { RIL mRil; public OemHookResponse(RIL ril) { mRil = ril; } /** * @param responseInfo Response info struct containing response type, serial no. and error * @param data Data returned by oem */ public void sendRequestRawResponse(RadioResponseInfo responseInfo, ArrayList<Byte> data) { RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { byte[] ret = null; if (responseInfo.error == RadioError.NONE) { ret = RIL.arrayListToPrimitiveArray(data); RadioResponse.sendMessageResponse(rr.mResult, ret); } mRil.processResponseDone(rr, responseInfo, ret); } } /** * @param responseInfo Response info struct containing response type, serial no. and error * @param data Data returned by oem */ public void sendRequestStringsResponse(RadioResponseInfo responseInfo, ArrayList<String> data) { RadioResponse.responseStringArrayList(mRil, responseInfo, data); } } Loading
src/java/com/android/internal/telephony/BaseCommands.java +12 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ public abstract class BaseCommands implements CommandsInterface { protected RegistrantList mIccSlotStatusChangedRegistrants = new RegistrantList(); protected RegistrantList mVoicePrivacyOnRegistrants = new RegistrantList(); protected RegistrantList mVoicePrivacyOffRegistrants = new RegistrantList(); protected Registrant mUnsolOemHookRawRegistrant; protected RegistrantList mOtaProvisionRegistrants = new RegistrantList(); protected RegistrantList mCallWaitingInfoRegistrants = new RegistrantList(); protected RegistrantList mDisplayInfoRegistrants = new RegistrantList(); Loading Loading @@ -596,6 +597,17 @@ public abstract class BaseCommands implements CommandsInterface { mSignalInfoRegistrants.add(r); } public void setOnUnsolOemHookRaw(Handler h, int what, Object obj) { mUnsolOemHookRawRegistrant = new Registrant (h, what, obj); } public void unSetOnUnsolOemHookRaw(Handler h) { if (mUnsolOemHookRawRegistrant != null && mUnsolOemHookRawRegistrant.getHandler() == h) { mUnsolOemHookRawRegistrant.clear(); mUnsolOemHookRawRegistrant = null; } } @Override public void unregisterForSignalInfo(Handler h) { mSignalInfoRegistrants.remove(h); Loading
src/java/com/android/internal/telephony/CommandsInterface.java +10 −0 Original line number Diff line number Diff line Loading @@ -1456,6 +1456,8 @@ public interface CommandsInterface { */ void reportStkServiceIsRunning(Message result); void invokeOemRilRequestRaw(byte[] data, Message response); /** * Sends carrier specific information to the vendor ril that can be used to * encrypt the IMSI and IMPI. Loading @@ -1468,6 +1470,14 @@ public interface CommandsInterface { void setCarrierInfoForImsiEncryption(ImsiEncryptionInfo imsiEncryptionInfo, Message response); void invokeOemRilRequestStrings(String[] strings, Message response); /** * Fires when RIL_UNSOL_OEM_HOOK_RAW is received from the RIL. */ void setOnUnsolOemHookRaw(Handler h, int what, Object obj); void unSetOnUnsolOemHookRaw(Handler h); /** * Send TERMINAL RESPONSE to the SIM, after processing a proactive command * sent by the SIM. Loading
src/java/com/android/internal/telephony/DefaultPhoneNotifier.java +9 −0 Original line number Diff line number Diff line Loading @@ -333,6 +333,15 @@ public class DefaultPhoneNotifier implements PhoneNotifier { } } @Override public void notifyOemHookRawEventForSubscriber(int subId, byte[] rawData) { try { mRegistry.notifyOemHookRawEventForSubscriber(subId, rawData); } catch (RemoteException ex) { // system process is dead } } /** * Convert the {@link Phone.DataActivityState} enum into the TelephonyManager.DATA_* constants * for the public API. Loading
src/java/com/android/internal/telephony/OemHookIndication.java 0 → 100644 +53 −0 Original line number Diff line number Diff line /** * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.telephony; import android.hardware.radio.deprecated.V1_0.IOemHookIndication; import android.os.AsyncResult; import java.util.ArrayList; import static com.android.internal.telephony.RILConstants.RIL_UNSOL_OEM_HOOK_RAW; /** * Class containing oem hook indication callbacks */ public class OemHookIndication extends IOemHookIndication.Stub { RIL mRil; public OemHookIndication(RIL ril) { mRil = ril; } /** * @param indicationType RadioIndicationType * @param data Data sent by oem */ public void oemHookRaw(int indicationType, ArrayList<Byte> data) { mRil.processIndication(indicationType); byte[] response = RIL.arrayListToPrimitiveArray(data); if (RIL.RILJ_LOGD) { mRil.unsljLogvRet(RIL_UNSOL_OEM_HOOK_RAW, com.android.internal.telephony.uicc.IccUtils.bytesToHexString(response)); } if (mRil.mUnsolOemHookRawRegistrant != null) { mRil.mUnsolOemHookRawRegistrant.notifyRegistrant(new AsyncResult(null, response, null)); } } }
src/java/com/android/internal/telephony/OemHookResponse.java 0 → 100644 +59 −0 Original line number Diff line number Diff line /** * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.telephony; import android.hardware.radio.deprecated.V1_0.IOemHookResponse; import android.hardware.radio.V1_0.RadioError; import android.hardware.radio.V1_0.RadioResponseInfo; import java.util.ArrayList; /** * Class containing oem hook response callbacks */ public class OemHookResponse extends IOemHookResponse.Stub { RIL mRil; public OemHookResponse(RIL ril) { mRil = ril; } /** * @param responseInfo Response info struct containing response type, serial no. and error * @param data Data returned by oem */ public void sendRequestRawResponse(RadioResponseInfo responseInfo, ArrayList<Byte> data) { RILRequest rr = mRil.processResponse(responseInfo); if (rr != null) { byte[] ret = null; if (responseInfo.error == RadioError.NONE) { ret = RIL.arrayListToPrimitiveArray(data); RadioResponse.sendMessageResponse(rr.mResult, ret); } mRil.processResponseDone(rr, responseInfo, ret); } } /** * @param responseInfo Response info struct containing response type, serial no. and error * @param data Data returned by oem */ public void sendRequestStringsResponse(RadioResponseInfo responseInfo, ArrayList<String> data) { RadioResponse.responseStringArrayList(mRil, responseInfo, data); } }