"Your device is corrupt" on Nexus 5X #201

Closed
Rudd-O opened this Issue Mar 16, 2016 · 12 comments

Comments

Projects
None yet
2 participants
@Rudd-O

Rudd-O commented Mar 16, 2016

Brand new Nexus 5X, never even booted to the OS, straight to bootloader. I write the latest, signature-checked image, and now when the phone boots, it says "Your device is corrupt" with the red warning sign, and then it hangs forever with the "Google" logo.

What is going on?

March 15 image.

@Rudd-O Rudd-O changed the title from "Your device is corrupt to "Your device is corrupt" on Nexus 5X Mar 16, 2016

@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Mar 16, 2016

Flashed with android-tools-20141219git8393e50-4.fc23.x86_64

Rudd-O commented Mar 16, 2016

Flashed with android-tools-20141219git8393e50-4.fc23.x86_64

@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Mar 16, 2016

So, I figured out what my problem was.

I tried to flash CopperheadOS on my $600 phone using the android-tools package shipping with my Linux distribution.

Turns out, the tool I was using to flash my phone is too old. It's from 2014. The phone is effectively bricked now, because of that.

It's also not humanly possible for me to build an updated version. I tried. I spent two hours trying to build an up to date package, using the distribution build recipes and everything. It won't build. Effectively, I would have to use the Android build system, which is incompatible with the way my distribution builds packages.

I would try to get around this problem by running a temporary copy of a Google-provided and updated ADB aand fastboot. HAHAHA. If only. It's not possible to just download adb and fastboot anymore. Google STOPPED shipping their adb and fastboot on their downloadable SDK and studio. Now you have to run a Google-provided program, which you have no way of verifying what it does before you run, on your computer. This program is interactive. Effectively, it's not there for any computer program to use, automate or anything. If you wanted to build a system that automatically flashes Android phones with the latest software -- say, because you're a tester -- you would effectively not be able to build it unless you signed yourself up to build a Rube Goldberg machine that included Amazon Mechanical Turk elements.

To the people building this edifice of time-thieving software -- not the CopperheadOS folks, their work is fine -- it's not open source if the open source people can't actually use your crap in a manner consistent with open source principles.

FAQ:

  • "Why can't he build a new Android tools version himself?"

I shouldn't have to. This would normally be taken care of by my distribution. But Google made that effectively impossible.

Google changed the source code of the base and extras repos necessary to compile ADB and fastboot for my distribution, in a way that makes the distribution package uncompilable, even if you update the source (I spent three hours of this day doing that). Google provides no source packages, no make-ready Makefiles, no nothing that can be used to compile their software without using their own incompatible system. Google doesn't care to support the work of Linux distributors, and therefore their work is extremely hostile to the work that distributors do. Google has not released, not in YEARS, any sort of new and proper open source release of these fundamental phone imaging and management tools in a way that distributions may compile easily. It truly seems they don't care for anything other than your computer running their compiled software. The same "dump on you some open source in name only, good luck trying to actually use it" story is evident with Chromium, but that's an entirely different circus show. Bottom line, you want to use or develop Google products, you have to run whatever they give you to run, end of story. If this is incompatible with how Linux distributions are brewed... well, now you know why they do not ship Google software.

  • "Why doesn't he just install the Google-provided fastboot and adb binaries?"
  • "So what's wrong with this dude, why won't he just get with the program and run whatever he's told on his computer?"

See "Reflections on trusting trust" and then consult any Linux distribution policy to understand why they compile from source instead of just shipping third party binaries.

Rudd-O commented Mar 16, 2016

So, I figured out what my problem was.

I tried to flash CopperheadOS on my $600 phone using the android-tools package shipping with my Linux distribution.

Turns out, the tool I was using to flash my phone is too old. It's from 2014. The phone is effectively bricked now, because of that.

It's also not humanly possible for me to build an updated version. I tried. I spent two hours trying to build an up to date package, using the distribution build recipes and everything. It won't build. Effectively, I would have to use the Android build system, which is incompatible with the way my distribution builds packages.

I would try to get around this problem by running a temporary copy of a Google-provided and updated ADB aand fastboot. HAHAHA. If only. It's not possible to just download adb and fastboot anymore. Google STOPPED shipping their adb and fastboot on their downloadable SDK and studio. Now you have to run a Google-provided program, which you have no way of verifying what it does before you run, on your computer. This program is interactive. Effectively, it's not there for any computer program to use, automate or anything. If you wanted to build a system that automatically flashes Android phones with the latest software -- say, because you're a tester -- you would effectively not be able to build it unless you signed yourself up to build a Rube Goldberg machine that included Amazon Mechanical Turk elements.

To the people building this edifice of time-thieving software -- not the CopperheadOS folks, their work is fine -- it's not open source if the open source people can't actually use your crap in a manner consistent with open source principles.

FAQ:

  • "Why can't he build a new Android tools version himself?"

I shouldn't have to. This would normally be taken care of by my distribution. But Google made that effectively impossible.

