It will hardly come as a surprise that us geek folk over at GSMArena love the Nintendo Switch. Less surprising still is the fact that we love Android. Put the two together, sprinkle-in a hefty dose of tinkering and you get a janky "fusion" recipe that is just hard to pass by. Running LineageOS on Nintendo's amazingly popular handheld/home console is actually nothing new. A bunch of amazing people who refer to themselves as the switchroot group have been working hard on getting alternative platforms running on exploitable Nintendo Switch units, including Ubuntu, forks of LineageOS, originating from the Nvidia Shield TV branches of Android. I have personally been running their older Android 8.1 Oreo, LineageOS 15.1 build for a good few months now on my personal Switch, as a secondary OS and was delighted with the results.
As you can imagine, it's a janky experience through and through, but one that against all odds works and has given me access to a whole world of excellent Android games, multimedia and even productivity packages, as well as trendy cloud and remote gaming platforms like GeForce Now and Steam Link on my favorite carry-on device. Recently, the switchroot team put out an Android 10 ROM, based on LineageOS 17.1 which massively improves the experience. We decided to do a quick review of what it's like running it on a Nintendo Switch. We won't be offering a guide for how to install Android on your Switch, since the switchroot group already has an excellent one over at XDA's forums. As for general Nintendo Switch exploits and hacking, here and here are great places to start. Just to save you some time, we will note that for now only older, original Nintendo Switch units are easily exploitable. No Switch Lite and no new battery-refreshed Switch units.
Let's kick things off with the official changelog, since it gives you a good idea of the major improvements and bug-fixes, as well as clues for the problems you might face.
- Android 10 based on Lineage 17.1
- OTA updates.
- Full Joy-Con and Pro Controller support with analog sticks and rails.
- Hori Joy-Con support.
- Deep sleep that can last for weeks.
- An Android TV based build.
- Reworked fan profiles for quieter operation.
- Optimised dock support with resolution scaling.
- A rewritten charger driver supporting USB-PD and third party docks.
- Optimised 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.
- Shield games are broken, DO NOT BUY THEM.
- Sleep may not work on a small proportion of devices, you can flash the alarm disable zip to try and mitigate this.
- BT audio might stutter on some headphones.
- You might need to reboot for Bluetooth to work on a small proportion of devices.
- Default keyboard can't be used with a controller.
- Some apps don't like the Joy-Con D-Pad.
In no particular order, here are some of our impressions of the new Android 10 ROM on the Nintendo Switch.
First and foremost, the new ROM is much smoother and quicker all around. Boot time is literally cut in half, compared to the older Android 8.1 build. Menus look and feel smoother and more responsive. Stutters and crashes are far less frequent. Though they still occur from time to time.
Additionally, the Android 10 ROM has full built-in support for Nintendo's Joy-Cons and the Pro Controller. That includes proper analogue stick operation, as well as wired operation for the Joy-Cons. In the old ROM, Joy-Cons only worked in Bluetooth mode and had to be re-connected on every boot. They could still be docked for charging, but that was it. Plus, in order for them to operate as a single controller, rather than two separate ones, a complicated per-app fix was required. And even then some apps and games refused to play ball.
In the new Android 10 ROM controllers just work. Every single game with controller input we tried, including emulators and odd setups, like GeForce Now and Steam Link just worked automatically. This lack of hours and hours of fiddling and debugging is, if you'd excuse the pun, a game changer.
Power management is now a lot nicer as well. With the previous Android build, the Switch did charge when plugged-in, it was only at 5W basic USB charging, while now proper PD is supported. It's still not as fast as charging in the default Nintendo OS, but it's miles better. Also, Android deep sleep actually works now, so you can just single press the power button and leave your console with Android booted for days upon days, whereas previously the battery would drain in a few hours of just idling.
Wi-Fi is more stable and faster and so are various third party Bluetooth devices. Nintendo still doesn't offer official Bluetooth audio support, so it's kind of amazing to finally be able to achieve that with this Android port.
Docked mode is another greatly improved part. Previously, only the official Nintendo dock was properly supported. With the Android 10 ROM we had a fluent experience with three different random Type-C dongles. All of them worked with HDMI output and USB input. Plus, there is now built-in resolution scaling, fine display rotation controls and you can even force Android 10 desktop mode from the developer menu for a pretty competent desktop experience. All of this was just vaguely possible with the previous ROM and all through third-party apps.
If plan on using your Switch in docked mode, you should probably also get the Shield TV remote companion app form the Play Store and run it on your phone, since that works now, as well. It is also worth noting that there are two different Android 10 switchroot builds - one is just a general Android one, called "Tablet", while the other is based on Android TV. The latter offers a slightly better visual experience in TV mode, but lacks the full Android app library. We personally like the general one better and the following UI shots are taken from it.
The UI itself is very close to AOSP as is to be expected. However, since this is LineageOS, there are various customization options and tweaks scattered here and there. You can change the navigation freely, with the option of enabling gestures, which weren't present before. Task bar icons can be toggled on or off and the placement of things like the clock adjusted. Buttons can be mapped to quick activities. The built-in rotation support is a great addition.
By the way, whatever is missing you can likely sideload easily, especially since there is easy root method and built-in Magisk support on the Android 10 ROM. You can tweak the modules, if that is your thing. Just be cautious not to interfere with the plethora of things that are there to keep the ROM functioning.
And function is probably the best word here. Though most things work and the experience is miles better than what the older Android 8.1 ROM offered, don't expect a powerhouse.
Nvidia's Tegra X1 chipset, sitting at the heart of the Switch, came out way back in 2015. It is manufactured on a 20nm TSMC manufacturing node, though its newer 2019, Tegra X1+ revision shrinks that down to 16nm. On the CPU side of things, you technically have eight cores, though only four of these are actually usable and the rest have even been removed from later technical documentation. It practical terms, there are four Cortex-A57 core with a maximum frequency of 1.9 GHz. Just to illustrate what kind of performance we are dealing with, here are some GeekBench pure-CPU runs.
Higher is better
Higher is better
As you will notice, we are including results from both the older Android 8.1 switchroot ROM and the new Android 10 one. The increase in performance is noticeable and great to see, since it is effectively "free" in this case. It is also worth noting that both the original switchroot ROM and the new one have dedicated Performance modes. The old one featured a slider with a few positions, while now this has you get the more sensible "max performance" toggle. It is only recommended to use it while the Switch is docked or charging, since the extra power draw can be damaging to internals, especially the battery. But, again, it provides a notable boost in performance.
Higher is better
But CPU was never the highlight of the Tegra X1 experience. Instead, its key selling point has always been the GM20B GPU - a special modified chip, based on the company's PC Maxwell GPU architecture. The same one powering some GeForce 700, 800M and 900 series PC GPUs. Though, of course, with some limitations to fit withing the far more modest power envelope. This is the true source of gaming power for the X1 and consequently the Switch. It is what enables the excellent graphical experiences native to Nintendo Switch and has enabled intriguing crossover ports, like that of Half Life 2 and the Source Engine to Android, specifically for Tegra devices.
Higher is better
This is all great, but none of the general graphics benchmarks available for Android, nor the game engines themselves, support Nvidia's specific instruction set and modes for the Tegra GPU. Instead, the X1 is forced to operate in more general OpenGL ES and Vulkan modes, where it doesn't deliver nearly as impressive performance.
Higher is better
Still, toggling the performance mode on makes some difference and results in, let's say, respectable numbers, considering the hacky setup we are dealing with. Plus, there is an interesting menu inside the developer options of the new Android 10 ROM that allows you to switch between two different graphics drivers on a per-app basis. We found that some particular games and apps had issues with one, while working great or at least better with the other. Vulkan still seems to perform slightly better on the old ROM in synthetic tests.
Also, there is active effort to get CUDA support up and running. Though, even if that does become reality, unless someone can convince the likes of Unity to open-up easy Android support for it as well, it won't really be of much use. There is a much brighter future to switchroot's efforts to bring CUDA to its Ubuntu Nintendo Switch build instead.
So, what can you actually do with Android 10 on your Nintendo Switch? Well, first and foremost, game, of course. We tried a wide selection of popular titles with varying degrees of success. From the FPS shooter pool, we were able to easily run Call of Duty Mobile, as well as PUBG, with medium settings and decent framerates. We would have loved to have a better measurement, but unfortunately even with root access none of our FPS measurement tools worked. We did not manage to get Fortnite working, since the Epic Games installer does not recognize our hardware as supported. There are convoluted ways around that, but they seemed too much even for me.
Since Rockstar's GTA series is a long-time favorite of this particular reviewer and notably absent from the Nintendo Switch native library, the Android ports of GTA 3, GTA Vice City and GTA San Andreas were a logical next stop. All of these worked amazingly on the new Android 10 ROM. Since I spent a fair amount of time playing these on the older Android 8.1 ROM as well, I can safely say that the frame rate is better now and the experience is smoother overall. Another big boost in user epxerience is how the Joy-Con controllers simply work in hard-wired mode with full analogue stick support.
We were equally delighted by the quality of the platforming experience we got form the Android 10 Switch as well. Since most Android titles with proper controller support tend to fall under this general "arcade" category, it only made sense to test titles like Oddmar, Evoland 1 and 2, Grimvalor, Inside and Oceanhorn. All of these worked great with playable frame rates. Mind you, the 720p native resolution of the Switch likely contributes a lot to the smooth experience here. Either way, we'll take it! Minecraft on Android was one of the least playable native titles we tried.
At this point I decided it makes sense to take the whole thing another level deeper and try some emulators on the Android 10 Nintendo Switch, but honestly those didn't work out. Graphical glitches, stutters and other hiccups were common. There is just too much complexity going on in the Android build already and we are just piling-on emulation imperfections.
Emulating the Sony PlayStation 2 with the DamonPS2 emulator resulted in something in the ballpark of 15 fps averages with stark lows in the sub 10 range and highs in the 30 plus with popular titles like God of War. Unplayable for the most part. The same was unfortunately true of most titles we tried with the Dolphin emulator, especially with Wii titles. Some Game Cube games did run, but at the end of the day, we would not recommend going the Android route for emulation on a hackable Nintendo Switch, since there is an abundance of distinctly better and more efficient emulators available as homebrew in the native Nintendo OS.
Last, but definitely not least, Android 10 is an amazing way to get access to trendy game streaming/cloud gaming solutions, otherwise unavailable to the Nintendo Switch. GeForce Now works splendidly, even better than before with fewer network issues. The Joy-Cons and Nintendo Pro controller get recognized and seamlessly mapped to games. The ROM even comes with an NVIDIA Games app pre-installed, as if it's a proper Shield device.
There are free titles in there for both cloud streaming and installing locally. Just don't grab any of the Shield specific Android games yet, since they don't work at the moment. Here's hoping a fix comes soon and one that makes use of the new ROM's OTA update feature! In any case the NVIDIA Games app is a pleasure to use and you don't even have to run in high performance mode. Same goes for the Steam Link app and streaming from a local computer. Though, you do need to take care that your home network is fast and lag-free enough for the experience to be as good.
A big reason one might want to run Android on the Switch is versatility. There is definitely plenty of that available with access to the rich Android app ecosystem on a device that excels at both handheld and docked use and can even pull off some decent desktop productivity with the right peripherals attached. Frankly, though, if you are looking for somewhat of a laptop replacement to lug around and potentially do some work on, we would definitely suggest exploring the switchroot Ubuntu project instead. Android's desktop mode and free-form window support aren't perfect even in the best of implementaions and this is far from a stable bug-free setup.
We wouldn't say the Android 10-running Switch excels at multimedia consumption either. It is massively better than what Nintendo natively offers, for sure, which is still limited to very basic homebrew video and music players and a lone YouTube app. With Android 10 installed, you can do all of the local and network playback you desire. Streaming, however, has some notable caveats.
For one, the ROM only has Widevine L3 certification, which means that you are limited in terms of resolution in apps like Netflix and Amazon Video. The standard Netflix Android app only offers SD quality, whereas the significantly buggier, but still workable Android TV version does go up to HD. Admittedly, if you intend to just consume media on the Switch and its 720p display, neither is a massive dealbreaker. Hooking it up to a tv as a Netflix box though is a clear no-go.
The standard YouTube app is limited to the native 720p resolution in handheld mode, but can go up to 1080p when docked or when the resolution is adjusted manually. If you don't want to go through that hassle, you can always get a third-party unofficial YouTube client like Newpipe and get every resolution there is. To our surprise, the Switch had absolutely no trouble playing back 4K@60fps in YouTube.
We also tried Plex with a home server with plenty of 4K and HDR content available. Even though direct playback was enabled, the Switch could only go up to 1080p without HDR in both handheld and docked mode and thus required transcoding. Again, not a massive issue, but hardly worthy of a recommendation as a multimedia box. You might have slightly better luck with certain services and resolutions if you go for the alternative Android TV-based build that switchroot offers, but then some other apps will likely start experiencing issues.
We realize that while massively cool in a distinctly geeky way, running Android on a Nintendo Switch is limited in real life practicality. However, it is undeniable that the appeal is there. There is just something about hacking together a uniquely versatile gadget that gets many excited. Us definitely included.
Is it a perfect experience? No, not by a long shot. What this new Android 10 ROM is, however, is a massive improvement over the group's previous valiant efforts in bringing more utility to a massively-popular hardware platform. Since that was the goal in the first place - we'd say job well done.
It's crazy how people on here can tell me what a diode in a camera does but cnt understand that when you install lineage OS os an unpatched system, it doesnt touch the nand.
I do appreciate Nintendo's ability to make old hardware function good and well. But I agree, they should be using newer hardware, especially for something as a switch.