mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2025-10-01 23:27:08 +02:00
merged with atmosphere 0.16.0-p2
This commit is contained in:
parent
d2f48d5e36
commit
4695edc3b7
123
Makefile
123
Makefile
@ -39,7 +39,7 @@ clean:
|
||||
$(MAKE) -C fusee clean
|
||||
rm -rf out
|
||||
|
||||
dist-no-debug: all
|
||||
dist: all
|
||||
$(eval MAJORVER = $(shell grep 'define ATMOSPHERE_RELEASE_VERSION_MAJOR\b' libraries/libvapours/include/vapours/ams/ams_api_version.h \
|
||||
| tr -s [:blank:] \
|
||||
| cut -d' ' -f3))
|
||||
@ -49,67 +49,70 @@ dist-no-debug: all
|
||||
$(eval MICROVER = $(shell grep 'define ATMOSPHERE_RELEASE_VERSION_MICRO\b' libraries/libvapours/include/vapours/ams/ams_api_version.h \
|
||||
| tr -s [:blank:] \
|
||||
| cut -d' ' -f3))
|
||||
$(eval AMSVER = $(MAJORVER).$(MINORVER).$(MICROVER)-$(AMSREV))
|
||||
$(eval AMSVER = out)
|
||||
|
||||
rm -rf ../atmosphere-$(AMSVER).zip
|
||||
rm -rf atmosphere-$(AMSVER)
|
||||
rm -rf out
|
||||
mkdir atmosphere-$(AMSVER)
|
||||
mkdir atmosphere-$(AMSVER)/atmosphere
|
||||
mkdir atmosphere-$(AMSVER)/sept
|
||||
mkdir atmosphere-$(AMSVER)/switch
|
||||
mkdir -p atmosphere-$(AMSVER)/atmosphere/contents/0100000000000008
|
||||
mkdir -p atmosphere-$(AMSVER)/atmosphere/contents/010000000000000D
|
||||
mkdir -p atmosphere-$(AMSVER)/atmosphere/contents/010000000000002B
|
||||
mkdir -p atmosphere-$(AMSVER)/atmosphere/contents/0100000000000032
|
||||
mkdir -p atmosphere-$(AMSVER)/atmosphere/contents/0100000000000034
|
||||
mkdir -p atmosphere-$(AMSVER)/atmosphere/contents/0100000000000036
|
||||
mkdir -p atmosphere-$(AMSVER)/atmosphere/contents/0100000000000037
|
||||
mkdir -p atmosphere-$(AMSVER)/atmosphere/contents/010000000000003C
|
||||
mkdir -p atmosphere-$(AMSVER)/atmosphere/contents/0100000000000042
|
||||
mkdir -p atmosphere-$(AMSVER)/atmosphere/fatal_errors
|
||||
mkdir -p atmosphere-$(AMSVER)/atmosphere/config_templates
|
||||
mkdir -p atmosphere-$(AMSVER)/atmosphere/config
|
||||
cp fusee/fusee-primary/fusee-primary.bin atmosphere-$(AMSVER)/atmosphere/reboot_payload.bin
|
||||
cp fusee/fusee-mtc/fusee-mtc.bin atmosphere-$(AMSVER)/atmosphere/fusee-mtc.bin
|
||||
cp fusee/fusee-secondary/fusee-secondary-experimental.bin atmosphere-$(AMSVER)/atmosphere/fusee-secondary.bin
|
||||
cp fusee/fusee-secondary/fusee-secondary-experimental.bin atmosphere-$(AMSVER)/sept/payload.bin
|
||||
cp sept/sept-primary/sept-primary.bin atmosphere-$(AMSVER)/sept/sept-primary.bin
|
||||
cp sept/sept-secondary/sept-secondary.bin atmosphere-$(AMSVER)/sept/sept-secondary.bin
|
||||
cp sept/sept-secondary/sept-secondary_00.enc atmosphere-$(AMSVER)/sept/sept-secondary_00.enc
|
||||
cp sept/sept-secondary/sept-secondary_01.enc atmosphere-$(AMSVER)/sept/sept-secondary_01.enc
|
||||
cp sept/sept-secondary/sept-secondary_dev_00.enc atmosphere-$(AMSVER)/sept/sept-secondary_dev_00.enc
|
||||
cp sept/sept-secondary/sept-secondary_dev_01.enc atmosphere-$(AMSVER)/sept/sept-secondary_dev_01.enc
|
||||
cp config_templates/BCT.ini atmosphere-$(AMSVER)/atmosphere/config/BCT.ini
|
||||
cp config_templates/override_config.ini atmosphere-$(AMSVER)/atmosphere/config_templates/override_config.ini
|
||||
cp config_templates/system_settings.ini atmosphere-$(AMSVER)/atmosphere/config_templates/system_settings.ini
|
||||
cp config_templates/exosphere.ini atmosphere-$(AMSVER)/atmosphere/config_templates/exosphere.ini
|
||||
cp -r config_templates/kip_patches atmosphere-$(AMSVER)/atmosphere/kip_patches
|
||||
cp -r config_templates/hbl_html atmosphere-$(AMSVER)/atmosphere/hbl_html
|
||||
cp stratosphere/boot2/boot2.nsp atmosphere-$(AMSVER)/atmosphere/contents/0100000000000008/exefs.nsp
|
||||
cp stratosphere/dmnt/dmnt.nsp atmosphere-$(AMSVER)/atmosphere/contents/010000000000000D/exefs.nsp
|
||||
cp stratosphere/erpt/erpt.nsp atmosphere-$(AMSVER)/atmosphere/contents/010000000000002B/exefs.nsp
|
||||
cp stratosphere/eclct.stub/eclct.stub.nsp atmosphere-$(AMSVER)/atmosphere/contents/0100000000000032/exefs.nsp
|
||||
cp stratosphere/fatal/fatal.nsp atmosphere-$(AMSVER)/atmosphere/contents/0100000000000034/exefs.nsp
|
||||
cp stratosphere/creport/creport.nsp atmosphere-$(AMSVER)/atmosphere/contents/0100000000000036/exefs.nsp
|
||||
cp stratosphere/ro/ro.nsp atmosphere-$(AMSVER)/atmosphere/contents/0100000000000037/exefs.nsp
|
||||
cp stratosphere/jpegdec/jpegdec.nsp atmosphere-$(AMSVER)/atmosphere/contents/010000000000003C/exefs.nsp
|
||||
cp stratosphere/pgl/pgl.nsp atmosphere-$(AMSVER)/atmosphere/contents/0100000000000042/exefs.nsp
|
||||
mkdir -p atmosphere-$(AMSVER)/atmosphere/contents/0100000000000032/flags
|
||||
touch atmosphere-$(AMSVER)/atmosphere/contents/0100000000000032/flags/boot2.flag
|
||||
mkdir -p atmosphere-$(AMSVER)/atmosphere/contents/0100000000000037/flags
|
||||
touch atmosphere-$(AMSVER)/atmosphere/contents/0100000000000037/flags/boot2.flag
|
||||
cp troposphere/reboot_to_payload/reboot_to_payload.nro atmosphere-$(AMSVER)/switch/reboot_to_payload.nro
|
||||
cp troposphere/daybreak/daybreak.nro atmosphere-$(AMSVER)/switch/daybreak.nro
|
||||
cd atmosphere-$(AMSVER); zip -r ../atmosphere-EXPERIMENTAL-$(AMSVER).zip ./*; cd ../;
|
||||
cp fusee/fusee-secondary/fusee-secondary.bin atmosphere-$(AMSVER)/atmosphere/fusee-secondary.bin
|
||||
cp fusee/fusee-secondary/fusee-secondary.bin atmosphere-$(AMSVER)/sept/payload.bin
|
||||
|
||||
mkdir -p atmosphere-$(AMSVER)
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/atmosphere
|
||||
mkdir -p atmosphere-$(AMSVER)/base/bootloader/payloads
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/sept
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/switch/daybreak
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000008
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/atmosphere/contents/010000000000000D
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/atmosphere/contents/010000000000002B
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000032
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000034
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000036
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000037
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/atmosphere/contents/010000000000003C
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000042
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/atmosphere/fatal_errors
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/atmosphere/config_templates
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/atmosphere/config
|
||||
|
||||
cp fusee/fusee-mtc/fusee-mtc.bin atmosphere-$(AMSVER)/atmo/atmosphere/fusee-mtc.bin
|
||||
cp fusee/fusee-secondary/fusee-secondary.bin atmosphere-$(AMSVER)/atmo/atmosphere/fusee-secondary.bin
|
||||
cp fusee/fusee-secondary/fusee-secondary.bin atmosphere-$(AMSVER)/atmo/sept/payload.bin
|
||||
|
||||
|
||||
cp sept/sept-primary/sept-primary.bin atmosphere-$(AMSVER)/atmo/sept/sept-primary.bin
|
||||
cp sept/sept-secondary/sept-secondary.bin atmosphere-$(AMSVER)/atmo/sept/sept-secondary.bin
|
||||
cp sept/sept-secondary/sept-secondary_00.enc atmosphere-$(AMSVER)/atmo/sept/sept-secondary_00.enc
|
||||
cp sept/sept-secondary/sept-secondary_01.enc atmosphere-$(AMSVER)/atmo/sept/sept-secondary_01.enc
|
||||
cp sept/sept-secondary/sept-secondary_dev_00.enc atmosphere-$(AMSVER)/atmo/sept/sept-secondary_dev_00.enc
|
||||
cp sept/sept-secondary/sept-secondary_dev_01.enc atmosphere-$(AMSVER)/atmo/sept/sept-secondary_dev_01.enc
|
||||
|
||||
cp config_templates/override_config.ini atmosphere-$(AMSVER)/atmo/atmosphere/config_templates/override_config.ini
|
||||
cp config_templates/system_settings.ini atmosphere-$(AMSVER)/atmo/atmosphere/config_templates/system_settings.ini
|
||||
cp config_templates/exosphere.ini atmosphere-$(AMSVER)/atmo/atmosphere/config_templates/exosphere.ini
|
||||
|
||||
cp -r config_templates/kip_patches atmosphere-$(AMSVER)/atmo/atmosphere/kip_patches
|
||||
cp -r config_templates/hbl_html atmosphere-$(AMSVER)/atmo/atmosphere/hbl_html
|
||||
cp stratosphere/boot2/boot2.nsp atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000008/exefs.nsp
|
||||
cp stratosphere/dmnt/dmnt.nsp atmosphere-$(AMSVER)/atmo/atmosphere/contents/010000000000000D/exefs.nsp
|
||||
cp stratosphere/erpt/erpt.nsp atmosphere-$(AMSVER)/atmo/atmosphere/contents/010000000000002B/exefs.nsp
|
||||
cp stratosphere/eclct.stub/eclct.stub.nsp atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000032/exefs.nsp
|
||||
cp stratosphere/fatal/fatal.nsp atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000034/exefs.nsp
|
||||
cp stratosphere/creport/creport.nsp atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000036/exefs.nsp
|
||||
cp stratosphere/ro/ro.nsp atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000037/exefs.nsp
|
||||
cp stratosphere/jpegdec/jpegdec.nsp atmosphere-$(AMSVER)/atmo/atmosphere/contents/010000000000003C/exefs.nsp
|
||||
cp stratosphere/pgl/pgl.nsp atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000042/exefs.nsp
|
||||
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000032/flags
|
||||
touch atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000032/flags/boot2.flag
|
||||
mkdir -p atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000037/flags
|
||||
touch atmosphere-$(AMSVER)/atmo/atmosphere/contents/0100000000000037/flags/boot2.flag
|
||||
cp fusee/fusee-primary/fusee-primary.bin atmosphere-$(AMSVER)/base/bootloader/payloads/fusee-primary.bin
|
||||
cp troposphere/daybreak/daybreak.nro atmosphere-$(AMSVER)/atmo/switch/daybreak/daybreak.nro
|
||||
cd atmosphere-$(AMSVER); zip -r ../atmosphere-$(AMSVER).zip ./*; cd ../;
|
||||
rm -r atmosphere-$(AMSVER)
|
||||
mkdir out
|
||||
mv atmosphere-EXPERIMENTAL-$(AMSVER).zip out/atmosphere-EXPERIMENTAL-$(AMSVER).zip
|
||||
mv atmosphere-$(AMSVER).zip out/atmosphere-$(AMSVER).zip
|
||||
cp fusee/fusee-primary/fusee-primary.bin out/fusee-primary.bin
|
||||
mv atmosphere-$(AMSVER).zip ../atmosphere-$(AMSVER).zip
|
||||
|
||||
dist: dist-no-debug
|
||||
dist-debug: debug
|
||||
$(eval MAJORVER = $(shell grep 'define ATMOSPHERE_RELEASE_VERSION_MAJOR\b' libraries/libvapours/include/vapours/ams/ams_api_version.h \
|
||||
| tr -s [:blank:] \
|
||||
| cut -d' ' -f3))
|
||||
@ -131,7 +134,6 @@ dist: dist-no-debug
|
||||
cp exosphere/loader_stub/loader_stub.elf atmosphere-$(AMSVER)-debug/exosphere-loader-stub.elf
|
||||
cp exosphere/program/program.elf atmosphere-$(AMSVER)-debug/exosphere-program.elf
|
||||
cp exosphere/warmboot/warmboot.elf atmosphere-$(AMSVER)-debug/exosphere-warmboot.elf
|
||||
cp exosphere/mariko_fatal/mariko_fatal.elf atmosphere-$(AMSVER)-debug/exosphere-mariko-fatal.elf
|
||||
cp exosphere/program/sc7fw/sc7fw.elf atmosphere-$(AMSVER)-debug/exosphere-sc7fw.elf
|
||||
cp exosphere/program/rebootstub/rebootstub.elf atmosphere-$(AMSVER)-debug/exosphere-rebootstub.elf
|
||||
cp mesosphere/kernel_ldr/kernel_ldr.elf atmosphere-$(AMSVER)-debug/kernel_ldr.elf
|
||||
@ -141,16 +143,15 @@ dist: dist-no-debug
|
||||
cp stratosphere/creport/creport.elf atmosphere-$(AMSVER)-debug/creport.elf
|
||||
cp stratosphere/dmnt/dmnt.elf atmosphere-$(AMSVER)-debug/dmnt.elf
|
||||
cp stratosphere/eclct.stub/eclct.stub.elf atmosphere-$(AMSVER)-debug/eclct.stub.elf
|
||||
cp stratosphere/erpt/erpt.elf atmosphere-$(AMSVER)-debug/erpt.elf
|
||||
cp stratosphere/fatal/fatal.elf atmosphere-$(AMSVER)-debug/fatal.elf
|
||||
cp stratosphere/jpegdec/jpegdec.elf atmosphere-$(AMSVER)-debug/jpegdec.elf
|
||||
cp stratosphere/loader/loader.elf atmosphere-$(AMSVER)-debug/loader.elf
|
||||
cp stratosphere/ncm/ncm.elf atmosphere-$(AMSVER)-debug/ncm.elf
|
||||
cp stratosphere/pgl/pgl.elf atmosphere-$(AMSVER)-debug/pgl.elf
|
||||
cp stratosphere/pm/pm.elf atmosphere-$(AMSVER)-debug/pm.elf
|
||||
cp stratosphere/ro/ro.elf atmosphere-$(AMSVER)-debug/ro.elf
|
||||
cp stratosphere/sm/sm.elf atmosphere-$(AMSVER)-debug/sm.elf
|
||||
cp stratosphere/spl/spl.elf atmosphere-$(AMSVER)-debug/spl.elf
|
||||
cp stratosphere/erpt/erpt.elf atmosphere-$(AMSVER)-debug/erpt.elf
|
||||
cp stratosphere/jpegdec/jpegdec.elf atmosphere-$(AMSVER)-debug/jpegdec.elf
|
||||
cp stratosphere/pgl/pgl.elf atmosphere-$(AMSVER)-debug/pgl.elf
|
||||
cp troposphere/daybreak/daybreak.elf atmosphere-$(AMSVER)-debug/daybreak.elf
|
||||
cd atmosphere-$(AMSVER)-debug; zip -r ../atmosphere-$(AMSVER)-debug.zip ./*; cd ../;
|
||||
rm -r atmosphere-$(AMSVER)-debug
|
||||
|
@ -9,20 +9,40 @@ Building Atmosphère is a very straightforward process that relies almost exclus
|
||||
|
||||
## Instructions
|
||||
1. Follow the guide located [here](https://devkitpro.org/wiki/Getting_Started) to install and configure all the tools necessary for the build process.
|
||||
1. `sudo apt-get install gdebi-core`
|
||||
1. `wget https://github.com/devkitPro/pacman/releases/download/v1.0.2/devkitpro-pacman.amd64.deb`
|
||||
1. `sudo gdebi devkitpro-pacman.amd64.deb -y`
|
||||
|
||||
2. Install the following packages via (dkp-)pacman:
|
||||
1. Sure that `zip` is installed. Instead `sudo apt-get install zip -y`
|
||||
|
||||
1. Install the following packages via `sudo dkp-pacman -S` :
|
||||
+ `switch-dev`
|
||||
+ `switch-glm`
|
||||
+ `switch-libjpeg-turbo`
|
||||
+ `devkitARM`
|
||||
+ `devkitarm-rules`
|
||||
+ `switch-glm`
|
||||
|
||||
3. (Optional) In order to build [sept](components/sept.md) the pycryptodome PyPi package is required, which can be installed by running `pip install pycryptodome` under the installed Python environment of your choice or by installing the complete zip package to support the `make dist` recipe. This is an optional step included for advanced users who have the ability to provide the necessary encryption/signing keys themselves.
|
||||
1. Build and install master branch of libnx and needed extensions
|
||||
|
||||
4. It is, instead, possible to build [sept](components/sept.md) by providing previously encrypted/signed binaries distributed by official Atmosphère release packages. In order to do so, export the following variables in your current environment:
|
||||
+ `git clone https://github.com/switchbrew/libnx.git`
|
||||
+ `cd libnx`
|
||||
+ `make install`
|
||||
+ Unpack maked tar in `libnx/nx` to `opt/devkitpro/libnx`
|
||||
+ `sudo apt install python-pip`
|
||||
+ `sudo apt install python3-pip`
|
||||
+ `pip install pycryptodome`
|
||||
+ `pip install lz4==0.10.0`
|
||||
|
||||
1. It is, instead, possible to build [sept](components/sept.md) by providing previously encrypted/signed binaries distributed by official Atmosphère release packages. In order to do so, export the following variables in your current environment (`sudo nano /etc/environment`):
|
||||
+ `SEPT_00_ENC_PATH` (must point to the `sept-secondary_00.enc` file)
|
||||
+ `SEPT_01_ENC_PATH` (must point to the `sept-secondary_01.enc` file)
|
||||
+ `SEPT_DEV_00_ENC_PATH` (must point to the `sept-secondary_dev_00.enc` file)
|
||||
+ `SEPT_DEV_01_ENC_PATH` (must point to the `sept-secondary_dev_01.enc` file)
|
||||
|
||||
5. Finally, clone the Atmosphère repository and run `make` under its root directory.
|
||||
+ `export SEPT_00_ENC_PATH="~/sept/sept-secondary_00.enc"`
|
||||
+ `export SEPT_01_ENC_PATH="~/sept/sept-secondary_01.enc"`
|
||||
+ `export SEPT_DEV_00_ENC_PATH="~/sept/sept-secondary_dev_00.enc"`
|
||||
+ `export SEPT_DEV_01_ENC_PATH="~/sept/sept-secondary_dev_01.enc"`
|
||||
|
||||
1. Finally, clone the Atmosphère repository and run `make` under its root directory.
|
||||
|
18
docs/cheat_sheet.txt
Normal file
18
docs/cheat_sheet.txt
Normal file
@ -0,0 +1,18 @@
|
||||
export SEPT_01_ENC_PATH="~/sept/sept-secondary_01.enc"
|
||||
export SEPT_00_ENC_PATH="~/sept/sept-secondary_00.enc"
|
||||
export SEPT_DEV_00_ENC_PATH="~/sept/sept-secondary_dev_00.enc"
|
||||
export SEPT_DEV_01_ENC_PATH="~/sept/sept-secondary_dev_01.enc"
|
||||
|
||||
git remote add atmo https://github.com/Atmosphere-NX/Atmosphere.git
|
||||
git fetch atmo
|
||||
git pull atmo master
|
||||
|
||||
git checkout tags/0.15.0 -b 0.15.0
|
||||
|
||||
git clean -xdf
|
||||
|
||||
git remote add fspusb https://github.com/XorTroll/Atmosphere.git
|
||||
git fetch fspusb
|
||||
git cherry-pick <commit>
|
||||
|
||||
sudo nano ~/.bashrc - export
|
@ -6,7 +6,7 @@
|
||||
[subrepo]
|
||||
remote = https://github.com/Atmosphere-NX/Atmosphere-libs
|
||||
branch = master
|
||||
commit = 49c1ace8906a967f2c92d369a0c66779b9cd225b
|
||||
parent = 2b93bbd9ee174863dbf5c611c0d9d159fe9e6e31
|
||||
commit = 2c3ccef17e9b267a5d9d232f1aba689f2c591b95
|
||||
parent = d2f48d5e36cb2ba4e8cc014238457bd75df81797
|
||||
method = merge
|
||||
cmdver = 0.4.1
|
||||
|
@ -65,8 +65,8 @@ namespace ams::mitm {
|
||||
FsFile g_emummc_file;
|
||||
|
||||
/* Maintain exclusive access to the fusee-secondary archive. */
|
||||
FsFile g_secondary_file;
|
||||
FsFile g_sept_payload_file;
|
||||
// FsFile g_secondary_file;
|
||||
// FsFile g_sept_payload_file;
|
||||
|
||||
constexpr inline bool IsHexadecimal(const char *str) {
|
||||
while (*str) {
|
||||
@ -134,14 +134,14 @@ namespace ams::mitm {
|
||||
/* NOTE: g_bis_key_file is intentionally not closed here. This prevents any other process from opening it. */
|
||||
}
|
||||
|
||||
/* Open a reference to the fusee-secondary archive. */
|
||||
/* As upcoming/current atmosphere releases will contain more than one zip which users much choose between, */
|
||||
/* maintaining an open reference prevents cleanly the issue of "automatic" updaters selecting the incorrect */
|
||||
/* zip, and encourages good updating hygiene -- atmosphere should not be updated on SD while HOS is alive. */
|
||||
{
|
||||
R_ABORT_UNLESS(mitm::fs::OpenSdFile(std::addressof(g_secondary_file), "/atmosphere/fusee-secondary.bin", ams::fs::OpenMode_Read));
|
||||
R_ABORT_UNLESS(mitm::fs::OpenSdFile(std::addressof(g_sept_payload_file), "/sept/payload.bin", ams::fs::OpenMode_Read));
|
||||
}
|
||||
// /* Open a reference to the fusee-secondary archive. */
|
||||
// /* As upcoming/current atmosphere releases will contain more than one zip which users much choose between, */
|
||||
// /* maintaining an open reference prevents cleanly the issue of "automatic" updaters selecting the incorrect */
|
||||
// /* zip, and encourages good updating hygiene -- atmosphere should not be updated on SD while HOS is alive. */
|
||||
// {
|
||||
// R_ABORT_UNLESS(mitm::fs::OpenSdFile(std::addressof(g_secondary_file), "/atmosphere/fusee-secondary.bin", ams::fs::OpenMode_ReadWrite));
|
||||
// R_ABORT_UNLESS(mitm::fs::OpenSdFile(std::addressof(g_sept_payload_file), "/sept/payload.bin", ams::fs::OpenMode_ReadWrite));
|
||||
// }
|
||||
}
|
||||
|
||||
/* Initialization implementation */
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "ns_mitm/nsmitm_module.hpp"
|
||||
#include "hid_mitm/hidmitm_module.hpp"
|
||||
#include "sysupdater/sysupdater_module.hpp"
|
||||
// #include "fsp_usb/fspusb_module.hpp"
|
||||
|
||||
namespace ams::mitm {
|
||||
|
||||
@ -37,7 +38,7 @@ namespace ams::mitm {
|
||||
ModuleId_NsMitm,
|
||||
ModuleId_HidMitm,
|
||||
ModuleId_Sysupdater,
|
||||
|
||||
// ModuleId_FspUsb,
|
||||
ModuleId_Count,
|
||||
};
|
||||
|
||||
@ -70,6 +71,7 @@ namespace ams::mitm {
|
||||
GetModuleDefinition<ns::MitmModule>(),
|
||||
GetModuleDefinition<hid::MitmModule>(),
|
||||
GetModuleDefinition<sysupdater::MitmModule>(),
|
||||
// GetModuleDefinition<fspusb::MitmModule>(),
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -28,6 +28,8 @@ namespace ams::mitm::settings {
|
||||
settings::FirmwareVersion g_firmware_version;
|
||||
settings::FirmwareVersion g_ams_firmware_version;
|
||||
|
||||
int g_kfr_firmware_version = 0;
|
||||
|
||||
void CacheFirmwareVersion() {
|
||||
std::scoped_lock lk(g_firmware_version_lock);
|
||||
|
||||
@ -35,6 +37,30 @@ namespace ams::mitm::settings {
|
||||
return;
|
||||
}
|
||||
|
||||
{
|
||||
/* Mount the SD card. */
|
||||
if (R_SUCCEEDED(fs::MountSdCard("sdmc"))) {
|
||||
ams::fs::FileHandle file;
|
||||
if (R_SUCCEEDED(fs::OpenFile(std::addressof(file), "sdmc:/switch/kefirupdater/version", fs::OpenMode_Read))) {
|
||||
ON_SCOPE_EXIT { ams::fs::CloseFile(file); };
|
||||
|
||||
/* Get file size. */
|
||||
s64 file_size;
|
||||
R_ABORT_UNLESS(fs::GetFileSize(std::addressof(file_size), file));
|
||||
|
||||
/* Allocate cheat txt buffer. */
|
||||
char *kef_txt = static_cast<char *>(std::malloc(file_size + 1));
|
||||
ON_SCOPE_EXIT { std::free(kef_txt); };
|
||||
|
||||
/* Read cheats into buffer. */
|
||||
R_ABORT_UNLESS(fs::ReadFile(file, 0, kef_txt, file_size));
|
||||
kef_txt[file_size] = '\x00';
|
||||
|
||||
g_kfr_firmware_version = strtol(kef_txt, NULL, 10);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Mount firmware version data archive. */
|
||||
{
|
||||
R_ABORT_UNLESS(ams::fs::MountSystemData("sysver", ncm::SystemDataId::SystemVersion));
|
||||
@ -56,19 +82,19 @@ namespace ams::mitm::settings {
|
||||
const auto api_info = exosphere::GetApiInfo();
|
||||
const char emummc_char = emummc::IsActive() ? 'E' : 'S';
|
||||
|
||||
/* NOTE: While Mesosphere is in experimental/opt-in, we will display it as part of the firmware. */
|
||||
const char mesosphere_char = svc::IsKernelMesosphere() ? 'M' : '0';
|
||||
|
||||
/* TODO: Remove separate display for mesosphere vs not mesosphere in Atmosphere 1.0.0. */
|
||||
AMS_ABORT_UNLESS(api_info.GetMajorVersion() == 0);
|
||||
|
||||
/* NOTE: We have carefully accounted for the size of the string we print. */
|
||||
/* No truncation occurs assuming two-digits for all version number components. */
|
||||
char display_version[sizeof(g_ams_firmware_version.display_version)];
|
||||
|
||||
std::snprintf(display_version, sizeof(display_version), "%s|AMS %c.%u.%u|%c", g_ams_firmware_version.display_version, mesosphere_char, api_info.GetMinorVersion(), api_info.GetMicroVersion(), emummc_char);
|
||||
|
||||
std::memcpy(g_ams_firmware_version.display_version, display_version, sizeof(display_version));
|
||||
/* GCC complains about the following snprintf possibly truncating, but this is not a problem and has been carefully accounted for. */
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wformat-truncation"
|
||||
{
|
||||
char display_version[sizeof(g_ams_firmware_version.display_version)];
|
||||
if ( g_kfr_firmware_version != 0 )
|
||||
std::snprintf(display_version, sizeof(display_version), "%s|KEF%d-%u.%u.%u|%c", g_ams_firmware_version.display_version, g_kfr_firmware_version, api_info.GetMajorVersion(), api_info.GetMinorVersion(), api_info.GetMicroVersion(), emummc_char);
|
||||
else
|
||||
std::snprintf(display_version, sizeof(display_version), "%s|KEF-%u.%u.%u|%c", g_ams_firmware_version.display_version, api_info.GetMajorVersion(), api_info.GetMinorVersion(), api_info.GetMicroVersion(), emummc_char);
|
||||
|
||||
std::memcpy(g_ams_firmware_version.display_version, display_version, sizeof(display_version));
|
||||
}
|
||||
#pragma GCC diagnostic pop
|
||||
}
|
||||
|
||||
g_cached_firmware_version = true;
|
||||
|
@ -50,15 +50,15 @@ namespace ams::ldr {
|
||||
}
|
||||
|
||||
bool IsDevelopmentForAntiDowngradeCheck() {
|
||||
return g_development_for_anti_downgrade_check;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool IsDevelopmentForAcidSignatureCheck() {
|
||||
return g_development_for_acid_signature_check;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool IsEnabledProgramVerification() {
|
||||
return g_enabled_program_verification;
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -132,7 +132,7 @@ namespace ams::ldr {
|
||||
const bool is_signature_valid = crypto::VerifyRsa2048PssSha256(sig, sig_size, mod, mod_size, exp, exp_size, msg, msg_size);
|
||||
R_UNLESS(is_signature_valid || !IsEnabledProgramVerification(), ResultInvalidAcidSignature());
|
||||
|
||||
meta->check_verification_data = is_signature_valid;
|
||||
meta->check_verification_data = false;
|
||||
return ResultSuccess();
|
||||
}
|
||||
|
||||
|
1353
troposphere/daybreak/nanovg/include/deko3d.h
Normal file
1353
troposphere/daybreak/nanovg/include/deko3d.h
Normal file
File diff suppressed because it is too large
Load Diff
1108
troposphere/daybreak/nanovg/include/deko3d.hpp
Normal file
1108
troposphere/daybreak/nanovg/include/deko3d.hpp
Normal file
File diff suppressed because it is too large
Load Diff
1353
troposphere/daybreak/nanovg/include/nanovg/deko3d.h
Normal file
1353
troposphere/daybreak/nanovg/include/nanovg/deko3d.h
Normal file
File diff suppressed because it is too large
Load Diff
1108
troposphere/daybreak/nanovg/include/nanovg/deko3d.hpp
Normal file
1108
troposphere/daybreak/nanovg/include/nanovg/deko3d.hpp
Normal file
File diff suppressed because it is too large
Load Diff
@ -62,8 +62,8 @@ namespace dbk {
|
||||
/* Update install state. */
|
||||
char g_update_path[FS_MAX_PATH];
|
||||
bool g_reset_to_factory = false;
|
||||
bool g_exfat_supported = false;
|
||||
bool g_use_exfat = false;
|
||||
bool g_exfat_supported = true;
|
||||
bool g_use_exfat = true;
|
||||
|
||||
constexpr u32 MaxTapMovement = 20;
|
||||
|
||||
@ -881,7 +881,7 @@ namespace dbk {
|
||||
/* Check if exfat is supported. */
|
||||
g_exfat_supported = m_update_info.exfat_supported && R_SUCCEEDED(m_validation_info.exfat_result);
|
||||
if (!g_exfat_supported) {
|
||||
g_use_exfat = false;
|
||||
g_use_exfat = true;
|
||||
}
|
||||
|
||||
/* Warn the user if they're updating with exFAT supposed to be supported but not present/corrupted. */
|
||||
@ -941,11 +941,8 @@ namespace dbk {
|
||||
break;
|
||||
}
|
||||
|
||||
if (g_exfat_supported) {
|
||||
ChangeMenu(std::make_shared<ChooseExfatMenu>(g_current_menu));
|
||||
} else {
|
||||
ChangeMenu(std::make_shared<WarningMenu>(g_current_menu, std::make_shared<InstallUpdateMenu>(g_current_menu), "Ready to begin update installation", "Are you sure you want to proceed?"));
|
||||
}
|
||||
ChangeMenu(std::make_shared<WarningMenu>(g_current_menu, std::make_shared<InstallUpdateMenu>(g_current_menu), "Ready to begin update installation", "Are you sure you want to proceed?"));
|
||||
|
||||
}
|
||||
|
||||
this->UpdateButtons();
|
||||
@ -997,7 +994,7 @@ namespace dbk {
|
||||
if (const Button *activated_button = this->GetActivatedButton(); activated_button != nullptr) {
|
||||
switch (activated_button->id) {
|
||||
case Fat32ButtonId:
|
||||
g_use_exfat = false;
|
||||
g_use_exfat = true;
|
||||
break;
|
||||
case ExFatButtonId:
|
||||
g_use_exfat = true;
|
||||
|
Loading…
Reference in New Issue
Block a user