Kompakt tweaks
A few settings the Kompakt keeps out of reach, changed from Chrome or Edge on a computer over a USB cable. Each one says what it does, reads how the phone is set now, shows the command it runs, and can be put back from here.
Connecting
- On the phone, tap Build number in Settings → About until it says you are a developer, then turn on USB debugging in Settings → System → Developer options.
- Plug the phone into this computer. If you use adb, run
adb kill-serverfirst: the computer's own adb holds the phone, and this page can't reach it while it does. - Press Connect, choose the phone, and allow the prompt on its screen.
This page reaches the phone through WebUSB, which only Chrome and Edge on a computer have. Firefox and Safari don't, and neither does a phone's own browser.
Nothing about the phone leaves this computer. The page and the phone talk over the cable, and the key the phone is asked to trust is made in this browser and kept there. The page asks nothing of any other site.
Hidden browser
The Kompakt carries a bare browser with no icon, WebView Shell, and web links open in it until it is switched off. Android's WebView engine is a separate piece and stays, so pages inside apps keep working; links then go to another browser you have installed, such as EinkBro. With no other browser, links open nothing.
Runs pm disable-user --user 0 org.chromium.webview_shell, and to put it
back pm enable --user 0 org.chromium.webview_shell. Reads
pm list packages -d.
Installing an app
Drop an app's .apk file in the box and it is installed on the phone, or updated in
place with its settings kept if it is there already. Any app will do: one downloaded from a
developer's site, from GitHub's releases, or from F-Droid.
Drop an .apk here, or
Copies the file to /data/local/tmp/, runs pm install -r on
it, then rm to delete the copy. To remove an app, uninstall it on the phone as usual.
Letting an app run in the background
With the screen off, Android holds apps back to save battery, so messages and reminders can come late; an app on this list is let through, at some cost in battery.
- Connect to see the apps on the phone.
Runs dumpsys deviceidle whitelist +<package>, and to put it back
dumpsys deviceidle whitelist -<package>. Reads
dumpsys deviceidle whitelist and pm list packages -3.
Mudita's phones also run DuraSpeed, which closes apps on its own and keeps its own list; a texting app it has closed loses the texts that arrive meanwhile. This page leaves DuraSpeed alone, because adb can add to its list but not take anything off it. To let an app through, open DuraSpeed, press Open, and switch the app on.
Runs am start -a android.settings.APPLICATION_DETAILS_SETTINGS -d package:com.mediatek.duraspeed,
which only opens a screen.
Default apps
Which app takes texts, places calls, draws the home screen and opens web links; only apps that can do the job are offered. To go back, choose the one it was.
Runs cmd role add-role-holder <role> <package> with
android.app.role.SMS, DIALER, HOME or
BROWSER. Reads dumpsys role, and finds the apps with
cmd package query-activities.
Hiding Mudita's own apps
A hidden app leaves the app list and stops running, keeping what it stored, and comes back as it was. Only apps another can stand in for are offered; the phone app, home screen, Settings and updater are not.
Runs pm disable-user --user 0 <package>, and to bring it back
pm enable --user 0 <package>. Reads pm list packages -d.
Animations
Windows slide and fade as they open and close, which an E Ink screen draws as a smear of in-between frames; with animations off they simply appear.
Runs settings put global window_animation_scale 0, the same for
transition_animation_scale and animator_duration_scale, and 1 for each to
put them back. Reads settings get global ….
Private DNS
The phone looks up every address it visits; with a private DNS server it asks that server
alone, encrypted, such as dns.quad9.net. The Kompakt's Settings has no page for it. If
the server can't be reached, nothing online works until this is set back to Automatic.
Runs settings put global private_dns_specifier <hostname>
and settings put global private_dns_mode hostname; Off is settings put global
private_dns_mode off, Automatic settings delete global private_dns_mode. Reads
settings get global private_dns_mode.