[Android General] LLStarks:
Putting Xposed on the car, or flashing anything, would be absolute madness without a way to unbrick.

The method in com\mitsubishielectric\ada\app\androidauto\transport\usb\UsbHostSetup.smali

.method public static processDevice(Landroid/hardware/usb/UsbDevice;Landroid/content/Context;)Lcom/google/android/projection/transport/DataConnection;
.registers 11
.param p0, "device" # Landroid/hardware/usb/UsbDevice;
.param p1, "context" # Landroid/content/Context;

.prologue
const/4 v1, 0x0

const/4 v5, 0x1

const/4 v6, 0x0

.line 47
invoke-virtual {p0}, Landroid/hardware/usb/UsbDevice;->getVendorId()I

move-result v7

const/16 v8, 0x18d1

if-ne v7, v8, :cond_47

invoke-virtual {p0}, Landroid/hardware/usb/UsbDevice;->getProductId()I

move-result v7

const/16 v8, 0x2d00

if-eq v7, v8, :cond_1b

invoke-virtual {p0}, Landroid/hardware/usb/UsbDevice;->getProductId()I

move-result v7

const/16 v8, 0x2d01

if-ne v7, v8, :cond_47

:cond_1b
move v2, v5

.line 52
.local v2, "isAndroidAccessory":Z
:goto_1c
new-instance v7, Ljava/lang/StringBuilder;

invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V

const-string v8, "isAndroidAccessory = "

invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v7

invoke-virtual {v7, v2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

move-result-object v7

invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

move-result-object v7

invoke-static {v7}, Lcom/mitsubishielectric/ada/util/ExpLog;->debug(Ljava/lang/String;)V

.line 55
if-nez v2, :cond_50

.line 59
invoke-virtual {p0, v6}, Landroid/hardware/usb/UsbDevice;->getInterface(I)Landroid/hardware/usb/UsbInterface;

move-result-object v3

.line 60
.local v3, "usbInterface":Landroid/hardware/usb/UsbInterface;
const-string v6, "usb"

invoke-virtual {p1, v6}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

move-result-object v4

check-cast v4, Landroid/hardware/usb/UsbManager;

.line 61
.local v4, "usbManager":Landroid/hardware/usb/UsbManager;
invoke-virtual {v4, p0}, Landroid/hardware/usb/UsbManager;->openDevice(Landroid/hardware/usb/UsbDevice;)Landroid/hardware/usb/UsbDeviceConnection;

move-result-object v0

.line 62
.local v0, "connection":Landroid/hardware/usb/UsbDeviceConnection;
if-nez v0, :cond_49

.line 75
.end local v0 # "connection":Landroid/hardware/usb/UsbDeviceConnection;
.end local v3 # "usbInterface":Landroid/hardware/usb/UsbInterface;
.end local v4 # "usbManager":Landroid/hardware/usb/UsbManager;
:goto_46
return-object v1

.end local v2 # "isAndroidAccessory":Z
:cond_47
move v2, v6

.line 47
goto :goto_1c

.line 65
.restart local v0 # "connection":Landroid/hardware/usb/UsbDeviceConnection;
.restart local v2 # "isAndroidAccessory":Z
.restart local v3 # "usbInterface":Landroid/hardware/usb/UsbInterface;
.restart local v4 # "usbManager":Landroid/hardware/usb/UsbManager;
:cond_49
invoke-virtual {v0, v3, v5}, Landroid/hardware/usb/UsbDeviceConnection;->claimInterface(Landroid/hardware/usb/UsbInterface;Z)Z

.line 66
invoke-static {v0}, Lcom/mitsubishielectric/ada/app/androidauto/transport/usb/UsbHostSetup;->switchAccessory(Landroid/hardware/usb/UsbDeviceConnection;)Z

goto :goto_46

.line 74
.end local v0 # "connection":Landroid/hardware/usb/UsbDeviceConnection;
.end local v3 # "usbInterface":Landroid/hardware/usb/UsbInterface;
.end local v4 # "usbManager":Landroid/hardware/usb/UsbManager;
:cond_50
new-instance v1, Lcom/google/android/projection/transport/usb/UsbHostConnection;

invoke-direct {v1, p1, p0}, Lcom/google/android/projection/transport/usb/UsbHostConnection;-><init>(Landroid/content/Context;Landroid/hardware/usb/UsbDevice;)V

.line 75
.local v1, "hostConnection":Lcom/google/android/projection/transport/usb/UsbHostConnection;
goto :goto_46
.end method