[Pixel C Q&A, Help & Troubleshooting] kaushikmazumdar:
Hi,

I am stuck in the bootloop after flashing data.img on Pixel C device.

I have done the following steps and have serached around in 100s of forums before posting this. Please bear with me.

My bootloader is unlocked and I have flashed my boot partition with dragon-boot-encryptable-rooted-01092016-1.img so that the data is not encrypted by default.

I have a freshly booted up (new setup) device with default apps installed. I installed one app so that the /data partition contains something. I am firing all commands as root on Ubuntu 14

I then flashboot into TWRP recovery so that I can access root shell through adb. This is not flashing the TWRP recovery, just booting into it.

#adb reboot bootloader

#fastboot boot twrp-3.0.0-0-dragon-ryu-02112016-1.img

#adb shell

~ # whoami

root

~ # df

Filesystem 1K-blocks Used Available Use% Mounted on

tmpfs 1420244 20 1420224 0% /dev

tmpfs 1420244 20 1420224 0% /tmp

/dev/block/mmcblk0p6 396744 452 388100 0% /cache

/dev/block/mmcblk0p7 55453060 304032 55132644 1% /data

/dev/block/mmcblk0p7 55453060 304032 55132644 1% /sdcard

Now, I am interested only in taking image backup of my /data partition which is at /dev/block/mmcblk0p7. I confirmed this by:

/dev/block/platform/700b0600.sdhci/by-name # ls -l

...

lrwxrwxrwx 1 root root 20 Oct 16 07:38 UDA -> /dev/block/mmcblk0p7

...

Now, I fire the make_ext4fs command to create the image.

~#umount /sdcard (optional)

~ # make_ext4fs -s -l 55453060K -a data mydata.img /data

SELinux: Loaded file_contexts contexts from /file_contexts.

Creating filesystem with parameters:

Size: 56783933440

Block size: 4096

Blocks per group: 32768

Inodes per group: 8176

Inode size: 256

Journal blocks: 32768

Label:

Blocks: 13863265

Block groups: 424

Reserved block group size: 1024

Created filesystem with 11/3466624 inodes and 263660/13863265 blocks

mydata.img is created. I do an adb pull on my Ubuntu and fetch the mydata.img and /file_contexts

#adb pull /file_contexts

#adb pull /mydata.img

# du *

20	file_contexts

140888	mydata.img

Now, I convert the mydata.img into raw image file with simg2img.

#./simg2img mydata.img mydata.img.raw

#ls -lrt

-rw-r--r-- 1 root root 17261 Oct 16 13:17 file_contexts

-rw-r--r-- 1 root root 144267780 Oct 16 13:18 mydata.img

-rw-r--r-- 1 root root 56783933440 Oct 16 13:21 mydata.img.raw

Now, I create a directory and mount my raw image into that directory.

#mkdir phonedata

#mount -t ext4 mydata.img.raw phonedata/

I navigate into phonedata and verify the contents. I can see that the app I installed in avaialable under /data/data.

Then, I re-create the image from phonedata mount using make_ext4fs, or I can use the mydata.img fetch by adb pull too.

If I re-create the image, I give file_contexts(fetched) as the -S option to make_ext4fs. One doubt here, if I am re-creating the sparse image, what value should be passed to -l paramtere now?

I got to fastboot and fire these commands.

#fastboot format userdata

#fastboot format data

#fastboot format cache

#fastboot flash data mydata.img { I am confused between data and userdata, which is the correct one. This is mydata.img from adb pull }

#fastboot flash vendor vendor.img { I read in one forum that vendor should be flashed again on a nexus device }

#fastboot reboot

All things take smoothly. When the tab reboot, it shows Google logo, then android flash animation, then it shows 'Android is starting', and then goes back to flash animation. That is, it's stuck in bootloop.

Kindly let me know if there is something with these steps. Or is there is any alternate way to do the same thing. My problem statement is, I need a flashable data.img. I can create TWRP backup and recovery fine, but that's not my requirement.

Thanks!

Edit 1:

I should add, at this point, if I hard boot to fastboot and do a fastboot format userdata followed by fastboot reboot, I am able to boot to device and perform new device setup.

I can also flash system,boot,vendor,recovery and cache.img and perform new device setup normally. This should mean my fastboot/adb are working fine.