Gernot Walzl

Android

Android is the most popular operating system for mobile phones and tablets.

Contents

Most vendors have their own (slightly modified) distribution of Android.
Some distributions do not allow the user to remove preinstalled apps.
Luckily, there are devices available that support flashing alternative Android distributions.

LineageOS
Successor of CyanogenMod
https://lineageos.org/
Supported devices: https://wiki.lineageos.org/devices/

As in 2020, there are approximately three million apps on Google Play.
If you need an app for something, you are possibly trying out some of them.
Some of them need access to personal data. Some of them are full of advertisements.
Here is a list of apps, I can recommend.

App Stores

F-Droid
App store with free and open source software (foss)
https://f-droid.org/packages/org.fdroid.fdroid/
Aurora Store
Download apps from Google Play without Google Apps (GApps) installed
https://f-droid.org/packages/com.aurora.store/

Internet

Fennec
Internet browser based on Firefox
https://f-droid.org/packages/org.mozilla.fennec_fdroid/
In Fennec, popular Firefox add-ons can be used.
K-9 Mail
Full-featured email client
https://f-droid.org/packages/com.fsck.k9/
NewPipe
Lightweight YouTube front-end
https://f-droid.org/packages/org.schabi.newpipe/
Change Detection
Automatically detects changes on websites
https://f-droid.org/packages/com.bernaferrari.changedetection/

Security

KeePassDX
Password safe
https://f-droid.org/packages/com.kunzisoft.keepass.libre/
OpenKeychain
Encrypts your communication
https://f-droid.org/packages/org.sufficientlysecure.keychain/

Camera

Open Camera
Feature-rich camera app
https://f-droid.org/packages/net.sourceforge.opencamera/
Barcode Scanner
QR code scanner
https://f-droid.org/packages/com.google.zxing.client.android/
Fossify Gallery
Gallery with photo editor
https://f-droid.org/packages/org.fossify.gallery/

Navigation

OsmAnd~
Offline/online maps and navigation
https://f-droid.org/packages/net.osmand.plus/
HERE WeGo
City navigation
https://apkpure.com/here-wego-maps-navigation/com.here.app.maps

Calendar

Etar - OpenSource Calendar
Supports offline calendars
https://f-droid.org/packages/ws.xsoh.etar/
Calendar Import-Export
Import & export (backup) calendars using ics files
https://f-droid.org/packages/org.sufficientlysecure.ical/
Birthday Adapter
Shows birthdays of contacts in calendar
https://f-droid.org/packages/org.birthdayadapter/

Contacts

Export Contacts
Backup contacts in vCard 3.0 contacts file (*.vcf)
https://f-droid.org/packages/am.ed.exportcontacts/
Share my number via QR code
This app displays a QR code others can easily scan
https://f-droid.org/packages/com.github.characterdog.share_my_number/

Multimedia

VLC
Video and music player
https://f-droid.org/packages/org.videolan.vlc/
eSpeak
Text-to-speech (TTS) engine
https://f-droid.org/packages/com.reecedunn.espeak/
Since LineageOS 16 (Android 9), a TTS engine is no longer included.
RadioDroid
Internet radio and alarm clock
https://f-droid.org/packages/net.programmierecke.radiodroid2/
Listen to online radio streams from https://www.radio-browser.info/
Audile
Music recognition app
https://f-droid.org/packages/com.mrsep.musicrecognizer/
Zapp
Watch German TV on your mobile
https://f-droid.org/packages/de.christinecoenen.code.zapp/

Reading

MuPDF
Lightweight document viewer
https://f-droid.org/packages/com.artifex.mupdf.viewer.app/
LibreOffice Viewer
Read various office file formats
https://f-droid.org/packages/org.documentfoundation.libreoffice/

Theming

Muzei
Live wallpaper of famous art
https://f-droid.org/packages/net.nurik.roman.muzei/

Games

