TuxSH ef842dda2a Fix extremely obnoxious race-cond+uninit handle bug
This is mostly a libctru bug (well, sort of).

This can only happen to built-in sysmodules, and to
processes waiting for err:f, that fail to obtain
handles through svcConnectToPort first try; and only
prior to 11.0.

Prior to fw 11.0, kernel didn't zero-initialize output
handles, and thus the output handle gets filled with
junk (leaked kernel stack data) in case of failure.
Libctru does not account for this, and closes such
handles anyway (in srvInit, errfInit, and possibly
more).

The problem is that, in our case, that garbage was
equal to 0x8000, actually a valid handle, in fact
the first handle to be created (and not closed) in
a process... a handle to KAddressArbiter.

Accidentally closing this handle resulted in one or
more KIPs spin-waiting and starving core1, resulting
in an inability to boot.

We fix this simply by replicating what recent k11 does,
in kext (for svcConnectToPort). For srvGetServiceHandle,
add two layers of safety.
2022-04-10 22:19:32 +01:00
2022-04-10 01:31:56 +01:00
2020-07-16 18:06:14 +01:00
2015-08-14 22:47:21 -04:00
2022-03-07 22:22:14 +00:00
2020-05-11 10:25:33 +01:00

Luma3DS

Noob-proof (N)3DS "Custom Firmware"

What it is

Luma3DS is a program to patch the system software of (New) Nintendo (2)3DS handheld consoles "on the fly", adding features such as per-game language settings, debugging capabilities for developers, and removing restrictions enforced by Nintendo such as the region lock.

It also allows you to run unauthorized ("homebrew") content by removing signature checks. To use it, you will need a console capable of running homebrew software on the Arm9 processor.

Since v8.0, Luma3DS has its own in-game menu, triggerable by L+Down+Select (see the release notes).

Compiling

  1. Clone the repository with git clone https://github.com/LumaTeam/Luma3DS.git

  2. Run make.

    The produced boot.firm is meant to be copied to the root of your SD card for usage with Boot9Strap.

Setup / Usage / Features

See https://github.com/LumaTeam/Luma3DS/wiki

Credits

See https://github.com/LumaTeam/Luma3DS/wiki/Credits

Licensing

This software is licensed under the terms of the GPLv3. You can find a copy of the license in the LICENSE.txt file.

Files in the GDB stub are instead triple-licensed as MIT or "GPLv2 or any later version", in which case it's specified in the file header.

Description
魔改的Luma3DS,如果存在autorun.luma这个文件,就将它自动加载启动
Readme 9.1 MiB
Languages
C 96.9%
Assembly 1.6%
Makefile 1.3%
C++ 0.2%