• If you are experiencing issues logging in, we moved to a new and more secure software and older account passwords were not able to be migrated. We recommend trying to reset your password, then contacting us if there are issues.
  • Nearly done! Migration cleanup is mostly done. There are a small number of issues left that we continue to work on, but all the heavy lifting is done. We still would love to hear feedback over at this thread and also check out the new XDA app! Thanks and we hope you enjoy the new forums, and thanks for your support of XDA <3

AT&amp;T I747 UCUEMJB 4.3 Stock Restore

enewman17

Elite Member
Sep 20, 2010
3,672
8,717
0
Fort Wayne, IN
AT&T I747 UCUEMJB Stock Restore

This is Abandoned. I recommend you do not use this to restore you phone as to a fear of bricking your device.

This is a last ditch effort for restoring the AT&T I747 to factory stock. This zip will wipe all data, clear the binary flash count, restore the system, flash the latest KNOX firmware and stock recovery. There is absolutely no possible way to clear the warranty bit back to 0 IT IS IMPOSSIBLE TO REVERT ONCE TRIPED!! Not even Samsung can undo this.! Its the price we pay for rooting our phones. Also once tripped KNOX is rendered useless and will no longer be available as an app in your drawer.

This is meant for restoring your phone to as near stock as possible in hopes to capture any future OTA updates. Can't guarantee that will work either...

As always I don't take any responsibility for what you do with your phone. Please do not flash this if you don't understand the consequences. This thread will have limited support. Use with caution!


Directions are really simple.
  1. Downloads:
    TWRP and CWM 6.0.4.5 http://www.mediafire.com/download/30idxwhg2hidxx2/ATT_I747_UCUEMJB_StockRestore_2282014.zip
    MD5: 739f9cf2d0eb570ec7d18146d5e4a45f

    CWM 6.0.4.7: http://www.mediafire.com/download/h7mw94pfj5qssty/ATT_I747_UCUEMJB_StockRestore_CWM_2282014.zip
    MD5: 487b55449ecf7b0c273d5df86f51c170

    Odin: http://forum.xda-developers.com/showpost.php?p=52341560&postcount=227

  2. Verify the MD5
  3. Flash via custom recovery (CWM or TWRP).

When flash is done
  1. Allow phone to fully boot up.
  2. Boot into download mode and verify the count has been reset. (Hold Volume Down, Home and Power till you see D/L mode appear. Quickly release button combo, then Volume Up to continue)
  3. Boot into recovery and verify that it is now stock. (Hold Volume Up, Home and Power till you see "Recovery Booting..." in the upper left hand corner then immediately release button combo)
  4. If your selling your phone or returning for warranty now would be a good time to give one last factory data reset before boxing.

XDA:DevDB Information
MJB Stock Restore, ROM for the AT&T Samsung Galaxy S III

Contributors
enewman17
ROM OS Version: 4.3.x Jellybean

Version Information
Status: Beta

Created 2014-02-23
Last Updated 2014-05-26
 
Last edited:

talkingmonkeys

Recognized Contributor / Themer
May 15, 2013
2,644
4,411
0
Great job on this. Hoping I won't ever need this but it sure is a relief to know someone put hard work into making this for those of us that have no choice
 
  • Like
Reactions: enewman17

enewman17

Elite Member
Sep 20, 2010
3,672
8,717
0
Fort Wayne, IN
First!!! Thank you. Takes out a worry (no warranty but resale potential is nice). Does this work with Knox and efuse?

Sent from my awesome phone.
Not sure what you mean. Yes this is completely stock so it has knox.

The qfuse or efuse.... are one-time-programmable (OTP) elements that are used to enable and disable security and debug features of the MSM7xxx device. The Qfuses are implemented as an array of one-bit fuse blocks. The Qfuse banks are used for two purposes — providing non-volatile, immutable storage of data, and configuration of hardware features. For immutable data storage, the Qfuses are read via a shadow register which contains the actual value stored and includes error correction. For configuration, each Qfuse is associated with a one-time write register. The value of each Qfuse is sensed at power up and stored in a register. Blowing Qfuses is done by placing a value to a register and applying current to the fuse. The fuse registers are accessible through JTAG and software readable address locations.

