yashsingh1/xdaforums huggingface dataset:
[Android Software/Hacking General [Developers Only]] Boulotaur2024:
I don't think I ever rebooted during the whole process (I pretty much forgot already lol)

But I seem to remember people -on another thread- who mentioned about the necessity of rebooting after issuing the command

Oh and I found your thread, well I guess I googled for "odin linux", good ranking lol
[Android Software/Hacking General [Developers Only]] brubblu:
Welp I got to the end of the procedure, no error whatsoever, but Odin does not recognize my device (Samsung galaxy tab S7 - SM-T785). Got the usual "setting your device" message in the notification area, but Device Manager shows a generic "Android" device under "Other Devices", with the usual yellow triangle showing a problem with drivers. This is now resolved, probably by changing ports.

My specs:

Linux Mint 20.3 (Cinnamon 5.2.7)

My machine is a dell Optiplex 3060 micro

My tablet is a SM-T875 with unlocked bootloader (before anyone asks, it is recognised in Linux, both in adb devices as well as fastboot devices)

VirtualBox version 7.0.6 (latest available from Oracle main site)

Odin v3.13 as per this guide.

Here is what I tried:

install VirtualBox Guest Additions

Updating Windows

Update drivers, both via device manager as well as Windows Update

Update the driver manually (select from list). I just selected 2 generic Samsung Android Bootloader Interface drivers from the list. Always rebooting inbetween

changed ports and cable

installed android sdk

When I put my phone in download mode, nothing happens. Odin is not showing any device.

The solution:

This is what I did wrong:

Didn't put it in download mode, just regular fastboot. Now Odin sees my device.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Glad it worked for you! Yes, Odin can be picky about USB ports. :)
[Android Software/Hacking General [Developers Only]] DonutsAreGood:
Thanks so much for creating this guide. It's been a while since I last used VirtualBox, so I found it very useful.

The only slight problem I encountered was that Odin couldn't initially setup a connection for flashing, even though the Odin log showed the device had been added. I fixed it by closing Odin, unplugging as many USB devices as possible, then restarting Odin.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Thanks for your feedback! :)
[Android Software/Hacking General [Developers Only]] DonutsAreGood:
You're most welcome.

I'm very grateful, because after wasting hours trying to use Heimdall, I used your guide to help unbrick my phone.

It's my first go at trying to root, and I've found it's a very steep learning curve. With your help I got my bricked phone back to the official Samsung setup screen. Now I know I can do that I'll be more confident about having another go at rooting it.

If I'd had to pay someone to recover my phone then that would have probably ended my experiments with rooting.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Are you (trying to) using Magisk?
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Look at Magisk's official Installation Instructions.
[Android Software/Hacking General [Developers Only]] DonutsAreGood:
Yes, I was following a YouTube guide, and it all worked well until I tried to use Heimdall instead of Odin. I started a couple of other threads about my woes, before finding your excellent guide on how to use Odin on Linux with VirtualBox.

This is the guide I was using:

I still have the patched AP file I produced on my phone using Magisk, but I bricked the phone trying and failing to use Heimdall.

Since unbricking earlier I haven't yet tried using the patched AP file with Odin. I'm hoping it will work, but if it doesn't then at least I can flash it back to OEM with the original AP file.

I did find another guide on here, which involves flashing just one smaller file using Heimdall instead of the entire firmware, but I haven't tried that. It's this post here:

https://xdaforums.com/t/i-have-a-sa...vated-never-used-debug.4425239/#post-87772055

Although I didn't manage to unbrick my phone using Heimdall, I did have some success flashing individual partitions, so I'm wondering if just flashing a patched boot.img file using Heimdall would work. But to be honest I'm so new to Android I don't really know what I'm doing.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
I would just follow the official instructions. They are step-by-step and I have followed them with no issues to root my phone. Honestly, it really isn't too hard to follow.
[Android Software/Hacking General [Developers Only]] brubblu:
By the way, thank you so much for creating the guide. I have successfully rooted my galaxy tab S7!

Now that I think about it at first device manager showed a generic "USB HUB" with yellow triangle, but I solved it by removing the USB cable beetween my pc and monitor (my monitor has a few USB ports, so kind of a HUB).

Now I just have to wait for SM-T875 version of TWRP (y)
[Android Software/Hacking General [Developers Only]] DonutsAreGood:
Success! I am now able to become SuperUser in ADB shell, so I have achieved my main objective.