Google changed the source code of the base and extras repos necessary to compile ADB and fastboot for my distribution, in a way that makes the distribution package uncompilable, even if you update the source (I spent three hours of this day doing that). Google provides no source packages, no make-ready Makefiles, no nothing that can be used to compile their software without using their own incompatible system. Google doesn't care to support the work of Linux distributors, and therefore their work is extremely hostile to the work that distributors do. Google has not released, not in YEARS, any sort of new and proper open source release of these fundamental phone imaging and management tools in a way that distributions may compile easily. It truly seems they don't care for anything other than your computer running their compiled software. The same "dump on you some open source in name only, good luck trying to actually use it" story is evident with Chromium, but that's an entirely different circus show. Bottom line, you want to use or develop Google products, you have to run whatever they give you to run, end of story. If this is incompatible with how Linux distributions are brewed... well, now you know why they do not ship Google software.

  • "Why doesn't he just install the Google-provided fastboot and adb binaries?"
  • "So what's wrong with this dude, why won't he just get with the program and run whatever he's told on his computer?"

See "Reflections on trusting trust" and then consult any Linux distribution policy to understand why they compile from source instead of just shipping third party binaries.

@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Mar 16, 2016

Note that the images you publish aren't in zip format, and old ADB does successfully flash them. They just never boot.

I do need help with that. It's why I opened the bug.

Rudd-O commented Mar 16, 2016

Note that the images you publish aren't in zip format, and old ADB does successfully flash them. They just never boot.

I do need help with that. It's why I opened the bug.

@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Mar 16, 2016

Forgive me, I spoke too soon. The flashing process failed.

[root@usbdevvm bullhead-mmb29v]# ./flash-all.sh 
target reported max download size of 536870912 bytes
sending 'bootloader' (4382 KB)...
OKAY [  0.194s]
writing 'bootloader'...
OKAY [  0.075s]
finished. total time: 0.270s
rebooting into bootloader...
OKAY [  0.007s]
finished. total time: 0.058s
target reported max download size of 536870912 bytes
sending 'radio' (56614 KB)...
OKAY [  1.479s]
writing 'radio'...
OKAY [  0.339s]
finished. total time: 1.818s
rebooting into bootloader...
OKAY [  0.004s]
finished. total time: 0.054s
target reported max download size of 536870912 bytes
archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
archive does not contain 'system.sig'
Creating filesystem with parameters:
    Size: 27283927040
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 8176
    Inode size: 256
    Journal blocks: 32768
    Label: 
    Blocks: 6661115
    Block groups: 204
    Reserved block group size: 1024
Created filesystem with 11/1667904 inodes and 148720/6661115 blocks
error: file_write: write: No space left on device
Creating filesystem with parameters:
    Size: 100663296
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 6144
    Inode size: 256
    Journal blocks: 1024
    Label: 
    Blocks: 24576
    Block groups: 1
    Reserved block group size: 7
Created filesystem with 11/6144 inodes and 1422/24576 blocks
error: file_write: write: No space left on device
--------------------------------------------
Bootloader Version...: BHZ10k
Baseband Version.....: M8994F-2.6.30.0.68
Serial Number........: 00db742251e9b728
--------------------------------------------
checking product...
OKAY [  0.020s]
sending 'boot' (11245 KB)...
OKAY [  0.360s]
writing 'boot'...
OKAY [  0.087s]
sending 'recovery' (12157 KB)...
OKAY [  0.377s]
writing 'recovery'...
OKAY [  0.083s]
erasing 'system'...
OKAY [  0.279s]
sending sparse 'system' (515890 KB)...
OKAY [ 13.249s]
writing 'system'...
OKAY [  3.225s]
sending sparse 'system' (458257 KB)...
OKAY [ 11.845s]
writing 'system'...
OKAY [  3.099s]
erasing 'userdata'...
OKAY [  0.472s]
sending 'userdata' (0 KB)...
FAILED ()
finished. total time: 33.177s

Rudd-O commented Mar 16, 2016

Forgive me, I spoke too soon. The flashing process failed.

[root@usbdevvm bullhead-mmb29v]# ./flash-all.sh 
target reported max download size of 536870912 bytes
sending 'bootloader' (4382 KB)...
OKAY [  0.194s]
writing 'bootloader'...
OKAY [  0.075s]
finished. total time: 0.270s
rebooting into bootloader...
OKAY [  0.007s]
finished. total time: 0.058s
target reported max download size of 536870912 bytes
sending 'radio' (56614 KB)...
OKAY [  1.479s]
writing 'radio'...
OKAY [  0.339s]
finished. total time: 1.818s
rebooting into bootloader...
OKAY [  0.004s]
finished. total time: 0.054s
target reported max download size of 536870912 bytes
archive does not contain 'boot.sig'
archive does not contain 'recovery.sig'
archive does not contain 'system.sig'
Creating filesystem with parameters:
    Size: 27283927040
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 8176
    Inode size: 256
    Journal blocks: 32768
    Label: 
    Blocks: 6661115
    Block groups: 204
    Reserved block group size: 1024
