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. */