[TUTORIAL] How to unbrick Nexus 7 without blob.bin (REQUIRES ANOTHER NEXUS 7 2012)

Search This thread

esternin

Member
Aug 10, 2015
40
5
Hello, kind souls. Could someone generate a blob for me, please?

b'4605a88355f948bfb5f3730fcf63cccc10163074' --> 4605a88355f948bfb5f3730fcf63cccc
Serial : 15d172c74301610


Thanks very much in advance!
 

esternin

Member
Aug 10, 2015
40
5
Then try this one instead:
Code:
./nvflash --setbct --create --configfile <your flash.cfg> --bl test.ebt --bct testr.bct --blob test.blob
@enderzip : I bricked mine by destroying the partition table itself (while trying to enlarge the /system space and decrease the /cache space), so I must use --create, if I understand the nvfash' instructions correctly. BUT: what is the .cfg file for N7(2012) ?

I know what the partition table was before I bricked it, but how does one construct .cfg out of this (I kept a log of commands I issued in TWRP shell):
Code:
# cat /proc/partitions 
major minor  #blocks  name

 179        0   15267840 mmcblk0
 179        1      12288 mmcblk0p1
 179        2       8192 mmcblk0p2
 179        3     665600 mmcblk0p3
 179        4     453632 mmcblk0p4
 179        5        512 mmcblk0p5
 179        6      10240 mmcblk0p6
 179        7       5120 mmcblk0p7
 179        8        512 mmcblk0p8
 179        9   14103552 mmcblk0p9
 179       32       2048 mmcblk0boot1
 179       16       2048 mmcblk0boot0

# ls -la /dev/block/platform/sdhci-tegra.3/by-name/
drwxr-xr-x    2 root     root           220 Apr  2 15:55 .
drwxr-xr-x    4 root     root           320 Apr  2 15:55 ..
lrwxrwxrwx    1 root     root            20 Apr  2 15:55 APP -> /dev/block/mmcblk0p3
lrwxrwxrwx    1 root     root            20 Apr  2 15:55 CAC -> /dev/block/mmcblk0p4
lrwxrwxrwx    1 root     root            20 Apr  2 15:55 LNX -> /dev/block/mmcblk0p2
lrwxrwxrwx    1 root     root            20 Apr  2 15:55 MDA -> /dev/block/mmcblk0p8
lrwxrwxrwx    1 root     root            20 Apr  2 15:55 MSC -> /dev/block/mmcblk0p5
lrwxrwxrwx    1 root     root            20 Apr  2 15:55 PER -> /dev/block/mmcblk0p7
lrwxrwxrwx    1 root     root            20 Apr  2 15:55 SOS -> /dev/block/mmcblk0p1
lrwxrwxrwx    1 root     root            20 Apr  2 15:55 UDA -> /dev/block/mmcblk0p9
lrwxrwxrwx    1 root     root            20 Apr  2 15:55 USP -> /dev/block/mmcblk0p6

# ./lsblk -lb -o NAME,KNAME,MOUNTPOINT,SIZE,PHY-SEC
NAME         KNAME        MOUNTPOINT        SIZE PHY-SEC
mmcblk0      mmcblk0                 15634268160     512
mmcblk0p1    mmcblk0p1                  12582912     512
mmcblk0p2    mmcblk0p2                   8388608     512
mmcblk0p3    mmcblk0p3                 681574400     512
mmcblk0p4    mmcblk0p4                 464519168     512
mmcblk0p5    mmcblk0p5                    524288     512
mmcblk0p6    mmcblk0p6                  10485760     512
mmcblk0p7    mmcblk0p7                   5242880     512
mmcblk0p8    mmcblk0p8                    524288     512
mmcblk0p9    mmcblk0p9               14442037248     512
mmcblk0boot1 mmcblk0boot1                2097152     512
mmcblk0boot0 mmcblk0boot0                2097152     512

Does anybody have a copy of nexus7.cfg/flash16.cfg (the two names that pop up in old forums, but the files are long gone) ?
 

travelbug

Member
Oct 22, 2014
39
8
As a follow-up for my issue that the bootloader did not completed the download @ step 3 (@VooDoo_zzz maybe this helps you):
  1. I got the battery low message together with the Google logo
  2. Opened the housing
  3. Disconnected the battery
  4. Left the N7 laying around for 2 days or so (because of private items...)
  5. Connected the battery, but left the housing open for now (in case I had to disconnect the battery again)
  6. Charged the N7 for a few hours
  7. This time I then connected to a USB2 port instead of USB3
  8. Et voila - step 3 from post #1 was working now :) And without the battery low message.
  9. I directly tried step 6 (because I suspected the bootloader being corrupt) - doing so resulted in a warning "BCT is invalid or corrupted (code: 12)"
  10. OK, let's then try step 5 first - this one was working
  11. Now also step 6 was working
  12. Executing step 7 (THE reboot) took roughly a minute, but the thing worked like a charm!
