Data gathering - gilderchuck/connect-the-dots GitHub Wiki
A few details found in the quick reference table can be verified in more than one way. Here's the list of methods I know about.
Software product (aka build model)
adb shell getprop ro.product.model
Codename
adb shell getprop ro.product.device
adb shell getprop ro.product.board
adb shell getprop ro.build.product
fastboot getvar product
NOTE: sometimes two devices are so similar that they share the same software. This scenario is called Android shared system image (SSI).
Usually ro.product.model
is different, but the following property can also tell them apart when it's defined:
adb shell getprop ro.boot.hardware.sku
Device type ID
adb shell grep . /proc/idme/device_type_id
# idme print device_type_id
Online services (Kindle Store, Prime/Instant Video, etc) use this value to determine device capabilities (e.g. which device to supply UHD/4K video). On most devices this value is stored along with the DSN in a separate partition. On some early models this value might have been hard-coded into the relevant binaries though.
(It is likely that early Fire Tablets had many more variations than found in the reference table: there might be one Dtid for each combination of DRAM size, storage capacity and set of cellular frequency bands supported.)
Device model number
Written on the back/bottom of the device. Seems to be a physical-only property - so far no device found with a software method to query it.
Device serial number (DSN)
- on the box the device was shipped in: below one of the barcodes
- often also on the device itself: on a sticker usually near the model number
adb shell getprop ro.serialno
adb shell getprop ro.boot.serialno
adb devices
fastboot devices
fastboot getvar serialno
Retail name
The name with which Amazon refers to the device in support documents.
Sometimes that is subject to change though. (Especially with Fire TV models getting bundled with different types of remote controls.)
ADB
It might be obvious but adb shell
commands need ADB (USB or Network Debugging) enabled on the device. (For most Echo devices we don't have an easy way to do that.)
fastboot
fastboot
commands need an USB connection to the device and the device to be booted into this operating mode. The latter requires a device-specific button combination to be pressed during device startup. (On Echo speakers that's typically the Action/Uber button.)
Desktop browser call for Manage Your Content and Devices
Some details for your registered devices are actually sent in the background while logged into your account on a desktop (non-mobile, full) browser. This response can be captured via the built-in Developer Tools and then filtered using jq:
- with your browser DevTools (Web Inspector) enabled navigate to your region equivalent of https://www.amazon.TLD/hz/mycd/digital-console/alldevices (remember to change the domain TLD to your region, it might be amazon.DE/amazon.JP/etc instead of .COM)
- on the Network tab identify the first AJAX request with
activity: GetDevicesOverview
- save the response into a plain text file and run the following jq filter on it:
jq -r '.GetDevicesOverview.deviceList[] | select(.deviceClassification != "APPLICATION") | "\(.deviceFamily) \(.deviceTypeID) \(.deviceSerialNumber[:6]) \(.deviceTypeString) \(.deviceImageURL)"' [YOUR_FILENAME.TXT]
- if some details of your device(s) is missing from the reference table then please create an issue
A more detailed sequence of instructions:
- click 'Manage Your Content and Devices' in the main menu
- open Web Developer Tools/Web Inspector and switch to the Network tab before the next step (usually F12, or Cmd+Opt+I in Safari)
- click on the 'Devices' tab in the web page
- in Developer Tools in the list of requests scroll up to the first batch of 'ajax' ones, e.g.
https://www.amazon.TLD/hz/mycd/digital-console/ajax
- click on them, usually the last one has a Payload with
activity: GetDevicesOverview
- switch to the Response tab, select all text and copy it (Ctrl+A, Ctrl+C / Cmd+A, Cmd+C)
- open a new tab and navigate to JQ Playground
- click below the JSON label, paste what you have just copied
- then copy ALL of the following code into the Query field:
.GetDevicesOverview.deviceList[] | select(.deviceClassification != "APPLICATION") | "\(.deviceFamily) \(.deviceTypeID) \(.deviceSerialNumber[:6]) \(.deviceTypeString) \(.deviceImageURL)"
- select-all + copy the 'Output'
- if some details of your device(s) is missing from the reference table then please create an issue and paste it as description
(Note: this might include data even for your old devices ... unless you deregistered them already.)
Setup mode on Echo speakers
By pressing the Action/Uber button for 5 seconds most Echo speakers enter Setup Mode accompanied by an orange coloured light ring. While at this mode a few details can be gathered about the device (software version, Wi-Fi MAC address, DSN, device type ID).
As this is part of the registration process these details can be read off of even unregistered devices.
Speakers which have been setup already exit from this mode automatically after about 10 minutes or after the same button being pressed for 5 seconds again.