So long as your not trying to downgrade there is no fear of erasing this register. Previous versions did not use this feature to secure the bootloader. So in download mode you will see "Warranty Bit 1" if we get an update and they update the firmware it will jump to 2. Does this help? :good:
 
Last edited:

sameog

Senior Member
Apr 21, 2010
495
89
28
San Francisco
Thanks enewman17!

This lil' bugger is hard to get and hard to find. Plus, Samsung and AT&T only made 4.3 OTA only, therefore wasn't released as a ROM. <grrrrr>

No worries though, thanks to you for digging this up. I'm keeping this, in case my phone starts acting crazy or wanted the "stock feel" back.

Big ups, enewman17!

AT&T I747 UCUEMJB Stock Restore

Here is what we got. This zip will wipe all data, clear the flash count, restore the system, flash MJB firmware and stock recovery.
I've flashed this many many times and seems to be working just fine. I can not guarantee this will work for any future OTA's (as there is no way to verify)
but should work just fine for any service or warranty work. As always I don't take any responsibility for what you do with your phone.

Directions are really simple.
  1. Download http://www.mediafire.com/download/2j5pf893spm3zpy/ATT_I747_UCUEMJB_StockRestore.zip
  2. Verify the MD5: bb4a69d922030327c97c3a8775476fce
  3. Flash via custom recovery (CWM or TWRP).

When flash is done
  1. Allow phone to fully boot up.
  2. Boot into download mode and verify the count has been reset. (Hold Volume Down, Home and Power till you see D/L mode appear. Quickly release button combo, then Volume Up to continue)
  3. Boot into recovery and verify that it is now stock. (Hold Volume Up, Home and Power till you see "Recovery Booting..." in the upper left hand corner then immediately release button combo)
  4. If your selling your phone or returning for warranty now would be a good time to give one last factory data reset before boxing.

XDA:DevDB Information
MJB Stock Restore, a ROM for the AT&T Samsung Galaxy S III

Contributors
enewman17
ROM OS Version: 4.3.x Jellybean

Version Information
Status: Testing

Created 2014-02-23
Last Updated 2014-02-22
 
  • Like
Reactions: Filantropo75

theramsey3

Senior Member
Jun 27, 2012
355
167
0
Downloaded and saved for later use. Thanks for your hard work and for your unrelentless giving to the community. I hope to one day learn half of what you know about building stuff for phones so I too can give to the community. Thanks again.

Sent from my SAMSUNG-SGH-I747 running S3Rx MJ2 bootloader MJB modem and it is smooth
 
  • Like
Reactions: enewman17

shortydoggg

Senior Member
Apr 11, 2011
856
329
0
This was needed badly around here. You're a genius.

However, we still need more to testers to verify this around here as with anything new. I cannot use this yet because I'm still on 4.1.2.
 

ParryB

Member
Mar 23, 2011
34
0
0
Wilkesboro
I keep getting the "Status 7 Installation Aborted" error. And it says "format () expects 5 args, got 3

I checked the MD5 Checksum and was flashing it through CWM 6.** (currently on 4.3.1 / CM 10.2.1 -d2att)
 
Last edited:

enewman17

Elite Member
Sep 20, 2010
3,672
8,717
0
Fort Wayne, IN
I'm getting the same error :(
I keep getting the "Status 7 Installation Aborted" error. And it says "format () expects 5 args, got 3

I checked the MD5 Checksum and was flashing it through CWM 6.** (currently on 4.3.1 / CM 10.2.1 -d2att)
Alright here is my install script. I only tested on the latest twrp and with the binary I'm using it only wanted 3 arguments.


