|
1 | | -# hekate - Nyx |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | -Custom Graphical Nintendo Switch bootloader, firmware patcher, tools, and many more. |
7 | | - |
8 | | - |
9 | | - |
10 | | -- [Features](#features) |
11 | | -- [Bootloader folders and files](#bootloader-folders-and-files) |
12 | | -- [Bootloader configuration](#bootloader-configuration) |
13 | | - * [hekate global Configuration keys/values](#hekate-global-configuration-keysvalues-when-entry-is-config) |
14 | | - * [Boot entry key/value combinations](#boot-entry-keyvalue-combinations) |
15 | | - * [Boot entry key/value combinations for Exosphère](#boot-entry-keyvalue-combinations-for-exosphère) |
16 | | - * [Payload storage](#payload-storage) |
17 | | - * [Nyx Configuration keys/values](#nyx-configuration-keysvalues-nyxini) |
18 | | - |
19 | | - |
20 | | - |
21 | | -## Features |
22 | | - |
23 | | -- **Fully Configurable and Graphical** with Touchscreen and Joycon input support |
24 | | -- **Launcher Style, Background and Color Themes** |
25 | | -- **HOS (Switch OS) Bootloader** -- For CFW Sys/Emu, OFW Sys and Stock Sys |
26 | | -- **Android & Linux Bootloader** |
27 | | -- **Payload Launcher** |
28 | | -- **eMMC/emuMMC Backup/Restore Tools** |
29 | | -- **SD Card Partition Manager** -- Prepares and formats SD Card for any combo of HOS (Sys/emuMMC), Android and Linux |
30 | | -- **emuMMC Creation & Manager** -- Can also migrate and fix existing emuMMC |
31 | | -- **Switch Android & Linux flasher** |
32 | | -- **USB Mass Storage (UMS) for SD/eMMC/emuMMC** -- Converts Switch into a SD Card Reader |
33 | | -- **USB Gamepad** -- Converts Switch with Joycon into a USB HID Gamepad |
34 | | -- **Hardware and Peripherals info** (SoC, Fuses, RAM, Display, Touch, eMMC, SD, Battery, PSU, Charger) |
35 | | -- **Many other tools** like Archive Bit Fixer, Touch Calibration, SD/eMMC Benchmark, AutoRCM enabler and more |
36 | | - |
37 | | - |
38 | | -## Bootloader folders and files |
39 | | - |
40 | | -| Folder/File | Description | |
41 | | -| ------------------------ | --------------------------------------------------------------------- | |
42 | | -| bootloader | Main folder. | |
43 | | -| \|__ bootlogo.bmp | It is used if no `logopath` key is found. User provided. Can be skipped. | |
44 | | -| \|__ hekate_ipl.ini | Main bootloader configuration and boot entries in `Launch` menu. | |
45 | | -| \|__ nyx.ini | Nyx GUI configuration | |
46 | | -| \|__ patches.ini | Add external patches. Can be skipped. A template can be found [here](./res/patches_template.ini) | |
47 | | -| \|__ update.bin | If newer, it is loaded at boot. Normally for modchips. Auto updated and created at first boot. | |
48 | | -| bootloader/ini/ | For individual inis. `More configs` menu. Autoboot is supported. | |
49 | | -| bootloader/res/ | Nyx user resources. Icons and more. | |
50 | | -| \|__ background.bmp | Nyx - Custom background. User provided. | |
51 | | -| \|__ icon_switch.bmp | Nyx - Default icon for CFWs. | |
52 | | -| \|__ icon_payload.bmp | Nyx - Default icon for Payloads. | |
53 | | -| bootloader/sys/ | hekate and Nyx system modules folder. !Important! | |
54 | | -| \|__ emummc.kipm | emuMMC KIP1 module. | |
55 | | -| \|__ libsys_lp0.bso | LP0 (sleep mode) module. | |
56 | | -| \|__ libsys_minerva.bso | Minerva Training Cell. Used for DRAM Frequency training. | |
57 | | -| \|__ nyx.bin | Nyx - hekate's GUI. | |
58 | | -| \|__ res.pak | Nyx resources package. | |
59 | | -| \|__ thk.bin | Atmosphère Tsec Hovi Keygen. | |
60 | | -| \|__ /l4t/ | Folder with firmware relevant to L4T (Linux/Android). | |
61 | | -| bootloader/screenshots/ | Folder where Nyx screenshots are saved | |
62 | | -| bootloader/payloads/ | For the `Payloads` menu. All CFW bootloaders, tools, Linux payloads are supported. Autoboot only supported by including them into an ini. | |
63 | | -| bootloader/libtools/ | Reserved | |
64 | | - |
65 | | - |
66 | | - |
67 | | -## Bootloader configuration |
68 | | - |
69 | | -The bootloader can be configured via 'bootloader/hekate_ipl.ini' (if it is present on the SD card). Each ini section represents a boot entry, except for the special section 'config' that controls the global configuration. |
70 | | - |
71 | | - |
72 | | -There are four possible type of entries. "**[ ]**": Boot entry, "**{ }**": Caption, "**#**": Comment, "*newline*": .ini cosmetic newline. |
73 | | - |
74 | | - |
75 | | -**You can find a template [Here](./res/hekate_ipl_template.ini)** |
76 | | - |
77 | | - |
78 | | -### hekate Global Configuration keys/values (when entry is *[config]*): |
79 | | - |
80 | | -| Config option | Description | |
81 | | -| ------------------ | -------------------------------------------------------------- | |
82 | | -| autoboot=0 | 0: Disable, #: Boot entry number to auto boot. | |
83 | | -| autoboot_list=0 | 0: Read `autoboot` boot entry from hekate_ipl.ini, 1: Read from ini folder (ini files are ASCII ordered). | |
84 | | -| bootwait=3 | 0: Disable (It also disables bootlogo. Having **VOL-** pressed since injection goes to menu.), #: Time to wait for **VOL-** to enter menu. Max: 20s. | |
85 | | -| noticker=0 | 0: Animated line is drawn during custom bootlogo, signifying time left to skip to menu. 1: Disable. | |
86 | | -| autohosoff=1 | 0: Disable, 1: If woke up from HOS via an RTC alarm, shows logo, then powers off completely, 2: No logo, immediately powers off.| |
87 | | -| autonogc=1 | 0: Disable, 1: Automatically applies nogc patch if unburnt fuses found and a >= 4.0.0 HOS is booted. | |
88 | | -| bootprotect=0 | 0: Disable, 1: Protect bootloader folder from being corrupted by disallowing reading or editing in HOS. | |
89 | | -| updater2p=0 | 0: Disable, 1: Force updates (if needed) the reboot2payload binary to be hekate. | |
90 | | -| backlight=100 | Screen backlight level. 0-255. | |
91 | | - |
92 | | - |
93 | | -### Boot entry key/value combinations: |
| 1 | +# This is a fork of hekate that provides a single change: |
94 | 2 |
|
95 | 3 | | Config option | Description | |
96 | 4 | | ---------------------- | ---------------------------------------------------------- | |
97 | | -| warmboot={FILE path} | Replaces the warmboot binary | |
98 | | -| secmon={FILE path} | Replaces the security monitor binary | |
99 | | -| kernel={FILE path} | Replaces the kernel binary | |
100 | | -| kip1={FILE path} | Replaces/Adds kernel initial process. Multiple can be set. | |
101 | | -| kip1={FOLDER path}/* | Loads every .kip/.kip1 inside a folder. Compatible with single kip1 keys. | |
102 | | -| pkg3={FILE path} | Takes an Atmosphere `package3` binary and `extracts` all needed parts from it. kips, exosphere, warmboot and mesophere. | |
103 | | -| fss0={FILE path} | Same as above. !Deprecated! | |
104 | | -| pkg3ex=1 | Enables loading of experimental content from a PKG3/FSS0 storage | |
105 | | -| pkg3kip1skip={KIP name} | Skips loading a kip from `pkg3`/`fss0`. Allows multiple and `,` as separator. The name must exactly match the name in `PKG3`. | |
106 | | -| exofatal={FILE path} | Replaces the exosphere fatal binary for Mariko | |
107 | | -| ---------------------- | ---------------------------------------------------------- | |
108 | | -| kip1patch=patchname | Enables a kip1 patch. Allows multiple and `,` as separator. If actual patch is not found, a warning will show up. | |
109 | | -| emupath={FOLDER path} | Forces emuMMC to use the selected one. (=emuMMC/RAW1, =emuMMC/SD00, etc). emuMMC must be created by hekate because it uses the raw_based/file_based files. | |
110 | | -| emummcforce=1 | Forces the use of emuMMC. If emummc.ini is disabled or not found, then it causes an error. | |
111 | | -| emummc_force_disable=1 | Disables emuMMC, if it's enabled. | |
112 | | -| stock=1 | OFW via hekate bootloader. Disables unneeded kernel patching and CFW kips when running stock. `If emuMMC is enabled, emummc_force_disable=1` is required. emuMMC is not supported on stock. If additional KIPs are needed other than OFW's, you can define them with `kip1` key. No kip should be used that relies on Atmosphère patching, because it will hang. If `NOGC` is needed, use `kip1patch=nogc`. | |
113 | | -| fullsvcperm=1 | Disables SVC verification (full services permission). Doesn't work with Mesosphere as kernel. | |
114 | | -| debugmode=1 | Enables Debug mode. Obsolete when used with exosphere as secmon. | |
115 | | -| kernelprocid=1 | Enables stock kernel process id send/recv patching. Not needed when `pkg3`/`fss0` is used. | |
116 | | -| ---------------------- | ---------------------------------------------------------- | |
117 | | -| payload={FILE path} | Payload launching. Tools, Android/Linux, CFW bootloaders, etc. Any key above when used with that, doesn't get into account. | |
118 | | -| ---------------------- | ---------------------------------------------------------- | |
119 | | -| l4t=1 | L4T Linux/Android native launching. | |
120 | | -| boot_prefixes={FOLDER path} | L4T bootstack directory. | |
121 | | -| ram_oc=0 | L4T RAM Overclocking. Check README_CONFIG.txt for more info. | |
122 | | -| ram_oc_vdd2=1100 | L4T RAM VDD2 Voltage. Set VDD2 (T210B01) or VDD2/VDDQ (T210) voltage. 1050-1175. | |
123 | | -| ram_oc_vddq=600 | L4T RAM VDDQ Voltage. Set VDDQ (T210B01). 550-650. | |
124 | | -| uart_port=0 | Enables logging on serial port for L4T uboot/kernel. | |
125 | | -| sld_type=0x31444C53 | Controls the type of seamless display support. 0x0: Disable, 0x31444C53: L4T seamless display. | |
126 | | -| Additional keys | Each distro supports more keys. Check README_CONFIG.txt for more info. | |
127 | | -| ---------------------- | ---------------------------------------------------------- | |
128 | | -| bootwait=3 | Overrides global bootwait from `[config]`. | |
129 | | -| id=IDNAME | Identifies boot entry for forced boot via id. Max 7 chars. | |
130 | | -| logopath={FILE path} | If it exists, it will load the specified bitmap. Otherwise `bootloader/bootlogo.bmp` will be used if exists | |
131 | | -| icon={FILE path} | Force Nyx to use the icon defined here. If this is not found, it will check for a bmp named as the boot entry ([Test 2] -> `bootloader/res/Test 2.bmp`). Otherwise defaults will be used. | |
132 | | - |
133 | | - |
134 | | -**Note1**: When using the wildcard (`/*`) with `kip1` you can still use the normal `kip1` after that to load extra single kips. |
135 | | - |
136 | | -**Note2**: When using PKG3/FSS0 it parses exosphere, warmboot and all core kips. You can override the first 2 by using `secmon`/`warmboot` after defining `pkg3`/`fss0`. |
137 | | -You can define `kip1` to load an extra kip or many via the wildcard (`/*`) usage. |
138 | | - |
139 | | -**Warning**: Careful when you override *pkg3/fss core* kips with `kip1`. |
140 | | -That's in case the kips are incompatible between them. If compatible, you can override `pkg3`/`fss0` kips with no issues (useful for testing with intermediate kip changes). In such cases, the `kip1` line must be **after** `pkg3`/`fss0` line. |
141 | | - |
142 | | - |
143 | | -### Boot entry key/value combinations for Exosphère: |
144 | | - |
145 | | -| Config option | Description | |
146 | | -| ---------------------- | ---------------------------------------------------------- | |
147 | | -| nouserexceptions=1 | Disables usermode exception handlers when paired with Exosphère. | |
148 | | -| userpmu=1 | Enables user access to PMU when paired with Exosphère. | |
149 | | -| cal0blank=1 | Overrides Exosphère config `blank_prodinfo_{sys/emu}mmc`. If that key doesn't exist, `exosphere.ini` will be used. | |
150 | | -| cal0writesys=1 | Overrides Exosphère config `allow_writing_to_cal_sysmmc`. If that key doesn't exist, `exosphere.ini` will be used. | |
151 | | -| usb3force=1 | Overrides system settings mitm config `usb30_force_enabled`. If that key doesn't exist, `system_settings.ini` will be used. | |
152 | | - |
153 | | - |
154 | | -**Note**: `cal0blank`, `cal0writesys`, `usb3force`, as stated override the `exosphere.ini` or `system_settings.ini`. 0: Disable, 1: Enable, Key Missing: Use original value. |
155 | | - |
156 | | - |
157 | | -**Note2**: `blank_prodinfo_{sys/emu}mmc`, `allow_writing_to_cal_sysmmc` and `usb30_force_enabled` in `exosphere.ini` and `system_settings.ini` respectively, are the only atmosphere config keys that can affect hekate booting configuration externally, **if** the equivalent keys in hekate config are missing. |
158 | | - |
159 | | - |
160 | | -### Payload storage: |
161 | | - |
162 | | -hekate has a boot storage in the binary that helps it configure it outside of BPMP environment: |
163 | | - |
164 | | -| Offset / Name | Description | |
165 | | -| ----------------------- | ----------------------------------------------------------------- | |
166 | | -| '0x94' boot_cfg | bit0: `Force AutoBoot`, bit1: `Show launch log`, bit2: `Boot from ID`, bit3: `Boot to emuMMC`. | |
167 | | -| '0x95' autoboot | If `Force AutoBoot`, 0: Force go to menu, else boot that entry. | |
168 | | -| '0x96' autoboot_list | If `Force AutoBoot` and `autoboot` then it boots from ini folder. | |
169 | | -| '0x97' extra_cfg | When menu is forced: bit5: `Run UMS`. | |
170 | | -| '0x98' xt_str[128] | Depends on the set cfg bits. | |
171 | | -| '0x98' ums[1] | When `Run UMS` is set, it will launch the selected UMS. 0: SD, 1: eMMC BOOT0, 2: eMMC BOOT1, 3: eMMC GPP, 4: emuMMC BOOT0, 5: emuMMC BOOT1, 6: emuMMC GPP, | |
172 | | -| '0x98' id[8] | When `Boot from ID` is set, it will search all inis automatically and find the boot entry with that id and boot it. Must be NULL terminated. | |
173 | | -| '0xA0' emummc_path[120] | When `Boot to emuMMC` is set, it will override the current emuMMC (boot entry or emummc.ini). Must be NULL terminated. | |
| 5 | +| Rename | Renames the given file path to "/startup.te" for payload | |
174 | 6 |
|
| 7 | +## Why is this notable? |
| 8 | +[TegraExplorer](https://github.com/suchmememanyskill/TegraExplorer/) allows you to execute [TegraScripts](https://github.com/suchmememanyskill/Tegrascript). On boot it will execute "/startup.te". What this key allows you to do is run any script from a hekate launch config. With this, you can take full control over the sd configuration before boot, ***automatically***. You can run completely different setups for sysmmc or emummc, or between multiple emummcs. See the [examples](https://github.com/auggeythecat/hekate_-Test-/tree/master/examples/) folder. |
175 | 9 |
|
176 | | -### Nyx Configuration keys/values (nyx.ini): |
| 10 | +## If you use this |
| 11 | +Tegrascripts can be hard to make for most poeple. If you make a config even just for personal use, please make a pull request or upload the scripts in an issue for them to be added to the [examples](https://github.com/auggeythecat/hekate_-Test-/tree/master/examples/) folder. These examples will make it much easier for people to make functional configs. |
177 | 12 |
|
178 | | -| Config option | Description | |
179 | | -| ------------------ | ---------------------------------------------------------- | |
180 | | -| themebg=2d2d2d | Sets Nyx background color in HEX. EXPERIMENTAL. | |
181 | | -| themecolor=167 | Sets Nyx color of text highlights. | |
182 | | -| entries5col=0 | 1: Sets Launch entry columns from 4 to 5 per line. For a total of 10 entries. | |
183 | | -| timeoffset=100 | Sets time offset in HEX. Must be in epoch format | |
184 | | -| timedst=0 | Enables automatic daylight saving hour adjustment | |
185 | | -| homescreen=0 | Sets home screen. 0: Home menu, 1: All configs (merges Launch and More configs), 2: Launch, 3: More Configs. | |
186 | | -| verification=1 | 0: Disable Backup/Restore verification, 1: Sparse (block based, fast and mostly reliable), 2: Full (sha256 based, slow and 100% reliable). | |
187 | | -| ------------------ | ------- The following options can only be edited in nyx.ini ------- | |
188 | | -| umsemmcrw=0 | 1: eMMC/emuMMC UMS will be mounted as writable by default. | |
189 | | -| jcdisable=0 | 1: Disables Joycon driver completely. | |
190 | | -| jcforceright=0 | 1: Forces right joycon to be used as main mouse control. | |
191 | | -| bpmpclock=1 | 0: Auto, 1: 589 MHz, 2: 576 MHz, 3: 563 MHz, 4: 544 MHz, 5: 408 MHz. Use 2 to 5 if Nyx hangs or some functions like UMS/Backup Verification fail. | |
192 | 13 |
|
| 14 | +## About |
| 15 | +I did nothing here. This repo is built on the shoulders of geniousous like [CTCaer](https://github.com/CTCaer), [suchmememanyskill](https://github.com/suchmememanyskill/), [SciresM](https://github.com/SciresM), and everyone else who has contributed to hekate, TegraExporer/TegraScripts, Atmosphere, and all other homebrew tools that make this scene amazing. |
193 | 16 |
|
194 | 17 | ``` |
195 | 18 | hekate (c) 2018, naehrwert, st4rk. |
|
0 commit comments