Tutorial [NOOB-Friendly] Yet another Android 8.1 LineageOS tutorial - How to get Android on the Switch!

Guide last updated on September 22nd to add the additional Reboot2Payload android app.

NoNAND

Give me back my legions!
OP
Member
Joined
Aug 22, 2015
Messages
2,280
Trophies
1
Location
Somewhere
XP
4,931
Country
Albania
PicsArt_07-28-10.18.53.jpg
Running Android on the Switch has always been a demand by many fans and enthusiasts of the switch homebrew scene. The Nintendo Switch, being a "tablet-like" device, creates a suitable environment for running Android on it. Moreover, with the switch having a custom NVIDIA X1 chipset porting Android to it made the whole process a lot simpler.
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.
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
Without further ado, let's get started!

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.


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


etcher.png
First and foremost i would recommend you to backup any data you might be storing in your SD card, as this process will wipe out any data that may be present on it. Furthermore i strongly advise not to use a SD card that you've currently set up emuNAND on, (especially the partition type of emuNAND), as i reckon this might mess up the partition.
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



Installing GApps & dependencies and finalizing setup

partitions.png
Just as i mentioned above, now there will be two partitions on your SD card. The FAT one and the RAW drive.
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:
files.png
Safely eject your SD card, take it out of your computer and put it back into the Switch.
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.
20190728_204205.jpg
During the initial phase of the LineageOS android installation the VOL+ button must be held until the TWRP menu pops up!
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.


20190728_151354.jpg
And well guys, that concludes everything. If you followed the steps above you should have android running on your switch by now.
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

Official XDA thread said:
Make sure to flash that in TWRP.
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,

LooP403

Well-Known Member
Newcomer
Joined
Apr 12, 2018
Messages
76
Trophies
0
Age
18
XP
388
Country
United States
Do you know how long it's supposed to take for the initial boot into twrp? It just never seems to boot for me
 
  • Like
Reactions: NoNAND

LooP403

Well-Known Member
Newcomer
Joined
Apr 12, 2018
Messages
76
Trophies
0
Age
18
XP
388
Country
United States
Did you follow the steps as you should.
TWRP boot up should take something in between 2- 4 minutes.
PPFFTT my bad. I guess i was just getting impatient and ended it too soon. I didnt think it would take so long to boot that
 
  • Like
Reactions: NoNAND

NoNAND

Give me back my legions!
OP
Member
Joined
Aug 22, 2015
Messages
2,280
Trophies
1
Location
Somewhere
XP
4,931
Country
Albania
Out of curiosity, are the downloads supposed to be really slow from the Play Store? Cuz I don't enjoy waiting 10 minutes for Google Play Music x.x. Not sure if my internet is potatoing though.
Download issues have not been prevalent, least said not until now for me. Despite that though, I faced some minor issues only once wherein the apps I tried to download would hang in the "Download Pending" part but, that got resolved on it's own somehow. Now everything downloads as it should speed-wise. I have a internet connection of 50-100Mbps speed though it's subject to change, at times resulting in slowdowns (LTE signal quality drops on my phone)
@gnmmarechal tried connecting it on a different network?
 

NoNAND

Give me back my legions!
OP
Member
Joined
Aug 22, 2015
Messages
2,280
Trophies
1
Location
Somewhere
XP
4,931
Country
Albania
Guess I'll have to try that, but apps are behaving in a strange way. Play Music only shows a handful of albums I don't even remember adding to my account.

Hmm, it's slowly, *very* slowly adding the rest. Gah. This is pretty annoying.
Yes sadly some apps do misbehave in an odd manner.
if you happened to notice already how the touchscreen acts up as well.
it's an early release so things like that are expected to ocur.
 
  • Like
Reactions: tabzer

essm1988

Member
Newcomer
Joined
May 9, 2019
Messages
16
Trophies
0
Age
34
XP
146
Country
Italy
You can get a streaming app to play any pc games

Just install parsec at android and pc

I have played ps2 games by pcsx2 emulator currently
 
  • Like
