[XDA-University] dawgdoc:
Again, Thank you [MENTION=4334383]demkantor[/MENTION].

I do have a question/observation or two.

tl;dr:

I created and flashed the signed zip. Some apps showed in the App Drawer and worked. One worked, had an update in Play Store, and generated an error when trying to install the update. Those not in the App Drawer were in /data/app and /data/app-lib. These could not be installed from the Play Store, nor installed by clicking on the .apk in /data/app.

Before the long explanation my questions or thoughts are these and would appreciate your opinion.

1) My zip made a bad install of the troublesome apps and the simple solution would have been to reflash my zip.

2) The signing of the zip was bad and I needed to create a new zip for signing.

3) The zip was corrupted during creation and rebuilding it would have fixed the issues.

4) The apps in question, or their libs were, corrupted when I pulled them. The only fix was to do as I did since the original rom was gone.

5) Since my solution was to delete the apks from /data/app, libs from /data/app-lib, and libs from /datadata, should I have pulled the contents of /datadata, in addition to /data/app and /data/app-lib, from the original rom and included them in the zip?

6) My understanding of how the apps work is incorrect. I should not have tried using apps from a 4.2.2 rom when creating a zip for a 4.3 rom, even with both being CM.

I followed your directions in the OP, for the most part. I pulled /data/app and /data/app-lib from the rom I had been using, CM 10.1.3 (JB 4.2.2). The exception I made was in the script commands to mount/unmount partitions. For this I used the busybox method mentioned recently in the thread.

run_program("/sbin/busybox", "mount", "/data");
run_program("/sbin/busybox", "umount", "/data");

I did this because I was not sure if /data was EMMC or MTD. I checked both the old rom, CM 10.1.3, and the both the updater.sh and update-script in the zip of the new rom, CM 10.2.1 (JB 4.3). I also checked the new rom after it was installed. In trying to verify the partition type, I used adb to run

adb shell mount | grep data
adb shell cat /proc/mounts | grep data

(they both give the same results) but was not sure that /data was mmcblk0p1 even though I doubted that it was mtdblock2. I suspect it is mmcblk0p1 based on size. Rather than pester you, I used the busybox command because it was to be the only method in the flashable zips found in the forums for my device (Captivate i897). After finishing the script, I built the file structure. I opted to use the update-binary from the rom I had just flashed. I chose that update-binary because the Captivate only received official updates to Gingerbread and CM 10.2.x resized both /system and /data partitions. I created the .zip with file-roller, the Gnome archieve manager in Linux. I was able to find testsign.jar at code.google.com to sign the .zip. (The links to testsign in this thread, Amon-Ra's thread, and other fora I found on xda were not working.)

I flashed the rom and then flashed a gapps package. per the instructions on the rom thread. I booted the rom and checked too see if the partition information was any different than that of the earlier rom. I didn't note any differences. I booted back into recovery and flashed the app zip package. After rebooting the rom and spending some time configuring settings I began working with the apps. I checked the App Drawer and saw that some of the apps were present and some were not. Each of those present worked as expected. I went to Play Store and noted that one of the apps present in the App Drawer, Terminal Emulator, had an update available. I attempted to install the update and received an error stating that there was

insufficent space to intall

it. I next tried to install a couple of the apps I included in the flashable zip that had not appeared in the App Drawer and received the same error message as before. Using the built in file manager I saw that all of the apps were in /data/app and, as appropriate, /data/app-lib. Doing some searching on the Captivate fora I saw that it wasn't uncommon to run out of space to install apps due to the decreased size of eiter /data or /datadata. I didn't think this should apply since I had added less than 20 apps. I checked the partition sizes, used space, and free space with

adb shell df
adb shell cat /proc/partitions

The results of all adb commands (CM10.2.1) are in the attachment, adb-printout.txt. None of the partitions of interest seemed to be short on space.

From the file manager I clicked on a couple of the app .apks to try installing with that method and received the same error message as before. One post I found during my search mentioned that if there had been a bad install of an app this error may be seen even if there was adequate space in the partitions. Rather than reflash my app zip I started checking each /data/app and /data/app-lib for each app. I deleted the install from each location for two of the apps and was still unable to install them from the Play Store. My next step was to look in /datadata and uninstall what was there from the same apps. The apps then installed from the Play Store. I then successfully installed an app that was not in my zip, but could not install any of the apps I had not deleted. I was still receiving the same

Insufficent Space

error message. I went back to Play Store and installed more apps that were not in my zip without freeing additional space but could not install those that were in the zip, still receiving a notice of insufficent space. As I deleted more of the offending apps from the file structure I was then able to install them from the Play Store. Everything has run fine since reinstalling from Play Store.