Due to the changes on the international version (native Android TV 8.1/9), probably many things won't work or will be unuseful... (shortcuts to change hdmi source and "boot on hdmi" have been confirmed working fine)... On the other hand, it'll probably work fine on other Xiaomi devices as Mi Boxes. Anyway, it's mostly useful for chinese GUI (MIUI TV) on Android Tv 6.0.1.
You don't need root to use this app, except for the features maked as [root] below.
If you're looking for the root tutorial, directly head to post #2.
Here are the current features :
- Shortcuts to change source to HDMI 1 to 3, AV, as well as opening an onscreen menu to choose the source. These will be useful if you change the launcher, as you will lose to Xiaomi widget with Tv preview and change source buttons. Shortcuts are also directly placed on the launcher as well, for direct access. These shortcuts are compatible with International devices
Tv Apps :
- ... : Androdi Tv dedicated apps will appear here, making this app a somewhat light launcher
Mobile Apps :
- ... : any app not dedicated to Android Tv, whose icon doesn't display on the launcher, will appear here
- Display settings : Add ability to create different display profiles (premium for more than 1) that can be applied automatically when changing input source and dynamic range. Most features that could be changed in previous versions (zoom, input lag...) of this app can be added to a display profile and thus automatically available upon boot with no action on your side. The profile editor can also display many calibration screens to help you setup your device as you need.
- Zoom : Changes the Zoom in/out factor for video display (external inputs as well as any video player) [ROOT] and also enables access to stock zoom feature (to zoom/unzoom full display, not only video, but can't go below 80%)
- Force 4k UI rendering [ROOT] : this may cause lags when rendering the UI
- App settings : choose and hdmi input of app to automatically launch on boot, show/hide input shortcuts on supported launchers, enable/disable accessibility service features individually
- Device settings : launches the projector/tv/box settings
- Additional settings : launches amlogic settings app (if available, tested on FengOs)
- Android settings : launches the Android stock settings
- Engineering menu : launches the engineering menu
- Remote Control [ROOT] : displays a QR code to my Web Remote Control, working on any device
- Freeze stock apps [ROOT] : freezes/hides/disables stock apps/bloatware (for unrooted devices, please check below, in Remarks section, point 3). On MIUI, make sure you install another keyboard (ie "LeanbackIme Keyboard", from the "Install 3rd party apps" menu) as it will disable the stock one. Possibility to specify a package name to disable manually.
- (Un)Freeze launchers [ROOT] : (un)freezes/hides stock Xiaomi TvHome, FengOs launcher or Google Leanback launcher. Make sure you have another compatible launcher installed before freezing it (for unrooted devices, please check below)
- Install 3rd party apps : lets you choose apps to install, that have been tested working fine on our device. Most will require Aptoide Tv installed. Good news, it's able to download and install it automatically ! If your device is rooted and is on Android 6.01, Google services/apps can be installed too (see more in the Google Apps section)
- Uninstall Google Apps [ROOT] : if you installed Google Apps / services with the feature described above, you can safely uninstall them (but why would you want that ?)
- Freeze Google Play [ROOT] : prevents google Play self-update. This is useful on some models, where new Google Play app refuses to install apps due to some incompatibility issue (such as Zodiac)
- Accessibility Service : Xiaomi code prevents Google Play app to install/update apps (you will get an error code). The fix to this behavior has major inconvenients : when activated, you lose some UI features (volume UI, recent apps screen, Shutdown dialog). Enabling the accessibility service associated to this app, will automatically enable the fix when entering the Google Play app, and disable it when exiting. So keep in mind that when you want to install/update apps, you'll need to stay in Google Play and can't let it do it's job in the background while watching TV. This accessibility fix also binds the stock remote control "Voice recognition" button to Google Assistant (if you installed Google Services). It also allows your device to automatically start an external input on boot (compatible with Mi international devices) and adds a shortcut to open these tools by double pressing the menu button. *** In one word : you want it enabled ***
- Check root access : checks your device's root status
- Custom Props Override [ROOT/MAGISK] : changes some custom props so as to get a more stock Android Tv behavior. This will enable Google services disabled by Xiaomi, allow your "Usb debugging" option to stick across reboots, allow bypassing safetynet... If you install Google Services you need to install them.
- ProjecTivy Tools : displays details about this app
- This device : displays many details about this device, and temperature sensors values is available.
Google Apps / Services instructions :
This has been tested successfully on a rainman's clean 1218 and 1289 firmware installation. If something goes wrong for you, try to make a clean flash. It also works on batman (4k projector), as well as other Xiaomi Tv devices. As of now, it only works on Android 6.
Except for "AndroidMediaShell" (Google Cast server), most (all?) features are working fine including :
- Tv settings
- Google Play (to let it install/update apps, please enable the Accessibility Service)
- ATV remote service : if you install Google ATV remote on your smartphone, everything (including speech recognition) will work
- Google Assistant : with the Accessibility Service enabled, a short press on the mic button on your stock remote will launch Google Assistant. Then, when it's listening, press and hold the mic button while speaking and release it when done. According you've used More Locale to change to your mother tongue, this will even work in your language.
- root your device (see post 2) (you don't need to flash any firmware)
- if not already done, install the tools v2.14 (or above) and launch them
- execute Applications / install 3rd party apps, then install :
- Aptoide Tv Store
- ATV launcher (you'll disable stock launcher later on. In case Google Apps don't install correctly, you'll have a fallback launcher)
- Youtube [optional]
- MoreLocale [optional] (in case your mother tongue is not english, it will let you choose more than what's listed in Android settings)
- Google Apps/services (don't forget it )
- execute Applications / Freeze Stock launcher (to disable TvHome)
- execute Applications / Freeze Stock apps (to disable most Xiaomi apps and services)
- execute System / Custom Props override (to pass safetynet checks, enable more stock behavior and fix black screen with non-stock launcher)
- execute System / Accessibility Service, enable the service in accessibility settings (to fix "Google Play" ability to install/update apps and to link the stock remote control "Voice recognition" button to Google Assistant as well as other features)
- [Optional] Install magisk module "Nexus Media" to change the stock bootanimation (go to Shortcuts / Magisk Manager to execute it, and then in the left menu, "Downloads" section, just install "Nexus Media")
- Reboot and complete the Welcome app to setup your Google account (first and second boot will be longer than usual)
- Note that an Android accessibility setting might get enabled after the first reboot when Google Apps have been installed. It'll cause green borders around buttons. Just go to settings / accessibility and disable "talkback".
- Launch Google Play to update Google apps and let the update finish before exiting Google Play (if the app's accessibility service is running as it should, it will display a message when launching/exiting Google Play)
- [Optional] start MoreLocale to change your language
- Disable the "smart update" in the projector settings so that it doesn't try to download and install OTAs (which would just display an "error" message after each boot, when it fails to install it)
- Enjoy your Google Tv device !
Once installed, don't change the device resolution in the android tv settings. This is not supported by the video drivers that will then only display a checkerboard. The only known solution as of now is to reinstall the full stock rom and start again.
- Using any of the above features (even [ROOT] ones) should be safe and shouldn't prevent you from installing stock OTA updates afterwards (no system file is modified). If anything goes wrong, don't hesitate to tell me, but anyways, at worst, flashing the full stock ROM will fix any issue, so there isn't any risk of bricking your device.
- Replacing the launcher will require another compatible one installed. Leanback launcher runs fine and gives you Google Tv stock experience (if you can install Google services/apps). Else, I like ATV launcher (current version 0.11. The only minor issue is that it won't display the shortcuts to HDMI1/3 on the launcher, you'll have to go in the Tools app. The dev will fix it in upcoming release). HALauncher works fine too. Whichever launcher you want to use, please make sure it launches fine before freezing the stock one. I'd recommend installing ATV 0.11, even if you don't intend use it, just as a failover in case the launcher you want to use doesn't work once the stock one has been replaced. Except if you have stock launcher or leanback launcher installed (which will force you to use them if installed), if multiple other compatible launchers are installed, a popup will ask your choice at each boot and home button press.
- Concerning the (un)freeze apps/launcher, if your device is not rooted, this app currently can't do it automatically (I'm still trying to find a workaround), but you can do it manually by connecting a computer to your device with ADB and executing a few command lines :
- Download adb for your OS (check here)
- Start command line (terminal)
- type "adb connect IP_OF_YOUR_DEVICE:5555" to connect through the network
- enable "usb debugging" in your device's "Developer" options (in settings) (to enable "developer options", see here)
- type "adb shell" to open a shell console
- to freeze an app type : "pm uninstall -k --user 0 PACKAGE" (replace PACKAGE with com.mitv.tvhome for Xiaomi stock launcher, cn.formovie.fengos.desktop for FengOs launcher and com.google.android.leanbacklauncher for Google Leanback launcher)
- to unfreeze an app type : "pm install -d -r --user 0 PACKAGE_PATH" (replace PACKAGE_PATH with /system/vendor/app/TvHome/TvHome.apk for Xiaomi stock launcher, and /system/priv-app/LeanbackLauncher/LeanbackLauncher.apk for Google Leanback launcher)
- to get a list of manually uninstallable apps, check the "rainman.v2.json" file on my github
- Evolution : If you have another device and want this app to support it (meaning using another list of installable/uninstallable apps), don't hesitate to make a PR on my github.
Engineering Menu App Translation :
After a bit of google translate and reverse engineering, here's a translation of the different menus, along with my own values (1st one is for "rainman", second one for "batman")
- Projector information
- - Brightness 
- - DLP vendor name [APPO][APPO]
- - Production Week 
- - Contrast ratio 
- - Brightness Uniformity 
- - Serial Number
- - Color coordinates [r:860 g:860 b:860 x:283 y:302][r:860 g:860 b:860 x:2720 y:2790]
- Solid color (android) -> displays a solid color (using android system)
- Solid color (projector) -> displays a solid color (native)
- Other image test (android) -> displays a gradient (using android system)
- Other image test (projector) -> displays a gradient (native)
- Color wheel delay -> when incorrectly set, this can lead to posterization issues (gradients become unnatural and tend to display large uniform areas) 
- Save color wheel delay to Android
- Image mode : change the screen light intensity
- - Standard
- - Highlight
- - Energy saving
- Temperature monitoring
- - ambient temperature 
- - color wheel 
- - Laser temperature channel 1 
- - Laser temperature channel 2 
- - DMD temperature [-]
- Model name [MiProjA1][MiProjLAS2]
- Human body induction -> enables/disables IR sensor that disable image when coming close to the laser
- Save information to projector
- DLP version [major:1, minor:2, patch:5][major:7, minor:3, patch:7]
- 3D (when modified, need to restart to take effect) -> enable/disable 3d support
Supported devices :
- 1080p Laser Projectors:
- Xiaomi Mi Laser UST Projector 150" (chinese) / MiProjA1 / model: MJJGYY01FM / codename: rainman
- Wemax One 7000 / MiProjA1 / model: FMWS01C / codename: rainman (thanks rockpaperscissors)
- Wemax One Pro / MiProjA1 / model: FMWS02C / codename: rainman
- Xiaomi Mi laser UST Projector 150" (international) / MiProjA1 / model: MJJGYY02FM / codename: anglee (thanks Nathan0121) (no root supported yet)
- Xiaomi Mijia ALPD 3.0 (rear throw laser) / model: L185JCN / codename: franky (no feedback concerning twrp yet, try rainman and report if it works)
- 4k Laser Projectors:
- Xiaomi Mi Laser UST Projector 150" 4k (chinese) / MiProjLas2 / model: MJJGTYDS01FM / codename: batman
- Xiaomi Mijia 1S 4k (chinese) / MiProjLas2 / model: MJJGTYDS04FM/ codename: batman
- Wemax A300 / MiProjLas2 / model: L1668FCF / codename: batman
- Fengmi 4K cinema laser / MiProjLas2 / model: L176FCN / codename: batman
- probably not released yet / MiProjLas2 / model: L246 / codename: batman
- Fengmi 4K cinema pro laser / FMProjA2 / model: L176FCNPro / codename: jerry
- Led projectors:
- Xiaomi Mi Home Projector Lite / Mijia DLP Projector Youth edition / MiProjLED1 / model: MJJGTYDS02FM / codename: conan (root using rainman twrp below)
- Mi Smart Compact Projector (international) / Mijia DLP Projector Youth Global edition / model: M055MGN / MiProjM05 / SJL4014GL / codename: ?
- Fengmi M055FCN / model: M055FCN / MiProjLED1 / codename: doraemon (root using rainman twrp below)
- Xiaomi Mijia Mi / ZMiProj / model: TYY01ZM / codename: zodiac
- Xiaomi Mi TV 3s / codename: mission impossible
- Xiaomi Mi TV 4 / codename: pulpfiction
- Xiaomi Mi TV 4a/4c/4s/4x / codename: matrix/xmen
- to be completed
This app can be downloaded here or on aptoide
Not for commercial use. If you want to redistribute it, please contact me.
- fix : fixed a bug in the display profiles structure binding them to the tools version they were created on (causing a reset of the profiles on each new release of the tools)3.55 :
Warning : this version will reset your display profiles (even if you're coming from 3.55). Please make sure you've noted the values so that you can recreate them. Sorry for the inconvenience, this won't happen again.
- feature : set sharpness step to 1 instead of 10 in display profile manager on MiTv devices3.54 :
- feature : third party remote control buttons HDMI 1/2/3 and keyboard keys F1/F2/F3 are directly bound to HDMI input change (side effect : for home automation systems, sending adb keyevent KEYCODE_TV_INPUT_HDMI_3 will start input HDMI3 for example).
- feature : added ability to disable auto power off on user inactivity when cold booted (MiTv) [root]
- feature : display profile manager can now display HDMI inputs in calibration preview
- fix : "android" display profile incorrectly applied on projector startup
- fix : some apps were not available in autostart app dropdown menu
- fix : crash when no display profile available
- fix : crash when starting some activities
- fix : autostart app not always working on FengOs
- fix : "install 3rd party apps" option not always available when it should
- rebranded app (yes, again ) to "ProjecTivy Tools". No more "Mi" because it's not dedicated solely to Xiaomi products anymore.3.00 :
- availability in Google Play
- redesigned some UI parts (and no more transparent background as per Google Play Android Tv requirement)
- feature : ability to start an app on boot
- feature : ability to block Google Play updates (for zodiac and maybe other devices)
- feature : access to native zoom UI from MiTv when available (zooms the whole UI, not just video, from 80 to 100%, no root needed)
- feature : accessibility service features (remote control shortcuts, mic button binding) can be enabled individually
- feature : information display relative to current source input (resolution, dynamic range)
- feature : launcher shortcuts (hdmi inputs, media explorer) can now be hidden if not used
- feature : app can fully replace a launcher (optimisations, lists all Android Tv and Mobile apps)
- feature : can replace launcher even when security measures prevent it (FengOs)
- feature : added english translations to FengOs settings app
- fix : long press back to improve input lag restored
- fix : improved stability of the accessibility service (notably on Android 8+)
- fix : better management of the direct downloads in "install 3rd party apps" (errors correctly managed, cancelation possible, support for android 8+)
- fix : added support for magisk 20+
- fix : improved overall compatibility with android 8.1/9
- feature : added compatibility with FengOs for most features
- feature : display profiles management (premium feature for more than 1 profile)
- feature : display profiles can be set automatically on input and/or dynamic range change
- feature : display profiles can be switched manually from the remote control
- feature : display profile editor displays multiple calibration helper screens
- feature : display profiles can manage : contrast/brightness/hue/saturation/sharpness, color temperature gain AND offset (not available in stock projector UI), dynamic color/contrast switches, noise reduction and interlacing switches (to reduce input lag), video zoom, backlight (more options than on the stock UI), tv backlight (for tvs)
- did I mention display profiles don't require root on Android 6 ?
- ...and should work on most amlogic devices (xiaomi, vava, xgimi...), at least on android 6 devices ?
- rebranded app to "Mi ProjecTivy Tools" because why not.2.17 : added ability to reduce input lag and disable noise reduction by long pressing "back" button.
- stability : added a screen resolution check at boot. If a wrong resolution is set in the Android tv settings, the device won't be locked on the chessboard screen anymore, it will switch back to the default resolution (rainman and batman supported)
- stability : set this app as a Tv Launcher, so if all launchers are mistakenly disabled, the device will boot on it so that a launcher can be reinstalled
- UI : made menu buttons dynamic, so they won't show on your device if the feature is not supported
- UI : rewrote all submenu interface to use Android Tv UI. This vastly improved look and usability
- UI : changed menu icons
- UI : if accessibility service is running, the app can be opened by double pressing the "menu" button
- feature : added an option to change the zoom in/out factor for video display (external input and all media players)
- feature : added option to switch window manager to 4k (interface will likely not be totally fluid, though)
- feature : rewrote the option to decrease input lag so that you can disable "noise reduction" and "deinterlacing" individually
- feature : added a shortcut (qrcode) to MiReCo, the Web Remote Control
- feature : made the shortcuts section dynamic : it will now display all installed apps not natively compatible with Tv launchers (like the "Tv App Repo" app)
- feature : added "about this device" section that displays many details as well as the temperature sensors values
- improvement : made the hdmi input shortcuts compatible with international (android tv 8+) devices
- improvement : rewrote code to automatically start on a selected external input. This brings support for international models. IT WON'T USE the stock device settings anymore to select the input. Use the included parameter in "Input Settings"
- feature : added a shortcut to the stock "media explorer" directly in Tv launchers
- feature : added a warning if accessibility service is not enabled
- fix : fixed compatiblity with Netflix (not the Tv version, unfortunately, but the interface is totally usable). Due to missing DRM support, resolution is limited to SD.
- internal : many fixes and improvements (and bugs ?)
2.16 : added auto start to hdmi (as stock launcher), so that users who changed launcher won't miss this feature.