devkitPro / 3ds-hbmenu

The 3DS Homebrew Menu (∩ ͡° ͜ʖ ͡°)⊃━☆゚
705 stars 73 forks source link

CIA/CXI build? #69

Closed unresolvedsymbol closed 3 years ago

unresolvedsymbol commented 3 years ago

A CIA build would be a nice alternative to hblauncher_loader, preferably not requiring *hax payloads and just using the system privileges available to launch homebrew apps. I've personally used makerom to build a CIA (with a custom RSF that I've tested on other homebrew) from the executable and I do get the launcher but it exits back to the home menu when launching any homebrew. (Including homebrew not requiring any high privileges)

fincs commented 3 years ago

This is completely unnecessary, irrelevant and dangerous. CIA is obsolete right now, thanks to Rosalina, which has been part of Luma3DS for several years now. You might want to read this page: https://github.com/LumaTeam/Luma3DS/wiki/Rosalina

(Rosalina grants full system privileges to homebrew)

unresolvedsymbol commented 3 years ago

Obsolete? People still have plenty of CIA homebrew installed. I agree injecting into a system title with Rosalina is nice, but not everyone is on Luma3DS. A CIA build would allow injection into H&S for example.

fincs commented 3 years ago

That is not accurate at all. The standard homebrew format is 3DSX, which is what the 3DS homebrew toolchain outputs. This has always been the case, ever since 3DS homebrew was kickstarted by ninjhax back in 2014. Rosalina provides a mechanism by which homebrew can be loaded on a 3DS, taking the identity of an existing title so that zero installation is required. In addition, the homebrew menu is merely a graphical shell that displays a list of homebrew applications to load & controls Rosalina's behavior under the hood. It makes zero sense to package it up as a fake title without Rosalina. In the past, other "customized" firmwares existed, but as of 2020 the only one under active development which receives support is Luma3DS.

Historically, fake titles (CIA/CXI) have been used as a way to run homebrew, however this was only a side product of other mechanisms which were originally intended for piracy (which we do not support at all). Rosalina provides a much more convenient way to load homebrew that does not involve generating fake title IDs or using tools of questionable legality to build fake installable titles, while at the same time providing full system permissions.

unresolvedsymbol commented 3 years ago

Luma3DS is the only public CFW still being maintained, private CFW is still maintained as well. While I agree 3DSX homebrew is more versatile, people still claim CIA packaged homebrew like retroarch, etc performs better. If you are anti-piracy why exclusively support a CFW designed with it in mind? Removing hax payload support as mentioned in the README deviates further and further from the original intent of 3DS homebrew pioneers. You might as well deprecate every 3DS exploit other than ones that officially support installing B9S and CFW.

Masamune3210 commented 3 years ago

Private cfw can do whatever it wants, it's private. Hax payload support was likely dropped due to the amount of work it takes to account for all the gotchas associated with supporting as many exploits as has been used for the 3ds. CFW isn't designed for piracy, it's an unfortunate byproduct. This late in the life, why would you use anything but b9s

unresolvedsymbol commented 3 years ago

I didn't say CFW was designed for piracy, Luma3DS has piracy enabling patches baked in like SXOS to Atmosphere. Not like it officially supports extensibility though. And I'm not arguing against B9S, but how would one run unSAFE_MODE installer from browserhax for example if *hax payloads were deprecated from everything? Hell, even 3DShell requires Rosalina now - a goddamned SD file browser.

fincs commented 3 years ago

private CFW is still maintained as well

The existence of "private CFW" is completely irrelevant to the discussion and we have no responsibility to support them.

people still claim CIA packaged homebrew like retroarch, etc performs better

This is nonsense that sounds like placebo effect, or outdated versions of Luma3DS/libctru that had bugs.

If you are anti-piracy why exclusively support a CFW designed with it in mind? Removing *hax payload support as mentioned in the README deviates further and further from the original intent of 3DS homebrew pioneers. (...) Luma3DS has piracy enabling patches baked in like SXOS to Atmosphere

Luma3DS is not a piracy focused CFW. Unfortunately, it is still necessary to enable unsigned title installation for the following reasons:

You might as well deprecate every 3DS exploit other than ones that officially support installing B9S and CFW.

Standardising the homebrew loading environment is desirable, because it removes hidden gotchas that are present in older/limited entrypoints & simplifies logic inside libctru to remove ugly workarounds.

Hax payload support was likely dropped

This is false. hax 2.x is still supported in homebrew infrastructure (libctru and hbmenu) precisely because it is still involved in the process of setting up B9S and Luma3DS. If this dependency on hax 2.x is removed in the future, we might consider dropping support, but until then we will continue it.