Skip to content

Releases: munzzyy/tern

0.4.0

Choose a tag to compare

@munzzyy munzzyy released this 05 Oct 22:37

Most of this release is about picking the right file and saying less. A failure that keeps happening is said once, and on Android 12 and later nobody can start an install from a locked phone's notifications.

  • F-Droid lists one build of a version for each processor. Tern took the arm64 one, so an armv7 television or an x86 tablet got an error row while its own build was listed right below. The build that fits the device now goes first.
  • An app a few releases behind shows the notes of every release since the installed one, under "What's new since", newest first, ten at most.
  • A publisher's checksum is found in more of the places publishers put it, such as app.apk.sha256.txt or checksums_sha256.txt. A bare sum counts only from a file made for that one download.
  • Release notes keep what the developer wrote: a < b and c > d keeps its middle, app_arm64_v8a.apk keeps every _, and a link at the end of a sentence leaves out the full stop.
  • A filter pattern that ran past its deadline is not started again while its earlier run still spins.
  • Download progress redraws four times a second and its notification once a second.
  • Downloads that nothing in the list will ask for again are cleared out at start and after a check of the whole list.
  • A download waits up to a minute when the server asks it to.
  • Settings says when Android last ran the background check, and what holds it back when something does.
  • A retry after a failed background check waits for the same Wi-Fi and charger conditions as the check, and none is set while background checks are off.
  • With Orbot off, or a proxy on this device not running, a background run stops once with one log line and one retry instead of failing every app. Nothing goes direct.
  • A failure that repeats is logged and notified once. What Tern keeps to know that is a fingerprint of the app id and the reason, never a name.
  • Installs waiting for the system's confirmation sit under one summary that makes one sound.
  • A notification about one update has Skip this version on Android 12 and later, and one about an install has Open.
  • On Android 12 and later the Update and Update all buttons on a notification do nothing until the phone is unlocked. Before, anyone holding a locked phone could start an install from the lock screen. Android 9 to 11 has no way to hold a button back like that, so there they work as before.
  • On an app's page each card has its own Save and Discard.
  • The Well known apps button lands on the apps it names.
  • On the app list, Page up and Page down (Channel up and down on a remote), Home, End and the Search key work, and a typed letter starts a search.
  • Search and repository results already in your list say so. The match is made on the phone, with nothing sent.

Install tern-0.4.0.apk on Android 9 or later. It installs over earlier versions. Its SHA-256 is:

66e80c86debe0dc2088fafe79ec9533afd6766506cbc950e0145cfbb647faac3

The SHA-256 of the signing certificate is:

a894d9999c8e93a102a1d7afe86028980c25d76e7436dc3b143c5664c95b7003

On the Android 16 emulator the engine's device tests passed. The whole device suite ran on the Android 9, Android 13 and Android TV 14 emulators. The TV passed everything. On the phones a few screen tests about the Import page failed, two on Android 9 and four on Android 13, and each of them fails the same way with 0.3.1. On Android 9 and 16, 0.4.0 went in over 0.3.1, took a shared GitHub link and ran its scheduled check.

0.3.1

Choose a tag to compare

@munzzyy munzzyy released this 05 Oct 14:33

Tern no longer calls a working connection offline where Google is blocked.

  • Tern waited for Android's own check to Google before it counted a network, so on a network that blocks Google it refused to check and the scheduled checks never ran (#7). A network now counts as soon as Android says it reaches the internet.

Install tern-0.3.1.apk on Android 9 or later. It installs over earlier versions. Its SHA-256 is:

33d4c75d2ac82e3e676af5de1c45ede166bc5539a7609d6c3d0c009a9e2c5e0e

The SHA-256 of the signing certificate is:

a894d9999c8e93a102a1d7afe86028980c25d76e7436dc3b143c5664c95b7003

On the Android 9 and 16 emulators, 0.3.1 went in over 0.3.0, added an app and ran its scheduled check. With Android's check to Google sent to a dead address, the build before this fix showed the offline banner on Android 10 and 16, and the fixed build ran its checks.

0.3.0

Choose a tag to compare

@munzzyy munzzyy released this 02 Oct 13:52

A stricter check of files signed by more than one key.

  • A file signed with more than one key passes only when every one of those keys is pinned. An update passes only when the installed app has exactly the same keys. One matching key used to be enough. So a key added to a download could tie a first install to it, and then no later update from the developer would go in until the app was uninstalled.
  • On Android 12 and 12L the question that asks to allow installs no longer says that Android will close Tern when the switch is turned on. Android 11 does that and is still told so. On Android 12 Tern stays open.

Tern can now turn down a file it used to take: one whose keys are not all pinned, or an update whose keys are not the installed app's. That is why this is 0.3.0 and not 0.2.3. A pin that lists more than one certificate still takes a file signed with any one of them, and a rotated key still passes. docs/SECURITY-MODEL.md has the whole rule.

Install tern-0.3.0.apk on Android 9 or later. It installs over earlier versions. Its SHA-256 is:

44969060c192a2a91c0d6d51d51f76007d8cbca3fef489fe7d5e3891a1273ae5

The SHA-256 of the signing certificate is:

a894d9999c8e93a102a1d7afe86028980c25d76e7436dc3b143c5664c95b7003

The device suite passed on the Android TV 9, 11, 12 and 14 emulators. On the phone emulators for Android 9, 10, 13 and 16 a few screen tests failed. Each of them fails the same way with 0.2.2. On Android 13 the new version went in over 0.2.2, kept the list and updated an app.

0.2.2

Choose a tag to compare

@munzzyy munzzyy released this 01 Oct 15:41
bfe1616

Where each well known app comes from.

  • The well known apps show the address each one comes from under its name, and the list says that opening one asks that address for its newest release. Nothing is asked before you open one.

Install tern-0.2.2.apk on Android 9 or later. It installs over earlier versions. The SHA-256 of the signing certificate is:

a894d9999c8e93a102a1d7afe86028980c25d76e7436dc3b143c5664c95b7003

0.2.1

Choose a tag to compare

@munzzyy munzzyy released this 01 Oct 01:28
265a64f

Tern now runs on Android 9.

  • On Android 9, saving without asking goes through the system's file picker, and the system's install confirmation now shows. It arrived in a form Tern did not expect.
  • A file that needs a newer Android than the phone has is named for that, instead of being called unreadable.
  • On Android 9, Tern says once that Google's last security fixes for it came out in January 2022. Tern checks every file it installs, but it cannot close holes in Android itself.
  • Persian text added in 0.2.0 has its zero-width non-joiners back.

Install tern-0.2.1.apk on Android 9 or later. It installs over 0.2.0 and 0.1.0. The SHA-256 of the signing certificate is:

a894d9999c8e93a102a1d7afe86028980c25d76e7436dc3b143c5664c95b7003

The device suite passed on an Android 9 emulator, on top of the Android 10, 16 and TV runs for 0.2.0.

0.2.0

Choose a tag to compare

@munzzyy munzzyy released this 30 Sep 21:40
d7c4be6

Nearly everything Obtainium does, done in a way Tern can stand behind.

  • Every per-app option Obtainium has, Shizuku, Dhizuku, root and other installer apps, zip and tar archives, a widget, a Quick Settings tile and launcher shortcuts. Import and export carry every option, in Tern's format or Obtainium's.
  • Reads itch.io, Telegram and Neutron Code. Third-party stores (APKPure, Aptoide, APKCombo, APKMirror, Tencent, Huawei AppGallery, Samsung Galaxy Store and vivo) sit behind a setting that starts off, and the app says what they are before you turn it on.
  • Every source is asked as Tern. Tern does not read stores that only answer their own app, or sites that offer modified apps.
  • Well known apps are held to their developer's certificate even when added from a store or a mirror, and the list says when one is already on your phone.
  • Checks and installs each have their own Wi-Fi and charging switches. A copy that held checks back on 0.1.0 still does, and web page apps offer what they offered before.
  • Only Tern's own shortcuts can start Update all. A link from a web page asks first and never installs.
  • Shared links keep the app's address after the #, so no server sees it.

The full list is in CHANGELOG.md, and PRIVACY.md names every host Tern can talk to.

Install tern-0.2.0.apk on Android 10 or later. It installs over 0.1.0 and keeps your list, pins and settings. tern.apk is the same file under a name that stays the same. Each file has its SHA-256 next to it. The SHA-256 of the signing certificate is:

a894d9999c8e93a102a1d7afe86028980c25d76e7436dc3b143c5664c95b7003

This version ran on Android 10 and 16 phone emulators and an Android TV 14 emulator, and Shizuku and Dhizuku on an Android 13 emulator. Root has not been tried on a device. Reports from real devices are very welcome.

Tern 0.1.0

Choose a tag to compare

@munzzyy munzzyy released this 30 Sep 00:04

The first release.

Tern installs and updates Android apps straight from where their developers publish them: GitHub, GitLab, Codeberg and other Forgejo servers, SourceHut, SourceForge, Jenkins, F-Droid repositories and plain download links. Before Android sees a file, Tern checks who signed it, holds every update to the certificate of the first install, and compares the checksum the publisher gave.

  • Phones, tablets and Android TV. On a TV everything works by remote, and a phone can send links or your app list over, sealed with a code the TV shows.
  • Tor through Orbot when you choose it. Tern never goes round the proxy.
  • Reads an export from Obtainium, so your list comes along.
  • English and 28 other languages. The translations are machine-made and were checked by a second model. Corrections are welcome.

Install tern-0.1.0.apk on Android 10 or later. tern.apk is the same file under a name that stays the same from release to release. Each file has its SHA-256 next to it. The SHA-256 of the signing certificate is:

a894d9999c8e93a102a1d7afe86028980c25d76e7436dc3b143c5664c95b7003

So far Tern has run on emulators only: Android 10, 13 and 16 phones and Android TV 11 and 14. Reports from real devices are very welcome.