Now I just have to work out how to stop the Service Provider Update popup that asks me to Restart to install updates. Even when I click restart it doesn't actually restart, and doesn't appear to do anything.
[Android Software/Hacking General [Developers Only]] DonutsAreGood:
Thought I might as well add a bit more detail, just in case anyone else experiences something similar:

I'm using a laptop, so some of my USB devices can't be unplugged, such as camera, touchpad, and card reader.

I only have two externally accessible USB sockets. Unplugging my external mouse so that only the phone was connected allowed Odin to establish a connection.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Thanks! Glad it worked for you.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Nice work! I know, having root capability with the shell is really nice. For example, you can actually delete system apps with root, not just freeze them. Also, you don't only have to use ADB for a rooted shell on your device; you can also use Termux - It's an open-source terminal emulator app that can also take advantage of root. I have even used it with BusyBox for terminal-based applications that are actually designed to run on Linux.
[Android Software/Hacking General [Developers Only]] DonutsAreGood:
I just want to uninstall most of the Google apps. Partly because I don't like all the data collection, and partly to extend battery life because I'm sure there's a lot of unnecessary stuff running in the background.

I did try running logcat on adb after uninstalling all of the pre-installed apps that I don't want. With the phone at idle, pretty much all the activity in logcat seems to relate to vaultkeeper.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Have you had success uninstalling Google apps then?
[Android Software/Hacking General [Developers Only]] DonutsAreGood:
Yeah, I uninstalled a lot of Google and Samsung apps. Top of my list was Google Play Services, because that's allegedly the app that feeds all the other app data to Google.

I'm sure that uninstalling so many apps will break a lot of things, but I really don't care. To me my phone is just a phone, a browser, and a handy camera. I don't want or need most other apps, particularly as most seem to exist to harvest user data that can then be sold. There's no such thing as a free app!
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Yep, Google Play Services is the worst out of the lot. I mean, look at what permissions it has:

Go to https://play.google.com/store/apps/details?id=com.google.android.gms&pli=1,

Click on the arrow next to "About this app",

Click on "View details" under "Permissions",

Look at how Google Play Services, an app with over 10,000,000,000 downloads, infiltrates people's lives!

That's what I always say.

If you're interested in privacy-oriented alternatives and stuff like that I've invited you to a conversation I'm having with a few other users.
[Android Software/Hacking General [Developers Only]] a7md8762:
Hello.

I can't get Odin to detect my device (Samsung Tab A7) even though I did everything right, What Do I do to make Odin detect my device?
[Android Software/Hacking General [Developers Only]] bmwdroid:
Sorry to ask but if you would describe fully! what you did we all can be sure that it was correct.

It's very hard for us to guess as we are not present at your place.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Right now he's troubleshooting it with me over PM, but I will move our discussion over here so you (and others) can suggest things as well.
[Android Software/Hacking General [Developers Only]] a7md8762:
This Should Explain What's My Problem.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Try Odin 13.3.1 too, instead of 3.14.4, just to be sure that's not the issue.
[Android Software/Hacking General [Developers Only]] a7md8762:
Do You mean 3.13.1?

yes, I Tried That Too, Same Problem.

Btw, Do You Have Discord?

So We Can Disguse This Problem There.
[Android Software/Hacking General [Developers Only]] a7md8762:
These Are My VM Settings:
[Android Software/Hacking General [Developers Only]] a7md8762:
And This Is Me Testing The Two Versions, And Still The Same Problem:
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Okay. Negative, I don't have Discord.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
I'm assuming this is a problem with the Samsung drivers, as Windows itself appears to see the device. You said you installed the drivers, right?
[Android Software/Hacking General [Developers Only]] a7md8762:
Yes, I'm Very Sure That I Installed Samsung Android USB Driver.
[Android Software/Hacking General [Developers Only]] a7md8762:
When I Remove Samsung Android USB Driver, Windows Can not See My Device, But When I Install It Again, Windows Sees it...

I Wanna Ask A Question, Is USB Debugging Necessary Needed? I Don't Think So, Because When The Device Enters Download Mode, It Gets Enabled, Correct Me If I'm Wrong.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
I believe so.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Honestly I would just try installing a normal Windows VM as per the tutorial because I'm thinking that's the issue. It may or may not work, but at least try it.
[Android Software/Hacking General [Developers Only]] a7md8762:
Nope, I'm Not Going To Install A Normal Windows 10 To Flash My Device.

