Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Config Request for Galaxy Note 3 T-Mobile Version (SM-N900T) #46

Closed
OkyDooky opened this issue Dec 27, 2022 · 20 comments
Closed

Config Request for Galaxy Note 3 T-Mobile Version (SM-N900T) #46

OkyDooky opened this issue Dec 27, 2022 · 20 comments
Assignees
Labels
device Request to add or improve a specific device.

Comments

@OkyDooky
Copy link

I mentioned in the other repo that the drivers/firmware for the baseband modem were hard for me to find, but I may have found a few potentially good sources:
https://forum.xda-developers.com/t/new-update-n900tuvufqd2-available.3615614/
https://aiomobilestuff.com/galaxy-note-3-sm-n900t-n900ttmbfol1-firmware/?amp=1
https://forum.xda-developers.com/t/rom-official-11-lineageos-18-1-for-samsung-galaxy-note-3-hlte.4267527/
(Last one is more general, but there might be good information for the config and links to firmware in there)

@tsterbak tsterbak added the device Request to add or improve a specific device. label Dec 29, 2022
@tsterbak tsterbak self-assigned this Dec 29, 2022
@tsterbak
Copy link
Member

Hey, I'll add a config for the device in the next minor release. I'll keep you update about the progress here. Note, that this tool, will not help you with getting back to stock ROM or upgrade any firmware/drivers. It's only intended to flash a custom ROM from scratch.

The Google Pixel 4 XL and the Samsung Galaxy S9+ are currently not officially supported, but support should be very easy to add by adapting the configs for the Pixel 4 or Galaxy S9. You could open a PR for that if you want. Or I could add the configs in the next release and can give it a try then :)

@OkyDooky
Copy link
Author

That sounds good for everything you mentioned.
On the driver/firmware issue, since it's been a few years, is that done using ADB, TWRP, or another one of those tools? I figured flashing a stock ROM and installing different drivers would be something this tool could be capable of, since it sounded like a bundle of the required tools for those tasks, anyways. If that's not doable from a development end, that's fine.

And I'm still waffling back and forth on the phone choice thing, so I'll let you know how that turns out (probably by making the PR for that phone). 😅

@tsterbak
Copy link
Member

tsterbak commented Jan 2, 2023

Yes, the installer bundles ADB, Fastboot and Heimdall (the samungs thing) and works through TWRP. But so far it's only targeted on flashing one-zip OS Images on devices. Since installing a stock ROM is usually pretty vendor dependent, I feel it's hard to generalize. But there might be ways around that :)

In the next minor release, there will be support for the Galaxy Note 3 and Google Pixel 4 XL. (Support for Samsung Galaxy S9+ is still straight forward to add)

@OkyDooky
Copy link
Author

OkyDooky commented Jan 2, 2023

Ah, that makes sense. If it does become doable, I'd say, "go for it." But, it seems your philosophy with this app is to have a tool that works, instead of one that "works if you do it right." There are already tools for people who want to tinker (most already in this one), so it's cool to have one with the aim of having more limited but guaranteed functionality.

Cool! I'm glad to see you mention Pixel 4 XL, because I was going to suggest it anyway after I remembered someone I know who has one and is very privacy conscious and tech-literate but very busy.

tsterbak added a commit that referenced this issue Jan 3, 2023
This PR adds:
- fix for #48 

