Skip to content

comma 3X flash error #218

Description

@BeneficialCode

Summary

Flashing a comma device with a 64GB UFS chip fails at FLASH_SYSTEM with
[Flash] Did not find userdata image "userdata_30" — after the device has
already been erased, leaving it unbootable (still recoverable via QDL).

This is a regression from #191 (d23086e, "update manifests from release
branches"): the previously pinned manifests all contained userdata_30,
userdata_89 and userdata_90, but the current release-tizi and
release-mici branch manifests only contain userdata_89 / userdata_90:

Manifest userdata images
release-tici (branch) userdata_90, userdata_89, userdata_30
release-tizi (branch) userdata_90, userdata_89
release-mici (branch) userdata_90, userdata_89
9275486 (old pinned tici/tizi) userdata_90, userdata_89, userdata_30
ccf7361 (old pinned mici) userdata_90, userdata_89, userdata_30

What happens

  1. checkCompatibleDevice() (src/utils/manager.js) matches the 64GB UFS
    chip and selects userdata_30.
  2. The firehose programmer reports deviceType 33/34, so the release-tizi /
    release-mici manifest is loaded.
  3. #flashSystem() can't find userdata_30 in the manifest and bails with
    ErrorCode.UNKNOWN — but only after eraseDevice() has run, so the
    device is left erased with nothing flashed.

Device info

  • Device: comma 3/3X, serial c6a7c092
  • deviceType reported by programmer: <TODO: 33 or 34, from network tab — which manifest URL was fetched>
  • storageInfo: <TODO: paste the storageInfo object from the "[Flash] Device info" console log>

Console log

[07:03:04] [info] Repaired partition tables in 6.20s
[07:03:04] [info] [Flash] "persist" partition located in LUN 0
[07:03:04] [info] [Flash] Erasing LUN 0 while preserving "mbr", "gpt", "persist" partitions
...
[07:03:05] [info] Erased device in 1.37s
[07:03:05] [error] [Flash] Did not find userdata image "userdata_30"
[07:03:05] [debug] [Flash] error -1
[07:03:05] [info] Flashed system in 0.00s

Workaround

Reverting src/config.js to the pre-#191 pinned manifests
(git checkout d23086e^ -- src/config.js) makes the flash complete
successfully.

Suggested fixes

  • Re-add userdata_30 to the release-tizi / release-mici
    all-partitions.json (if 64GB devices reporting these device types are
    legitimate), and/or
  • In flash: validate that the manifest contains the selected userdata image
    before erasing the device, so a mismatch fails safely instead of leaving
    the device unbootable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions