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
checkCompatibleDevice() (src/utils/manager.js) matches the 64GB UFS
chip and selects userdata_30.
- The firehose programmer reports deviceType 33/34, so the
release-tizi /
release-mici manifest is loaded.
#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.
Summary
Flashing a comma device with a 64GB UFS chip fails at
FLASH_SYSTEMwith[Flash] Did not find userdata image "userdata_30"— after the device hasalready 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_89anduserdata_90, but the currentrelease-tiziandrelease-micibranch manifests only containuserdata_89/userdata_90:release-tici(branch)release-tizi(branch)release-mici(branch)9275486(old pinned tici/tizi)ccf7361(old pinned mici)What happens
checkCompatibleDevice()(src/utils/manager.js) matches the 64GB UFSchip and selects
userdata_30.release-tizi/release-micimanifest is loaded.#flashSystem()can't finduserdata_30in the manifest and bails withErrorCode.UNKNOWN— but only aftereraseDevice()has run, so thedevice is left erased with nothing flashed.
Device info
c6a7c092<TODO: 33 or 34, from network tab — which manifest URL was fetched><TODO: paste the storageInfo object from the "[Flash] Device info" console log>Console log
Workaround
Reverting
src/config.jsto the pre-#191 pinned manifests(
git checkout d23086e^ -- src/config.js) makes the flash completesuccessfully.
Suggested fixes
userdata_30to therelease-tizi/release-miciall-partitions.json(if 64GB devices reporting these device types arelegitimate), and/or
before erasing the device, so a mismatch fails safely instead of leaving
the device unbootable.