[ROM] AndroidTV Pie Custom firmware by mo123

[ROM] AndroidTV Pie Custom firmware v1.7 by mo123

Changelog v1.7 ROM

  • Remove the Setup screen so users in China(and elsewhere) can also use the ROM
  • Update video codecs and GPU drivers
  • Add YUV422 10-bit color options
  • Update Nova, Kodi 18.7 and other apps
  • Fix fake wifi as ethernet, 192kbps flac support, volume menu timeout 3 seconds if accessibility service enabled, long press back on recent apps screen to close all apps or long press ok on a window to close it.
  • Improve responsiveness and speed
  • Update TWRP to V3.3.1.0
  • TvSettings Support mouse operation with ethernet settings
  • TunerSettings add Network Adb Setting
  • Add Filelinked App Store to easily install popular apps.
    Use code 17 76 76 76 (easy to remember :slight_smile: )
  • Add Settings app for phone launchers
  • Fix widgets on phone launchers
    After installing and opening your launcher:
    Open Terminal app and type without quotes ‘su’ then Enter then '/system/bin/widget and press Enter again. Widgets should work now for around 30 popular launchers by default.
    If not working, tell me your launcher name then I’ll tell you how to fix it.

To set a different launcher:
Use TvSettings - Tuner Settings - Home - Choose your launcher and then press the home button on your remote.
You can also use YoWindow for interesting live or static desktop wallpaper.
Preferred phone launchers are Zim(better and open-source) or Nova(more options) Launcher.
For Zim Launcher, swipe from the left side on the homescreen for extra settings and to set wallpaper or long press on the homescreen to set wallpapers, app icons can easily be dragged from the Appdrawer to the homescreen too.
For Nova Launcher, you have to search for an app in the Appdrawer’s Search bar and long press it to be able to drag it or it’s widget to the homescreen.

Download link (gpt image) Flash with etcher:
Pass: radxa

If you like my work, please consider making a small donation
Ethereum wallet

Changelog v1.6 ROM

  • Update Kodi - Can now seek in H265 videos
  • Update Nova Video Player - Fix some DTS-HD sound issue
  • Update LeanKeyKeyboard - The onscreen keyboard’s size can now be changed and other languages can now enter special characters.
  • Update Lightning browser
  • Add Google Clock Screensaver
  • Add permissions for Vulkan API for some apps that might require it
  • Fix VC1 playback
  • Fix TvSettings - Developer Settings - Flash image - Add back to flash images again.
  • Fix Search in More Settings
  • Enable all resolutions for some 4K tv’s that might have different EDID timings
  • Update busybox to latest version
  • Enable support for VirtualXposed
    This app can be used together with the Hijack Suite Free Xposed Module to make some apps work that check Safetynet if Magisk doesn’t work.
  • Magisk patched by default again
    You also need to enable ‘Hide Magisk’ in Magisk Manager’s Settings otherwise the BasicIntegrity test will fail. Using a Xiaomi Mi 7 as fingerprint and device sumulation with all settings enabled makes both CTS and BasicIntegrity tests pass
    For Netflix, install version 7.42 or earlier from the APKPure app store.

Download link (gpt image):
Pass: radxa

Changelog v1.5 ROM

Added stock firmware improvements

  • update sdk to rockchip rk3399_pie_v9.00_20191223.xml
  • update to android-9.0.0_r50
  • Configurable SU:
    TunerSettings -> System -> Root Access -enable-> APP SU Access.
    Enable SU that You can get su access in any app.
    If you need permission management, please swipe in Magisk.
    After swipe Magisk, this settings will be not work.
  • Support Raspberry Pi Camera V2.0 (imx219).
  • Ctrl+Alt+P to open power menu.
  • Fix factory reset not work in TWRP.
  • Fix first boot get more error in TWRP.
  • Disable TF card sdr104 mode, causes boot problems on some SD Cards.
  • Add a hard power button (16(High effective) pin in 40 pin).
  • Set default keyboard to LeanKeyKeyboard
    (To change the language, go into LeanKeyKeyboard’s Settings in TvSettings to change it)
  • Change default screensaver to Dreamy
    (It has lots of categories for different wallpapers, much better than the stock screensaver)
  • Apps don’t close after granting permissions anymore
  • Updated some apps

Download link (gpt image):
Pass: radxa

