### LICENSE:
#
# Copyright (C) 2011-2012 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 for NativeSD Touch Recovery Script Configuration
#   (C) 2012 by tytung - xda-developers (tytung @ gmail.com)
#
###


##
# Forcing Device Pixelate Size
#  defaut: floor( min( width, height ) / 160 )
#
ini_set("dp","3"); #-- HDPI ( 480x800 / WVGA )


##
# Initializing Rom Information
#
ini_set("rom_name",             "NativeSD Touch Recovery");
ini_set("rom_version",          "1.0");
ini_set("rom_author",           "tytung");
ini_set("rom_device",           "NativeSD ROMs Installed");
ini_set("rom_date",             "Nov. 3, 2012");


##
# Show Simple Splash
#
#splash(
  #-- Duration 2000ms / 2 seconds
    #2000,
  
  #-- <AROMA Resource Dir>/sample.png
    #"sample"
#);


##
# Set Small Font to Support all fonts
#
fontresload( "0", "ttf/Roboto-Regular.ttf;ttf/DroidSansArabic.ttf;ttf/DroidSansFallback.ttf;", "12" ); #-- Use sets of font (Font Family)


##
# Set Language & Font Family
#
loadlang("langs/en.lang");
fontresload( "0", "ttf/Roboto-Regular.ttf", "12" ); #-- "0" = Small Font
fontresload( "1", "ttf/Roboto-Regular.ttf", "18" ); #-- "1" = Big Font


###################################################################################################################
#
# STEP 1 - SELECT THEME
#
#theme("ics");


###################################################################################################################
#
# STEP 2 - SHOW ROM INFORMATION
#
setvar("recovery_version", ini_get("rom_name")+" v"+ini_get("rom_version"));

# Extract backup_home.prop to /tmp/aroma/backup_home.prop
ziptotmp("scripts/backup_home.prop", "backup_home.prop");

# Extract my_temp_dir.prop to /tmp/aroma/my_temp_dir.prop
ziptotmp("scripts/my_temp_dir.prop", "my_temp_dir.prop");

# Set $TEMP=/tmp/NativeSD
setvar("TEMP", prop("my_temp_dir.prop", "TEMP"));

viewbox(
  #-- Title
    getvar("recovery_version"),

  #-- Text
    "Welcome! You are about to execute <b><#selectbg_g>"+ini_get("rom_name")+"</#></b>.\n\n"+

    "  Version\t: <b><#selectbg_g>"+ini_get("rom_version")+"</#></b>\n"+
    "  Author\t: <b><#selectbg_g>"+ini_get("rom_author")+"</#></b>\n"+
    "  Update\t: <b><#selectbg_g>"+ini_get("rom_date")+"</#></b>\n\n\n"+

    "SD Card Size\t: "+getdisksize("/sdcard","m")+" MB\n"+
    "\t Free\t: "+     getdiskfree("/sdcard","m")+" MB\n\n"+
    " SD-EXT Size\t: "+getdisksize("/sd-ext","m")+" MB\n"+
    "\t Free\t: "+     getdiskfree("/sd-ext","m")+" MB\n\n\n"+

    "Press Next to continue...",

  #-- Icon
    "@android_micro_sd"
);

# Mount the SD-EXT partition
pleasewait("Mounting the SD-EXT Partition...");
zipexec("scripts/mount_SD-EXT.sh");
setvar("mount_result", getvar("exec_buffer"));

if file_getprop("/tmp/mount.prop", "status") != "mounted" then

  #######################
  # No SD-EXT Partition #
  #######################

  # Set Next Text to 'Exit'
  ini_set("text_next", "Exit");

  textbox(
    getvar("recovery_version"),
    "<b><#selectbg_g>Mounting SD-EXT failed!</#></b>\n"+
      "Please create an EXT4 partition (mmcblk0p2) on the SD Card first.",
    "@alert",
    "Error messages:\n\n"+getvar("mount_result")
  );

