To Research: Android Rooting

Good Morning from my Robotics Lab! This is Shadow_8472 with a background research project for this week. Let’s get started!

Years ago, I promised myself I would pay closer attention to the terms of service gatekeeping important tech and software (such as operating systems) before using them regularly. To keep my complaint simple: Big Tech inhales data, and it is willing to exploit the least among us to get it. A consequence of my decision has been the inconvenience of having no cell phone since we switched carriers since our old ones weren’t accepted despite still being functional.

The Problem With Android

Android is a dark sheep. While running Linux at its heart, the spirit of free and open source software has been beaten out of it like an abused puppy locked away in Google’s basement. While technically fair game for hobbyists, the search giant’s monopoly on the definitive repository, the Play Store, makes it near-impossible to make a profitable Android product without cooperating with their “quality control” (See Amazon’s Kindle for a/the counterexample).

In addition, much of Android phones’ questionable behaviors (like user tracking) is governed by closed source packages included at Google’s insistence. Some packages are like the keyboard app and can be swapped out as easily as any other app. Others are software libraries built deeper into the system and called on by independently developed apps; these are harder to strip out and replace by their nature, but it is doable if the device is rooted.

Rooting

Root is Linux’s administrator account. A rooted phone is therefore an Android with root permissions restored. Root has the power to remove that news app you never asked for and didn’t want. Root can remove those annoying battery charge caps on an old phone or change the IMEI number on a new one’s modem. Root also has the power to brick your device and turn it into a paperweight if you don’t know what you’re doing.

Manufacturers are understandibly adverse to users with root. They can’t know what they’ve been doing or how security has been compromised by poor choices. They’ll invalidate warranties (as a general rule) on rooted devices, though you are often entitled to an explanation as to how a root job could have caused the damage; rooting will let you blare your music loud enough to damage the speakers, but an accidental damage policy should still cover a screen crack from dropping it in theory.

For my research this week, I located a total of four Android devices I have leave to root as I please. My mission critical device is an LG Stylo 5, but for practice, I have two Samsung Galaxy S7 edge units in addition to my everyday use tablet (Samsung Galaxy Tab A 10.1). As it turns out, big-name flagship products, like my practice articles, have more protections against being rooted than the device I actually care about. I also learned how important it is to know exactly what product you’re dealing with as even the carrier a phone was made for can be the difference between a successful firmware update and bricking.

Just as there are generally multiple software applications for a particular job, so too are there multiple utilities for actually rooting. From what I can tell, the conversation about Android modification is almost exclusively done from the Windows platform, though I do remember reading about a tool for Linux. There is much research remaining.

Takeaway

I have weighted the benefits of an Android phone against Google’s terms and decided that while cell phone access is important, it isn’t important enough to me to carry around their mechanical spy. The cleanest getaway outside a so-called “Linux phone” would be flashing a custom ROM, but I tremble each time I look into that. Replacing the worst offending software is closer to my skill level at this time. I’ve already done so with my main keyboard, and I’m working up the nerve to root and fortify my phone’s privacy.

Final Question

Do you own a rooted Android? What method and tools did you use? What did you do with it once you were done?

I Choose AnySoftKeyboard as My Android Keyboard.

Good Morning from my Robotics Lab! This is Shadow_8472, and today I’m finalizing my decision on an Android Keyboard. Let’s get started!

AnySoftKeyboard (ASK) is not the perfect keyboard for me. As I stated last week, the default (Googled) keyboard that came with my tablet is my control test for user experience. The only visible features I find it lacking are up/down keys and a dark mode. ASK offers both of these, but offers additional features I need to grow into.

Unlike other keyboards I tried, ASK is especially flexible if you don’t move on before you’ve explored the depths of its settings app. Buried within its confines are a number of prebuilt top and bottom key rows – around a dozen each. The most unintuitive feature for me was a list of swipe gestures I could safely ignore if it wasn’t key for switching keyboards on-the-fly. I even found a “developer mode” with 41 different types of text fields to test how the keyboard behaves.

My biggest standing complaint with ASK is the confusion over exactly what is a “language.” Installable ASK languages appear to be plugins for key mapping/dictionary pairs, while Android’s installed languages menu brings up a set of all installed on-screen keyboard programs. ASK’s definition is the better descriptor, but a multilingual end-user who only cares that things work will accept Google’s definition before something more descriptive like “keyboards.”

Special thanks to muneyotxi for showing patience while educating me about ASK’s less obvious features – namely long-pressing the Return key for a faster access to keyboard app switching.

Final Question