Reactions: NoNAND

NoNAND

Give me back my legions!
OP
Member
Joined
Aug 22, 2015
Messages
2,280
Trophies
1
Location
Somewhere
XP
4,931
Country
Albania
You can get a streaming app to play any pc games

Just install parsec at android and pc

I have played ps2 games by pcsx2 emulator currently
Or alternatively you might try moonlight, particularly if you own a PC that has a NVIDIA GPU and GeForce experience installed.
It utilizes the built in Game Shield streaming feature making it a lot easier to set up.
 
  • Like
Reactions: essm1988

Der_Blockbuster

Well-Known Member
Member
Joined
Mar 2, 2016
Messages
864
Trophies
0
Age
22
XP
2,600
Country
Germany
Running Android on the Switch has always been a demand by many fans and enthusiasts of the switch homebrew scene. The Nintendo Switch, being a "tablet-like" device, creates a suitable environment for running Android on it. Moreover, with the switch having a custom NVIDIA X1 chipset porting Android to it made the whole process a lot simpler.
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!

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.


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


First and foremost i would recommend you to backup any data you might be storing in your SD card, as this process will wipe out any data that may be present on it. Furthermore i strongly advise not to use a SD card that you've currently set up emuNAND on, (especially the partition type of emuNAND), as i reckon this might mess up the partition.
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



Installing GApps & dependencies and finalizing setup

Just as i mentioned above, now there will be two partitions on your SD card. The FAT one and the RAW drive.
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:
Safely eject your SD card, take it out of your computer and put it back into the Switch.
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.
During the initial phase of the LineageOS android installation the VOL+ button must be held until the TWRP menu pops up!
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.


And well guys, that concludes everything. If you followed the steps above you should have android running on your switch by now.
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:



Updates/Addons


Make sure to flash that in TWRP.
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.
Yeaaah NoNand, very well made tutorial! I like it!
Love to you!!
 
  • Like
Reactions: NoNAND

essm1988

Member
Newcomer
Joined
May 9, 2019
Messages
16
Trophies
0
Age
34
XP
146
Country
Italy
Or alternatively you might try moonlight, particularly if you own a PC that has a NVIDIA GPU and GeForce experience installed.
It utilizes the built in Game Shield streaming feature making it a lot easier to set up.
I don't have a Nvidia card so I can't use this

However the parsec app is a good choice specially you can play games with it anywhere no need to play games with same network with pc
 
Last edited by essm1988,
  • Like
Reactions: NoNAND

microchipman

Well-Known Member
Newcomer
Joined
Sep 1, 2018
Messages
63
Trophies
0
Age
46
XP
100
Country
Canada
Because one is booting into RCM, then loading TWRP, and setting this all up on an SD card, is there any risk of banning? Seems like there would be less since we're NOT booting into a custom Switch firmware, and just loading a whole new OS...there shouldn't be any logs that would get one banned (Correct or Incorrect? [As long as SD card was NOT left in the switch when booting back to original firmware...should one still dump their NAND on first RCM boot?) Thank-you in advance.
 

Xen0

Well-Known Member
Member
Joined
Oct 8, 2015
Messages
514
Trophies
0
Age
23
XP
1,634
Country
Germany
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)
What´s the point in the different img files then? Using the smallest one seems always the best (from noob perspective) then.
 
  • Like
Reactions: NoNAND

AkGBA

Nope
Member
Joined
Feb 14, 2007
Messages
345
Trophies
0
XP
1,260
Country
France
What´s the point in the different img files then? Using the smallest one seems always the best (from noob perspective) then.
Android OS will take 8 GB of space, 2 GB for the fat32 partition. The rest will be free space for Android OS. If you use the 16 GB img, you will have 6 GB free for Android, when flash to a 16, 32 or 400 GB sd card. Best is to use the img corresponding to your sd size. But the larger the img, the longer it will take when first flashing.
 
General chit-chat
Help Users
    KenniesNewName @ KenniesNewName: He's obviously kanye