Attention au fork d'Atmosphere ( https://github.com/blawar/rajnx2 )
si on regarde les différences entre les deux versions, les fichiers "stratosphere/ams_mitm/source/fs_mitm/fsmitm_service.cpp" sont pas identiques.
et si on analyse le contenu de ce fichier, le fork enlève la protection de la lecture/écriture de CAL0/PRODINFO ( https://switchbrew.o...iki/Calibration ).
CAL0/PRODINFO contient pleins d'informations et surtout les certificat des consoles.
Sauf erreur de ma part, cette modification autorise donc tout les homebrew a pouvoir lire et écrire CAL0/PRODINFO.
Voici le diff de ce fichier :
--- Atmosphere/stratosphere/ams_mitm/source/fs_mitm/fsmitm_service.cpp 2019-09-15 17:25:19.540942600 +0200
+++ rajnx2/stratosphere/ams_mitm/source/fs_mitm/fsmitm_service.cpp 2019-09-15 17:23:39.562529100 +0200
@@ -234,37 +234,11 @@
FsStorage bis_storage;
R_TRY(fsOpenBisStorageFwd(this->forward_service.get(), &bis_storage, bis_partition_id));
- const bool is_sysmodule = sts::ncm::IsSystemTitleId(this->title_id);
- const bool has_bis_write_flag = Utils::HasFlag(static_cast<u64>(this->title_id), "bis_write");
- const bool has_cal0_read_flag = Utils::HasFlag(static_cast<u64>(this->title_id), "cal_read");
-
/* Set output storage. */
if (bis_partition_id == FsBisStorageId_Boot0) {
out_storage.SetValue(std::make_shared<IStorageInterface>(new Boot0Storage(bis_storage, this->title_id)));
- } else if (bis_partition_id == FsBisStorageId_CalibrationBinary) {
- /* PRODINFO should *never* be writable. */
- if (is_sysmodule || has_cal0_read_flag) {
- out_storage.SetValue(std::make_shared<IStorageInterface>(new ReadOnlyStorageAdapter(new ProxyStorage(bis_storage))));
- } else {
- /* Do not allow non-sysmodules to read *or* write CAL0. */
- fsStorageClose(&bis_storage);
- return ResultFsPermissionDenied;
- }
- } else {
- if (is_sysmodule || has_bis_write_flag) {
- /* Sysmodules should still be allowed to read and write. */
- out_storage.SetValue(std::make_shared<IStorageInterface>(new ProxyStorage(bis_storage)));
- } else if (Utils::IsHblTid(static_cast<u64>(this->title_id)) &&
- ((FsBisStorageId_BootConfigAndPackage2NormalMain <= bis_partition_id && bis_partition_id <= FsBisStorageId_BootConfigAndPackage2RepairSub) ||
- bis_partition_id == FsBisStorageId_Boot1)) {
- /* Allow HBL to write to boot1 (safe firm) + package2. */
- /* This is needed to not break compatibility with ChoiDujourNX, which does not check for write access before beginning an update. */
- /* TODO: get fixed so that this can be turned off without causing bricks :/ */
- out_storage.SetValue(std::make_shared<IStorageInterface>(new ProxyStorage(bis_storage)));
- } else {
- /* Non-sysmodules should be allowed to read. */
- out_storage.SetValue(std::make_shared<IStorageInterface>(new ReadOnlyStorageAdapter(new ProxyStorage(bis_storage))));
- }
+ } else {
+ out_storage.SetValue(std::make_shared<IStorageInterface>(new ProxyStorage(bis_storage)));
}
/* Copy domain id. */



Mon contenu
Non spécifié
