[Q] How to repartition KindleFire - Kindle Fire Q&A, Help & Troubleshooting

So I got to the part where know I know my partitions are off. Heres what I get with the print command in parted:
Code:
/dev/block/platform/mmci-omap-hs.1 # parted /dev/block/mmcblk0
parted /dev/block/mmcblk0
GNU Parted 1.8.8.1.179-aef3
Using /dev/block/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
print
print
Model: MMC M8G2FA (sd/mmc)
Disk /dev/block/mmcblk0: 7734MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Number Start End Size File system Flags
1 0.00B 7734MB 7734MB ext2
I have the mmcblk0p1.img, mmcblk0p2.img, ect... on my computer. How would one use these to restore the partitions so I can install twrp and install stock os?

Messing with the partition table is one slip away from brickage...
Sent from my SAMSUNG-SGH-I777 using xda premium

Well, I am bricked.

I just said screw it and got a new one free from bestbuy.

http://forum.xda-developers.com/showthread.php?t=1388996
a good reading on cold night. also factory cable is not a bad thing

danij3l said:
http://forum.xda-developers.com/showthread.php?t=1388996
a good reading on cold night. also factory cable is not a bad thing
Click to expand...
Click to collapse
The partition tables got nuked while being stuck in fastboot mode, so a factory cable isn't gonna help anything. Repartitioning when there aren't any partition tables built can't help either.

Hoping to rev FIREFIREFIRE sometime this weekend with a partition table initializer. This plus the USB boot should give people a way out. It's already in there but I don't think the partition map is right. Maybe I could add an extra command for alternate partitioning so we don't run into this problem...

pokey9000 said:
Hoping to rev FIREFIREFIRE sometime this weekend with a partition table initializer. This plus the USB boot should give people a way out. It's already in there but I don't think the partition map is right. Maybe I could add an extra command for alternate partitioning so we don't run into this problem...
Click to expand...
Click to collapse
How would we install a new version of FFF if we don't have any partitions?

You don't. If the partition table is broken, then likely the CPU will default to USB boot, where you can use Rekindle to run FFF.

pokey9000 said:
You don't. If the partition table is broken, then likely the CPU will default to USB boot, where you can use Rekindle to run FFF.
Click to expand...
Click to collapse
Ah. I see what you mean. I'm sending mine back tomorrow anyway, so this will definitely help people who get nuked partition tables from booting unstable-ish kernels.

And FFF can now restore your partition table. Custom partitions is still TBD.
Get it here.

It's best to set "unit mib" in parted!
Thanks to to all for this useful thread. But I have an additional suggestion:
When starting parted and before issuing a 'print' command, one should issue the command:
Code:
unit MiB
which causes parted to print sizes and boundaries in binary megabytes, i.e., 1MiB = 1024KiB, where 1KiB = 1024 bytes, which is the numbering system still used for RAM chips, but not much else, since marketers prefer the numbering system that makes their product appear bigger. That way, the numbers given by parted are exact and non-overlapping. When numbers are entered in conformity with this presentation, they should be written with the suffix MiB, without any space after the number. Please keep in mind that, in this format, the end of one partition is the 1MiB block before the start of the next one. When the default decimal format is used, the end of one partition will be the in the same 1MB block as the start of the next partition, which hides the actual point of division, which could be anywhere in that 1MB block, depending on where an actual binary boundary falls.
Also note that each block is specified by its offset (in MB or MiB) from the beginning of some larger space, probably /dev/block/mmcblk0. It would make more sense to specify the end of a partition as the offset in MiB to the first byte following the partition, as most disk management programs do. I don't know why parted does it differently.

Related

[Q]: repartitioning hiccup [solved]

