Skip to content

About

Amazon Echo Dot Biscuit CM12 & CM14 device tree and build helpers

Resources

Stars

6 stars

Watchers

0 watching

Forks

Repository files navigation

CM14.1 for Amazon Biscuit (Echo Dot 2nd gen)

Warning

Amonet Biscuit v2.0.0 is required to install either image on a Biscuit. These OTAs target its TWRP 3.7.0_9-0 and native A/B partition contract. Do not use stock recovery, stock fastboot, Amonet v1 instructions, or old boot_a_x paths.

Amonet v2 uses a Preloader exploit, removes the old lk-payload/GPT-remapping design, supports Fire OS 6, and drops Fire OS 5. Its own update changes early boot components and must never be interrupted; a normal CM14 OTA must write only TWRP's /dev/block/current-system and /dev/block/current-boot aliases. A/B ROM installation requires the documented two-install recovery procedure when populating both slots. Holding only MUTE while connecting power with USB attached enters v2 Preloader USBDL recovery; v2 intentionally removes stock non-hacked fastboot.

Read the upstream Amonet v2 update announcement and this repository's Amonet 2 notes before installing or updating anything.

LineageOS/CM14.1 port for Amazon Biscuit with reproducible inputs and a disposable workspace/.

This repository builds two images:

Product Build command Purpose
cm_biscuit-userdebug make full Full Android/CM14.1 for Biscuit: framework, Wi-Fi, Bluetooth A2DP sink, LED/buttons, microphone capture/mute, and framework audio.
biscuit_minimal-userdebug make minimal Framework-free, Android-shaped userspace: root ADB, Wi-Fi provisioning, DHCP/DNS, raw hardware tools, and a replaceable ledcontroller slot. It contains no APKs or /system/framework files.

Build commands only produce artifacts; they do not flash a device. Read the Amonet 2 notes before any installation.

Build guide

See Building the CM14.1 images for prerequisites, both build flows, profile switching, artifacts, validation, and an explanation of every product and kernel patch.

Layout

manifest/   # pinned CM14.1 repo manifests
patches/    # ordered full, minimal, and kernel patch series
device/     # tracked Biscuit device overlay
vendor/     # tracked proprietary-blob manifests and generated makefile template
docker/     # build images
scripts/    # sync, stage, build, extraction, and diagnostics
docs/       # notes, source list, and validation guides
workspace/  # ignored: downloads, CM14.1 checkout, extracted blobs, outputs, ccache

The active source layout is flat. workspace/cm14.1 is only the external LineageOS checkout and is regenerated by tracked scripts.

Reproducible inputs

workspace/cm14.1
  <- scripts/sync.sh
  <- manifest/local.xml or manifest/lock.xml

workspace/upstream/amazon-echo-dot-6.5.7.1
  <- scripts/stage-tree.sh
  <- verified Fire OS 6.5.7.1 Echo Dot source archive

workspace/extracted/biscuit-fireos-6.5.7.4/system.img
  <- scripts/extract-fireos6-payload.py
  <- verified Fire OS 6.5.7.4 Biscuit/Puffin OTA

workspace/extracted/biscuit-stock-272.6.4.1/system.img
  <- scripts/prepare-biscuit-stock-system-image.sh
  <- verified stock Biscuit OTA used for the headless HWC blob

See docs/sources.md for URLs, hashes, and policy.

Quick build

Build images use Docker. Create them once if absent:

docker image inspect cm14.1-ubuntu20:latest >/dev/null 2>&1 || \
  docker build -t cm14.1-ubuntu20:latest -f docker/cm14.1-ubuntu20.Dockerfile docker/

docker image inspect biscuit-kernel-builder:latest >/dev/null 2>&1 || \
  docker build -t biscuit-kernel-builder:latest -f docker/biscuit-kernel-builder.Dockerfile docker/

Sync the external tree, then choose exactly one product:

scripts/sync.sh
make full       # full cm_biscuit-userdebug image
# or
make minimal    # framework-free biscuit_minimal-userdebug image

docker logs -f cm14.1-biscuit-build

make full selects patches/full/; make minimal selects patches/minimal/ and clears the Biscuit product output to prevent stale full-product files. Both apply patches/kernel/ and write output below:

workspace/cm14.1/out-docker/target/product/biscuit/

Runtime helpers

Full image only

cm_biscuit-userdebug includes /system/bin/biscuit_service:

adb shell biscuit_service wifi on
adb shell biscuit_service wifi connect '<ssid>' '<psk>'
adb shell biscuit_service wifi off
adb shell biscuit_service volume up
adb shell biscuit_service volume down
adb shell biscuit_service volume set '<0..max>'
adb shell biscuit_service mute on|off|toggle
adb shell biscuit_service mic mute|unmute|toggle
adb shell biscuit_service countdown set '<remaining-ms>' '<total-ms>'
adb shell biscuit_service countdown clear
adb shell biscuit_service bt pair
adb shell biscuit_service bt off

Minimal image only

biscuit_minimal-userdebug intentionally has no Java service or Bluetooth framework. It includes framework-free Wi-Fi provisioning and diagnostics:

adb shell wpa_connect '<ssid>' '<8-to-63-character passphrase-or-64-hex-psk>'
adb shell ping -c 2 google.es
adb shell ip addr show wlan0

Do not print Wi-Fi PSKs in logs or summaries.

Safety

  • Amonet Biscuit v2.0.0/TWRP 3.7.0_9-0 is required for ROM installation; read the upstream v2 announcement and docs/amonet-biscuit-unlock.md.
  • Never run adb shell dd of=/dev/block/... or adb exec-in dd of=/dev/block/....
  • Do not use stock fastboot for ROM images.
  • Do not touch GPT, preloader, LK, TZ, recovery, userdata, cache, persist, or misc unless explicitly requested.
  • Inspect every generated updater before flashing. A valid custom OTA writes only /dev/block/current-system and /dev/block/current-boot and has no destructive wipe command.

About

Amazon Echo Dot Biscuit CM12 & CM14 device tree and build helpers

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages