refactor: legacy и apk перенесены в docs/, дедупликация исходников legacy
- docs/legacy/: рабочая раскладка изменённого форка (main.py + пакет aircon/); плоские дубликаты .py удалены, вложенный .git клона удалён (это изменённая копия, а не чистый клон), __pycache__ и .gitignore апстрима убраны. Локальный config_kata.json не версионируется (содержит lanip_key устройства). - docs/apk/: манифест APK; бинарники *.apk и icon.png не версионируются. - Обновлены пути в документации и tools/.
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
Документ реконструирован по декомпилированному APK FGLair 3.4.3 (`com.fujitsu.fglair`,
|
||||
SDK `com.aylanetworks.aylasdk`, см. `AylaLanModule.java`, `AylaEncryption.java`,
|
||||
`AylaLanMessage.java`, `CreateDatapointCommand.java`, `AylaHttpServer.java`,
|
||||
`com.cafbit.netlib.dns.NetThread`) и сверён с существующим скриптом `legacy/`.
|
||||
`com.cafbit.netlib.dns.NetThread`) и сверён с существующим скриптом `docs/legacy/`.
|
||||
Всё, что помечено **[APK]**, подтверждено кодом приложения; **[LEGACY]** — известно
|
||||
только из скрипта; **[ПРОВЕРЕНО НА ПРИБОРЕ]** — проверено живыми экспериментами
|
||||
на AP-WC1E (сентябрь 2026, см. §10); **[HYP]** — правдоподобная гипотеза,
|
||||
@@ -100,7 +100,7 @@ key = HMAC_SHA256(K, HMAC_SHA256(K, msg) || msg) # 32 байта
|
||||
* **app-ключи** (приложение шифрует/подписывает, модуль проверяет) — из `msg_app`;
|
||||
* **dev-ключи** (модуль шифрует, приложение проверяет) — из `msg_dev`.
|
||||
|
||||
Совпадает с `legacy/config.py`. **[APK: AylaEncryption.generateSessionKeys]**
|
||||
Совпадает с `docs/legacy/aircon/config.py`. **[APK: AylaEncryption.generateSessionKeys]**
|
||||
|
||||
### 3.3. Формат защищённого сообщения (envelope)
|
||||
|
||||
@@ -347,7 +347,7 @@ data: {"id":"<id команды>","ack_status":200,"ack_message":0,"dsn":"..."}
|
||||
* CN: `app_id=FGLairField-cn-id`, `app_secret=FGLairField-cn-zezg7Y60YpAvy3HPwxvWLnd4Oh4`
|
||||
|
||||
`app_secret` = `<prefix>-<base64url-nopad(секрет)>`; байты секрета — в
|
||||
`legacy/app_mappings.py` (проверено: EU совпадает).
|
||||
`docs/legacy/aircon/app_mappings.py` (проверено: EU совпадает).
|
||||
|
||||
Endpoints:
|
||||
|
||||
@@ -487,7 +487,7 @@ building_name, wifi_led_enable, service_contact_*, device_capabilities, refresh.
|
||||
|
||||
## 10. Проверено на приборе / осталось неизвестным
|
||||
|
||||
Проверено на AP-WC1E (fw 2.6.17-fgl2, ключ из `config_kata.json`), см. также §2,
|
||||
Проверено на AP-WC1E (fw 2.6.17-fgl2, ключ из `docs/legacy/config_kata.json`), см. также §2,
|
||||
§4.1, §4.4, §5.1, §5.3, §6: полный цикл сессии, KDF/CBC-цепочка/подписи в обе
|
||||
стороны, GET/запись свойств, re-key, 401/400-игнорирование, 2 слота + 503,
|
||||
delete_session, mDNS :10276. Рабочий эталонный клиент: `tools/probe_reference.py`.
|
||||
|
||||
Reference in New Issue
Block a user