[Android Software/Hacking General [Developers Only]] rcade2005:
Help

Hi friends,

I've been tryin to implement aroma for my rom. The aroma GUI and the selection options works fine but nothing gets flashed after the last step in aroma. Can someone help?

Aroma Ver: 2.56

aroma script

### LICENSE:
#
# Copyright (C) 2011 Ahmad Amarullah ( http://amarullz.com/ )
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
### FILE INFO:
#
# AROMA Installer 2.51 - AROMA Installer Test Script Configuration
# (c) 2011-2012 by Ahmad Amarullah
# amarullz - xda-developers
# http://www.amarullz.com/
#
# Binary Version : 2.56
# Binary Codename : Edelweis
#
#
calibrate("0.8429","51","0.9658", "9", "yes");
#

ini_set("customkeycode_up", "115");
ini_set("customkeycode_down", "114");
ini_set("customkeycode_select", "116");
ini_set("customkeycode_menu", "139");
ini_set("customkeycode_back", "158");
#

##
# Initializing Rom Information
#
ini_set("rom_name", "TheUnknownBox");
ini_set("rom_version", "3.0.1");
ini_set("rom_author", "ICS_XD");
ini_set("rom_device", "Samsung S2 i9100g");
ini_set("rom_date", "Oct, 31 2012");

##
# Show Splash
#
splash(
#-- Duration 2000ms / 2 seconds
2000,

#-- <AROMA Resource Dir>/theunknownbox.png
"theunknownbox"
);

##
# Show Animated Splash
#
anisplash(
#-- Number of Loop
4,

#-- Frame 1 [ Image, duration in millisecond ]. <AROMA Resource Dir>/splash/a[1..6].png
"splash/a1", 500,
"splash/a2", 30,
"splash/a3", 30,
"splash/a4", 30,
"splash/a5", 30,
"splash/a6", 30
);

fontresload( "0", "ttf/Roboto-Regular.ttf;ttf/DroidSansArabic.ttf;ttf/DroidSansFallback.ttf;", "12" ); #-- Use sets of font (Font Family)

###################################################################################################################
#
# SHOW LANGUAGE SELECTION
#
selectbox(
#-- Title
"Select Language",

#-- Sub Title
"Please select installer language that you want to use in this installation test:",

#-- Icon: <AROMA Resource Dir>/icons/personalize.png or <ThemeDir>/icon.personalize.png
"@default",

#-- Will be saved in /tmp/aroma/theme.prop
"lang.prop",

#---------------------------------[ Selectbox Without Group ]----------------------------------#
# TITLE | SUBTITLE | Initial Value #
#------------------+-----------------------------------------------------------+---------------#

"English", "Welcome to Installer", 1, #-- selected.0 = 1
"Indonesian", "Selamat datang di Installer", 0, #-- selected.0 = 2
"Espanol", "Bienvenido al Instalador", 0, #-- selected.0 = 3
"Simplified Chinesse","欢迎到安装", 0, #-- selected.0 = 4
"Arabic", "مرحبا بكم في المثبت", 0, #-- selected.0 = 5
"French", "Bienvenue dans l'installateur", 0, #-- selected.0 = 6
"Russian", "Добро пожаловать в установщик", 0, #-- selected.0 = 7
"Italian", "Benvenuti Installer", 0, #-- selected.0 = 8
"Hebrew", "ברוכים הבאים להתקנה",	0,	#-- selected.0 = 9
"Germany", "Willkommen bei Installer",	0	#-- selected.0 = 10
#--------[ Initial Value = 0: Unselected, 1: Selected, 2: Group Item, 3: Not Visible ]---------#
);

##
# SET LANGUAGE & FONT FAMILY
#
if prop("lang.prop","selected.0")=="1" then
loadlang("langs/en.lang");
fontresload( "0", "ttf/Roboto-Regular.ttf", "12" ); #-- "0" = Small Font ( Look at Fonts & UNICODE Demo Below )
fontresload( "1", "ttf/Roboto-Regular.ttf", "18" ); #-- "1" = Big Font
endif;

