ubports / ubports-installer

A simple tool to install Ubuntu Touch on UBports devices
https://github.com/ubports/ubports-installer/releases
GNU General Public License v3.0
543 stars 120 forks source link

Installer Feedback - Directions, User Experience #888

Closed b961Rzf8gnkfMw closed 5 years ago

b961Rzf8gnkfMw commented 5 years ago

I just installed UBPorts, aka Ubuntu Touch on a OnePlus One which I bought specifically for the purpose. I have never flashed an OS to a phone before. I've been using an iPhone for over a decade.

A little about me: I do use Linux on my own computer. I am concerned about privacy and follow the recommendations on privacytools.io.

I think the Installer would be better if it provided more feedback to the user. I found myself questioning constantly if it was working correctly. Turns out it wasn't.

In the directions for the OnePlus One, it says to hold volume up and power to enter Recovery Mode. That's actually incorrect. Fastboot (is that the same as Bootloader mode?) is volume up + power, but Recovery mode is volume DOWN plus power.

The OnePlus One will NOT enter fastboot mode while connected to the computer. It will just eventually shut off after holding the power button for about 30 seconds or so. You have to disconnect it to enter Fastboot, and then reconnect it. Your computer itself won't recognize that the device is connected, however. But the fastboot utility WILL be able to recognize it.

I know this because I was so confused and frustrated with the Installer, that I eventually gave up and went for the manual installation instructions. I liked this much better because as I entered the commands in the command prompt, I could actually see whether it was working or not.