I am back on track now. The only problem is that the device is still NOT able booting into the bootloader/recovery. It always goes into APX mode when I power down or restart but I can repeat the steps above (starting from 8) without one single problem.

Still some items to explore...
 

dark_slime

New member
Apr 7, 2021
1
0
I ask a kind person to create blob

hello, world
b'8ab281b28de1427d874f4393f7fac6dc05123025'

[=] Chip UID: 0x15d2d4225301205
[-] Incorrect BLOB selected. nverror: 0x4.

Thank you!
 
Last edited:

travelbug

Member
Oct 22, 2014
39
8
All right, community - my N7 is finally fully working again.

There is one item I did differently to what is written in step 6: I added "--configfile flash32.cfg". Thus my command in step 6 looks as following:
  • sudo ./nvflash --resume --download 4 bootloader.img --configfile flash32.cfg
Thanks again to the team and happy recovery to others!
 

retiredtab

Senior Member
Nov 16, 2017
647
244
b'4605a88355f948bfb5f3730fcf63cccc10163074' --> 4605a88355f948bfb5f3730fcf63cccc
Serial : 15d172c74301610
Code:
$ adb shell
~ # cat /AndroidRoot/cpuinfo 
Processor       : ARMv7 Processor rev 9 (v7l)
processor       : 0
BogoMIPS        : 1993.93

processor       : 1
BogoMIPS        : 1993.93

processor       : 2
BogoMIPS        : 1993.93

processor       : 3
BogoMIPS        : 1993.93

Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0xc09
CPU revision    : 9

Hardware        : grouper
Revision        : 0000
Serial          : 15d172c74301610

#./mknvfblob -W -K 4605a88355f948bfb5f3730fcf63cccc --blob test.blob --bctin n7.bct --bctr testr.bct --bctc testc.bct --blin bootloader.grouper.XBT --blout test.ebt
mknvfblob
---------

Encrypting BL 'bootloader.grouper.XBT' to 'test.ebt'...done.
Generating encrypted recovery BCT from 'n7.bct' to 'testr.bct'...done.
Generating encrypted create BCT from 'n7.bct' to 'testc.bct'...done.
Generating blob file 'test.blob'...done.
Adding create BCT to blob file [wheelie]...done.
Adding recovery BCT to blob file [wheelie]...done.
Adding bootloader to blob file [wheelie]...done.
Adding odmdata to blob file [wheelie]...done.
Adding chip id to blob file [wheelie]...done.
 

Attachments

  • esternin.zip
    5.1 MB · Views: 2

retiredtab

Senior Member
Nov 16, 2017
647
244
b'8ab281b28de1427d874f4393f7fac6dc05123025'
[=] Chip UID: 0x15d2d4225301205
Code:
# cat /AndroidRoot/cpuinfo
Processor       : ARMv7 Processor rev 9 (v7l)
processor       : 0
BogoMIPS        : 1993.93

processor       : 1
BogoMIPS        : 1993.93

processor       : 2
BogoMIPS        : 1993.93

processor       : 3
BogoMIPS        : 1993.93

Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0xc09
CPU revision    : 9

Hardware        : grouper
Revision        : 0000
Serial          : 15d2d4225301205

# ./mknvfblob -W -K 8ab281b28de1427d874f4393f7fac6dc --blob test.blob --bctin n7.bct --bctr testr.bct --bctc testc.bct --blin bootloader.grouper.XBT --blout test.ebt
mknvfblob
---------

Encrypting BL 'bootloader.grouper.XBT' to 'test.ebt'...done.
Generating encrypted recovery BCT from 'n7.bct' to 'testr.bct'...done.
Generating encrypted create BCT from 'n7.bct' to 'testc.bct'...done.
Generating blob file 'test.blob'...done.
Adding create BCT to blob file [wheelie]...done.
Adding recovery BCT to blob file [wheelie]...done.
Adding bootloader to blob file [wheelie]...done.
Adding odmdata to blob file [wheelie]...done.
Adding chip id to blob file [wheelie]...done.
 

