getprop("ro.product.device") == "R29P" || abort("This package is for \"R29P\" devices; this is a \"" + getprop("ro.product.device") + "\".");

package_extract_file("recovery.emmc.fstab", "/etc/recovery.emmc.fstab");

show_progress(0.750000, 0);
format("ext4", "EMMC", "/dev/block/rknand_system", "0", "/system");
mount("ext4", "EMMC", "/dev/block/rknand_system", "/system", "max_batch_time=0,commit=1,data=ordered,barrier=1,errors=panic,nodelalloc");
package_extract_dir("system", "/system");
symlink("/system/lib/libWnnEngDic.so", "/system/app/OpenWnn/lib/arm/libWnnEngDic.so");
symlink("/system/lib/libWnnJpnDic.so", "/system/app/OpenWnn/lib/arm/libWnnJpnDic.so");
symlink("/system/lib/libbluetooth_jni.so", "/system/app/Bluetooth/lib/arm/libbluetooth_jni.so");
symlink("/system/lib/libdefcontainer_jni.so", "/system/priv-app/DefaultContainerService/lib/arm/libdefcontainer_jni.so");
symlink("/system/lib/libjni_eglfence.so", "/system/app/Gallery2/lib/arm/libjni_eglfence.so");
symlink("/system/lib/libjni_filtershow_filters.so", "/system/app/Gallery2/lib/arm/libjni_filtershow_filters.so");
symlink("/system/lib/libjni_jpegstream.so", "/system/app/Gallery2/lib/arm/libjni_jpegstream.so");
symlink("/system/lib/libjni_jpegutil.so", "/system/app/Camera2/lib/arm/libjni_jpegutil.so");
symlink("/system/lib/libjni_latinime.so", "/system/app/LatinIME/lib/arm/libjni_latinime.so");
symlink("/system/lib/libjni_pacprocessor.so", "/system/app/PacProcessor/lib/arm/libjni_pacprocessor.so");
symlink("/system/lib/libjni_tinyplanet.so", "/system/app/Camera2/lib/arm/libjni_tinyplanet.so");
symlink("/system/lib/libprintspooler_jni.so", "/system/app/PrintSpooler/lib/arm/libprintspooler_jni.so");
symlink("/system/lib/libr48gTest.so", "/system/priv-app/TestAll/lib/arm/libr48gTest.so");
symlink("/system/lib/librsjni.so", "/system/app/Gallery2/lib/arm/librsjni.so");
symlink("/system/lib/libttscompat.so", "/system/app/PicoTts/lib/arm/libttscompat.so");
symlink("/system/lib/libttspico.so", "/system/app/PicoTts/lib/arm/libttspico.so");
symlink("/system/lib/libwebviewchromium.so", "/system/app/webview/lib/arm/libwebviewchromium.so");
symlink("/system/lib/libwnndict.so", "/system/app/OpenWnn/lib/arm/libwnndict.so");
symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("app_process32", "/system/bin/app_process");
symlink("dalvikvm32", "/system/bin/dalvikvm");
symlink("dropbear", "/system/bin/dropbearkey");
symlink("libGLESv2.so", "/system/lib/libGLESv3.so");
symlink("toolbox", "/system/bin/cat", "/system/bin/chcon",
        "/system/bin/chmod", "/system/bin/chown", "/system/bin/clear",
        "/system/bin/cmp", "/system/bin/cp", "/system/bin/date",
        "/system/bin/dd", "/system/bin/df", "/system/bin/dmesg",
        "/system/bin/du", "/system/bin/getenforce", "/system/bin/getevent",
        "/system/bin/getprop", "/system/bin/getsebool", "/system/bin/grep",
        "/system/bin/hd", "/system/bin/id", "/system/bin/ifconfig",
        "/system/bin/iftop", "/system/bin/insmod", "/system/bin/ioctl",
        "/system/bin/ionice", "/system/bin/kill", "/system/bin/ln",
        "/system/bin/load_policy", "/system/bin/log", "/system/bin/ls",
        "/system/bin/lsmod", "/system/bin/lsof", "/system/bin/md5",
        "/system/bin/mkdir", "/system/bin/mknod", "/system/bin/mkswap",
        "/system/bin/mount", "/system/bin/mv", "/system/bin/nandread",
        "/system/bin/netstat", "/system/bin/newfs_msdos", "/system/bin/nohup",
        "/system/bin/notify", "/system/bin/printenv", "/system/bin/prlimit",
        "/system/bin/ps", "/system/bin/r", "/system/bin/readlink",
        "/system/bin/renice", "/system/bin/restorecon", "/system/bin/rm",
        "/system/bin/rmdir", "/system/bin/rmmod", "/system/bin/route",
        "/system/bin/runcon", "/system/bin/schedtop", "/system/bin/sendevent",
        "/system/bin/setenforce", "/system/bin/setprop",
        "/system/bin/setsebool", "/system/bin/sleep", "/system/bin/smd",
        "/system/bin/start", "/system/bin/stop", "/system/bin/swapoff",
        "/system/bin/swapon", "/system/bin/sync", "/system/bin/top",
        "/system/bin/touch", "/system/bin/umount", "/system/bin/uptime",
        "/system/bin/vmstat", "/system/bin/watchprops",
        "/system/bin/wipe");
