Also build inject .apps with banners

This commit is contained in:
d0k3 2015-11-04 20:32:37 +01:00
parent d48921c25d
commit a325db2942
3 changed files with 16 additions and 10 deletions

1
.gitignore vendored
View file

@ -1,4 +1,5 @@
# Custom ignore files # Custom ignore files
work/
*.app *.app
*.cia *.cia
*.zip *.zip

View file

@ -1,15 +1,15 @@
**Universal Inject Generator** **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 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. * 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. * 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. * 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. * 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. 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.

View file

@ -25,9 +25,10 @@ tools\3dstool -x -f work\inject_exefs.bin --exefs-dir work\inject_exefs
echo. echo.
echo [+] GENERATE NEW EXEFS echo [+] GENERATE NEW EXEFS
copy /y /v work\inject_exefs\code.bin work\hs_exefs\code.bin 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 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.
echo [+] GENERATE NEW ROMFS echo [+] GENERATE NEW ROMFS
@ -41,9 +42,13 @@ tools\MergeExHeader work\inject_exhdr.bin work\hs_exhdr.bin work\merge_exhdr.bin
echo. echo.
echo [+] REBUILD HS INJECT APP 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 (work\hs.app) do set HS_ORIGINAL_SIZE=%%~zi
for %%i in (%~n1.app) do set HS_INJECT_SIZE=%%~zi for %%i in (%~n1_inject_no_banner.app) do set HS_INJECT_N_SIZE=%%~zi
echo [*] HS APP ORIGINAL SIZE: %HS_ORIGINAL_SIZE% byte for %%i in (%~n1_inject_with_banner.app) do set HS_INJECT_B_SIZE=%%~zi
echo [*] HS APP INJECT SIZE : %HS_INJECT_SIZE% byte echo [+] HS APP ORIGINAL SIZE : %HS_ORIGINAL_SIZE% byte
if HS_ORIGINAL_SIZE LSS HS_INJECT_SIZE (echo [!] INJECT APP IS BIGGER THAN HS APP) else (echo [+] SIZE IS OKAY!) 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)