Changelog v1.4

  • Magisk patched by default
  • Speed optimizations
  • Updated apps
  • Added Dashboard - Use it to change the All Apps screen when Long pressing Home or clicking on the red Apps icon.
  • Added Notifications app - Now you can see notifications like on regular Android
  • Add Navigation bar app - Open it and enable the Accessibility Service to have a navigation bar
  • Removed Safe Volume, volume should now stay at 15 steps
  • Added Setup on first start - Google account needed
  • Fix auto frame-rate switching
  • Changed animation speeds so that the spinning wheel in some apps play smoother
  • Add SmartYoutube, Youtube Vanced
  • Improve Mele F10 airmouse - Bottom row keys now control Rewind, Stop, Play/Pause, Forward & the 1st key second bottom row now opens menus in apps.
  • Add USB booting change of rua1

Download link: https://mega.nz/#!oIk10BaD!Ab6w5pt8ag2lYEy7S2vvzLXcjOWDpRPUTOcdVkPViKs
Password: radxa
Use 7zip to unzip and flash with etcher.

Changelog v1.3

  • Decreased animation time by 50% for AndroidTV.
    Should be a lot snappier now.
  • Fixed slow AndroidUI on every boot caused by fractional frame-rates(finally)
    No need to manually set the resolution anymore.
  • Spoof Xiaomi device to improve compatibility for apps.
    Still need to use Magisk if wanting to fully spoof a device but adds a little better compatibility out of the box.
  • Nova Video Player updated
    – Support 10-Bit H265 video playback on Rockchip devices now
    – Support 10-Bit H264 software decoding now used by Anime videos.
    (1080p support still wip)
  • Updated video codecs

Other changes

  • mmc: core: Fix init of SD cards reporting an invalid VDD range
  • clk: fractional-divider: add handle to frac numerator is not to be greater than 4
  • soc: rockchip: ipa: Fix temperature scaling coefficient overflow
  • drm: call mode_set hooks when connectors change
  • drm/rockchip/rk618: hdmi: remove main interrupt polarity setting
  • drm/rockchip: cdn-dp: Reject non-32-bits-aligned mode widths
  • drm/bridge: analogix_dp: set IRQ_NOAUTOEN to the irq flag
  • drm/bridge: synopsys: dw-hdmi: check hdmi status in resume
  • drm/rockchip: vop: p2i is supported from rk3399
  • drm/rockchip: vop: workaround a issue of px30 treat rgb888 as bgr888
  • drm/rockchip: drv: use for_each_available_child_of_node for child iterator
  • drm/rockchip: rk3066_hdmi: set edid fifo address fix edid reading err when edid’s block > 2
  • drm/rockchip: vop: initial enable vop dither up for rgb565/666 can dither to rgb888
  • MALI: midgard: Fix power coefficient overflow
  • clk/rockchip: rk618: enlarge buffer size for clk name
  • clk: rockchip: half-divider: Use DIV_ROUND_UP to round divisor values
  • clk: rockchip: rk3399: Update the isp clocks
  • video/drm: rockchip_display: add return value for automatic test
  • video/drm: rgb: set lcdc data[15:12] output
  • clk: rk3399: fix up the i2c clk error
  • video/drm: rgb: add S888 mode support
  • power: io-domain: Don’t printf sudev->name when get regulator failed
  • regulator: pwm: remove init voltage setting
  • clk: rockchip: rk3399: init 816 MHz for ARM big core

Download link: https://mega.nz/#!tEUR3QAJ!X9hXXkWx2nkzTM2E4kaTrcL8CtYkTO_GRTohnXvFjZA
Password : radxa
Use 7zip to unzip and flash with etcher.