AnySoftKeyboard is an almost trivial tweak to Android I would recommend for anyone thinking about digital privacy. What other raw beginner level tips do you have to share?

I look forward hearing your answers on in the comments below or on my Discord server.

I Replaced My Android Keyboard and You Can Too!

Good Morning from my Robotics Lab! This is Shadow_8472 and today I have a side project of the week while I work on something larger. Let’s get started!

My journey to replace the default Android keyboard on my tablet started with the need for an up arrow. I already had left and right (a massive improvement over tap, check, and revise), but no up or down – which would be extremely helpful when using an SSH program I rarely use.

As a note to the unaware: Google collects as much data on you as it can get away with, and they use it for their own profit. Their word suggestions as you type works by sending them your keystrokes and memorizing you well enough to predict your most likely next words. Symbiotic or parasitic relationship? I don’t need this feature, and it is a privacy concern. For me, the answer is parasitic.

Switching to a new keyboard was as easy as installing any regular app. Note that I am preferring F-Droid over installing through a Play Store client. My first find was Unexpected Keyboard, a keyboard with a dark mode and four-way arrows. If only it wasn’t designed around key swiping, I’d be more than content with the ability to hold Ctrl+Shift+left/right to select text.

Shortly afterwards, I found Open Board, a fork of the AOSP (Android Open Source Project) keyboard. It too has a dark mode, but its visual familiarity despite lacking enhancements such as the left/right keys has kept it relevant to my search. My biggest complaint is that the backspace doesn’t play well with Collabora Office, an open source document editor I used this week to write about a page of fiction.

Much later, I tried out AnySoftKeyboard. Where I’ve had a chance to form a full opinion on the first two, AnySoft appears as though it could be a compromise for a “just chilling” type of keyboard. It has the left/right keys I’m so fond of, but auto-correct is a slight bit too aggressive.

Most importantly, I learned that each keyboard is handled as a separate “language” by Android. All three keyboards have the option to quickly switch to another, and that makes the goal of finding the perfect keyboard less important than defying the monopoly by straying from the gold standard for its deal breaker. My tablet is one of two operable portable devices I own with one being purely experimental. I don’t want to lose the other because I didn’t know enough of what I was doing.

Takeaway

I wish I had a pie chart data the typical smartphone collects on its user. How useful to its masters is each piece? How hard is it to mitigate each slice? The hardest part of replacing a keyboard has been finding a single one that works, and I cannot always tell right away because they often require time to explore any configuration options. For now, any issues I have with each board are not so important when I can easily access a menu to switch boards. This is more of a progress report than anything final. However, I am glad to report that I’m well on the way to a solution without breaking non-redundant functionality.

Final Question

What on-screen keyboards have you tried out?

I look forward hearing your answers on in the comments below or on my Discord server.

My Phone is Sadly Not ROM-Flashable (Stylo 5)

Good Morning from my Robotics Lab! This is Shadow_8472, and today I am exploring my options when it comes to making good on Degoogling my LG Stylo 5 smartphone. Let’s get started!

Not a Feasible Project?

I tried. I really tried. The plight of someone awakened to Big Tech’s abuses of power is near-hopeless in the face of Android and iOS. Google and Apple’s duopoly is thanks to their extensive walled gardens. Google’s open gates admit smartphone manufacturers the world over who all but worship the search giant for money. Users who wish for an existence free from the oppressive “quality control” rules of these gardens are left to brave a harsh, digital wilderness.

Unlike the more traditional desktop platform, the smartphone wilderness is still in its pioneer days. Special preparation must be undertaken before embarkation. Like the wagon trains of old, safe passage is limited to groups. There simply aren’t enough people interested in a free (as in freedom) smartphone experience for groups with technical experience to blaze trails for every model. Few people are talking about the Stylo 5.

I may have enough experience to produce a working custom ROM, but it’s been an exhausting topic to research. Even if I did produce a working ROM, keeping it updated would monopolize the rest of my time. This project direction is not for me. For the experience I really want, I need to pick a ROM and buy hardware based on that.

Just because I’ve abandoned hopes of ROM flashing the Stylo 5 doesn’t mean I can’t re-evaluate my short and medium term plans. Whatever I do, I will need a tool called Android Debug Bridge (ADB) for administrative access to the unit.

I teased an update issue last week on my Manjaro workstation. It looks like there were some significant changes to package names. I had to uninstall a conflicting package to proceed [1], but I lost Prusa Slic3r in the process and had to reinstall it from another source. Afterwords, I found the packages for ADB had already been installed. I played with them a little, but nothing conclusive has come of it yet.

