Custom firmware for Yi 1080p camera based on Allwinner platform
Shell
1,147
950 commits
updated Sep 26, 2026
yi-hack-Allwinner-v2 is a modification of the firmware for the Allwinner-based Yi Camera platform. What's the difference between v1 and v2? Allwinner-v2 is not an upgrade for Allwinner, it's a version dedicated to a different "family". Same cpu but different flash layout.
It's not easy to brick the cam but it can happen. So please, make your backup copy: https://github.com/roleoroleo/yi-hack-Allwinner-v2/wiki/Dump-your-backup-firmware-(SD-card)
Anyway, the hack procedure will create a backup for you.
If you want to use the original Yi app, please install it and complete the pairing process before installing the hack.
Otherwise, check setep 4.
|-- Factory/
|-- yi-hack/
|-- lower_half_init.sh
Check the wiki: https://github.com/roleoroleo/yi-hack-Allwinner-v2/wiki/Manual-firmware-upgrade
Several optional utilities are avaiable, some supporting experimental features like text-to-speech.
See CONTRIBUTING
This custom firmware contains features replicated from the yi-hack-MStar project and similar to the yi-hack-v4 project.
The performance of the cam is not so good (CPU, RAM, etc...). Low ram is the bigger problem. If you enable all the services you may have some problems. For example, enabling snapshots may cause frequent reboots. So, enable swap file even if this will waste the sd
Currently this project supports only the following cameras:
| Camera | SN prefix | Firmware | File prefix | Remarks |
|---|---|---|---|---|
| Yi 1080p Home | BFUS - IFUS - RFUS | 9.0.19* | y21ga | - |
| Yi 1080p Home | BFUS - IFUS - RFUS | 12.1.19* | y21ga | - |
| Yi 1080p Home | IFUS - QFUS - RFUS | 9.0.36* | y211ga | - |
| Yi 1080p Home | IFUS - QFUS - RFUS | 12.0.37* | y211ga | - |
| Yi 1080p Home | IFUS - QFUS - RFUS | 12.1.37* | y211ga | - |
| Yi 1080p Home | QFUS - RFUS | 9.0.35* | y291ga | - |
| Yi 1080p Home | QFUS - RFUS | 12.0.35* | y291ga | - |
| Yi Outdoor 1080p | IFUS - RFUS | 9.0.26* | h30ga | - |
| Yi Outdoor 1080p | IFUS - RFUS | 11.1.26* | h30ga | - |
| Yi 1080p Dome | *FUS | 9.0.05* | r30gb | beta version (check this issue https://github.com/roleoroleo/yi-hack-Allwinner-v2/issues/484) |
| Yi 1080p Dome | *FUS | 12.1.05* | r30gb | beta version (check this issue https://github.com/roleoroleo/yi-hack-Allwinner-v2/issues/484) |
| Yi Dome Guard | YRS | 9.0.05* | r30gb | beta version (check this issue https://github.com/roleoroleo/yi-hack-Allwinner-v2/issues/484) |
| Yi Dome Camera U (Full HD) | BFUS - SFUS | 9.0.22* | h52ga | - |
| Yi Dome Camera U (2K) | BFUS - SFUS | 9.0.21* | h51ga | - |
| Yi Dome U Pro 2K | LFUS | 9.0.27* | h60ga | - |
| Yi Outdoor 1080p | QFUS | 9.0.45* | r40ga | - |
| Yi Home Y4 | IFCN | 9.0.09* | y29ga | - |
| Yi Dome Guard | QFUS | 9.0.46* | r35gb | - |
| Yi Dome Guard | QFUS | 12.1.47* | r35gb | - |
| Yi Dome Guard | YRS | 9.0.46* | r35gb | - |
| Yi Dome Guard | YRS | 12.1.47* | r35gb or r37gb | https://github.com/roleoroleo/yi-hack-Allwinner-v2/issues/1156 |
| Yi Dome Guard | RFUS | 12.1.47* | r35gb or r37gb | https://github.com/roleoroleo/yi-hack-Allwinner-v2/issues/1156 |
| Yi Pro 2K Home | RFUS - YFUS - ZFUS | 12.0.51* | y623 | - |
| Kami mini home | IFUS | 9.0.20* | y28ga | - |
| MIBAO G1 1296p dome | - | 9.0.04* | qg311r | - |
| BLITZWOLF BW-YIC1 | - | 9.0.41* | b091qp | - |
| ESCAM PT202 | - | 9.0.41* | b091qp | https://github.com/roleoroleo/yi-hack-Allwinner-v2/discussions/624#discussioncomment-5816561 |
| YS-QC-02 | - | 9.0.41* | b091qp | https://github.com/roleoroleo/yi-hack_ha_integration/issues/84 |
| Flood Light Camera Outdoor L850Y-US | - | 9.0.41* | b091qp | - |
| Tovendor Mini Smart Home Camera | - | 9.0.41* | b091qp | - |
USE AT YOUR OWN RISK.
Do not try to use a fw on an unlisted model
Do not try to force the fw loading renaming the files
If you want to know if your cam is supported, please check the serial number (first 4 letters) and the firmware version. If both numbers appear in the same row in the table above, your cam is supported. If not, check the other projects related to Yi cams:
Are you using Home Assistant? Do you want to integrate your cam? Try these custom integrations:
You can also use the web services in Home Assistant -- here's one way to do that. (This example requires the nanotts optional utility to be installed on the camera.) Set up a rest_command in your configuration.yaml to call one of the web services.
rest_command:
camera_announce:
url: http://[camera address]/cgi-bin/speak.sh?lang={{language}}&voldb={{volume}}
method: POST
payload: "{{message}}"
Create an automation and use yaml in the action to send data to the web service.
service: rest_command.camera_announce
data:
language: en-US
message: "All your base are belong to us."
volume: '-8'
Frigate can consume the RTSP streams directly. Enable the RTSP server in the camera web interface and use one of these stream URLs:
rtsp://IP-CAM/ch0_0.h264 - high resolutionrtsp://IP-CAM/ch0_1.h264 - low resolutionrtsp://IP-CAM/ch0_2.h264 - audio onlyFor a minimal setup, use the low resolution stream for detection to reduce load on the camera:
cameras:
yi_camera:
ffmpeg:
inputs:
- path: rtsp://IP-CAM/ch0_1.h264
roles:
- detect
If you need a higher quality stream for recording, add the high resolution stream as a separate input:
cameras:
yi_camera:
ffmpeg:
inputs:
- path: rtsp://IP-CAM/ch0_1.h264
roles:
- detect
- path: rtsp://IP-CAM/ch0_0.h264
roles:
- record
If authentication is enabled in the camera web interface, include the configured username and password in the RTSP URL:
path: rtsp://user:password@IP-CAM/ch0_1.h264
For models with PTZ support, enable the ONVIF server in the camera web interface and add an onvif section to the Frigate camera configuration. The ONVIF port is the camera HTTP port, usually 80 unless you changed it.
cameras:
yi_ptz_camera:
ffmpeg:
inputs:
- path: rtsp://IP-CAM/ch0_1.h264
roles:
- detect
onvif:
host: IP-CAM
port: 80
user: ""
password: ""
If ONVIF authentication is enabled, replace the empty strings with the camera credentials. If ONVIF authentication is disabled, keep user: "" and password: ""; some Frigate versions expect these keys even when the camera allows anonymous ONVIF access.
Frigate shows PTZ controls only when its ONVIF connection succeeds and the camera model exposes PTZ commands. Not all supported cameras have PTZ hardware.
A complete remote surveillance and control system: control your camera, receive automatic alerts, and communicate bidirectionally — all through a Telegram bot. Features - On-demand snapshot and video recording via Telegram commands - Automatic motion alerts with photo - Automatic sound alerts with snapshot + 15s audio clip - Bidirectional voice intercom — speak through Telegram, hear through the camera speaker - Blue LED control — turn on/off remotely - Infrared control — turn on/off remotely - Silent mode — suppress notifications without stopping the watchers - System status — IP, uptime, memory, process PIDs - Remote reboot Get scripts here.
If you want to build your own firmware, clone this git and compile using a linux machine. Quick explanation:
git clone https://github.com/roleoroleo/yi-hack-Allwinner-v2git submodule update --init./scripts/compile.sh./scripts/pack_fw.all.shInstead of installing the SDK on your host machine, there's also the option to use a devcontainer from within Visual Studio Code. Please ensure you have the Remote - Containers extension installed for this to work.
If your camera doesn't start, no panic. This hack is not a permanent change, remove your SD card and the cam will come back to the original state. If the camera still won't start, try the "Unbrick the cam" procedure https://github.com/roleoroleo/yi-hack-Allwinner-v2/wiki/Unbrick-the-cam.
NOBODY BUT YOU IS RESPONSIBLE FOR ANY USE OR DAMAGE THIS SOFTWARE MAY CAUSE. THIS IS INTENDED FOR EDUCATIONAL PURPOSES ONLY. USE AT YOUR OWN RISK.
If you like this project, you can buy roleo a beer :)
Click here or use the below QR code to donate via PayPal
111 followers · starred Jun 2023
116 followers · starred Feb 2022
21 followers · starred Jul 2024
42 followers · starred Jun 2022
Custom firmware for Yi 1080p camera based on Allwinner platform
Shell
1,147
950 commits
updated Sep 26, 2026
yi-hack-Allwinner-v2 is a modification of the firmware for the Allwinner-based Yi Camera platform. What's the difference between v1 and v2? Allwinner-v2 is not an upgrade for Allwinner, it's a version dedicated to a different "family". Same cpu but different flash layout.
It's not easy to brick the cam but it can happen. So please, make your backup copy: https://github.com/roleoroleo/yi-hack-Allwinner-v2/wiki/Dump-your-backup-firmware-(SD-card)
Anyway, the hack procedure will create a backup for you.
If you want to use the original Yi app, please install it and complete the pairing process before installing the hack.
Otherwise, check setep 4.
|-- Factory/
|-- yi-hack/
|-- lower_half_init.sh
Check the wiki: https://github.com/roleoroleo/yi-hack-Allwinner-v2/wiki/Manual-firmware-upgrade
Several optional utilities are avaiable, some supporting experimental features like text-to-speech.
See CONTRIBUTING
This custom firmware contains features replicated from the yi-hack-MStar project and similar to the yi-hack-v4 project.
The performance of the cam is not so good (CPU, RAM, etc...). Low ram is the bigger problem. If you enable all the services you may have some problems. For example, enabling snapshots may cause frequent reboots. So, enable swap file even if this will waste the sd
Currently this project supports only the following cameras:
| Camera | SN prefix | Firmware | File prefix | Remarks |
|---|---|---|---|---|
| Yi 1080p Home | BFUS - IFUS - RFUS | 9.0.19* | y21ga | - |
| Yi 1080p Home | BFUS - IFUS - RFUS | 12.1.19* | y21ga | - |
| Yi 1080p Home | IFUS - QFUS - RFUS | 9.0.36* | y211ga | - |
| Yi 1080p Home | IFUS - QFUS - RFUS | 12.0.37* | y211ga | - |
| Yi 1080p Home | IFUS - QFUS - RFUS | 12.1.37* | y211ga | - |
| Yi 1080p Home | QFUS - RFUS | 9.0.35* | y291ga | - |
| Yi 1080p Home | QFUS - RFUS | 12.0.35* | y291ga | - |
| Yi Outdoor 1080p | IFUS - RFUS | 9.0.26* | h30ga | - |
| Yi Outdoor 1080p | IFUS - RFUS | 11.1.26* | h30ga | - |
| Yi 1080p Dome | *FUS | 9.0.05* | r30gb | beta version (check this issue https://github.com/roleoroleo/yi-hack-Allwinner-v2/issues/484) |
| Yi 1080p Dome | *FUS | 12.1.05* | r30gb | beta version (check this issue https://github.com/roleoroleo/yi-hack-Allwinner-v2/issues/484) |
| Yi Dome Guard | YRS | 9.0.05* | r30gb | beta version (check this issue https://github.com/roleoroleo/yi-hack-Allwinner-v2/issues/484) |
| Yi Dome Camera U (Full HD) | BFUS - SFUS | 9.0.22* | h52ga | - |
| Yi Dome Camera U (2K) | BFUS - SFUS | 9.0.21* | h51ga | - |
| Yi Dome U Pro 2K | LFUS | 9.0.27* | h60ga | - |
| Yi Outdoor 1080p | QFUS | 9.0.45* | r40ga | - |
| Yi Home Y4 | IFCN | 9.0.09* | y29ga | - |
| Yi Dome Guard | QFUS | 9.0.46* | r35gb | - |
| Yi Dome Guard | QFUS | 12.1.47* | r35gb | - |
| Yi Dome Guard | YRS | 9.0.46* | r35gb | - |
| Yi Dome Guard | YRS | 12.1.47* | r35gb or r37gb | https://github.com/roleoroleo/yi-hack-Allwinner-v2/issues/1156 |
| Yi Dome Guard | RFUS | 12.1.47* | r35gb or r37gb | https://github.com/roleoroleo/yi-hack-Allwinner-v2/issues/1156 |
| Yi Pro 2K Home | RFUS - YFUS - ZFUS | 12.0.51* | y623 | - |
| Kami mini home | IFUS | 9.0.20* | y28ga | - |
| MIBAO G1 1296p dome | - | 9.0.04* | qg311r | - |
| BLITZWOLF BW-YIC1 | - | 9.0.41* | b091qp | - |
| ESCAM PT202 | - | 9.0.41* | b091qp | https://github.com/roleoroleo/yi-hack-Allwinner-v2/discussions/624#discussioncomment-5816561 |
| YS-QC-02 | - | 9.0.41* | b091qp | https://github.com/roleoroleo/yi-hack_ha_integration/issues/84 |
| Flood Light Camera Outdoor L850Y-US | - | 9.0.41* | b091qp | - |
| Tovendor Mini Smart Home Camera | - | 9.0.41* | b091qp | - |
USE AT YOUR OWN RISK.
Do not try to use a fw on an unlisted model
Do not try to force the fw loading renaming the files
If you want to know if your cam is supported, please check the serial number (first 4 letters) and the firmware version. If both numbers appear in the same row in the table above, your cam is supported. If not, check the other projects related to Yi cams:
Are you using Home Assistant? Do you want to integrate your cam? Try these custom integrations:
You can also use the web services in Home Assistant -- here's one way to do that. (This example requires the nanotts optional utility to be installed on the camera.) Set up a rest_command in your configuration.yaml to call one of the web services.
rest_command:
camera_announce:
url: http://[camera address]/cgi-bin/speak.sh?lang={{language}}&voldb={{volume}}
method: POST
payload: "{{message}}"
Create an automation and use yaml in the action to send data to the web service.
service: rest_command.camera_announce
data:
language: en-US
message: "All your base are belong to us."
volume: '-8'
Frigate can consume the RTSP streams directly. Enable the RTSP server in the camera web interface and use one of these stream URLs:
rtsp://IP-CAM/ch0_0.h264 - high resolutionrtsp://IP-CAM/ch0_1.h264 - low resolutionrtsp://IP-CAM/ch0_2.h264 - audio onlyFor a minimal setup, use the low resolution stream for detection to reduce load on the camera:
cameras:
yi_camera:
ffmpeg:
inputs:
- path: rtsp://IP-CAM/ch0_1.h264
roles:
- detect
If you need a higher quality stream for recording, add the high resolution stream as a separate input:
cameras:
yi_camera:
ffmpeg:
inputs:
- path: rtsp://IP-CAM/ch0_1.h264
roles:
- detect
- path: rtsp://IP-CAM/ch0_0.h264
roles:
- record
If authentication is enabled in the camera web interface, include the configured username and password in the RTSP URL:
path: rtsp://user:password@IP-CAM/ch0_1.h264
For models with PTZ support, enable the ONVIF server in the camera web interface and add an onvif section to the Frigate camera configuration. The ONVIF port is the camera HTTP port, usually 80 unless you changed it.
cameras:
yi_ptz_camera:
ffmpeg:
inputs:
- path: rtsp://IP-CAM/ch0_1.h264
roles:
- detect
onvif:
host: IP-CAM
port: 80
user: ""
password: ""
If ONVIF authentication is enabled, replace the empty strings with the camera credentials. If ONVIF authentication is disabled, keep user: "" and password: ""; some Frigate versions expect these keys even when the camera allows anonymous ONVIF access.
Frigate shows PTZ controls only when its ONVIF connection succeeds and the camera model exposes PTZ commands. Not all supported cameras have PTZ hardware.
A complete remote surveillance and control system: control your camera, receive automatic alerts, and communicate bidirectionally — all through a Telegram bot. Features - On-demand snapshot and video recording via Telegram commands - Automatic motion alerts with photo - Automatic sound alerts with snapshot + 15s audio clip - Bidirectional voice intercom — speak through Telegram, hear through the camera speaker - Blue LED control — turn on/off remotely - Infrared control — turn on/off remotely - Silent mode — suppress notifications without stopping the watchers - System status — IP, uptime, memory, process PIDs - Remote reboot Get scripts here.
If you want to build your own firmware, clone this git and compile using a linux machine. Quick explanation:
git clone https://github.com/roleoroleo/yi-hack-Allwinner-v2git submodule update --init./scripts/compile.sh./scripts/pack_fw.all.shInstead of installing the SDK on your host machine, there's also the option to use a devcontainer from within Visual Studio Code. Please ensure you have the Remote - Containers extension installed for this to work.
If your camera doesn't start, no panic. This hack is not a permanent change, remove your SD card and the cam will come back to the original state. If the camera still won't start, try the "Unbrick the cam" procedure https://github.com/roleoroleo/yi-hack-Allwinner-v2/wiki/Unbrick-the-cam.
NOBODY BUT YOU IS RESPONSIBLE FOR ANY USE OR DAMAGE THIS SOFTWARE MAY CAUSE. THIS IS INTENDED FOR EDUCATIONAL PURPOSES ONLY. USE AT YOUR OWN RISK.
If you like this project, you can buy roleo a beer :)
Click here or use the below QR code to donate via PayPal
111 followers · starred Jun 2023
116 followers · starred Feb 2022
21 followers · starred Jul 2024
42 followers · starred Jun 2022