[Nexus 6 Themes and Apps] SuperSimian:
I was facing an issue ever since I installed V4A as a user app as an update to get convolver working, every time I updated my ROM (offial CM13), V4A would disappear from the app drawer, however the app was still located in system/priv-app/V4A and app managers (TB) would report no V4A installation present.

I didn't quite comprehend the reason to this, I mean, the installer script get's rid of all V4A installations beforehand to avoid compatibility issues between packages, so all previous installations including USER V4A and it's data would be removed, so all I thought I would have to do is reinstall V4A as a user app every time I updated the package to get full functionality back.

After updating my ROM (I wipe system to update) I re-flashed all my things including the latest Viper|Atmos package to find my user installation AND system installation both missing, dalvik and data for V4A were also missing, after this I proceeded to recovery and repeatedly tried to get V4A back (at least the system app) by re-wiping system and rebooting, deleting su.d folder (I run a permissive kernel) and many other thing's I don't remember.

Finally after 5 - 7 reboots I tried installing V4A and immediately

uninstalling

and proceeded to reboot once more and voila! VP4 was back as a system app. My guess is that when the installer script deletes both data/app/VP4 and data/data/V4A something else is missing, like a log of V4A being uninstalled (I have no clue).

Anyway, to solve this issue permanently I had to edit the installer script for Viper|Atmos package and removed all the lines that were deleting files except "delete("/tmp/runme.sh");". Now every time I update my ROM or the same version of the package, I won't lose any app nor it's data.

Here Is my updater-script now.

show_progress(0.1, 0);
ui_print(".................................");
ui_print(".................................");
ui_print("... ViPER|Atmos™ ...");
ui_print("... 5.0 ...");
ui_print("... ...");
ui_print("... Sony™ Beats™ ...");
ui_print("... Edition ...");
ui_print("... ...");
ui_print("... by ...");
ui_print("... guitardedhero ...");
ui_print(".................................");
ui_print(".................................");
ui_print("Mounting system...");
ui_print("Mounting data...");
ui_print("Mounting vendor...");
run_program("/sbin/busybox", "mount", "/system");
run_program("/sbin/busybox", "mount", "/data");
run_program("/sbin/busybox", "mount", "/vendor");
ui_print("Deleting existing ViPER4Android install...");
ui_print("Extracting ViPER|Atmos™ to system...");
package_extract_dir("system", "/system");
package_extract_file("runme.sh", "/tmp/runme.sh");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm_recursive(0, 0, 0755, 0755, "/system/addon.d");
set_perm(0, 0, 0755, "/system/su.d/50viper.sh");
set_perm(0, 0, 0777, "/tmp/runme.sh");
ui_print("Permissions set.");
ui_print("Running post-install script...");
run_program("/tmp/runme.sh");
ui_print("Cleaning up...");
delete("/tmp/runme.sh");
ui_print("Unmounting system...");
ui_print("Unmounting vendor...");
run_program("/sbin/busybox", "umount", "/system");
run_program("/sbin/busybox", "umount", "/vendor");
ui_print(".................................");
ui_print("<> Experience ViPER|Atmos™ <>");
ui_print(".................................");
show_progress(0.2, 10);

Please do not edit the updater script unless you know what you are doing, chances are that if you miss a single coma or semicolon you'll probably get some kind of error.