The app is distributed privately, outside any store. Every version is published as a release with the APK attached in https://git.mariosem.es/msemes/Flexera-Launcher-Releases, and installed copies update themselves from there. Versioning - flexera/version.properties holds the version name (now 0.1.0); build.gradle derives the version code from it. This replaces Lawnchair's 16_00_02_01_00 / "16.Dev.(hash)". - Debug builds always use the debug key, so the release key signs releases only. Updater (app.flexera.update.FlexeraUpdater) - Asks the release repository for the latest release at most once a day, when the home screen or settings come to the front, and on demand from Settings > About > Updates. - Downloads the APK into the cache, checks that it is a newer build of this app, and hands it to Android's installer. Android enforces the signature. - Posts a notification when an automatic check finds a newer version. - Off in debug builds, whose app ID differs from the released one. Network policy (reverses PRD SI-5, at the owner's request for in-app updates) - The INTERNET permission is back, plus REQUEST_INSTALL_PACKAGES. - The update check is the only network use. Lawnchair's online features stay off through FlexeraNetwork.onlineFeaturesAllowed: web suggestions, the announcement feed, and the crash-report upload button. - The About screen's privacy text says what the app now does online. Releasing - flexera/release.ps1 raises the version, builds the signed APK, checks its signature, creates the release and uploads the APK. Also carries the strings for the next commit (alphabet side and drawer settings). Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
16 lines
780 B
XML
16 lines
780 B
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
Flexera Launcher manifest overrides. Attached to the debug and release build types in build.gradle,
|
|
which outrank Lawnchair's flavor manifests and every library manifest during the merge.
|
|
|
|
Network access: the INTERNET permission comes from Lawnchair's manifest and is kept for one purpose,
|
|
the app's own update check (app.flexera.update.FlexeraUpdater). Lawnchair's online features stay
|
|
switched off in code; see app.flexera.FlexeraNetwork.
|
|
-->
|
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
|
|
<!-- Lets the app hand a downloaded update to Android's installer. The owner still confirms each install. -->
|
|
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
|
|
|
</manifest>
|