diff --git a/README.md b/README.md index 93a760bf..35b280aa 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,4 @@ - - - - OpenIPC logo - +![OpenIPC logo][logo] # OpenIPC Decoder @@ -95,7 +91,7 @@ Shows all configured slots in a 2×2 grid. Each cell has its own connection and > - **Only 4 camera slots** — [#13](https://github.com/OpenIPC/decoder/issues/13) > - **G.726 audio is not supported** — [#14](https://github.com/OpenIPC/decoder/issues/14) > - **Possible dependency on Google services (GAPPS)** on some devices; under investigation, so disable GAPPS with care — [#15](https://github.com/OpenIPC/decoder/issues/15) -> - **Credentials are sent in clear text** over plain RTSP/HTTP (Basic auth unless the camera asks for Digest); RTSPS is not supported — [#16](https://github.com/OpenIPC/decoder/issues/16) +> - **Credentials are sent in clear text** over plain RTSP/HTTP (Basic auth unless the camera asks for Digest); RTSPS is not supported and not planned — [#16](https://github.com/OpenIPC/decoder/issues/16) > > Known bugs are tracked separately under the [`bug` label](https://github.com/OpenIPC/decoder/issues?q=is%3Aissue+is%3Aopen+label%3Abug). @@ -149,8 +145,8 @@ Network, video decoding and audio run on separate threads, so a slow decoder nev ## Security notes - Credentials are taken from the URL and sent in the `Authorization` header: Basic first, Digest when the camera asks for it. They are not included in the RTSP request line. -- Plain RTSP and HTTP are not encrypted. Use the app only on trusted networks, see [#16](https://github.com/OpenIPC/decoder/issues/16). -- Camera URLs, including passwords, are stored encrypted (AES-256-GCM with a key kept in the Android Keystore, Android 6.0+; on Android 5.x they are stored as before) in the app's private storage. Backup is disabled (`allowBackup="false"`). +- RTSP and HTTP are not encrypted, and RTSPS is not supported. Credentials that a camera expects inside the URL path or query (for example `user=…_password=…`) are sent with every request. Use the app only on trusted networks, see [#16](https://github.com/OpenIPC/decoder/issues/16). +- Camera URLs, including passwords, are stored encrypted (AES-256-GCM with a key kept in the Android Keystore, Android 6.0+) in the app's private storage. On Android 5.x, or if the Keystore is unavailable, they are stored in plain text. Backup is disabled (`allowBackup="false"`). ## Device compatibility @@ -211,3 +207,5 @@ Changes are listed on the [releases page](https://github.com/OpenIPC/decoder/rel - Documentation: [openipc.org](https://openipc.org) [![Telegram](https://openipc.org/images/telegram_button.svg)](https://openipc.org/our-channels) + +[logo]: https://raw.githubusercontent.com/OpenIPC/.github/refs/heads/main/assets/openipc-logo-black.svg diff --git a/README.ru.md b/README.ru.md index 4ef7464d..03a4bd09 100644 --- a/README.ru.md +++ b/README.ru.md @@ -1,8 +1,4 @@ - - - - OpenIPC logo - +![OpenIPC logo][logo] # OpenIPC Decoder @@ -95,7 +91,7 @@ > - **Только 4 слота для камер** — [#13](https://github.com/OpenIPC/decoder/issues/13) > - **Не поддерживается звук G.726** — [#14](https://github.com/OpenIPC/decoder/issues/14) > - **Возможная зависимость от сервисов Google (GAPPS)** на некоторых устройствах; изучается, поэтому отключайте GAPPS осознанно — [#15](https://github.com/OpenIPC/decoder/issues/15) -> - **Логин и пароль передаются в открытом виде** по RTSP/HTTP без шифрования (Basic, если камера не запросила Digest); RTSPS не поддерживается — [#16](https://github.com/OpenIPC/decoder/issues/16) +> - **Логин и пароль передаются в открытом виде** по RTSP/HTTP без шифрования (Basic, если камера не запросила Digest); RTSPS не поддерживается и не планируется — [#16](https://github.com/OpenIPC/decoder/issues/16) > > Известные ошибки собраны отдельно, под [меткой `bug`](https://github.com/OpenIPC/decoder/issues?q=is%3Aissue+is%3Aopen+label%3Abug). @@ -149,8 +145,8 @@ export KEY_PASS=your_key_password ## Безопасность - Логин и пароль берутся из адреса и передаются в заголовке `Authorization`: сначала Basic, Digest — если камера его запросит. В строку RTSP-запроса они не попадают. -- RTSP и HTTP без шифрования. Используйте приложение только в доверенных сетях, см. [#16](https://github.com/OpenIPC/decoder/issues/16). -- Адреса камер вместе с паролями хранятся в закрытом хранилище приложения в зашифрованном виде (AES-256-GCM, ключ в Android Keystore, Android 6.0+; на Android 5.x — как раньше). Резервное копирование отключено (`allowBackup="false"`). +- RTSP и HTTP без шифрования, RTSPS не поддерживается. Если камера ждёт логин и пароль прямо в пути или параметрах адреса (например, `user=…_password=…`), они уходят с каждым запросом. Используйте приложение только в доверенных сетях, см. [#16](https://github.com/OpenIPC/decoder/issues/16). +- Адреса камер вместе с паролями хранятся в закрытом хранилище приложения в зашифрованном виде (AES-256-GCM, ключ в Android Keystore, Android 6.0+). На Android 5.x или если Keystore недоступен — в открытом виде. Резервное копирование отключено (`allowBackup="false"`). ## Совместимость с устройствами @@ -211,3 +207,5 @@ export KEY_PASS=your_key_password - Документация: [openipc.org](https://openipc.org) [![Telegram](https://openipc.org/images/telegram_button.svg)](https://openipc.org/our-channels) + +[logo]: https://raw.githubusercontent.com/OpenIPC/.github/refs/heads/main/assets/openipc-logo-black.svg diff --git a/README.zh-CN.md b/README.zh-CN.md index a2f4ff1f..5d591530 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -1,8 +1,4 @@ - - - - OpenIPC logo - +![OpenIPC logo][logo] # OpenIPC Decoder @@ -95,7 +91,7 @@ > - **仅有 4 个摄像机槽位** — [#13](https://github.com/OpenIPC/decoder/issues/13) > - **不支持 G.726 音频** — [#14](https://github.com/OpenIPC/decoder/issues/14) > - **部分设备上可能依赖 Google 服务(GAPPS)**,仍在调查中,请谨慎禁用 GAPPS — [#15](https://github.com/OpenIPC/decoder/issues/15) -> - **用户名和密码以明文传输**(未加密的 RTSP/HTTP;摄像机未要求 Digest 时发送 Basic),不支持 RTSPS — [#16](https://github.com/OpenIPC/decoder/issues/16) +> - **用户名和密码以明文传输**(未加密的 RTSP/HTTP;摄像机未要求 Digest 时发送 Basic),不支持 RTSPS,也不计划支持 — [#16](https://github.com/OpenIPC/decoder/issues/16) > > 已知的程序错误另行收录在 [`bug` 标签](https://github.com/OpenIPC/decoder/issues?q=is%3Aissue+is%3Aopen+label%3Abug)下。 @@ -149,8 +145,8 @@ export KEY_PASS=your_key_password ## 安全说明 - 用户名和密码从地址中提取,通过 `Authorization` 头发送:默认使用 Basic,摄像机要求时改用 Digest。不会出现在 RTSP 请求行中。 -- RTSP 和 HTTP 均未加密,请仅在可信网络中使用,参见 [#16](https://github.com/OpenIPC/decoder/issues/16)。 -- 摄像机地址(含密码)加密保存在应用私有存储中(AES-256-GCM,密钥保存在 Android Keystore,Android 6.0 及以上;Android 5.x 仍按原方式保存),并已禁用备份(`allowBackup="false"`)。 +- RTSP 和 HTTP 均未加密,不支持 RTSPS。若摄像机要求将用户名和密码写在地址路径或参数中(例如 `user=…_password=…`),它们会随每个请求发送。请仅在可信网络中使用,参见 [#16](https://github.com/OpenIPC/decoder/issues/16)。 +- 摄像机地址(含密码)加密保存在应用私有存储中(AES-256-GCM,密钥保存在 Android Keystore,Android 6.0 及以上),在 Android 5.x 或 Keystore 不可用时以明文保存,并已禁用备份(`allowBackup="false"`)。 ## 设备兼容性 @@ -211,3 +207,5 @@ export KEY_PASS=your_key_password - 文档:[openipc.org](https://openipc.org) [![Telegram](https://openipc.org/images/telegram_button.svg)](https://openipc.org/our-channels) + +[logo]: https://raw.githubusercontent.com/OpenIPC/.github/refs/heads/main/assets/openipc-logo-black.svg