By the way, the manual directions leave MUCH to be desired. What in the world are LF line endings? I was using Windows to follow the manual directions (after trying the installer in both Windows and Manjaro Linux - by the way, you guys are aware that not everyone uses Ubuntu, right? And that Ubuntu sudo commands don't work in other distros like Manjaro?) Anyway, to create the commandfile text file, after many other methods didn't seem to work (or did they?), I tried using Notepad ++, but I couldn't see how to save it with LF line endings. So I finally created the file in Linux using Kate (KDE) and emailed it to myself and put it in the correct directory. But then that command still wouldn't work until I added the .dat to the filename. Then it apparently ran.

Then I ran the command to restart the recovery device.......and nothing happened on the device. It just restarted to the strange Ubuntu OnePlus One logo which means basically nothing. Or does it? Since I had literally no idea what to expect, I had to guess that this wasn't the correct behavior. But since I wasn't sure, I waited. And waited. And waited. I figured after a while that it didn't work.

So then I tried running the Installer app again, since I felt like at this point I had a better idea what to expect. This was because I had learned from using the command line that adb can't recognize devices in fastboot mode, but typing "fastboot devices" in the command line DOES show the device. So I just tried everything all over again. This time, I did finally get the OS flashed to the device, though it took several attempts because the device kept losing the connection.

TL;DR Installing Ubuntu Touch on my device was a horrible and frustrating experience that took about 7 hours for someone who has installed Linux multiple times and is fairly computer savvy. I think the manual directions actually make more sense, but they still need to be corrected because I ultimately was not successful with that method in the end.

This was done using a OnePlus One device with Cyanogen installed.

This was also posted on Reddit: https://www.reddit.com/r/Ubports/comments/d7eiju/ubports_installer_feedback/

aclifton314 commented 5 years ago

Hey @b961Rzf8gnkfMw, were you able to flash the OnePlus One device using the installer? Also, were you ever able to get your phone recognized by ubuntu/linux?

b961Rzf8gnkfMw commented 5 years ago

Yes. But not initially. Only after I followed all the manual directions (which didn’t work).

So I tried the installer multiple times. Couldn’t figure it out.

Then tried manual. Got all the way through. Didn’t take.

Back to installer - NOW it worked for some reason. Maybe just because going through the manual process helped me understand the whole thing better? Like I said, I was confused most of the time because I didn’t know what to expect from the process. I kept wondering if it was working.

The video of the installer is very misleading. You should have a write up that walks users through the installer, describing what should happen and how long it should take. Then if that’s not happening, you know there’s a problem.

I think all the glowing praise for the installer is mostly from people who have done it manually before.

One big thing was that my laptop no longer saw my device in fastboot, and I had to disconnect it to put it into fastboot. So I’d be confused when I’d plug it back in and it wouldn’t be seen.

But the command line showed me that while adb didn’t see it, fastboot did.

Stuff like that is a secret mystery to a first timer, and the installer doesn’t walk you through that.

Sent from my iPhone

On Sep 22, 2019, at 10:34 PM, alex notifications@github.com wrote:

Hey @b961Rzf8gnkfMw, were you able to flash the OnePlus One device using the installer?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

aclifton314 commented 5 years ago

@b961Rzf8gnkfMw Thanks for your feedback. Interesting you had to go back and forth to finally get your OPO working.

I posted a detailed walk through of what I tried for my OPO, to no avail. My biggest problem was that I could not get Ubuntu or the installer to recognize the device had been plugged in. I don't know if there were permission issues but I'll probably go through and sort that stuff out (does the USB cable definitely transfer data, are the usb ports good, can any device be recognized, etc.).

What was interesting was that I began the manual instructions, and when I got to the part where one has to confirm if the adb connection works, I was unable to get the connection working. So I stopped there. I tried to press on but fastboot oem unlock just displayed a message like "waiting for any device to be connected."

As a last attempt for the day, I did a factory reset on the phone but then realized it was late at night and I needed to turn in for the night, hahaha. I suppose I'll give it another go after the factory reset to see if that helped.

I wanted to ask you:

  1. What were the linux versions you were using?
  2. Which version of the UBPorts installer did you use?
  3. Which version of Android was installed on your OPO before flashing?
NeoTheThird commented 5 years ago

Hey there, i appreciate you taking the time to write up detailed feedback. We are very painfully aware that the installer is not perfect and are working constantly to improve it. I agree that the instructions still leave much to be desired and i know that there are still many issues. Working on it.

So why is it so problematic to create an installer that just works and properly directs inexperienced users? That is because there is no case like the other. Every device model, every previously installed device os, every recovery image and every computer running the installer behave differently from one another. The installer can not make any assumptions.

This makes it also incredibly difficult to write up what the user should expect to see and what steps are required. For example, some devices have a visual indication and actual usable menues when in fastboot/bootloader mode, while others just show the bootlogo. Some devices accept fastboot and adb commands for rebooting from recovery to bootloader and vice versa, others do not. And don't get me started on button combinations. You would not believe the world of pain i live in.

Writing a billion different guides for all possible edge cases (and keeping them updated) is not the way i want to go. I am confident that we can actually deliver on the promise of making the installer completely self-explanatory, it just needs a little more time.

To reconstruct what happened to you @b961Rzf8gnkfMw: You were hit by a variation of #806, where the installer did not manage to perform the oem-unlock and got stuck in a weird state. After running the manual instructions, which includes the oem-unlock step, the installer did not walk into that problem and continued successfully.

By the way, the manual directions leave MUCH to be desired. What in the world are LF line endings?

Yes, that is kind of a stupid issue, actually. There are two different kinds of codes for the end of a line in a text file (CR and LF), which Windows and unix-like operating systems handle differently from one another. That instruction needs to be clearer. But this is also a case where you don't want to overwhelm people with too much text, which then often does not get properly read...

b961Rzf8gnkfMw commented 5 years ago

Yeah, I appreciate that it must be difficult. I guess I understand why Apple wants to own everything from hardware to software.

For the LF line endings, why don't you put the proper file on Github and let people download it instead of creating it themselves?

On Thu, 26 Sep 2019 19:03:36 -0700 Jan Sprinz notifications@github.com wrote:

Hey there, i appreciate you taking the time to write up detailed feedback. We are very painfully aware that the installer is not perfect and are working constantly to improve it. I agree that the instructions still leave much to be desired and i know that there are still many issues. Working on it.

So why is it so problematic to create an installer that just works and properly directs inexperienced users? That is because there is no case like the other. Every device model, every previously installed device os, every recovery image and every computer running the installer behave differently from one another. The installer can not make any assumptions.

This makes it also incredibly difficult to write up what the user should expect to see and what steps are required. For example, some devices have a visual indication and actual usable menues when in fastboot/bootloader mode, while others just show the bootlogo. Some devices accept fastboot and adb commands for rebooting from recovery to bootloader and vice versa, others do not. And don't get me started on button combinations. You would not believe the world of pain i live in.

Writing a billion different guides for all possible edge cases (and keeping them updated) is not the way i want to go. I am confident that we can actually deliver on the promise of making the installer completely self-explanatory, it just needs a little more time.

To reconstruct what happened to you @b961Rzf8gnkfMw: You were hit by a variation of #806, where the installer did not manage to perform the oem-unlock and got stuck in a weird state. After running the manual instructions, which includes the oem-unlock step, the installer did not walk into that problem and continued successfully.

By the way, the manual directions leave MUCH to be desired. What in the world are LF line endings?

Yes, that is kind of a stupid issue, actually. There are two different kinds of codes for the end of a line in a text file (CR and LF), which Windows and unix-like operating systems handle differently from one another. That instruction needs to be clearer. But this is also a case where you don't want to overwhelm people with too much text, which then often does not get properly read...

b961Rzf8gnkfMw commented 5 years ago

I found that my computer would recognize when the phone was plugged in - at first. However, I had to unplug the phone from the computer in order to boot into fastboot. Then once in fastboot, my computer (i.e., in Windows 10 file explorer) would not recognize that the device was plugged in. However, when I used the manual directions, I actually COULD confirm that the computer could see the phone, even though File Explorer couldn't tell it was there. You have to run the command for fastboot to list devices, and you'll get a device number indicating that it recognizes that something is plugged in.

Also, another commenter says that I ran into issue 806 where the OEM doesn't actually get unlocked. I was totally confused about this step, because the directions say to do this, but I didn't have that particular setting in my phone, so I couldn't do it. Turns out it's something the computer does or can do. I'm totally confused about that part though.

However, if you follow all the manual instructions, even if THOSE instructions don't ultimately work, the installer will work afterwards.

My Linux: Operating System: Manjaro Linux KDE Plasma Version: 5.16.4 KDE Frameworks Version: 5.61.0 Qt Version: 5.13.0 Kernel Version: 5.1.21-1-MANJARO OS Type: 64-bit Processors: 8 × Intel® Core™ i5-8265U CPU @ 1.60GHz Memory: 31.3 GiB of RAM

However, note that I didn't actually accomplish anything in Linux. I ultimately did everything in Windows.

UBPorts Installer: 0.2.7-beta.526

Android: No idea. Cyanogen something or other. I bought a phone online, got it in the mail one day and installed UBPorts the next day. I guess it had a factory reset performed before I bought it.

On Wed, 25 Sep 2019 06:48:04 -0700 alex notifications@github.com wrote:

@b961Rzf8gnkfMw Thanks for your feedback. Interesting you had to go back and forth to finally get your OPO working.

I posted a detailed walk through of what I tried for my OPO, to no avail. My biggest problem was that I could not get Ubuntu or the installer to recognize the device had been plugged in. I don't know if there were permission issues but I'll probably go through and sort that stuff out (does the USB cable definitely transfer data, are the usb ports good, can any device be recognized, etc.).

What was interesting was that I began the manual instructions, and when I got to the part where one has to confirm if the adb connection works, I was unable to get the connection working. So I stopped there. I tried to press on but fastboot oem unlock just displayed a message like "waiting for any device to be connected."

As a last attempt for the day, I did a factory reset on the phone but then realized it was late at night and I needed to turn in for the night, hahaha. I suppose I'll give it another go after the factory reset to see if that helped.

I wanted to ask you:

  1. What were the linux versions you were using?
  2. Which version of the UBPorts installer did you use?
  3. Which version of Android was installed on your OPO before flashing?

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/ubports/ubports-installer/issues/888#issuecomment-535031731

NeoTheThird commented 5 years ago

For the LF line endings, why don't you put the proper file on Github and let people download it instead of creating it themselves?

That's not how it works. The contents of the file are always changing. The instructions on the installer page are automatically generated to account for that. We could create that file on our infrastructure, but that would be cumbersome.

However, when I used the manual directions, I actually COULD confirm that the computer could see the phone, even though File Explorer couldn't tell it was there.

Being able to see access the files (this is called MTP) and being able to access ADB or fastboot are two different things.

Also, another commenter says that I ran into issue 806 where the OEM doesn't actually get unlocked. I was totally confused about this step, because the directions say to do this, but I didn't have that particular setting in my phone, so I couldn't do it. Turns out it's something the computer does or can do. I'm totally confused about that part though.

So, the OEM lock is a feature that prevents the installation of third-party operating systems from fastboot. Your confusion is understandable: You've fallen prey to another case where not all devices are created equal. The oem unlock step can happen automatically (it's done by sending the fastboot oem unlock command, except that's currently broken as per #806), but on some devices, you have to enable OEM unlocking in the settings first, while other devices do not have that option. I will add a note that that option is not always there in the next update.

b961Rzf8gnkfMw commented 5 years ago

But the "commandfile" instructions make no sense. Even after reading the page on Wikipedia, I still didn't understand what to do. I made a version on Linux, then emailed to myself so I could pull it up on Windows, which thought it was a .dat file. I don't think that worked. I think that's why I couldn't successfully complete the manual instructions. I still don't know what you're actually supposed to do. I know ADB and fastboot are two different things. My point is that I had to disconnect the phone from the computer in order to put it into fastboot mode - which I assumed was the same as "bootloader" mode, which was also confusing - but when I reconnected it to the computer, the computer couldn't provide ANY want to tell me that it was connected until I ran the list fastboot devices from the command line. So I spent a lot of time trying to figure out what to do about the computer not seeing my phone in fastboot mode - when in fact it WAS seeing it. And that was when I was using the installer. I didn't figure it out until I did the manual.