Home

Awesome

<p align="center"> <img height="200" src="https://user-images.githubusercontent.com/39277388/80304933-cb6f7400-87b9-11ea-878b-75e48779e997.png"> </p> <p align="center"> <a target="_blank" href="https://github.com/roleoroleo/yi-hack-Allwinner/releases"> <img src="https://img.shields.io/github/downloads/roleoroleo/yi-hack-Allwinner/total.svg" alt="Releases Downloads"> </a> </p>

yi-hack-Allwinner is a modification of the firmware for the Allwinner-based Yi Camera platform.

Table of Contents

Installation

Backup

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/wiki/Dump-your-backup-firmware-(SD-card)

Anyway, the hack procedure will create a backup for you.

Install Procedure

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.

  1. Check if your cam is supported in the "Supported cameras" section and note the file prefix.
  2. Format an SD Card as FAT32. It's recommended to format the card in the camera using the camera's native format function. If the card is already formatted, remove all the files.
  3. Download the latest release from the Releases page based on the file prefix.
  4. Extract the contents of the archive to the root of your SD card.
|-- Factory/
|-- newhome/
|-- home_xxx.stage
  1. (Optional) If you want to set wifi credentials, rename the file Factory/configure_wifi.cfg.ori to Factory/configure_wifi.cfg and edit the file with your username and password.
  2. Insert the SD Card and reboot the camera.
  3. Wait for the camera to update. It will reboot a couple of times as the camera is rooted and the new firmware is applied. It can take up to an hour to update. Once the light is solid blue for at least a minute it is complete.
  4. Check the hack opening the web interface http://IP-CAM (where IP-CAM is the IP address of the cam assigned by your router).
  5. Check the FAQ if you have a problem: https://github.com/roleoroleo/yi-hack-Allwinner/wiki/FAQ

Online Update Procedure

  1. Go to the "Motion Events" web page
  2. Remove all unnecessary video files
  3. Go to the "Maintenance" web page
  4. Check if a new release is available
  5. Click "Upgrade Firmware"
  6. Wait for cam reboot

If you don't delete mp4 files, the upgrade procedure will take a long time.

Manual Update Procedure

Check the wiki: https://github.com/roleoroleo/yi-hack-Allwinner-v2/wiki/Manual-firmware-upgrade

Optional Utilities

Several optional utilities are avaiable, some supporting experimental features like text-to-speech.

Contributing and Bug Reports

See CONTRIBUTING


Features

This custom firmware contains features replicated from the yi-hack-MStar project and similar to the yi-hack-v4 project.

Performance

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

Supported cameras

Currently this project supports only the following cameras:

CameraFirmwareFile prefixRemarks
Yi 1080p Home 9FUS8.2.0*y20ga-
Yi 1080p Home 9FUS12.2.0*y20ga-
Yi 1080p Home BFUS8.2.0*y20ga-
Yi 1080p Home BFUS12.2.0*y20ga-
Yi 1080p Home SFUS8.2.0*y20ga-
Yi 1080p Home SFUS12.2.0*y20ga-
Yi 1080p Home BFCN8.2.0*y20ga-
Yi 1080p Home BFCN12.2.0*y20ga-
Yi 1080p Home 9FUS8.3.0*y25ga-
Yi 1080p Home IFUS8.3.0*y25ga-
Yi Dome X BFUS8.1.0*y30qa-
Kami Baby LFUS1.3.0*y501gcbeta version

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

Is my cam supported?

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:

Home Assistant integration

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'

Build your own firmware

If you want to build your own firmware, clone this git and compile using a linux machine. Quick explanation:

  1. Download and install the SDK as described here
  2. clone this git: git clone https://github.com/roleoroleo/yi-hack-Allwinner
  3. Init modules: git submodule update --init
  4. Compile: ./scripts/compile.sh
  5. Pack the firmware: ./scripts/pack_fw.all.sh

Instead 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.

Unbricking

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/wiki/Unbrick-the-cam.


License

MIT

DISCLAIMER

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.

Donation

If you like this project, you can buy roleo a beer :)

Click here or use the below QR code to donate via PayPal

<p align="center"> <img src="https://github.com/roleoroleo/yi-hack-Allwinner/assets/39277388/670a6b7d-68f8-4d8a-8381-21b6500d9fcb"/> </p>