assert(getprop("ro.bootloader") == "I747UCALEM" || getprop("ro.bootloader") == "I747UCALG1" || getprop("ro.bootloader") == "I747UCDLK3" || getprop("ro.bootloader") == "I747UCDMG2" || getprop("ro.bootloader") == "I747UCUEMJ2" || getprop("ro.bootloader") == "I747UCUEMJB");
ui_print("*********************************");
ui_print("* TouchWiz 4.3 I747UCUEMJB *");
ui_print("* Stock Restore *");
ui_print("*********************************");
ui_print("");
run_program("/sbin/busybox", "mkdir", "/tmp");
ui_print("[*] Resetting flash counter");
package_extract_dir("tools", "/tmp");
set_perm(0, 0, 0777, "/tmp/clearcount.sh");
set_perm(0, 0, 0777, "/tmp/bl");
run_program("/tmp/clearcount.sh");
delete("/tmp/clearcount.sh", "/tmp/bl");
unmount("/cache");
unmount("/system");
unmount("/data");
ui_print("[*] Formatting cache");
format("ext4", "EMMC", "/dev/block/mmcblk0p17");
ui_print("[*] Formatting system");
format("ext4", "EMMC", "/dev/block/mmcblk0p14");
mount("ext4", "EMMC", "/dev/block/mmcblk0p17", "/cache");
mount("ext4", "EMMC", "/dev/block/mmcblk0p14", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p15", "/data");
ui_print("[*] Formatting dalvik");
delete_recursive("/data/dalvik-cache");
delete_recursive("/data/local");
ui_print("[*] Formatting data");
run_program("/sbin/sh", "-c", "find /data/* -maxdepth 0 -type d ! -name 'media' -exec rm -rf {} +");
ui_print("[*] Restoring system");
package_extract_dir("system", "/system");
ui_print("[*] Symlinking");
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");
symlink("toolbox", "/system/bin/chcon");
symlink("toolbox", "/system/bin/setenforce");
symlink("toolbox", "/system/bin/grep");
symlink("toolbox", "/system/bin/runcon");
symlink("toolbox", "/system/bin/touchinput");
symlink("toolbox", "/system/bin/md5");
symlink("toolbox", "/system/bin/getsebool");
symlink("toolbox", "/system/bin/setsebool");
symlink("toolbox", "/system/bin/restorecon");
symlink("toolbox", "/system/bin/getenforce");
symlink("toolbox", "/system/bin/load_policy");
symlink("toolbox", "/system/bin/cp");
symlink("toolbox", "/system/bin/playback");
symlink("toolbox", "/system/bin/du");
symlink("wiperiface_v02", "/system/bin/wiperiface");
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_pairing.conf");
set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");
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, 0, 0755, 0644, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/lib");
set_perm(0, 2000, 0755, "/system/vendor/lib/hw");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
ui_print("[*] Extracting Kernel");
package_extract_file("boot.img", "/dev/block/mmcblk0p7");
ui_print("[*] Restoring stock firmware");
package_extract_dir("firmware", "/tmp");
set_perm(0, 0, 0777, "/tmp/dd");
run_program("/tmp/dd", "if=/tmp/NON-HLOS.bin", "of=/dev/block/mmcblk0p1");
run_program("/tmp/dd", "if=/tmp/sbl1.mbn", "of=/dev/block/mmcblk0p2");
run_program("/tmp/dd", "if=/tmp/sbl2.mbn", "of=/dev/block/mmcblk0p3");
run_program("/tmp/dd", "if=/tmp/sbl3.mbn", "of=/dev/block/mmcblk0p4");
run_program("/tmp/dd", "if=/tmp/aboot.mbn", "of=/dev/block/mmcblk0p5");
run_program("/tmp/dd", "if=/tmp/rpm.mbn", "of=/dev/block/mmcblk0p6");
run_program("/tmp/dd", "if=/tmp/tz.mbn", "of=/dev/block/mmcblk0p8");
run_program("/tmp/dd", "if=/tmp/recovery.img", "of=/dev/block/mmcblk0p18");
delete_recursive("/tmp");
unmount("/system");


This is what I have: format with 3 argument

ui_print("[*] Formatting cache");
format("ext4", "EMMC", "/dev/block/mmcblk0p17");
ui_print("[*] Formatting system");
format("ext4", "EMMC", "/dev/block/mmcblk0p14");



This is what CWM wants: format with 5 argument.

ui_print("[*] Formatting cache");
format("ext4", "EMMC", "/dev/block/mmcblk0p17", "0", "/cache");
ui_print("[*] Formatting system");
format("ext4", "EMMC", "/dev/block/mmcblk0p14", "0", /system");


It's an easy fix, just open the zip archive pull updater-script form the meta-inf/com/google/android folder. Make the changes then just drag the updater-script back into the zip. I'll upload another one with the changes though.