lwis docs

Capture / Install the Android app

Install the Android app

The lwis app runs on Android 9 or later. It isn't in an app store yet: you download the APK from lookwhatisee.xyz and can check it before you install it.

Download and install

  1. On your phone, open /download/apk. The file is named after the release, for example lwis-0.11.0+abc1234.apk.
  2. Open the downloaded file. Android asks you to allow installs from your browser or file manager the first time.
  3. Open lwis. Use a screen lock on your phone: the app protects its pairing secrets with an Android Keystore key that needs your fingerprint or screen lock. Removing the screen lock later erases that key, and you then pair again.

The app's capture UI is bundled inside the APK. No server can push new code into it.

Check the APK before you install it

You can check the download on a computer first, in either of two ways.

The minisign signature

Every release file has a minisign signature next to it. The release public key is RWQ3k1eNSLv/THHxZ9vd5wWyQEfYXQObusc6FSR7DLDV8tWIbAIhJlAv (key id 4CFFBB488D579337). It is also published in DNS: see Verifying releases.

curl -fsSLo lwis.apk https://lookwhatisee.xyz/download/apk
curl -fsSLo lwis.apk.minisig https://lookwhatisee.xyz/download/apk.minisig
minisign -Vm lwis.apk -x lwis.apk.minisig -P RWQ3k1eNSLv/THHxZ9vd5wWyQEfYXQObusc6FSR7DLDV8tWIbAIhJlAv

The signing certificate

Android identifies an app by the certificate that signs it. Check it with apksigner from the Android build tools:

apksigner verify --print-certs --min-sdk-version 28 lwis.apk

The SHA-256 digest of the signer certificate must be:

0e88d987a52a7a8a6f4a2926a3767633cdd8b68adf023148544e03d6331a9bc6

The same value is published in the DNS TXT record _android._lwis-release.lookwhatisee.xyz:

dig +short TXT _android._lwis-release.lookwhatisee.xyz

Updates

The app doesn't update itself. To update, download the new APK from /download/apk and install it over the old one: Android keeps your pairings, contacts and identity. The current version and its checksum are listed in /download/manifest.json.

Android only accepts an update signed by the same key as the installed app, so a tampered APK is refused.

Key rotation from early releases

The first developer-preview releases were signed with a public debug key. Current releases are signed with the offline release key above, and carry an APK Signature Scheme v3 rotation proof from the debug key to the release key.

Next steps