[ROM][UNOFFICIAL] switchroot Android 10

Search This thread


New member
Feb 9, 2021
Hello, I'm having issues with my internet speed on the android tv build. It's really slow and takes ages to download apps. However, I then wiped the microSD card and installed the tablet version of the build and the internet was running a lot quicker. Is there some fix or setting I need to enable on the tv build, because I would rather use the android tv build than the tablet build, but I wont use it if the internet is basically unusable.

Also great work on getting android tv even running on the switch besides the internet issues, both the tablet and tv builds are very quick and responsive!


New member
Feb 9, 2021
This version is amazing and runs buttery smooth compared to the previous version I was running so thank you a ton for the hard work and info!

Question though, if someone were to have followed the steps to install everything and didn't initially change the target to the SD card how would they go about cleaning up the system nand to avoid any issues down the road?


Apr 29, 2013
Good afternoon friends! Great job!
There are a couple of questions:
1. Is it possible to implement hdmi cec to turn off android TV with a standard TV remote control?
2. Is the remote control for xiaomi mi box suitable? If so, can he turn off and wake up android TV?
Thanks in advance!
It looks like netflix doesn't want to work, i downloaded the release netflix tell you to download when you get the "device not supported" error but i still get it anyway. I also tried to change the device fingerprint to pass the safetynet checks but no dice (as in i pass the checks now but netflix still doesn't work).
Every other streaming service seems to work fine, prime video and disney+ included.
Install the tablet version instead. It apparently has less restrictive DRM.

Can you still boot it normally into the normal switch UI or when you do this is it permanently an android?
and if so, can you still play switch games on it?
If you don't enable autorcm turning the switch off and on again will put you back in the normal OS. There should also be an ofw option in hekate.


Nov 27, 2007
1. Is there a way for dual boot with atmosphere ?
2. Haven't installed yet . Will I have any issues with Netflix app?
3. Does it support chromecast - wich version?


Senior Member
May 10, 2015
I have a problem with gamestream, since nobody mentions it, I do not know if it is my own problem, both nvidia games, and moonlight, when transmitting to pc, the pc detects new hardware of hdmi sound, virtual mouse, and virtual keyboard, but no joystick , and that's why the joystick doesn't work for me in gamestream, I'm using split pad pro, docked.
I don't have joy-cons to test for bluetooth.
Does this happen to someone else with a joystick, attached?


Senior Member
Dec 7, 2012
Thx for your answers. :)
At 3.: Can I manually mount it to any other place so non-root apps like RetroArch can access it?


Senior Member
Apr 23, 2012
Anyone tried with latest official citra emulator? I installed tablet version of A10 to switch, while testing official citra I find D-Pad cannot mapping correctly with joy-con put in rail.


New member
Feb 9, 2021
Does anyone have their joy-con working wirelessly? I did do the joycon bt dump in hekate before flashing. If I boot up without the joy-cons attached then they won't connect. If I attach the joy-cons to the rails they work fine while attached. Upon removing them from the rails they seem to immediatly connect wirelessly but usually don't work. The player number indicators (number of lights inside the rail) are often different, showing up with like 2 on one joy-con and 3 on the other. These numbers keep changing if you attach and detach the joy-cons. Occasionally I can get one of them to actually do something but not both. I'm wondering if they are attaching as player 2, 3 and so on. Pairing an 8bitdo x-input controller over bluetooth worked flawlessly btw, as do the hori dpad and split pad pro when attached.


Senior Member
Jan 23, 2007
So as per instructions i did a Dump of the Joy-Con BT Via Hekate
I didnt see any follow up instructions, is it automated from Android to use these? Or is there a step i have missed


New member
Feb 9, 2021
for gapps, you must use v10 of android or you will get a mistmatch error in TWRP upon install of any other version. also ,does anyone know if there is a reboot to payload to go in and out of android to rcm like the older Android from root access?

EDIT: Looks like through the TWRP Recovery you can simply reboot to Bootloader and it works, cept not once you load into Android 10. I downloaded this fishy looking Bootloader App called reboot options by JKarDev right from the store and it work!!!!!! YAY :)
Last edited:


