Installer crash when clicking on "Choose file" button
-
@phandersson
Just retried by only connecting the phone when the installer asks for it -- same behaviour.Even though the installer doesn't issue an explicit error message about it, I wonder whether the problem doesn't result from an inability to locate / download the 'jasmine_sprout'-specific configuration file. The first time I ran the installer, that step succeeded, though.
-
@phandersson
OK -- found a way around it: do NOT plug the phone in when the installer requests it. Select model manually, select OS and channel, let the installer download the required files. Only then plug the phone in and click "Install".So, for a 2nd time, the first phase of flashing went well. I've rebooted the phone to the recovery system, and tried to proceed with the 2nd phase. This time, the phone is correctly detected and installation continues, but it soon fails with the following error:
[...] info: Downloaded file 13 of 14 info: Downloaded file 14 of 14 error: Error: adb:preparesystemimage: Error: {"error":{"code":1,"cmd":"adb -P 5037 shell mkdir -p /cache/recovery"},"stderr":"mkdir: '/cache/recovery': Operation not permitted"} stack trace: Error: {"error":{"code":1,"cmd":"adb -P 5037 shell mkdir -p /cache/recovery"},"stderr":"mkdir: '/cache/recovery': Operation not permitted"} at /tmp/.mount_ubporthyGI7P/resources/app.asar.unpacked/node_modules/promise-android-tools/lib/module.cjs:117:20 at ChildProcess.exithandler (child_process.js:319:5) at ChildProcess.emit (events.js:315:20) at maybeClose (internal/child_process.js:1021:16) at Socket.<anonymous> (internal/child_process.js:443:11) at Socket.emit (events.js:315:20) at Pipe.<anonymous> (net.js:674:12)
In the dialog box titled "Yikes!", there is a "Try again" button. I pressed it but it resulted in the same error.
-
@phandersson : I don't own this device, nor have any knowledge of Open Suse. I'm on Ubuntu, but in my case studying the logfiles in .cache/ubports (on PC) proved useful. There were more errors.
-
@alter
Thanks for the tip.
Here is the relevant section from the log file:[...] {"level":"info","message":"Downloaded file 14 of 14"} {"level":"verbose","message":"running core action write"} {"level":"verbose","message":"running adb action wait"} {"level":"command","message":"exec: {\"cmd\":[\"adb\",\"-P\",5037,\"wait-for-any-any\"]}"} {"level":"command","message":"exec: {\"cmd\":[\"adb\",\"-P\",5037,\"get-state\"],\"stdout\":\"recovery\"}"} {"level":"verbose","message":"running adb action preparesystemimage"} {"level":"command","message":"exec: {\"cmd\":[\"adb\",\"-P\",5037,\"shell\",\"mount -a\"],\"error\":{\"message\":\"Command failed: adb -P 5037 shell mount -a\\nmount: '/dev/block/platform/soc/c0c4000.sdhci/by-name/vendor_b'->'/vendor': No such file or directory\\nmount: '/devices/soc/c084000.sdhci/mmc_host*'->'/storage/sdcard1': No such file or directory\\nmount: '/dev/block/bootdevice/by-name/modem_b'->'/vendor/firmware_mnt': No such file or directory\\nmount: '/dev/block/bootdevice/by-name/bluetooth_b'->'/vendor/bt_firmware': No such file or directory\\nmount: '/dev/block/bootdevice/by-name/dsp_b'->'/vendor/dsp': No such file or directory\\nmount: '/dev/block/bootdevice/by-name/persist'->'/mnt/vendor/persist': No such file or directory\\nmount: '/devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto*'->'/storage/usbotg': No such file or directory\\nmount: '/dev/block/bootdevice/by-name/boot_b'->'/boot': No such file or directory\",\"code\":1},\"stderr\":\"mount: '/dev/block/platform/soc/c0c4000.sdhci/by-name/vendor_b'->'/vendor': No such file or directory\\nmount: '/devices/soc/c084000.sdhci/mmc_host*'->'/storage/sdcard1': No such file or directory\\nmount: '/dev/block/bootdevice/by-name/modem_b'->'/vendor/firmware_mnt': No such file or directory\\nmount: '/dev/block/bootdevice/by-name/bluetooth_b'->'/vendor/bt_firmware': No such file or directory\\nmount: '/dev/block/bootdevice/by-name/dsp_b'->'/vendor/dsp': No such file or directory\\nmount: '/dev/block/bootdevice/by-name/persist'->'/mnt/vendor/persist': No such file or directory\\nmount: '/devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto*'->'/storage/usbotg': No such file or directory\\nmount: '/dev/block/bootdevice/by-name/boot_b'->'/boot': No such file or directory\"}"} {"level":"command","message":"exec: {\"cmd\":[\"adb\",\"-P\",5037,\"shell\",\"cat /etc/recovery.fstab\"],\"stdout\":\"# Android fstab file.\\n# The filesystem that contains the filesystem checker binary (typically /system) cannot\\n# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK\\n\\n#TODO: Add 'check' as fs_mgr_flags with data partition.\\n# Currently we dont have e2fsck compiled. So fs check would failed.\\n\\n# A/B fstab.qcom variant\\n#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>\\n/dev/block/bootdevice/by-name/system / ext4 ro,barrier=1,discard wait,slotselect\\n/dev/block/bootdevice/by-name/userdata /data ext4 nodev,noatime,nosuid,barrier=1,noauto_da_alloc,discard,lazytime wait,check\\n/devices/soc/c084000.sdhci/mmc_host* /storage/sdcard1 vfat nodev,nosuid wait,voldmanaged=sdcard1:auto,encryptable=footer\\n/dev/block/bootdevice/by-name/misc /misc emmc defaults defaults\\n/dev/block/bootdevice/by-name/modem /vendor/firmware_mnt vfat ro,shortname=lower,uid=0,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait,slotselect\\n/dev/block/bootdevice/by-name/bluetooth /vendor/bt_firmware vfat ro,shortname=lower,uid=1002,gid=3002,dmask=227,fmask=337,context=u:object_r:bt_firmware_file:s0 wait,slotselect\\n/dev/block/bootdevice/by-name/dsp /vendor/dsp ext4 ro,nodev,nosuid,barrier=1 wait,slotselect\\n/dev/block/bootdevice/by-name/persist /mnt/vendor/persist ext4 nodev,noatime,nosuid,barrier=1 wait\\n\\n/devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto* /storage/usbotg vfat nodev,nosuid wait,voldmanaged=usbotg:auto\\n\\n/dev/block/bootdevice/by-name/boot /boot ext4 ro,barrier=1,discard wait,slotselect\"}"} {"level":"command","message":"exec: {\"cmd\":[\"adb\",\"-P\",5037,\"shell\",\"rm -rf /cache/*\"]}"} {"level":"command","message":"exec: {\"cmd\":[\"adb\",\"-P\",5037,\"shell\",\"mkdir -p /cache/recovery\"],\"error\":{\"message\":\"Command failed: adb -P 5037 shell mkdir -p /cache/recovery\\nmkdir: '/cache/recovery': Operation not permitted\",\"code\":1},\"stderr\":\"mkdir: '/cache/recovery': Operation not permitted\"}"} {"level":"debug","message":"attempting to handle Error: {\"error\":{\"code\":1,\"cmd\":\"adb -P 5037 shell mkdir -p /cache/recovery\"},\"stderr\":\"mkdir: '/cache/recovery': Operation not permitted\"}"} {"level":"error","message":"Error: adb:preparesystemimage: Error: {\"error\":{\"code\":1,\"cmd\":\"adb -P 5037 shell mkdir -p /cache/recovery\"},\"stderr\":\"mkdir: '/cache/recovery': Operation not permitted\"}\nstack trace: Error: {\"error\":{\"code\":1,\"cmd\":\"adb -P 5037 shell mkdir -p /cache/recovery\"},\"stderr\":\"mkdir: '/cache/recovery': Operation not permitted\"}\n at /tmp/.mount_ubporthyGI7P/resources/app.asar.unpacked/node_modules/promise-android-tools/lib/module.cjs:117:20\n at ChildProcess.exithandler (child_process.js:319:5)\n at ChildProcess.emit (events.js:315:20)\n at maybeClose (internal/child_process.js:1021:16)\n at Socket.<anonymous> (internal/child_process.js:443:11)\n at Socket.emit (events.js:315:20)\n at Pipe.<anonymous> (net.js:674:12)"} {"level":"warn","message":"restart after error"} [...]
The last entry shown in the extract ("restart after error") corresponds to the moment I pressed on the "Try again" button.
Two lines before the 'mkdir' command resulting in an "operation not permitted", we can also see that a "mount -a" ends in error, although that one is not considered fatal, apparently.
-
@phandersson : I don't know exactly how to read the file. The first error at command mount -a says “no such file or directory”. That already doesn't sound right. I hope someone here knows a solution for it!
-
@alter Thinking back about the whole sequence, I'm a bit concerned that my first failed attempt at flashing UT (before adapting the udev rules) may have left the phone in an "unexpected" state, which in turn caused the 2nd flashing attempt to fail with these ominous error messages.
It is perhaps best at this point that use TWRP again to put Android9 back on the phone (in both slots), make sure the phone is bootable again, and retry the whole 'ubports-installer' process again.
-
@phandersson : I think I would also start over by doing just that. It seems errors keep popping up. Maybe also try the 0.9.0 version of installer then.
-
@alter Looking at its Changelog, release 0.9.0 seems to be the one that introduced the redesigned "File open" dialogue:
"Implement XDG desktop portals to enable file picker dialogs for manual file downloads in the snap build"
Also, if I understand their respective Changelogs correctly, neither 0.9.0 or 0.9.1 changed anything to the actual phone installation procedure. But please correct me if I'm wrong (or if the Changelog doesn't cover everything).
-
@phandersson : I'm not a developer, but from what I've heard the version with problems is 0.9.1.
-
@alter I can certainly check v0.9.0 as well, since with 0.9.1 I could reproduce the crash without even connecting the phone
Thanks for the suggestion.
-
@phandersson : You're welcome! I hope the UT install will go well for you this time!
-
@phandersson If you feel the need to run through the installer again try with 0.8.8 or 0.8.9. That seems to be solving most of the installer issues at present. https://github.com/ubports/ubports-installer/releases
-
@lakotaubp So just a simple question: As current installer version (0.9.1) seems definitely problematic, should one revert to 0.8.9 in Ubuntu repositories - including Ubuntu Software, Gnome Software, etc...? (Pending a future more stable release).
-
@stanwood At present from what I've seen either 0.8.8 or .9 those seem to work consistently well, yes. A fix has been sorted and should be released soon. How soon not sure.
-
@lakotaubp said in Installer crash when clicking on "Choose file" button:
@phandersson If you feel the need to run through the installer again try with 0.8.8 or 0.8.9. That seems to be solving most of the installer issues at present. https://github.com/ubports/ubports-installer/releases
I re-flashed stock Android9 on the phone and then retried the UBport install yesterday night (with v0.8.8, as there seems to be a consensus around that one). It once again failed at the same point with the same error message (permission denied on "mkdir -p ...").
To me, this doesn't look like an installer problem any more, so I'll open a new thread on that topic in the device-specific forum (Xiaomi Mi A2).
-
As indicated above, I opened a new post in the Xiaomi Mi A2 forum last Friday:
https://forums.ubports.com/topic/6840/ubports-install-fails-with-permission-error-on-the-device
with a lot of extra troubleshooting information.Any hint as to how I should proceed would be most welcome, as I'm essentially stuck at the moment.
-
Problem has been resolved -- phone is now running UT OTA-19 stable.
Details about the fix in the device-specific post (see URL in previous post). I'll now mark this one as resolved as well.
Many thanks to all those who helped.