if prop("lang.prop","selected.0")=="2" then
loadlang("langs/id.lang");
fontresload( "0", "ttf/Roboto-Regular.ttf", "12" );
fontresload( "1", "ttf/Roboto-Regular.ttf", "18" );
endif;

if prop("lang.prop","selected.0")=="3" then
loadlang("langs/es.lang");
fontresload( "0", "ttf/Roboto-Regular.ttf", "12" );
fontresload( "1", "ttf/Roboto-Regular.ttf", "18" );
endif;

if prop("lang.prop","selected.0")=="4" then
loadlang("langs/cn.lang");
fontresload( "0", "ttf/DroidSansFallback.ttf;ttf/Roboto-Regular.ttf", "12" ); #-- Use sets of font (Font Family)
fontresload( "1", "ttf/DroidSansFallback.ttf;ttf/Roboto-Regular.ttf", "18" );
endif;

if prop("lang.prop","selected.0")=="5" then
loadlang("langs/ar.lang");
fontresload( "0", "ttf/DroidSansArabic.ttf;ttf/Roboto-Regular.ttf", "12" ); #-- Use sets of font (Font Family)
fontresload( "1", "ttf/DroidSansArabic.ttf;ttf/Roboto-Regular.ttf", "18" );
endif;

if prop("lang.prop","selected.0")=="6" then
loadlang("langs/fr.lang");
fontresload( "0", "ttf/Roboto-Regular.ttf", "12" );
fontresload( "1", "ttf/Roboto-Regular.ttf", "18" );
endif;

if prop("lang.prop","selected.0")=="7" then
loadlang("langs/ru.lang");
fontresload( "0", "ttf/Roboto-Regular.ttf", "12" );
fontresload( "1", "ttf/Roboto-Regular.ttf", "18" );
endif;

if prop("lang.prop","selected.0")=="8" then
loadlang("langs/it.lang");
fontresload( "0", "ttf/Roboto-Regular.ttf", "12" );
fontresload( "1", "ttf/Roboto-Regular.ttf", "18" );
endif;

if prop("lang.prop","selected.0")=="9" then
loadlang("langs/he.lang");
fontresload( "0", "ttf/Roboto-Regular.ttf", "12" );
fontresload( "1", "ttf/Roboto-Regular.ttf", "18" );
endif;

if prop("lang.prop","selected.0")=="10" then
loadlang("langs/de.lang");
fontresload( "0", "ttf/Roboto-Regular.ttf", "12" );
fontresload( "1", "ttf/Roboto-Regular.ttf", "18" );
endif;

###################################################################################################################
#

theme("sense");

###################################################################################################################

# INFO
viewbox(
"TheUnknownBox",
"You are about to Install <b>"+
ini_get("rom_name")+
"</b> for <b>"+ini_get("rom_device")+"</b>.\n\n"+
"Relevant information of the ROM:\n\n"+
" NAME\t\t: <b><#selectbg_g>"+ini_get("rom_name")+"</#></b>\n"+
" VERSION\t: <b><#selectbg_g>"+ini_get("rom_version")+"</#></b>\n"+
" UPDATED\t: <b><#selectbg_g>"+ini_get("rom_date")+"</#></b>\n\n\n"+
"Press Next to Continue the Installation...",
"@welcome"
);

###################################################################################################################
#
# SHOW MENUBOX
#
menubox(
"Installation Mode",
"Please select installation method for TheUnknownBox",
"@install",
"type.prop",
"Custom Installation", "Recommended Installation Method", "@customize"
);

###################################################################################################################
# #
# AROMA INSTALLER FOR TheUnknownBox #
# #
###################################################################################################################

##--------------------------------------
#
selectbox(
"Kernels And Modems",
"Select Kernel and Modem",
"@addons",
"kernelm.prop",

"**Kernel**",	"",	2, #-- Group 1. key = "selected.1"
"CM",	"Install Stock CM Kernel",	0,	#-- selected.1 = 1
"Horsepower",	"Install Horsepower v3.0.0 Kernel",	1, #-- selected.1 = 2
"SuperIcs",	"Install SuperIcs v1.0.2 Kernel",	0, #-- selected.1 = 3

"**Modem**",	"",	2, #-- Group 2. key = "selected.2"
"DDLP5 Modem",	"Install DDLP5 Modem",	1, #-- selected.2 = 1
"ZCLP7 Modem",	"Install ZCLP7 Modem",	0 #-- selected.2 = 2

);