else # if SD-EXT Mounted
  
  #############
  # Main Menu #
  #############

  setvar("menu1", "Advanced Backup");
  setvar("menu2", "Advanced Restore");
  setvar("menu3", "ROM Deletion");

  menubox(
  #-- Title
    getvar("recovery_version"),

  #-- Sub Title
    "Main Menu",

  #-- Icon
    "@android_micro_sd",

  #-- Will be saved in /tmp/aroma/menu.prop
    "menu.prop",
   
  #-----------------------+-----------[ Menubox Items ]-----------+------------------#
  # TITLE                 |  SUBTITLE                             |    Item Icons    #
  #-----------------------+---------------------------------------+------------------#
    getvar("menu1"),       "",                                     "@menu_backup",   #-- selected = 1
    getvar("menu2"),       "",                                     "@menu_restore",  #-- selected = 2
    getvar("menu3"),       "",                                     "@menu_deletion"  #-- selected = 3
  );

  ####################
  # SD Card Scanning #
  ####################

  if prop("menu.prop", "selected") == "1" then

    setvar("menu_title", "<#selectbg_g>"+getvar("menu1")+"</#>");
    setvar("agreement_icon", "@agreement_backup");
    setvar("rom_icon", "@menu_backup");
    setvar("roms.prop", "ROMsEXT.prop");

    # Scan the SD-EXT partition for Backup
    if getvar("isEXT_Scanned") != "true" then
      pleasewait("Scanning the SD-EXT Partition...");
      zipexec("scripts/scan_EXT.sh", getvar("roms.prop"));
      setvar("isEXT_Scanned", "true");
    endif;

  endif;

  if prop("menu.prop", "selected") == "2" then

    setvar("menu_title", "<#selectbg_g>"+getvar("menu2")+"</#>");
    setvar("agreement_icon", "@agreement_restore");
    setvar("rom_icon", "@menu_restore");
    setvar("roms.prop", "ROMsFAT32.prop");

    # Scan the SD Card FAT32 partition for Restore
    if getvar("isFAT32_Scanned") != "true" then
      pleasewait("Scanning the SD Card...");
      zipexec("scripts/scan_FAT32.sh", getvar("roms.prop"));
      setvar("isFAT32_Scanned", "true");
    endif;

  endif;
  
  if prop("menu.prop", "selected") == "3" then

    setvar("menu_title", "<#selectbg_g>"+getvar("menu3")+"</#>");
    setvar("agreement_icon", "@agreement_deletion");
    setvar("rom_icon", "@menu_deletion");
    setvar("roms.prop", "ROMsEXT.prop");

    # Scan the SD-EXT partition for Deletion
    if getvar("isEXT_Scanned") != "true" then
      pleasewait("Scanning the SD-EXT Partition...");
      zipexec("scripts/scan_EXT.sh", getvar("roms.prop"));
      setvar("isEXT_Scanned", "true");
    endif;

  endif;

  ############################################
  # ROM Selection: support 20 ROMs currently #
  ############################################

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_20") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_7"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_8"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_9"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_10"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_11"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_12"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_13"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_14"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_15"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_16"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_17"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_18"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_19"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_20"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_19") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_7"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_8"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_9"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_10"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_11"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_12"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_13"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_14"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_15"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_16"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_17"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_18"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_19"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_18") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_7"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_8"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_9"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_10"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_11"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_12"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_13"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_14"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_15"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_16"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_17"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_18"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_17") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_7"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_8"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_9"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_10"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_11"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_12"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_13"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_14"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_15"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_16"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_17"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_16") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_7"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_8"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_9"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_10"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_11"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_12"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_13"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_14"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_15"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_16"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_15") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_7"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_8"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_9"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_10"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_11"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_12"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_13"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_14"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_15"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_14") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_7"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_8"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_9"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_10"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_11"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_12"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_13"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_14"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_13") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_7"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_8"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_9"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_10"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_11"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_12"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_13"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_12") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_7"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_8"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_9"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_10"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_11"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_12"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_11") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_7"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_8"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_9"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_10"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_11"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_10") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_7"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_8"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_9"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_10"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_9") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_7"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_8"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_9"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_8") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_7"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_8"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_7") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_7"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_6"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_5"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_4"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_3"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon"),
      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_2"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  if getvar("isSet") != "true" then
  if file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1") != "" then
    menubox(
      getvar("recovery_version"),
      getvar("menu_title")+"\nPlease Select a NativeSD ROM Below:",
      getvar("agreement_icon"),
      "chosen_rom_num.prop",

      file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_1"), "", getvar("rom_icon")
    );
    setvar("isSet", "true");
  endif;
  endif;

  setvar("isSet", "false");
  setvar("chosen_rom_num", prop("chosen_rom_num.prop", "selected"));
  setvar("chosen_rom_name", file_getprop(getvar("TEMP")+"/"+getvar("roms.prop"), "ROM_"+getvar("chosen_rom_num")));

  ###########################
  # Menu Selection Checking #
  ###########################

  # Backup & Deletion
  if prop("menu.prop", "selected") == "1" || prop("menu.prop", "selected") == "3" then
    if getvar("chosen_rom_name") == "" then
      alert(
        "No NativeSD ROM installed",
        "Please install a NativeSD ROM first.",
        "@alert"
      );
      #-- Back to Main Menu
      back("1");
    endif;
  endif;

  # Restore
  if prop("menu.prop", "selected") == "2" then
    if getvar("chosen_rom_name") == "" then
      alert(
        "No Previous Backup",
        "Please make a Backup first.",
        "@alert"
      );
      #-- Back to Main Menu
      back("1");
    endif;
  endif;

  # Used by tool_backup.sh, tool_restore.sh, and tool_deletion.sh
  writetmpfile("target_rom_name.prop", "rom_name="+getvar("chosen_rom_name")+"\n");

  #############
  # 1. Backup #
  #############

  if prop("menu.prop", "selected") == "1" then

    setvar("backup_type.prop", "backup_type_"+getvar("chosen_rom_name")+".prop");

    checkbox(
      getvar("recovery_version"),
      getvar("menu1")+" for <#selectbg_g>"+getvar("chosen_rom_name")+"</#>",
      "@menu_backup",
      getvar("backup_type.prop"),
   
      "Backup Boot",   "", 1,       #-- item.0.1 = 0 or 1
      "Backup System", "", 1,       #-- item.0.2 = 0 or 1
      "Backup Data",   "", 1        #-- item.0.3 = 0 or 1
    );

    ###################
    # Backup Checking #
    ###################

    run_program("/sbin/cp", "/tmp/aroma/"+getvar("backup_type.prop"), "/tmp/aroma/backup_type.prop");

    if (file_getprop("/tmp/aroma/backup_type.prop", "item.0.1") == "1" ||
        file_getprop("/tmp/aroma/backup_type.prop", "item.0.2") == "1" ||
        file_getprop("/tmp/aroma/backup_type.prop", "item.0.3") == "1") then

      # dummy
      setvar("isSelected", "yes");

    else

      alert(
        "Nothing Selected",
        "Please select at least one item.",
        "@alert"
      );

      #-- Back
      back("1");

    endif;

  endif;

  ##############
  # 2. Restore #
  ##############

  if prop("menu.prop", "selected") == "2" then

    #########################################################
    # Restore Selection: support 20 newer Backups currently #
    #########################################################

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_20") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_7"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_8"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_9"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_10"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_11"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_12"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_13"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_14"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_15"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_16"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_17"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_18"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_19"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_20"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_19") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_7"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_8"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_9"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_10"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_11"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_12"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_13"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_14"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_15"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_16"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_17"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_18"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_19"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_18") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_7"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_8"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_9"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_10"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_11"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_12"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_13"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_14"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_15"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_16"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_17"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_18"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_17") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_7"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_8"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_9"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_10"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_11"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_12"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_13"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_14"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_15"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_16"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_17"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_16") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_7"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_8"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_9"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_10"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_11"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_12"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_13"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_14"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_15"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_16"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_15") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_7"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_8"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_9"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_10"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_11"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_12"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_13"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_14"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_15"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_14") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_7"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_8"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_9"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_10"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_11"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_12"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_13"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_14"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_13") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_7"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_8"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_9"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_10"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_11"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_12"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_13"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_12") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_7"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_8"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_9"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_10"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_11"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_12"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_11") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_7"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_8"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_9"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_10"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_11"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_10") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_7"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_8"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_9"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_10"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_9") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_7"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_8"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_9"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_8") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_7"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_8"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_7") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_7"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_6"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_5"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_4"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_3"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore",
        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_2"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1") != "" then
      menubox(
        getvar("recovery_version"),
        "Please Select a Backup Below:",
        "@android_tool",
        "chosen_backup_num.prop",

        file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_1"), "", "@menu_restore"
      );
      setvar("isSet", "true");
    endif;
    endif;

    setvar("isSet", "false");
    setvar("chosen_backup_num", prop("chosen_backup_num.prop", "selected"));
    setvar("chosen_backup_name", file_getprop(getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/backups.prop", "Backup_"+getvar("chosen_backup_num")));

    ####################
    # Restore Checking #
    ####################

    if getvar("chosen_backup_name") == "" then

      alert(
        "No Previous Backup",
        "Please make a Backup first.",
        "@alert"
      );

      #-- Back to Menu
      back("1");

    endif;

    # Used by tool_restore.sh
    writetmpfile("target_restore_name.prop", "restore_name="+getvar("chosen_backup_name")+"\n");

    # Used by tool_md5sum.sh
    writetmpfile("md5sum_check.prop", "status=0");

    ####################
    # Advanced Restore #
    ####################

    setvar("tar_prop_path", getvar("TEMP")+"/"+getvar("chosen_rom_name")+"/"+getvar("chosen_backup_name")+"/tar.prop");
    setvar("restore_type.prop", "restore_type_"+getvar("chosen_backup_name")+".prop");

    ##
    # Checkbox
    #
    #----------------------------------[ Selectbox With Groups ]-----------------------------------#
    # TITLE            |  SUBTITLE                                                 | Initial Value #
    #------------------+-----------------------------------------------------------+---------------#

    #--------[ Initial Value = 0: Unselected, 1: Selected, 2: Group Item, 3: Not Visible ]---------#

    if getvar("isSet") != "true" then
    if file_getprop(getvar("tar_prop_path"), "boot") == "yes" && 
       file_getprop(getvar("tar_prop_path"), "system") == "yes" && 
       file_getprop(getvar("tar_prop_path"), "data") == "yes" then
      checkbox(
        getvar("recovery_version"),
        getvar("menu2")+" for <#selectbg_g>"+getvar("chosen_backup_name")+"</#>",
        "@menu_restore",
        getvar("restore_type.prop"),
   
          "Restore Boot",   "", 1,    #-- item.0.1 = 0 or 1
          "Restore System", "", 1,    #-- item.0.2 = 0 or 1
          "Restore Data",   "", 1     #-- item.0.3 = 0 or 1
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("tar_prop_path"), "boot") == "yes" && 
       file_getprop(getvar("tar_prop_path"), "system") == "yes" && 
       file_getprop(getvar("tar_prop_path"), "data") != "yes" then
      checkbox(
        getvar("recovery_version"),
        getvar("menu2")+" for <#selectbg_g>"+getvar("chosen_backup_name")+"</#>",
        "@menu_restore",
        getvar("restore_type.prop"),
   
          "Restore Boot",   "", 1,    #-- item.0.1 = 0 or 1
          "Restore System", "", 1,    #-- item.0.2 = 0 or 1
          "Restore Data",   "", 0     #-- item.0.3 = 0 or 1
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("tar_prop_path"), "boot") == "yes" && 
       file_getprop(getvar("tar_prop_path"), "system") != "yes" && 
       file_getprop(getvar("tar_prop_path"), "data") == "yes" then
      checkbox(
        getvar("recovery_version"),
        getvar("menu2")+" for <#selectbg_g>"+getvar("chosen_backup_name")+"</#>",
        "@menu_restore",
        getvar("restore_type.prop"),
   
          "Restore Boot",   "", 1,    #-- item.0.1 = 0 or 1
          "Restore System", "", 0,    #-- item.0.2 = 0 or 1
          "Restore Data",   "", 1     #-- item.0.3 = 0 or 1
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("tar_prop_path"), "boot") != "yes" && 
       file_getprop(getvar("tar_prop_path"), "system") == "yes" && 
       file_getprop(getvar("tar_prop_path"), "data") == "yes" then
      checkbox(
        getvar("recovery_version"),
        getvar("menu2")+" for <#selectbg_g>"+getvar("chosen_backup_name")+"</#>",
        "@menu_restore",
        getvar("restore_type.prop"),
   
          "Restore Boot",   "", 0,    #-- item.0.1 = 0 or 1
          "Restore System", "", 1,    #-- item.0.2 = 0 or 1
          "Restore Data",   "", 1     #-- item.0.3 = 0 or 1
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("tar_prop_path"), "boot") == "yes" && 
       file_getprop(getvar("tar_prop_path"), "system") != "yes" && 
       file_getprop(getvar("tar_prop_path"), "data") != "yes" then
      checkbox(
        getvar("recovery_version"),
        getvar("menu2")+" for <#selectbg_g>"+getvar("chosen_backup_name")+"</#>",
        "@menu_restore",
        getvar("restore_type.prop"),
   
          "Restore Boot",   "", 1,    #-- item.0.1 = 0 or 1
          "Restore System", "", 0,    #-- item.0.2 = 0 or 1
          "Restore Data",   "", 0     #-- item.0.3 = 0 or 1
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("tar_prop_path"), "boot") != "yes" && 
       file_getprop(getvar("tar_prop_path"), "system") == "yes" && 
       file_getprop(getvar("tar_prop_path"), "data") != "yes" then
      checkbox(
        getvar("recovery_version"),
        getvar("menu2")+" for <#selectbg_g>"+getvar("chosen_backup_name")+"</#>",
        "@menu_restore",
        getvar("restore_type.prop"),
   
          "Restore Boot",   "", 0,    #-- item.0.1 = 0 or 1
          "Restore System", "", 1,    #-- item.0.2 = 0 or 1
          "Restore Data",   "", 0     #-- item.0.3 = 0 or 1
      );
      setvar("isSet", "true");
    endif;
    endif;

    if getvar("isSet") != "true" then
    if file_getprop(getvar("tar_prop_path"), "boot") != "yes" && 
       file_getprop(getvar("tar_prop_path"), "system") != "yes" && 
       file_getprop(getvar("tar_prop_path"), "data") == "yes" then
      checkbox(
        getvar("recovery_version"),
        getvar("menu2")+" for <#selectbg_g>"+getvar("chosen_backup_name")+"</#>",
        "@menu_restore",
        getvar("restore_type.prop"),
   
          "Restore Boot",   "", 0,    #-- item.0.1 = 0 or 1
          "Restore System", "", 0,    #-- item.0.2 = 0 or 1
          "Restore Data",   "", 1     #-- item.0.3 = 0 or 1
      );
      setvar("isSet", "true");
    endif;
    endif;

    setvar("isSet", "false");

    ####################
    # Restore Checking #
    ####################

    run_program("/sbin/cp", "/tmp/aroma/"+getvar("restore_type.prop"), "/tmp/aroma/restore_type.prop");

    if (file_getprop("/tmp/aroma/restore_type.prop", "item.0.1") == "1" ||
        file_getprop("/tmp/aroma/restore_type.prop", "item.0.2") == "1" ||
        file_getprop("/tmp/aroma/restore_type.prop", "item.0.3") == "1") then

      # dummy
      setvar("isSelected", "yes");

    else

      alert(
        "Nothing Selected",
        "Please select at least one item.",
        "@alert"
      );

      #-- Back
      back("1");

    endif;

  endif;

  ###############
  # 3. Deletion #
  ###############

  if prop("menu.prop", "selected") == "3" then

    if confirm(

      getvar("recovery_version"),
      "Are You Sure to delete <#selectbg_g>"+getvar("chosen_rom_name")+"</#> ?"+
        "\n\nThis operation cannot be undone!",
      "@menu_deletion"

    ) == "yes" then

      if confirm(

        getvar("recovery_version"),
        "Are You Really Sure to delete <#selectbg_g>"+getvar("chosen_rom_name")+"</#> ?"+
          "\n\nThis operation cannot be UNDONE!!!\nThis operation cannot be UNDONE!!!\nThis operation cannot be UNDONE!!!",
        "@menu_deletion"

      ) == "yes" then

        # Deletion
        zipexec("scripts/tool_delete.sh", getvar("chosen_rom_name"));
        alert(
          "Finished",
          "<#selectbg_g>"+getvar("chosen_rom_name")+"</#> has been deleted.",
          "@alert"
        );

        # Re-Scan the SD-EXT partition to create a new ROM list
        pleasewait("Scanning the SD-EXT Partition...");
        zipexec("scripts/scan_EXT.sh", getvar("roms.prop"));

      else # no

        #-- Back to ROM Selection
        back("1");

      endif;

    endif;

    #-- Back to ROM Selection
    back("1");

  endif;

  ################
  # Confirmation #
  ################

  if prop("menu.prop", "selected") == "1" then
    setvar("info", "Backing up...");
  endif;

  if prop("menu.prop", "selected") == "2" then
    setvar("info", "Restoring...");
  endif;

  if confirm(

    getvar("recovery_version"),
    "All information has been collected.\n\n"+
      "Press Yes To Start <#selectbg_g><b>"+getvar("info")+"</b></#>",
    "@confirm"

  ) == "no" then

    #-- Back
    back("1");

  endif;

  ##############
  # Processing #
  ##############

  install(
    getvar("recovery_version"),
    "Processing...\n"+
      "Please wait...",
    "@install"
  );

  ##########
  # Finish #
  ##########

  if prop("menu.prop", "selected") == "1" then
    setvar("info", "Backup finished");
  endif;

  if prop("menu.prop", "selected") == "2" then
    setvar("info", "Restore finished");
    if file_getprop("/tmp/aroma/md5sum_check.prop", "status") == "mismatch" then
      setvar("info", "Restore failed");
    endif;
  endif;

  # Set Next Text to 'Finish'
  ini_set("text_next", "Finish");

  checkviewbox(
    getvar("recovery_version"),
    "Complete\n"+
      "<#selectbg_g>"+getvar("info")+"</#>",
    "@finish",
    "Reboot your device now.", "1", "reboot_it"
  );

  #-- Check if reboot checkbox was checked
  if getvar("reboot_it") == "1" then
    reboot("onfinish");
  endif;

endif;
