• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[ROM][UNOFFICIAL] switchroot Android 10

Search This thread

prrlhkr

Member
Dec 1, 2014
16
41
hello lads! trying this one for my daugther´s swtich..

quick question, before doing all of this, after installing, can i just eject the sd card and boot into the normal swtich os?

or do i need to do something else to be able to do that.

i want to install android so she can play roblox, but i would like to be able to play some mario once in a while.

No problem booting into the normal switch firmware. No need to eject the microSD card or anything else. Just click "shut down" from android and the next time you power on the switch it'll boot original firmware.

As a matter of fact, by default when you start the switch it will boot original firmware. To start android (or any other custom OS) you actually have to fake the switch into recovery mode and inject a payload. This process involves bridging two pins on the right joystick connection then plugging the switch into a computer every time you want to start android.

On this note, I highly recommend purchasing a RCM loader that can be used to start recovery mode and inject a payload so you don't have to plug your computer into it every time you want to start android.
 
I have a few questions, I use this on my switch to remote play my series x and also my ps5 and I use the hori split pad

Works fine with Xbox games pass app, actual Xbox app, as soon as you connect via remote play hori pad stops working

If the screen locks for whatever reason then only one side of the rail con stays responsive so I have to restart the os for both to work again.

Is there any fix to make it work with Xbox app remote play and not just games pass

Also any fix to make sure that both sides of the hori pad still work after screen lock? I have tested with normal joycons and these issues are not there it's only with hori.

Works perfectly with the psplay app though

Finally my mic on my Bluetooth headset just will not work yet it works on my phone and all other devices, just not lineage on the switch

Any help would be appreciated!
 
Last edited:

susetoyix

Member
Aug 17, 2019
10
1
However, is there any way to disable the right joycon as a cursor? I there is a few threads asking if this can be done but I don't see any answer in how to do so or if there is something we can flash to do this. Thanks!
enabled without any option to turn it off and then combined the infamous joycon drift. it is very frustrating. im surprised not much has complained about this
 

ProducingIt

Member
Aug 6, 2021
5
0
Hello. Every time I try to boot into Android 10 after flashing it on my switch it never boots. It just shows a black screen. I have seen some people with the same issue and have tried their fixes but it has not worked for me at all. I've tried to reformat my sd card and install all the needed contents inside it for over 15 times now, trying to do things different each time to see what is causing this issue and I cant seem to find any sort of solution. Please someone if you can help that would be amazing.
 

dieselboyx

Senior Member
Jul 13, 2010
54
0
Hello. Every time I try to boot into Android 10 after flashing it on my switch it never boots. It just shows a black screen. I have seen some people with the same issue and have tried their fixes but it has not worked for me at all. I've tried to reformat my sd card and install all the needed contents inside it for over 15 times now, trying to do things different each time to see what is causing this issue and I cant seem to find any sort of solution. Please someone if you can help that would be amazing.

Try extracting packages using winrar instead of 7zip. This helped me, and spent hours installing, formatting and retrying.
 

dieselboyx

Senior Member
Jul 13, 2010
54
0
You could try asking in the discord server. They were able to help me out, but essentially make sure you use the Android build the thread recommends.

I used a sandisk extreme card and it has been pretty quick.
 

Li33f

Member
May 17, 2015
17
2
Hello. Every time I try to boot into Android 10 after flashing it on my switch it never boots. It just shows a black screen. I have seen some people with the same issue and have tried their fixes but it has not worked for me at all. I've tried to reformat my sd card and install all the needed contents inside it for over 15 times now, trying to do things different each time to see what is causing this issue and I cant seem to find any sort of solution. Please someone if you can help that would be amazing.
You have successfuly accessed to TWRP already using the volume + Button ?
 

ProducingIt

Member
Aug 6, 2021
5
0
It was my actual sd card that was the problem. When I tried using one by sandisk instead of samsung it booted on the first try! Its a faster micro sd card so if your having trouble with booting into android try getting a faster sd card.
 

Johneyap

Member
Jan 2, 2011
6
0
Canada
If anyone is having issues flashing, or booting. I found that mini tool partition didn't format my card properly, it was fat32 but not the right type

I downloaded guiformat from gbatemp, after mini tool I ran guiformat and the flash works everytime and perfectly, fast boots etc....

I went from a 10m startup to 30seconds

Some odd quirks, my battery will be 90% in Hekate, I goto android, it's 100% then it drops really fast and starts acting normal at the correct percentage. Just a strange quirk not an issue
 

ApexAftermath

Member
Mar 2, 2011
20
0
Does anyone have any solutions for the Hori Split Pad Pro issues? Specifically how one side goes dead if the screen turns off, and disconnecting and reconnecting just makes the other side stop working.

I tried a possible solution from months ago in this thread and it didn't help. Just hoping someone has a fix!
 

Techform

Member
Jul 7, 2021
5
0
there's something I'd like as a flashable zip for this that would make labo VR's button (the cardboard one witch opens the pause menu in labo VR) to work as the button in google cardboard apps and to make the brightness sensor tell the google cardboard apps that the switch is in the viewer because without that compatibility is spotty at best (it'll work with ivry but not the official google cardboard app) I know this would be for a niche audience but I'd still like it, asking here because I don't know where to ask and this doesn't really need to be official.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 70
    Introduction
    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.

    Features
    • 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.
    • RSMouse support for controlling a mouse cursor with your right stick
    • 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.

    Downloads
    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.​


    Installing
    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.
    Steps:
    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.
      nyx20890123_202109.png

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

      nyx20890123_204928.png
    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.
    Updating:
    • 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.

    Changelog:
    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.
    OTA 10/05/2021:
    • Dramatically increases deep sleep battery life.
    • Adds support for controlling the mouse cursor with a controller's right stick.
    • Fixes various controller input issues with procon and the D-Pad in minecraft.
    • Fixes broken hori joycons.
    • Improved app launch times.
    • Adds support for more ethernet -> USB adapters.
    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/

    Sources
    https://gitlab.com/switchroot/android
    https://gitlab.com/switchroot
    See manifest repo for build instructions.

    Credits
    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!
    6
    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?

    thx

    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.

    Code:
    =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


    EDIT:

    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
    5
    Flash this in TWRP and reboot. It fixes ZL ZR button for the pro controller in bluetooth.
    5
    I'm unable to connect to wifi.
    4
    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