LinageOS 17.1 on the Nintendo Switch

Forewarning

This is an UNOFFICIAL build of android Q for the nintendo switch. It is provided as-is without any warrenty or support. If you need support, you will have to compile your own build, verify the issue still exists and then report it over to the switchroot discord -> https://discord.gg/9d66FYg. Otherwise wait for the offical build from them before bothering them with issues as they wont be able to help

When the offical build is released, an android wipe will be required to switch over to it.

For those who just need a finished build, Here you go. Everything you need to install android is included. Rom is stock android with nvidia apps and no OC patches applied

Build Date: 01/15/21
SHA256SUM: ddd9d4afe23e260a1439c93491bc55e8affe971d5725a1fb3ef49718e3dad484

If you wish to compile it yourself for either the latest features/bug fixes or source code verification, you can follow this guide. This is the guide used for my public builds. The minimum requirements for building are fairly large

  • 300GB Free space
  • 16GB RAM
  • Linux based distro (WSL1/2 should work, EXT4 drive requried)
  • Lots of available compute time (First build can be 12H+ depending on hardware)

Installation

The following is required

  1. A nintendo switch with the fusee-gelee exploit
  2. A microsd card atleast 16GB in size (Will be wiped)
  3. Someway to trigger the fusee-gelee exploit to boot into hekate
  4. Hekate >= 5.5.3 (included in zip unless you wish to provide your own. Older versions will not work due to a bug in the installer)

To install the first thing you need todo is wipe your entire SD card as FAT32. Then copy over the bootloader folder from COPY2SD to the root of the SD card.

Screenshot from 2021-01-15 07-23-45

Eject the SD card, plug it into your switch and enter RCM mode. Launch the included hekate 5.5.3 payload. Enter the date and time, goto tools, and near the bottom of the screen you will need to switch over to the partitioning mode. We need reformat the SD card again so that the partitions are layed out properly and that the layout is SD card optomized

Resize the partitions to fit your needs and desires. You are not able to change this after the fact unless you wipe your SD card so make sure you have enough room for what you plan on doing with atleast 2GB in HOS. Once thats done, click Next step, wait for it to continue and hit OK.

If you plan on install L4T alongside android, make sure to leave enough room in HOS for the install files. 8GB free space is recommended for it.

Without shutting down your switch or leaving hekate, remove the SD card and do not reload. Re-insert the sd card into the computer and copy over everything from the COPY2SD folder, overwriting any files that may be on it. This will copy over everything needed to finish the install.

Eject the SD card, insert it into your switch, and click on flash android. If you exited to the main menu, just go back to the partition menu, and dont click on next step. After its done flashing, click on Continue, and then wait for it to boot into TWRP. This could take several minutes depending on your SD card but no longer than 5 minutes. If it fails to boot, Power cycle the device and re-enter hekate and boot into switchroot android while holding the volume+ button like a normal android device.

Setup

Now that your in TWRP, you can setup the android install. Swipe to allow modifications, click on mount, and attempt to mount every partition one time. Most if not all with fail, thats fine. Head back the main menu and goto Install. Select your sd card as your storage device and navigate to /external_sd/switchroot/install. Flash the linageOS zip file and then the gapps package if you want gapps. There may be alot of errors and warnings on the screen while its flashing. Ignore all of them as they shouldnt impact the final result

Note that gapps must be installed during this point otherwise a reinstall of android may be required as gapps doesnt like dirty flashing. If you choose to skip gapps, the included nvidia app will not be able to be updated

Once flashing has completed, reboot system and wait for it to finish booting up. Once booted into android go through setup without connecting to the internet. Switch has no microphone so google assistant setup will fail unless it can pull it from another device. Once setup, you can connect to the internet without issue.

Known Issues / Troubleshooting

Q. After flashing in TWRP, i boot into a black screen and nothing happens
A. Make sure you flash the LinageOS zip first and then anything other zips after that. LinageOS zip contains the actual rom and MUST be flashed first

Q. After installing android, its asking for a password
A. Make sure you are on Hekate >= 5.5.3 as earlier versions were not formatting userdata correctly. A complete format of the sd card is required to resolve this

Q. After formatting my SD card, and copying over the bootloader folder, hekate is not able to read it.
A. Something went wrong during formatting. Make sure your SD card has a MBR partition table, and the first partition is fat32. You just need to be able to boot into hekate once as we will format the SD card again once booted into it.

Q. After putting my switch to sleep, it has become unresponsive and unable to wake up
A. Current builds still experience a sleep of death. Rarely when the switch goes to sleep, it will enter a unrecoverable state and require a hard restart

Q. I think i found a issue? How do i report it?
A. You will have to follow this guide to compile your own build of android q to verify the issue is present in the latest version. If you can replicate the issue after compilation, Report it over to the discord in #user-support
https://gitlab.com/ZachyCatGames/q-tips-guide

Q. After installing android, I’m getting terrible battery life
A. Dont install gapps. Gapps is known to cause a fairly significant amount of battery drain due to it running in the background constantly. This affects sleep most of all with loosing about 10-20% per hour

Q. After turning on my switch, A message about an internal problem shows up
A. Known issue with unknown cause. Click OK and ignore

Q. HELP! I still have a question
A. Comment it below and i will do my best to answer it

Does work

Joycons (Rail)
Auto-rotation
Bluetooth (Reports of it being broken, if so, a full reinstall will be required)
Sound
Wifi
USB
Dock (Not personally tested)
Power & Vol buttons
Hardware Acceleration
Deep Sleep

Doesnt work/Untested

NFC
IR Camera (Joycons)
Gyroscope
Ambient Light Sensor

4 Likes

Updating (Untested, WIP)

To update the build, extract the contents into the root of your SD card, overwriting any files present. Put the SD card into your switch and boot into hekate. Head into the partition manager and click on “Flash Android”. Do not repartition unless you run into a issue that requires it as this will wipe your data.

After the flash has finished, Boot into TWRP, and dirty flash the new rom image from /external_sd/switchroot/install. After its done flashing, wipe cache and reboot into the system. Update should now be applied.

1 Like