Skip to content

YuROM Ultra V35 R32 — vendor label hotfix r1 (fixes boot loop)

Choose a tag to compare

@yuefdev yuefdev released this 30 Oct 12:29

YuROM Ultra V35 R32 — vendor label hotfix r1

If your SM-G970F, SM-G973F or SM-G975F stays on the boot logo or reboots repeatedly after installing YuROM Ultra V35 R32, flash this small ZIP in TWRP. It does not reinstall the ROM and does not touch userdata.

What was wrong

In the released R32 vendor.img the root of the ext4 filesystem has no SELinux label (unlabeled). The previous r31 vendor image carried u:object_r:vendor_file:s0 there. The R32 packer never checked the filesystem root, only the files inside it, so the defect was shipped for all three models.

Evidence from the reference SM-G973F, with the same public R32 system image and SELinux Enforcing in both runs:

Vendor image Result
Released R32 vendor (root unlabeled) sys.boot_completed never set within 180 s
Same vendor with only the root label added sys.boot_completed=1, system_server stable for the 45 s observation

SELinux was not disabled, userdata was not formatted and no other byte of either image was changed.

What this ZIP does

  • Detects the model from the vendor partition size and ext4 UUID. It refuses any partition whose size and ext4 UUID do not match one of the three released R32 vendor images.
  • Writes exactly one 4 KiB block of the vendor filesystem (the one holding the root inode) after verifying the block against a pinned SHA256, then reads it back. If the block differs from the released one it falls back to mounting /vendor read-write and setting the label with chcon, then verifies it with ls -dZ.
  • Running it twice is harmless; it reports that the label is already present.
  • Writes no other partition: not system, boot, userdata, EFS, modem, recovery or bootloader.

Install

  1. Boot TWRP. Do not format anything.
  2. Keep /system and /vendor unmounted (the ZIP unmounts /vendor itself).
  3. Install YuROM_Ultra_V35_R32_VENDOR_LABEL_HOTFIX_r1.zip.
  4. The output must end with Readback passed or Label set and read back.
  5. Reboot System. The first boot can take several minutes.

If it stops with an error, do not reboot into a half-written state; send the on-screen text (or /tmp/recovery.log) with your model.

Verification and limits

  • Host: for each model the corrected vendor image differs from the released one in exactly one 4 KiB block (38 changed bytes in total). All three blocks have the same position (block 88) and the ZIP pins both the original and the patched block SHA256 per model.
  • Device: installed on a real SM-G973F in TWRP through both paths (exact block and mount fallback). The result was byte-identical to the corrected image and a second run reported the label as already present. The phone then booted to Android in Enforcing with /vendor labelled vendor_file.
  • Not tested on SM-G970F and SM-G975F hardware. They use the same layout, but their ZIP entries are verified only on the host.
  • This does not change the existing R32 limits: full-family clean install and first-beta upgrade, calls, accessory Bluetooth, HDMI/DeX and all camera modes are not claimed as verified.
  • Full packages that already contain the corrected vendor image are published as R33 (new installations and original v35-beta upgrades). They do not need this ZIP, and an installed R32 cannot be upgraded to R33 without a wipe, so use this hotfix instead.

Files

File SHA256
YuROM_Ultra_V35_R32_VENDOR_LABEL_HOTFIX_r1.zip abba7d77b31c744d14b726747365f26f6e7594dcd9cd0defc527788b8bd2c7b2
YuROM_Ultra_V35_R32_VENDOR_LABEL_HOTFIX_r1_Source.zip ea123b0dbea50bce88daf16382a3191a5141cc27ac1a42b45db305bbbfd21e84

The source archive holds the builder, the installer script, the new packing gate and its tests (GPL-3.0-or-later). The earlier R32 release and its files are unchanged.