Changelog v1.2

  • Fixed bootlogo causing green stripes on some 4K displays
  • Reduced image size from 4.6GB to 4.0GB - should flash 13% faster now
  • Fixed Google Play Store new layout to use the top Apps/Games/Updates/Settings menu correctly. Seems it’s a server side switch by Google and not everyone gets updated to the new layout.
  • Removed additional stock apps not needed
  • Changed DPI to 320 for a better AndroidTV experience
  • Updated to latest video codecs
  • Added some extra HDMI CEC properties. Hope it can fix the not working after resume issue.
  • Changed AppDrawer icon
  • Updated to the latest Magisk Manager
    Patch your boot.img and then click 5 times on build Info under the About menu to activate Developer Options. In Developer Options choose Flash image and select the /Download/magisk_patched.img and then select the boot partition. Restart your device for Magisk to work.
    Or you can boot to TWRP Recovery and flash the Magisk.zip file
  • Add RefreshRate switching for any app
  • Check the useful guide on how to make it work.
    Guide for AndroidTV Firmware by mo123
  • Add KeyMapper application I build from the latest source code.
    This is an open-source app, so it replaces the Button Mapper app I used previously in the Useful guide screenshots since it doesn’t have limitations. Check the AppDrawer to open it.
    You can map the power off menu, screenshot and Google Assistant(if you have a voice button on your airmouse)
  • Add CetusPlay server app so you can use your phone as a remote control for AndroidTV.
    Install the client app on your phone - https://play.google.com/store/apps/details?id=com.cetusplay.remotephone
  • Add Kodi and Nova Video Player app preinstalled.
    Nova is a very decent video player app with poster art, subtitle download, network playback, auto frame-rate switching and audio passthrough and works better than VLC & MXPlayer. Check the useful guide to use it optimally.
  • Improved auto frame-rate switching accuracy and removed unused resolutions.
    Check the useful guide for Kodi setup.
  • Youtube Vanced login support added so you don’t have to use the rooted versions.
    You must install the MicroG and Youtube Vanced app to be able to login.
    (Youtube Vanced gives a phone layout without ads compared to SmartYoutubeTV that has an AndroidTV layout)

Other changes

  • Fix bootanimation stack overflow
  • Add missing INTERACT_ACROSS_USERS_FULL permission for SettingsProvider
  • Use Cloudflare DNS as the default fallback
    (Cloudflare DNS has a better privacy policy than Google Public DNS and
    has DNS-over-TLS and DNS-over-HTTPS so it won’t be a downgrade)
  • SystemUI: Remove annoying log caused by AOSP bug
  • Fix refreshing storage summary after force stop
    (if app is force stopped, current implementation causes a nasty loop which in turn causes
    very high cpu usage)
  • setDequeueTimeout(-1) on the output surface. This ensures that allocation blocks in ACodec.
  • Remove battery log
  • Do not build Traceur
  • drm/rockchip: vop: fix dclk invert register define error
  • rkwifi: fixed wifi onoff crash
  • rkwifi: fix pno scan failed
  • fix race between input event and governor exit

Download link: https://mega.nz/#!RdNAHKLY!pU57DI-li47H4ZPRb4oZNW3duW1DGRkAnv3MgRxiEU8
Password: radxa
Use 7zip to unzip and flash with etcher.

Changelog v1.1

  • Add RockPi 4 boot logo
  • Add Magisk root support
    Please uninstall the Magisk app and reinstall it from here
    http://bit.ly/magiskm (short link to Github Magisk Manager link to download it quickly)
    It will say additional setup is required then you can restart your device.
    Seems the Magisk Manager app has some problem being preinstalled from micro-sd card firmware.
  • Add ‘More Settings’ menu to TvSettings if you want to change extra settings like in the normal firmware
  • Change the onscreen keyboard to a mouse friendly one that is faster
  • Remove some preinstalled apps
  • Add working Netflix app and Kiwi Browser
  • Several stability and video playback patches from AOSP merged.

Download link:
Password: radxa

Changelog v1.0


Add various gamepads support

  • Xbox, Xbox One, Xbox Elite controllers
  • Sony DS3 and DS4 controllers
  • Switch joycon and pro controllers
  • Steam controller(also need to use the Steam app)
  • Shield controller

Fix Home button on airmouses, USB remotes

  • Long press to see All apps screen
  • Single press to return to Android Homescreen
  • Double press for Recent apps
    – Long press OK/DPAD_Center to close selected app window.
    – Long press back button to close all recent apps


  • Add Wifi connect button on wifi password enter screen to be easily clicked with a mouse, airmouse to setup wifi without using the onscreen keyboard
  • General Wifi improvements
  • Fix ethernet stops/disconnects sometimes bug
  • Spoof ethernet as wifi connection
    – This fixes some games like Asphalt that only work over wifi connections to also work if only using an ethernet connection

  • Fix Youtube VP9 videos freezing sometimes bug
  • Change frame-buffer to 1080p, 213DPI to help with 1080p Youtube support and less upscaling for video playback.
  • Set HDMI Bitstream as default audio device.
  • Add support for 192kbps FLAC audio support
  • Add Shutdown menu to TvSettings - About Screen
  • Fix SD-Card incorrect size reported sometimes
  • Fix Daydream settings not working on some languages
  • Improve overall speed of Android UI
  • Fix some apps running sideways to always run in landscape
  • Add some default Ad-blocker list to block some ads on websites
  • Add some extra apps.
    Use MiXplorer File Manager(Samba v2 addon included) if wanting to access Samba v2.
    Some other file managers only use Samba v1 which has less than half of the network performance of Samba v2.0. Kodi 18 also uses Samba v2 so you can use that to setup your network shares if playing high bit-rate videos over ethernet to get the best network speed.

