Wrap.bin is located at shared/Launcher/wrap.bin
And menusave is located in the private.sav of retail launcher (located at title/0030017/484e4145/data/private.sav. it's a fat12 container so an app like WinImage is recommended for extracting/injecting the menusave.dat file properly. Though I guess you could get away with using hex editor. The offsets will be different. The container it self isn't signed. So you don't need a special program assuming you don't attempt to change the file size of the file contained within it)
I tested this in No$GBA. I can add an icon this way, but the app i tried it on (hbmenu) showed up as a white icon. (I guess because the emulator doesn't patch out RSA sig checks...even though I enabled that option...Sigh guess I can't test homebrew this way. It blackscreen errors if I attempt to boot it. Maybe RSA check is removed in emulator but the HMAC SHA CRC things for the arm7/arm9 and icon sections in the DSi Extended Header aren't patched out in emulation?)
I was able to get the icon to show up by simply adding the TID for the new app to the list in wrap.bin/menusave.dat using a hex editor, so you don't need some fancy patcher for this I assume.
But perhaps on hardware an with unmodified SRLs you could get this to work. You may need a valid TMD file for the game you want to install. Not sure if Retail Launcher checks ticket/TMD though. You may have a hard time generating a valid ticket for your console (as that's console unique). TMDs are not console specific though as far as I can tell. So you'd need a minimum a legit TMD of the game provided by someone who had installed it from eShop.
Maybe there's something that can generate the ticket for you. But I'm not aware of it. TWLTool does this? I recall it may have had a feature relating to that added recently.
EDIT:
Found Wulfy's relevent post about the tickets:
Updated to 1.5! TWLTool now supports de/encrypting system files using ES file encryption, including tickets and dev.kp. Thanks to nocash for documenting how that's done!
Theoretically, having your decrypted dev.kp should allow you to reinstall DSiWarehax forever, since you can sign tad files. This gets around the check added in 1.4.something where you can't install TADs signed by another system. I don't know if the actual tools are quite there yet, I may look into it soon.
This is the last required step to install game you did not acquire from eShop. It's possible to make a ticket. I guess by "TAD" Wulfy means the file that gets saved to SD when you export a game to SD from DSi System Settings. This file had additional layers of protection on 3DS, but it's just a normal TAD on DSi? The same kind of TADs the SDK used for twlNmenu? That's a dev app though so can't be used on retail hardware. But maybe "TAD" files used by DSI System Settings for importing apps back to nand are the same?
There is no tools for this yet I guess? And now that I think about it, if one can make a "TAD" that DSi System Settings can import you won't have to mess around with wrap.bin/menusave.dat anyways.
DSi System Settings will update that for you. But perhaps retail launcher doesn't check ticket on launch of already installed games? Someone has to grab a TMD/SRL of a game they never installed before and manually install them, then update the wrap.bin/menusave.bin to see if that's the case. Obviously if done this way, you will have to avoid using Data Management. Just as with 3DS, Data Management will nuke apps that don't have valid tickets.
