diff --git a/.gitignore b/.gitignore index ea101d6..ffafc52 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ # Custom ignore files +work/ *.app *.cia *.zip diff --git a/readme.md b/readme.md index a685400..6d099be 100644 --- a/readme.md +++ b/readme.md @@ -1,15 +1,15 @@ **Universal Inject Generator** -This script will generate an inject-ready app to inject over the Health & Safety app in the 3DS console. The package includes code by @Syphurith, CTRtool (by profi200) and 3DStool (by dnasdw). +This script will generate inject-ready apps from homebrew CIAs to inject over the Health & Safety app in the 3DS console. The package includes code by @Syphurith, CTRtool (by profi200) and 3DStool (by dnasdw). + +This is used in conjunction with most recent (mine) Decrypt9's "Dump Health&Safety" and "Inject Health&Safety" features. You can only inject .apps smaller or equal in size to the original H&S app. Decrypt9 has a safety check build in and won't proceed with bigger ones. Per CIA, two inject apps will be created - with and without banner - the one with a banner is preferable, but may be to large to inject. This is how it works: -* This is used in conjunction with most recent (mine) Decrypt9's "Dump Health&Safety" and "Inject Health&Safety" features. * Put hs.app (dumped via Decrypt9) plus as many homebrew CIAs as you like into the input folder. * Run go.bat, you'll get one inject-ready .app per CIA. * If the last one for some reason doesn't work, you may try deep-decrypting (via Decrypt9) your CIAs first. * To inject, rename inject-ready .app to hs.app, put it into the root of your 3DS SD card and inject via Decrypt9. -* You can only inject .apps smaller or equal in size to the original H&S app. Decrypt9 has a safety check build in and won't proceed with bigger ones. You should always generate your inject-ready .apps yourself and never take ones from other persons. There might be a version mismatch in the H&S app, leading to it not working otherwise. diff --git a/tools/process.bat b/tools/process.bat index 1c2b55c..94f660c 100644 --- a/tools/process.bat +++ b/tools/process.bat @@ -25,9 +25,10 @@ tools\3dstool -x -f work\inject_exefs.bin --exefs-dir work\inject_exefs echo. echo [+] GENERATE NEW EXEFS copy /y /v work\inject_exefs\code.bin work\hs_exefs\code.bin -rem copy /y /v work\inject_exefs\banner.bnr work\hs_exefs\banner.bnr -rem copy /y /v work\inject_exefs\icon.icn work\hs_exefs\icon.icn tools\3dstool -c -z -t exefs -f work\hs_mod_exefs.bin --exefs-dir work\hs_exefs --header work\hs_exefs.bin +copy /y /v work\inject_exefs\banner.bnr work\hs_exefs\banner.bnr +copy /y /v work\inject_exefs\icon.icn work\hs_exefs\icon.icn +tools\3dstool -c -z -t exefs -f work\hs_mod_banner_exefs.bin --exefs-dir work\hs_exefs --header work\hs_exefs.bin echo. echo [+] GENERATE NEW ROMFS @@ -41,9 +42,13 @@ tools\MergeExHeader work\inject_exhdr.bin work\hs_exhdr.bin work\merge_exhdr.bin echo. echo [+] REBUILD HS INJECT APP -if exist work\hs_logo.bin (tools\3dstool -c -t cxi -f %~n1.app --header work\hs_hdr.bin --exh work\merge_exhdr.bin --plain work\hs_plain.bin --logo work\hs_logo.bin --exefs work\hs_mod_exefs.bin --romfs work\dummy_romfs.bin) else (tools\3dstool -c -t cxi -f %~n1.app --header work\hs_hdr.bin --exh work\merge_exhdr.bin --plain work\hs_plain.bin --exefs work\hs_mod_exefs.bin --romfs work\dummy_romfs.bin) +if exist work\hs_logo.bin (tools\3dstool -c -t cxi -f %~n1_inject_no_banner.app --header work\hs_hdr.bin --exh work\merge_exhdr.bin --plain work\hs_plain.bin --logo work\hs_logo.bin --exefs work\hs_mod_exefs.bin --romfs work\dummy_romfs.bin) else (tools\3dstool -c -t cxi -f %~n1_inject_no_banner.app --header work\hs_hdr.bin --exh work\merge_exhdr.bin --plain work\hs_plain.bin --exefs work\hs_mod_exefs.bin --romfs work\dummy_romfs.bin) +if exist work\hs_logo.bin (tools\3dstool -c -t cxi -f %~n1_inject_with_banner.app --header work\hs_hdr.bin --exh work\merge_exhdr.bin --plain work\hs_plain.bin --logo work\hs_logo.bin --exefs work\hs_mod_banner_exefs.bin --romfs work\dummy_romfs.bin) else (tools\3dstool -c -t cxi -f %~n1_inject_with_banner.app --header work\hs_hdr.bin --exh work\merge_exhdr.bin --plain work\hs_plain.bin --exefs work\hs_mod_banner_exefs.bin --romfs work\dummy_romfs.bin) for %%i in (work\hs.app) do set HS_ORIGINAL_SIZE=%%~zi -for %%i in (%~n1.app) do set HS_INJECT_SIZE=%%~zi -echo [*] HS APP ORIGINAL SIZE: %HS_ORIGINAL_SIZE% byte -echo [*] HS APP INJECT SIZE : %HS_INJECT_SIZE% byte -if HS_ORIGINAL_SIZE LSS HS_INJECT_SIZE (echo [!] INJECT APP IS BIGGER THAN HS APP) else (echo [+] SIZE IS OKAY!) +for %%i in (%~n1_inject_no_banner.app) do set HS_INJECT_N_SIZE=%%~zi +for %%i in (%~n1_inject_with_banner.app) do set HS_INJECT_B_SIZE=%%~zi +echo [+] HS APP ORIGINAL SIZE : %HS_ORIGINAL_SIZE% byte +echo [+] HS APP INJECT (N) SIZE: %HS_INJECT_N_SIZE% byte +if HS_ORIGINAL_SIZE LSS HS_INJECT_N_SIZE (echo [!] INJECT APP IS BIGGER THAN HS APP) +echo [+] HS APP INJECT (B) SIZE: %HS_INJECT_B_SIZE% byte +if HS_ORIGINAL_SIZE LSS HS_INJECT_B_SIZE (echo [!] INJECT APP IS BIGGER THAN HS APP)