Attachments

  • dark_slime.zip
    5.1 MB · Views: 3
Last edited:

esternin

Member
Aug 10, 2015
40
5
Would you mind posting your flash32.cfg file, please?
Answering my own inquiry:

To quote from the OP:

I have struggled with this zip file forever, so posting to help other Linux users. The .zip file appears broken, to all users of "unzip -x" or Engrampa Archive Manager:
Code:
Archive:  flashcfg.zip
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.
However, the .cfg files can be extracted using Windo$e tools.

Here they are.
 

Attachments

  • flash.tar
    10 KB · Views: 3

dvihzok

New member
Apr 12, 2015
1
0
Hello, please help me generate a blob files
Device ID: b'12f443bf334b5d01'
Chip UID: 0x15d4b33bf43f412
device SBK e5c4cc397dda4485baddb856371368ad

hello, world
b'e5c4cc397dda4485baddb856371368ad12f443bf'
thanks
 

retiredtab

Senior Member
Nov 16, 2017
647
244
Chip UID: 0x15d4b33bf43f412
device SBK e5c4cc397dda4485baddb856371368ad
Done.
Code:
# cat /AndroidRoot/cpuinfo 
Processor       : ARMv7 Processor rev 9 (v7l)
processor       : 0
BogoMIPS        : 1993.93

processor       : 1
BogoMIPS        : 1993.93

processor       : 2
BogoMIPS        : 1993.93

processor       : 3
BogoMIPS        : 1993.93

Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0xc09
CPU revision    : 9

Hardware        : grouper
Revision        : 0000
Serial          : 15d4b33bf43f412

# ./mknvfblob -W -K e5c4cc397dda4485baddb856371368ad --blob test.blob --bctin n7.bct --bctr testr.bct --bctc testc.bct --blin bootloader.grouper.XBT --blout test.ebt
mknvfblob
---------

Encrypting BL 'bootloader.grouper.XBT' to 'test.ebt'...done.
Generating encrypted recovery BCT from 'n7.bct' to 'testr.bct'...done.
Generating encrypted create BCT from 'n7.bct' to 'testc.bct'...done.
Generating blob file 'test.blob'...done.
Adding create BCT to blob file [wheelie]...done.
Adding recovery BCT to blob file [wheelie]...done.
Adding bootloader to blob file [wheelie]...done.
Adding odmdata to blob file [wheelie]...done.
Adding chip id to blob file [wheelie]...done.
 

Attachments

  • dvihzok.zip
    5.1 MB · Views: 2

