Aller au contenu


UnicornPlus

Inscrit(e) (le) 04 juil. 2018
Déconnecté Dernière activité nov. 24 2019 16:38
-----

Messages que j'ai postés

Dans le sujet : [Switch] Tinfoil / Lithium 4.10 disponibles

15 septembre 2019 - 17:39

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