Password: radxa
Use 7zip to unzip and flash the image with etcher to a micro-sd card or EMMC.



How to setup Kodi 18 with auto frame-rate switching

Latest Kodi 18 can be downloaded here.

Step 1
Change to Expert Settings
Change 'Adjust display refresh rate to ‘On start / stop’
If using a lot of IPTV streaming then it might be better to change it to ‘On Start’ so frame-rate switching doesn’t take place after a stream stops too.

Step 2
Select all the Whitelist resolutions available.
On a 4K tv you can select all the 4K & 1080p resolutions, 720p and lower are not needed.
On a 1080p tv you can select all the 1080p & 720p resolutions, lower than 720p is not needed.

Step 3
Change the UI refresh rate to 60 or 50hz(if in Europe).
Change the ‘Delay after change of refresh rate’ to 2 seconds or longer/shorter depending on your AVR to get audio right in sync. In most cases you can just leave this setting on the default value.

Your 23.976hps videos will now play correctly at 23.976hz and not at 60hz which resulted in some video stuttering and unsmooth video playback when there were lots of panning, zooming or fast motion scenes. European, Australian users watching Live TV with a DVB dongle or IPTV service can now also watch 1080p@50hz or 4K@50hz smoothly instead of it playing back at 60hz that caused micro video stutters and didn’t have such smooth video playback especially on bigger displays like 4K tv’s.

Remember to activate for
HDR - Enhanced Color Mode / True Color on your 4K HDR tv first and HDMI CEC before you can watch HDR content otherwise it will display in dull colors, non HDR mode.
Also make sure you are using a high quality HDMI 2.0 >16Gpbs speed cable as an HDMI 1.4 cable won’t be able to work with HDR or 4K@50/60hz content. Also check your tv’s manual to make sure all the ports are HDMI 2.0 capable or if only one is, to connect the HDMI cable to the correct HDMI 2.0 capable port.

Additional remote apps for your phone
General AndroidTV remote - https://play.google.com/store/apps/details?id=fr.bouyguestelecom.remote
Kodi remote - https://play.google.com/store/apps/details?id=org.leetzone.android.yatsewidgetfree
Casting videos - https://play.google.com/store/apps/details?id=com.ionitech.airscreen
Screen mirroring - HappyCast: Install the tv box version to RockPi 4 and then the phone app to your phone. http://www.hpplay.com.cn/index_english.jsp
The phone app is now translated from Chinese to English, you can also use an app like BubbleUPnP to cast videos from your phone to the Happycast server app on RockPi 4 if installed, it sometimes works better than the built-in app to receive videos.

