Driver Details

New

Android IP Remote

By: iNoahGuy
Updated: Nov. 15, 2025
Version: 3.4

Description:

This driver can control any Android device with ADB enabled.
(Media players, TV's, Tablets, Phones, Watches, etc...)
It is brand agnostic, as long as the device can enable ADB via developer mode this driver can control it.

Up to 25 devices can be controlled from a single instance of the driver.

The driver will run as a 2 hour trial unless a valid license key is entered.
License keys are available from the Coupe Automation Store

This is a two way driver with full feedback of almost anything available from ADB.
Eg: All installed apps can be queried from the device and a list displayed in RTI for direct app launching without needed to know their ID's. (Note: Some apps do not support launching but most do)
Lists can also be custom built with friendly naming too.

Please use the 'Send Launch App' command and set the 'Launcher Category' to 'Leanback (Android TV)' for all newer devices as it will manage the correct shell commands for you.
Also with Fire TV's Amazon changes the package names so please check them per device, Eg; For prime video they changed it from 'com.amazon.amazonvideo.livingroom' to 'com.amazon.firebat'

There is zero lag / delay when controlling any device that support 'MK Shell' commands (Use the 'MK Shell Status' to check availability)

 

Version History:

Version 3.3

   * Fix for Android 11+ Pairing bug

Version 3.2

   * Initial release on driver store.

   * Fix for Android 11+ Perpetual Authorisation bug.

   * Refactored and improved utility code to be much faster and more reliable

 


v4.0.beta

Link: RTI Forums - AIPR V4.0 Beta

⦁   Uses new AIPR shell
⦁   Lots of fixes, improvements and new features

Android IP Remote (ADB Host)

© 2019-2025 Nozza87 (Noah H)

This driver allows you to control any Android devices (up to 25) with ADB Debugging enabled.

The driver provides full input control of all commands as well as feedback from the device.

Since V2 this driver now provides 'MK Shell' commands which have zero lag or input delay.

DEVICE SETUP:

Initial Connection:

* Enable Developer options on your device.

(Google how to for your device as they can be different)

* Enable ADB Debugging or USB Debugging or similar command.

* Send "Force Reconnect" command from this driver.

* You will be prompted to allow a connection from '17:ba:1f:79:46:23:af:51:0e:4d:7d:8d:d7:bc:73:2e'

Note: If you see any other RSA Fingerprint ID it is NOT a connection from this driver.

* Select "Always allow from this computer" to have this connection remembered otherwise you will have to complete these steps everytime you connect to the device.

* You should now have control of the device from this driver.

Please Note:

This driver fully implements the ADB protocol and is based on the Android Open Source Project source code, due to this it may stop working at anytime however this is very unlikely to happen.

I will do my best to always maintain updates to this driver to support any protocol changes that may come in the future.

Notifications for Android TV

Play Store:

https://play.google.com/store/apps/details?id=de.cyberdream.androidtv.notifications.google

Fire TV:

https://www.amazon.com/dp/B00OESCXEK

DRIVER CONFIGURATION:

License key:

Enter a valid license key here otherwise driver will run for 2 hours as a trial.

Test license key:

Enter any personal license keys you may have for testing.

Note: Not required

Number of Devices to control:

Enter how many devices you want to control (Up to 10)

Auto start MK Shell:

Auto start MK Shell otherwise will start on first MK Shell command

Note: prevents waking some devices when processor starts

Get Screen State during Heartbeat:

Get Screen State during Heartbeat command otherwise just check connection is alive

Note: approx every 60 seconds

Use Activity instead of package:

Use Activity instead of package for launching apps from 2-way list

Note: Enabling this will force close the app before running it to the specific activity.

Get Package list on startup

Get packages for lauchching from a 2-way list on startup.

Note: Enabling this can crash some newer devices that dont have the required permissions for this feature (Android 11+)

External Control String:

External Control String Link from another driver

Device Name:

Enter a friendly name for device (only used in ID)

IP address:

Enter the IP address of the Android device you want to control.

Port:

Enter the port you have configured for ADB bridge. (Default is 5555)

Keep device awake:

Enable this to prevent the device from sleeping, It will be poked with a wake command every 15 minutes.

Note: Enabling will disable the screensaver on some devices. Try to use 'keep awake' option in developer settings first.

Zone Index:

Zone Index for External Control (0 for global)

Source Index:

Source Index for External Control

DRIVER FUNCTIONS:

Delete Persistent Device Selections:

This will delete all current device variables and persistent device selections.

Note: You will have to reselect a device after using this function

Select Device:

This will select a device for use with '- selected -' commands.

Force Reconnect:

This will force the device to disconnect then attempt to reconnect.

Update Package List:

This will force a device to retrieve its current package list.

Note: This will only retrieve 3rd party Packages, Any packages preloaded in the ROM will not appear (Usually Netflix) Some packages in the list will not support launching, Any app that supports Launching can still be opened using the 'Send Launch App' command if you have the package name.

You can use 'Send Raw' with 'shell:pm list packages -e' then check debug logs for a list of all enabled packages and their names (This will return a lot of system packages too which should not be launched so be careful)

Open Package from List:

This is for the package list object and will open the selected package

Add Package / Activity to List:

This is for the 'Open Package from List' function and will add packages / activities to the list.

Note: These are not persistent and need to be set on startup of the processor.

Refresh List:

This updates the package list object.

Add Package friendly Name:

This is for the 'Get Active App' function and will add friendly names to package names.

Note: These are not persistent and need to be set on startup of the processor.

Get Active App:

Get the current running package app friendly name and display it in the 'Package Activity' system variable.

Note: If an app does not have a friendly name it will show "Unknown".

Get Current App Package MK:

Get the current running package app name and display it in the 'Package Activity' system variable using MK shell.

Get Current App Package:

Get the current running package app name and display it in the 'Package Activity' system variable.

Get Current Package Activity:

Get the current running package activity and display it in the 'Package Activity' system variable.

Get Package Default Activity:

Get the default activity for a package and display it in the 'Package Activity' system variable.

Get input Devices for keyevents:

This will print to the debug log a list of input device events.

(Cannot be use on Android 11+, use MK Shell instead)

Force Reboot:

Reboots the device.

Get Screen State:

Update Screen State variable.

MK Shell Sleep Commands:

Puts MK Shell into a sleep state to prevent some devices from waking up.

Send MK Shell KeyCode (instant):

Used to send a keycode to the device with zero delay or lag,

Method type allows for press and hold on some devices.

Send KeyCode:

Used to send a keycode to the device,

Longpress flag simulates a longpress.

Send Launch App:

Used to open any app when its full package name is entered or selected from list.

Use 'Leanback Launcher' option on new devices (Android 11+)

Note: This will return to an already open app otherwise it will start it.

Force Close App:

This will force close the specified App.

Note: This is a force close so the app will restart, not resume if reopened.

Send Launch Activity:

Used to open any activity when its full package and activity name is entered.

Note: This will force close the app before running it to the specific activity.

Send Text:

This will send a text string to the device. ([aA-zZ, 0-9, space] only)

Send KeyEvent (Be careful!):

Used to send a keyevent direct to the device which is much quicker then 'Send Keycode' however you must know the exact parameters.

Warning:Incorrect use can cause unknown commands being sent to your device.

Send Shell Command (Be extra careful!):

Used to send a shell command to the device.

Warning: Incorrect use can cause unknown commands being sent to your device and can cause damage to your device requiring reflashing of firmware.

Send Raw (Be extra careful!):

Used to send any raw ADB command to the device.

Warning: Incorrect use can cause unknown commands being sent to your device and can cause damage to your device requiring reflashing of firmware.

DRIVER VARIABLES:

License Status:

Shows the current status of your license key.

ID of Selected Device

Show the ID / Index of the selected device.

Name of Selected Device:

Show the name of the selected device.

Connection Status of Selected Device

Shows the current status of your selected device connection.

Authorisation Status of Selected Device

Shows the current status of your selected device authorisation.

MK Shell Status of Selected Device

Shows the current status of your selected device MK Shell connection.

(Some devces do not support MK shell)

App / Package - Activity / Name

Shows the current app or package activity or name loaded from 'Get Current Package activity' or 'Get Default Activity' functions.

Installed Packages List

Used with a list object to display all currenly installed packages (Non System)

Name of Device (1 - 10):

Show the name of the a specific device.

Connection Status (1 - 10):

Shows the current status of a specific device connection.

Authorisation Status (1 - 10):

Shows the current status of a specific device authorisation.

MK Shell Status (1 - 10):

Shows the current status of a specific device MK Shell connection.

(Some devces do not support MK shell)

Screen State (1-10):

Shows the current status of the devices screen.

Note: This is only updated every minute or when the function is called.

VERSION HISTORY:

• v0.1 Initial Beta Release

• v0.2 Bug fixes and improved error checking

• v0.3 Initial Public Beta Release

• Heaps of Bug fixes and improvements

• Implemented RSA signing for renewable connections

• v0.4 Added Full Apex Support

• Added support for multiple devices (Up to 10)

• Added support for retrieving packages name to a 2-way list object

• More Bug fixes and improvements

• v0.5 Added function to get current or specific package activities and load them

• Added variable to view activity information

• Rebuilt app list code to display friendly names for known apps and to remove non launchable apps and to use launch activity instead of launch package when configuration setting is enabled

• Added auto reconnection when command is sent after dropped connection and unsuccessful reconnection.

• v1.0 Fixed reconnection queue override with heartbeat and keep alive

• Added connecting as an auth status

• Licensing now available to remove trial period

• v1.1 Added support for Master / Slave Licensing System

• Minor Bug fixes and improvements

• v1.2 Key signing is now done locally, No internet or connection to my server required.

• Minor Bug fixes and improvements

• v1.3 Updated manifest to require firmware v2+ for new RSA functions

• v1.4 Added proper support for Keyevent control

(only works on some devices)

(Zero lag in commands plus push and hold is possible)

• v1.5 Added support for external control string in ZS format

• Added Launcher Category to 'Send Launch App'

• v2.0b Added MK Shell for zero lag control

• Refactored code to improve speed

• Added helper functions

• Fixed bugs

• Improved Stability

• Improved recovery from dropped connection

• Added support for Android 11+

• Added Queuing for shell commands to prevent missed commands

• Lots of other stuff I can't remember :)

• v2.0 Public release of V2

• Re branded from ADB Host to Android IP Remote

• Added Apex Tags to most commands for 'Send MK Shell KeyCode (instant)'

• Fixed bugs

• v2.1 Added reboot command

• Fixed bug with MK shell failing to start on slower devices

• v2.2 Added fix for devices (mainly Amazon) not connecting to MK Shell

• v2.3 Added Press and Release commands to MK Shell

• v2.4 Added MK Shell Sleep commands and auto start

• Fixed "Send MK Shell KeyCode" legacy 'Press and Release' commands

(remapped to 'Press and Release Immediately')

• Tidied up variables, functions, general codebase

• Added Push Notification support (WIP)

• Added Screen State variable

• Fixed Open package from list

• Update package friendly names

• Improved list usage (You can manually create lists)

• Fixed bugs

• Improved a lot of things I can't remember specifically

• v2.5 Added System events (All Status changes)

• Increased number of devices to 25

• Bug fixes

• Startup Improvements

• v3.0 NEW License system

• Minor Bug fixes

• v3.1 Fix for Android 11+ Authorisation bug

• v3.2 Fix for Android 11+ Perpetual Authorisation bug

• Refactored and improved utility code to be much faster and more reliable

• v3.3 Fix for Android 11+ Pairing bug

2 Hour trial built in per reboot without a valid license key.