selectbox(
"SystemUI",
"Three different UIs for TheUnknownBox",
"@sysui",
"sysui.prop",

"Select the UI you want to install", "",	2,	#-- Group 1. key = "selected.1"
"Stock UI",	"Stock UI for ICS",	1, #-- selected.1 = 1
"Stock UI with 18 toggles",	"Stock UI for ICS with 18 toggles",	0, #-- selected.1 = 2
"S3 UI",	"S3 UI with AOKP toggles",	0 #-- selected.1 = 3

);

checkbox(
"File Managers",
"Select the File Manager you want to install",
"@file",
"filemanager.prop",

"Choose File Manager",	"",2,	#-- Group 1. key = "selected.1"
"ES File Manager",	"ES File Explorer is a free, featured all-in-one file manager & application manager & task killer & cloud storage.",	0,#-- selected.1 = 1
"Solid Explorer",	"Solid Explorer, the most attractive, eye catching and intuitive file manager for the Android with two panels for browsing. ", 1 #-- selected.1 = 2
);

checkbox(
"Launchers",
"Select the launchers you want to install. You have to choose at least one!!!",
"@launcher",
"launcher.prop",

"Choose your launchers",	"", 2,	#-- Group 1. key = "selected.1"
"Nova Launcher", "Nova Launcher is a Highly Customizable Launcher that Gives you the ICS Look and Feel with a lot of more options.", 0, #-- selected.1 = 1
"Apex Launcher", "Apex Launcher is one of the most Powerful, Fastest Launchers that Gives you a lot of Options to do.", 0, #-- selected.1 = 2
"TouchwizUX Launcher", "TouchwizUX is the Fifth Generation and the Default Stock Launcher of the Samsung Galaxy S3 with some cool things.",	0, #-- selected.1 = 3
"Xperia Launcher", "Xperia Home is the Stock Launcher of Xperia Phones. It brings you the Xperia Xpereience.", 0 #-- selected.1 = 4
);

checkbox(
"Music Player",
"Select the music player you want to install.",
"@music",
"music.prop",

"Choose your player",	"",2,	#-- Group 1. key = "selected.1"
"Google Play Music",	"Install Google Play Music", 0, #-- selected.1 = 1
"Apollo Music", "CM Default Music Player", 1 #-- selected.1 = 2

);

selectbox(
"Music Equalizer",
"Enhance your Music Experience with DSP Manager",
"@equalizer",
"equalizer.prop",

"Select the EQ you want to install", "",	2,	#-- Group 1. key = "selected.1"
"Awesome Beats",	"Feel the beats",	1, #-- selected.1 = 1
"DSP Manager",	"The Ultimate way to Enhance your Music Experience",	0 #-- selected.1 = 2

);

selectbox(
"DPI settings",
"Change the dpi according to your needs",
"@dpi",
"dpi.prop",

"Select the dpi you want to install", "",	2,	#-- Group 1. key = "selected.1"
"220 dpi",	"This will give your device 220 dpi",	0, #-- selected.1 = 1
"240 dpi",	"This will give your device 240 dpi",	1 #-- selected.1 = 2

);

ini_set("text_next", "Install Now");

viewbox(
"Ready to Install",
"The wizard is ready to begin installation.\n\n"+
"Press <b>Install Now</b> to begin the installation.\n\n"+
"If you want to review or change any of your installation settings, press <b>Back</b>. Press Menu Key -> Quit Installation to exit the wizard.",
"@install"
);

ini_set("text_next", "Next >");

