Android Basics section
Unlocking Carrier section
Unlocking Bootloader section
Rooting section
After Rooting section
Android Custom ROMs section
Development section
Apps section
Miscellaneous section


Unlocking Carrier

Some phones will be restricted to using only one telecomm company (carrier). To change that, you "jailbreak" (usually on Apple) or "unlock" or "SIM unlock" (usually on Android) the phone.

Wikipedia's "SIM lock"

Unlocking Bootloader


Normally, the user and apps will have restricted access to the filesystem, preventing changes to various system files and settings. To get full, super-user access to the filesytem, you have to "root" the phone (which mainly involves installing the Unix SU program and using it to set everything to run with super-user permission). But if you leave it running in that state, any malware application would have full access to all data and settings. And some applications will refuse to run on a rooted system, especially because it may allow you to subvert payment requirements or region restrictions (this may be called "failing SafetyNet" ?).

Easy way to root the phone, but it installs lots of bloatware: Kingo Android Root

Whitson Gordon's "Everything You Need to Know About Rooting Your Android Phone"
Wikipedia's "Rooting (Android OS)"
Guiding Tech's "7 Tips to Secure Your Rooted Android Device"

After Rooting

Whitson Gordon's "Top 10 Reasons to Root Your Android Phone"
Brendan Hesse's "How to Customize Your Android Device With Magisk and Xposed Framework"
Nick Congleton's "How to Install Android Add-ons From Magisk Manager"

Robert Zak's "How to Install Apps on Android without Google Play Store"
MakeTechEasier's "9 of the Best Android Apps Not on the Google Play Store"

Android Custom ROMs

From /u/trondwin on reddit's /r/LineageOS 8/2018:

Painful Lineage OS installation:

I bought a used LG G3 d855 to install Lineage OS on and use as my (only) phone. The installation instructions (at for the phone seemed (reasonably) straightforward, even for a novice user like myself, so I thought this would be a fun, little project. However I ended up using 20-30 hours (over multiple weeks) in total.

This is not meant as a complaint - on the contrary, I am full of gratitude to all developers creating open source software - You're making the world a better place. Rather, by describing the efforts I went through, I hope others may learn something from them and get an easier time than I had.

Here are the main painpoints and time sinks I encountered. Ultimately, the instructions at the lineage os wiki were not particularly helpful. Specifically, they're somewhat misleading in that they make no provision at all for differences in Android versions. I found no other web site with a complete AND working tutorial, either - I had to research each specific problem as it occurred.

The good news - it DID work out in the end. It was actually doable, and I believe it will be for other phones and android versions as well.

I'd like to end with a thank you to all developers using their time to develop free and open source software. Thank you!


NoviceDock's "Android Development Syllabus"
Romansh Yadav's "Understanding Android OS Architecture"
Do mockup with Balsamiq or Lucidchart or something similar.
Sayak Boral's "The Beginner's Guide to Android Studio"
Tracey Rosenberger's "How to Set Up and Run Android 9 for Development on Your Computer"

Android Emulators section of my Using Linux page


See Smartphones section of my Computer Security and Privacy page.

What is the Kali NetHunter App Store?

How to delete or cripple default system apps that can't be uninstalled through the normal Settings / Apps menu ?
Instructions vary by Android version; my phone is running 6.0.

For example, I want to uninstall Duo, but the "Disable" button just leads to a choice between "replace with factory version" or "cancel". Similar in Play Store; you can uninstall any installed updates for the app, but not uninstall the whole app itself.

Some people say phone has to be rooted. Can ADB be used to delete apps ?

Connected USB cable to PC, accessed phone filesystem through PC's File Explorer, don't see Duo under Internal storage / Android / data.

Went to Settings / About phone / Build number and clicked on it 7 times to get into Developer Mode. Went into Settings / Developer options, turned slider at top to "On". Scroll to USB Debugging and turn it on. Scrolled to bottom, clicked on "Inactive apps". Changed Duo to inactive. But I think that just cleared the app out of memory until the next time I do something with it.

On Linux CLI:
adb -d devices
adb -d get-state
adb uninstall PKGNAME
If "adb -d devices" lists device as unauthorized, unplug USB cable, go to Settings / Developer options / Revoke all authorizations, plug USB cable in, should see "authorize this device ?", click OK, try "adb -d devices" again.

Settings / Developer options / Take bug report and "adb bugreport DESTFILE" don't do anything on my phone. If omit DESTFILE, name should be On my Android 6.0 system, "adb bugreport >bugreport.txt", and you get an 11 MB file.
adb shell ls -R /
adb shell

adb shell pm list packages
adb shell pm list packages -f
adb shell pm list packages -f | grep duo   # gives nothing, duo must have other name

RMG's "30+ Most Used ADB & FastBoot Commands for Android 2019"
Mohamed Ibrahim's "Android: ADB - List Installed Package Names"

Android Developers' "Capture and read bug reports"
Android Developers' "View on-device files with Device File Explorer"


Whitson Gordon's "How to Speed Up Your Old or Sluggish Android Device"

David Nield's "Here's How to Get Android Apps Running on Your Laptop"

Brendan Hesse's "How to Run Diagnostics Tests on Your Smartphone"

If you accidentally delete lots of photos:
"DiskDigger photo recovery" app

Is there an app that warns about suspect / banned apps on your phone ?
Is there any app that warns if any other app on your phone is a “banned” app (as in ? It would periodically read a list of suspect / flagged / banned apps from some server and pop up a notification. If such an app doesn’t exist, someone should create it. Thanks.

List: app name, reason it's suspect, link to more info.

Search my site: 

This page updated: September 2019