Apple Flinger
Use a slingshot to shoot with apples
https://f-droid.org/packages/com.gitlab.ardash.appleflinger.android/
Mindustry
A factory-based sandbox tower defense game
https://f-droid.org/packages/io.anuke.mindustry/
PPSSPP
PSP emulator
https://f-droid.org/packages/org.ppsspp.ppsspp/
lichess
Play chess online against others or offline against Stockfish engine
https://f-droid.org/packages/org.lichess.mobileapp.free/

Science and Education

Aard 2
Offline dictionary
https://f-droid.org/packages/itkach.aard2/
Dictionaries: https://github.com/itkach/slob/wiki/Dictionaries
Graph 89
Calculator emulator
https://f-droid.org/packages/com.Bisha.TI89EmuDonation/
ROM: https://www.ticalc.org/programming/emulators/romdump.html#12

Development

Acode
Text editor with syntax highlighting
https://f-droid.org/packages/com.foxdebug.acode/
Termux
Terminal emulation
https://f-droid.org/packages/com.termux/
On first start, the bootstrap zip file is downloaded and extracted to /data/data/com.termux/files/usr/.
Terminal toolbar can be hidden by pressing volume up and q.
Termux:API
Command line access to device API
https://f-droid.org/packages/com.termux.api/
Version 0.31 is the last that supports sending sms messages.
To install old versions, the F-Droid Archive repository needs to be enabled.
Hacker's Keyboard
Keyboard with tab, ctrl and arrow keys
https://f-droid.org/packages/org.pocketworkstation.pckeyboard/

Verify Signature of Packages

Android packages (APKs) are signed with self-signed certificates.

The command line tool apksigner is part of the Android SDK Build Tools:

https://developer.android.com/studio/command-line/apksigner#usage-verify

In Termux, apksigner can be installed using the following command:

pkg install apksigner

To verify the signature of an APK, execute the following command:

apksigner verify --print-certs org.fdroid.fdroid_1010000.apk
F-Droid
Signer #1 certificate DN: CN=Ciaran Gultnieks, OU=Unknown, O=Unknown, L=Wetherby, ST=Unknown, C=UK
Signer #1 certificate SHA-256 digest: 43238d512c1e5eb2d6569f4a3afbf5523418b82e0a3ed1552770abb9a9c9ccab
Signer #1 certificate SHA-1 digest: 05f2e65928088981b317fc9a6dbfe04b0fa13b4e
Signer #1 certificate MD5 digest: 17c55c628056e193e95644e989792786
HERE WeGo
Signer #1 certificate DN: CN=CodeSigning for HERE Global BV, OU=Android Signing, OU=Android Signing, O=HERE Global BV, L=Veldhoven, ST=Veldhoven, C=NL
Signer #1 certificate SHA-256 digest: f3fa1a6eb3f8bace3662e83ab167a90462d1a78240e64cf24675887c5d78cb13
Signer #1 certificate SHA-1 digest: 6d256640c0eff26ccb3a8b817cdc901f3d1d77b4
Signer #1 certificate MD5 digest: 528eab01b512151498f89f5e88767bf9
Magic Earth
Signer #1 certificate DN: CN=ROUTE 66, OU=ROUTE 66 Switzerland GmbH, O=ROUTE 66 Switzerland GmbH, L=Brasov, ST=Romania, C=RO
Signer #1 certificate SHA-256 digest: fa91bd3a8bfa2b03bda48422b238d584f23921154a5279e721f2f90a74d38806
Signer #1 certificate SHA-1 digest: 3705ba93d86f9566cdb440977e65c8df660514ae
Signer #1 certificate MD5 digest: 82380142088327f4d4a14c9547ff46de
Tor Browser
Signer #1 certificate DN: C=US, ST=WA, L=Seattle, O=The Tor Project, CN=Tor Browser
Signer #1 certificate SHA-256 digest: 20061f045e737c67375c17794cfedb436a03cec6bacb7cb9f96642205ca2cec8
Signer #1 certificate SHA-1 digest: 6e9d890dcf0d5ca0d7c8f28c822ed228da5f3490
Signer #1 certificate MD5 digest: e8ee59c262de3d867b015afbae38e061
SIM Manager
Signer #1 certificate DN: CN=Android, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US
Signer #1 certificate SHA-256 digest: 7e26b6d5802a16799448ad635868f0345d6730310634684c0ae44e7e9f7ea764
Signer #1 certificate SHA-1 digest: f1fea6b3c0b0b4a2bb101e99707e56f837658ec2
Signer #1 certificate MD5 digest: 422b4972d88337c04a6fd2b6cb8b0e79
Source Stamp Signer certificate DN: CN=Android, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US
Source Stamp Signer certificate SHA-256 digest: 3257d599a49d2c961a471ca9843f59d341a405884583fc087df4237b733bbd6d
Source Stamp Signer certificate SHA-1 digest: b1af3a0bf998aeede1a8716a539e5a59da1d86d6
Source Stamp Signer certificate MD5 digest: 577b8a9fbc7e308321aec6411169d2fb

