This commit is contained in:
parent
2ef1e6b96a
commit
e7d8da0a2a
1 changed files with 0 additions and 63 deletions
63
README.md
63
README.md
|
|
@ -8,31 +8,6 @@ recovered by reverse-engineering, so all of it is pinned by tests that run on a
|
||||||
dev box with no phone, no TEE and no sensor. The daemon shell holds everything
|
dev box with no phone, no TEE and no sensor. The daemon shell holds everything
|
||||||
that touches hardware.
|
that touches hardware.
|
||||||
|
|
||||||
## Build
|
|
||||||
|
|
||||||
With the [Crafter Build](https://forgejo.catcrafts.net/Catcrafts/Crafter.Build)
|
|
||||||
Flatpak, which carries the compiler:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
|
||||||
flatpak remote-add --if-not-exists catcrafts https://flatpak.catcrafts.net/catcrafts.flatpakrepo
|
|
||||||
flatpak install catcrafts net.catcrafts.CrafterBuild//stable
|
|
||||||
alias crafter-build='flatpak run net.catcrafts.CrafterBuild//stable'
|
|
||||||
crafter-build # bin/fingerprintd-<target>-<march>/fingerprintd
|
|
||||||
crafter-build test # the unit suites
|
|
||||||
```
|
|
||||||
|
|
||||||
Cross-compiling for the phone:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
packaging/make-sysroot.sh
|
|
||||||
crafter-build -- --target=aarch64-alpine-linux-musl --sysroot=~/.cache/fingerprintd/sysroot-aarch64-alpine --march=armv8.6-a+fp16fml+aes+sha3+sm4 --mtune=cortex-a720
|
|
||||||
crafter-build test --target=aarch64-alpine-linux-musl --sysroot=~/.cache/fingerprintd/sysroot-aarch64-alpine --march=armv8.6-a+fp16fml+aes+sha3+sm4 --mtune=cortex-a720
|
|
||||||
```
|
|
||||||
|
|
||||||
Verified on the device: all five suites pass cross-built and run on the phone
|
|
||||||
itself, not only under emulation.
|
|
||||||
|
|
||||||
```
|
```
|
||||||
fprintd-enroll -f right-index-finger user ten stages, enroll-completed
|
fprintd-enroll -f right-index-finger user ten stages, enroll-completed
|
||||||
fprintd-list user - #0: right-index-finger
|
fprintd-list user - #0: right-index-finger
|
||||||
|
|
@ -69,44 +44,6 @@ The `focal64` trustlet is proprietary and is not in this repo. It is
|
||||||
extracted from the device's own stock Android partition on first boot by the
|
extracted from the device's own stock Android partition on first boot by the
|
||||||
`fp6-vendor-blobs` mechanism, the same way other firmware in fp6-img is.
|
`fp6-vendor-blobs` mechanism, the same way other firmware in fp6-img is.
|
||||||
|
|
||||||
## Releases
|
|
||||||
|
|
||||||
Every push to `main` is built and tested by CI, which then publishes the
|
|
||||||
apks to the Forgejo Alpine registry that installed phones already point at.
|
|
||||||
CI treats the registry's "already published" answer as nothing to do, so a
|
|
||||||
push publishes only a package version new to the registry. The package
|
|
||||||
version is `pkgver-rpkgrel`: `pkgver` is the `Version` constant in
|
|
||||||
`interfaces/Fingerprintd.cppm`, `pkgrel` is the APKBUILD's and stays at 0.
|
|
||||||
An installed phone picks a published version up with plain `apk upgrade`.
|
|
||||||
|
|
||||||
From 0.2.6 on, a release is a range of commits ending in a bump commit
|
|
||||||
titled `fingerprintd X.Y.Z` that changes only the version: the constant and
|
|
||||||
the APKBUILD's `pkgver`. Each release is tagged `vX.Y.Z` on its bump commit
|
|
||||||
(signed, annotated) with the release notes as the tag message, and
|
|
||||||
published as a Forgejo release of the same name and text. No version
|
|
||||||
before 0.2.6 has a tag or release notes. The notes are written for the
|
|
||||||
people whose phones will upgrade:
|
|
||||||
|
|
||||||
```
|
|
||||||
fingerprintd X.Y.Z
|
|
||||||
|
|
||||||
## New
|
|
||||||
|
|
||||||
- **What a user can now do.** One bullet per change, the most important
|
|
||||||
first, with anything the user has to do inside the bullet.
|
|
||||||
|
|
||||||
## Fixes
|
|
||||||
|
|
||||||
- **What went wrong, in the user's terms.** What they saw, what changes,
|
|
||||||
what to do.
|
|
||||||
```
|
|
||||||
|
|
||||||
A section with nothing in it is left out, and so is behaviour the release
|
|
||||||
does not change. Versioning, from 0.2.6 on, is `MAJOR.MINOR.PATCH`: the
|
|
||||||
patch number counts releases, fixes and features alike; the minor number
|
|
||||||
moves when a release changes what a user can rely on the daemon for; the
|
|
||||||
major number moves when a release changes what an installed phone does
|
|
||||||
without being asked.
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue