02/15/2013, 12:14 PM
I haven't thought of a clever intro for this, so I'll go straight to the point. When you download an app off of App Catalog, it downloads a package file, and installs from that. However, even if you look hard, you won't find the file anywhere. You might have caught a glimpse of it during downloading or install, but it disappears as soon as the install is done. There is an easy way of disabling this behaviour.
Here's the app installation workflow:
1. User requests app download from App Catalog frontend.
2. App Catalog rounds up the necessary info, and sends it to LunaDownloadMgr
3. LunaDownloadMgr processes the data, and does some preparation work. It downloads the app icon, and tells App Catalog and LunaSysMgr about it.
4. It then downloads the app IPK.
5. When done, it calls the App Installer service (in LunaSysMgr) and tells it to install the app.
6. LunaSysMgr calls ApplicationInstallerUtility to install the app.
7. ApplicationInstallerUtility does stuff, eventually calling ipkg.
8. When done, App Installer does some cleanup, including removal of the source IPK.
9. Everything is informed that the app is installed.
As you can see, the App Installer service removes the source IPK, and that's why you can't find it. A couple of things to note:
1. IPKs are downloaded to /media/internal/downloads, just like anything else you download on webOS
2. The source IPK removal happens regardless if you install from App Catalog or not. As long as you use the App Installer service to install apps, the IPK will get removed.
(So that's insurance for myself that I'm not defeating some security measure in App Catalog, because the behaviour is completely independent of App Catalog, even though its intentions might be specifically for App Catalog.)
OK, enough technical details. How do we disable this behaviour? Simply, add an entry into the Luna settings file.
1. You need to have shell access to your device, either on the device itself or via a computer. I'm not going to list the details of how to get shell access, since I've probably written about it in some of my other tutorials in my resource list. Check there first.
2. Once you open a shell, type these commands:
The above remounts your rootfs as R/W, backs up your luna.conf file, then opens it up in vi (a text editor).
cp luna.conf luna.conf.bak
This will search for the text "debug" and jump there. At the bottom of the screen you can see what you're typing.
4. Hit "I" on your keyboard, then use the arrow keys to navigate to the end of the Debug list, so your cursor is right below "DumpLauncherAtlas=false".
5.Type the following, and inserting a newline at the end, for formatting:
6. Press Escape, then Shift-ZZ. This saves the file.
This will reboot your device.
After that, pick any app to test, then when the app's done installing go to /media/internal/downloads (or go into USB Drive mode and find the downloads folder), and you should see an IPK file with the app's name in it.
Too much to follow? Apply the attached patch.