emOS v0.7
The device knows its own name.
What changed
emOS reads the serial from /proc/idme/serial — Amazon's ID Manager, exported
by the kernel and readable without a property service or a bootloader argument.
The console prompt now reads root@em-G090LF... instead of root@android,
which is how you tell two Echoes apart over USB.
It matters on amonet 2.x because the old source was not reliably there to read.
FireOS 6 boots a 32-bit kernel, so the kernel's command line is capped at 1024
bytes; LK wraps our image's cmdline with 421 bytes in front and 344 behind, and
ours is 385 against stock's 70. That is 1150 bytes, and androidboot.serialno
starts at byte 1040 — cut off before the kernel ever sees it. FireOS 5 boots
aarch64, where the cap is 2048 and the same string fits, which is why this
looked like an amonet 2.x problem rather than a length one.
The kernel cmdline stays as a fallback and is logged when used. It is the one
source that can be silently WRONG rather than absent: a value cut mid-truncation
is short but well formed, and there is no way to tell it from a serial that
legitimately sits last on the line.
A serial that is not printable ASCII is rejected rather than used. This is an
identity, and a plausible-looking wrong one is worse than none.
Upgrading
Re-run the provisioning wizard's build and flash steps. Nothing on /data is
touched, so your WiFi and console password survive.
Known issues in this release
- This does not fix devices registering as
unknown-device. That is the
firmware's serial, not emOS's, and it ships in device v2.16.0. emOS uses the
serial only for the hostname. - WiFi on FireOS 6 with a WPA3 or mixed WPA2/WPA3 network does not work and
cannot: the driver has no SAE and the kernel is too old for us to do it in
userspace. Set the network to WPA2.em-wifimarks such networks
(WPA3 - not supported)rather than offering them (#536). - emOS written to
boot_bon an amonet v2.0.0 device has been reported not to
boot, with the same image booting fromboot_a(#544). Under investigation.
Checksums
Verify the assets against the release page before flashing anything.
What's Changed
- Cache OWW models per device_id instead of rebuilding on every reconnect (#512) by @scragnog in #528
- Give the writing rules a frequency budget by @wilbowes in #537
- Say what the writing rules are aiming at by @wilbowes in #538
- Release controller-ea 2.24.0-ea.5 by @wilbowes in #539
- Let the connect step read what the device can actually tell it (#517) by @wilbowes in #540
- Read the serial from idme, where the hardware keeps it by @wilbowes in #542
- Read system_part off the build POST, so the image carries its /system stamp by @wilbowes in #548
- Refuse a wake threshold that cannot fire, at the write path by @wilbowes in #549
- Let a mic gain of 0 reach the codec by @wilbowes in #551
New Contributors
Full Changelog: emos-v0.6...emos-v0.7