Created filesystem with 11/1667904 inodes and 148720/6661115 blocks
error: file_write: write: No space left on device
Creating filesystem with parameters:
    Size: 100663296
    Block size: 4096
    Blocks per group: 32768
    Inodes per group: 6144
    Inode size: 256
    Journal blocks: 1024
    Label: 
    Blocks: 24576
    Block groups: 1
    Reserved block group size: 7
Created filesystem with 11/6144 inodes and 1422/24576 blocks
error: file_write: write: No space left on device
--------------------------------------------
Bootloader Version...: BHZ10k
Baseband Version.....: M8994F-2.6.30.0.68
Serial Number........: 00db742251e9b728
--------------------------------------------
checking product...
OKAY [  0.020s]
sending 'boot' (11245 KB)...
OKAY [  0.360s]
writing 'boot'...
OKAY [  0.087s]
sending 'recovery' (12157 KB)...
OKAY [  0.377s]
writing 'recovery'...
OKAY [  0.083s]
erasing 'system'...
OKAY [  0.279s]
sending sparse 'system' (515890 KB)...
OKAY [ 13.249s]
writing 'system'...
OKAY [  3.225s]
sending sparse 'system' (458257 KB)...
OKAY [ 11.845s]
writing 'system'...
OKAY [  3.099s]
erasing 'userdata'...
OKAY [  0.472s]
sending 'userdata' (0 KB)...
FAILED ()
finished. total time: 33.177s
@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Mar 16, 2016

I would be immensely grateful for instructions on how to compile adb and fastboot from source, so I can fix this bricked piece of garbage sitting on my desk.

Rudd-O commented Mar 16, 2016

I would be immensely grateful for instructions on how to compile adb and fastboot from source, so I can fix this bricked piece of garbage sitting on my desk.

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Mar 16, 2016

Contributor

It's part of the Android Open Source Project source tree so the build process is similar to building AOSP or CopperheadOS. Instead of make dist you need to do make adb fastboot. It would be a pain to build it outside of the AOSP source tree since you would need to write your own build system. It looks like that's the approach taken by the Arch Linux package:

https://www.archlinux.org/packages/community/x86_64/android-tools/

Contributor

thestinger commented Mar 16, 2016

It's part of the Android Open Source Project source tree so the build process is similar to building AOSP or CopperheadOS. Instead of make dist you need to do make adb fastboot. It would be a pain to build it outside of the AOSP source tree since you would need to write your own build system. It looks like that's the approach taken by the Arch Linux package:

https://www.archlinux.org/packages/community/x86_64/android-tools/

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Mar 16, 2016

Contributor

You could just copy what the Arch Linux package does if you really want to avoid using the AOSP source tree to build it.

Contributor

thestinger commented Mar 16, 2016

You could just copy what the Arch Linux package does if you really want to avoid using the AOSP source tree to build it.

@thestinger thestinger added the upstream label Mar 16, 2016

@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Mar 17, 2016

Arch Linux PKGBUILD has the same exact ancient version that bricked my phone.

Rudd-O commented Mar 17, 2016

Arch Linux PKGBUILD has the same exact ancient version that bricked my phone.

@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Mar 17, 2016

https://github.com/Rudd-O/android-tools-fedora <- this builds a newer version of ADB for Fedora.

Rudd-O commented Mar 17, 2016

https://github.com/Rudd-O/android-tools-fedora <- this builds a newer version of ADB for Fedora.

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Mar 17, 2016

Contributor

Did the newer version work for you?

Contributor

thestinger commented Mar 17, 2016

Did the newer version work for you?

@Rudd-O

This comment has been minimized.

Show comment Hide comment
@Rudd-O

Rudd-O Mar 18, 2016

Yup. I managed to find a program that generates a build file which successfully builds 6.0.1_r22 adb and fastboot. That is what I crystallized in the Github repo posted above.

With that, I have unbricked my phone and I am now running CopperheadOS.

Let's make this bug about warning in the install documents to use the latest stable ADB -- otherwise your users may brick their phones like I did. Feel free to point Fedora users to my package in the Github repo -- I know Fedora isn't updating their package anytime soon.

Rudd-O commented Mar 18, 2016

Yup. I managed to find a program that generates a build file which successfully builds 6.0.1_r22 adb and fastboot. That is what I crystallized in the Github repo posted above.

With that, I have unbricked my phone and I am now running CopperheadOS.

Let's make this bug about warning in the install documents to use the latest stable ADB -- otherwise your users may brick their phones like I did. Feel free to point Fedora users to my package in the Github repo -- I know Fedora isn't updating their package anytime soon.

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Mar 18, 2016

Contributor

This is now covered in the installation documentation (the cached version will go away in a bit).

Contributor

thestinger commented Mar 18, 2016

This is now covered in the installation documentation (the cached version will go away in a bit).

@thestinger thestinger closed this Mar 18, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment