mission-improbable
mission-improbable copied to clipboard
Add docker-based update system
We get a Dockerfile and associated .dockerignore to create an Ubuntu 16.04 LTS container that can be used for generating updates. A Makefile is used with a few targets to make invocation of docker related tasks easier.
The README is updated to reflect the docker implementation.
Several scripts are updated to:
- support
set -x
debugging when the DEBUG env var is set - be quieter when running
The .gitignore gets some changes to ignore artefacts generated during the docker-update process.
A new update-wrapper.sh script is used as the docker entry point.
The get-release-image.py script will now only validate if it's downloaded, and will exit 1 if the validation failed.
The install-su.sh script forces the copy of keys, which would otherwise
break the set -e
mode.
The strip-cpio tool is inherently noisy. The easy workaround here is to simply send all stderr output from it to /dev/null.
Add usage output to the update.sh script, along with a trap handler to
inform the user of an error if the script unexpectedly exits. There's
also a new --scheduled
argument to change the behaviour when the
new signed image is ready: without --scheduled
the behaviour is the
same as before; with the flag set instructions are provided for what to
do next. The script will also clone the helper repos if they're not
already in place.
The make_keys.sh script is also moved as it makes it hard to manage our keys in the folder. With only keys in that folder we can handle those secrets as we please, for example as a git repository with blackbox GPG encryption.
The changes here also benefit from the changes in https://github.com/mikeperry-tor/super-bootimg/pull/1
Have made some changes to accommodate the 2017-09 CopperheadOS images that contain some new vdex files that were causing problems for applying gapps-delta.
Older commits that are added here have had commit author corrected and signed.
Latest updates handle changes to how CopperheadOS make update metadata available, and fix regressions in angler updates. I don't have any other device to test with, but it's likely that the update-binary for other devices will need to be updated to successfully apply updates of android 8.