Support for new devices:
- Fairphone 4
- Samsung Galaxy Note 3 LTE (#46)
- Google Pixel 4 XL
- Google Pixel 3a XL (#38)
- Google Pixel 3 XL
- Google Pixel 3
- Google Pixel 2 XL
- Google Pixel 2
@OkyDooky
Copy link
Author

OkyDooky commented Jan 4, 2023

Oh, I have a "meta" question about asking for device configs: should we also specify what OSes we'd like to be able to flash onto that device? From what I understand, it is a different process to flash on, say, LineageOS or Resurrection Remix versus GrapheneOS or DivestOS, etc., etc. So, would that be taken care of automatically or would you need to manually set it up per config?

tsterbak added a commit that referenced this issue Jan 4, 2023
This PR adds:
- a debug mode (addressing #27)
- basic tests for the full app
- Open Feedback page when finishing the install process
- fix for #48 

Support for new devices:
- Fairphone 4
- Samsung Galaxy Note 3 LTE (#46)
- Google Pixel 4 XL
- Google Pixel 3a XL (#38)
- Google Pixel 3 XL
- Google Pixel 3
- Google Pixel 2 XL
- Google Pixel 2
@tsterbak
Copy link
Member

tsterbak commented Jan 4, 2023

Hey, now the new release with support for the Google Pixel 4 XL and Samsung Galaxy Note 3 is out! 🥳
Give it a try if you want, I'm happy for all the feedback I can get.

@tsterbak
Copy link
Member

tsterbak commented Jan 4, 2023

Oh, I have a "meta" question about asking for device configs: should we also specify what OSes we'd like to be able to flash onto that device? From what I understand, it is a different process to flash on, say, LineageOS or Resurrection Remix versus GrapheneOS or DivestOS, etc., etc. So, would that be taken care of automatically or would you need to manually set it up per config?

The configs are ROM-agnositc and the tool flashes everything that can be flashed through TWRP (currently you can only flash one ROM image and no other things like gapps or magkics with it, this will be added if there is a need for it). The config at this point, is merely there to give device-specific guidance on how to unlock the bootloader, check device specific requirements (as good as possible 😬) and make sure, the tool has probably been tested by someone who added the config.
Note, that the tool doesn't download any ROM or TWRP, you have to bring the images yourself. But the tool tells you where to get the latest LinageOS (if your device is supported) and TWRP (if available in official sources). But the nice thing is you can bring your own unofficial stuff for everything :)
How does that sound to you? Do you see any weaknesses in that approach?

@OkyDooky
Copy link
Author

OkyDooky commented Jan 5, 2023

Honestly, the higher level of support this can give users, the better. But, that also depends on what's reasonable for you and you've already done so much to help move everyone closer to an actual easy-peasy way to do ROM flashing. So, any weaknesses would likely be per level of support you're giving in this app. So, not downloading the ROM is fine, at this point, especially giving a pointer to manually download it.
Not being able to flash on other stuff does seem like a potential barrier for some people. Would this apply also to MicroG and Sandboxed Play services (this is a ROM agnostic approach, which is cool, because it could end GrapheneOS's monopoly on it...too bad the dev of DivestOS doesn't want it >_>)?
I was partly asking about per-ROM configs, because some use Fastboot and some use TWRP.

Feedback

I'll need to get things in order to back up my phone, so it may be a little while, but I will definitely give feedback when I do get around to using this. :)

@tsterbak
Copy link
Member

tsterbak commented Jan 9, 2023

Thank you for your opinion! That is really helpful. :)

For now, I would point people to LineageOS for microG (if they want microg) or PixelExperience (if they want GApps). But hopefully, at the end of the month flashing additional stuff will be possible. I would not recommend it to total newbies, since it will be harder for me to check if everything will be working fine. But at least the tool can move in that direction.

I was partly asking about per-ROM configs, because some use Fastboot and some use TWRP.

What ROMs are only using fastboot at the moment? I'm aware, that a lot of ROMs "officially" use something like the LineageOS Recovery, but so far everything in encountered was easy to install through TWRP. (other than calyx and graphene, which I have not tested with my Installer since they have their own, good installer)

I'm looking forward to your feedback at some point :) There are more features and devices planed for the near future.

@OkyDooky
Copy link
Author

Thank you, as well! I'm glad my feedback has been helpful. This discussion has been really good.

End of the month is a good speed, especially for a project like this. So, don't feel worried about it sounding like a long time (FOSS projects have taught me a lot patience lol). And aiming this towards hobbyists and professionals, like on XDA and such, should be the main ingredient towards making it newbie friendly. They'll battle test and stress test this app and help identify all kinds of edge cases, paper cuts, and rare issues before regular users get a hold of this. Plus, this is what I hope for you, this will get more eyes on and some enthusiasm for this tool and be more likely to attract some qualified contributors to take care of specific issues/needs and distribute the load for the future.

That's true that Calyx and Graphene have their own installer. Although, I don't think DivestOS does. It uses Fastboot for either all or most of its builds. Other than the developer's unwillingness to include any support for any GSF implementation (this discussion explains it), it seems like the next-best-thing to Graphene, since it is built from Lineage and has the potential to support a ton of devices and improve security for them (though, this comment by him says "Divest has compile time support for including MicroG" - but that sounds error prone for someone who doesn't know what they're doing, so hopefully someone else can maintain builds like what the MicroG team does with Lineage...maybe they could do it 😅).

Yeah, once I review methods for backing up my device (the one requested by this thread), then I'll move forward with testing this out. Also, as far as drivers/firmware are concerned, I am not using this as my "phone" phone, so that shouldn't be an issue. 🤞 We'll see!

@OkyDooky
Copy link
Author

OkyDooky commented Mar 3, 2023

Okay. So, I managed to organize and move my data off my phone. I downloaded the latest Ubuntu version (22.10) and used BalenaEtcher to put it onto a thumb stick, then booted into it. But, when I tried to flash on the latest version available of Lineage for MicroG, I got to the "Flash custom recovery" step and it rebooted successfully...and then got this error (from the Advanced output):
>$heimdall flash --no-reboot --RECOVERY /home/ubuntu/Downloads/twrp-3.5.2_9-0-htletmo.img

>Heimdall v1.4.2

>Copyright (c) 2010-2017 Benjamin Dobell, Glass Echidna

>http://www.glassechidna.com.au/

>This software is provided free of charge. Copying and redistribution is

>encouraged.

>If you appreciate this software and you would like to support future

>development please consider donating:

>http://www.glassechidna.com.au/donate/

>Initialising connection...

>Detecting device...

>libusb: error [get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/005/008, errno=13

>libusb: error [get_usbfs_fd] libusb requires write access to USB device nodes

>ERROR: Failed to access device. libusb error: -3

So, some feedback: the "Report a bug" button is absolutely awesome, but the lack of an ability to easily copy the output is not good for anyone (especially non-tech users). Case in point, I hand-typed the above output, so I hope it is close to 1:1.

Next, I tried launching the Appimage through the terminal using sudo. It got me past that error and most of the way through one stage of the process (my phone screen showed a blue progress bar that went all the way to the end)...then crashed. Here are the logs:
OpenAndroidInstaller Console Logs (Attempt 1).txt

Looking at it, there's a ton of lines that looks like a hex dump all from "nouveau." Just before the hex dump, we have a views.step_view:build:121 - Starting step of type confirm_button. Then the next line is:
nouveau: kernel rejected pushbuf: No such device
And then we get the massive dump that takes up the majority of the lines. :/

Is this because I didn't use the suggested LTS release? :( I'm just really hoping I don't brick my phone... 😢

@tsterbak
Copy link
Member

tsterbak commented Mar 3, 2023

Thank you for testing the installer and reporting back! 🙂

So, some feedback: the "Report a bug" button is absolutely awesome, but the lack of an ability to easily copy the output is not good for anyone (especially non-tech users). Case in point, I hand-typed the above output, so I hope it is close to 1:1.

I thought it should be possible to copy the output of the advanced output field. I tested that a while ago. But it might have changed, I will fix that.

It got me past that error and most of the way through one stage of the process (my phone screen showed a blue progress bar that went all the way to the end)...then crashed. Looking at it, there's a ton of lines that looks like a hex dump all from "nouveau." Just before the hex dump, we have a views.step_view:build:121 - Starting step of type confirm_button. Then the next line is:
nouveau: kernel rejected pushbuf: No such device
And then we get the massive dump that takes up the majority of the lines. :/

What exactly crashed? Telling from the logs, it looks like flashing the recovery worked fine and then the installer crashed due to some graphics driver issue (I figure that's what nouveau is). Can you provide further details on the crash to investigate?

Is this because I didn't use the suggested LTS release? :( I'm just really hoping I don't brick my phone... 😢

Telling from the logs, the operating system of the phone should not be altered and the recovery successfully replaced. Did it boot normally afterwards? Let me know if you need any guidance to fix something if it is broken.

Let's see if we can find the issue and fix the installer (and the device if necessary). Also, in general, Samsung phones are quite straightforward to unbrick.

@OkyDooky
Copy link
Author

OkyDooky commented Mar 3, 2023

Thank you for testing the installer and reporting back! slightly_smiling_face

You're welcome!

What exactly crashed? Telling from the logs, it looks like flashing the recovery worked fine and then the installer crashed due to some graphics driver issue (I figure that's what nouveau is). Can you provide further details on the crash to investigate?

Yeah, I guess nouveau is the open source driver for nvidia cards on Linux. Maybe I should try getting the live boot of Ubuntu to use the proprietary drivers, instead.
The crash itself was a simple crash-to-desktop. There really wasn't anything else out of the ordinary to notice, outside of the console logs.

Telling from the logs, the operating system of the phone should not be altered and the recovery successfully replaced. Did it boot normally afterwards? Let me know if you need any guidance to fix something if it is broken.

Thank you for clarifying. Yes, it did boot normally, after I held the power button to force-shut it down and then again to reboot. I will try booting into recovery (thankfully, the Lineage download page tells me how to do that step correctly) and see if the version number is the same as what I downloaded.

Let's see if we can find the issue and fix the installer (and the device if necessary). Also, in general, Samsung phones are quite straightforward to unbrick.

That's very good news. Thank you for working with me on this. I got my Pixel 4 XL, but the OEM unlock switch is greyed out and it is possible it was originally a Verzion phone (the internet tells me they apparently force-lock the bootloader of their Pixels, for some reason). So, I may have to return it and get another one. Anyways, I've been stressing out over my phone situation for several months and I'm very ready, mentally and physically, to just have stuff work. So, your help and quick response is much appreciated.

@OkyDooky
Copy link
Author

OkyDooky commented Mar 4, 2023

Well, another snag: in order to use proprietary drivers in Ubuntu live boot, they have to be downloaded and applied. The problem is applying this requires a system restart...which wipes any changes, because it's a live boot. :/
So, either I'll have to install Ubuntu somewhere or fall back to my current distro, Garuda.

@tsterbak
Copy link
Member

tsterbak commented Mar 4, 2023

Well, another snag: in order to use proprietary drivers in Ubuntu live boot, they have to be downloaded and applied. The problem is applying this requires a system restart...which wipes any changes, because it's a live boot. :/
So, either I'll have to install Ubuntu somewhere or fall back to my current distro, Garuda.

It's also interesting, that the driver crashed... that should not happen 😅
I don't know what distro you are using, but some people also reported it to work on Arch and Manjaro. I have not tested it there and it is build on Ubuntu, but might still work fine. An alternative could be to try a different live version of Ubuntu (20.04/22.04 for the respective released versions of the installer). People also reported that to work. But of course things might still not work everywhere. Let me know how it goes :)

@OkyDooky
Copy link
Author

OkyDooky commented Mar 5, 2023

My current daily driver, Garuda, is a gaming-focused Arch-based rolling release distro (it uses the Linux Zen kernel by default, but also offers regular and hardened kernels). It's pretty good and its features do extend beyond just making gaming easier. It's basically a massively supercharged version of Manjaro, but without the safety of its "training wheels" (the delayed updates Manjaro uses for stability).
I rebooted into the Recovery and it showed the version number matching was the same as the one I downloaded. It did successfully update the recovery!
I will also try one more time from a live boot, but with the LTS version of Ububtu (i'm assuming the 22.04 over the 20.04, since I'm using the latest release of your software). If it doesn't work for the same reason, then the instructions may have to be updated to warn nvidia users. If it does, then it could just be more firm about using the LTS release. 😅

@OkyDooky
Copy link
Author

OkyDooky commented Mar 5, 2023

Alright, so I got to using a live boot of the LTS version of Ubuntu and had the app crash after clicking Continue after it detected the phone already had the correct recovery installed. Then I tried launching it using sudo and managed to get it past that point and started the install process for the actual OS. I had to use the bathroom, so I didn't get to watch the actual process. But, when I came back, the installer said everything was successful and my new OS was installed...except, now the phone won't get past the device logo.
I'm attaching the console logs from this time, as well (the beginning shows some "Error Failed to detect device," but that is because I tapped the button while it was still in download mode -- after that, I rebooted the phone and did the usual steps to have it register: change USB charging to File Transfer mode and then grant the on-screen request for adb):
OpenAndroidInstaller Logs 2.txt
(Weird. The text file wouldn't upload, saying it was an unsupported file type... I just saved it plainly using the Ubuntu Text Editor program, which worked for the last logs I uploaded here. I renamed it to .txt and Github accepted it. Let me know if there's any weirdness in trying to open or read it. Just a heads up)

Okay, so I booted into recovery to try to simply shut my phone down (without restarting) and I got a new screen. It is asking if I want to keep System Read only or if I want to allow system modifications.

@tsterbak
Copy link
Member

tsterbak commented Mar 6, 2023

Oh no! 🙈 You encountered an embarrassing bug! Thanks for finding that one!
In some cases, the sideloading function does not work properly with whitespaces in paths 🤦‍♂️
I will make a new release as soon as possible to fix that...

For your system, the OS should be wiped, so the way to come back is to download adb, boot into recovery, activate sideload mode and sideload the new OS manually with adb sideload .
You can get adb from here: https://dl.google.com/android/repository/platform-tools-latest-linux.zip
(In the zip there will be some executables, it is enough to use the adb executable for your case)

Okay, so I booted into recovery to try to simply shut my phone down (without restarting) and I got a new screen. It is asking if I want to keep System Read only or if I want to allow system modifications.

I guess that's already TWRP and it wants you to swipe right? Then you should do that to get into recovery.

@OkyDooky
Copy link
Author

OkyDooky commented Mar 7, 2023

After a couple attempts, it worked! I kinda wish I was able to do it with your app. But, I think it maybe made flashing on the updated recovery a bit easier. And I'm glad my logs could be of service. Maybe recommend people (using the LTS Ubuntu) launch it from the command line using sudo ./openandroidinstaller and remind them they can launch the terminal from the folder using right-click. (Want me to open an issue for that on the other repo?)

Well, my phone is much shinier and newer, on the inside. 😄 Thanks for your help! I'll tell others about this, so they can update their own phones.

@tsterbak
Copy link
Member

tsterbak commented Mar 7, 2023

I'm happy it worked out for you in the end! 🙂 Next time the app will also work 😅

Feel free to open a PR on the website repo and suggest what you would change 🙂
Thanks a lot for your patience and detailed feedback.

@tsterbak tsterbak closed this as completed Mar 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
device Request to add or improve a specific device.
Projects
None yet
Development

No branches or pull requests

2 participants