What Do I Actually Want?

I took my project to Reddit’s r/degoogle and got a reality check [2]. User Bubba1601 confirmed my researched suspicion that the Stylo 5 cannot be flashed. Between users Lisse2000 and cd109876, I learned that updates are secure against custom ROM’s for security reasons. Others recommended a Google Pixel as a way to get away from Google because it’s the only line GrapheneOS supports – again for a good reason: the Pixel is one of the few phones that lets you re-lock your boot loader, reducing the possible attack surface.

I was additionally cautioned against thinking too much of the Librem 5, an open-hardware/software Linux phone with an American-made option. Follow-up research showed that while it’s well on the way to being a viable alternative, it’s only enthusiast grade at best so far as I can tell. The premium $2,000 price tag is a bit above what I can afford with pocket change, so this is one project for the long-term dream board once I finalize monetization without compromising my values.

Given that I have to work with the Stylo 5, what CAN I do? User qUxUp was the only one to actually stay on the original topic – and I quote:

1. Use as many as possible FOSS apps instead of google play apps (you can get most from fdroid).
2. Disable what you don't need with adb.
3. Use nextdns to block the services that you don't want to interact with your phone.

I have heard of all of these in one shape or another. ADB is a bit more invasive than I want to wield on a system I care about, but the DuckDuckGo Privacy App (not sponsored) has a VPN to stop unwanted trackers from leaving the device. I’ve been fairly careful since growing sour towards Google, but DuckDuckGo’s app has helped me identify and remove an innocent-looking app or two when they phoned home despite me not interacting with them anymore.

r/degoogle moderator BlueJayMordecai gave the following advice in a pinned post:

“It's okay to change [how you want to DeGoogle] at a later time if you feel you want to go further into repalcements [sic] or go lighter if you realize there's that one tool that can't yet be replaced. [3]”

My threat model is shaped by my understanding of how Biblical end-time prophecy is playing out. I see large companies developing schemes to mistreat their positions for profit. Left unchecked, I can see these being used to more efficiently persecute Christians who disobey future civil laws requiring worship contrary to what the Bible plainly teaches. That and the 2020 political ads on YouTube were aggressive enough to move me to action. In short: I am wary Big Tech intrusion in the short term, but I expect government abuse of the same or similar technologies to slowly grow in the coming decades.

I also know that technology shifts can be disruptive. If I focus primarily on new hardware and software before relying on it, my preexisting technology becomes an already deployed backup when the new stuff breaks. If I do not understand something and it’s my only copy, I leave it as status quo. This has led to the awkward situation of using a tablet I know has junk left deep in its OS, while being downright paranoid of a phone over the same exact junk with maybe only minor differences.

My main focus has been on restricting Google from my desktop experience because that is what I have had the resources to experiment with enough to understand. I am rapidly approaching the point where I will need to accept those bitter terms of service before further study will be of benefit to me. It’s just a matter of time before I’m out of excuses.

Takeaway

While researching big or important topics, I sometimes find myself with topics that stall, take sharp turns, or any one of an array of surprises that result in an unsatisfactory state when it comes time for my writeup. I took my phone to the carrier’s store, and while they are more than willing to unlock a phone so it can go to a different carrier, they either don’t have the tools or aren’t allowed to unlock the boot loader or assist in enabling Developer Mode (needed for ADB) without consenting to Google Services’ terms. At least the store was mostly empty, because I had to try.

There is much to be said about having hardware sitting on your desk, staring you in the face every day. The Stylo 5 has driven me to at least think about custom Android every couple months or so. Perhaps one of these times, I will finally allow this project to rest in deployment.

Final Question

What are your choices when it comes to reducing Big Tech’s influence on your life?

I look forward hearing your answers on in the comments below or on my Discord server.

Works Cited

[1] A. Rojas, “wxWidgets 3.2 update may need manual intervention,”archlinux.org, July 14, 2022. [Online]. Available:https://archlinux.org/news/wxwidgets-32-update-may-need-manual-intervention/ [Accessed: July 25, 2022].

[2] u/Shadow_8472 and others, “No known degoogled ROM for my phone and I’m not ready to maintain one. What CAN I do? (LG Stylo 5),” reddit.com, July 22, 2022. [Online]. Available:https://www.reddit.com/r/degoogle/comments/w5hmq2/no_known_degoogled_rom_for_my_phone_and_im_not/ [Accessed: July 25, 2022].