Ok, I posted this question in 2 other threads that had info on the process (will delete the posts when this one goes live), but no responses after a couple of days. One of them is old though.
I have TWRP 2.1.1 installed. ADB seems to be working normally. Superuser is working fine after booting to android. I'm running a custom ICS ROM (Energy); read that stock ROM can cause issues repartitioning.
I started with this How-to as it looked very straight forward.
I start throwing the commands at ADB and here's what I got for my efforts:
Code:
C:\Program Files (x86)\Android\android-sdk\platform-tools>adb shell
~ # su
su
/sbin/sh: su: not found
~ # cd /data
cd /data
/data # ls
ls
/data #
decided to go ahead and check the mount command:
Code:
~ # mount
mount
rootfs on / type rootfs (rw)
tmpfs on /dev type tmpfs (rw,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
~ #
and parted just for giggles:
Code:
~ # parted /dev/block/mmcblk0
parted /dev/block/mmcblk0
GNU Parted 1.8.8.1.179-aef3
Using /dev/block/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
print
print
Model: MMC MMC08G (sd/mmc)
Disk /dev/block/mmcblk0: 7818MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 131kB 262kB 131kB xloader
2 262kB 524kB 262kB bootloader
3 524kB 11.0MB 10.5MB dkernel
4 11.0MB 212MB 201MB ext4 dfs
5 212MB 229MB 16.8MB recovery
6 229MB 296MB 67.1MB ext4 backup
7 296MB 307MB 10.5MB boot
8 307MB 312MB 5243kB ext4 splash
9 312MB 849MB 537MB ext4 system
10 849MB 2041MB 1192MB ext4 userdata
11 2041MB 2309MB 268MB ext4 cache
12 2309MB 7690MB 5380MB fat32 media
(parted)
Ok, so that much worked. Now I tried to shrink 12 so I could double the size of 9. I want to get Switchme set up for his/her profiles and 500MB just isn't going to cut it.
That's when I hit a brick wall:
Code:
(parted) resize 12 2846 7690
resize 12 2846 7690
resize 12 2846 7690
Error: Unable to satisfy all constraints on the partition.
(parted)
One thing that jumps out at me right away is this:
Code:
adb shell
~ # su
su/sbin/sh: su: not found
It seems you are not actually rooted.
To check, enter:
Code:
adb shell
ls /system/xbin
If you don't see "su" in the list, then you don't have root permissions, which would probably prevent you from doing what you need to accomplish.
That's what I was wondering, but apps are able to ask for and receive root permission from within the ROM. SU does exist, just not where the shell is looking when in recovery.
Code:
C:\Program Files (x86)\Android\android-sdk\platform-tools>adb shell
~ # ls /system/xbin
ls /system/xbin
ls: /system/xbin: No such file or directory
~ #
I did an ls /system/xbin from adb shell and from Terminal Emulator within Android and both returned a long list containing SU.
TWRP provides an unsecured (unsecure? insecure?) boot. Whatever the terminology, it gives you immediate access to root privileges. Apparently CWMR (which was used in the OP of the thread you used) does not and so that author had to use su. For TWRP, it's not necessary and not even available. You already have root privileges as indicated by the hash prompt.
I tried resizing my /sdcard partition and it worked fine with the command you tried. I'm not sure what's going on with your storage device that it wouldn't resize it for you. At first I thought it might be mounted, but your mount command shows otherwise and parted gave me a different error when I had it mounted.
I don't know if this is going to help you, but you might try giving it the "MB" suffix in your numbers....
Code:
resize 12 2846MB 7690MB
Maybe even try changing units to bytes and giving the resize command byte sized boundaries.
Code:
unit B
print
will show you the numbers in bytes and you'd have to use the "B" suffix as in the "MB" example above.
If none of that works, you can always remove and remake the partition. For example...
Code:
rm 12
mkpartfs primary fat32 <start> <end>
name 12 media
You'd obviously need to insert acceptable boundaries for the start and end into that command. It might even be easier to just remove all 9, 10, 11, and 12 and remake/rename them, but remember 9, 10, and 11 are ext4 filesystems so the above mkpartfs command needs to be tweaked accordingly.
One thing I noticed while I was experimenting with the partition table this morning... all of the existing partitions have been allocated in 128MB chunks. I have no idea if this affects performance. I'd imagine you'd only need to stick to the 512B sector sizes, but you might want to stay with those conventions if it's not too inconvenient for you.
If you mess up the partition table, you can always go back to fastboot mode in FFF and use the...
Code:
fastboot oem format
feature to bring your partition table back to stock.
Good luck.
Wow, excellent response. Just the kind of detail I was hoping to get and it confirmed a few suspicions I had while searching the kindle threads. I'll report back on my degree of success when I get some free time to tinker.
I have a nandroid backup (also saved to PC) just in case and saved the partition table as-found. If everything gets hosed and I do an oem format I can just restore that and go or try from square one again, yes?
Sent from my TBolt with the XDA App using 1 opposable thumb
ProfEngr said:
Wow, excellent response. Just the kind of detail I was hoping to get and it confirmed a few suspicions I had while searching the kindle threads. I'll report back on my degree of success when I get some free time to tinker.
I have a nandroid backup (also saved to PC) just in case and saved the partition table as-found. If everything gets hosed and I do an oem format I can just restore that and go or try from square one again, yes?
Sent from my TBolt with the XDA App using 1 opposable thumb
Click to expand...
Click to collapse
I'd say that's a safe bet. Just be very careful about handling partitions 1 and 2 because those two are critical to getting anything to boot on your device. As long as you don't touch the xloader in partition 1 and have FFF installed in partition 2, you can rebuild the rest of it.... in theory. I only say "in theory" because I've never actually had to do it, but I don't see why it wouldn't work.
A couple of additional things I figured out after you put me to work with parted....
It looks like parted doesn't know how to make an ext4 filesystem, so mkpartfs balks if you tell it to make one. You'll have to use mkpart which just makes the partition, but not the filesystem. Then exit out of parted and use mke2fs, which despite its name knows how to make an ext4 filesystem. Like this for the cache partition...
Code:
mke2fs -T ext4 /dev/block/mmcblk0p11
The other thing is that parted sets a "msftres" flag on the fat32 filesystem it makes. The flag apparently is to tell the OS that it's reserved for Windows, or something like that. I didn't have a problem mounting in Linux and MacOS X, but the stuff I've read seems to indicate that older OS's have a problem with it. Unfortunately, the version of busybox on TWRP doesn't have a module to make a fat32 filesystem. I'm looking around to see how to get around that.
In any case, this should get you most of the way there. I'll followup if I find something out.
Ok. I used to run n*x, but use only M$ right now. Haven't touched a 'mac' since Jr High (IIgs)
Sent from my TBolt with the XDA App using 1 opposable thumb
ProfEngr said:
Ok. I used to run n*x, but use only M$ right now. Haven't touched a 'mac' since Jr High (IIgs)
Sent from my TBolt with the XDA App using 1 opposable thumb
Click to expand...
Click to collapse
I have a IIgs sitting in the basement... but it's not a mac, it's an Apple ][.
Found the last piece...
Code:
/system/bin/newfs_msdos /dev/block/mmcblk0p12
will make a fat32 filesystem correctly. I think that's all you'll need.
EDIT: OK, I must have been half asleep when I posted the above. That binary is on the stock system software I had mounted. There's nothing on TWRP to create a fat32 filesystem correctly.
Yeah, ][e was my first computer that didn't crash at the drop of a keystroke. Had an Adam tape drive model, but it froze up constantly.
Sent from my TBolt with the XDA App using 1 opposable thumb
So, I met with success following the repartition thread and tweaking it with your suggestions. I didn't quite move and many MB around as I thought, but it was enough to move me a little farther down the road with SwitchMe. At least it doesn't tell me I don't have enough memory for a 2nd profile now.
I still think it has issues with ICS or EnergyROM itself. When I created a new profile and rebooted to it I was stuck on Nova launcher instead of GO like the main profile. Strange.
I'll consider this thread to have fulfilled its usefulness. Thanks again for the help.
no device found
ProfEngr said:
So, I met with success following the repartition thread and tweaking it with your suggestions. I didn't quite move and many MB around as I thought, but it was enough to move me a little farther down the road with SwitchMe. At least it doesn't tell me I don't have enough memory for a 2nd profile now.
I still think it has issues with ICS or EnergyROM itself. When I created a new profile and rebooted to it I was stuck on Nova launcher instead of GO like the main profile. Strange.
I'll consider this thread to have fulfilled its usefulness. Thanks again for the help.
Click to expand...
Click to collapse
I get
(parted)
Error: No device found
Retry/Cancel

Still Stuck on TWRP, but now able to see device via Linux!

Hey all,
So I was able to run KFU and it got me stuck on the boot screen. Got help with that and was able to run KFU again but it got stuck on removing boot check and now I'm stuck with the TWRP homescreen.
My device was recognized in device manager but in the KFU it says ADB Status: Offline and Boot Status Unknown. ADB Device List is empty.
I am unable to mount the device from TWRP it keeps failing. I am also unable to mount the sdcard partition what-so-ever.
Pooch sent me info on how to boot up via usb drive into Linux (Mint) and I can find the device in the adb device list but I am not familiar enough with Linux to know how to push the ROM to the device as well as a better/newer version of TWRP. Any help in this would be greatly appreciated. Thanks.
I sent you full instructions on how to proceed in a pm the reason I chose that system is because its nice and small it will get you going.. you only have 150 mb to work with follow instructions and you should be fine
Issues persist
Hello! So, I was able to detect my device via adb in Linux with the help of ThePooch. (thanks a bunch!!!) However we have a small problem.
I am unable to mount my SD Card partition in TWRP at all. I wasn't sure why so we tried a bunch of stuff: We tried pushing a ROM, We tried mounting it via adb in terminal on Linux... We tried "fastboot oem format"... We tried adb shell echo /dev/block/mmcblk0p12 >> /sys/devices/platform/usb_mass_storage/lun0/file
We tried updating the recovery to TWRP 2.2.2.0.
We tried a lot of things however we were very unsuccessful in this and I am still unable to click "Mount SD Card" in TWRP or format it or wipe it.
What's confusing is that I was able to push files (zips) to the sd card temporarily and see them when we click "install" on TWRP however they fail to install and anything pushed to the sd card is, or course, erased on rebooting.
Really don't know what to do at this point as I am at a loss and would appreciate any assistance in this. Thanks so much!
Boot into recovery and enter:
Code:
adb shell
parted /dev/block/mmcblk0
print
...and post the results here.
soupmagnet said:
Boot into recovery and enter:
Code:
adb shell
parted /dev/block/mmcblk0
print
...and post the results here.
Click to expand...
Click to collapse
Model: MMC MMC08G (sd/mmc)
Disk /dev/block/mmcblk0: 7818MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 131kB 262kB 131kB xloader
2 262kB 524kB 262kB bootloader
3 524kB 11.0MB 10.5MB dkernel
4 11.0MB 212MB 201MB ext4 dfs
5 212MB 229MB 16.8MB recovery
6 229MB 296MB 67.1MB ext4 backup
7 296MB 307MB 10.5MB boot
8 307MB 312MB 5243kB ext4 splash
9 312MB 849MB 537MB ext4 system
10 849MB 2041MB 1192MB ext4 userdata
11 2041MB 2309MB 268MB ext4 cache
12 2309MB 7690MB 5380MB media
hmm wish I knew what I was looking at it looks to me like some things still exist even after a full wipe if I`m reading it correct glad soup knows what to look for
sphinxdog said:
Really don't know what to do at this point as I am at a loss and would appreciate any assistance in this. Thanks so much!
Click to expand...
Click to collapse
I've ran into this a couple of times and what I usually do is to delete the "media" partition, create it again with parted, name it "media", and then finally let the stock Kindle Fire recovery repair it. You may be able to skip the delete/create part and just boot into the stock recovery to see if it can repair it.
probably would work if in fact he had a working system but there isnt a bootable one at least..
Code:
Model: MMC MMC08G (sd/mmc)
Disk /dev/block/mmcblk0: 7818MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 131kB 262kB 131kB xloader
2 262kB 524kB 262kB bootloader
3 524kB 11.0MB 10.5MB dkernel
4 11.0MB 212MB 201MB ext4 dfs
5 212MB 229MB 16.8MB recovery
6 229MB 296MB 67.1MB ext4 backup
7 296MB 307MB 10.5MB boot
8 307MB 312MB 5243kB ext4 splash
9 312MB 849MB 537MB ext4 system
10 849MB 2041MB 1192MB ext4 userdata
11 2041MB 2309MB 268MB ext4 cache
12 2309MB 7690MB 5380MB media
Thepooch said:
hmm wish I knew what I was looking at it looks to me like some things still exist even after a full wipe if I`m reading it correct glad soup knows what to look for
Click to expand...
Click to collapse
The 'parted' program manipulates the partition table, which basically tells the device how the storage partitions are laid out. The 'print' command used to obtain the output above just displays the information stored in the partition table. I set the output in CODE so it's easier to read. The bottom portion of the data is the more interesting part and you can see the column names there...
Number - This is the partition number. You may have seen "/dev/block/mmcblk0p5" in the past referring to the recovery partition. That number after the letter 'p' refers to the partition number.
Start - This is the offset value for where the partition begins.
End - This is the offset value for where the partition ends.
Size - This is the size of the partition calculated by the difference of the two offset values above. Imagine a ruler where your "Start" offset is the 1 inch tick mark and your "End" offset is the 6 inch tick mark. The "Size" between the tick marks... 6 - 1 is 5.
File system - This is how the partition has been formatted... ext4 is a commonly used filesystem for linux. It's blank if parted doesn't recognize the filesystem type or none has been specified.
Name - The name given to the partition. You'll recognize some as ones you've used to refer to these partitions in fastboot. FYI, userdata typically gets mounted to /data and media gets mounted to /sdcard.
Flags - Used to indicate special characteristics of the filesystem.
The significant part of the output above is the missing filesystem for the media partition. It should have a fat32 filesystem. I'll leave it to soupmagnet to explain how to fix it.
kinfauns said:
The significant part of the output above is the missing filesystem for the media partition. It should have a fat32 filesystem.
Click to expand...
Click to collapse
As always, kinfains is correct. I've dealt with an issue similar to this on my own device pretty recently, so I knew immediately what we'd be dealing with. So you're going to remove, recreate and repartition your sdcard and then you'll be all set. Needless to say, any data on your sdcard will be lost, if it isn't already. Not to worry though, considering everything you have gone through up until this point, this part should be pretty painless.
Code:
adb shell
parted /dev/block/mmcblk0
rm 12
mkpartfs primary fat32 2309 7690
name 12 media
quit
mount /sdcard
exit
adb reboot
You may not need to reboot, but in my case, I did. You'll then be able to mount your sdcard over USB, or use "adb push" to transfer a ROM to flash in recovery. Just remember to wipe System and "Factory Reset" in recovery first, or you may very well find yourself in the exact same situation as before.
Have fun.
SUCCESS!!!! That took care of it! And I was able to load up the ROM with no problem. Thanks for all the help ThePooch & SoupMagnet!!!
Sent from my Kindle Fire using xda app-developers app

Alcatel 960C/ One Touch Authority

Has anyone created a clockworkmod for this? This phone can be rooted, thru two apps, poot, and ministro(Qt). It still has gingerbread 2.3.6, and I need clockworkmod, or the source code, to use clockworkmod's builder. It is the cdma variant of the alcatel 995(which is gsm). can anyone point me in the right direction?
Source Code
I have it rooted, with adb insecure running, to see everything. My bootloader seems to be locked, and the recovery is unknown, with limited options. I can do most things, except change roms, wipe data, or cache in recovery. I would like to be directed to good repository.
reggjoo said:
I have it rooted, with adb insecure running, to see everything. My bootloader seems to be locked, and the recovery is unknown, with limited options. I can do most things, except change roms, wipe data, or cache in recovery. I would like to be directed to good repository.
Click to expand...
Click to collapse
how did you get it rooted?
rooting alcatel authority (960c)
squidbutt said:
how did you get it rooted?
Click to expand...
Click to collapse
First make sure you have USB Debugging checked and your allowing instalation of unknown sources
DL these from the play store:
Minstro2
Superuser
DL poot.apk: View attachment poot.zip
Run poot, click yes to download the extra librarys, click "click here to poot" you will need to restart the phone when it prompts. You should be rooted now :good:
You can DL ES File Explorer(from play store) and in the settings check: Root Explorer, Up to Root and Mount File System. Now you can manage all the files on your phone but be careful of what you delete, some of the stock apk's are very hard to recover if you delete them.
Hope this helps
Download superuser first
Download superuser first, you won't be able to run it until the phone's rooted. after it's rooted, it will work. This way, seems to stop a problem, when you go thru the steps to root. Some people had a error. If you plan to open the /data, /system, or dalvik cache, on your computer, install chainfire's adb insecure. These folders don't open without this, on a computer.
I have the kernel source here, they have it released on SourceForge I'm guessing you're right saying the bootloader is locked.
Here's some information I've found on the partitions:
mmcblk0 Internal Memory
mmcblk0p1 Mounted using VFAT Contains files pertaining to FOTA (FOTA partition?)
mmcblk0p2 500 blocks ?
mmcblk0p3 1500 blocks ?
mmcblk0p4 1 BLOCK ?
mmcblk0p5 1000 blocks ?
mmcblk0p6 2000 blocks ?
mmcblk0p7 3072 blocks ?
mmcblk0p8 5120 blocks Possible Recovery*
mmcblk0p9 7000 blocks ?
mmcblk0p10 3027 blocks ?
mmcblk0p11 3072 blocks ?
mmcblk0p12 5120 blocks ?
mmcblk0p13 1500 blocks ?
mmcblk0p14 8192 blocks Mounts to /persist
mmcblk0p15 5120 blocks?
mmcblk0p16 1024 blocks?
mmcblk0p17 409600 blocks, Mounts to /system
mmcblk0p18 307200 blocks, Mounts to /cache
mmcblk0p19 892928 blocks, Mounts to /data
mmcblk0p20 122880 blocks, partition appears empty with a sting at the bottom of it reading ANDROID-BOOT!
mmcblk1 SD Card
mmcblk1p1 SD Card Partition
build.prop (Alltel phone):
build.prop
Source Code:
SourceForge Download Link
* In a recent patch I have found, the following code was in the install-recovery.sh file:
Code:
#!/system/bin/sh
if ! applypatch -c EMMC:/dev/block/mmcblk0p15:2048:afbffa74556cd8e77ef7e1a9d0964d9a2bd446b8; then
log -t recovery "Installing new recovery image"
applypatch EMMC:/dev/block/mmcblk0p8:4055040:9411e1fd06dfb3d8da4d1924162caf9e292ea652 EMMC:/dev/block/mmcblk0p15 20270fc8f6c8fca7dae0af5ce0928b589bd6b405 4296704 9411e1fd06dfb3d8da4d1924162caf9e292ea652:/system/recovery-from-boot.p
else
log -t recovery "Recovery image already installed"
fi
Any other information needed?
I'll look into getting a recovery working, but this is by no means a promise.
EDIT:
Something interesting:
The build.prop says the phone has a MSM7630_SURF board, and the Huawei U8800 has the same board, but not quite the same specs:
960C:
480x800
Multitouch
1400 Mhz CPU Sapdragon
512 MB RAM / 2048 MB ROM
Micro SD, 32 GB
3G
U8800:
480x800
Multitouch
800 Mhz CPU Snapdragon
512 MB RAM / 2048 MB ROM
Micro SD, 32 GB
AT&T has a 3g version
I'm betting these two are compatible, and the files I found contain some boot information.
Update:
I found the recovery.fstab for the U8800, doesn't look quite right does it:
Code:
# mount point fstype device [device2]
/boot mtd boot
/cache yaffs2 cache
/data yaffs2 userdata
/misc mtd misc
/recovery mtd recovery
/sdcard vfat /dev/block/mmcblk0p1 /dev/block/mmcblk0
/system yaffs2 system
I'm not sure how exactly to make this resemble the above partition table...
Update:
More information:
U-boot seems to support this board? Maybe this is good?
http://lists.denx.de/pipermail/u-boot/2012-February/118168.html
Also if anyone else wants to take a stab at this, by all means. I'm having trouble getting the tools set up, but if someone with a little more experince wants to that would be great.
Haven't seen this
aldude999 said:
I have the kernel source here, they have it released on SourceForge I'm guessing you're right saying the bootloader is locked.
Here's some information I've found on the partitions:
mmcblk0 Internal Memory
mmcblk0p1 Mounted using VFAT Contains files pertaining to FOTA (FOTA partition?)
mmcblk0p2 500 blocks ?
mmcblk0p3 1500 blocks ?
mmcblk0p4 1 BLOCK ?
mmcblk0p5 1000 blocks ?
mmcblk0p6 2000 blocks ?
mmcblk0p7 3072 blocks ?
mmcblk0p8 5120 blocks Possible Recovery*
mmcblk0p9 7000 blocks ?
mmcblk0p10 3027 blocks ?
mmcblk0p11 3072 blocks ?
mmcblk0p12 5120 blocks ?
mmcblk0p13 1500 blocks ?
mmcblk0p14 8192 blocks Mounts to /persist
mmcblk0p15 5120 blocks?
mmcblk0p16 1024 blocks?
mmcblk0p17 409600 blocks, Mounts to /system
mmcblk0p18 307200 blocks, Mounts to /cache
mmcblk0p19 892928 blocks, Mounts to /data
mmcblk0p20 122880 blocks, partition appears empty with a sting at the bottom of it reading ANDROID-BOOT!
mmcblk1 SD Card
mmcblk1p1 SD Card Partition
build.prop (Alltel phone):
build.prop
Source Code:
SourceForge Download Link
* In a recent patch I have found, the following code was in the install-recovery.sh file:
Code:
#!/system/bin/sh
if ! applypatch -c EMMC:/dev/block/mmcblk0p15:2048:afbffa74556cd8e77ef7e1a9d0964d9a2bd446b8; then
log -t recovery "Installing new recovery image"
applypatch EMMC:/dev/block/mmcblk0p8:4055040:9411e1fd06dfb3d8da4d1924162caf9e292ea652 EMMC:/dev/block/mmcblk0p15 20270fc8f6c8fca7dae0af5ce0928b589bd6b405 4296704 9411e1fd06dfb3d8da4d1924162caf9e292ea652:/system/recovery-from-boot.p
else
log -t recovery "Recovery image already installed"
fi
Any other information needed?
I'll look into getting a recovery working, but this is by no means a promise.
EDIT:
Something interesting:
The build.prop says the phone has a MSM7630_SURF board, and the Huawei U8800 has the same board, but not quite the same specs:
960C:
480x800
Multitouch
1400 Mhz CPU Sapdragon
512 MB RAM / 2048 MB ROM
Micro SD, 32 GB
3G
U8800:
480x800
Multitouch
800 Mhz CPU Snapdragon
512 MB RAM / 2048 MB ROM
Micro SD, 32 GB
AT&T has a 3g version
I'm betting these two are compatible, and the files I found contain some boot information.
Update:
I found the recovery.fstab for the U8800, doesn't look quite right does it:
Code:
# mount point fstype device [device2]
/boot mtd boot
/cache yaffs2 cache
/data yaffs2 userdata
/misc mtd misc
/recovery mtd recovery
/sdcard vfat /dev/block/mmcblk0p1 /dev/block/mmcblk0
/system yaffs2 system
I'm not sure how exactly to make this resemble the above partition table...
Update:
More information:
U-boot seems to support this board? Maybe this is good?
http://lists.denx.de/pipermail/u-boot/2012-February/118168.html
Also if anyone else wants to take a stab at this, by all means. I'm having trouble getting the tools set up, but if someone with a little more experince wants to that would be great.
Click to expand...
Click to collapse
Hello, I haven't looked into this thread for a while. I see that you have some info for these blocks. that I couldn't get. I tried using root explorer, to look into some files, and they couldn't load, and tried to use too much memory, just to attempt to open, which, my phone said it was low on memory. Hate gingerbread, and kwansi choi( maker of this rom), This phone could easily handle a later os.
The usb ID's, are "Device 007: ID 1bbb:9018" .
USB ID's
The usb ID's are 1bbb/9018 . I built a clockworkmod File, and the status is ok, but it still won't flash, because of the bootloader.
reggjoo said:
The usb ID's are 1bbb/9018 . I built a clockworkmod File, and the status is ok, but it still won't flash, because of the bootloader.
Click to expand...
Click to collapse
I noticed that:
mmcblk0p15
mmcblk0p12
mmcblk0p8
all have the same number of blocks.
The FOTA code shows
applypatch EMMC:/dev/block/mmcblk0p8:4055040:9411e1fd06dfb3d8da4d1924162caf9e292ea652 EMMC:/dev/block/mmcblk0p15 20270fc8f6c8fca7dae0af5ce0928b589bd6b405 4296704 9411e1fd06dfb3d8da4d1924162caf9e292ea652:/system/recovery-from-boot.p
Click to expand...
Click to collapse
applypatch useage is as follows:
applypatch [-b <bonus-file>] <src-file> <tgt-file> <tgt-sha1> <tgt-size> [<src-sha1>:<patch> ...]
or applypatch -c <file> [<sha1> ...]
or applypatch -s <bytes>
or applypatch -l
Click to expand...
Click to collapse
Apply patch from blk8 to blk15.
So maybe I was mistaken with what I thought was the partition. Blk8 seems to be where fota grabs it's updated partition from?
This shows that blk15 may actually be the recovery partition. Still useless unless the bootloader can be worked on.
Battery terminals
As we know, if the battery is out, the phone will do nothing( unlike my old huawei, it didn't matter). I wondered if that was the reason why, it's so hard to unlock it. I think the bootloader has been set up to not respond to attempts. The bootloader condition treats the phone as if there's no power to it(?) . I found out that the middle terminals, of the battery contacts, will power the phone, if they're connected, but only for a few seconds.
Maybe there's some code that's unknown, or procedure. The phone doesn't respond to fastboot commands, and I can't enable it(function), on it. In the default.prop file, I see that ro.secure, is 1. Whenever I try to change it to 0( in rewritable mode), it never takes. So this is a little info.
reggjoo said:
The bootloader condition treats the phone as if there's no power to it(?)
Click to expand...
Click to collapse
You know, it's interesting that you mention that. I remember watching a Ben Heck episode, and on an Xbox 360 controller keypad, he had to open it up and connect power to the PIC chip manually. It almost makes me wonder if there's possibly a jumper of some sort on the motherboard somewhere that when connected allows writing? It would be an extremely long shot, I'm even pretty sure that it's the exact board in the Huawei but it's weird that fastboot can't be entered. I've heard that their drivers might be messed up (maybe even on purpose) that could keep you from using fastboot.
aldude999 said:
You know, it's interesting that you mention that. I remember watching a Ben Heck episode, and on an Xbox 360 controller keypad, he had to open it up and connect power to the PIC chip manually. It almost makes me wonder if there's possibly a jumper of some sort on the motherboard somewhere that when connected allows writing? It would be an extremely long shot, I'm even pretty sure that it's the exact board in the Huawei but it's weird that fastboot can't be entered. I've heard that their drivers might be messed up (maybe even on purpose) that could keep you from using fastboot.
Click to expand...
Click to collapse
Yes, I think alcatel's a little shady. I use a dual boot pc, and I found out, using the lsusb command, that the usb id's were different, than what the id's were for the supposedly official usb drivers. Sent them a msg, and they said I was wrong( can't be wrong if everything works!). They take no responsibility for their hardware, and I let people know, every chance I get, whenever I see a review of a phone from them. I found out the id's were wrong, when, before I even rooted it, I installed their onetouchmanager, and it couldn't find my phone( what! out the box!). That's not the way you do things.
Bringing 960C Back To Life!!!
Did anyone ever find a ROM that's compatible with the 960C? I recently found one floating around a storage unit and, naturally, I immediately rooted it only to find out that no one ever bothered developing a custom ROM.
I'm sure if an official ROM was never created specifically for the 960C, it's definitely not gonna happen at this point. I'm thinking that the only hope for the 960C is if it was similar enough to a more popular phone that HAS a custom ROM, maybe someone, somewhere, was successful in modding it just enough to make it compatible with the 960C...
During my research/investigation into a ROM, there was at least one (*HERE*) forum post mentioning someone attempting to mod an existing ROM (for a more popular phone) to make it compatible but it seems that everyone lost interest back in 2013...
thealexday said:
Did anyone ever find a ROM that's compatible with the 960C? I recently found one floating around a storage unit and, naturally, I immediately rooted it only to find out that no one ever bothered developing a custom ROM.
I'm sure if an official ROM was never created specifically for the 960C, it's definitely not gonna happen at this point. I'm thinking that the only hope for the 960C is if it was similar enough to a more popular phone that HAS a custom ROM, maybe someone, somewhere, was successful in modding it just enough to make it compatible with the 960C...
During my research/investigation into a ROM, there was at least one (*HERE*) forum post mentioning someone attempting to mod an existing ROM (for a more popular phone) to make it compatible but it seems that everyone lost interest back in 2013...
Click to expand...
Click to collapse
I still am using my 960c. I wouldn't mind finding the original stock rom or finding out how to upgrade to a newer android version. Currently running version 2.3.6
Too bad I don't know much about modding save for rooting and flashing. I gather there are still some of us here who really like our 960c phones otherwise.

[How to] Determine dd Parameters For All LG G4 Models

[How to] determine dd parameters for all LG G4 models
IMPORTANT:
Only for advanced users!
You are an advanced user if you know exactly what you are doing.
You are an advanced user if you know what to do if something went wrong.
You are NOT an advanced user if you know how to do copy+paste.
You can bring your smartphone into a state, so it no longer works.
I am not responsible for anything. The following instructions are only suggestions.
Hello,
everyone knows how to root the LG G4 with the "low effort root" method.
They copied the system partition to an ".img" file, rooted it and copied it back to the "system" partition.
Many users wonder how to get the right parameters for the "dd" commands.
Please read the complete guide and be sure that you understand it until you execute a command!
Information:
Code:
dd if=/inputfile bs=8192 count=12345 of=/outputfile
if = Input File
of = Output File
bs = Blocksize in bytes (default is 512 - to increase copy speed use multiple of 512 e.g. 8192)
count = how many blocks
skip = skip blocks before start reading
seek = skip blocks before start writing
more info: http://man7.org/linux/man-pages/man1/dd.1.html
There are different models of the LG G4 on the market.
We know that the system partition is different depending on the model of the G4.
As an example I will show you how to calculate the parameters for the LG G4 H815 (International Model).
What you need:
Windows with Send_Command.exe
Instructions:
At first we need to know where the "system" partition starts (first sector) and how big it is (partition size).
I used the first method to find these values. But I recommend the second method because it's easier.
First method (difficult method, extracting the GPT and using "gdisk" in linux to read the partition info)
What you need:
Linux with "gdisk" installed
Instructions:
Put your smartphone to "Download Mode" and connect it to the Send_Command.exe command prompt.
We need to copy the partition table to the internal storage.
The partition table of GPT (GUID Partition Table) has a size of 16384 bytes and starts at LBA2.
Each LBA has a size of 512 bytes. Because we start at LBA0 we need to add 1024 bytes.
In summary 16384 + 1024 = 17408 (bytes).
Execute the following command:
Code:
dd if=/dev/block/mmcblk0 bs=1 count=17408 of=/data/media/0/gpt_backup.img
Enter "LEAVE" to restart your phone.
You will find the (very small) file "gpt_backup.img" on your internal storage.
Switch to Linux:
Copy the file to your Linux and open the terminal. Then type this:
Code:
gdisk /yourpath/gpt_backup.img
Some warnings will occur. Ignore them.
You will see:
Code:
Command (? for help):
Enter "p" and hit "enter".
You will get a list of the partitions.
Scroll up a bit and check that you see:
"Logical sector size: 512 bytes"
Scroll down and look for the "system" partition.
You will find a line similar to this:
Code:
47 884736 9363455 4.0GiB FFFF system
Now you know the number of the "system" partition is "47".
You will see:
Code:
Command (? for help):
Type "i" and hit "enter".
You will be asked the partition number.
Enter it and hit "enter".
You will see something conatining lines similar to this:
Code:
First sector: 884736
Last sector: 9363455
Partition size: 8478720
Partition name: 'system'
We need the values from "First sector" and "Partition size".
Second method (easier method, just using "adb shell" to read the partition info)
What you need:
adb shell
usb debugging enabled
To get the "logical sector size" use:
cat /sys/block/mmcblk0/queue/logical_block_size
It should be 512
smason said:
To find in any smartphone the offset and the size of /system:
$ adb shell
[email protected]:/ $ ls -la /dev/block/bootdevice/by-name/system
ls -la /dev/block/bootdevice/by-name/system
lrwxrwxrwx root root 2015-01-02 10:50 system -> /dev/block/mmcblk0p47
[email protected]:/ $ cd /sys/block/mmcblk0/mmcblk0p47
cd /sys/block/mmcblk0/mmcblk0p47
[email protected]:/sys/block/mmcblk0/mmcblk0p47 $ cat start
cat start
884736
[email protected]:/sys/block/mmcblk0/mmcblk0p47 $ cat size
cat size
8478720
[email protected]:/sys/block/mmcblk0/mmcblk0p47 $
so:
offset = 512 * 884736 = 452984832
partition size = 512 * 8478720 = 4341104640
Cheers!
Click to expand...
Click to collapse
So "first sector" is the value from "cat start" (884736).
The "partiton size" is the value from "cat size" (8478720).
Now the mathematics (using the values from above):
Logical sector size = 512 (I never saw something different on LG G4 smartphones)
Assuming bs=8192
skip and seek: "First sector" * "Logical sector size" / bs
884736 * 512 / 8192 = 55296
count: "Partition size" * "Logical sector size" / bs
8478720 * 512 / 8192 = 529920
That was an example for the H815 (International Model).
Use your own values to calulate the "dd" parameters!
Back to Windows:
Put your smartphone to "Download Mode" and connect it to the Send_Command.exe command prompt.
Now you can copy your "system" partition to "system.img" with the following command:
Code:
dd if=/dev/block/mmcblk0 bs=8192 skip=55296 count=529920 of=/data/media/0/system.img
Replace the values with the ones you calculated for your model!
Now you could copy the "system.img" to your Linux and root it or do everything else you want.
Important: Do NOT delete the original "system.img" from your internal storage as long as you are not 100% sure your G4 is stable.
If your modifications don't work, you can copy back the original "system" partition (with "dd").
To copy the modified "system_changed.img" back to the "system" partition use the following command:
Code:
dd if=/data/media/0/system_changed.img bs=8192 seek=55296 count=529920 of=/dev/block/mmcblk0
Replace the values with the ones you calculated for your model!
Important: Be sure to use "skip" when reading and "seek" when writing.
The "dd" command should take about a minute.
Did the instructions help you?
Please give a "Thanks!"
Thank you
Hi,
thanks for this great post.
I just have one question. With your formulas and using 8K block size, I get a floating point number as result. So I used a block size of 4K instead, and I get an even number. This seems better to me so I went with it, as I believe smaller block sizes are always ok?
I'm just wondering one thing which seems not right to me. My system partition is reported to be 2.5GB:
Partition number (1-42): 39
Partition GUID code: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (Microsoft basic data)
Partition unique GUID: A8725BAA-9E45-B2F8-8FA3-8C972F60F0CF
First sector: 836608 (at 408.5 MiB)
Last sector: 6074573 (at 2.9 GiB)
Partition size: 5237966 sectors (2.5 GiB)
Attribute flags: 1000000000000000
Partition name: 'system'
So with the formulas:
FACTOR 512 / 4096 = 0.125
skip and seek: "First sector" * "Logical sector size" / bs
836608 *FACTOR = 104576
count: "Partition size" * "Logical sector size" / bs
8478720 * FACTOR = 1059840
If I now run the dd command:
dd if=/dev/block/mmcblk0 bs=4096 skip=104576 count=1059840 of=/storage/external_SD/system.img
I get a file system.img which is 4096 MB. Should it not be 2.5GB as my original system partition?
If I use bs=512 (the default) and type
dd if=/dev/block/mmcblk0 bs=512 skip=836608 count=8478720 of=/storage/external_SD/system.img
I get a system.img of the right size (bit over 2.5GB).
I think the block size to use for "skip" is to be specified with the option ibs=XXX, not bs=XXX which only applies to "count" (according to man dd). I tried the ibs option, but the command then just doesn't work on Send_Command.exe. It doesn't even print an error but simply returns immediately.
Cheers
Jen
Hi,
which phone do you have?
Your calculation seems wrong. It's ok to use BS with 4k. I could be a bit slower then 8k, but that doesn't matter.
BUT: Look at your "count" value. Your partition size is 5237966. You used 8478720 (the value from my G4(H815EU) example). Thats wrong!!!
How to calculate with 1k and your values:
bs=1024
skip=836608*512/1024=418304
count=5237966*512/1024=2618983
Please check my calulation!!!
It's interesting, that the Send_Command shell has access to your external sd card...
I think the block size to use for "skip" is to be specified with the option ibs=XXX, not bs=XXX which only applies to "count" (according to man dd).
Click to expand...
Click to collapse
No. "bs" is the right parameter.
If you use "bs" it sets "ibs" and "obs" to the value of "bs".
Just do "dd --help" on a linux system for more details.
Hi Dominik,
oh my, how embarrassing I actually did take the wrong value from the example you posted. I used my value (the 5237966) for calculating the parameters with bs=8K, and got a floating value, so tried 4K instead... and the wrong value must have snug in. Oups.
I also get floating value on 4K now that you've pointed my mistake out:
5237966 * 512/4096= 654745.75
If I rounded this up, would this not mean that I copy a tiny bit of the next partition on the image? And if I then use the image to restore, would I not run the risk to damage something in the following partition?
Anyway, it's not a huge drama as I can just use bs=512 and it works.
Yes I have access to the SD card, the image also has copied there successfully. I was also surprised because I read in the forums that it's not possible.
I found it out with the "df" command, as the SD was listed there. I needed to use it because there's no room on my internal storage (it's a ridiculous 8GB on the LG H735) to store the image there.
My system partition is only 2.5GB so I don't think I have to reformat, but you are right it would be better to use ext4.
Ok
I removed my information about formatting the sd card.
You dont't have to format it. FAT32 is ok.
So you can use your sd card on systems which don't support ext4 too.
I have the LG G4S (H735). It's unusable without rooting as it only has 8GB internal memory. That's why I'm trying to root it now.
jen.magnolis said:
I have the LG G4S (H735). It's unusable without rooting as it only has 8GB internal memory. That's why I'm trying to root it now.
Click to expand...
Click to collapse
Ok, good luck.
Please open a new thread if you have questions about rooting your phone.
Or is there already one? Maybe these?
http://forum.xda-developers.com/g4/help/rooting-lg-h735-g4-beat-t3192491
http://forum.xda-developers.com/g4/general/lg-g4s-world-root-lg-devices-t3231759/page7
Oh. Just saw that you are already there
dominik-p said:
Ok, good luck.
Please open a new thread if you have questions about rooting your phone.
Or is there already one? Maybe these?
http://forum.xda-developers.com/g4/help/rooting-lg-h735-g4-beat-t3192491
http://forum.xda-developers.com/g4/general/lg-g4s-world-root-lg-devices-t3231759/page7
Oh. Just saw that you are already there
Click to expand...
Click to collapse
I just created a new thread too to focus on the particular problem I have:
http://forum.xda-developers.com/g4/general/rooting-lg-g4s-h735-t3243549
this guide helped in dumping boot and recovery partitions.
thank you very much sir! i successfully dumped my boot and recovery partition using dd in my mediatek device by following your guide.
sparksthedev said:
thank you very much sir! i successfully dumped my boot and recovery partition using dd in my mediatek device by following your guide.
Click to expand...
Click to collapse
Congratulations
Did you use the first (more komplex) oder the second method for your device?
I saw that you had problems in this thread:
http://forum.xda-developers.com/showthread.php?p=65907557#post65907557
And you wrote a guide for MTK devices here:
http://forum.xda-developers.com/general/general/guide-dumping-boot-img-recovery-img-t3339530
This doesn't work with the LG G4, but I think it will help many others.
Thank you
My sister asked me to root her phone. It seems more complicated than anything I did in the past (HTC Wildfire, Galaxy Core Plus, Xperia M4A).
I tried this tutorial and it kinda worked, but I can't mount image I got, so it's useless (image, not tutorial!).
Phone is LG-H736 (Beat). I got this result in gdisk:
Code:
Partition number (1-42): 39
Partition GUID code: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (Microsoft basic data)
Partition unique GUID: A9520AE6-ABC6-F107-E8FE-B37C4C30CB77
First sector: 836608 (at 408.5 MiB)
Last sector: 6074573 (at 2.9 GiB)
Partition size: 5237966 sectors (2.5 GiB)
Attribute flags: 1000000000000000
Partition name: 'system'
The 8K bs gave me floating point result, so I used 0,5K.
So the dd command were:
Code:
dd if=/dev/block/mmcblk0 bs=512 skip=836608 count=5237966 of=/storage/external_SD/system.img
BTW, I had access to SDCard and I didn't need to open ports...
EDIT: I got the system.img. The problem was I haven't got enough space on SD card.
But now I bricked it...
https://forum.xda-developers.com/g4/help/softbricked-g4-beat-lg-h735-t3959237

