Tutorial
Updated
Yet another Android 8.1 LineageOS tutorial - How to get Android on the Switch!
Thanks to the hard work and effort put by the Switchroot team, we now have the chance to run Android on our Switches, so for those who yearned for it for so long rejoice, for the wait is over!
With that being said though, do keep in mind that this is an early release, hence bugs,crashes and slowdowns are to be expected.
In case you didn't know, LineageOS is a continuation of the old, well-known CyanogenMod's legacy (that got discontinued back in 2016), which means it comes out of the box with many nifty features usually not found in stock Android, thus allowing to customize and adjust your system to your very own preferences and liking.
This guide aims to provide a comprehensive and understandable how-to to the reader seeking help, should they stumble into any possible difficulties setting up android. In addition to that I am hoping to keep all Android-related issues and inquiries to this thread, helping reduce the number of questions posted by users on here. Note that this tutorial will only cover the initial Android installation and setup. For help with rooting/modding etc consult other guides.
Here's a full list of features as shown in the original XDA thread.
Without further ado, let's get started!XDA Thread said:
- LineageOS 15.1 - Android 8.1 Oreo
- Based on the Nvidia Shield TV trees
- TWRP pre-installed
- CPU and GPU performance profiles
- Works in handheld and docked mode
- Audio is supported
- Joycons connect via Bluetooth, also in handheld mode
General Warning
As per usual, proceed with caution. By running unsigned code, modifying your console and doing other things of this manner, you run the risk of damaging/bricking your system.Never rush into doing something you aren't sure of, and don't hesitate to ask for help. However, no GBAtemp member or affiliate of the Switchroot team will be held liable and responsive for any damages that might occur along the process, you take full responsibility for your actions. Feel free to ask but, be civil and DO NOT backlash at others.
As per usual, proceed with caution. By running unsigned code, modifying your console and doing other things of this manner, you run the risk of damaging/bricking your system.Never rush into doing something you aren't sure of, and don't hesitate to ask for help. However, no GBAtemp member or affiliate of the Switchroot team will be held liable and responsive for any damages that might occur along the process, you take full responsibility for your actions. Feel free to ask but, be civil and DO NOT backlash at others.
Prerequisites
- A Nintendo Switch assuming it's an early iteration non-patched unit (see here, or refer to this guide.)
- The required LineageOS image file. (either the 16GB, the 32GB .,64GB or the 128GB image file) choose the one that corresponds to your SD card's file size capacity.
- A reliable and working SD card of a minimum capacity of at least 16GB, though 32 GB and more are preferable(use H2testw to confirm whether your SD card is legit or not.)
- The additional Shield-ifier file
- balenaEtcher--what we will be using to flash the image file onto our SD cards. Get it from this link
- A SD card adapter if youre not using a laptop/your computer doesn't come with one by default and/or if it's broken.
- An USB C to A cable( for pushing the payloads from your PC)
- Hekate 5.0.1 and latter - Get Hekate from here (what will be used to boot up Android)
- The Switch dock (optional, only needed if you wish to connect it to your TV)
- TegraRCMGUI, get the portable or the .msi installer, whichever best suits your needs. Additionally any other means of injecting payloads can be used.
- The OpenGApps files which can be downloaded here
Setting up and preparing the SD card
Whether this can be dual booted with linux or emummc i don't know either sadly, so use a spare SD card that you might have lying around somewhere.
Download balenaEtcher from from the link given in the link above.
Click on the installable and follow the on-screen instructions and let the app finish installing. Once Etcher is done installing, launch it, click on the big blue 'Select Image" button and browse to where you have put your downloaded image file. Like the official XDA thread suggests, you might use an image file smaller than your card's size (ie using a 32GB image on a 64GB SD card) resulting in a larger free storage space capacity thereof. Likewise, extracting the image out of the archive is not a necessity as Etcher handles compressed .imgs just fine (so the XDA thread implies).
Once you've chosen your desired image file, Select the drive you wish to flash the image to (if it's not chosen by default) and then click Flash
Now, wait and be patient. It might take approximately from 30 minutes up to an hour and a half depending on your SD card's write spped, though it's not always subject to that, as many other factors may come into play that would result in a slowdown such as: overall state of the PC, if it's an old potato PC etc.
Regardless wait, and let Etcher do it's thing on the flashing/verifying part. Note that you should have backed up everything like i aforementioned because this process overwrites data, deleting anything in the process.
After Etcher finishes with the flashing, youll see two new partitions on your SD card. If Windows prompts you to format any of them DO NOT do that.
Before proceeding onward to the next step make sure you've already got up and running TegraRCM (or any other tool you use to inject payloads onto your switch) the Nintendo Switch USB driver and their other respective dependencies.
If you don't know how to access RCM there's many guides out there such as this FAQ
If you don't know how to access RCM there's many guides out there such as this FAQ
Installing GApps & dependencies and finalizing setup
For a full android experience you shoud get the OpenGApps files that we will be flashing to our system. Select the ARM64 uner Platorm, the Android 8.1 version (as that's on what this android rom is based on) and under the variant select it to your liking, whether you want the full GApps package or just some of the apps.
While the switch can run without these, would you want a barebones minimal android experience?
On a side note, YouTube and Google Play store won't function without those.
Additionally download the shield-ifier.zip file. That makes it possible for your switch to be detected as a NVIDIA Shield, how awesome right?
Once everything downloads, copy them over to your SD's FAT partiton. Everything should be put like this:
Use your USB C to A cable to connect your switch to the PC, but make sure it's already put on RCM mode.
Next fire up TegraRCM GUI (or whatever tool you use inject payloads into your Switch and push the Hekate 5.0.1 payload.
You'll be greeted by hekate's fancy new UI and you should tap on "More Configs" afterwards.
Then tap on the "Switchroot Android" logo.
Otherwise Android will not be installed as it should, hence resulting in many problems.
Upon booting up the TWRP recovery menu, you'll be prompted to allow writing to the system partition or keeping it as a read-only.
Tick the Never show this again box and swipe to the right to unlock system write premission.
Once that gets taken care of, click on "Mount" then tick the following "System" and "SD Card". By doing so it ensures that our GApps and shield-fier zip packages get installed as they should. While still there also select the external storage as the install location.
Next click on the "Install" button. Browse to where you have placed your files and install the GApps first.
Once it's done installing, wipe cache/dalvik and then head back to the main menu and then install the additional shieldifier.zip file,then do the wipe cache/dalvik as per usual.
On a last note. If TWRP prompts you to install their app do so by swiping right. With that said though, sometimes that app causes the switch to hang on a blackscreen endlessly so better avoid it altogether
After all of those installed files are taken care of now you shouldn't boot android quite yet.
Power your console down and connect it to your PC again, in order to inject the hekate payload once more.
After hekate boots, tap on more configs>Switchroot Android.
Unlike before this time around you don't need to hold the Volume + key any longer.
During the initial first time boot, it should take about 10 minutes or more as the android is being configured. Subsequental boots shouldn't take that long, so don't worry.
Do keep in mind that it's still a beta and many bugs and hiccups are prevalent. Not everything should work as it should.
For instance, i had this particular issue with the on-screen keyboard. It kept acting up in an odd manner, not responding to input or being over being over sensitive.
Refer to the FAQ and known bugs below:
FAQ and Known Bugs:
Official XDA thread said:FAQ
Q: How to switch performance profiles?
A: Go to Settings -> Battery -> Power Profiles. The options are Balanced = 1 GHz CPU / 468 MHz GPU, Quick = 1.4 GHz CPU / 768 MHz GPU and Performance = 1.7 GHz CPU / 920 MHz GPU. Keep in mind that the high performance profiles use MUCH more battery.
Q: How will updates be done?
A: For updates, flashable zips will be released.
Q: Can we use TV mode?
A: Use HAL launcher from the Play Store to run apps in TV mode.
Q: Nvidia GameStream doesn’t perform well, what to do?
A: Try using Moonlight instead.
Q: Does Magisk work?
A: Yes, just flash it in TWRP
Q: I get an error about „invalid architecture“ when trying to flash GApps
A: Make sure you mounted System in TWRP
Q: Does this work on any Switch?
A: You will need to be able to boot into hekate. If you can do that, your Switch is compatible.
Known bugs:
Official XDA thread said:
- Deep sleep, so battery life is not great
- Auto rotation as we haven't figured out how to talk to the sensor yet
- Screen off in dock
- Charging is not detected, but console still charges
- Some apps don't handle joycon inputs correctly
- The touchscreen sometimes detects touches even when your finger is just floating over the screen
- There is a system process ANR on boot. Just click "Wait“ and it won’t happen again until next boot
- Screenshots do not work
- WiFi may randomly stop working. If this happens just reboot
- If TV looks odd and grainy when docking then redock a few times.
- No TV keyboard that can be used with gamepad
- SELinux is disabled
- You can’t access the FAT32 partition of the SD card on macOS. Windows and Linux works.
- You tell us
Additional Information
Code:
ROM OS Version: 8.x Oreo
ROM Kernel: Linux 4.x
Version Information
Status: Beta
Current Beta Version: 1.0
Beta Release Date: 2019-07-27
Updates/Addons
Make sure to flash that in TWRP.Official XDA thread said:
- Joycon Fix: Enables L3/R3 and reports the sticks as analog, which should fix games like GTA: fix-joycon.zip
- Reboot2Payload android app which let's you reboot instantly without much hassle.
Like the guys officially stated updates will be handed out as zip files, to be flashed via TWRP, and i will be updating and maintaining the guide accordingly.
If you happen to find any bug, report them at their Official XDA thread.
Last edited by NoNAND,