Repository navigation
Releases
PlayThing 0.2.0-beta
Beta. I tested it on my Car Thing (S905D2, 512 MiB RAM, ST7701S panel); 0.1.0-beta.5 also works on a newer board revision (a user's report). Known issues: docs/known-issues.md. Use it at your own risk: read the warning in the README.
New in 0.2.0-beta
- Apps. Droid-ify is the app store: it installs, updates, and removes apps without a prompt. An App manager shows the storage and the memory of each app; it can stop an app, clear its cache or its data, remove it, and clean up the caches of all apps (
docs/apps.md). - ThingPod, an iPod-style music player: the knob is the click wheel. It plays the music on the Car Thing and on USB sticks, and the car stereo shows the title and the cover over Bluetooth (
docs/thingpod.md). The image now has Android's media library (MediaProvider). - Home screen. The Apps tile opens an app drawer. A rotate button (next to the Bluetooth status) turns the screen in steps of 90 degrees, to landscape or portrait; the home screen has a portrait layout. While an iPhone is connected, the first press only shows a message: a rotation starts the CarPlay session again, and the iPhone can ask "Trust" again. A second press in 4 s rotates (
docs/home-screen.md). - Fix: frozen screen after an app restart. When the app in front stopped and started again at once (for example after
am force-stop), the screen could stop until a restart. Cause: the hardware composer gave Android the fence of the next frame instead of the fence of the shown frame (docs/graphics.md). - Fix: kernel panic in the fence driver (kernel patch 0008,
docs/kernel.md). A restart of Android's display service could cause a kernel panic and a reboot. - Fix: screenshots and the rotation animation showed a stretched part of the screen (a SurfaceFlinger patch for the turned panel).
- The boot script takes
panel_typefrom the Car Thing's own U-Boot env (lcd_8when the env has none), for units with another panel entry (docs/boot.md). python3 flash.py diagalso shows Android's bootloader message (misc) and the kind of file system on the stock data partition. The flash tool names Nocturne 4 and Mira (installed by Terbium) as other firmware that must be removed first.- Docs: USB audio adapters (
docs/bluetooth-audio.md, "USB audio"). - The system image and the boot area changed. An update keeps
/data.
The full list of changes: CHANGELOG.md.
Android 9 on the Spotify Car Thing as a wired Apple CarPlay receiver, with DiPlay.
What you need
- A Spotify Car Thing whose stock software runs from slot A
- A USB-C hub with Power Delivery input and USB-A ports (tested: Anker 6-in-1), and a PD charger
- A USB-C cable, and a Mac or a Linux computer with Python 3.8 or later, git, and libusb (macOS:
brew install libusb). Windows is not supported.
First install
- Download
plaything-0.2.0-beta.zipbelow, unzip it, and open a terminal in the folderplaything-0.2.0-beta. - Disconnect the Car Thing. Hold presets 1 and 4 (the left and right ends of the top row), connect it directly to the computer, and release after about 3 seconds.
- Run
python3 flash.py install, and push Enter at each question. The tool backs up the full eMMC first (about 6 minutes; keep thebackups/folder), and it tells you when to connect again with preset 4. - When the tool says DONE, connect the Car Thing to the hub with the charger. PlayThing starts in about 1 minute.
If PlayThing or superbird-android is already installed: hold preset 4 while you connect, then run python3 flash.py install. On a Car Thing with the newer Spotify U-Boot, the tool asks for one more connection with preset 4.
Hold preset 1 while you connect to start the stock software at any time. The README in the folder has all the steps, the buttons, and what to do if something goes wrong.
In the zip
| File | Content |
|---|---|
system.raw.xz, boot-area.img, manifest.json |
The image, with placeholders |
flash.py, blobs.py |
The flash tool. It downloads the Mali GPU driver, the video decoder firmware, DiPlay 0.2.20, and Droid-ify 0.7.8 from their public sources, and checks their SHA-256. |
kernel-source.tar.xz, aosp-gpl-source.tar.xz |
The source code of the GPL and LGPL parts |
README.md, SHA256SUMS |
SHA-256 of the zip: 6d8f990f32dc506f71f67548114f438436f91efb1ad94c4713e11238cf8d1dcd
SHA-256 of the finished image (after the tool adds the downloaded files): 7df717e160c194d11cca4e9f3f41735f54e299fdfb0cf4aa7450310fadcc4dd2
Thanks to DiPlay by shihabal3amri, which does the CarPlay work.
PlayThing 0.1.0-beta.5
Beta. I tested it on one Car Thing only (S905D2, 512 MiB RAM, ST7701S panel). Known issues: docs/known-issues.md. Use it at your own risk: read the warning in the README.
New in 0.1.0-beta.5
- Display fix for Car Things with the stock software v8 (newer Spotify U-Boot, for example board revision 4). There, U-Boot applied a device-tree overlay at start that moves the display to another driver (DRM), so PlayThing's display could not start: the screen showed noise after the Spotify logo. The boot script now tells U-Boot to apply no overlay for PlayThing (only in RAM; the stock software is not changed).
python3 flash.py diagalso lists the device-tree overlays of the Car Thing.- The system image is the same as in 0.1.0-beta.4; only the boot area changed. An update writes one block.
Android 9 on the Spotify Car Thing as a wired Apple CarPlay receiver, with DiPlay.
What you need
- A Spotify Car Thing whose stock software runs from slot A
- A USB-C hub with Power Delivery input and USB-A ports (tested: Anker 6-in-1), and a PD charger
- A USB-C cable, and a Mac or a Linux computer with Python 3.8 or later, git, and libusb (macOS:
brew install libusb). Windows is not supported.
First install
- Download
plaything-0.1.0-beta.5.zipbelow, unzip it, and open a terminal in the folderplaything-0.1.0-beta.5. - Disconnect the Car Thing. Hold presets 1 and 4 (the left and right ends of the top row), connect it directly to the computer, and release after about 3 seconds.
- Run
python3 flash.py install, and push Enter at each question. The tool backs up the full eMMC first (about 6 minutes; keep thebackups/folder), and it tells you when to connect again with preset 4. - When the tool says DONE, connect the Car Thing to the hub with the charger. PlayThing starts in about 1 minute.
If PlayThing or superbird-android is already installed: hold preset 4 while you connect, then run python3 flash.py install. On a Car Thing with the newer Spotify U-Boot, the tool asks for one more connection with preset 4.
Hold preset 1 while you connect to start the stock software at any time. The README in the folder has all the steps, the buttons, and what to do if something goes wrong.
In the zip
| File | Content |
|---|---|
system.raw.xz, boot-area.img, manifest.json |
The image, with placeholders |
flash.py, blobs.py |
The flash tool. It downloads the Mali GPU driver, the video decoder firmware, and DiPlay 0.2.20 from their public sources, and checks their SHA-256. |
kernel-source.tar.xz, aosp-gpl-source.tar.xz |
The source code of the GPL and LGPL parts |
README.md, SHA256SUMS |
SHA-256 of the zip: ae9a700b01ca0e19b0059b1494e22222d785620d74be5a6e253104fbb395919d
SHA-256 of the finished image (after the tool adds the downloaded files): 283ed927abe91ea458a28106f57bb88d2c3a9a0d71873b6856976e62ef2e1cd6
Thanks to DiPlay by shihabal3amri, which does the CarPlay work.
PlayThing 0.1.0-beta.4
Beta. I tested it on one Car Thing only (S905D2, 512 MiB RAM, ST7701S panel). Known issues: docs/known-issues.md. Use it at your own risk: read the warning in the README.
New in 0.1.0-beta.4
python3 flash.py diagnow replays the ext4 journal in memory (it still writes nothing). After a power cut, the newest file sizes are only in the journal, so 0.1.0-beta.3 could show the log files with 0 bytes. The result is the same as aftere2fsck.- Since 0.1.0-beta.2, the flash tool supports Car Things with the newer Spotify U-Boot.
- The images and the install steps are the same as in 0.1.0-beta.2.
Android 9 on the Spotify Car Thing as a wired Apple CarPlay receiver, with DiPlay.
What you need
- A Spotify Car Thing whose stock software runs from slot A
- A USB-C hub with Power Delivery input and USB-A ports (tested: Anker 6-in-1), and a PD charger
- A USB-C cable, and a Mac or a Linux computer with Python 3.8 or later, git, and libusb (macOS:
brew install libusb). Windows is not supported.
First install
- Download
plaything-0.1.0-beta.4.zipbelow, unzip it, and open a terminal in the folderplaything-0.1.0-beta.4. - Disconnect the Car Thing. Hold presets 1 and 4 (the left and right ends of the top row), connect it directly to the computer, and release after about 3 seconds.
- Run
python3 flash.py install, and push Enter at each question. The tool backs up the full eMMC first (about 6 minutes; keep thebackups/folder), and it tells you when to connect again with preset 4. - When the tool says DONE, connect the Car Thing to the hub with the charger. PlayThing starts in about 1 minute.
If PlayThing or superbird-android is already installed: hold preset 4 while you connect, then run python3 flash.py install. On a Car Thing with the newer Spotify U-Boot, the tool asks for one more connection with preset 4.
Hold preset 1 while you connect to start the stock software at any time. The README in the folder has all the steps, the buttons, and what to do if something goes wrong.
In the zip
| File | Content |
|---|---|
system.raw.xz, boot-area.img, manifest.json |
The image, with placeholders |
flash.py, blobs.py |
The flash tool. It downloads the Mali GPU driver, the video decoder firmware, and DiPlay 0.2.20 from their public sources, and checks their SHA-256. |
kernel-source.tar.xz, aosp-gpl-source.tar.xz |
The source code of the GPL and LGPL parts |
README.md, SHA256SUMS |
SHA-256 of the zip: 7ec535f2794be9e0bd67964edd080da0cc8cdabc6e085192d08d34b48d614163
SHA-256 of the finished image (after the tool adds the downloaded files): 283ed927abe91ea458a28106f57bb88d2c3a9a0d71873b6856976e62ef2e1cd6
Thanks to DiPlay by shihabal3amri, which does the CarPlay work.
PlayThing 0.1.0-beta.3
Beta. I tested it on one Car Thing only (S905D2, 512 MiB RAM, ST7701S panel). Known issues: docs/known-issues.md. Use it at your own risk: read the warning in the README.
New in 0.1.0-beta.3
python3 flash.py diag(hold preset 4 while you connect): a diagnostic folder for problem reports. It writes nothing. Post itssummary.txt; send itsdata/folder (Android logs with device data) only privately.- Since 0.1.0-beta.2, the flash tool supports Car Things with the newer Spotify U-Boot.
- The images and the install steps are the same as in 0.1.0-beta.2.
Android 9 on the Spotify Car Thing as a wired Apple CarPlay receiver, with DiPlay.
What you need
- A Spotify Car Thing whose stock software runs from slot A
- A USB-C hub with Power Delivery input and USB-A ports (tested: Anker 6-in-1), and a PD charger
- A USB-C cable, and a Mac or a Linux computer with Python 3.8 or later, git, and libusb (macOS:
brew install libusb). Windows is not supported.
First install
- Download
plaything-0.1.0-beta.3.zipbelow, unzip it, and open a terminal in the folderplaything-0.1.0-beta.3. - Disconnect the Car Thing. Hold presets 1 and 4 (the left and right ends of the top row), connect it directly to the computer, and release after about 3 seconds.
- Run
python3 flash.py install, and push Enter at each question. The tool backs up the full eMMC first (about 6 minutes; keep thebackups/folder), and it tells you when to connect again with preset 4. - When the tool says DONE, connect the Car Thing to the hub with the charger. PlayThing starts in about 1 minute.
If PlayThing or superbird-android is already installed: hold preset 4 while you connect, then run python3 flash.py install. On a Car Thing with the newer Spotify U-Boot, the tool asks for one more connection with preset 4.
Hold preset 1 while you connect to start the stock software at any time. The README in the folder has all the steps, the buttons, and what to do if something goes wrong.
In the zip
| File | Content |
|---|---|
system.raw.xz, boot-area.img, manifest.json |
The image, with placeholders |
flash.py, blobs.py |
The flash tool. It downloads the Mali GPU driver, the video decoder firmware, and DiPlay 0.2.20 from their public sources, and checks their SHA-256. |
kernel-source.tar.xz, aosp-gpl-source.tar.xz |
The source code of the GPL and LGPL parts |
README.md, SHA256SUMS |
SHA-256 of the zip: dc5623572c98e8ca1371bbdcb6250ed247c20d217fd74ad929dd75cc22dcc1b0
SHA-256 of the finished image (after the tool adds the downloaded files): 283ed927abe91ea458a28106f57bb88d2c3a9a0d71873b6856976e62ef2e1cd6
Thanks to DiPlay by shihabal3amri, which does the CarPlay work.
PlayThing 0.1.0-beta.2
Beta. I tested it on one Car Thing only (S905D2, 512 MiB RAM, ST7701S panel). Known issues: docs/known-issues.md. Use it at your own risk: read the warning in the README.
New in 0.1.0-beta.2
- The flash tool now works on Car Things with the newer Spotify U-Boot (with
fip_a/fip_bin the partition table). Version 0.1.0-beta stopped on them with "STOPPED: the partition table is still the superbird-tool one". If that happened to you: keep yourbackups/folder, hold preset 4 while you connect the Car Thing directly, and runpython3 flash.py installfrom this version. The tool asks for one more connection with preset 4, checks the partition table, and then writes the image. - The tool writes only when the partition table of the Car Thing's own U-Boot has
system_bwhere the tool writes. It detects the unplug by USB presence, andpython3 flash.py checkshows the full partition table. - The images are the same as in 0.1.0-beta.
Android 9 on the Spotify Car Thing as a wired Apple CarPlay receiver, with DiPlay.
What you need
- A Spotify Car Thing whose stock software runs from slot A
- A USB-C hub with Power Delivery input and USB-A ports (tested: Anker 6-in-1), and a PD charger
- A USB-C cable, and a Mac or a Linux computer with Python 3.8 or later, git, and libusb (macOS:
brew install libusb). Windows is not supported.
First install
- Download
plaything-0.1.0-beta.2.zipbelow, unzip it, and open a terminal in the folderplaything-0.1.0-beta.2. - Disconnect the Car Thing. Hold presets 1 and 4 (the left and right ends of the top row), connect it directly to the computer, and release after about 3 seconds.
- Run
python3 flash.py install, and push Enter at each question. The tool backs up the full eMMC first (about 6 minutes; keep thebackups/folder), and it tells you when to connect again with preset 4. - When the tool says DONE, connect the Car Thing to the hub with the charger. PlayThing starts in about 1 minute.
If PlayThing or superbird-android is already installed: hold preset 4 while you connect, then run python3 flash.py install. On a Car Thing with the newer Spotify U-Boot, the tool asks for one more connection with preset 4.
Hold preset 1 while you connect to start the stock software at any time. The README in the folder has all the steps, the buttons, and what to do if something goes wrong.
In the zip
| File | Content |
|---|---|
system.raw.xz, boot-area.img, manifest.json |
The image, with placeholders |
flash.py, blobs.py |
The flash tool. It downloads the Mali GPU driver, the video decoder firmware, and DiPlay 0.2.20 from their public sources, and checks their SHA-256. |
kernel-source.tar.xz, aosp-gpl-source.tar.xz |
The source code of the GPL and LGPL parts |
README.md, SHA256SUMS |
SHA-256 of the zip: 34ddff744094a2e6a5bd22ca7c5a640d9fe7db1fca3fe3b088e567a9d0838d3b
SHA-256 of the finished image (after the tool adds the downloaded files): 283ed927abe91ea458a28106f57bb88d2c3a9a0d71873b6856976e62ef2e1cd6
Thanks to DiPlay by shihabal3amri, which does the CarPlay work.
PlayThing 0.1.0-beta
Use 0.1.0-beta.2. The flash tool of 0.1.0-beta stops on Car Things with the newer Spotify U-Boot ("the partition table is still the superbird-tool one"). The images are the same.
Beta. I tested it on one Car Thing only (S905D2, 512 MiB RAM, ST7701S panel). Known issues: docs/known-issues.md. Use it at your own risk: read the warning in the README.
Android 9 on the Spotify Car Thing as a wired Apple CarPlay receiver, with DiPlay.
What you need
- A Spotify Car Thing whose stock software runs from slot A
- A USB-C hub with Power Delivery input and USB-A ports (tested: Anker 6-in-1), and a PD charger
- A USB-C cable, and a Mac or a Linux computer with Python 3.8 or later, git, and libusb (macOS:
brew install libusb). Windows is not supported.
First install
- Download
plaything-0.1.0-beta.zipbelow, unzip it, and open a terminal in the folderplaything-0.1.0-beta. - Disconnect the Car Thing. Hold presets 1 and 4 (the left and right ends of the top row), connect it directly to the computer, and release after about 3 seconds.
- Run
python3 flash.py install, and push Enter at each question. The tool backs up the full eMMC first (about 6 minutes; keep thebackups/folder), and it tells you when to connect again with preset 4. - When the tool says DONE, connect the Car Thing to the hub with the charger. PlayThing starts in about 1 minute.
If PlayThing or superbird-android is already installed: hold preset 4 while you connect, then run python3 flash.py install.
Hold preset 1 while you connect to start the stock software at any time. The README in the folder has all the steps, the buttons, and what to do if something goes wrong.
In the zip
| File | Content |
|---|---|
system.raw.xz, boot-area.img, manifest.json |
The image, with placeholders |
flash.py, blobs.py |
The flash tool. It downloads the Mali GPU driver, the video decoder firmware, and DiPlay 0.2.20 from their public sources, and checks their SHA-256. |
kernel-source.tar.xz, aosp-gpl-source.tar.xz |
The source code of the GPL and LGPL parts |
README.md, SHA256SUMS |
SHA-256 of the zip: 47f7b2ad9012dab8ebc783d6ab97fb2162ac1ddecffa80c1e55b3a5583218820
SHA-256 of the finished image (after the tool adds the downloaded files): 283ed927abe91ea458a28106f57bb88d2c3a9a0d71873b6856976e62ef2e1cd6
Thanks to DiPlay by shihabal3amri, which does the CarPlay work.