Skip to content

Commit

Permalink
devices: Add the Nintendo Switch (all models)
Browse files Browse the repository at this point in the history
Change-Id: I6ec9f5d7071dd0fe456061919dbc165e51d97abd
  • Loading branch information
npjohnson committed May 28, 2024
1 parent 72b8fcc commit 9e50bf0
Show file tree
Hide file tree
Showing 62 changed files with 730 additions and 0 deletions.
36 changes: 36 additions & 0 deletions _data/devices/nx_tab_variant1.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
architecture: arm64
battery: {capacity: 4310, removable: False, tech: 'Li-Ion'}
bluetooth: {spec: '4.1'}
cameras: []
codename: nx_tab
cpu: Cortex-A57
cpu_cores: '4'
cpu_freq: 1.9 GHz
current_branch: 21
dimensions: {depth: 13.9, height: 102, width: 239}
gpu: NVIDIA GM20B (Maxwell)
image: nx.png
install_method: nintendo
is_unlockable: false
kernel: {repo: android_kernel_nvidia_kernel-nx, version: '4.9'}
maintainers: [makinbacon, npjohnson, webgeek1234]
models: [odin]
name: Switch v1 [Tablet]
network: None
no_oem_unlock_switch: true
peripherals: [Accelerometer, Gyroscope, Sensor hub, Light sensor, Dock, Joycons]
ram: 4 GB
recovery_boot: Boot to Hekate, then select "More Configs", then hold <kbd>Volume Up</kbd> and select the `LineageOS` entry.
recovery_partition_name: recovery
release: 2017-03-03
screen: {resolution: '1280x720', size: 6.2, technology: 'LCD'}
sdcard: {sizeMax: '2 TB'}
soc: NVIDIA Tegra X1 (T210)
storage: 32 GB
tree: android_device_nintendo_nx_tab
type: tablet
variant: 1
vendor: Nintendo
vendor_short: nintendo
versions: [21]
wifi: 802.11 a/b/g/n/ac
36 changes: 36 additions & 0 deletions _data/devices/nx_tab_variant2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
architecture: arm64
battery: {capacity: 4310, removable: False, tech: 'Li-Ion'}
bluetooth: {spec: '4.1'}
cameras: []
codename: nx_tab
cpu: Cortex-A57
cpu_cores: '4'
cpu_freq: 1.9 GHz
current_branch: 21
dimensions: {depth: 13.9, height: 102, width: 239}
gpu: NVIDIA GM20B (Maxwell)
image: nx.png
install_method: nintendo
is_unlockable: false
kernel: {repo: android_kernel_nvidia_kernel-nx, version: '4.9'}
maintainers: [makinbacon, npjohnson, webgeek1234]
models: [modin]
name: Switch v2 [Tablet]
network: None
no_oem_unlock_switch: true
peripherals: [Accelerometer, Gyroscope, Sensor hub, Light sensor, Dock, Joycons]
ram: 4 GB
recovery_boot: Boot to Hekate, then select "More Configs", then hold <kbd>Volume Up</kbd> and select the `LineageOS` entry.
recovery_partition_name: recovery
release: 2019-09-20
screen: {resolution: '1280x720', size: 6.2, technology: 'LCD'}
sdcard: {sizeMax: '2 TB'}
soc: NVIDIA Tegra X1+ (T210b01)
storage: 32 GB
tree: android_device_nintendo_nx_tab
type: tablet
variant: 2
vendor: Nintendo
vendor_short: nintendo
versions: [21]
wifi: 802.11 a/b/g/n/ac
36 changes: 36 additions & 0 deletions _data/devices/nx_tab_variant3.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
architecture: arm64
battery: {capacity: 3570, removable: False, tech: 'Li-Ion'}
bluetooth: {spec: '4.1'}
cameras: []
codename: nx_tab
cpu: Cortex-A57
cpu_cores: '4'
cpu_freq: 1.9 GHz
current_branch: 21
dimensions: {depth: 14, height: 91, width: 208}
gpu: NVIDIA GM20B (Maxwell)
image: nx_lite.png
install_method: nintendo
is_unlockable: false
kernel: {repo: android_kernel_nvidia_kernel-nx, version: '4.9'}
maintainers: [makinbacon, npjohnson, webgeek1234]
models: [vali]
name: Switch Lite [Tablet]
network: None
no_oem_unlock_switch: true
peripherals: [Accelerometer, Gyroscope, Sensor hub, Light sensor]
ram: 4 GB
recovery_boot: Boot to Hekate, then select "More Configs", then hold <kbd>Volume Up</kbd> and select the `LineageOS` entry.
recovery_partition_name: recovery
release: 2019-09-20
screen: {resolution: '1280x720', size: 5.5, technology: 'LCD'}
sdcard: {sizeMax: '2 TB'}
soc: NVIDIA Tegra X1+ (T210b01)
storage: 32 GB
tree: android_device_nintendo_nx_tab
type: tablet
variant: 3
vendor: Nintendo
vendor_short: nintendo
versions: [21]
wifi: 802.11 a/b/g/n/ac
36 changes: 36 additions & 0 deletions _data/devices/nx_tab_variant4.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
architecture: arm64
battery: {capacity: 4310, removable: False, tech: 'Li-Ion'}
bluetooth: {spec: '4.1'}
cameras: []
codename: nx_tab
cpu: Cortex-A57
cpu_cores: '4'
cpu_freq: 1.9 GHz
current_branch: 20
dimensions: {depth: 14, height: 102, width: 242}
gpu: NVIDIA GM20B (Maxwell)
image: nx_oled.png
install_method: nintendo
is_unlockable: false
kernel: {repo: android_kernel_nvidia_kernel-nx, version: '4.9'}
maintainers: [makinbacon, npjohnson, webgeek1234]
models: [frig]
name: Switch OLED [Tablet]
network: None
no_oem_unlock_switch: true
peripherals: [Accelerometer, Gyroscope, Sensor hub, Light sensor, Dock, Joycons]
ram: 4 GB
recovery_boot: Boot to Hekate, then select "More Configs", then hold <kbd>Volume Up</kbd> and select the `LineageOS` entry.
recovery_partition_name: recovery
release: 2021-10-08
screen: {resolution: '1280x720', size: 7, technology: 'OLED'}
sdcard: {sizeMax: '2 TB'}
soc: NVIDIA Tegra X1+ (T210b01)
storage: 32 GB
tree: android_device_nintendo_nx_tab
type: tablet
variant: 4
vendor: Nintendo
vendor_short: nintendo
versions: [21]
wifi: 802.11 a/b/g/n/ac
36 changes: 36 additions & 0 deletions _data/devices/nx_variant1.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
architecture: arm64
battery: {capacity: 4310, removable: False, tech: 'Li-Ion'}
bluetooth: {spec: '4.1'}
cameras: []
codename: nx
cpu: Cortex-A57
cpu_cores: '4'
cpu_freq: 1.9 GHz
current_branch: 21
dimensions: {depth: 13.9, height: 102, width: 239}
gpu: NVIDIA GM20B (Maxwell)
image: nx.png
install_method: nintendo
is_unlockable: false
kernel: {repo: android_kernel_nvidia_kernel-nx, version: '4.9'}
maintainers: [makinbacon, npjohnson, webgeek1234]
models: [odin]
name: Switch v1 [Android TV]
network: None
no_oem_unlock_switch: true
peripherals: [Accelerometer, Gyroscope, Sensor hub, Light sensor, Dock, Joycons]
ram: 4 GB
recovery_boot: Boot to Hekate, then select "More Configs", then hold <kbd>Volume Up</kbd> and select the `LineageOS` entry.
recovery_partition_name: recovery
release: 2017-03-03
screen: {resolution: '1280x720', size: 6.2, technology: 'LCD'}
sdcard: {sizeMax: '2 TB'}
soc: NVIDIA Tegra X1 (T210)
storage: 32 GB
tree: android_device_nintendo_nx
type: tablet
variant: 1
vendor: Nintendo
vendor_short: nintendo
versions: [21]
wifi: 802.11 a/b/g/n/ac
36 changes: 36 additions & 0 deletions _data/devices/nx_variant2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
architecture: arm64
battery: {capacity: 4310, removable: False, tech: 'Li-Ion'}
bluetooth: {spec: '4.1'}
cameras: []
codename: nx
cpu: Cortex-A57
cpu_cores: '4'
cpu_freq: 1.9 GHz
current_branch: 21
dimensions: {depth: 13.9, height: 102, width: 239}
gpu: NVIDIA GM20B (Maxwell)
image: nx.png
install_method: nintendo
is_unlockable: false
kernel: {repo: android_kernel_nvidia_kernel-nx, version: '4.9'}
maintainers: [makinbacon, npjohnson, webgeek1234]
models: [modin]
name: Switch v2 [Android TV]
network: None
no_oem_unlock_switch: true
peripherals: [Accelerometer, Gyroscope, Sensor hub, Light sensor, Dock, Joycons]
ram: 4 GB
recovery_boot: Boot to Hekate, then select "More Configs", then hold <kbd>Volume Up</kbd> and select the `LineageOS` entry.
recovery_partition_name: recovery
release: 2019-09-20
screen: {resolution: '1280x720', size: 6.2, technology: 'LCD'}
sdcard: {sizeMax: '2 TB'}
soc: NVIDIA Tegra X1+ (T210b01)
storage: 32 GB
tree: android_device_nintendo_nx
type: tablet
variant: 2
vendor: Nintendo
vendor_short: nintendo
versions: [21]
wifi: 802.11 a/b/g/n/ac
36 changes: 36 additions & 0 deletions _data/devices/nx_variant3.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
architecture: arm64
battery: {capacity: 3570, removable: False, tech: 'Li-Ion'}
bluetooth: {spec: '4.1'}
cameras: []
codename: nx
cpu: Cortex-A57
cpu_cores: '4'
cpu_freq: 1.9 GHz
current_branch: 21
dimensions: {depth: 14, height: 91, width: 208}
gpu: NVIDIA GM20B (Maxwell)
image: nx_lite.png
install_method: nintendo
is_unlockable: false
kernel: {repo: android_kernel_nvidia_kernel-nx, version: '4.9'}
maintainers: [makinbacon, npjohnson, webgeek1234]
models: [vali]
name: Switch Lite [Android TV]
network: None
no_oem_unlock_switch: true
peripherals: [Accelerometer, Gyroscope, Sensor hub, Light sensor]
ram: 4 GB
recovery_boot: Boot to Hekate, then select "More Configs", then hold <kbd>Volume Up</kbd> and select the `LineageOS` entry.
recovery_partition_name: recovery
release: 2019-09-20
screen: {resolution: '1280x720', size: 5.5, technology: 'LCD'}
sdcard: {sizeMax: '2 TB'}
soc: NVIDIA Tegra X1+ (T210b01)
storage: 32 GB
tree: android_device_nintendo_nx
type: tablet
variant: 3
vendor: Nintendo
vendor_short: nintendo
versions: [21]
wifi: 802.11 a/b/g/n/ac
36 changes: 36 additions & 0 deletions _data/devices/nx_variant4.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
architecture: arm64
battery: {capacity: 4310, removable: False, tech: 'Li-Ion'}
bluetooth: {spec: '4.1'}
cameras: []
codename: nx
cpu: Cortex-A57
cpu_cores: '4'
cpu_freq: 1.9 GHz
current_branch: 20
dimensions: {depth: 14, height: 102, width: 242}
gpu: NVIDIA GM20B (Maxwell)
image: nx_oled.png
install_method: nintendo
is_unlockable: false
kernel: {repo: android_kernel_nvidia_kernel-nx, version: '4.9'}
maintainers: [makinbacon, npjohnson, webgeek1234]
models: [frig]
name: Switch OLED [Android TV]
network: None
no_oem_unlock_switch: true
peripherals: [Accelerometer, Gyroscope, Sensor hub, Light sensor, Dock, Joycons]
ram: 4 GB
recovery_boot: Boot to Hekate, then select "More Configs", then hold <kbd>Volume Up</kbd> and select the `LineageOS` entry.
recovery_partition_name: recovery
release: 2021-10-08
screen: {resolution: '1280x720', size: 7, technology: 'OLED'}
sdcard: {sizeMax: '2 TB'}
soc: NVIDIA Tegra X1+ (T210b01)
storage: 32 GB
tree: android_device_nintendo_nx
type: tablet
variant: 4
vendor: Nintendo
vendor_short: nintendo
versions: [21]
wifi: 802.11 a/b/g/n/ac
67 changes: 67 additions & 0 deletions _includes/templates/recovery_install_nintendo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
## Pre-Install Information