setvar("retstatus",
install(
"ICs_xD @ XDA developers",

"<b>"+ini_get("rom_name")+"</b> is being installed.\n\n"+
"Please wait while installation wizard installs <b>"+ini_get("rom_name")+
"</b>. This may take several minutes.",

"@install",

"The installation wizard has successfully installed <b>"+ini_get("rom_name")+
"</b>. Press Next to continue."
)
);

ini_set("text_next", "Finish");

checkviewbox(
"Installation Completed",
"<#selectbg_g><b>Congratulation</b></#>\n\n"+
"<b>"+ini_get("rom_name")+"</b> has been installed into your Galaxy S2.\n\n"+
"Installer Status: "+getvar("retstatus")+"\n\n",
"@welcome",
"Reboot your device now.",
"1",
"reboot_it"
);

if
getvar("reboot_it")=="1"
then
reboot("onfinish");
endif;

updater script

show_progress(0.1, 0);
run_program("/sbin/mount", "/dev/block/mmcblk0p9", "/system");
delete_recursive("/system");
run_program("/sbin/mount", "/dev/block/mmcblk0p10", "/data");
delete("/data/local");
package_extract_file("check_data_app", "/tmp/check_data_app");
set_perm(0, 0, 0777, "/tmp/check_data_app");
run_program("/tmp/check_data_app");
package_extract_dir("data", "/data");
set_perm(2000, 2000, 0771, "/data/local");
set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");
package_extract_dir("system", "/system");
##############################################################
# #
#	Aroma Installer For TheUnknownBox	#
# #
##############################################################

# ES File Explorer
if
file_getprop("/tmp/aroma/filemanager.prop","item.1.1") == "1"
then
ui_print("@ Installing ES File Explorer");
package_extract_dir("theunknownbox/FileManager/ES", "/data/app");
endif;

# Solid Explorer
if
file_getprop("/tmp/aroma/filemanager.prop","item.1.2") == "1"
then
ui_print("@ Installing Solid Explorer");
package_extract_dir("theunknownbox/FileManager/Solid", "/data/app");
endif;

# Nova Launcher
if
file_getprop("/tmp/aroma/launcher.prop","item.1.1") == "1"
then
ui_print("@ Installing Nova Launcher");
package_extract_dir("theunknownbox/Launcher/Nova", "/system/app");
endif;

# Apex Launcher
if
file_getprop("/tmp/aroma/launcher.prop","item.1.2") == "1"
then
ui_print("@ Installing Apex Launcher");
package_extract_dir("theunknownbox/Launcher/Apex", "/system/app");
endif;

# TouchWizUX Launcher
if
file_getprop("/tmp/aroma/launcher.prop","item.1.3") == "1"
then
ui_print("@ Installing TouchwizUX Launcher");
package_extract_dir("theunknownbox/Launcher/TouchwizUX", "/system/app");
endif;

# Xperia Launcher
if
file_getprop("/tmp/aroma/launcher.prop","item.1.4") == "1"
then
ui_print("@ Installing Xperia Launcher");
package_extract_dir("theunknownbox/Launcher/Xperia", "/system/app");
endif;

# Android Music Player
if
file_getprop("/tmp/aroma/music.prop","item.1.1") == "1"
then
ui_print("@ Installing Google Play Music");
package_extract_dir("theunknownbox/Music/Stock", "/system/app");
endif;

# Apollo Music Player
if
file_getprop("/tmp/aroma/music.prop","item.1.2") == "1"
then
ui_print("@ Installing Apollo Music Player");
package_extract_dir("theunknownbox/Music/Apollo", "/system/app");
endif;

# Awesome Beats
if
file_getprop("/tmp/aroma/equalizer.prop","item.1.1") == "1"
then
ui_print("@ Installing Awesome Beats");
package_extract_dir("theunknownbox/Equalizer/Beats/system", "/system");
endif;

# DSP Manager
if
file_getprop("/tmp/aroma/equalizer.prop","item.1.2") == "1"
then
ui_print("@ Installing DSP Manager");
package_extract_dir("theunknownbox/Equalizer/DSP/system", "/system");
endif;