Guide[Linux][Windows]: Migrate to SSD/HDD of any size, only for SATV Pro

Code:
[B][I][COLOR="Red"][SIZE="3"]I am not responsible for bricked devices, dead HDDs, animals
activist campaigns, or any H/W damage caused by you following these
directions. YOU are choosing to make these modificiations, and
you, yourself take responsibility for doing these modifications
to your device.
You can do serious H/W damage to your SATV or even your computer
by doing any of this. So, you have been warned! [/SIZE][/COLOR][/I][/B]
First of all, you should pay your thanks to @Luxferro for mapping out the entire partition array, and building the chart that does all the calculations for using another disk size.
He also proved that it was indeed possible to modify your GPT header to another sized drive.
None of this would have been possible, if it was not for him.
Also thanks to @Tilator for initiating his thread, and proving it was possible to swap your HDD for something else.
1. Preparations and disassembling the SATV
Well, to begin with you should have a working linux environment set up. This can easily be a live CD/DVD/USB. Or you can do it from a virtual environment. You can use DD for Windows now, follow guide as normally.
You should have a hex editor with CRC32 calculating capabilities. I recommend HxD:
https://mh-nexus.de/en/downloads.php?product=HxD
Yes, that is for Windows, I use Linux for all the writing/dumping, but I prefer my Windows hex editor.
It's worth to know, that your device should be bootloader unlocked, and preferably newly factory reset.
Also, an autotool has been made now to do this GPT header edit. See post #3.
Then you can go open up the SATV by prying off the bottom of the casing. I managed to do this with my fingernails. A small plastic pry tool can be used as well.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Then you remove the 2 wire sets from the plugs to give more working room. There is 2 sets of tape holding the wires and the HDD in place as well.
There is (on mine at least) just one screw with a small bracket holding the HDD in place, you will need a T6 driver to remove it.
Gently lift the black latch/lock on the connector to the secondary board, then the FCC connector will be easily out.
Then it is just a matter of gently loosening the adhesive on the FCC strip from the HDD and pull out the SATA connector.
With the HDD out, you will have to connect it to your Linux setup somehow. I used an enclosure with a USB3 connection.
With the HDD recognized in the computer, the time has now come to clone you HDD.
You could as well use the bin files Tilator has provided, but if you want your own genuine Netflix ESN, you should use your own.
If you want to use DD for Windows, please continue the guide from post #2. After finishing that part, come back to this post and skip to the hex editing part.
2. Dumping the data from the SATV SSHD
In a terminal window you start by listing the drives:
Code:
sudo -s
fdisk -l
This is to determine which drive you are working with. Remember that the DD command does't care which drive you specify, it will destroy your main drive if you ask it to.
The you continue by dumping the first 6899870 blocks of data to a bin file:
Code:
dd if=/dev/sd[B]X[/B] of=firstpart.bin count=6899870
This will give you a raw image file of all the partitions up until the /data partition which is better left out (it will come later).
Then continue by dumping the last 5120 bytes of data which contains the partition array and the GPT header:
Code:
dd if=/dev/sd[B]X[/B] bs=512 skip=976773158 of=lastpart.bin
EDIT: 26th August 2016, @anchung.chen has experimented with aligning the partitions to Advanced Format 4096 byte sectors (4K alignment). This supposedly gives better performance especially on SSD drives.
It's worth to know that this most likely breaks the OTA updates, as they might write partitions on block level rather than on a file level. OTA updates seems to be working.
Also, anchung.chen has had problems unlocking the bootloader on the 4K aligned disk.
@ahmed68
Reports that TWRP doesn't work well when trying to flash SuperSU.
Please see follow these steps to write the bin files with 4K alignment:
Start by downloading the ELF executable programmed by anchung.chen from this post:
http://forum.xda-developers.com/showpost.php?p=68300570&postcount=44
Patch the lastpart.bin the following way (2TB disk size):
Code:
./shield_pro_new_disk_gpt_calculator-0.3 lastpart.bin [B]2000398934016[/B] lastpart4k.bin
This will recalculate the GPT header to match the 2TB disk, but also rewrite the partition array.
Then continue by writing the firstpart.bin in 2 steps instead of just one:
Code:
if=firstpart.bin of=/dev/sd[B]X[/B] bs=512 count=69888
Code:
dd if=firstpart.bin of=/dev/sd[B]X[/B] bs=512 skip=69790 seek=69888 count=6830080
These 3 steps effectively moves the partitions 16-32 to match 4K alignment structure.
And finish off by writing the lastpart4k.bin:
Code:
dd if=lastpart4k.bin of=/dev/sda[B]X[/B] bs=512 seek=[B]3907029158[/B]
This completes the guide, no more steps needed.
You can now disconnect your HDD. These 2 files also counts as a backup of your SATV (not with settings as userdata was not copied).
Now connect your new SSD in the enclosure.
You can easily start by writing the firstpart.bin:
Code:
dd if=firstpart.bin of=/dev/sd[B]X[/B]
3. Hex-editing the partition array and the GPT header
In your linux terminal load up the block count (called sectors in linux language) of the new drive:
Code:
fdisk -l
A 2 TB disk should have a total block count of 3907029168, but a smaller disk would have a smaller block count, so use fdisk -l to determine this.
Or if you use DD for Windows you have the output from dd --list to work with.
The lastpart.bin must be edited before we can write it on the new disk.
So use the spreadsheet provided by @Luxferro in this post:
http://forum.xda-developers.com/showpost.php?p=67996717&postcount=189
In the column at the buttom right that says disk size, you change the value to match you new disk. In this example for the 2TB it should be 2000398934016 (bytes). This value should be taken from fdisk -l as well.
Now it gets a little hairy!
In the spreadsheet you should start with the buttom value marked out in purple under the row called "Last LBA". This should be E8E0888E:
Open up lastpart.bin in HxD and navigate to offset 00000FA8. There you should find the 4 bytes 0E 60 38 3A illustrated in this picture:
This value is in a format called reverse byte ordering, so to put in your new calculated value, you will have to arrange it like this: 8E 88 E0 E8. Input that value instead of the bytes already there like this picture:
While we are in this particular position in the lastpart.bin we might as well do the CRC32 of the partition array.
Now make a selection containing the 64 bytes or 4 empty lines underneath the line having UDA written in ASCII, and all the way to the top of the file, offset 00000000 to 00000FF0 like in this picture:
In the drop-down menu, choose Analyzis->Checksums and generate a CRC-32 checksum (Not checksum-32).
It will come up in the buttom screen of HxD, and should read 6B CF E5 7D
Navigate to the buttom of the file which contains the GPT header. It should start with an ANSI text reading "EFI PART".
In offset 00001258 you should find the value of the original CRC-32 value containing the bytes 0E 02 C5 DC.
Replace this, again reversing the bytes from your newly calculated CRC-32 value like this: 7D E5 CF 6B:
Now we are actually almost finished! In the spreadsheet all the way to the right, you will find 4 hexadecimal values marked in purple.
First is the position of the GPT header, and the second is the position of the backup GPT header. Since there is only 1 on the SATV, these values are both the same.
Write them into the GPT header on offset 00001218, and 00001220, again reversing the bytes like illustrated in the picture:
Same goes for offset 00001230, Last Usable LBA, and offset 00001248, Starting LBA of array of partition entries.
This brings us to the last thing on the table, the CRC32 of the GPT header itself.
The CRC is located on offset 00001210 and should have the bytes 46 C9 88 78 already there.
Just write 00 00 00 00 to blank them out:
Now make a selection of the GPT header containing the beginning of the header, and to the last written byte before all the zeroes:
In the drop-down menu, choose Analyzis->Checksums and generate a CRC-32 checksum (Not checksum-32).
It will come up in the buttom screen of HxD, and should read 46 9F 24 38
Again, write it instead of the 4 bytes with zeroes reversed like this:
This completes the matter, now just save your work in HxD and write it to the end of your drive.
To do this we need the total block count from the HDD that you fetched in the beginning of the guide from the fdisk -l output, should be 3907029168
The lastpart.bin is 5120 bytes which is the same as 10 blocks of 512 byte length.
So, 3907029168 minus 10 is 3907029158 and put into your DD-line like this:
Code:
dd if=lastpart.bin of=/dev/sda[B]X[/B] bs=512 seek=[B]3907029158[/B]
Or like this if you use DD for Windows:
Code:
dd if=lastpart.bin of=\\?\Device\Harddisk[B]X[/B]\Partition0 bs=512 seek=[B]3907029158[/B]
4. Assembling SATV and finishing up
Now at last, put in your new disk in the SATV and assemble everything back together.
If it doesn't boot in the first try, you could try another cold boot (give it 15 min.).
If that won't do it, you might have to wipe the DATA partition from the fastboot menu.
To cold boot into fastboot, follow this (taken from "http://developer.download.nvidia.com/mobile/shield/ROM/SHIELD_ATV/OTA-1.1/HowTo-Flash-Recovery-Image.txt"):
Code:
HW method:
- Disconnect power cable
- Insert USB OTG cable and make sure to connect other end to a host PC
- Connect power cable to SHIELD
- Quickly start pressing power button for ~3 seconds
- Do not hold the button and connect power supply afterwards
- HDMI TV should be always connected to SHIELD
And format the /DATA partition from fastboot like this:
Code:
fastboot format FS:EXT4 /data
Or do a fastboot oem unlock of the SATV.
Hopefully you will now have a SATV with an upgraded SSD/HDD!
DD for Windows part
Guide for Windows, using dd for Windows by John Newbigin
Download the dd utility from: http://www.chrysocome.net//dd
Code:
[SIZE="4"]
[COLOR="Red"]
WARNING! Using DD for Windows from a command prompt with administrator privileges is DANGEROUS!
If you specify your Windows drive as output file/device, it WILL destroy the partition!
[/COLOR]
[/SIZE]
Code:
[B][I][COLOR="Red"][SIZE="3"]I am not responsible for bricked devices, dead HDDs, animals
activist campaigns, or any H/W damage caused by you following these
directions. YOU are choosing to make these modificiations, and
you, yourself take responsibility for doing these modifications
to your device.
You can do serious H/W damage to your SATV or even your computer
by doing any of this. So, you have been warned! [/SIZE][/COLOR][/I][/B]
So, I used a Windows 10 Pro environment to test this. I think any Windows version based on the NT architecture will be working.
Extract the dd.exe and as the path you want to extract to, use this: "%USERPROFILE%\AppData\Local\Microsoft\WindowsApps"
This gives you the ability to use DD system wide.
Plug in the HDD from your SATV. The disk will be unreadable to Windows as it has no known filesystem. Windows might pop up asking you to format the drive. You MUST ignore that, and press cancel!
Open up a command prompt with administrator privileges. You can do this with Windows key+X to bring up a menu, then choose Command Prompt (administrator).
Navigate to a folder where you want to work from. It doesn't matter where, as you just have to have space enough to store the bin files.
If you need a refreshment in navigating the commnd prompt, you can read up on it here:
http://www.pcstats.com/articleview.cfm?articleid=1723&page=3
Now, run the command
Code:
dd --list
This gives you a lot of information. It even gives you the total byte count of your harddisk drives.
Navigate a little up to locate the right disk:
In this example I didn't use my SATV HDD, but another 750GB HDD I had lying around. The SATV SSHD will have a size of 500107862016 bytes.
Be careful that you choose the right drive to work on, and you also have to find the one that has the device string "\\?\Device\HarddiskX\Partition0".
And X will have to be equivalent to the harddisk number that Windows has assigned to your device.
The you continue by dumping the first 6899870 blocks of data to a bin file:
Code:
dd if=\\?\Device\Harddisk[B]X[/B]\Partition0 of=firstpart.bin count=6899870
This will give you a raw image file of all the partitions up until the /data partition which is better left out (it will come later).
Then continue by dumping the last 5120 bytes of data which contains the partition array and the GPT header:
Code:
dd if=\\?\Device\Harddisk[B]X[/B]\Partition0 of=lastpart.bin skip=976773158 bs=512
You can now disconnect your HDD. These 2 files also counts as a backup of your SATV (not with user settings, data partition was not copied).
Now connect your new SSD in the enclosure. Use dd --list again to determine the right disk to use, and please be careful not to mix up your Windows drive or another drive which contains important data.
You can easily start by writing the firstpart.bin:
Code:
dd if=firstpart.bin of=\\?\Device\Harddisk[B]X[/B]\Partition0
Please continue the rest of the guide in first post.
Hi All:
Thank Luxferro, Tilator and hallydamaster for your hard works, so we could replace the SSHD on shield-pro-tv with any SSD or HHD.
I wrote a small program to do all calculations and generate the new lastpart.bin directly.
usage : ./shield_pro_new_disk_gpt_calculator Input_bin_file New_disk_size_in_byte Output_bin_file
It is for 64-bit Linux PC. Any comments are welcome. And if you like, the source code will be opened.
Well, I think it is quite straightforward to use it. This program just generates the modified lastpart.bin from your original lastpart.bin and disk size (byte) of new SSD/HHD which you will migrate to.
For example of hallydamaster guide, the new 2TB disk has 2000398934016 bytes and 3907029168 sectors. Then
Using following command to generate the correct lastpart.bin for the new 2TB disk.
Code:
./shield_pro_new_disk_gpt_calculator lastpart.bin 2000398934016 new_lastpart.bin
Using following command to write the correct lastpart.bin to the new 2TB disk.
Code:
sudo dd if=new_lastpart.bin of=/dev/sdX bs=512 seek=3907029158
Thanks for the guide.
Does anyone know the performance penalty for using a regular 2TB HDD?
anchung.chen said:
Hi All:
Thank to Luxferro, Tilator and hallydamaster hard works, so we could replace the SSHD on shield-pro-tv with any SSD or HHD.
I wrote a small program to do all calculations and generate the new lastpart.bin directly.
usage : ./shield_pro_new_disk_gpt_calculator input_bin_file disk_size_in_byte output_bin_file
It is for 64-bit Linux PC. Any comments are welcome. And if you like, the source code will be opened.
Click to expand...
Click to collapse
Well, I suppose we have the guide for educational purposes then!
Please, tell something about how to use it.
tech3475 said:
Thanks for the guide.
Does anyone know the performance penalty for using a regular 2TB HDD?
Click to expand...
Click to collapse
I know that another user here @ahmed68 just did his with a SATV, AFAIK.
I don't think it was an SSD atleast.
hallydamaster said:
Well, I suppose we have the guide for educational purposes then!
Please, tell something about how to use it.
Click to expand...
Click to collapse
Well, I think it is quite straightforward to use it. This program just generates the modified lastpart.bin from your original lastpart.bin and disk size (byte) of new SSD/HHD which you will migrate to.
For example of your guide, the new 2TB disk has 2000398934016 bytes and 3907029168 sectors. Then
Using following command to generate the correct lastpart.bin for the new 2TB disk.
Code:
./shield_pro_new_disk_gpt_calculator lastpart.bin 2000398934016 new_lastpart.bin
Using following command to write the correct lastpart.bin to the new 2TB disk.
Code:
sudo dd if=new_lastpart.bin of=/dev/sdX bs=512 seek=3907029158
anchung.chen said:
Hi All:
Thank Luxferro, Tilator and hallydamaster for your hard works, so we could replace the SSHD on shield-pro-tv with any SSD or HHD.
I wrote a small program to do all calculations and generate the new lastpart.bin directly.
usage : ./shield_pro_new_disk_gpt_calculator input_bin_file disk_size_in_byte output_bin_file
It is for 64-bit Linux PC. Any comments are welcome. And if you like, the source code will be opened.
Click to expand...
Click to collapse
have any example how to use it or only run in term ./shield_pro_new_disk_gpt_calculator input_bin_file disk_size_in_byte output_bin_file
plz help I wont to gen gpt for 64gb sd card. I have boot.img for sd card and usb only for l4t Ubuntu thanks.
ahmed68 said:
have any example how to use it or only run in term ./shield_pro_new_disk_gpt_calculator input_bin_file disk_size_in_byte output_bin_file
plz help I wont to gen gpt for 64gb sd card. I have boot.img for sd card and usb only for l4t Ubuntu thanks.
Click to expand...
Click to collapse
You are supposed to do:
Code:
./shield_pro_new_disk_gpt_calculator lastpart.bin 68719476736 lastpart64gb.bin
But take the byte value you get from your own fdisk -l output.
Also, if you are going to use this for Linux and not android, I don't think it will work. The GPT layout that the SATV Pro uses is not standard.
hallydamaster said:
You are supposed to do:
Code:
./shield_pro_new_disk_gpt_calculator lastpart.bin 68719476736 lastpart64gb.bin
But take the byte value you get from your own fdisk -l output.
Also, if you are going to use this for Linux and not android, I don't think it will work. The GPT layout that the SATV Pro uses is not standard.
Click to expand...
Click to collapse
hallydamaster thank you for help
now i use the orig. sshd under ubuntu 14.04 L4T 24.1 i wont to make sdcard for linux and sshd for android to use shield in 4k tv android the best .
I think Nvidia should put boot loader and kernel on internal emmc's for both 16GB and 500GB SATVs rather than keeping significantly different ROM versions for 16GB and 500GB SATVs.
It'd save Nvidia and users time by doing so.
It seems much simpler to add HDDs of any size to 16 GB SATV if the HDD cable is available.
yahoo2016 said:
I think Nvidia should put boot loader and kernel on internal emmc's for both 16GB and 500GB SATVs rather than keeping significantly different ROM versions for 16GB and 500GB SATVs.
It'd save Nvidia and users time by doing so.
It seems much simpler to add HDDs of any size to 16 GB SATV if the HDD cable is available.
Click to expand...
Click to collapse
I certainly agree with that, seems they had a brain fart when deciding how to build the pro. Could be great if we could somehow convert the pro version to boot from internal EMMC.
hallydamaster said:
I certainly agree with that, seems they had a brain fart when deciding how to build the pro. Could be great if we could somehow convert the pro version to boot from internal EMMC.
Click to expand...
Click to collapse
I have serial console print out from 16GB SATV:
http://forum.xda-developers.com/showpost.php?p=67973969&postcount=303
I'm wondering what the output would be for SATV Pro when the HDD is disconnected.
If the first stage boot loader (TegraBoot?) is smart enough, it could check emmc for boot loader.
yahoo2016 said:
I have serial console print out from 16GB SATV:
http://forum.xda-developers.com/showpost.php?p=67973969&postcount=303
I'm wondering what the output would be for SATV Pro when the HDD is disconnected.
If the first stage boot loader (TegraBoot?) is smart enough, it could check emmc for boot loader.
Click to expand...
Click to collapse
That's indeed interesting, lot of info in that output!
I'm pretty sure that @Tilator had someone send him a copy of a complete rip of the EMMC from a 16GB SATV.
He then wrote it to the EMMC on the Pro, which is just empty. It didn't boot with it, but I'm not sure if he tried booting it without the HDD in it.
Cloud be interesting to try though.
Unfortunately I don't really have the time to read up on UART and solder wires on my board to try this. :-/
Not for the time being at least.
i will try to flash satv pro from satv and see it must save in emmc , I wont to make sd card like recovery for satv and satv pro I try repack the partition but bot work I need to edit boot.img #include <sys/mount.h>
#include <unistd.h>
#include <linux/reboot.h>
#include <fcntl.h>
extern char **environ;
int main(int argc, char **unused) {
mount("/dev", "/dev", "devtmpfs", 0, NULL);
mount("/dev/mmcblk0", "/dest", "ext4", 0, NULL);
// mount Android system
// mount("/dev/mmcblk0p1", "/mnt", "ext4", 0, NULL);
mount("/dev", "/dest/dev", NULL, MS_BIND, NULL);
chroot("/dest");
chdir("/");
char * const argv[] = { "/sbin/init", NULL };
execve(argv[0], argv, environ);
}
must change mmcblk0 to mmcblk0p1 ,mmcblk1p1 or sda21/32
---------- Post added at 08:40 PM ---------- Previous post was at 08:20 PM ----------
I take this flash.sh from tegra jetson-tx1
flash.sh: Flash the target board.
# flash.sh performs the best in LDK release environment.
#
# Usage: Place the board in recovery mode and run:
#
# flash.sh [options] <target_board> <root_device>
#
# for more detail enter 'flash.sh -h'
#
# Examples:
# ./flash.sh <target_board> mmcblk0p1 - boot <target_board> from eMMC
# ./flash.sh <target_board> mmcblk1p1 - boot <target_board> from SDCARD
# ./flash.sh <target_board> sda1 - boot <target_board> from USB device
# ./flash.sh -N <IPaddr>:/nfsroot <target_board> eth0 - boot <target_board> from NFS
# ./flash.sh -k LNX <target_board> mmcblk1p1 - update <target_board> kernel
# ./flash.sh -k EBT <target_board> mmcblk1p1 - update <target_board> bootloader
can anybody edit the boot.img to
1. mmcblk0p1 for emmc
2. mmcblk1p1 for sdcard
I think its most work
i flash satv pro from satv i now it come not bootable then i will remove hdd and boot to linux when run sudo fdisk -l i see 2 part of hdd first mmcblk0 (emmc) and sdx its sda in android by dd if=/dev/sdx of=firstpart.bin count=6899870
then dd if=firstpart.bin of=/dev/mmcblk0 and dd if=lastpart.bin of=/dev/mmcblk0 bs=512 seek=xxxxx (xxxxx i will take it from fdisk -l -10) then i most to delete boot patition from sda by sudo fdisk /dev/sda21 # input d , w .
now we have a work satv non pro , i need to use ubuntu in emmc and android in sda for that we must make the first boot img for dualOS like (Geekbox Lollipop Lubuntu dualOS)
http://forum.geekbox.tv/viewtopic.php?f=12&t=3198
anybody have any edia plz help.
ahmed68 said:
now we have a work satv non pro
Click to expand...
Click to collapse
You can boot to Android from emmc (mmcblk0) of SATV Pro without HDD?
Does recovery mode work for SATV Pro without HDD?
Is this fix working with the 3.2 update from a few weeks ago? I'd like to duplicate more of my movies onto my SATV Pro now that the Plex Server is installed.
ahmed68 said:
i flash satv pro from satv i now it come not bootable then i will remove hdd and boot to linux when run sudo fdisk -l i see 2 part of hdd first mmcblk0 (emmc) and sdx its sda in android by dd if=/dev/sdx of=firstpart.bin count=6899870
then dd if=firstpart.bin of=/dev/mmcblk0 and dd if=lastpart.bin of=/dev/mmcblk0 bs=512 seek=xxxxx (xxxxx i will take it from fdisk -l -10) then i most to delete boot patition from sda by sudo fdisk /dev/sda21 # input d , w .
now we have a work satv non pro , i need to use ubuntu in emmc and android in sda for that we must make the first boot img for dualOS like (Geekbox Lollipop Lubuntu dualOS)
http://forum.geekbox.tv/viewtopic.php?f=12&t=3198
anybody have any edia plz help.
Click to expand...
Click to collapse
Hi ahmed, can you please clarify if you had it boot without the HDD?
You cloned the HDD partitions onto the EMMC? And then removed the boot partition from the HDD, and then it booted anyway?
revoman said:
Is this fix working with the 3.2 update from a few weeks ago? I'd like to duplicate more of my movies onto my SATV Pro now that the Plex Server is installed.
Click to expand...
Click to collapse
This procedure will just clone your HDD to another disk, this should be totally independant from Android, unless ofcourse Nvidia would do something to break this.
Maybe I'm the only one who would like to put a smaller HD on my shield TV. Can someone tell me if a 128GB SSD is larger enough or the smaller disk is 256GB?
TIA Polve

Categories

Resources