symlink("/system/bin/busybox1.11", "/system/bin/awk", "/system/bin/watch", "/system/bin/killall", "/system/bin/pidof", "/system/bin/wget", "/system/bin/md5sum");

set_metadata_recursive("/system", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/bin", "uid", 0, "gid", 2000, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/bin/app_process32", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:zygote_exec:s0");
set_metadata("/system/bin/bootanimation", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:bootanim_exec:s0");
set_metadata("/system/bin/clatd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:clatd_exec:s0");
set_metadata("/system/bin/debuggerd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:debuggerd_exec:s0");
set_metadata("/system/bin/dex2oat", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:dex2oat_exec:s0");
set_metadata("/system/bin/dhcpcd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:dhcp_exec:s0");
set_metadata("/system/bin/displayd", "uid", 1000, "gid", 1000, "mode", 0766, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/bin/dnsmasq", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:dnsmasq_exec:s0");
set_metadata("/system/bin/drmserver", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:drmserver_exec:s0");
set_metadata("/system/bin/dumpstate", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:dumpstate_exec:s0");
set_metadata("/system/bin/hostapd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:hostapd_exec:s0");
set_metadata("/system/bin/hostapd_esp", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:hostapd_esp_exec:s0");
set_metadata("/system/bin/hostapd_rtl", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:hostapd_rtl_exec:s0");
set_metadata("/system/bin/install-recovery.sh", "uid", 0, "gid", 0, "mode", 0750, "capabilities", 0x0, "selabel", "u:object_r:install_recovery_exec:s0");
set_metadata("/system/bin/installd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:installd_exec:s0");
set_metadata("/system/bin/keystore", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:keystore_exec:s0");
set_metadata("/system/bin/lmkd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:lmkd_exec:s0");
set_metadata("/system/bin/logcat", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:logcat_exec:s0");
set_metadata("/system/bin/logd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:logd_exec:s0");
set_metadata("/system/bin/mdnsd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:mdnsd_exec:s0");
set_metadata("/system/bin/mediaserver", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:mediaserver_exec:s0");
set_metadata("/system/bin/mtpd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:mtp_exec:s0");
set_metadata("/system/bin/netcfg", "uid", 0, "gid", 3003, "mode", 02750, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/bin/netd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:netd_exec:s0");
set_metadata("/system/bin/patchoat", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:dex2oat_exec:s0");
set_metadata("/system/bin/ping", "uid", 0, "gid", 0, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/bin/pppd", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:ppp_exec:s0");
set_metadata("/system/bin/racoon", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:racoon_exec:s0");
set_metadata("/system/bin/rild", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:rild_exec:s0");
set_metadata("/system/bin/run-as", "uid", 0, "gid", 2000, "mode", 0750, "capabilities", 0xc0, "selabel", "u:object_r:runas_exec:s0");
set_metadata("/system/bin/sdcard", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:sdcardd_exec:s0");
set_metadata("/system/bin/servicemanager", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:servicemanager_exec:s0");
set_metadata("/system/bin/sh", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:shell_exec:s0");
set_metadata("/system/bin/surfaceflinger", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:surfaceflinger_exec:s0");
set_metadata("/system/bin/toolbox", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:toolbox_exec:s0");
set_metadata("/system/bin/uncrypt", "uid", 0, "gid", 0, "mode", 0750, "capabilities", 0x0, "selabel", "u:object_r:uncrypt_exec:s0");
set_metadata("/system/bin/vdc", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:vdc_exec:s0");
set_metadata("/system/bin/vold", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:vold_exec:s0");
set_metadata("/system/bin/wpa_supplicant", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:wpa_exec:s0");
set_metadata("/system/bin/wpa_supplicant_esp", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:esp_wpa_exec:s0");
set_metadata("/system/bin/wpa_supplicant_rtl", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:rtl_wpa_exec:s0");
set_metadata("/system/etc/dhcpcd/dhcpcd-run-hooks", "uid", 1014, "gid", 2000, "mode", 0550, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/etc/ppp", "uid", 0, "gid", 0, "dmode", 0755, "fmode", 0555, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/recovery-from-boot.p", "uid", 0, "gid", 0, "mode", 0644, "capabilities", 0x0);
set_metadata("/system/vendor", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/vendor/firmware", "uid", 0, "gid", 2000, "mode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/vendor/lib", "uid", 0, "gid", 2000, "dmode", 0755, "fmode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/vendor/lib/egl/libGLES_mali.so", "uid", 0, "gid", 0, "mode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/vendor/lib/libbt-vendor.so", "uid", 0, "gid", 0, "mode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/vendor/lib/mediadrm/libdrmclearkeyplugin.so", "uid", 0, "gid", 0, "mode", 0644, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata_recursive("/system/xbin", "uid", 0, "gid", 2000, "dmode", 0755, "fmode", 0755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/xbin/librank", "uid", 0, "gid", 0, "mode", 06755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/xbin/procmem", "uid", 0, "gid", 0, "mode", 06755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/xbin/procrank", "uid", 0, "gid", 0, "mode", 06755, "capabilities", 0x0, "selabel", "u:object_r:system_file:s0");
set_metadata("/system/xbin/su", "uid", 0, "gid", 2000, "mode", 06755, "capabilities", 0x0, "selabel", "u:object_r:su_exec:s0");

symlink("/system/app.akuvox/lib/libssl.so.1.1", "/system/app.akuvox/lib/libssl.so");
symlink("/system/app.akuvox/lib/libsqlite3.so.0.8.6", "/system/app.akuvox/lib/libsqlite3.so.0");
symlink("/system/app.akuvox/lib/libsqlite3.so.0", "/system/app.akuvox/lib/libsqlite3.so");
symlink("/system/app.akuvox/lib/libosipparser2.so.7.2.0", "/system/app.akuvox/lib/libosipparser2.so.7");
symlink("/system/app.akuvox/lib/libosipparser2.so.7", "/system/app.akuvox/lib/libosipparser2.so");
symlink("/system/app.akuvox/lib/libosip2.so.7.2.0", "/system/app.akuvox/lib/libosip2.so.7");
symlink("/system/app.akuvox/lib/libosip2.so.7", "/system/app.akuvox/lib/libosip2.so");
symlink("/system/app.akuvox/lib/libfcgi++.so.0.0.0", "/system/app.akuvox/lib/libfcgi++.so.0");
symlink("/system/app.akuvox/lib/libfcgi++.so.0", "/system/app.akuvox/lib/libfcgi++.so");
symlink("/system/app.akuvox/lib/libfcgi.so.0.0.0", "/system/app.akuvox/lib/libfcgi.so.0");
symlink("/system/app.akuvox/lib/libfcgi.so.0", "/system/app.akuvox/lib/libfcgi.so");
symlink("/system/app.akuvox/lib/libeXosip2.so.7.2.0", "/system/app.akuvox/lib/libeXosip2.so.7");
symlink("/system/app.akuvox/lib/libeXosip2.so.7", "/system/app.akuvox/lib/libeXosip2.so");
symlink("/system/app.akuvox/lib/libcurl.so.5.4.0", "/system/app.akuvox/lib/libcurl.so.5");
symlink("/system/app.akuvox/lib/libcurl.so.5", "/system/app.akuvox/lib/libcurl.so");
symlink("/system/app.akuvox/lib/libctemplate.so.3.0.0", "/system/app.akuvox/lib/libctemplate.so.3");
symlink("/system/app.akuvox/lib/libctemplate.so.3", "/system/app.akuvox/lib/libctemplate.so");
symlink("/system/app.akuvox/lib/libcrypto.so.1.1", "/system/app.akuvox/lib/libcrypto.so");
symlink("/system/app.akuvox/lib/libcares.so.2.0.0", "/system/app.akuvox/lib/libcares.so.2");
symlink("/system/app.akuvox/lib/libcares.so.2", "/system/app.akuvox/lib/libcares.so");
symlink("/system/app.akuvox/lib/libpcap.so.1.3.0", "/system/app.akuvox/lib/libpcap.so");

symlink("/system/app.akuvox/bin/freeswitch/lib/libcrypto.so.1.0.0", "/system/app.akuvox/bin/freeswitch/lib/libcrypto.so");
symlink("/system/app.akuvox/bin/freeswitch/lib/libcurl.so.5.3.0", "/system/app.akuvox/bin/freeswitch/lib/libcurl.so");
symlink("/system/app.akuvox/bin/freeswitch/lib/libcurl.so.5.3.0", "/system/app.akuvox/bin/freeswitch/lib/libcurl.so.5");
symlink("/system/app.akuvox/bin/freeswitch/lib/libfreeswitch.so.1.0.0", "/system/app.akuvox/bin/freeswitch/lib/libfreeswitch.so.1");
symlink("/system/app.akuvox/bin/freeswitch/lib/libfreetype.so.6.10.0", "/system/app.akuvox/bin/freeswitch/lib/libfreetype.so");
symlink("/system/app.akuvox/bin/freeswitch/lib/libfreetype.so.6.10.0", "/system/app.akuvox/bin/freeswitch/lib/libfreetype.so.6");
symlink("/system/app.akuvox/bin/freeswitch/lib/libjpeg.so.62.2.0", "/system/app.akuvox/bin/freeswitch/lib/libjpeg.so");
symlink("/system/app.akuvox/bin/freeswitch/lib/libjpeg.so.62.2.0", "/system/app.akuvox/bin/freeswitch/lib/libjpeg.so.62");
symlink("/system/app.akuvox/bin/freeswitch/lib/libogg.so.0.8.2", "/system/app.akuvox/bin/freeswitch/lib/libogg.so");
symlink("/system/app.akuvox/bin/freeswitch/lib/libogg.so.0.8.2", "/system/app.akuvox/bin/freeswitch/lib/libogg.so.0");
symlink("/system/app.akuvox/bin/freeswitch/lib/libopus.so.0.6.1", "/system/app.akuvox/bin/freeswitch/lib/libopus.so.0");
symlink("/system/app.akuvox/bin/freeswitch/lib/libpng16.so.16.30.0", "/system/app.akuvox/bin/freeswitch/lib/libpng16.so");
symlink("/system/app.akuvox/bin/freeswitch/lib/libpng16.so.16.30.0", "/system/app.akuvox/bin/freeswitch/lib/libpng16.so.16");
symlink("/system/app.akuvox/bin/freeswitch/lib/libpng16.so", "/system/app.akuvox/bin/freeswitch/lib/libpng.so");
symlink("/system/app.akuvox/bin/freeswitch/lib/libsndfile.so.1.0.26", "/system/app.akuvox/bin/freeswitch/lib/libsndfile.so");
symlink("/system/app.akuvox/bin/freeswitch/lib/libsndfile.so.1.0.26", "/system/app.akuvox/bin/freeswitch/lib/libsndfile.so.1");
symlink("/system/app.akuvox/bin/freeswitch/lib/libspeexdsp.so.1.5.0", "/system/app.akuvox/bin/freeswitch/lib/libspeexdsp.so");
symlink("/system/app.akuvox/bin/freeswitch/lib/libspeexdsp.so.1.5.0", "/system/app.akuvox/bin/freeswitch/lib/libspeexdsp.so.1");
symlink("/system/app.akuvox/bin/freeswitch/lib/libspeex.so.1.5.1", "/system/app.akuvox/bin/freeswitch/lib/libspeex.so");
symlink("/system/app.akuvox/bin/freeswitch/lib/libspeex.so.1.5.1", "/system/app.akuvox/bin/freeswitch/lib/libspeex.so.1");
symlink("/system/app.akuvox/bin/freeswitch/lib/libsqlite3.so.0.8.6", "/system/app.akuvox/bin/freeswitch/lib/libsqlite3.so");
symlink("/system/app.akuvox/bin/freeswitch/lib/libsqlite3.so.0.8.6", "/system/app.akuvox/bin/freeswitch/lib/libsqlite3.so.0");
symlink("/system/app.akuvox/bin/freeswitch/lib/libssl.so.1.0.0", "/system/app.akuvox/bin/freeswitch/lib/libssl.so");
symlink("/system/app.akuvox/bin/freeswitch/lib/libturbojpeg.so.0.1.0", "/system/app.akuvox/bin/freeswitch/lib/libturbojpeg.so");
symlink("/system/app.akuvox/bin/freeswitch/lib/libturbojpeg.so.0.1.0", "/system/app.akuvox/bin/freeswitch/lib/libturbojpeg.so.0");
symlink("/system/app.akuvox/bin/freeswitch/lib/libuuid.so.1.0.0", "/system/app.akuvox/bin/freeswitch/lib/libuuid.so");
symlink("/system/app.akuvox/bin/freeswitch/lib/libuuid.so.1.0.0", "/system/app.akuvox/bin/freeswitch/lib/libuuid.so.1");

show_progress(0.050000, 5);
ui_print("Writing kernel image..");
write_raw_image(package_extract_file("kernel.img"), "kernel");
show_progress(0.200000, 10);
ui_print("Writing boot image..");
write_raw_image(package_extract_file("boot.img"), "boot");
show_progress(0.200000, 10);
ui_print("Writing resource image..");
write_raw_image(package_extract_file("resource.img"), "resource");
ui_print("Writing bootloader ..");
write_raw_image(package_extract_file("loader.img"), "misc");

#clear_misc_command();
unmount("/system");
