[ROM] AndroidTV Pie Custom firmware by mo123

You can try the new link

I have a problem with CEC. It works after boot. But if I switch to TV and then back to HDMI, it stops working.

Now this is no longer relevant, I ordered a set RockPi and will be able to get all the necessary information and tests. :sunglasses:

That’s fantastic.
Will be great to be able to boot from USB in future.

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

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.

  • 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

If it feels a little slow after booting, just set the resolution manually again.
If Radxa can create a script that runs on bootup 5 seconds after the Android homescreen appears that resets the resolution to what it currently was, it will help a lot and I will include it in future.

Download link: https://mega.nz/#!RdNAHKLY!pU57DI-li47H4ZPRb4oZNW3duW1DGRkAnv3MgRxiEU8
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.

Boot.img: https://mega.nz/#!9RMTxKCI!kkDM709Qcw9rKGLJwWNZA9eCPawfZBhF01cvfZIg6_g
(If you want to patch it with Magisk. Flash the patched image then through Developer Settings, Flash Image and choose Boot)

1 Like

Changelog v1.3

and a link to the old version 1.2 :slight_smile:

Link updated, copy paste error :slight_smile:

Thank you for your work @mo123 !
Is there a way to update to latest version without the need to reinstall our apps ?


You can try to use

https://apkpure.com/migrate-custom-rom-migration-tool/balti.migrate or

Maybe the last app will help with all your needs and it’s open-source so the developer can add new features if users require them.
Download the apk’s on a PC and install from external storage on RockPi 4 since those apps aren’t available in the AndroidTV Store.

Added boot.img to patch through Magisk for people that need it.

and added instructions to patch it with Magisk.

Really nice stuff @mo123, I played with 1.1 I had one issue with sounds which seams really low, I tried all bitstream mode (I couldn’t test the mini jack mine is broken).
I wanted to download last version but archive seems to be broken.

The link seems okay.
Did you try the v1.3 link later in the thread here?

Unzip with 7zip and password for unzipping is radxa

Kodi has some problems where audio volume resets for some people but should be fixed in a few days when they update the app.

You can try with Audio settings as Bitstream or Stereo(if not using HDMI passthrough)
Safe volume, you can disable it if needed.
The is also a setting to lock the audio so you can only change volume with your tv or AVR remote so devices don’t all use different volume levels.
I can’t remember if the volume resets to a certain level after booting, think radxa also set some default value, level 12 audio or something. I can try to change some things later if there are still problems.

I have problems in version 1.3 with sound everywhere, not just in kodi. The sound is very quiet through HDMI. In the settings I increase the volume level, and after exiting the setup menu it returns again as it was.
In this version, CEC continues to work for me after switching to TV. Very good :slight_smile:

I am now loading some systems using the boot flag on boot partition.

# parted /dev/mmcblk0 p
Model: SD SL16G (sd/mmc)
Disk /dev/mmcblk0: 15,9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      32,8kB  4129kB  4096kB
 2      8389kB  12,6MB  4194kB
 3      12,6MB  16,8MB  4194kB
 4      16,8MB  134MB   117MB   fat16        mint     boot, esp
 5      134MB   252MB   117MB   fat16        xubuntu  boot, esp
 6      252MB   789MB   537MB   fat16                 msftdata
 7      789MB   1325MB  537MB   fat16                 msftdata
 8      1325MB  1862MB  537MB   fat16                 msftdata
 9      1862MB  2399MB  537MB   fat16                 msftdata
10      2399MB  13,1GB  10,7GB  ext4         ubuntu

loading mint from nvme now. If I enter ‘parted /dev/mmcblk0 t 4 boot’, the boot flag from partition 4 will disappear and the 5th partition will be loaded with the boot flag on it.
Android also have boot flag on the first partition. I removed the flag from it, made another boot partition with the boot flag active, but android was booting :frowning:
It would be nice to make uboot for android so that it loads first partitions with the boot flag :slight_smile:

Hopefully Radxa will be able to suggest something after their holidays.

Glad HDMI CEC is working now.

For audio I use a cheap airmouse and use the volume buttons on it.
After setting the audio to maximum, you can try to lock the audio volume, think I added a setting for that.

1 Like

Thanks @mo123, sound level is saved with the 1.3, CEC works perfectly for me.

Ola, qual a versão do google play usado? Consigo instalar o pubg? Gostaria de uma ajuda sobre isso! Ty

Hello, what version of google play is used? Can I install pubg? I would like some help on that! Ty

You can try to install it from the APKPure App Store in the AppDrawer or manually download and install from a USB Disk
https://apkpure.com/pubg-mobile-4-android-i/com.tencent.ig or install Aptoide App Store and install it from there

Hi @mo123 really great work. Some questions (don’t have rock PI yet)
1: have you seen rock pi 1.4 has support to boot nvme? so can we follow the basic instructions to install your OS to nvme by default?
2: Does your OS build have hardware video decoding in Nova Player / others or is it software?

I have a standard chinese android tv media box and the issue is for H265 or high efficiency encoded videos the video player always drop frame and doesn’t play properly so this is a question for changing to rockpi + your os