Nov 27, 2019
Great Work, I've installed TV build so far i haven't had any issues.

How can i show my recent opened apps so i can be able to close them ? On the Shield i believe you double click the home button on the remote, Also besides downloading an App is there a way to check your current battery ?? Thank you.

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    My Switch keep with light green and fan blowing on docked, even in the standby mode.. Any way to get sleep ?
    I have the same behavior. I'm still not really sure if this is "normal" or not with the Android build but I haven't seen anyone else mention it. When it's docked, the green light is always on unlike the switch OS that turns that off while in sleep mode. So I'm not sure if this actually every goes into a full deep sleep.
    Hi, I'm trying to use Pokémon Go, so I have to bypass SafetyNet, I know I have to change the signature, but I don't know which signature I should use, anyone knows?

    Use nvidia shield pro 2019
    Does someone have an working apk or an method to run prime video on the TvBox version?, i already tried with magisk and it didnt work :c
    Hi I get an error after trying to update Lineage via OTA(13/02/2021). Does anyone knows how to solve this? Do I have to install the update manually? Thanks.
    If you use magisk, i think that error come with it. i had the same probleme, i have installed the update via twrp.
    I installed the tablet version. I have a weird problem the switch wifi is recognized I can see my network, but when I try to connect to it it gets stuck in a loop of trying to connect and not managing to connect. Password is correct and I don't have any mac filter or other stuff enabled there. Tried the 5GHz and 2.4GHz networks. Also tried reinstalling Android, tablet and atv versions seem to yield the same results. Anyone had those kind of problems before, is there a way to debug this?

    I tried connecting it to my mac with usb debugging enabled and setting the wifi logging to high but 'adb devices' wouldn't list the switch I can't use logcat on it.

    I can the the disabled reason in wifi settings as: network_selection_disabled_association_rejection=5

    The wifi driver itself seems to be fine, I can open a hotspot on the switch and connect to it with other devices.
  • 63
    A new, updated version of Android for the Nintendo Switch. Now based off of Android 10 (Q) (LineageOS 17.1 with Shield TV trees) it's faster, more responsive and has many new features over the previous release, including deep sleep and an Android TV build.

    • Android 10 based on Lineage 17.1
    • Significantly improved UI smoothness compared to Oreo.
    • OTA updates (bugfixes and new features without a reinstall).
    • Deep sleep that can last for weeks compared to hours in the previous version.
    • Full Joy-Con and Pro Controller support with analog sticks and rails.
    • Hori Joy-Con support.
    • Uses Joy-Con HOS Bluetooth paring data.
    • Both Android TV and Android Tablet builds.
    • Reworked fan profiles for quieter operation.
    • Optimized dock support with resolution scaling.
    • OTG support including DisplayPort or HDMI output (no power supply necessary).
    • 3rd party dock/hub support including DisplayPort or HDMI output.
    • Rewritten charging driver to properly support USB-PD.
    • Optimized touch screen driver.
    • Easier install via hekate partition tool.
    • Reworked, simpler, power profiles.
    • Much improved WiFi driver with less dropouts.
    • Shield TV remote app support for easy docked control.
    • Reboot to payload support.
    • Improved Bluetooth accessory support.
    • Auto rotation support.

    Known Bugs:
    • Shield games are broken, DO NOT BUY THEM.
    • Joycons do not turn off in sleep automatically, make sure to turn them off by tapping the 'sync' button on side.
    • Default keyboard can't be used with a controller.
    • Some apps don't like the Joy-Con D-Pad.

    Hekate - Extract zip to root of SD Card.
    ROM zip - choose one of these and extract to root of SD Card using 7-zip, not the built in windows extractor:
    Tablet - Works best undocked and has the full Android app library.​
    Android TV - Provides a great docked and undocked experience for media but may not support all apps and games.​

    Flashable Zips, don't extract but instead install in TWRP:
    Gapps - Use arm64 pico for tablet and arm64 tvmini for Android TV.
    Alarm Disable Zip - disables alarms and notifications in sleep in order to dramatically improve sleep time and avoid some SoDs.
    Xbox Joycon Layout Zip - Swaps a/b and x/y to match an xbox controller.​

    What you will need:
    • An RCM exploitable Switch console. Check here to see if your device is exploitable. If you have a newer device an exploit may be possible on older firmwares, but if you haven't already set it up you probably updated to a too new version already. Read more here. (for non-RCM exploitable devices)
    • A jig or other method of triggering RCM. Here's a few methods. Premade jigs can be found online.
    • A computer.
    • A good USB-C cable that can connect to your PC and Switch.
    • A high quality, high speed microSD card of at least 16GB.
    • A way to read microSD cards on your PC.
    1. Be aware that if you have any previous Android Oreo installs on your SD card your old Android data will be wiped, so back it up. This cannot be avoided!
    2. If you have an existing Q install make sure it was created with hekate v5.5.3 or newer, anything else will have broken OTAs due to a missing MSC partition.
    3. Ensure your SD Card is FAT32 formatted, this guide will not work with EXFAT SD cards.
    4. Grab the files you want from the Download section and place on your SD. Extract only the hekate zip and the ROM zip once, use 7-zip, not the built in windows extractor.
    5. Overwrite any existing existing files and keep any flashable zips compressed.
    6. Boot into the normal switch firmware with your joycons docked to the console, this will pair them.
    7. Now boot your switch into hekate, dock your Joy-Cons and select the 'Nyx Options' menu then select 'Dump Joy-Con BT' in the top right.

    8. Ensure the message looks as follows, if not then re-pair Joy-Cons in normal FW.
    9. Now return to the hekate main menu and select 'Tools' then 'Partition SD Card' in the top right.

    10. Drag the Android slider to assign the amount of space you want for Android, the HOS slider shows how much space the normal Switch OS can use.
    11. Now press next step, follow the instructions, if requested, backup your files with UMS to your PC and restore them afterwards with the UMS option.
    12. Select the 'Flash Android' option and follow the steps, then press continue to reboot to recovery.
    13. If you miss the opportunity to reboot to recovery go to 'More Configs' and select 'switchroot Android 10' while holding volume up, keep holding till the TWRP logo shows.
    14. Once you're in TWRP swipe the bar to allow modifications and press 'Install'.
    15. Press 'Select Storage' in the bottom right and choose 'Micro SD Card'
    16. First install the Lineage zip, ignore any errors that come up, they are expected.
    17. Then install any other zips you want to install, do not install zips meant for O, they will not work!
    18. After you're done installing zips, press reboot to system in TWRP.
    19. Enjoy your new Android install! To launch it in the future use the 'More Configs' -> 'switchroot Android 10' option in hekate.
    20. If setup gets stuck on voice detection go back to the wifi config page in the setup and select "Skip for now"
    21. Checkout the Tips & Tricks section below for some things to do.
    • Updates will be pushed through OTAs and you will get a notification when they are available - just install through there. Your data will be unharmed.

    OTA 12/02/2021:
    • Fixes deep sleep crashes on most devices.
    • Fixes BT audio lag and stutter in most apps.
    • Fixes bluetooth crash issues that affected some devices.
    • Fixes joycon LEDs not being turned off when docked.
    Tips & Tricks:
    • To enable Performance Mode and change resolution go to Settings -> Scroll Down -> System -> Scroll Down -> Display and Performance configuration.
    • If you don't need notifications or alarms you should grab the alarm disable zip in downloads, it increases sleep time by several orders of magnitude.
    • The Nvidia Shield TV app is a must have for docked usage, allowing keyboard and mouse control from a phone.
    • If you don't set a password the switch will auto-unlock after being docked.
    • The capture button on the Joy-Cons is mapped to Play/Pause media.
    • You can enable desktop mode to have a slightly better docked experience by going to Developer Options and scrolling down to 'Force Desktop Mode' enable that and reboot.
    • To see battery percentage on ATV follow this guide.
    • If you want to use a controller to type on tablet then install this keyboard.
    • To run tablet apps on ATV use this launcher.
    • For root the latest magisk can be flashed in TWRP
    • To transfer files to Android you can use MTP over USB.

    Stay in touch
    Discord: https://discord.gg/9d66FYg
    Twitter: https://twitter.com/switchroot_org
    Website: https://switchroot.org/

    See manifest repo for build instructions.

    Ave - Handling hosting of OTAs and the switchroot website. Check out her patreon!
    CTCaer - Fixing a lot of things in the kernel - charging, dock, touch etc - and adding Android install support for nyx. Donate to his patreon here!
    Langerhans - Figuring out the majority of stuff for deep sleep and helping massively with initial bringup.
    Steel01 - Maintaining the Shield TV Lineage trees which ours are heavily based on.
    Nvidia + Nintendo - ❤
    Everyone else who contributed!
    runs great games run great emulators runs great but my bluethoot headphones cut in and out the audio for some reazon maybe a bug anyone having the same problem? apart from that android is running great
    Will be fixed in next OTA
    Running great except "Bluetooth" keeps crashing multiple times after starting up the system.
    But Bluetooth works afterwards.

    Is this a known issue?


    Does anyone has the same issue?
    Will be fixed in next OTA

    I was able to get some logs concerning my broken Wifi. Below is a logcat of me tapping on the wifi icon in the notification dropdown. There's some errors and I hope it helps getting to the bottom of the problem.

    =u:r:magisk_client:s0:c84,c256,c512,c768 tcontext=u:r:hal_graphics_allocator_default:s0 tclass=fd permissive=1 app=com.android.terminal
    02-08 20:40:39.375  6777  6777 I su      : type=1400 audit(0.0:714): avc: denied { read } for name="audio.primary.tegra.so" dev="mmcblk0p3" ino=536 scontext=u:r:magisk_client:s0:c84,c256,c512,c768 tcontext=u:object_r:vendor_file:s0 tclass=file permissive=1 app=com.android.terminal
    02-08 20:40:39.375  6777  6777 I su      : type=1400 audit(0.0:715): avc: denied { getattr } for path="/vendor/lib/hw/audio.primary.tegra.so" dev="mmcblk0p3" ino=536 scontext=u:r:magisk_client:s0:c84,c256,c512,c768 tcontext=u:object_r:vendor_file:s0 tclass=file permissive=1 app=com.android.terminal
    02-08 20:40:39.375  6777  6777 I su      : type=1400 audit(0.0:716): avc: denied { read } for name="bin" dev="mmcblk0p3" ino=26 scontext=u:r:magisk_client:s0:c84,c256,c512,c768 tcontext=u:object_r:vendor_file:s0 tclass=dir permissive=1 app=com.android.terminal
    02-08 20:40:39.727  6781  6781 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 0 <<<<<<
    02-08 20:40:39.733  6781  6781 I AndroidRuntime: Using default boot image
    02-08 20:40:39.734  6781  6781 I AndroidRuntime: Leaving lock profiling enabled
    02-08 20:40:39.739  6781  6781 I /system/bin/app_process: Core platform API reporting enabled, enforcing=false
    02-08 20:40:39.888  6781  6781 D ICU     : Time zone APEX file found: /apex/com.android.tzdata/etc/icu/icu_tzdata.dat
    02-08 20:40:39.906  6781  6781 I /system/bin/app_process: The ClassLoaderContext is a special shared library.
    02-08 20:40:39.930  6781  6781 W /system/bin/app_process: JNI RegisterNativeMethods: attempt to register 0 native methods for android.media.AudioAttributes
    02-08 20:40:39.938  6781  6781 D AndroidRuntime: Calling main entry com.android.commands.content.Content
    02-08 20:40:39.957  6781  6781 D AndroidRuntime: Shutting down VM
    02-08 20:40:39.967  6574  6574 I RenderThread: type=1400 audit(0.0:717): avc: denied { call } for scontext=u:r:untrusted_app_27:s0:c129,c256,c512,c768 tcontext=u:r:hal_cplservice_default:s0 tclass=binder permissive=1 app=com.topjohnwu.magisk
    02-08 20:40:39.971  6574  6574 I RenderThread: type=1400 audit(0.0:718): avc: denied { call } for scontext=u:r:untrusted_app_27:s0:c129,c256,c512,c768 tcontext=u:r:hal_cplservice_default:s0 tclass=binder permissive=1 app=com.topjohnwu.magisk
    02-08 20:40:41.115  3376  3376 I InputReader: type=1400 audit(0.0:719): avc: denied { call } for scontext=u:r:system_server:s0 tcontext=u:r:init:s0 tclass=binder permissive=1
    02-08 20:40:41.972  3376  3911 W NotificationService: Toast already killed. pkg=com.topjohnwu.magisk [email protected]
    02-08 20:40:43.435  3149  3149 I storaged: type=1400 audit(0.0:720): avc: denied { call } for scontext=u:r:storaged:s0 tcontext=u:r:init:s0 tclass=binder permissive=1
    02-08 20:40:43.463  3376  3398 W WindowManager: Unable to start animation, surface is null or no children.
    02-08 20:40:52.965  3376  3376 W WindowManager: removeWindowToken: Attempted to remove non-existing token: [email protected]
    02-08 20:41:00.002  3586  3586 D KeyguardClockSwitch: Updating clock: 20:41
    02-08 20:41:08.115  3376  3412 E LightsService: Light requested not available on this device. 2
    02-08 20:41:08.117  3376  3470 E LightsService: Light requested not available on this device. 2
    02-08 20:41:46.319  3586  3586 D StatusBar: disable<e i a s b h r c s > disable2<q i n >
    02-08 20:41:46.363  3519  3538 D RSMouse : mFeatureEnabled=true  mPackageEnabled=true
    02-08 20:41:48.149  3376  4233 I WifiService: setWifiEnabled package=com.android.systemui uid=10097 enable=true
    02-08 20:41:48.149  3376  3485 D WifiController: StaEnabledState.enter()
    02-08 20:41:48.149  3376  3486 D WifiActiveModeWarden: received a message in WifiDisabledState: { when=0 what=0 target=com.android.internal.util.StateMachine$SmHandler }
    02-08 20:41:48.149  3376  3486 D WifiActiveModeWarden: Switching from WifiDisabledState to ClientMode
    02-08 20:41:48.149  3376  3486 D WifiActiveModeWarden: Entering ClientModeActiveState
    02-08 20:41:48.150  3376  3486 D WifiClientModeManager: entering IdleState
    02-08 20:41:48.150  3376  3486 D WifiActiveModeWarden: State changed from client mode. state = 2
    02-08 20:41:48.151  3376  3376 D WifiP2pService: Wifi enabled=false, P2P Interface availability=true
    02-08 20:41:48.151  3376  3486 I WifiVendorHal: Vendor Hal started successfully
    02-08 20:41:48.153  3376  3486 I SupplicantStaIfaceHal: Starting supplicant using HIDL
    02-08 20:41:48.154  3376  3487 I WifiP2pNative: Registering for interface available listener
    02-08 20:41:48.156  3376  3486 I android_os_HwBinder: HwBinder: Starting thread pool for getting: [email protected]::ISupplicant/default
    02-08 20:41:48.156  3376  3486 E SupplicantStaIfaceHal: Death handler already present
    02-08 20:41:48.161  3068  3068 E [email protected]: Failed to open wlan fw path param: No such file or directory
    02-08 20:41:48.155  3068  3068 I [email protected]: type=1400 audit(0.0:721): avc: denied { read } for name="fw_path" dev="mmcblk0p10" ino=784924 scontext=u:r:hal_wifi_default:s0 tcontext=u:object_r:wifi_vendor_data_file:s0 tclass=lnk_file permissive=1
    02-08 20:41:48.161  3068  3068 E [email protected]: Failed to change firmware mode
    02-08 20:41:48.161  3376  3486 D HalDevMgr: updateRttController: no one is interested in RTT controllers
    02-08 20:41:48.161  3376  3486 E HalDevMgr: executeChipReconfiguration: configureChip error: 9 ()
    02-08 20:41:48.161  3376  3486 E WifiVendorHal: Failed to create STA iface
    02-08 20:41:48.161  3376  3486 E WifiNative: Failed to create STA iface in vendor HAL
    02-08 20:41:48.161  3376  3486 E WifiClientModeManager: Failed to create ClientInterface. Sit in Idle
    02-08 20:41:48.161  3376  3486 D WifiActiveModeWarden: State changed from client mode. state = 4
    02-08 20:41:48.161  3376  3486 D WifiClientModeManager: expected stop, not triggering callbacks: newState = 1
    02-08 20:41:48.161  3376  3486 E WifiNative: Could not get Iface object for interface null
    02-08 20:41:48.162  3376  3376 D WifiP2pService: Wifi enabled=false, P2P Interface availability=true
    02-08 20:41:48.162  3376  3486 D WifiActiveModeWarden: ClientMode failed, return to WifiDisabledState.
    02-08 20:41:48.162  3376  3486 D WifiController: ClientMode unexpected failure: state unknown
    02-08 20:41:48.162  3376  3486 D WifiClientModeManager:  currentstate: IdleState
    02-08 20:41:48.162  3376  3486 D WifiScanRequestProxy: Sending scan available broadcast: false
    02-08 20:41:48.162  3376  3489 I WifiScanningService: wifi driver unloaded
    02-08 20:41:48.163  3376  3486 I WifiScanRequestProxy: Scanning is disabled
    02-08 20:41:48.164  3376  3409 D KernelCpuUidUserSysTimeReader: Removing uids 1037-1037
    02-08 20:41:48.165  3376  3486 D WifiActiveModeWarden: Entering WifiDisabledState
    02-08 20:41:48.166  3376  3486 D WifiActiveModeWarden: received a message in WifiDisabledState: { when=-3ms what=3 target=com.android.internal.util.StateMachine$SmHandler }
    02-08 20:41:48.166  3376  3486 D WifiActiveModeWarden: Switching from WifiDisabledState to WifiDisabled
    02-08 20:41:48.166  3376  3486 D WifiActiveModeWarden: Entering WifiDisabledState
    02-08 20:41:48.166  3376  3486 E WifiNative: Could not get Iface object for interface null
    02-08 20:41:48.169  4206  4782 W Settings: Setting airplane_mode_on has moved from android.provider.Settings.System to android.provider.Settings.Global, returning read-only value.
    02-08 20:41:49.891  3069  3069 I joycond : type=1400 audit(0.0:722): avc: denied { read } for scontext=u:r:init:s0 tcontext=u:r:init:s0 tclass=netlink_kobject_uevent_socket permissive=1


    I also grabbed a dmesg which I have uploaded to my server since it's too large to attach here

    Grepping for "wifi"/"wlan" yields a whole lot of errors, for example:
    service "vendor.wifiloader" exited with status 255

    Naturally, wifi works just fine in Horizon, just in case you suspect faulty hardware
    Thanks, does it only crash after sleep?

    How Can I reboot to hekate ? Thanks
    Reboot and hold vol-
    For me the sleep mode is not working. Battery draining really fast. Anyone with the same problem?
    Should be fixed in OTA
    Today my Lp0 didn't work. I use CPU spy to observe this. This happened after a reboot.

    My switch stayed on with 100mhz all the time but screen was off.

    I turned wifi and bt on and off. This helped. Afterwards my switch went into deep sleep again and stayed there as long as the screen was off.

    Maybe this helps.
    Should be fixed in OTA
    Flash this in TWRP and reboot. It fixes ZL ZR button for the pro controller in bluetooth.
    anyone get safetynet to pass?
    I flashed it and gapps and tested safety net and it failed. Wasn't sure if there was something I missed

    yes I did. To me a while to work out but you have to:

    1. Mans sure you have flashed magisk
    2. In the manager install busybox and magiskhidepropsconf
    3. Reboot
    4. Install termux from the App Store
    5. Open termux and type ‘su props’
    6. Option 1 then follow the instructions to change the fingerprint to nvidia shield tv pro 2019
    7. Reboot and it all works
    are the devs of this rom working on an update? last update is now 3 weeks old, wonder if we see some new updates in the future?

    Something that was years in the making and you're asking for ETA after 3 weeks? Seriously, dude?
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone