Create Pixoo64.md
This commit is contained in:
337
Pixoo64.md
Normal file
337
Pixoo64.md
Normal file
@@ -0,0 +1,337 @@
|
||||
# Divoom Pixoo64 Update API Research
|
||||
|
||||
Dokumentation der Recherche für eine potenzielle RSS-Bridge für Pixoo64 Firmware-Updates.
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
Die offizielle Divoom API für Firmware-Updates ist **nicht öffentlich zugänglich** und benötigt Authentifizierung mit einem registrierten Gerät. Eine RSS-Bridge ohne physisches Gerät ist daher **nicht umsetzbar**.
|
||||
|
||||
---
|
||||
|
||||
## Gefundene API-Endpoints
|
||||
|
||||
### Base URLs
|
||||
Aus der dekompilierten APK (`com.divoom.Divoom`) gefunden:
|
||||
|
||||
- `https://appin.divoom-gz.com` - Haupt-API (international)
|
||||
- `https://app.divoom-gz.com` - Alternative API
|
||||
- `https://appchina.divoom-gz.com` - China-spezifisch
|
||||
- `https://appusa.divoom-gz.com` - USA-spezifisch
|
||||
- `https://apptest.divoom-gz.com` - Test-Umgebung
|
||||
- `https://f.divoom-gz.com` - File Downloads
|
||||
- `https://ai.divoom-gz.com` - KI-Features
|
||||
|
||||
### Update-Endpoints
|
||||
|
||||
Aus APK-Analyse (`classes.dex`):
|
||||
|
||||
```
|
||||
Device/GetUpdateInfo - Firmware Update-Informationen
|
||||
Device/GetUpdateFileList - Liste verfügbarer Update-Dateien
|
||||
Device/GetFileVersion - Aktuelle Firmware-Version des Geräts
|
||||
Device/NotifyUpdate - Update-Benachrichtigungen
|
||||
GetNewAppVersion - App-Versions-Updates
|
||||
GetUpdateFileV3 - Update-Datei Download (Version 3)
|
||||
```
|
||||
|
||||
### Request/Response-Klassen (gefunden in DEX)
|
||||
|
||||
```java
|
||||
// Requests
|
||||
com.divoom.Divoom.http.request.device.DeviceGetUpdateInfoRequest
|
||||
com.divoom.Divoom.http.request.device.DeviceGetUpdateFileListRequest
|
||||
com.divoom.Divoom.http.request.device.DeviceGetFileVersionRequest
|
||||
com.divoom.Divoom.http.request.update.GetNewAppVersionRequest
|
||||
|
||||
// Responses
|
||||
com.divoom.Divoom.http.response.device.DeviceGetUpdateInfoResponse
|
||||
com.divoom.Divoom.http.response.device.DeviceGetUpdateFileListResponse
|
||||
com.divoom.Divoom.http.response.update.GetNewAppVersionResponse
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## API-Tests
|
||||
|
||||
### Test 1: GetUpdateInfo (ohne Parameter)
|
||||
```bash
|
||||
curl -X POST "https://appin.divoom-gz.com/Device/GetUpdateInfo" \
|
||||
-H "Content-Type: application/json" -d '{}'
|
||||
```
|
||||
|
||||
**Response:**
|
||||
```json
|
||||
{"ReturnCode":11,"ReturnMessage":"Token is not match"}
|
||||
```
|
||||
|
||||
### Test 2: GetUpdateInfo (mit DeviceType)
|
||||
```bash
|
||||
curl -X POST "https://appin.divoom-gz.com/Device/GetUpdateInfo" \
|
||||
-H "Content-Type: application/json" -d '{"DeviceType": 1}'
|
||||
```
|
||||
|
||||
**Response:**
|
||||
```json
|
||||
{"ReturnCode":1,"ReturnMessage":"no device"}
|
||||
```
|
||||
|
||||
### Test 3: GetUpdateFileList
|
||||
```bash
|
||||
curl -X GET "https://appin.divoom-gz.com/Device/GetUpdateFileList"
|
||||
```
|
||||
|
||||
**Response:**
|
||||
```json
|
||||
{"ReturnCode":1,"ReturnMessage":"Failed"}
|
||||
```
|
||||
|
||||
### Test 4: GetNewAppVersion
|
||||
```bash
|
||||
curl -X POST "https://appin.divoom-gz.com/GetNewAppVersion" \
|
||||
-H "Content-Type: application/json" -d '{}'
|
||||
```
|
||||
|
||||
**Response:**
|
||||
```json
|
||||
{"ReturnCode":3,"ReturnMessage":"Request data is incomplete"}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Authentifizierungs-Anforderungen
|
||||
|
||||
### Aus APK-Analyse identifizierte Parameter:
|
||||
|
||||
**Device-Parameter:**
|
||||
- `DeviceId` - Eindeutige Geräte-ID
|
||||
- `DeviceType` - Gerätetyp (Pixoo64, Pixoo16, etc.)
|
||||
- `DeviceModel` - Modellnummer
|
||||
- `BluetoothDeviceId` - Bluetooth-Gerät-ID
|
||||
|
||||
**Auth-Parameter:**
|
||||
- `Token` - Authentifizierungs-Token
|
||||
- Wird bei `ReturnCode: 11` mit "Token is not match" abgelehnt
|
||||
|
||||
### Error-Codes:
|
||||
- `ReturnCode: 1` - "Failed" / "no device"
|
||||
- `ReturnCode: 3` - "Request data is incomplete"
|
||||
- `ReturnCode: 10` - "Command is not match"
|
||||
- `ReturnCode: 11` - "Token is not match"
|
||||
|
||||
---
|
||||
|
||||
## Device-Typen (aus APK)
|
||||
|
||||
```java
|
||||
DeviceTypeEnum {
|
||||
PIXOO_64,
|
||||
PIXOO_16,
|
||||
PIXOO_MAX,
|
||||
TIMEBOX_EVO,
|
||||
// weitere...
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Externe Ressourcen
|
||||
|
||||
### Reddit-Post
|
||||
**URL:** https://old.reddit.com/r/Divoom/comments/1i7fe1u/privacy_check/
|
||||
|
||||
**Gefundene Server-Adressen:**
|
||||
```
|
||||
api.divoom-gz.com
|
||||
appin.divoom-gz.com
|
||||
fin.divoom-gz.com
|
||||
min-api.cryptocompare.com # Crypto-Preise
|
||||
qt.gtimg.cn # Aktien-Kurse
|
||||
www.googleapis.com # YouTube/Wetter
|
||||
```
|
||||
|
||||
### GitHub-Projekte
|
||||
|
||||
#### 1. Pixoo64-Advanced-Tools
|
||||
**URL:** https://github.com/tidyhf/Pixoo64-Advanced-Tools
|
||||
|
||||
**Relevante Findings:**
|
||||
- Python-Tool für lokale Steuerung
|
||||
- Nutzt `pixoo` und `pixoo1664` Libraries
|
||||
- Cloud API-Endpoints gefunden:
|
||||
```python
|
||||
DIV_BASE_URL = "https://app.divoom-gz.com"
|
||||
DIV_FILE_URL = "https://f.divoom-gz.com"
|
||||
```
|
||||
- Endpoints:
|
||||
- `/User/UserLogin` - Login
|
||||
- `/GetCategoryFileListV2` - Gallery
|
||||
- `/Comment/GetCommentListV3` - Kommentare
|
||||
- `/Cloud/GetLikeUserList` - Likes
|
||||
|
||||
#### 2. pixoo-homeassistant
|
||||
**URL:** https://github.com/gickowtf/pixoo-homeassistant
|
||||
|
||||
**Info:**
|
||||
- Home Assistant Integration
|
||||
- Lokale IP-basierte Kommunikation
|
||||
- Keine Firmware-Update-Features
|
||||
|
||||
#### 3. pixoo_api (APK Reverse Engineering)
|
||||
**URL:** https://github.com/Grayda/pixoo_api/blob/main/NOTES.md
|
||||
|
||||
**Relevante Endpoints aus decompilierter APK:**
|
||||
- `Device/GetUpdateInfo`
|
||||
- `Device/GetUpdateFileList`
|
||||
- `Device/NotifyUpdate`
|
||||
- `GetNewAppVersion`
|
||||
- `GetUpdateFileV3`
|
||||
|
||||
**Dokumentation:**
|
||||
- Base URL: `https://appin.divoom-gz.com/`
|
||||
- Undokumentierte Remote API
|
||||
- Verschlüsselung: AES mit Key/IV aus APK
|
||||
|
||||
#### 4. Firmware-Repository
|
||||
**URL:** https://github.com/amnemonic/Pixoo64
|
||||
|
||||
**Verfügbare Versionen:**
|
||||
```
|
||||
V90122 - 27 Jul 2022
|
||||
V90126 - 21 Aug 2022
|
||||
V90127 - 02 Sep 2022
|
||||
V90136 - 06 Nov 2022
|
||||
V90146 - 28 Nov 2022
|
||||
V90149 - 26 Dec 2022
|
||||
V90153 - 05 Jan 2023
|
||||
V90156 - 05 Jan 2023
|
||||
V90165 - 23 Mar 2023
|
||||
V90166 - 29 Mar 2023
|
||||
V90167 - 03 Apr 2023
|
||||
V90180 - 27 Jul 2023
|
||||
V90181 - 28 Aug 2023
|
||||
V90192 - 25 Apr 2024
|
||||
V90205 - 15 Feb 2025
|
||||
```
|
||||
|
||||
**Limitations:**
|
||||
- Keine offiziellen Releases
|
||||
- Keine Changelogs
|
||||
- Nur binäre Firmware-Dateien
|
||||
- Unvollständige Sammlung (laut README)
|
||||
|
||||
---
|
||||
|
||||
## APK-Analyse Details
|
||||
|
||||
### Analysierte APK
|
||||
- **Package:** `com.divoom.Divoom`
|
||||
- **Pfad:** `/mnt/d/GitHub/Bridges/com_divoom_Divoom/`
|
||||
- **DEX-Dateien:** 4 (classes.dex, classes2-4.dex)
|
||||
|
||||
### Extraktions-Methoden
|
||||
```bash
|
||||
# URLs extrahieren
|
||||
strings classes*.dex | grep "divoom-gz.com"
|
||||
|
||||
# API-Endpoints finden
|
||||
strings classes*.dex | grep -E "(Device/|Update/|GetNew)"
|
||||
|
||||
# Request/Response-Klassen
|
||||
strings classes*.dex | grep "Request\|Response"
|
||||
```
|
||||
|
||||
### Weitere gefundene Endpoints (nicht Update-bezogen)
|
||||
```
|
||||
User/UserLogin
|
||||
Cloud/GetLikeUserList
|
||||
Comment/GetCommentListV3
|
||||
GetCategoryFileListV2
|
||||
SocialPlatform/* (OAuth für Twitter, Reddit, TikTok, etc.)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Mögliche zukünftige Ansätze
|
||||
|
||||
### Option 1: GitHub-Repository überwachen
|
||||
- **Pro:** Öffentlich zugänglich, keine Auth nötig
|
||||
- **Contra:**
|
||||
- Keine Changelogs
|
||||
- Unvollständige Sammlung
|
||||
- Manuelle Updates durch Community
|
||||
|
||||
**Implementation:**
|
||||
```php
|
||||
// GitHub Commits API
|
||||
$url = "https://api.github.com/repos/amnemonic/Pixoo64/commits";
|
||||
// oder Atom Feed:
|
||||
$url = "https://github.com/amnemonic/Pixoo64/commits/master.atom";
|
||||
```
|
||||
|
||||
### Option 2: APK-Updates überwachen
|
||||
- APKPure/APKMirror für App-Versionen
|
||||
- Indirekte Information über neue Features
|
||||
|
||||
### Option 3: Mit physischem Gerät
|
||||
Wenn Zugriff auf ein Pixoo64:
|
||||
1. Gerät in App registrieren
|
||||
2. Token/DeviceId aus App extrahieren
|
||||
3. API-Calls mit valider Auth
|
||||
|
||||
**Token-Extraktion:**
|
||||
```bash
|
||||
# Aus Android App-Daten (Root erforderlich)
|
||||
adb shell
|
||||
cd /data/data/com.divoom.Divoom/shared_prefs/
|
||||
cat *.xml | grep -i "token\|deviceid"
|
||||
```
|
||||
|
||||
### Option 4: Divoom-Website Scraping
|
||||
- Falls offizielle Changelog-Seite existiert
|
||||
- Keine API-Auth nötig
|
||||
|
||||
---
|
||||
|
||||
## Lokale API (Device)
|
||||
|
||||
### Dokumentation
|
||||
**URL:** http://doc.divoom-gz.com/web/#/12?page_id=196
|
||||
|
||||
**Info:**
|
||||
- Lokale HTTP-API auf Pixoo64-Gerät
|
||||
- Direkter Netzwerk-Zugriff (IP-basiert)
|
||||
- Keine Firmware-Update-Funktionen
|
||||
- Nur für Display-Steuerung
|
||||
|
||||
**Kategorien:**
|
||||
- Dial control
|
||||
- Channel control
|
||||
- System settings
|
||||
- Tool functions
|
||||
- Animation functions
|
||||
|
||||
---
|
||||
|
||||
## Fazit
|
||||
|
||||
Eine **RSS-Bridge für Pixoo64 Firmware-Updates ist derzeit nicht realisierbar**, da:
|
||||
|
||||
1. Alle Update-APIs benötigen Device-Authentifizierung
|
||||
2. Kein öffentlicher Changelog verfügbar
|
||||
3. GitHub-Repo ist unvollständig und Community-maintained
|
||||
|
||||
**Empfehlung:** Warten auf:
|
||||
- Offizielle Divoom Changelog-Seite
|
||||
- Öffentliche API-Dokumentation
|
||||
- Vollständigeres GitHub-Repository
|
||||
|
||||
---
|
||||
|
||||
## Kontakt
|
||||
|
||||
**Divoom Support:**
|
||||
- Website: https://divoom.com
|
||||
- Developer Email: developer@divoom.com (laut APK)
|
||||
- Support: https://divoom.com/apps/help-center
|
||||
|
||||
**Recherche durchgeführt:** 2025-01-25 via Claude Code
|
||||
Reference in New Issue
Block a user