LineageOS builds for this device support the following device configurations:

Configuration 1:
* An original, exploitable "v1" Nintendo Switch with your preffered JoyCons attached during installation
{% include alerts/note.html content="This can be identified by the model number 'MOD.' on the rear of the device `HAC-001` is exploitable, while `HAC-001(-01)`, or any other model number is not, and therefore you must use Configuration 2." %}
* An RCM Jig such as [this one](https://www.amazon.com/Nintendo-Switch-Short-Connector-Recovery/dp/B07J9JJRRG))
* Hekate `v6.1.0` loaded via a Fusee launcher such as [this one](https://webrcm.github.io)
{% include alerts/warning.html content="This configuration requires that the Fusee launcher be ran every time you wish to boot Android! With this in mind, Configuration 2 is heavily preferred." %}

Configuration 2:
* A hard-modded (often called "ModChipped") Switch v1 / v2 / Lite / OLED with your preffered JoyCons attached during installation
* Hekate `v6.1.0` on your SD Card, and loaded by your ModChip

Additionally, we support two installation locations:
* SD Card
{% include alerts/warning.html content="This installation location requires a high quality, high speed SD Card to function." %}
* eMMC
{% include alerts/warning.html content="This installation location requires space be taken from HOS (the stock Switch OS), so please tread carefully." %}

This guide will detail SD Card installation, if you wish to install Android to the eMMC, you will need to consult external resources.

Additionally, his guide will not detail exploiting or ModChipping your Switch, or the installation of Hekate, so please go select the applicable/preferred installation configuration to your device, and come back when Hekate `v6.1.0` or newer is booted on the device.

## Preparing the SD Card
1. In Hekate, select "Tools" in the top-center of the screen, then click "USB Tools" in the bottom right, finally selecting "SD Card" under the "USB Mass Storage" header in the top-left of the screen.
2. Connect your device to your PC, and navigate to your SD Card once it is mounted.
3. Please download the the following files from [here](https://download.lineageos.org/devices/{{ device.codename }}/builds) and place them in the noted folders (which you will potentially have to create) on your device's SD Card:
* `boot.img` -> `switchroot/install/boot.img`
* `recovery.img` -> `switchroot/install/recovery.img`
* `nx-plat.dtimg` -> `switchroot/install/nx-plat.dtimg`
* `bl31.bin` -> `switchroot/android/bl31.bin`
* `bl33.bin` -> `switchroot/android/bl33.bin`
3. Please download the following files and place them in the noted folders (which you will potentially have to create) on your device's SD Card:
* [`bootlogo_android.bmp`]({{ "images/device_specific/nx/bootlogo_android.bmp" | relative_url }})
) -> `switchroot/android/bootlogo_android.bmp`
* [`icon_android_hue.bmp`]({{ "images/device_specific/nx/icon_android_hue.bmp" | relative_url }}) -> `switchroot/android/icon_android_hue.bmp`
4. Create a new text file called `android.ini` at `bootloader/ini/android.ini` and populate it with the following:
```
[LineageOS]
l4t=1
boot_prefixes=switchroot/android/
id=SWANDR
icon=switchroot/android/icon_android_hue.bmp
logopath=switchroot/android/bootlogo_android.bmp
r2p_action=self
```
5. Safely eject the SD Card from your PC's file browser, then click "Close" on the device, then the "X" icon in the top right of the screen, and finally the "Home" button in the top-left of the screen.
6. In Hekate, select "Nyx Settings" in the bottom-left of the screen, then "Dump Joy-Con BT" from the top-right.
7. Click "OK" once a message indicates success, the message will look like this:
```
Success!
Found 2 out of 2 Joy-Con Pairing data!
Both pairing data are HOS based!
```
{% include alerts/note.html content="You must have booted HOS (the stock Nintendo Switch OS) with your preferred JoyCons attached prior to doing this, or it will likely not succeed. You may boot to HOS at this point if necessary, and re-run this specific step after reboot." %}

## Partitioning the System
1. Please back up ALL data on the SD Card before proceeding with installation, as all data/games/save data stored on the SD Card will be erased in the process of installation.
{% include alerts/warning.html content="Upgrades, or dirty-installs from any unofficial build will NOT function, please start with a freshly partitioned system." %}
{% include alerts/warning.html content="Please note that the files you have just copied in prior steps will be backed up and restored onto the SD Card by Hekate." %}
3. In Hekate, select "Tools" in the top-center of the screen, then "Partition SD Card", then click "OK" when prompted.
4. Now, make your partition scheme selections based on your needs, as well as any other operating systems you may plan to install alongside Android.
{% include alerts/note.html content="Please give Android no less than roughly 10 GB to ensure that enough space is present." %}
5. When content with your selections, click "Next Step" in the bottom-right of the screen, then when ready click "Start", then follow the on-screen instructions to proceeed with the partitioning process.
6. When the process is complete, select "Flash Android" and accept the prompt to reboot to recovery.
Binary file added images/device_specific/nx/bootlogo_android.bmp
Binary file not shown.
Binary file added images/device_specific/nx/icon_android_hue.bmp
Binary file not shown.
Binary file added images/devices/nx.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/devices/nx_lite.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/devices/nx_oled.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/devices/small/nx.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/devices/small/nx_lite.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/devices/small/nx_oled.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions pages/build/nx_tab_variant1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
sidebar: home_sidebar
title: Build for nx_tab
folder: build
permalink: /devices/nx_tab/build/variant1/
device: nx_tab_variant1
---
{% include templates/device_build.md %}
8 changes: 8 additions & 0 deletions pages/build/nx_tab_variant2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
sidebar: home_sidebar
title: Build for nx_tab
folder: build
permalink: /devices/nx_tab/build/variant2/
device: nx_tab_variant2
---
{% include templates/device_build.md %}
8 changes: 8 additions & 0 deletions pages/build/nx_tab_variant3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
sidebar: home_sidebar
title: Build for nx_tab
folder: build
permalink: /devices/nx_tab/build/variant3/
device: nx_tab_variant3
---
{% include templates/device_build.md %}
Loading

0 comments on commit 9e50bf0

Please sign in to comment.