My Windows OS (Atlas OS) Sees My Device, So It's Not From The OS, It's Probably From Odin Itself, Like It Seems Odin Isn't Allowed To Interact With Connected Devices, That's Why It Can't See It.

Btw, Is There Requirements For Odin Or Samsung Android USB Driver? Like Do They Need A Specific Library Or Driver To Work?
[Android Software/Hacking General [Developers Only]] a7md8762:
Hey, JOdin3 For Linux Seems To Be Working With Me, And It Detected My Device!

But I Wanna Add The UserData.img But The UMS Is Locked, What Do I Do To Unlock It?

UMS Is The UserData, Right? Correct Me If I'm Wrong...
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Did you run it as an administrator?
[Android Software/Hacking General [Developers Only]] ethical_haquer:
That's good! I don't recall any UMS, so I'm not sure, you could ask in the JOdin3 thread though. Sorry!
[Android Software/Hacking General [Developers Only]] a7md8762:
Expected Question, Yes, I Did.
[Android Software/Hacking General [Developers Only]] a7md8762:
Well, I Don't Think JOdin3 Works For me, Because It Doesn't Have The Userdata Feature Implemented...

I Tried To Use Heimdall, But It Gives This Error:

ERROR: libusb error -7 whilst sending bulk transfer.

ERROR: Failed to send handshake!

ERROR: Protocol initialisation failed!
[Android Software/Hacking General [Developers Only]] ethical_haquer:
:( Yeah, sadly Heimdall doesn't work really well, especially for newer devices, and JOdin3CASUAL is based off Heimdall. I finally figured out why my tutorial isn't working for you: link. As you said, it's a driver support issue.
[Android Software/Hacking General [Developers Only]] a7md8762:
That's Bad For Me I Guess...

Do You Have Any Idea How To Fix This?
[Android Software/Hacking General [Developers Only]] ethical_haquer:
No, it's just not possible with the way Atlas OS handles this driver, I guess. They said that since it doesn't relate to games it's not something they're going to try to fix. So sadly this won't work with it.
[Android Software/Hacking General [Developers Only]] a7md8762:
That's Sad...

Well, Do You Recommend A Good Liteweight Windows 10?
[Android Software/Hacking General [Developers Only]] ethical_haquer:
I don't use Windows, I use Linux. How insulting! :) I would ask @Privacydroid, as he uses Windows and also has a tutorial on ripping the crap out of Windows: link.
[Android Software/Hacking General [Developers Only]] a7md8762:
I Know You Use Linux, But I Asked If You Knew Any Good Windows 10 OS, Not Trying To Insult Anyone Here Haha.

Again, I Wanna Thank You For Standing With Me, And Trying To Solve My Problem!

I Really Appreciate It! You Are A Great Person!

Have A Good Day!
[Android Software/Hacking General [Developers Only]] a7md8762:
I Tried Tiny10 Windows OS, Same Problem...

Same As Atlas OS Problem, The Driver Is Incomplete In The Registry.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Bummer!
[Android Software/Hacking General [Developers Only]] cuynu:
Why need that virtual machine just for Odin3 while Odin4 are running native and perfectly on Linux?

I use Odin4 for flashing my a03s, a750 and s21fe and there is no problem here, it's only inconvenient when we have to type the command manually. Odin4 don't even need to install drivers unlike using an virtual machine with ugly driver install steps
[Android Software/Hacking General [Developers Only]] ethical_haquer:
I know about Odin4, but it's proprietary so I didn't trust it enough. :ROFLMAO: Thor flash tool sounds like a viable alternative though, and I'm currently working on creating a GUI for it: link.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Thor GUI is a thing now, albeit in an Alpha stage: link. The hardest part of using it is actually installing .NET and Thor. Eventually it will be able to perform the installs by itself though. Let me know if you have any suggestions and/or complaints if you try it out! :)
[Android Software/Hacking General [Developers Only]] C96Cyrix:
I got Thor up and running (oops, user error) but every time I attempt to connect through the GUI I get this thrown at me: "Failed to open the device for RW: Permission denied (13)". Whereas, this doesn't happen through normal command line Thor; is a permission not getting passed through?
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Hmm, that is very interesting.

So are you running Thor with sudo in the terminal? Thor GUI doesn't run Thor with sudo, so that could be it.

What OS are you using?

What distro?

What version of Thor and Thor GUI are you using?

Where are you getting the error? In the "Log" tab, or in the terminal where you ran Thor GUI from?

Sorry for all of the questions! :)
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Oh! I see, you're the one you was having a hard time getting Thor to detect your device. :ROFLMAO:

How did you end up getting it working?

At first I was like, what?
[Android Software/Hacking General [Developers Only]] C96Cyrix:
Sorry if my message was a bit confusing; the user error wasn't related to this issue.

Fedora 38 Workstation, latest versions of Thor/Thor GUI out there. In the console area, it throws the "Failed to open the device for RW: Permission denied (13)" error at me.

This is when I try to connect to a device I want to flash; however Thor without the GUI has no issue. (No, i'm not running the GUI with sudo; i've tried it it in a troubleshoot attempt, but it failed to launch entirely with sudo.)

On an unrelated note, it seems to detect a Galaxy A10e as a Galaxy SII in Thor? Slightly curious about that. (I can throw an A13 5G/S21 FE 5G in download mode and test if this is a visual bug.) EDIT: It did the same with the S21 FE, it's visual it seems. However I do get the same error with the S21 FE.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Yes, I know. I was just confused at first when your post said "I got Thor up and running (oops, user error)", like you were continuing a conversation with me, because I didn't remember seeing you before. Then I looked at the Thor thread and was like, Oh!

Anyways, let's try to figure this out. :)

Alright, so Thor v1.0.4 and Thor GUI Alpha v0.3.1 then.

Just to be sure, which of these are you talking about when you say "console"? (sorry again 😊)

_____ _ ____ _ _ ___
|_ _| |__ ___ _ __ / ___| | | |_ _|
| | | '_ \ / _ \| '__| | | _| | | || |
| | | | | | (_) | | | |_| | |_| || |
|_| |_| |_|\___/|_| \____|\___/|___|

Alpha v0.3.1

Started Thor

or

Thor GUI runs Thor with this command:

dotnet {path_to_thor}

path_to_thor is what you should have edited on line 38, per the installation instructions. So are you running Thor in the terminal from the same directory as the one you put as path_to_thor?

In other words, if your path_to_thor is "/home/DokiDokiYandere/Thor/TheAirBlow.Thor.Shell.dll", are you running Thor in the terminal with:

$ dotnet /home/nah/Thor/TheAirBlow.Thor.Shell.dll

Using the "Connect" button in Thor GUI?

This happens with everybody, including me. :ROFLMAO: It's an issue with Thor, but it doesn't affect the functionality.

What I really need is:

The output from the "Log" tab in Thor GUI, after you try to connect your device.

The output of Thor GUI from the terminal (starts with the text "Thor GUI" in big letters), after you try to connect your device.

What is your path_to_thor? Just copy/paste line 38 of Thor_GUI.py.

What command are you using to run Thor normally in the terminal?

Hopefully this will get me closer to figuring out why it won't work for you.

Thanks for answering all these questions!
[Android Software/Hacking General [Developers Only]] C96Cyrix:
That would be the console area, yes.

When starting thor without the GUI, i'm just using "./" (essentially a shortcut for starting executables), and when running with the GUI i'm starting it with the "python3" command. And the "path_to_thor" is correct in both instances (I am navigating to the folder in Dolphin, and starting terminal from the right-click Dolphin menu. Meaning it's at the correct dir from the start)

Yes, this is the only situation I am having the "Failed to open the device for RW: Permission denied (13)" with.

On it. As stated above, I am navigating to the folder in Dolphin (so it's at the correct directory starting terminal from the right-click menu), and using "python3 Thor_GUI.py" (for Thor_GUI, non-sudo) and "./TheAirBlow.Thor.Shell" for non-GUI (usually with sudo, however it does work without sudo the same.)

As for my path, it is this. "/home/(real-name)/Pictures/Linux/TheAirBlow.Thor.Shell.dll"

EDIT: Log information.

"Welcome to Thor Shell v1.0.4!

Successfully loaded "usb.ids" from cache.

⣷ Please be patient, loading device name database...

Type "help" for list of commands.

To start off, type "connect" to initiate a connection.

~~~~~~~~ Platform specific notes ~~~~~~~~

You have to run Thor as root or edit udev rules as follows:

1) create and open /etc/udev/rules.d/51-android.rules in an editor

2) enter SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666",

GROUP="YourUserGroupHere"

Additionally, you may have to disable the cdc_acm kernel module:

1) To temporarily unload, run "sudo modprobe -r cdc_acm"

2) To disable it, run "echo 'blacklist cdc_acm' | sudo tee -a

/etc/modprobe.d/cdc_acm-blacklist.conf"

shell>

connect

Choose a device to connect to:

> GT-I9100 Phone [Galaxy S II] (Download mode) (ID 003:032)

Cancel operation

Choose a device to connect to:

> GT-I9100 Phone [Galaxy S II] (Download mode) (ID 003:032)

Cancel operation

~~~~~~~^

Failed to open the device for RW: Permission denied (13)

shell>

connect

Choose a device to connect to:

> GT-I9100 Phone [Galaxy S II] (Download mode) (ID 003:032)

Cancel operation

Choose a device to connect to:

> GT-I9100 Phone [Galaxy S II] (Download mode) (ID 003:032)

Cancel operation

~~~~~~~^

Failed to open the device for RW: Permission denied (13)

shell>"

And heres the terminal information.

"

_____ _ ____ _ _ ___

|_ _| |__ ___ _ __ / ___| | | |_ _|

| | | '_ \ / _ \| '__| | | _| | | || |

| | | | | | (_) | | | |_| | |_| || |

|_| |_| |_|\___/|_| \____|\___/|___|

Alpha v0.3.1

Started Thor

Sent command: 'connect'

{'GT-I9100 Phone [Galaxy S II] (Download mode) (ID 003:032)'}

Sent command: 'connect'

{'GT-I9100 Phone [Galaxy S II] (Download mode) (ID 003:032)'}"
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Thanks a lot! Yeah, for some reason Thor doesn't get the permissions it needs in this case.

The only thing I can think of is to change the way Thor GUI runs Thor from "dotnet {path_to_thor}" to {path_to_thor}. For me, they both work, but for you, the second option may solve this issue.

I'm going to need you to edit your 'path_to_thor' to:

"/home/(real-name)/Pictures/Linux/TheAirBlow.Thor.Shell".

Notice that you just need to remove ".dll" from the end of it.

Then, I need you to edit this line:

"Thor = pexpect.spawn(f'dotnet {path_to_thor}', timeout=None, encoding='utf-8')".

It should be somewhere around line 90. It needs to be changed to:

"Thor = pexpect.spawn(f'{path_to_thor}', timeout=None, encoding='utf-8')".

You just need to remove the "dotnet " part.

Basically, these changes will run Thor just like you have been successfully running it, so it may work. Once again, thanks for answering all of my questions!
[Android Software/Hacking General [Developers Only]] C96Cyrix:
Unfortunately, the issue is still present.. the permission error is still there. I might just get a live boot disc and try it on a different distro as Fedora does NOT seem to be liking it.
[Android Software/Hacking General [Developers Only]] ethical_haquer:
That's so weird! I'll have to keep looking into this.
[Android Software/Hacking General [Developers Only]] C96Cyrix:
Any other information you'd like to get from me? Currently trying to find a distro to try on Live USB (that lets me install pip + isn't purely an installation image. I'm 1/3 on live images so far, oops.)
[Android Software/Hacking General [Developers Only]] ethical_haquer:
Sure! :) Let's try having Thor GUI run Thor with sudo.

You can revert the other changes I had you make, or just keep them, but edit the

"Thor = pexpect.spawn(f'dotnet {path_to_thor}', timeout=None, encoding='utf-8')" line by adding sudo to it. So either:

"Thor = pexpect.spawn(f'sudo dotnet {path_to_thor}', timeout=None, encoding='utf-8')"

or, if you left the other changes:

"Thor = pexpect.spawn(f'sudo {path_to_thor}', timeout=None, encoding='utf-8')"

Then we have to modify Thor GUI to enable the Command Entry when it detects "sudo".

Edit the line "if 'shell>' in clean_line:" (somewhere around line 205, in the scan_output function) to be:

"if 'shell>' in clean_line or 'sudo' in clean_line:".

Then run Thor GUI (normally, without sudo), click the "Start Thor" button, and the "Log" tab should ask for your password. Enter your password into the Command Entry (upper right corner of Thor GUI, directly under the "Start Thor" button) and hit "Enter" (on the keyboard). Thor should then start up as usual, and you can proceed to trying to connect your device.

Just be aware that your password will be visible in the Command Entry when you type it in, and your password will also be shown in the terminal, as "Sent comand: 'your_password' ".

I know it's pretty hacky, but if it works then I'll implement this into the next release. Thanks again!