# Stock UI
if
file_getprop("/tmp/aroma/sysui.prop","item.1.1") == "1"
then
ui_print("@ Installing Stock UI");
package_extract_dir("theunknownbox/SystemUI/system_stock", "/system/app");
endif;

# Stock UI with 18 toggles
if
file_getprop("/tmp/aroma/sysui.prop","item.1.2") == "1"
then
ui_print("@ Installing Stock UI with 18 toggles");
package_extract_dir("theunknownbox/SystemUI/system_ui_18_toggles", "/system/app");
endif;

# S3 UI
if
file_getprop("/tmp/aroma/sysui.prop","item.1.3") == "1"
then
ui_print("@ Installing S3 UI");
package_extract_dir("theunknownbox/SystemUI/system_s3_aokp_toggles", "/system/app");
endif;

# 220 dpi
if
file_getprop("/tmp/aroma/dpi.prop","item.1.1") == "1"
then
ui_print("@ Installing S3 UI");
package_extract_dir("theunknownbox/dpi/220", "/system");
endif;

# 240 dpi
if
file_getprop("/tmp/aroma/dpi.prop","item.1.2") == "1"
then
ui_print("@ Installing S3 UI");
package_extract_dir("theunknownbox/dpi/240", "/system");
endif;

##############################################################
#	Aroma Installer For TheUnknownBox	#
##############################################################
symlink("dumpstate", "/system/bin/dumpcrash");
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/cmp");
symlink("debuggerd", "/system/bin/csview");
symlink("toolbox", "/system/bin/date");
symlink("toolbox", "/system/bin/dd");
symlink("toolbox", "/system/bin/df");
symlink("toolbox", "/system/bin/dmesg");
symlink("toolbox", "/system/bin/getevent");
symlink("toolbox", "/system/bin/getprop");
symlink("toolbox", "/system/bin/hd");
symlink("toolbox", "/system/bin/id");
symlink("toolbox", "/system/bin/ifconfig");
symlink("toolbox", "/system/bin/iftop");
symlink("toolbox", "/system/bin/insmod");
symlink("toolbox", "/system/bin/ioctl");
symlink("toolbox", "/system/bin/ionice");
symlink("toolbox", "/system/bin/kill");
symlink("toolbox", "/system/bin/ln");
symlink("toolbox", "/system/bin/log");
symlink("toolbox", "/system/bin/ls");
symlink("toolbox", "/system/bin/lsmod");
symlink("toolbox", "/system/bin/lsof");
symlink("toolbox", "/system/bin/mkdir");
symlink("toolbox", "/system/bin/mount");
symlink("toolbox", "/system/bin/mv");
symlink("toolbox", "/system/bin/nandread");
symlink("toolbox", "/system/bin/netstat");
symlink("toolbox", "/system/bin/newfs_msdos");
symlink("toolbox", "/system/bin/notify");
symlink("toolbox", "/system/bin/printenv");
symlink("toolbox", "/system/bin/ps");
symlink("toolbox", "/system/bin/reboot");
symlink("toolbox", "/system/bin/renice");
symlink("toolbox", "/system/bin/rm");
symlink("toolbox", "/system/bin/rmdir");
symlink("toolbox", "/system/bin/rmmod");
symlink("toolbox", "/system/bin/route");
symlink("toolbox", "/system/bin/schedtop");
symlink("toolbox", "/system/bin/sendevent");
symlink("toolbox", "/system/bin/setconsole");
symlink("toolbox", "/system/bin/setprop");
symlink("mksh", "/system/bin/sh");
symlink("toolbox", "/system/bin/sleep");
symlink("toolbox", "/system/bin/smd");
symlink("toolbox", "/system/bin/start");
symlink("toolbox", "/system/bin/stop");
symlink("toolbox", "/system/bin/sync");
symlink("toolbox", "/system/bin/top");
symlink("toolbox", "/system/bin/touch");
symlink("toolbox", "/system/bin/umount");
symlink("toolbox", "/system/bin/uptime");
symlink("toolbox", "/system/bin/vmstat");
symlink("toolbox", "/system/bin/watchprops");
symlink("toolbox", "/system/bin/wipe");
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm(0, 3003, 06755, "/system/bin/ip");
set_perm(0, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
set_perm(0, 2000, 06750, "/system/bin/run-as");
set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");
set_perm(0, 0, 0755, "/system/etc/bluetooth");
set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf");
set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");
set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
set_perm(0, 0, 04755, "/system/bin/bash");
symlink("/system/bin/bash", "/system/bin/sh");
set_perm(0, 0, 04755, "/system/xbin/sysrw");
set_perm(0, 0, 04755, "/system/xbin/sysro");
set_perm(0, 0, 06755, "/system/bin/su");
symlink("/system/bin/su", "/system/xbin/su");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");
set_perm_recursive(0, 2000, 0755, 0755, "/system/vendor/bin");
set_perm_recursive(0, 0, 0755, 0644, "/system/vendor/firmware");
set_perm_recursive(0, 0, 0755, 0755, "/system/etc/init.d");
set_perm(0, 2000, 0755, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/lib");
set_perm(0, 2000, 0755, "/system/vendor/lib/egl");
set_perm(0, 2000, 0755, "/system/vendor/lib/hw");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 1000, 0755, "/system/xbin/busybox");
symlink("/system/xbin/busybox", "/system/bin/busybox");
package_extract_file("installbusybox", "/tmp/installbusybox");
set_perm(0, 0, 0777, "/tmp/installbusybox");
run_program("/tmp/installbusybox");
show_progress(0.1, 10);
show_progress(0.2, 0);
show_progress(0.2, 10);

# CM kernel
if file_getprop("/tmp/aroma/kernelm.prop","selected.1") == "1"
then
ui_print("@ Installing CM Kernel");
assert(package_extract_file("theunknownbox/Kernels/cm/zImage", "/tmp/zImage"),
write_raw_image("/tmp/zImage", "/dev/block/mmcblk0p5"),
delete("/tmp/zImage"));
endif;

# Horsepower kernel
if file_getprop("/tmp/aroma/kernelm.prop","selected.1") == "2"
then
ui_print("@ Installing Horsepower Kernel");
assert(package_extract_file("theunknownbox/Kernels/hp/zImage", "/tmp/zImage"),
write_raw_image("/tmp/zImage", "/dev/block/mmcblk0p5"),
delete("/tmp/zImage"));
endif;

# SuperIcs kernel
if file_getprop("/tmp/aroma/kernelm.prop","selected.1") == "3"
then
ui_print("@ Installing SuperIcs Kernel");
assert(package_extract_file("theunknownbox/Kernels/superics/zImage", "/tmp/zImage"),
write_raw_image("/tmp/zImage", "/dev/block/mmcblk0p5"),
delete("/tmp/zImage"));
endif;

# DDLP5 Modem
if file_getprop("/tmp/aroma/kernelm.prop","selected.2") == "1"
then
ui_print("@ Flashing DDLP5 Modem");
package_extract_file("theunknownbox/Modems/flash_image", "/tmp/flash_image");
set_perm(0, 0, 0777, "/tmp/flash_image");
assert(package_extract_file("theunknownbox/Modems/DDLP5/modem.bin", "/tmp/modem.bin"),
run_program("/tmp/flash_image", "/dev/block/mmcblk0p8", "/tmp/modem.bin"),
delete("/tmp/modem.bin"));
delete("/tmp/flash_image");
endif;

# ZCLP7 Modem
if file_getprop("/tmp/aroma/kernelm.prop","selected.2") == "2"
then
ui_print("@ Flashing ZCLP7 Modem");
package_extract_file("theunknownbox/Modems/flash_image", "/tmp/flash_image");
set_perm(0, 0, 0777, "/tmp/flash_image");
assert(package_extract_file("theunknownbox/Modems/ZCLP7/modem.bin", "/tmp/modem.bin"),
run_program("/tmp/flash_image", "/dev/block/mmcblk0p8", "/tmp/modem.bin"),
delete("/tmp/modem.bin"));
delete("/tmp/flash_image");
endif;

run_program("/sbin/umount", "/system");
run_program("/sbin/umount", "/data");