Revert "remove qualcomm stuff for now"

This reverts commit 9510e1ec889181e99a4fd5379819a9393a4df343.
diff --git a/Qualcomm/QtiAudio/Android.mk b/Qualcomm/QtiAudio/Android.mk
new file mode 100644
index 0000000..50e7f54
--- /dev/null
+++ b/Qualcomm/QtiAudio/Android.mk
@@ -0,0 +1,13 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := $(call all-subdir-java-files)
+
+LOCAL_CERTIFICATE := platform
+LOCAL_PRIVILEGED_MODULE := true
+LOCAL_PACKAGE_NAME := QtiAudio
+LOCAL_PROGUARD_ENABLED := disabled
+
+LOCAL_PRIVATE_PLATFORM_APIS := true
+include $(BUILD_PACKAGE)
diff --git a/Qualcomm/QtiAudio/AndroidManifest.xml b/Qualcomm/QtiAudio/AndroidManifest.xml
new file mode 100644
index 0000000..8ab6812
--- /dev/null
+++ b/Qualcomm/QtiAudio/AndroidManifest.xml
@@ -0,0 +1,16 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+	package="me.phh.qti.audio"
+	android:sharedUserId="android.uid.system"
+	android:persistent="true">
+
+    <application
+	    android:label="@string/app_label">
+
+	    <receiver android:name=".Starter">
+		    <intent-filter>
+			    <action android:name="android.intent.action.BOOT_COMPLETED"/>
+		    </intent-filter>
+	    </receiver>
+	    <service android:name=".Service" />
+    </application>
+</manifest>
diff --git a/Qualcomm/QtiAudio/res/values/strings.xml b/Qualcomm/QtiAudio/res/values/strings.xml
new file mode 100644
index 0000000..1ced373
--- /dev/null
+++ b/Qualcomm/QtiAudio/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="app_label">Qualcomm audio</string>
+</resources>
diff --git a/Qualcomm/QtiAudio/src/me/phh/qti/audio/Service.java b/Qualcomm/QtiAudio/src/me/phh/qti/audio/Service.java
new file mode 100644
index 0000000..5c69742
--- /dev/null
+++ b/Qualcomm/QtiAudio/src/me/phh/qti/audio/Service.java
@@ -0,0 +1,129 @@
+package me.phh.qti.audio;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+import android.media.AudioManager;
+import android.media.AudioSystem;
+import android.os.IBinder;
+import android.os.UEventObserver;
+import android.os.SystemProperties;
+
+public class Service extends android.app.Service {
+	AudioManager audioManager;
+	@Override public void onCreate() {
+		String fp = SystemProperties.get("ro.vendor.build.fingerprint", "nothing");
+		audioManager = getSystemService(AudioManager.class);
+
+		new java.lang.Thread() {
+			@Override
+			public void run() {
+				android.util.Log.d("PHH", "Hello");
+				try {
+					vendor.qti.hardware.radio.am.V1_0.IQcRilAudio service;
+					service = vendor.qti.hardware.radio.am.V1_0.IQcRilAudio.getService("slot1");
+					service.setCallback(cb);
+				} catch(Exception e) {}
+				try {
+					vendor.qti.hardware.radio.am.V1_0.IQcRilAudio service;
+					service = vendor.qti.hardware.radio.am.V1_0.IQcRilAudio.getService("slot2");
+					service.setCallback(cb);
+				} catch(Exception e) {}
+				try {
+					vendor.qti.qcril.am.V1_0.IQcRilAudio service;
+					service = vendor.qti.qcril.am.V1_0.IQcRilAudio.getService("slot1");
+					service.setCallback(cb2);
+				} catch(Exception e) {}
+				try {
+					vendor.qti.qcril.am.V1_0.IQcRilAudio service;
+					service = vendor.qti.qcril.am.V1_0.IQcRilAudio.getService("slot2");
+					service.setCallback(cb2);
+				} catch(Exception e) {}
+                if(fp.contains("OnePlus6")) {
+                    try {
+                        (new UEventObserver() {
+                            @Override
+                            public void onUEvent(UEventObserver.UEvent event) {
+                                try {
+                                    android.util.Log.v("PHH", "USB UEVENT: " + event.toString());
+                                    String state = event.get("STATE");
+
+                                    boolean ringing = state.contains("USB=0");
+                                    boolean silent = state.contains("(null)=0");
+                                    boolean vibrate = state.contains("USB_HOST=0");
+                                    android.util.Log.v("PHH", "Got ringing = " + ringing + ", silent = " + silent + ", vibrate = " + vibrate);
+                                    if(ringing && !silent && !vibrate)
+                                        audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
+                                    if(silent && !ringing && !vibrate)
+                                        audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
+                                    if(vibrate && !silent && !ringing)
+                                        audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
+                                } catch(Exception e) {
+                                    android.util.Log.d("PHH", "Failed parsing uevent", e);
+                                }
+
+                            }
+                        }).startObserving("DEVPATH=/devices/platform/soc/soc:tri_state_key");
+                    } catch(Exception e) {
+                        android.util.Log.d("PHH", "Failed setting UEventObserver", e);
+                    }
+                }
+
+            }
+        }.start();
+    }
+
+    vendor.qti.hardware.radio.am.V1_0.IQcRilAudioCallback cb = new vendor.qti.hardware.radio.am.V1_0.IQcRilAudioCallback.Stub() {
+        @Override
+        public String getParameters(String parameter) {
+            android.util.Log.d("PHH", "Got getParameters " + parameter);
+            try {
+                return AudioSystem.getParameters(parameter);
+            } catch(Exception e) {
+                android.util.Log.d("PHH", "Failed getting parameters");
+            }
+            return "";
+        }
+
+        @Override
+        public int setParameters(String parameters) {
+            android.util.Log.d("PHH", "Got setParameters " + parameters);
+            try {
+                AudioSystem.setParameters(parameters);
+            } catch(Exception e) {
+                android.util.Log.d("PHH", "Failed setting parameters");
+            }
+            return 0;
+        }
+    };
+
+    vendor.qti.qcril.am.V1_0.IQcRilAudioCallback cb2 = new vendor.qti.qcril.am.V1_0.IQcRilAudioCallback.Stub() {
+        @Override
+        public String getParameters(String parameter) {
+            android.util.Log.d("PHH", "Got getParameters " + parameter);
+            try {
+                return AudioSystem.getParameters(parameter);
+            } catch(Exception e) {
+                android.util.Log.d("PHH", "Failed getting parameters");
+            }
+            return "";
+        }
+
+        @Override
+        public int setParameters(String parameters) {
+            android.util.Log.d("PHH", "Got setParameters " + parameters);
+            try {
+                AudioSystem.setParameters(parameters);
+            } catch(Exception e) {
+                android.util.Log.d("PHH", "Failed setting parameters");
+            }
+            return 0;
+        }
+    };
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
+}
diff --git a/Qualcomm/QtiAudio/src/me/phh/qti/audio/Starter.java b/Qualcomm/QtiAudio/src/me/phh/qti/audio/Starter.java
new file mode 100644
index 0000000..2700ec6
--- /dev/null
+++ b/Qualcomm/QtiAudio/src/me/phh/qti/audio/Starter.java
@@ -0,0 +1,13 @@
+package me.phh.qti.audio;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+
+public class Starter extends BroadcastReceiver {
+
+	@Override
+	public void onReceive(Context ctxt, Intent intent) {
+		ctxt.startService(new Intent(ctxt, Service.class));
+	}
+}
diff --git a/Qualcomm/QtiAudio/src/vendor/qti/hardware/radio/am/V1_0/IQcRilAudio.java b/Qualcomm/QtiAudio/src/vendor/qti/hardware/radio/am/V1_0/IQcRilAudio.java
new file mode 100644
index 0000000..7e08568
--- /dev/null
+++ b/Qualcomm/QtiAudio/src/vendor/qti/hardware/radio/am/V1_0/IQcRilAudio.java
@@ -0,0 +1,490 @@
+package vendor.qti.hardware.radio.am.V1_0;
+
+public interface IQcRilAudio extends android.hidl.base.V1_0.IBase {
+    public static final String kInterfaceName = "vendor.qti.hardware.radio.am@1.0::IQcRilAudio";
+
+    /* package private */ static IQcRilAudio asInterface(android.os.IHwBinder binder) {
+        if (binder == null) {
+            return null;
+        }
+
+        android.os.IHwInterface iface =
+                binder.queryLocalInterface(kInterfaceName);
+
+        if ((iface != null) && (iface instanceof IQcRilAudio)) {
+            return (IQcRilAudio)iface;
+        }
+
+        IQcRilAudio proxy = new IQcRilAudio.Proxy(binder);
+
+        try {
+            for (String descriptor : proxy.interfaceChain()) {
+                if (descriptor.equals(kInterfaceName)) {
+                    return proxy;
+                }
+            }
+        } catch (android.os.RemoteException e) {
+        }
+
+        return null;
+    }
+
+    public static IQcRilAudio castFrom(android.os.IHwInterface iface) {
+        return (iface == null) ? null : IQcRilAudio.asInterface(iface.asBinder());
+    }
+
+    @Override
+    public android.os.IHwBinder asBinder();
+
+    public static IQcRilAudio getService(String serviceName) throws android.os.RemoteException {
+        return IQcRilAudio.asInterface(android.os.HwBinder.getService("vendor.qti.hardware.radio.am@1.0::IQcRilAudio",serviceName));
+    }
+
+    public static IQcRilAudio getService() throws android.os.RemoteException {
+        return IQcRilAudio.asInterface(android.os.HwBinder.getService("vendor.qti.hardware.radio.am@1.0::IQcRilAudio","default"));
+    }
+
+    void setCallback(IQcRilAudioCallback iQcRilAudioCallback)
+        throws android.os.RemoteException;
+    void setError(int error)
+        throws android.os.RemoteException;
+    java.util.ArrayList<String> interfaceChain()
+        throws android.os.RemoteException;
+    String interfaceDescriptor()
+        throws android.os.RemoteException;
+    java.util.ArrayList<byte[/* 32 */]> getHashChain()
+        throws android.os.RemoteException;
+    void setHALInstrumentation()
+        throws android.os.RemoteException;
+    boolean linkToDeath(android.os.IHwBinder.DeathRecipient recipient, long cookie)
+        throws android.os.RemoteException;
+    void ping()
+        throws android.os.RemoteException;
+    android.hidl.base.V1_0.DebugInfo getDebugInfo()
+        throws android.os.RemoteException;
+    void notifySyspropsChanged()
+        throws android.os.RemoteException;
+    boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient recipient)
+        throws android.os.RemoteException;
+
+    public static final class Proxy implements IQcRilAudio {
+        private android.os.IHwBinder mRemote;
+
+        public Proxy(android.os.IHwBinder remote) {
+            mRemote = java.util.Objects.requireNonNull(remote);
+        }
+
+        @Override
+        public android.os.IHwBinder asBinder() {
+            return mRemote;
+        }
+
+        @Override
+        public String toString() {
+            try {
+                return this.interfaceDescriptor() + "@Proxy";
+            } catch (android.os.RemoteException ex) {
+                /* ignored; handled below. */
+            }
+            return "[class or subclass of " + IQcRilAudio.kInterfaceName + "]@Proxy";
+        }
+
+        // Methods from ::vendor::qti::hardware::radio::am::V1_0::IQcRilAudio follow.
+        @Override
+        public void setCallback(IQcRilAudioCallback iQcRilAudioCallback)
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(IQcRilAudio.kInterfaceName);
+            _hidl_request.writeStrongBinder(iQcRilAudioCallback == null ? null : iQcRilAudioCallback.asBinder());
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(1 /* setCallback */, _hidl_request, _hidl_reply, android.os.IHwBinder.FLAG_ONEWAY);
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public void setError(int error)
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(IQcRilAudio.kInterfaceName);
+            _hidl_request.writeInt32(error);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(2 /* setError */, _hidl_request, _hidl_reply, android.os.IHwBinder.FLAG_ONEWAY);
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        // Methods from ::android::hidl::base::V1_0::IBase follow.
+        @Override
+        public java.util.ArrayList<String> interfaceChain()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256067662 /* interfaceChain */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                java.util.ArrayList<String> _hidl_out_descriptors = _hidl_reply.readStringVector();
+                return _hidl_out_descriptors;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public String interfaceDescriptor()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256136003 /* interfaceDescriptor */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                String _hidl_out_descriptor = _hidl_reply.readString();
+                return _hidl_out_descriptor;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public java.util.ArrayList<byte[/* 32 */]> getHashChain()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256398152 /* getHashChain */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                java.util.ArrayList<byte[/* 32 */]> _hidl_out_hashchain =  new java.util.ArrayList<byte[/* 32 */]>();
+                {
+                    android.os.HwBlob _hidl_blob = _hidl_reply.readBuffer(16 /* size */);
+                    {
+                        int _hidl_vec_size = _hidl_blob.getInt32(0 /* offset */ + 8 /* offsetof(hidl_vec<T>, mSize) */);
+                        android.os.HwBlob childBlob = _hidl_reply.readEmbeddedBuffer(
+                                _hidl_vec_size * 32,_hidl_blob.handle(),
+                                0 /* offset */ + 0 /* offsetof(hidl_vec<T>, mBuffer) */,true /* nullable */);
+
+                        _hidl_out_hashchain.clear();
+                        for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; ++_hidl_index_0) {
+                            final byte[/* 32 */] _hidl_vec_element = new byte[32];
+                            {
+                                long _hidl_array_offset_1 = _hidl_index_0 * 32;
+                                for (int _hidl_index_1_0 = 0; _hidl_index_1_0 < 32; ++_hidl_index_1_0) {
+                                    _hidl_vec_element[_hidl_index_1_0] = childBlob.getInt8(_hidl_array_offset_1);
+                                    _hidl_array_offset_1 += 1;
+                                }
+                            }
+                            _hidl_out_hashchain.add(_hidl_vec_element);
+                        }
+                    }
+                }
+                return _hidl_out_hashchain;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public void setHALInstrumentation()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256462420 /* setHALInstrumentation */, _hidl_request, _hidl_reply, android.os.IHwBinder.FLAG_ONEWAY);
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public boolean linkToDeath(android.os.IHwBinder.DeathRecipient recipient, long cookie)
+                throws android.os.RemoteException {
+            return mRemote.linkToDeath(recipient, cookie);
+        }
+        @Override
+        public void ping()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256921159 /* ping */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public android.hidl.base.V1_0.DebugInfo getDebugInfo()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(257049926 /* getDebugInfo */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                android.hidl.base.V1_0.DebugInfo _hidl_out_info = new android.hidl.base.V1_0.DebugInfo();
+                _hidl_out_info.readFromParcel(_hidl_reply);
+                return _hidl_out_info;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public void notifySyspropsChanged()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(257120595 /* notifySyspropsChanged */, _hidl_request, _hidl_reply, android.os.IHwBinder.FLAG_ONEWAY);
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient recipient)
+                throws android.os.RemoteException {
+            return mRemote.unlinkToDeath(recipient);
+        }
+    }
+
+    public static abstract class Stub extends android.os.HwBinder implements IQcRilAudio {
+        @Override
+        public android.os.IHwBinder asBinder() {
+            return this;
+        }
+
+        @Override
+        public final java.util.ArrayList<String> interfaceChain() {
+            return new java.util.ArrayList<String>(java.util.Arrays.asList(
+                    IQcRilAudio.kInterfaceName,
+                    android.hidl.base.V1_0.IBase.kInterfaceName));
+        }
+
+        @Override
+        public final String interfaceDescriptor() {
+            return IQcRilAudio.kInterfaceName;
+
+        }
+
+        @Override
+        public final java.util.ArrayList<byte[/* 32 */]> getHashChain() {
+            return new java.util.ArrayList<byte[/* 32 */]>(java.util.Arrays.asList(
+                    new byte[/* 32 */]{35,-44,101,61,83,-91,-11,20,118,-65,-39,105,-3,86,89,122,53,28,5,43,84,86,-31,121,46,5,33,-49,104,103,89,13} /* 23d4653d53a5f51476bfd969fd56597a351c052b5456e1792e0521cf6867590d */,
+                    new byte[/* 32 */]{-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} /* bddab6184d7a346da6a07dc0828cf19a696f4caa3611c51f2e14565a14b40fd9 */));
+
+        }
+
+        @Override
+        public final void setHALInstrumentation() {
+
+        }
+
+        @Override
+        public final boolean linkToDeath(android.os.IHwBinder.DeathRecipient recipient, long cookie) {
+            return true;
+        }
+
+        @Override
+        public final void ping() {
+            return;
+
+        }
+
+        @Override
+        public final android.hidl.base.V1_0.DebugInfo getDebugInfo() {
+            android.hidl.base.V1_0.DebugInfo info = new android.hidl.base.V1_0.DebugInfo();
+            info.pid = -1;
+            info.ptr = 0;
+            info.arch = android.hidl.base.V1_0.DebugInfo.Architecture.UNKNOWN;return info;
+        }
+
+        @Override
+        public final void notifySyspropsChanged() {
+            android.os.SystemProperties.reportSyspropChanged();
+        }
+
+        @Override
+        public final boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient recipient) {
+            return true;
+
+        }
+
+        @Override
+        public android.os.IHwInterface queryLocalInterface(String descriptor) {
+            if (kInterfaceName.equals(descriptor)) {
+                return this;
+            }
+            return null;
+        }
+
+        public void registerAsService(String serviceName) throws android.os.RemoteException {
+            registerService(serviceName);
+        }
+
+        @Override
+        public String toString() {
+            return this.interfaceDescriptor() + "@Stub";
+        }
+
+        @Override
+        public void onTransact(int _hidl_code, android.os.HwParcel _hidl_request, final android.os.HwParcel _hidl_reply, int _hidl_flags)
+                throws android.os.RemoteException {
+            switch (_hidl_code) {
+                case 1 /* setCallback */:
+                {
+                    _hidl_request.enforceInterface(IQcRilAudio.kInterfaceName);
+
+                    IQcRilAudioCallback iQcRilAudioCallback = IQcRilAudioCallback.asInterface(_hidl_request.readStrongBinder());
+                    setCallback(iQcRilAudioCallback);
+                    break;
+                }
+
+                case 2 /* setError */:
+                {
+                    _hidl_request.enforceInterface(IQcRilAudio.kInterfaceName);
+
+                    int error = _hidl_request.readInt32();
+                    setError(error);
+                    break;
+                }
+
+                case 256067662 /* interfaceChain */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    java.util.ArrayList<String> _hidl_out_descriptors = interfaceChain();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.writeStringVector(_hidl_out_descriptors);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256131655 /* debug */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256136003 /* interfaceDescriptor */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    String _hidl_out_descriptor = interfaceDescriptor();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.writeString(_hidl_out_descriptor);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256398152 /* getHashChain */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    java.util.ArrayList<byte[/* 32 */]> _hidl_out_hashchain = getHashChain();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    {
+                        android.os.HwBlob _hidl_blob = new android.os.HwBlob(16 /* size */);
+                        {
+                            int _hidl_vec_size = _hidl_out_hashchain.size();
+                            _hidl_blob.putInt32(0 /* offset */ + 8 /* offsetof(hidl_vec<T>, mSize) */, _hidl_vec_size);
+                            _hidl_blob.putBool(0 /* offset */ + 12 /* offsetof(hidl_vec<T>, mOwnsBuffer) */, false);
+                            android.os.HwBlob childBlob = new android.os.HwBlob((int)(_hidl_vec_size * 32));
+                            for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; ++_hidl_index_0) {
+                                {
+                                    long _hidl_array_offset_1 = _hidl_index_0 * 32;
+                                    for (int _hidl_index_1_0 = 0; _hidl_index_1_0 < 32; ++_hidl_index_1_0) {
+                                        childBlob.putInt8(_hidl_array_offset_1, _hidl_out_hashchain.get(_hidl_index_0)[_hidl_index_1_0]);
+                                        _hidl_array_offset_1 += 1;
+                                    }
+                                }
+                            }
+                            _hidl_blob.putBlob(0 /* offset */ + 0 /* offsetof(hidl_vec<T>, mBuffer) */, childBlob);
+                        }
+                        _hidl_reply.writeBuffer(_hidl_blob);
+                    }
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256462420 /* setHALInstrumentation */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    setHALInstrumentation();
+                    break;
+                }
+
+                case 256660548 /* linkToDeath */:
+                {
+                break;
+                }
+
+                case 256921159 /* ping */:
+                {
+                break;
+                }
+
+                case 257049926 /* getDebugInfo */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    android.hidl.base.V1_0.DebugInfo _hidl_out_info = getDebugInfo();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_out_info.writeToParcel(_hidl_reply);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 257120595 /* notifySyspropsChanged */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    notifySyspropsChanged();
+                    break;
+                }
+
+                case 257250372 /* unlinkToDeath */:
+                {
+                break;
+                }
+
+            }
+        }
+    }
+}
diff --git a/Qualcomm/QtiAudio/src/vendor/qti/hardware/radio/am/V1_0/IQcRilAudioCallback.java b/Qualcomm/QtiAudio/src/vendor/qti/hardware/radio/am/V1_0/IQcRilAudioCallback.java
new file mode 100644
index 0000000..6be55a3
--- /dev/null
+++ b/Qualcomm/QtiAudio/src/vendor/qti/hardware/radio/am/V1_0/IQcRilAudioCallback.java
@@ -0,0 +1,504 @@
+package vendor.qti.hardware.radio.am.V1_0;
+
+public interface IQcRilAudioCallback extends android.hidl.base.V1_0.IBase {
+    public static final String kInterfaceName = "vendor.qti.hardware.radio.am@1.0::IQcRilAudioCallback";
+
+    /* package private */ static IQcRilAudioCallback asInterface(android.os.IHwBinder binder) {
+        if (binder == null) {
+            return null;
+        }
+
+        android.os.IHwInterface iface =
+                binder.queryLocalInterface(kInterfaceName);
+
+        if ((iface != null) && (iface instanceof IQcRilAudioCallback)) {
+            return (IQcRilAudioCallback)iface;
+        }
+
+        IQcRilAudioCallback proxy = new IQcRilAudioCallback.Proxy(binder);
+
+        try {
+            for (String descriptor : proxy.interfaceChain()) {
+                if (descriptor.equals(kInterfaceName)) {
+                    return proxy;
+                }
+            }
+        } catch (android.os.RemoteException e) {
+        }
+
+        return null;
+    }
+
+    public static IQcRilAudioCallback castFrom(android.os.IHwInterface iface) {
+        return (iface == null) ? null : IQcRilAudioCallback.asInterface(iface.asBinder());
+    }
+
+    @Override
+    public android.os.IHwBinder asBinder();
+
+    public static IQcRilAudioCallback getService(String serviceName) throws android.os.RemoteException {
+        return IQcRilAudioCallback.asInterface(android.os.HwBinder.getService("vendor.qti.hardware.radio.am@1.0::IQcRilAudioCallback",serviceName));
+    }
+
+    public static IQcRilAudioCallback getService() throws android.os.RemoteException {
+        return IQcRilAudioCallback.asInterface(android.os.HwBinder.getService("vendor.qti.hardware.radio.am@1.0::IQcRilAudioCallback","default"));
+    }
+
+    String getParameters(String str)
+        throws android.os.RemoteException;
+    int setParameters(String str)
+        throws android.os.RemoteException;
+    java.util.ArrayList<String> interfaceChain()
+        throws android.os.RemoteException;
+    String interfaceDescriptor()
+        throws android.os.RemoteException;
+    java.util.ArrayList<byte[/* 32 */]> getHashChain()
+        throws android.os.RemoteException;
+    void setHALInstrumentation()
+        throws android.os.RemoteException;
+    boolean linkToDeath(android.os.IHwBinder.DeathRecipient recipient, long cookie)
+        throws android.os.RemoteException;
+    void ping()
+        throws android.os.RemoteException;
+    android.hidl.base.V1_0.DebugInfo getDebugInfo()
+        throws android.os.RemoteException;
+    void notifySyspropsChanged()
+        throws android.os.RemoteException;
+    boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient recipient)
+        throws android.os.RemoteException;
+
+    public static final class Proxy implements IQcRilAudioCallback {
+        private android.os.IHwBinder mRemote;
+
+        public Proxy(android.os.IHwBinder remote) {
+            mRemote = java.util.Objects.requireNonNull(remote);
+        }
+
+        @Override
+        public android.os.IHwBinder asBinder() {
+            return mRemote;
+        }
+
+        @Override
+        public String toString() {
+            try {
+                return this.interfaceDescriptor() + "@Proxy";
+            } catch (android.os.RemoteException ex) {
+                /* ignored; handled below. */
+            }
+            return "[class or subclass of " + IQcRilAudioCallback.kInterfaceName + "]@Proxy";
+        }
+
+        // Methods from ::vendor::qti::hardware::radio::am::V1_0::IQcRilAudioCallback follow.
+        @Override
+        public String getParameters(String str)
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(IQcRilAudioCallback.kInterfaceName);
+            _hidl_request.writeString(str);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(1 /* getParameters */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                String _hidl_out_result = _hidl_reply.readString();
+                return _hidl_out_result;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public int setParameters(String str)
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(IQcRilAudioCallback.kInterfaceName);
+            _hidl_request.writeString(str);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(2 /* setParameters */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                int _hidl_out_success = _hidl_reply.readInt32();
+                return _hidl_out_success;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        // Methods from ::android::hidl::base::V1_0::IBase follow.
+        @Override
+        public java.util.ArrayList<String> interfaceChain()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256067662 /* interfaceChain */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                java.util.ArrayList<String> _hidl_out_descriptors = _hidl_reply.readStringVector();
+                return _hidl_out_descriptors;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public String interfaceDescriptor()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256136003 /* interfaceDescriptor */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                String _hidl_out_descriptor = _hidl_reply.readString();
+                return _hidl_out_descriptor;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public java.util.ArrayList<byte[/* 32 */]> getHashChain()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256398152 /* getHashChain */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                java.util.ArrayList<byte[/* 32 */]> _hidl_out_hashchain =  new java.util.ArrayList<byte[/* 32 */]>();
+                {
+                    android.os.HwBlob _hidl_blob = _hidl_reply.readBuffer(16 /* size */);
+                    {
+                        int _hidl_vec_size = _hidl_blob.getInt32(0 /* offset */ + 8 /* offsetof(hidl_vec<T>, mSize) */);
+                        android.os.HwBlob childBlob = _hidl_reply.readEmbeddedBuffer(
+                                _hidl_vec_size * 32,_hidl_blob.handle(),
+                                0 /* offset */ + 0 /* offsetof(hidl_vec<T>, mBuffer) */,true /* nullable */);
+
+                        _hidl_out_hashchain.clear();
+                        for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; ++_hidl_index_0) {
+                            final byte[/* 32 */] _hidl_vec_element = new byte[32];
+                            {
+                                long _hidl_array_offset_1 = _hidl_index_0 * 32;
+                                for (int _hidl_index_1_0 = 0; _hidl_index_1_0 < 32; ++_hidl_index_1_0) {
+                                    _hidl_vec_element[_hidl_index_1_0] = childBlob.getInt8(_hidl_array_offset_1);
+                                    _hidl_array_offset_1 += 1;
+                                }
+                            }
+                            _hidl_out_hashchain.add(_hidl_vec_element);
+                        }
+                    }
+                }
+                return _hidl_out_hashchain;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public void setHALInstrumentation()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256462420 /* setHALInstrumentation */, _hidl_request, _hidl_reply, android.os.IHwBinder.FLAG_ONEWAY);
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public boolean linkToDeath(android.os.IHwBinder.DeathRecipient recipient, long cookie)
+                throws android.os.RemoteException {
+            return mRemote.linkToDeath(recipient, cookie);
+        }
+        @Override
+        public void ping()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256921159 /* ping */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public android.hidl.base.V1_0.DebugInfo getDebugInfo()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(257049926 /* getDebugInfo */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                android.hidl.base.V1_0.DebugInfo _hidl_out_info = new android.hidl.base.V1_0.DebugInfo();
+                _hidl_out_info.readFromParcel(_hidl_reply);
+                return _hidl_out_info;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public void notifySyspropsChanged()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(257120595 /* notifySyspropsChanged */, _hidl_request, _hidl_reply, android.os.IHwBinder.FLAG_ONEWAY);
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient recipient)
+                throws android.os.RemoteException {
+            return mRemote.unlinkToDeath(recipient);
+        }
+    }
+
+    public static abstract class Stub extends android.os.HwBinder implements IQcRilAudioCallback {
+        @Override
+        public android.os.IHwBinder asBinder() {
+            return this;
+        }
+
+        @Override
+        public final java.util.ArrayList<String> interfaceChain() {
+            return new java.util.ArrayList<String>(java.util.Arrays.asList(
+                    IQcRilAudioCallback.kInterfaceName,
+                    android.hidl.base.V1_0.IBase.kInterfaceName));
+        }
+
+        @Override
+        public final String interfaceDescriptor() {
+            return IQcRilAudioCallback.kInterfaceName;
+
+        }
+
+        @Override
+        public final java.util.ArrayList<byte[/* 32 */]> getHashChain() {
+            return new java.util.ArrayList<byte[/* 32 */]>(java.util.Arrays.asList(
+                    new byte[/* 32 */]{-52,108,-122,12,-23,-127,-15,-89,-101,-41,-8,-38,67,-55,-25,-127,86,-27,-94,-49,-69,-90,93,89,61,-12,102,18,-25,61,16,47} /* cc6c860ce981f1a79bd7f8da43c9e78156e5a2cfbba65d593df46612e73d102f */,
+                    new byte[/* 32 */]{-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} /* bddab6184d7a346da6a07dc0828cf19a696f4caa3611c51f2e14565a14b40fd9 */));
+
+        }
+
+        @Override
+        public final void setHALInstrumentation() {
+
+        }
+
+        @Override
+        public final boolean linkToDeath(android.os.IHwBinder.DeathRecipient recipient, long cookie) {
+            return true;
+        }
+
+        @Override
+        public final void ping() {
+            return;
+
+        }
+
+        @Override
+        public final android.hidl.base.V1_0.DebugInfo getDebugInfo() {
+            android.hidl.base.V1_0.DebugInfo info = new android.hidl.base.V1_0.DebugInfo();
+            info.pid = -1;
+            info.ptr = 0;
+            info.arch = android.hidl.base.V1_0.DebugInfo.Architecture.UNKNOWN;return info;
+        }
+
+        @Override
+        public final void notifySyspropsChanged() {
+            android.os.SystemProperties.reportSyspropChanged();
+        }
+
+        @Override
+        public final boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient recipient) {
+            return true;
+
+        }
+
+        @Override
+        public android.os.IHwInterface queryLocalInterface(String descriptor) {
+            if (kInterfaceName.equals(descriptor)) {
+                return this;
+            }
+            return null;
+        }
+
+        public void registerAsService(String serviceName) throws android.os.RemoteException {
+            registerService(serviceName);
+        }
+
+        @Override
+        public String toString() {
+            return this.interfaceDescriptor() + "@Stub";
+        }
+
+        @Override
+        public void onTransact(int _hidl_code, android.os.HwParcel _hidl_request, final android.os.HwParcel _hidl_reply, int _hidl_flags)
+                throws android.os.RemoteException {
+            switch (_hidl_code) {
+                case 1 /* getParameters */:
+                {
+                    _hidl_request.enforceInterface(IQcRilAudioCallback.kInterfaceName);
+
+                    String str = _hidl_request.readString();
+                    String _hidl_out_result = getParameters(str);
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.writeString(_hidl_out_result);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 2 /* setParameters */:
+                {
+                    _hidl_request.enforceInterface(IQcRilAudioCallback.kInterfaceName);
+
+                    String str = _hidl_request.readString();
+                    int _hidl_out_success = setParameters(str);
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.writeInt32(_hidl_out_success);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256067662 /* interfaceChain */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    java.util.ArrayList<String> _hidl_out_descriptors = interfaceChain();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.writeStringVector(_hidl_out_descriptors);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256131655 /* debug */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256136003 /* interfaceDescriptor */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    String _hidl_out_descriptor = interfaceDescriptor();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.writeString(_hidl_out_descriptor);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256398152 /* getHashChain */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    java.util.ArrayList<byte[/* 32 */]> _hidl_out_hashchain = getHashChain();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    {
+                        android.os.HwBlob _hidl_blob = new android.os.HwBlob(16 /* size */);
+                        {
+                            int _hidl_vec_size = _hidl_out_hashchain.size();
+                            _hidl_blob.putInt32(0 /* offset */ + 8 /* offsetof(hidl_vec<T>, mSize) */, _hidl_vec_size);
+                            _hidl_blob.putBool(0 /* offset */ + 12 /* offsetof(hidl_vec<T>, mOwnsBuffer) */, false);
+                            android.os.HwBlob childBlob = new android.os.HwBlob((int)(_hidl_vec_size * 32));
+                            for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; ++_hidl_index_0) {
+                                {
+                                    long _hidl_array_offset_1 = _hidl_index_0 * 32;
+                                    for (int _hidl_index_1_0 = 0; _hidl_index_1_0 < 32; ++_hidl_index_1_0) {
+                                        childBlob.putInt8(_hidl_array_offset_1, _hidl_out_hashchain.get(_hidl_index_0)[_hidl_index_1_0]);
+                                        _hidl_array_offset_1 += 1;
+                                    }
+                                }
+                            }
+                            _hidl_blob.putBlob(0 /* offset */ + 0 /* offsetof(hidl_vec<T>, mBuffer) */, childBlob);
+                        }
+                        _hidl_reply.writeBuffer(_hidl_blob);
+                    }
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256462420 /* setHALInstrumentation */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    setHALInstrumentation();
+                    break;
+                }
+
+                case 256660548 /* linkToDeath */:
+                {
+                break;
+                }
+
+                case 256921159 /* ping */:
+                {
+                break;
+                }
+
+                case 257049926 /* getDebugInfo */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    android.hidl.base.V1_0.DebugInfo _hidl_out_info = getDebugInfo();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_out_info.writeToParcel(_hidl_reply);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 257120595 /* notifySyspropsChanged */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    notifySyspropsChanged();
+                    break;
+                }
+
+                case 257250372 /* unlinkToDeath */:
+                {
+                break;
+                }
+
+            }
+        }
+    }
+}
diff --git a/Qualcomm/QtiAudio/src/vendor/qti/qcril/am/V1_0/IQcRilAudio.java b/Qualcomm/QtiAudio/src/vendor/qti/qcril/am/V1_0/IQcRilAudio.java
new file mode 100644
index 0000000..7bd3bd1
--- /dev/null
+++ b/Qualcomm/QtiAudio/src/vendor/qti/qcril/am/V1_0/IQcRilAudio.java
@@ -0,0 +1,490 @@
+package vendor.qti.qcril.am.V1_0;
+
+public interface IQcRilAudio extends android.hidl.base.V1_0.IBase {
+    public static final String kInterfaceName = "vendor.qti.qcril.am@1.0::IQcRilAudio";
+
+    /* package private */ static IQcRilAudio asInterface(android.os.IHwBinder binder) {
+        if (binder == null) {
+            return null;
+        }
+
+        android.os.IHwInterface iface =
+                binder.queryLocalInterface(kInterfaceName);
+
+        if ((iface != null) && (iface instanceof IQcRilAudio)) {
+            return (IQcRilAudio)iface;
+        }
+
+        IQcRilAudio proxy = new IQcRilAudio.Proxy(binder);
+
+        try {
+            for (String descriptor : proxy.interfaceChain()) {
+                if (descriptor.equals(kInterfaceName)) {
+                    return proxy;
+                }
+            }
+        } catch (android.os.RemoteException e) {
+        }
+
+        return null;
+    }
+
+    public static IQcRilAudio castFrom(android.os.IHwInterface iface) {
+        return (iface == null) ? null : IQcRilAudio.asInterface(iface.asBinder());
+    }
+
+    @Override
+    public android.os.IHwBinder asBinder();
+
+    public static IQcRilAudio getService(String serviceName) throws android.os.RemoteException {
+        return IQcRilAudio.asInterface(android.os.HwBinder.getService("vendor.qti.qcril.am@1.0::IQcRilAudio",serviceName));
+    }
+
+    public static IQcRilAudio getService() throws android.os.RemoteException {
+        return IQcRilAudio.asInterface(android.os.HwBinder.getService("vendor.qti.qcril.am@1.0::IQcRilAudio","default"));
+    }
+
+    void setCallback(IQcRilAudioCallback iQcRilAudioCallback)
+        throws android.os.RemoteException;
+    void setError(int error)
+        throws android.os.RemoteException;
+    java.util.ArrayList<String> interfaceChain()
+        throws android.os.RemoteException;
+    String interfaceDescriptor()
+        throws android.os.RemoteException;
+    java.util.ArrayList<byte[/* 32 */]> getHashChain()
+        throws android.os.RemoteException;
+    void setHALInstrumentation()
+        throws android.os.RemoteException;
+    boolean linkToDeath(android.os.IHwBinder.DeathRecipient recipient, long cookie)
+        throws android.os.RemoteException;
+    void ping()
+        throws android.os.RemoteException;
+    android.hidl.base.V1_0.DebugInfo getDebugInfo()
+        throws android.os.RemoteException;
+    void notifySyspropsChanged()
+        throws android.os.RemoteException;
+    boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient recipient)
+        throws android.os.RemoteException;
+
+    public static final class Proxy implements IQcRilAudio {
+        private android.os.IHwBinder mRemote;
+
+        public Proxy(android.os.IHwBinder remote) {
+            mRemote = java.util.Objects.requireNonNull(remote);
+        }
+
+        @Override
+        public android.os.IHwBinder asBinder() {
+            return mRemote;
+        }
+
+        @Override
+        public String toString() {
+            try {
+                return this.interfaceDescriptor() + "@Proxy";
+            } catch (android.os.RemoteException ex) {
+                /* ignored; handled below. */
+            }
+            return "[class or subclass of " + IQcRilAudio.kInterfaceName + "]@Proxy";
+        }
+
+        // Methods from ::vendor::qti::qcril::am::V1_0::IQcRilAudio follow.
+        @Override
+        public void setCallback(IQcRilAudioCallback iQcRilAudioCallback)
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(IQcRilAudio.kInterfaceName);
+            _hidl_request.writeStrongBinder(iQcRilAudioCallback == null ? null : iQcRilAudioCallback.asBinder());
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(1 /* setCallback */, _hidl_request, _hidl_reply, android.os.IHwBinder.FLAG_ONEWAY);
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public void setError(int error)
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(IQcRilAudio.kInterfaceName);
+            _hidl_request.writeInt32(error);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(2 /* setError */, _hidl_request, _hidl_reply, android.os.IHwBinder.FLAG_ONEWAY);
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        // Methods from ::android::hidl::base::V1_0::IBase follow.
+        @Override
+        public java.util.ArrayList<String> interfaceChain()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256067662 /* interfaceChain */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                java.util.ArrayList<String> _hidl_out_descriptors = _hidl_reply.readStringVector();
+                return _hidl_out_descriptors;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public String interfaceDescriptor()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256136003 /* interfaceDescriptor */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                String _hidl_out_descriptor = _hidl_reply.readString();
+                return _hidl_out_descriptor;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public java.util.ArrayList<byte[/* 32 */]> getHashChain()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256398152 /* getHashChain */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                java.util.ArrayList<byte[/* 32 */]> _hidl_out_hashchain =  new java.util.ArrayList<byte[/* 32 */]>();
+                {
+                    android.os.HwBlob _hidl_blob = _hidl_reply.readBuffer(16 /* size */);
+                    {
+                        int _hidl_vec_size = _hidl_blob.getInt32(0 /* offset */ + 8 /* offsetof(hidl_vec<T>, mSize) */);
+                        android.os.HwBlob childBlob = _hidl_reply.readEmbeddedBuffer(
+                                _hidl_vec_size * 32,_hidl_blob.handle(),
+                                0 /* offset */ + 0 /* offsetof(hidl_vec<T>, mBuffer) */,true /* nullable */);
+
+                        _hidl_out_hashchain.clear();
+                        for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; ++_hidl_index_0) {
+                            final byte[/* 32 */] _hidl_vec_element = new byte[32];
+                            {
+                                long _hidl_array_offset_1 = _hidl_index_0 * 32;
+                                for (int _hidl_index_1_0 = 0; _hidl_index_1_0 < 32; ++_hidl_index_1_0) {
+                                    _hidl_vec_element[_hidl_index_1_0] = childBlob.getInt8(_hidl_array_offset_1);
+                                    _hidl_array_offset_1 += 1;
+                                }
+                            }
+                            _hidl_out_hashchain.add(_hidl_vec_element);
+                        }
+                    }
+                }
+                return _hidl_out_hashchain;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public void setHALInstrumentation()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256462420 /* setHALInstrumentation */, _hidl_request, _hidl_reply, android.os.IHwBinder.FLAG_ONEWAY);
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public boolean linkToDeath(android.os.IHwBinder.DeathRecipient recipient, long cookie)
+                throws android.os.RemoteException {
+            return mRemote.linkToDeath(recipient, cookie);
+        }
+        @Override
+        public void ping()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256921159 /* ping */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public android.hidl.base.V1_0.DebugInfo getDebugInfo()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(257049926 /* getDebugInfo */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                android.hidl.base.V1_0.DebugInfo _hidl_out_info = new android.hidl.base.V1_0.DebugInfo();
+                _hidl_out_info.readFromParcel(_hidl_reply);
+                return _hidl_out_info;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public void notifySyspropsChanged()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(257120595 /* notifySyspropsChanged */, _hidl_request, _hidl_reply, android.os.IHwBinder.FLAG_ONEWAY);
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient recipient)
+                throws android.os.RemoteException {
+            return mRemote.unlinkToDeath(recipient);
+        }
+    }
+
+    public static abstract class Stub extends android.os.HwBinder implements IQcRilAudio {
+        @Override
+        public android.os.IHwBinder asBinder() {
+            return this;
+        }
+
+        @Override
+        public final java.util.ArrayList<String> interfaceChain() {
+            return new java.util.ArrayList<String>(java.util.Arrays.asList(
+                    IQcRilAudio.kInterfaceName,
+                    android.hidl.base.V1_0.IBase.kInterfaceName));
+        }
+
+        @Override
+        public final String interfaceDescriptor() {
+            return IQcRilAudio.kInterfaceName;
+
+        }
+
+        @Override
+        public final java.util.ArrayList<byte[/* 32 */]> getHashChain() {
+            return new java.util.ArrayList<byte[/* 32 */]>(java.util.Arrays.asList(
+                    new byte[/* 32 */]{82,124,73,19,-39,-73,105,27,-122,26,21,28,-31,97,-125,53,-78,-16,31,83,-75,-74,-11,-65,-9,-8,-85,76,124,-116,-77,-9} /* 527c4913d9b7691b861a151ce1618335b2f01f53b5b6f5bff7f8ab4c7c8cb3f7 */,
+                    new byte[/* 32 */]{-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} /* bddab6184d7a346da6a07dc0828cf19a696f4caa3611c51f2e14565a14b40fd9 */));
+
+        }
+
+        @Override
+        public final void setHALInstrumentation() {
+
+        }
+
+        @Override
+        public final boolean linkToDeath(android.os.IHwBinder.DeathRecipient recipient, long cookie) {
+            return true;
+        }
+
+        @Override
+        public final void ping() {
+            return;
+
+        }
+
+        @Override
+        public final android.hidl.base.V1_0.DebugInfo getDebugInfo() {
+            android.hidl.base.V1_0.DebugInfo info = new android.hidl.base.V1_0.DebugInfo();
+            info.pid = -1;
+            info.ptr = 0;
+            info.arch = android.hidl.base.V1_0.DebugInfo.Architecture.UNKNOWN;return info;
+        }
+
+        @Override
+        public final void notifySyspropsChanged() {
+            android.os.SystemProperties.reportSyspropChanged();
+        }
+
+        @Override
+        public final boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient recipient) {
+            return true;
+
+        }
+
+        @Override
+        public android.os.IHwInterface queryLocalInterface(String descriptor) {
+            if (kInterfaceName.equals(descriptor)) {
+                return this;
+            }
+            return null;
+        }
+
+        public void registerAsService(String serviceName) throws android.os.RemoteException {
+            registerService(serviceName);
+        }
+
+        @Override
+        public String toString() {
+            return this.interfaceDescriptor() + "@Stub";
+        }
+
+        @Override
+        public void onTransact(int _hidl_code, android.os.HwParcel _hidl_request, final android.os.HwParcel _hidl_reply, int _hidl_flags)
+                throws android.os.RemoteException {
+            switch (_hidl_code) {
+                case 1 /* setCallback */:
+                {
+                    _hidl_request.enforceInterface(IQcRilAudio.kInterfaceName);
+
+                    IQcRilAudioCallback iQcRilAudioCallback = IQcRilAudioCallback.asInterface(_hidl_request.readStrongBinder());
+                    setCallback(iQcRilAudioCallback);
+                    break;
+                }
+
+                case 2 /* setError */:
+                {
+                    _hidl_request.enforceInterface(IQcRilAudio.kInterfaceName);
+
+                    int error = _hidl_request.readInt32();
+                    setError(error);
+                    break;
+                }
+
+                case 256067662 /* interfaceChain */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    java.util.ArrayList<String> _hidl_out_descriptors = interfaceChain();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.writeStringVector(_hidl_out_descriptors);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256131655 /* debug */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256136003 /* interfaceDescriptor */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    String _hidl_out_descriptor = interfaceDescriptor();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.writeString(_hidl_out_descriptor);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256398152 /* getHashChain */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    java.util.ArrayList<byte[/* 32 */]> _hidl_out_hashchain = getHashChain();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    {
+                        android.os.HwBlob _hidl_blob = new android.os.HwBlob(16 /* size */);
+                        {
+                            int _hidl_vec_size = _hidl_out_hashchain.size();
+                            _hidl_blob.putInt32(0 /* offset */ + 8 /* offsetof(hidl_vec<T>, mSize) */, _hidl_vec_size);
+                            _hidl_blob.putBool(0 /* offset */ + 12 /* offsetof(hidl_vec<T>, mOwnsBuffer) */, false);
+                            android.os.HwBlob childBlob = new android.os.HwBlob((int)(_hidl_vec_size * 32));
+                            for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; ++_hidl_index_0) {
+                                {
+                                    long _hidl_array_offset_1 = _hidl_index_0 * 32;
+                                    for (int _hidl_index_1_0 = 0; _hidl_index_1_0 < 32; ++_hidl_index_1_0) {
+                                        childBlob.putInt8(_hidl_array_offset_1, _hidl_out_hashchain.get(_hidl_index_0)[_hidl_index_1_0]);
+                                        _hidl_array_offset_1 += 1;
+                                    }
+                                }
+                            }
+                            _hidl_blob.putBlob(0 /* offset */ + 0 /* offsetof(hidl_vec<T>, mBuffer) */, childBlob);
+                        }
+                        _hidl_reply.writeBuffer(_hidl_blob);
+                    }
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256462420 /* setHALInstrumentation */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    setHALInstrumentation();
+                    break;
+                }
+
+                case 256660548 /* linkToDeath */:
+                {
+                break;
+                }
+
+                case 256921159 /* ping */:
+                {
+                break;
+                }
+
+                case 257049926 /* getDebugInfo */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    android.hidl.base.V1_0.DebugInfo _hidl_out_info = getDebugInfo();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_out_info.writeToParcel(_hidl_reply);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 257120595 /* notifySyspropsChanged */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    notifySyspropsChanged();
+                    break;
+                }
+
+                case 257250372 /* unlinkToDeath */:
+                {
+                break;
+                }
+
+            }
+        }
+    }
+}
diff --git a/Qualcomm/QtiAudio/src/vendor/qti/qcril/am/V1_0/IQcRilAudioCallback.java b/Qualcomm/QtiAudio/src/vendor/qti/qcril/am/V1_0/IQcRilAudioCallback.java
new file mode 100644
index 0000000..5be09c3
--- /dev/null
+++ b/Qualcomm/QtiAudio/src/vendor/qti/qcril/am/V1_0/IQcRilAudioCallback.java
@@ -0,0 +1,504 @@
+package vendor.qti.qcril.am.V1_0;
+
+public interface IQcRilAudioCallback extends android.hidl.base.V1_0.IBase {
+    public static final String kInterfaceName = "vendor.qti.qcril.am@1.0::IQcRilAudioCallback";
+
+    /* package private */ static IQcRilAudioCallback asInterface(android.os.IHwBinder binder) {
+        if (binder == null) {
+            return null;
+        }
+
+        android.os.IHwInterface iface =
+                binder.queryLocalInterface(kInterfaceName);
+
+        if ((iface != null) && (iface instanceof IQcRilAudioCallback)) {
+            return (IQcRilAudioCallback)iface;
+        }
+
+        IQcRilAudioCallback proxy = new IQcRilAudioCallback.Proxy(binder);
+
+        try {
+            for (String descriptor : proxy.interfaceChain()) {
+                if (descriptor.equals(kInterfaceName)) {
+                    return proxy;
+                }
+            }
+        } catch (android.os.RemoteException e) {
+        }
+
+        return null;
+    }
+
+    public static IQcRilAudioCallback castFrom(android.os.IHwInterface iface) {
+        return (iface == null) ? null : IQcRilAudioCallback.asInterface(iface.asBinder());
+    }
+
+    @Override
+    public android.os.IHwBinder asBinder();
+
+    public static IQcRilAudioCallback getService(String serviceName) throws android.os.RemoteException {
+        return IQcRilAudioCallback.asInterface(android.os.HwBinder.getService("vendor.qti.qcril.am@1.0::IQcRilAudioCallback",serviceName));
+    }
+
+    public static IQcRilAudioCallback getService() throws android.os.RemoteException {
+        return IQcRilAudioCallback.asInterface(android.os.HwBinder.getService("vendor.qti.qcril.am@1.0::IQcRilAudioCallback","default"));
+    }
+
+    String getParameters(String str)
+        throws android.os.RemoteException;
+    int setParameters(String str)
+        throws android.os.RemoteException;
+    java.util.ArrayList<String> interfaceChain()
+        throws android.os.RemoteException;
+    String interfaceDescriptor()
+        throws android.os.RemoteException;
+    java.util.ArrayList<byte[/* 32 */]> getHashChain()
+        throws android.os.RemoteException;
+    void setHALInstrumentation()
+        throws android.os.RemoteException;
+    boolean linkToDeath(android.os.IHwBinder.DeathRecipient recipient, long cookie)
+        throws android.os.RemoteException;
+    void ping()
+        throws android.os.RemoteException;
+    android.hidl.base.V1_0.DebugInfo getDebugInfo()
+        throws android.os.RemoteException;
+    void notifySyspropsChanged()
+        throws android.os.RemoteException;
+    boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient recipient)
+        throws android.os.RemoteException;
+
+    public static final class Proxy implements IQcRilAudioCallback {
+        private android.os.IHwBinder mRemote;
+
+        public Proxy(android.os.IHwBinder remote) {
+            mRemote = java.util.Objects.requireNonNull(remote);
+        }
+
+        @Override
+        public android.os.IHwBinder asBinder() {
+            return mRemote;
+        }
+
+        @Override
+        public String toString() {
+            try {
+                return this.interfaceDescriptor() + "@Proxy";
+            } catch (android.os.RemoteException ex) {
+                /* ignored; handled below. */
+            }
+            return "[class or subclass of " + IQcRilAudioCallback.kInterfaceName + "]@Proxy";
+        }
+
+        // Methods from ::vendor::qti::qcril::am::V1_0::IQcRilAudioCallback follow.
+        @Override
+        public String getParameters(String str)
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(IQcRilAudioCallback.kInterfaceName);
+            _hidl_request.writeString(str);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(1 /* getParameters */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                String _hidl_out_result = _hidl_reply.readString();
+                return _hidl_out_result;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public int setParameters(String str)
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(IQcRilAudioCallback.kInterfaceName);
+            _hidl_request.writeString(str);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(2 /* setParameters */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                int _hidl_out_success = _hidl_reply.readInt32();
+                return _hidl_out_success;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        // Methods from ::android::hidl::base::V1_0::IBase follow.
+        @Override
+        public java.util.ArrayList<String> interfaceChain()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256067662 /* interfaceChain */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                java.util.ArrayList<String> _hidl_out_descriptors = _hidl_reply.readStringVector();
+                return _hidl_out_descriptors;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public String interfaceDescriptor()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256136003 /* interfaceDescriptor */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                String _hidl_out_descriptor = _hidl_reply.readString();
+                return _hidl_out_descriptor;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public java.util.ArrayList<byte[/* 32 */]> getHashChain()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256398152 /* getHashChain */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                java.util.ArrayList<byte[/* 32 */]> _hidl_out_hashchain =  new java.util.ArrayList<byte[/* 32 */]>();
+                {
+                    android.os.HwBlob _hidl_blob = _hidl_reply.readBuffer(16 /* size */);
+                    {
+                        int _hidl_vec_size = _hidl_blob.getInt32(0 /* offset */ + 8 /* offsetof(hidl_vec<T>, mSize) */);
+                        android.os.HwBlob childBlob = _hidl_reply.readEmbeddedBuffer(
+                                _hidl_vec_size * 32,_hidl_blob.handle(),
+                                0 /* offset */ + 0 /* offsetof(hidl_vec<T>, mBuffer) */,true /* nullable */);
+
+                        _hidl_out_hashchain.clear();
+                        for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; ++_hidl_index_0) {
+                            final byte[/* 32 */] _hidl_vec_element = new byte[32];
+                            {
+                                long _hidl_array_offset_1 = _hidl_index_0 * 32;
+                                for (int _hidl_index_1_0 = 0; _hidl_index_1_0 < 32; ++_hidl_index_1_0) {
+                                    _hidl_vec_element[_hidl_index_1_0] = childBlob.getInt8(_hidl_array_offset_1);
+                                    _hidl_array_offset_1 += 1;
+                                }
+                            }
+                            _hidl_out_hashchain.add(_hidl_vec_element);
+                        }
+                    }
+                }
+                return _hidl_out_hashchain;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public void setHALInstrumentation()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256462420 /* setHALInstrumentation */, _hidl_request, _hidl_reply, android.os.IHwBinder.FLAG_ONEWAY);
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public boolean linkToDeath(android.os.IHwBinder.DeathRecipient recipient, long cookie)
+                throws android.os.RemoteException {
+            return mRemote.linkToDeath(recipient, cookie);
+        }
+        @Override
+        public void ping()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(256921159 /* ping */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public android.hidl.base.V1_0.DebugInfo getDebugInfo()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(257049926 /* getDebugInfo */, _hidl_request, _hidl_reply, 0 /* flags */);
+                _hidl_reply.verifySuccess();
+                _hidl_request.releaseTemporaryStorage();
+
+                android.hidl.base.V1_0.DebugInfo _hidl_out_info = new android.hidl.base.V1_0.DebugInfo();
+                _hidl_out_info.readFromParcel(_hidl_reply);
+                return _hidl_out_info;
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public void notifySyspropsChanged()
+                throws android.os.RemoteException {
+            android.os.HwParcel _hidl_request = new android.os.HwParcel();
+            _hidl_request.writeInterfaceToken(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+            android.os.HwParcel _hidl_reply = new android.os.HwParcel();
+            try {
+                mRemote.transact(257120595 /* notifySyspropsChanged */, _hidl_request, _hidl_reply, android.os.IHwBinder.FLAG_ONEWAY);
+                _hidl_request.releaseTemporaryStorage();
+            } finally {
+                _hidl_reply.release();
+            }
+        }
+
+        @Override
+        public boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient recipient)
+                throws android.os.RemoteException {
+            return mRemote.unlinkToDeath(recipient);
+        }
+    }
+
+    public static abstract class Stub extends android.os.HwBinder implements IQcRilAudioCallback {
+        @Override
+        public android.os.IHwBinder asBinder() {
+            return this;
+        }
+
+        @Override
+        public final java.util.ArrayList<String> interfaceChain() {
+            return new java.util.ArrayList<String>(java.util.Arrays.asList(
+                    IQcRilAudioCallback.kInterfaceName,
+                    android.hidl.base.V1_0.IBase.kInterfaceName));
+        }
+
+        @Override
+        public final String interfaceDescriptor() {
+            return IQcRilAudioCallback.kInterfaceName;
+
+        }
+
+        @Override
+        public final java.util.ArrayList<byte[/* 32 */]> getHashChain() {
+            return new java.util.ArrayList<byte[/* 32 */]>(java.util.Arrays.asList(
+                    new byte[/* 32 */]{22,71,-88,81,-45,-109,-85,-22,53,113,-87,-70,-10,95,-8,67,61,-23,36,43,97,41,40,122,-128,-85,108,-33,4,101,-120,-97} /* 1647a851d393abea3571a9baf65ff8433de9242b6129287a80ab6cdf0465889f */,
+                    new byte[/* 32 */]{-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} /* bddab6184d7a346da6a07dc0828cf19a696f4caa3611c51f2e14565a14b40fd9 */));
+
+        }
+
+        @Override
+        public final void setHALInstrumentation() {
+
+        }
+
+        @Override
+        public final boolean linkToDeath(android.os.IHwBinder.DeathRecipient recipient, long cookie) {
+            return true;
+        }
+
+        @Override
+        public final void ping() {
+            return;
+
+        }
+
+        @Override
+        public final android.hidl.base.V1_0.DebugInfo getDebugInfo() {
+            android.hidl.base.V1_0.DebugInfo info = new android.hidl.base.V1_0.DebugInfo();
+            info.pid = -1;
+            info.ptr = 0;
+            info.arch = android.hidl.base.V1_0.DebugInfo.Architecture.UNKNOWN;return info;
+        }
+
+        @Override
+        public final void notifySyspropsChanged() {
+            android.os.SystemProperties.reportSyspropChanged();
+        }
+
+        @Override
+        public final boolean unlinkToDeath(android.os.IHwBinder.DeathRecipient recipient) {
+            return true;
+
+        }
+
+        @Override
+        public android.os.IHwInterface queryLocalInterface(String descriptor) {
+            if (kInterfaceName.equals(descriptor)) {
+                return this;
+            }
+            return null;
+        }
+
+        public void registerAsService(String serviceName) throws android.os.RemoteException {
+            registerService(serviceName);
+        }
+
+        @Override
+        public String toString() {
+            return this.interfaceDescriptor() + "@Stub";
+        }
+
+        @Override
+        public void onTransact(int _hidl_code, android.os.HwParcel _hidl_request, final android.os.HwParcel _hidl_reply, int _hidl_flags)
+                throws android.os.RemoteException {
+            switch (_hidl_code) {
+                case 1 /* getParameters */:
+                {
+                    _hidl_request.enforceInterface(IQcRilAudioCallback.kInterfaceName);
+
+                    String str = _hidl_request.readString();
+                    String _hidl_out_result = getParameters(str);
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.writeString(_hidl_out_result);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 2 /* setParameters */:
+                {
+                    _hidl_request.enforceInterface(IQcRilAudioCallback.kInterfaceName);
+
+                    String str = _hidl_request.readString();
+                    int _hidl_out_success = setParameters(str);
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.writeInt32(_hidl_out_success);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256067662 /* interfaceChain */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    java.util.ArrayList<String> _hidl_out_descriptors = interfaceChain();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.writeStringVector(_hidl_out_descriptors);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256131655 /* debug */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256136003 /* interfaceDescriptor */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    String _hidl_out_descriptor = interfaceDescriptor();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_reply.writeString(_hidl_out_descriptor);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256398152 /* getHashChain */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    java.util.ArrayList<byte[/* 32 */]> _hidl_out_hashchain = getHashChain();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    {
+                        android.os.HwBlob _hidl_blob = new android.os.HwBlob(16 /* size */);
+                        {
+                            int _hidl_vec_size = _hidl_out_hashchain.size();
+                            _hidl_blob.putInt32(0 /* offset */ + 8 /* offsetof(hidl_vec<T>, mSize) */, _hidl_vec_size);
+                            _hidl_blob.putBool(0 /* offset */ + 12 /* offsetof(hidl_vec<T>, mOwnsBuffer) */, false);
+                            android.os.HwBlob childBlob = new android.os.HwBlob((int)(_hidl_vec_size * 32));
+                            for (int _hidl_index_0 = 0; _hidl_index_0 < _hidl_vec_size; ++_hidl_index_0) {
+                                {
+                                    long _hidl_array_offset_1 = _hidl_index_0 * 32;
+                                    for (int _hidl_index_1_0 = 0; _hidl_index_1_0 < 32; ++_hidl_index_1_0) {
+                                        childBlob.putInt8(_hidl_array_offset_1, _hidl_out_hashchain.get(_hidl_index_0)[_hidl_index_1_0]);
+                                        _hidl_array_offset_1 += 1;
+                                    }
+                                }
+                            }
+                            _hidl_blob.putBlob(0 /* offset */ + 0 /* offsetof(hidl_vec<T>, mBuffer) */, childBlob);
+                        }
+                        _hidl_reply.writeBuffer(_hidl_blob);
+                    }
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 256462420 /* setHALInstrumentation */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    setHALInstrumentation();
+                    break;
+                }
+
+                case 256660548 /* linkToDeath */:
+                {
+                break;
+                }
+
+                case 256921159 /* ping */:
+                {
+                break;
+                }
+
+                case 257049926 /* getDebugInfo */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    android.hidl.base.V1_0.DebugInfo _hidl_out_info = getDebugInfo();
+                    _hidl_reply.writeStatus(android.os.HwParcel.STATUS_SUCCESS);
+                    _hidl_out_info.writeToParcel(_hidl_reply);
+                    _hidl_reply.send();
+                    break;
+                }
+
+                case 257120595 /* notifySyspropsChanged */:
+                {
+                    _hidl_request.enforceInterface(android.hidl.base.V1_0.IBase.kInterfaceName);
+
+                    notifySyspropsChanged();
+                    break;
+                }
+
+                case 257250372 /* unlinkToDeath */:
+                {
+                break;
+                }
+
+            }
+        }
+    }
+}