1
0

Create Pixoo64.md

This commit is contained in:
Akamaru
2025-11-25 15:03:43 +01:00
parent a62753a8e0
commit 2a2af1e941

337
Pixoo64.md Normal file
View 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