[ROM][UNOFFICIAL] switchroot Android 10

Search This thread


Senior Member
Jan 31, 2019
any cool tweaks to browse the web without using touchscreen? the lean back keyboard works good and it will be nice to have something to use with it, like a mouse or something for complete controller usage


New member
Aug 26, 2016
Hi all,

I managed to follow the instructions and boot up - but I have had issues with the Intro / Setup bit. Either I get stuck in a loop where its constantly looking for Updates or I get errors saying "the System UI keeps crashing" and get options App Info or Close App.

Anyone else had these?


Sep 23, 2012
Dear friends,

I am very grateful for your attention in reply. One last piece of information (if you know). To choose the best card size, can you tell me which systems the Switch emulates well? (because of the size of the roms I intend to put on the card). Would it arrive on ps1? saturn? ps2? cube? wii? In that case I think of a 256Gb card. Or does it end in 16-bit environments and is it already bad? Because there the card can be 32 or 64GB. Thanks :)

Card size doesn't matter, you can use as low as 16GB and up to 2TB.
It emulates everything up to NDS (3DS not quite there yet), PS1, PSP, Wii (but that's pushing it). Everything older is completely fine.


New member
Mar 23, 2016
So I followed the guide and got everything working (thanks so much).

However, I then powered off, restarted, and now when trying to relaunch Android 10 via Hekate ( More Configs -> switchroot Android 10) I'm hard stuck on a black screen.

Any advice? Pretty new to this business.


Senior Member
Oct 31, 2010
It looks like encryption isn't working? I was able to enable encryption and get to the point where it asks for and accepts my PIN for full-disk encryption, but it just hangs at the boot animation after that.


Jul 10, 2011
I've been having issues with the switch not waking from sleep. Is anyone else having this problems with this? Sometimes it will run fine for days before refusing to wake and sometimes the first sleep after a restart will cause it to become unresponsive. I tried a few suggestions that I saw such as using the volume buttons or removing the joycons before sleep, but I still get the same problem.
  • Like
Reactions: lesmanax


New member
Feb 20, 2021
After applying OTA 12/02/2021, the other grip controller becomes unresponsive when the HORI grip controller is reconnected.
05/02/2021 build confirmed that this is not happening, so I am unable to update to 12/02/2021.
  • Sad
Reactions: djasmithxda


Senior Member
Apr 13, 2011
On the latest OTA, I'm having an issue where the Hori Split Pad Pro doesn't work after coming out of sleep. It seems like either one controller or the other works but not both. If I take one side off and put it back on again it will work but the other side stops. I was able to do a reboot and it started working again. Something doesn't seem to get re-initialized correctly from sleep though.

Any ideas what this could be or a workaround? Is there some special script that could be triggered? Again, this is on the Split Pad Pro which is rail-only.
  • Sad
Reactions: djasmithxda

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