I would suggest you to use BubbleUPnP(https://play.google.com/store/apps/details?id=com.bubblesoft.android.bubbleupnp&hl=en_US) or another casting app and then set Kodi up as a UPnP receiver(https://www.youtube.com/watch?v=GFBHi6DSCQc) then videos can be played in Kodi for much better performance.

How to set up Samba shares:

Speed difference between Samba v1 & v2.

Use the Channels app after updating all the apps in the Play Store to set individual Youtube channels as Channels on your homescreen.
It makes the homescreen a lot better.


Really nice. Thanks for the good work :slight_smile:

1 Like

Good Work! Thank you.

1 Like

Kodi 18 Guide posted.
I will add root support in the next firmware and fix some small bugs.

1 Like

Thanks that’s really good

Some small update posted.
Firmware is pre-rooted with Magisk, you just need to update the Magisk Manager app, no need to flash TWRP or a different boot image anymore.


Hey mo123,

Thank you for your awesome contributions… I was trying out the AndroidTV 1.1 image, and the Netflix app just opens to a black screen and then closes shortly after a few seconds. I’ve just booted up and added my WiFi details, is there anything I should be doing additionally? Thanks again.


You can try to clear the cache of the Netflix app.
You can also try to root with Magisk, uninstall it first then reinstall the Magisk Manager app and then hide root from the Netflix app or use a system app remover to uninstall it.
Only the v6.21 Netflix app works from here.

Newer versions of the app eg. v7 will quit as on most devices that have unlocked bootloaders.

You can also try my LibreELEC image and the Netflix addon to get 1080p Netflix compared to 540p in Android.

I will test the Netflix Android app later since I’m busy working on some more Android improvements.

But it’s a 7 day holiday in China so some troubleshooting help I need might not be provided by Radxa or Rockchip for a few days, but I’ll release what I can.

1 Like

Hi mo123,

You seriously rock, thanks for the super quick response!!!

I don’t own a Rock Pi 4 yet but want to purchase if it fulfill my needs :slight_smile: I want an Android Pie TV rom to run on this device that must support 1080p and 4K youtube, 1080p Netflix ( if more that would be nice), wifi and Bluetooth working and for the kids: Chrome cast support working. Will this ROM do that?

Continuing the discussion from [ROM] AndroidTV Pie Custom firmware by mo123:


Youtube is no problem.
There are Youtube Vanced and SmartYoutubeTV that can play 4K.

Netflix will be limited to 960x540p in Android since they don’t support HD playback on open Android platforms, only locked down devices. 960x540p is decent on a 40" 1080p tv as they use high bit-rate compared to other streaming services. If you have a 4K tv, it will have built-in 4K Netflix anyway.
But if you load LibreELEC onto a micro-sd card, you can use the Netflix addon and play up to 1080p.
You can then install firmware onto the emmc storage.

Chrome-cast won’t work. It only works on the Xiaomi Mi box and Nvidia Shield which both have limitations.
There are other ways to cast videos and photos from your phone or PC to the device by means of Happycast and Airscreen, then you can cast it to a video playing app or Kodi.
You can also mirror your phone’s screen onto the device but it might have 0.5-1 second lag.

Make sure you then get the emmc chip, eMMC to uSD and
ecoPI LP/HP case or ecoPi Starter case + separate big heatsink since Netflix uses software decoding and will cause extra heat. The USB-A to USB-C power/data cable with switch is also useful for powering on/off since there is no ir remote. You can also look at a cheap airmouse(<$10) on Gearbest/Aliexpress, it works great to control the device, otherwise you will need a wired/wireless USB keyboard or mouse.

I’m trying to get dual-booting to work then you will be able to switch easily from Android to LibreELEC in a few seconds and back. But because it’s something new that needs to be developed, it will take some time to get the best approach and test it after Rockchip or Radxa develops it.

Super. Good job. I have Nanopi M4 and Changelog v1.1 have some stability issues, but image Changelog v1.0 works great. Thank you for your work

hi Mo123

first thank you for sharing with us.

I fresh installed 1.1, kodi works well

Prime Video (installed via playstore) does not Play videos

when I start to play one I get the message:

“something went wrong please try again later”

I have no Idea whats the reason.

has somebody an idea?



Are you using this app, the tablet version?
The app icon will appear in the Appdrawer or you can use http://atvlauncher.trekgonewild.de/ to create a banner icon for the Homescreen by using the AndroidTV app banner.

The AndroidTV app version I think won’t work.

You can also try the Amazon Prime Kodi addon.
If watching streams from Europe then you can enable auto frame-rate switching in Kodi video settings and add the resolutions in Kodi’s System Settings Display Whitelist to play 25/50hz streams instead of playing everything at 60hz for bteer video playback smoothness.


the apkpure version of prime video works fine.

I oped apkpure searched for amazon video and installed it


I managed to create a banner for the home screen.

but I have more questions

I installed Asphalt 8 and I could start it, but the download pages stays at 0%.
The device is connected via WiFi.

I connected a new PS4 dual shock controller via Bluetooth, but it is not working

What can I do?

and how do you added the controller support, I like to add this also on my tinker board


You can try to copy these 2 files to the system/usr/keylayout/ folder but you must root with Magisk to access the folder and use a simple file manager like MiXplorer to copy the files as it will also set the correct file permissions which other file managers might not do.

More info

Here is a useful guide to determine the vendor and id of a particular gamepad by using a gamepad tester apk so you can create or search online for a keylayout file you need.

Asphalt only works over wifi since it’s made for phones, but I added a patch so it can also download game data over ethernet.
But I’ll test it, maybe there is something else wrong.

I will upload a new firmware with all the gamepads soon and a better way to update Magisk.

this link doesnt work anymore

You can download the latest Magisk Manager here.


The boot.img is already pre-patched, so you only need to uninstall the existing Magisk Manager and install the nwe one.

I also made a banner icon for Magisk Manager.
To check, the banner apps are usually 50-100KB in size and have ATV in the name. The actual apps are the ones 1-50MB in size.