Top Liked Posts

  • There are no posts matching your filters.
  • 10
    Thanks to @Jirmd for letting me use his post as a reference.
    Original post: https://forum.xda-developers.com/nexus-7/general/unbrick-nexus-7-tegra-3-device-t4078627

    Requirements:
    1. Linux-based OS (I use Ubuntu 18.04)
    2. NvFlash and Wheelie (You can download the Linux version down below)
    3. A USB cable (A good and sturdy one)
    4. Nerve of steel lol
    5. Must have APX driver installed.
    6. Another Nexus 7 (Ask someone that have it or ask me)(MUST BE ROOTED AND HAVE TWRP RECOVERY INSTALLED)
    7. ADB (platform-tools)
    1. DUMP SBK VIA USB
    Step 1: Download fusee-launcher for Nexus 7 from this link and extract it to a folder:
    http://www.mediafire.com/file/sgwsa79idk24z8u/fusee-launcher-n7.zip/file
    Step 2: Open a terminal inside of the folder then type:
    Code:
    sudo apt-get install python-usb python3-usb
    Wait for it to complete. After that, type:
    Code:
    pip install pyusb
    Step 3: Connect your device to a USB 3.0 port (REQUIRED). You can check for connection using "lsusb". There must be a "NVidia Corp" in the list.
    Step 4: Type:
    Code:
    sudo ./fusee-launcher.py –tty dump-sbk-via-usb.bin
    Something like this should appear:
    Code:
    05f4a5d01'
    Stack snapshot: b'0000000000000000100000003c9f0040'
    EndpointStatus_stack_addr: 0x40009f3c
    ProcessSetupPacket SP: 0x40009f30
    InnerMemcpy LR stack addr: 0x40009f20
    overwrite_len: 0x00004f20
    overwrite_payload_off: 0x00004de0
    payload_first_length: 0x00004de0
    overwrite_payload_off: 0x00004de0
    payload_second_length: 0x0000c7b0
    b'00a0004000300040e04d0000b0c70000'
    Setting rcm msg size to 0x00030064
    RCM payload (len_insecure): b'64000300'
    
    Setting ourselves up to smash the stack...
    Payload offset of intermezzo: 0x00000074
    overwrite_payload_off: 0x00004de0
    overwrite_len: 0x00004f20
    payload_overwrite_len: 0x00004e5c
    overwrite_payload_off: 0x00004de0
    smash_padding: 0x00000000
    overwrite_payload_off: 0x00004de0
    Uploading payload...
    txing 73728 bytes total
    txing 4096 bytes (0 already sent) to buf[0] 0x40003000
    txing 4096 bytes (4096 already sent) to buf[1] 0x40005000
    txing 4096 bytes (8192 already sent) to buf[0] 0x40003000
    txing 4096 bytes (12288 already sent) to buf[1] 0x40005000
    txing 4096 bytes (16384 already sent) to buf[0] 0x40003000
    txing 4096 bytes (20480 already sent) to buf[1] 0x40005000
    txing 4096 bytes (24576 already sent) to buf[0] 0x40003000
    txing 4096 bytes (28672 already sent) to buf[1] 0x40005000
    txing 4096 bytes (32768 already sent) to buf[0] 0x40003000
    txing 4096 bytes (36864 already sent) to buf[1] 0x40005000
    txing 4096 bytes (40960 already sent) to buf[0] 0x40003000
    txing 4096 bytes (45056 already sent) to buf[1] 0x40005000
    txing 4096 bytes (49152 already sent) to buf[0] 0x40003000
    txing 4096 bytes (53248 already sent) to buf[1] 0x40005000
    txing 4096 bytes (57344 already sent) to buf[0] 0x40003000
    txing 4096 bytes (61440 already sent) to buf[1] 0x40005000
    txing 4096 bytes (65536 already sent) to buf[0] 0x40003000
    txing 4096 bytes (69632 already sent) to buf[1] 0x40005000
    txing 4096 bytes total
    txing 4096 bytes (0 already sent) to buf[0] 0x40003000
    Smashing the stack...
    sending status request with length 0x00004f20
    The USB device stopped responding-- sure smells like we've smashed its stack. :)
    Launch complete!
    b'4445414442454546'
    DEADBEEF
    b'3030303030303030'
    00000000
    b'3030303030303030'
    00000000
    b'3034303030303930'
    04000090
    b'4634314330433241'
    F41C0C2A
    b'3133333731333337'
    13371337
    b'3535353535353535'
    55555555
    b'3430303033303030'
    40003000
    b'3430303035303030'
    40005000
    b'4141414141414141'
    AAAAAAAA
    b'3131313131313131'
    11111111
    b'3030303030303236'
    00000026
    b'3232323232323232'
    22222222
    b'68656c6c6f2c20776f726c640a00'
    hello, world
    b'e57de3bab6cb499d874d5772cb219f0101042c20'
    
    Traceback (most recent call last):
      File "./fusee-launcher.py", line 823, in <module>
        buf = switch.read(USB_XFER_MAX)
      File "./fusee-launcher.py", line 530, in read
        return self.backend.read(length)
      File "./fusee-launcher.py", line 134, in read
        return bytes(self.dev.read(0x81, length, 3000))
      File "/usr/local/lib/python3.6/dist-packages/usb/core.py", line 988, in read
        self.__get_timeout(timeout))
      File "/usr/local/lib/python3.6/dist-packages/usb/_debug.py", line 60, in do_trace
        return f(*args, **named_args)
      File "/usr/local/lib/python3.6/dist-packages/usb/backend/libusb1.py", line 833, in bulk_read
        timeout)
      File "/usr/local/lib/python3.6/dist-packages/usb/backend/libusb1.py", line 936, in __read
        _check(retval)
      File "/usr/local/lib/python3.6/dist-packages/usb/backend/libusb1.py", line 595, in _check
        raise USBError(_strerror(ret), ret, _libusb_errno[ret])
    usb.core.USBError: [Errno 110] Operation timed out
    Search for the line "hello, world" inside of your log. It looks like this in this example:
    Code:
    hello, world
    b'e57de3bab6cb499d874d5772cb219f0101042c20'
    The last 8 characters are not your SBK. This is the first 8 numbers of your Device ID. Delete this and delete the b' at the start and also the ' at the end.
    The result should look like this:
    Code:
    e57de3bab6cb499d874d5772cb219f01
    Congratulation, you have successfully dump your device SBK via USB.

    2. GETTING YOUR CPU UID
    Step 1: Download Wheelie and NvFlash then extract it to a folder.
    Step 2: Download this broken blob.bin file (REQUIRE)
    http://www.mediafire.com/file/32cxvjv2wajokqf/blob.bin/file
    Then place it inside of the Wheelie and NvFlash folder.
    Step 3: Open a terminal inside of the folder then type:
    Code:
    ./wheelie --blob blob.bin
    After that, something like this should appear:
    Code:
    Wheelie 0.1 - Preflight for nvflash.
    Copyright (c) 2011-2012 androidroot.mobi
    ========================================
    [=] Chip UID: 0x98254853062001158
    [-] Incorrect SBK or SBK type selected. nverror: 0x4.
    Search for "Chip UID", remove the "0x" at the beginning. The result should look like this:
    Code:
    98254853062001158
    Congratulation, you got your chip UID

    3. GENERATE BLOB FILES USING ANOTHER NEXUS 7
    Step 1: Download MkNvfBlob from this link:
    https://github.com/GeorgeMato4/nvcrypttools/blob/forN7/precompiled/precompiledN7.tar.xz
    Note: Extract this to your Nexus 7.
    Step 1.1: Reboot into TWRP recovery.
    Step 2: Open a terminal inside of you ADB folder then type:
    Code:
    adb shell
    After that:
    Code:
    su
    Type this command after that:
    Code:
    mkdir /AndroidRoot
    Last one:
    Code:
    cat /proc/cpuinfo > /AndroidRoot/cpuinfo
    Pull the cpuinfo file using this command:
    Code:
    adb pull /AndroidRoot
    Note: You could copy your cpuinfo file to your PC using MTP (IDK how to do this so search Google lol)
    Open your ADB folder and there should be a AndroidRoot folder with a cpuinfo file inside of it.
    Open cpuinfo using a Text Editor. Something like this should be inside:
    Code:
    Processor	: ARMv7 Processor rev 9 (v7l)
    processor	: 0
    BogoMIPS	: 1993.93
    
    processor	: 1
    BogoMIPS	: 1993.93
    
    processor	: 2
    BogoMIPS	: 1993.93
    
    processor	: 3
    BogoMIPS	: 1993.93
    
    Features	: swp half thumb fastmult vfp edsp neon vfpv3 tls 
    CPU implementer	: 0x41
    CPU architecture: 7
    CPU variant	: 0x2
    CPU part	: 0xc09
    CPU revision	: 9
    
    Hardware	: grouper
    Revision	: 0000
    Serial		: 015d4a5f202c0401
    Replace the Serial line with your Chip UID.
    After that, place the cpuinfo file back to the /AndroidRoot folder on your device using this command:
    Code:
    adb push AndroidRoot /
    After you are done, don't close the ADB windows.
    Step 3: Download bootloader.xbt:
    https://github.com/GeorgeMato4/nvcrypttools/blob/forN7/bootloaders/bootloader.grouper.XBT
    And BCT for your device:
    https://github.com/GeorgeMato4/nvcrypttools/blob/forN7/bct/n7.bct
    And copy these two files to the /AndroidRoot folder on your device.
    Step 4: Type this command on the ADB windows:
    Code:
    cd /AndroidRoot
    After that, type:
    Code:
    chmod 777 ./mknvfblob
    After that, type:
    Code:
    ./mknvfblob -W -K <your SBK> --blob /AndroidRoot/test.blob --bctin /AndroidRoot/n7.bct --bctr /AndroidRoot/testr.bct --bctc /AndroidRoot/testc.bct --blin /AndroidRoot/bootloader.grouper.XBT --blout /AndroidRoot/test.ebt
    Wait for it to do its job.
    After that, go to your /AndroidRoot folder and copy all the file that just got generated (testr.bct, testc.bct. test.ebt, test.blob) to your PC using the adb pull command on Step 2
    Congratulation, you have successfully generate blob for your bricked device.

    4. UNBRICK YOUR DEVICE (THE FUN PART :))
    Step 1: Boot your bricked device into APX mode either using Power button or Power + Vol UP.
    Step 2: Open a terminal inside of the folder where you place your NvFlash folder (move the blob file inside of that folder, all of them)
    Step 3: Open a terminal inside of your Wheelie and NvFlash folder. Type:
    Code:
    sudo ./nvflash --bl test.ebt --bct testr.bct --blob test.blob
    If you got this command:
    Code:
    command error: no command found
    Then try this one instead:
    Code:
    ./nvflash --setbct --create --configfile <your flash.cfg> --bl test.ebt --bct testr.bct --blob test.blob
    If you got the NvError, its fine.
    Something like this should appear (the first command):
    Code:
    Nvflash v1.13.87205 started
    Using blob v1.13.00000
    chip uid from BR is: 0x0000000000000000015d2bc285340e0f
    rcm version 0X30001
    System Information:
       chip name: unknown
       chip id: 0x30 major: 1 minor: 3
       chip sku: 0x83
       chip uid: 0x0000000000000000015d2bc285340e0f
       macrovision: disabled
       hdcp: enabled
       jtag: disabled
       sbk burned: true
       dk burned: true
       boot device: emmc
       operating mode: 4
       device config strap: 1
       device config fuse: 17
       sdram config strap: 0
    
    sending file: recovery.bct
    - 6128/6128 bytes sent
    recovery.bct sent successfully
    downloading bootloader -- load address: 0x80108000 entry point: 0x80108000
    sending file: bootloader.ebt
    - 2146912/2146912 bytes sent
    bootloader.ebt sent successfully
    waiting for bootloader to initialize
    bootloader downloaded successfully
    A Google Logo should appear on your device screen with the text "Battery is too low" on the upper left corner. Unplug the battery and replug it. After that, plug it into a wall charger for atleast 4 hour.
    Step 4: Unplug the battery and boot into APX mode again using the button combination.
    Step 5:Type this command while holding down the Vol DOWN button:
    Code:
    sudo ./nvflash --resume --download 8 boot.img
    Replace "boot.img" with your ROM boot.img file. If you download another boot.img that isn't for your ROM, your device will bootloop.
    Step 6:
    Type:
    Code:
    sudo ./nvflash --resume --download 4 bootloader.img
    Replace "bootloader.img" with your bootloader.img file name (You could get it inside of the Factory Image)
    And after its done, your device should technically unbrick now. But I still recommend you re-flash stock ROM.
    Step 7: The final step
    Boot into your OS using the command below:
    Code:
    sudo ./nvflash --resume --go
    If your device boot back into APX mode, maybe you have done something wrong. Try again.
    If you got a Google logo on your device then congratulation :) Your device is now unbricked.


    Note: If step 7 didn't work, try booting this recovery image using this command:
    Code:
    fastboot boot flatline_grouper.img
    Link for the recovery image is in the "Links" section.
    Note: To get into Fastboot, add the "--go" line at the end of the command in Step 5
    Code:
    sudo ./nvflash --resume --download 8 boot.img --go
    HOLD DOWN VOL DOWN while doing this command, you should get into fastboot at
    After you are in the Flatline recovery, navigate to the "Advanced" section using the VOL buttons. Select it using the POWER button.
    Select the "wheelie" at the end of the list.
    Select "I agree".
    After that, select "Step 1: Flash AndroidRoot.mobi custom bootloader." IGNORE Step 2 because it won't gonna work anyways.
    Your device should reboot and the Google logo should appear, that means that your device is unbricked :).
    Note: If you wanted to flash stock ROM, open the "image-*******.zip" inside of the factory image and open the android-info.txt file. Edit the "require-bootloader" line to "4.13". After that, it should work :)


    Links:
    flash.cfg: http://www.mediafire.com/file/j90hc1dfz58aytq/flashcfg.zip/file
    flatline_grouper.img: https://www.mediafire.com/file/z1jvgy6km33f7bf/flatline_grouper.img/file
    Wheelie, NvFlash and platform-tools (For ADB) (Works for both Linux and Windows): https://www.mediafire.com/file/0nuy4indgvagq3v/nvflash-and-platformtool.zip/file
    Download the Factory Image for your Nexus 7 incase you want to re-flash stock ROM (nakasi or nakasig): https://developers.google.com/android/images#nakasi

    That is. If you need any help, message me.

    Update: After a few days of troubleshooting, fixing and updating my post, it seems like the step to unbrick your Nexus 7 2012 may depends on how did you brick it, what OS version you are running or the condition of your device. So you may have to "think outside the box" sometimes in this guide.
    Update #2: Some helpful advice from @Jirmd with some minor change:
    When you get this error :
    Code:
    Nvflash v1.10.76762 started
    Using blob v1.13.00000
    chip uid from BR is: 0x0000000000000000015d4a5f202c0401
    rcm version 0X30001
    System Information:
       chip name: unknown
       chip id: 0x30 major: 1 minor: 3
       chip sku: 0x83
       chip uid: 0x0000000000000000015d4a5f202c0401
       macrovision: disabled
       hdcp: enabled
       jtag: disabled
       sbk burned: true
       dk burned: true
       boot device: emmc
       operating mode: 4
       device config strap: 2
       device config fuse: 17
       sdram config strap: 1
    
    sending file: testr.bct
    - 6128/6128 bytes sent
    testr.bct sent successfully
    downloading bootloader -- load address: 0x80108000 entry point: 0x80108000
    sending file: test.ebt
    - 2146896/2146896 bytes sent
    test.ebt sent successfully
    waiting for bootloader to initialize
    bootloader downloaded successfully
    setting device: 0 3
    failed executing command 11 NvError 0x120002
    command failure: create failed (bad data)
    bootloader status: specified device is invalid (code: 6) message: nverror:0x4 (0x4) flags: 0
    after this command :

    Code:
    ./nvflash --configfile flash.cfg --create --bct testr.bct --setbct --bl test.ebt --blob test.blob --sync
    Probably you have broken your internal storage!

    You can probably flash:
    Bootloader image (bootloader.img)
    Kernel image (boot.img)
    Recovery image (recovery.img aka TWRP)

    But you CAN'T flash a new system via TWRP or fastboot, because the bootloader or the recovery was unable to connect to the partitions table.

    You can try this command to erase bad blocks:

    Code:
    ./nvflash --resume --configfile flash.cfg --obliterate
    Reboot to APX mode and try the above command again.

    But, broken internal storage is pretty much unrepairable.

    There is some possibility of disassembly your device and overheat your memory IC, but this method is not easy and need more technical skill.
    And in my case this did not help.
    In my case, this command also gives me the nverror 0x4 but it also did something to my Nexus 7 as it was required for the next step.
    Update #3: Updated the guide and remove some unnecessary steps.
    2
    It’s possible to do this trick on Windows. USB 3.0 is NOT required!

    1. DUMP SBK VIA USB (Windows)
    Step 1. Install the libusbK driver:
    Download Zadig installer https://zadig.akeo.ie/
    Connect your device to USB. You should see a device labeled "APX" in the Device Manager.
    Open the Zadig executable. Select "APX" in the device dropdown list (you may have to enable "List All Devices" in the Options menu). Change the selected driver to libusbK using the arrow icons to the right of Zadig's window. Click "Install Driver" (or "Replace Driver").
    Step 2. Install Python for Windows. If you have a 64-bit system, download "x86-64" installer from https://www.python.org/downloads/windows/
    Step 3. Download fusee-launcher for Nexus 7 and extract it to a folder.
    Replace fusee-launcher.py with the fixed file https://gist.githubusercontent.com/...d4ba1cf3d6232b545ba4c91aed0/fusee-launcher.py
    Step 4. Reconnect your device (just in case).
    Open a command prompt inside of the folder then type:
    Code:
    python.exe fusee-launcher.py --tty dump-sbk-via-usb.bin
    Find SBK key in the log (refer to the main tutorial).

    2. GETTING YOUR CPU UID (Windows)
    Step 0. Replace APX driver:
    Download and extract Universal Naked Driver https://forum.xda-developers.com/go...nt/adb-fb-apx-driver-universal-naked-t2513339
    Open the Device Manager, uninstall the libusbK driver (APX device), then install the extracted one.
    Step 1. ...


    Tested on PC with USB 2.0 ports, Windows 7, Python 3.8.3, Zadig 2.5

    But I don't have a second device.
    Could someone generate the Blob file for me? Pretty please?
    SBK: 3344ff475dce4fb19f0808c496dbc8eb
    Chip UID: 015d8bed314c0603
    1
    Hi, enderzip...

    I've been keeping track of the recent developments regarding bricked Nexus 7's, APX mode and nvFlash, here on XDA. There's currently quite a few threads on this topic.

    As I understand it, you've been motivated by a desire to recover data from your bootloader bricked Nexus 7. So my question is simple...

    'Have you been successful?'

    Have you actually resurrected a bricked Nexus 7 with no functioning bootloader AND with no originally created flatline wheelie blobs?

    If so, you have done what I thought could not be done! I tip my hat to you, with your tenacity and your technical understanding of the complex issues involved.

    If I had a Linux system myself, I'd be half-minded to dig out my old Nexus 7, deliberately bugger up the bootloader, and follow your instructions for the sheer technical challenge!

    --------------------------------------

    Some general thoughts...

    The Nexus 7 is old (c.2012), and likely not many people use it anymore, but that's not what's important here. What is important is the persistence, the huge technical ability, and the sheer bloody minded refusal ~ by some ~ to let their Nexus 7 die... to go into what the poet Dylan Thomas called that 'good night'...

    "Do not go gentle into that good night,
    Old age should burn and rave at close of day;
    Rage, rage against the dying of the light."

    https://poets.org/poem/do-not-go-gentle-good-night

    And in so doing, mayhap enderzip and others, have provided potential clues for other devices, other hardware, other phones or tablets, when faced with similar hard brick problems. One can but hope.

    The above post by enderzip is technically way beyond me, and I have no immediate use for it, but it's a fundamental distillation of everything XDA stands for - namely, experimentation and creativity.

    It's basically, amazing!

    Thanks enderzip:)

    Rgrds,
    Ged.
    1
    Hi, enderzip...

    I've been keeping track of the recent developments regarding bricked Nexus 7's, APX mode and nvFlash, here on XDA. There's currently quite a few threads on this topic.

    As I understand it, you've been motivated by a desire to recover data from your bootloader bricked Nexus 7. So my question is simple...

    'Have you been successful?'

    Have you actually resurrected a bricked Nexus 7 with no functioning bootloader AND with no originally created flatline wheelie blobs?

    If so, you have done what I thought could not be done! I tip my hat to you, with your tenacity and your technical understanding of the complex issues involved.

    If I had a Linux system myself, I'd be half-minded to dig out my old Nexus 7, deliberately bugger up the bootloader, and follow your instructions for the sheer technical challenge!

    --------------------------------------

    Some general thoughts...

    The Nexus 7 is old (c.2012), and likely not many people use it anymore, but that's not what's important here. What is important is the persistence, the huge technical ability, and the sheer bloody minded refusal ~ by some ~ to let their Nexus 7 die... to go into what the poet Dylan Thomas called that 'good night'...

    "Do not go gentle into that good night,
    Old age should burn and rave at close of day;
    Rage, rage against the dying of the light."

    https://poets.org/poem/do-not-go-gentle-good-night

    And in so doing, mayhap enderzip and others, have provided potential clues for other devices, other hardware, other phones or tablets, when faced with similar hard brick problems. One can but hope.

    The above post by enderzip is technically way beyond me, and I have no immediate use for it, but it's a fundamental distillation of everything XDA stands for - namely, experimentation and creativity.

    It's basically, amazing!

    Thanks enderzip:)

    Rgrds,
    Ged.
    Yes, i have successfully unbrick my Nexus 7 WITHOUT any type of blob file i have generated before.
    And no, you should thank @Jirmd instead of me. If he didn't post his thread, my Nexus is still probably a paperweight.
    1
    Output. If you have problems, please read through the entire thread as there have been many ideas on what commands to try if post #1 doesn't work. I did it my own way in post #189.

    Code:
    # cat /AndroidRoot/cpuinfo 
    Processor       : ARMv7 Processor rev 9 (v7l)
    processor       : 0
    BogoMIPS        : 1993.93
    
    processor       : 1
    BogoMIPS        : 1993.93
    
    processor       : 2
    BogoMIPS        : 1993.93
    
    processor       : 3
    BogoMIPS        : 1993.93
    
    Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls 
    CPU implementer : 0x41
    CPU architecture: 7
    CPU variant     : 0x2
    CPU part        : 0xc09
    CPU revision    : 9
    
    Hardware        : grouper
    Revision        : 0000
    Serial          : 15d46d9255ff20c
    # ./mknvfblob -W -K c975962aeee94f0699fe1a8181047a90 --blob test.blob --bctin n7.bct --bctr testr.bct --bctc testc.bct --blin bootloader.grouper.XBT --blout test.ebt
    mknvfblob
    ---------
    
    Encrypting BL 'bootloader.grouper.XBT' to 'test.ebt'...done.
    Generating encrypted recovery BCT from 'n7.bct' to 'testr.bct'...done.
    Generating encrypted create BCT from 'n7.bct' to 'testc.bct'...done.
    Generating blob file 'test.blob'...done.
    Adding create BCT to blob file [wheelie]...done.
    Adding recovery BCT to blob file [wheelie]...done.
    Adding bootloader to blob file [wheelie]...done.
    Adding odmdata to blob file [wheelie]...done.
    Adding chip id to blob file [wheelie]...done.
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone