Wednesday 3 July 2024

Rooting : What is the point?

The Question

I was considering rooting the HTC One M8 mobile for some time - I am not sure why!
One reason was that I knew HTC were amenable to unlocking.  Another was that I believe rooting is less popular / possible than it used to be so it may not be something I could do for much longer.
Despite my interest I couldn't see a compelling reason for rooting and finally decided that I would have to try it out to find out if / how it was useful.
Now that I have successfully rooted HTC, I need to find out why!

Common Uses

There are lots of articles with lists of apps for rooted phones.  A lot of them are very old, but a long list from techlog360 is helpful. 

There are many apps to change the UI look and feel and also many more to manage rooting requirements.

Some common uses (with examples in brackets) shown below may well be useful if your mobile is your primary phone, but dont interest me.

1    Remove Bloatware (SystemAppRemover)
2    Improved backup (Titanium backup)
3    Enhance Battery Life (Greenify)
4    File Recovery (Disk Digger)
5    Automate some phone operations (Tasker)
6    Ad Blocker (Adaway)

Ones that I may investigate further

1    Improved file manager (Solid Explorer File Manager)
2    Toolbox (3C All-in-one Toolbox)
3    Web Server (KSWEB)
4    A full Linux GUI Environment (UserLAnd)

Many of these apps are available on the Google Play store.  Often they can function without ROOT capabilities but work better as root.  I haven't checked whether they all work with a HTC One M8.

Alternative App Store

For apps that are not available on Google Play, you can install from an alternative App Store or side load them.  F-Droid appears to be a popular Open Source Store, it isn't available on Google Play so I needed to sideload it which turned out to be very easy.

Step 1 is to download a ".apk" file for F-Droid from its website.  You then click on the file in the download folder and you are asked if you want to install an app from an unapproved source.  Android is somewhat sniffy but allows the install to proceed.  F-Droid can now be used to search for and install other apps.
The only issue I had was that I couldn't access the F-Droid website using https and had to use http: to complete a download on HTC.  The reason, apparently, is that the HTC Android certificate for LetsEncrypt is too old.  I expect a number of these little issues as I proceed.

Command Line

A good starting point for investigations is to work with a Linux shell.  The command line allows you to find your way around the system.   No linux shell is provided so I needed to download a terminal emulator, of which there are many available. Initially I tried Termux, which is very popular and has useful add-ons.  However, it doesn't currently work on HTC due to a bug with the bootstrap component.  Instead I installed Another Term without any issues.


Another Term (AT) works better in landscape mode, otherwise the keys are rather small.  Starting AT you see a familiar command prompt and can start to execute Linux commands.  Type "su" and SuperSU will permit you to change to root privileges, this confirms we can use our root access.

Although AT provides a reasonable shell, the keyboard is small and the screen is very small. 
What we need is remote access.  I looked at the play store and found SSH / SFTP server which seems to have plenty of users.  It installs without problems to HTC.  Once I have setup a user I can start the server and SSH into HTC from WSL as shown below.  Now I start to think of HTC as a computer not a phone.

A quick look at Linux

Signing on via SSH I see that I am assigned a userid u0_a140.
The "df" command shows most of the Android disk layout which is very different from Linux.
Operating System files are stored in /system, applications use /data.
I dont have permissions to list directories.
The commands are cutdown, for example ls is missing most options and there is no man command.
Looking at "user" processes running I can see that there is a separate process for each app which is running.

If I switch to root I can see the disk layout a bit better.  I can also see that /system has some familiar directories and /data/data appears to have storage for each app.

Conclusion

Android is very different from Linux distributions although the basic commands used to control it are the same.  Naturally, it puts no emphasis on making the command line user friendly as its purpose is to manage all the processes running on the phone.  Even though this review was very limited, it gives an idea that we are looking at a complex system managing many functions whilst I am having a look around its innards.

We have now established that we can use a rooted system and have a slightly better understanding of what Android is / does.  However, apart from being able to look at the file structure and files, I havent done anything which requires root privileges.

I need to do more before we can agree that it is useful to have a rooted phone.

 

No comments:

Post a Comment