[3] u/BlueJayMordecai, “Why You Should DeGoolge & Intro DeGoogleing Techniques,” reddit.com, July 20, 2020. [Online]. Available:https://www.reddit.com/r/degoogle/comments/huk4rp/why_you_should_degoogle_intro_degoogling/

I Installed Android (Again, Pi 400)

Good Morning from my Robotics Lab! This is Shadow_8472 with a side project of the week. Let’s get started!

Free, but not Free

Mobile computers are decades to years behind desktops, and usable free (as in freedom) and open source experiences lag behind accordingly. Android may be branded as open source, but Google did not build their Play Store into the platform’s primary draw by allowing a “free” experience. OEM’s (Original Equipment Manufacturers) making Android devices must play by the search giant’s rules or be prepared to start from scratch.

That iron grip on Android –tight as it may be– still affords room for hobbyist level projects. LineageOS will get compatible devices booted to Android without the need to compile AOSP (Android Open Source Project) yourself. Another project, the difficult-to-search-for /e/, takes the concept farther by removing many of the lingering hooks back to Google infrastructure and making an attempt at a cohesive end-user experience.

Raspberry Pi 400 (Tablet Edition)

A while back, I installed an unofficial build of LineageOS on my Raspberry Pi 400 as a precursor to installing a custom AOSP ROM on a phone. This first attempt was accidentally AndroidTV edition, leading to confusion and sadness. I re-installed it for last week’s blog, but even seeing it ask more phone/tablet-type questions than before didn’t feel like enough to base even a short blog on.

I hesitated when sideloading the F-Droid appstore last week. I couldn’t find their GPG keys to verify the download against, but I learned something in the process. Additional research this week still hasn’t yielded their keys, but I’ve learned that it might involve adding a key repository – sort of like how I couldn’t just start downloading images when I installed Podman on my laptop. However, I want to end up with /e/ instead, so I don’t feel the need to be as careful learning how to add a trusted key repository. Instead, I’ll just keep it offline.

About the only large challenge I solved was getting F-Droid’s install file onto LineageOS. Normally, I would just mount it and drop a file where it needs to go. That wasn’t an option here because I didn’t know where it belonged and the directories above it had locked down permissions. The simplest solution was to just move it over with a USB drive. It installed cleanly from there, and I ran out of time from working on long-term projects and shorter projects bloating beyond this week’s scope.

Takeaway

If you ever hit a road block learning to a safety measure, listen to it. Take reasonable alternate actions to remain safe and try to learn a bit about how to pass it correctly each time.

Final Question

What subjects have you had to conquer a chip at a time?

My Raspberry Pi 400 Runs Android

Good Morning from my Robotics Lab! This is Shadow_8472 with a side project of the week. Let’s get started!

Android Practice

I have been going without a smartphone for a while because I don’t accept Google’s terms of service. Apple is no better. The only option I’ll be happy with is one with nothing but open source software at its heart.

Unfortunately, 3rd party Android builds like LineageOS are infamously difficult and potentially a little unforgiving to install yourself. I need practice, which is why I installed an unofficial LineageOS build for the Raspberry Pi a couple months ago – right before I made an incomplete mad dash for assembling Button Mash into a proper home server.

I used balena Etcher to safely install a build of Android made for the Raspberry Pi 4 lineup built by Konsta [1].

The initial boot was a bit longer than reasonable, and there were some impressive graphical glitches I have never been able to reproduce since. It was a little wired using a mouse with Android menus – especially since I had no way to switch the mouse buttons to a more comfortable lefty configuration. My greatest impression was that there was nothing to do besides browse settings and the file system.

I wanted something a little more to present today, so I installed F-Droid, an app store for open source apps. The challenge wasn’t so much installation, but loading the .apk installation file where the file browser could see it. I had to plant a directory from within LineageOS and use the find command to locate it. Before moving the SD card back to the Pi 400 again, I changed the owner from root to the number 0 and made sure it had the needed permissions. Installation was smooth after that.

Only while doing this writeup did I realize this build was Android TV based. I expect to revisit this project with the correct installation.

Takeaway

I have no idea if this is supported at all beyond the efforts of KonstaT, or if it’s even anything more than a tech demo. While I would not recommend using a setup like this long term, it is still an excellent learning tool for where I am at right now.

Final Question

Have you ever used Android on something other than a smartphone or tablet?

I look forward to hearing your answers in the comments below or on my Discord server.

Work Cited

[1] Konsta, “Raspberry” konstakang.com, 2022. [Online]. Available: https://konstakang.com/devices/rpi4/. [Accessed May 2, 2022].