[Android Q&A, Help & Troubleshooting] Freewaymad:
Upgrade From ICS4.0 bootloader to JB4.3 bootloader in an OTA

Hi,

I am having a difficult time with this. How do I customize the update script to update u-boot? Because android only upgrades the boot.img, system.img, and recovery partitions, the automatically generated update package does not support upgrading bootloader. So...would I unzip the update.zip, and then modify the updater_script by implementing the following operations:

# Write u-boot to 1K position.

# u-boot binary should be a no padding uboot!

# For eMMC(iNand) device, needs to unlock boot partition.

ui_print("writting u-boot...");

package_extract_file("files/u-boot-no-padding.bin", "/tmp/u-boot-no-padding.bin");

sysfs_file_write("class/mmc_host/mmc0/mmc0:0001/boot_config", "1");

simple_dd("/tmp/u-boot-no-padding.bin", "/dev/block/mmcblk0", 1024);

sysfs_file_write("class/mmc_host/mmc0/mmc0:0001/boot_config", "8");

show_progress(0.1, 5);

then put the "u-boot-no-padding.bin" in the update package and zip it? Should this script be at the beginning of the updater_script or the end?

:confused::confused::confused::confused::confused::confused::confused::confused::confused::confused::confused::confused::confused::confused::confused:

Here is the updater_script I've put together. I put the u-boot (bootloader) operations at the end. Would this be correct?

show_progress(0.1, 0);
format("ext4", "EMMC", "/dev/block/mmcblk0p5");
mount("ext4", "EMMC", "/dev/block/mmcblk0p5", "/system");
package_extract_dir("system", "/system");
symlink("toolbox", "/system/bin/ifconfig");
symlink("toolbox", "/system/bin/hd");
symlink("toolbox", "/system/bin/setprop");
symlink("toolbox", "/system/bin/dmesg");
symlink("toolbox", "/system/bin/load_policy");
symlink("toolbox", "/system/bin/kill");
symlink("toolbox", "/system/bin/reboot");
symlink("toolbox", "/system/bin/top");
symlink("toolbox", "/system/bin/getevent");
symlink("toolbox", "/system/bin/clear");
symlink("toolbox", "/system/bin/setsebool");
symlink("toolbox", "/system/bin/setconsole");
symlink("toolbox", "/system/bin/mount");
symlink("toolbox", "/system/bin/md5");
symlink("toolbox", "/system/bin/wipe");
symlink("toolbox", "/system/bin/newfs_msdos");
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/renice");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/runcon");
symlink("toolbox", "/system/bin/log");
symlink("toolbox", "/system/bin/start");
symlink("toolbox", "/system/bin/ionice");
symlink("toolbox", "/system/bin/printenv");
symlink("mksh", "/system/bin/sh");
symlink("toolbox", "/system/bin/du");
symlink("toolbox", "/system/bin/nandread");
symlink("toolbox", "/system/bin/mv");
symlink("toolbox", "/system/bin/df");
symlink("toolbox", "/system/bin/dd");
symlink("toolbox", "/system/bin/chcon");
symlink("toolbox", "/system/bin/restorecon");
symlink("toolbox", "/system/bin/cp");
symlink("toolbox", "/system/bin/watchprops");
symlink("toolbox", "/system/bin/rm");
symlink("toolbox", "/system/bin/vmstat");
symlink("toolbox", "/system/bin/ioctl");
symlink("toolbox", "/system/bin/notify");
symlink("toolbox", "/system/bin/lsmod");
symlink("toolbox", "/system/bin/iftop");
symlink("toolbox", "/system/bin/touch");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/uptime");
symlink("toolbox", "/system/bin/ln");
symlink("toolbox", "/system/bin/umount");
symlink("toolbox", "/system/bin/ps");
symlink("toolbox", "/system/bin/smd");
symlink("toolbox", "/system/bin/getsebool");
symlink("toolbox", "/system/bin/grep");
symlink("toolbox", "/system/bin/ls");
symlink("toolbox", "/system/bin/date");
symlink("toolbox", "/system/bin/getprop");
symlink("toolbox", "/system/bin/sync");
symlink("toolbox", "/system/bin/sleep");
symlink("toolbox", "/system/bin/insmod");
symlink("toolbox", "/system/bin/lsof");
symlink("toolbox", "/system/bin/mkdir");
symlink("toolbox", "/system/bin/route");
symlink("toolbox", "/system/bin/schedtop");
symlink("toolbox", "/system/bin/id");
symlink("toolbox", "/system/bin/setenforce");
symlink("toolbox", "/system/bin/getenforce");
symlink("toolbox", "/system/bin/sendevent");
symlink("toolbox", "/system/bin/rmdir");
symlink("toolbox", "/system/bin/rmmod");
symlink("toolbox", "/system/bin/netstat");
symlink("toolbox", "/system/bin/cmp");
symlink("toolbox", "/system/bin/stop");
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 0, 0777, 0777, "/system/etc/init.d");
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_pair_devlist.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_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor/etc");
set_perm(0, 2000, 0755, "/system/vendor/lib");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/su");
symlink("/system/xbin/su", "/system/bin/su");
show_progress(0.1, 10);
show_progress(0.2, 0);
package_extract_file("boot.img", "/dev/block/mmcblk0p1");
show_progress(0.2, 10);
ui_print("writting u-boot...");
package_extract_file("files/u-boot-no-padding.bin", "/tmp/u-boot-no-padding.bin");
sysfs_file_write("class/mmc_host/mmc0/mmc0:0001/boot_config", "1");
simple_dd("/tmp/u-boot-no-padding.bin", "/dev/block/mmcblk0", 1024);
sysfs_file_write("class/mmc_host/mmc0/mmc0:0001/boot_config", "8");
show_progress(0.1,, 5);
unmount("/system");

Please help.

Thank you