Send SMS Messages

Using Termux:API

termux-sms-send -n "+1234567890" "Just a test!"

Using ADB

Functions of service interfaces are declared in
the Android Interface Definition Language (AIDL).
There is a service interface to handle SMS API requests:

ISms.aidl of Android 12:

/* ... */
interface ISms {
    /* ... */
    void sendTextForSubscriber(in int subId, String callingPkg, String callingAttributionTag,
            in String destAddr, in String scAddr, in String text, in PendingIntent sentIntent,
            in PendingIntent deliveryIntent, in boolean persistMessageForNonDefaultSmsApp,
            in long messageId);
    /* ... */
}

Functions of the service interfaces can be called via adb shell.
The follwing shell command calls the 5th function of the isms service interface:

adb shell service call isms 5  i32 0  s16 "com.android.mms.service"  s16 "null" \
    s16 "+1234567890"  s16 "null"  s16 "'Just a test'"  s16 "null" \
    s16 "null"  i32 0 \
    i64 0

Android Studio

The Android Studio is the official Integrated Development Environment (IDE)
for Android. The IDE based on IntelliJ IDEA.
The installer is available on the developer pages of Android:

https://developer.android.com/studio

Termux
https://termux.com/
https://github.com/termux/termux-packages/releases
microG Project
https://microg.org/
https://lineage.microg.org/
Fossify
https://github.com/FossifyOrg
Privacy Firendly Apps
https://secuso.aifb.kit.edu/105.php
Dominik Schürmann
https://www.schuermann.eu/about/#android
CONTENT.html source 2024-10-18 17.2 KB
adaway_hosts.sh source 2023-11-05 941 B
adaway_hosts.sh
2023-11-05
by Gernot Walzl
This script is used to block advertisements on Android phones.
It does the same as running AdAway with root privileges but without giving
adb_pull_apk.sh source 2024-11-19 1.4 KB
adb_pull_apk.sh
2024-11-19
by Gernot Walzl
Downloads Android Packages (APKs) via the Android Debug Bridge (ADB).
The downloaded APK file is equal to the APK file used for installation.
com.termux.api_31.apk sha256 2022-06-06 1.7 MB
com.termux_118.apk sha256 2022-01-11 97 MB
feiertage_at.py source 2024-07-16 4 KB
feiertage_at.py
2024-06-16
by Gernot Walzl
Generate an iCalendar (*.ics) file of public holidays in Austria
https://de.wikipedia.org/wiki/Feiertage_in_%C3%96sterreich
setup_termux.sh source 2022-03-23 666 B
setup_termux.sh
2022-03-11
by Gernot Walzl
The intention of this script is to describe how Termux can be set up.
The package termux-api requires the app Termux:API to be installed.
sms.sh source 2021-12-27 819 B
sms.sh
2021-12-27
by Gernot Walzl
Sends personalized form text messages by replacing the variable $NAME
to a list of recipients using termux-sms-send.
termux_clean-install_apt-mark_showmanual.txt 2022-06-06 607 B
apt
bash
bzip2
ca-certificates
command-not-found