Files
tuya-cloudcutter/HOST_SPECIFIC_INSTRUCTIONS.md
Cossid b28723ae61 Add RTL8720CF support (#857)
* Initial RTL8720CF support

* Fix RTL8720CF_OTA file validation.

* be a bit more robust on chip string matching

* Really rough refactor of haxomatic for RTL8720CF, not complete.

* Update RTL8720CF 2.3.0 haxomatic hex match strings

* Remove length validation from authkey/uuid so it can work with both Tuya and CloudCutter generated keys.

* Fix bk7231 string detection
Add second RTL8720CF 2.3.0 profile

* Refactor haxomatic to be more modular and maintainable.

* haxomatic - minor cleanup

* profile-building - Pull PSK when pulling schema.

* Haxomatic - Search all binaries for patch patterns.
Update known RTL8720CF match pattern identifiers.

* Change network to custom 10.204.0.1/24 network (204 = 0xCC)
Send multiple DNS servers, which may help devices that hang after DHCP
Spend less time sending wifi connect requests so AP can start listening sooner.

* Update exploit for new offsets.

* Haxomatic - Add 1.0.x SDK

* Update haxomatic for newer found patterns.

* Minor tweaks

* Updates to profile-building

* Add storage parsing to extract_rtl8720cf

* Switch to bk7231tools to extract rtl8720cf storage to remove an unneeded dependency.

* remove debug code

* Add special case for sdk identification for single build missing standard string.

* Find swv before device_class, as we may want to search directly after it.

* Update comments, seek entire bin for storage.

* Add missing new address in profile.
Add ability to process inactive OTA app.

* Update documentation.

* fix typo.

* Fix a type in beken extract.

* Add haxomatic pattern for oddball BK7231N 2.3.1 SDK.

* Haxomatic - Add RTL8720CF 2.3.1 SDK pattern.

* Fix copy/paste typo

* profile-building - proceess_app - add more device class match strings.

* one more

* profile-building - better log SDK data

* Add a special thanks section.

* fix typo

* Clean up documentation.

* documentation - use numbered lists.

* process_app - add another device class identifier.
2025-11-25 17:18:58 -06:00

4.0 KiB

Raspberry Pi

Generic (Zero 2W, 3, or 4)

Use these instruction if:

  • You plan on plugging your pi into a monitor and using a keyboard
  • Or, you plan on plugging you pi in with ethernet and using SSH over that ethernet connection

Steps:

  1. Use Raspberry Pi Imager to burn "Raspberry Pi OS Lite (32 Bit)" to an SD card

    • As of this note, 2022-04-04 build of Bullseye
    • A 4GB SD card is required to have enough space for the OS and building the Docker image.
    • If using SSH, enable it (using the installer or making an empty file ssh on the boot partition)
  2. Access the pi (SSH or keyboard + monitor)

  3. Install Network Manager (only reboot once all files are in place)

    • sudo apt update && sudo apt install network-manager
    • sudo nano /etc/dhcpcd.conf then add line denyinterfaces wlan0
    • sudo nano /etc/NetworkManager/NetworkManager.conf and make it look exactly like
    [main]
    plugins=ifupdown,keyfile
    dhcp=internal
    
    [ifupdown]
    managed=true
    
  4. Reboot the pi sudo reboot then reaccess.

  5. Make sure network manager is enabled and running:

    • sudo systemctl enable NetworkManager.service
    • sudo systemctl start NetworkManager.service
  6. Install Docker with curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh

  7. Install git sudo apt install git

  8. Clone tuya-cloudcutter repo git clone https://github.com/tuya-cloudcutter/tuya-cloudcutter

  9. Go to cloned tuya-cloudcutter repo cd tuya-cloudcutter

  10. (Optional as independent step) In the cloudcutter directory, build the docker image sudo docker build --network=host -t cloudcutter .

  11. Run CloudCutter with sudo ./tuya-cloudcutter.sh -r ... (refer to usage instructions)

Pi Zero 2W with SSH over USB

Use these instructions if:

  • You would like to SSH to the Pi Zero 2W using USB

Steps:

  1. Use Raspberry Pi Imager to burn "Raspberry Pi OS Lite (32 Bit)" to an SD card

    • As of this note, 2022-04-04 build of Bullseye
    • A 4GB SD card is required to have enough space for the OS and building the Docker image.
    • Set a hostname like piusb (something you'll remember)
    • Enable SSH (using the installer or making an empty file ssh on the boot partition)
  2. Edit config.txt and cmdline.txt on the boot partition to enable USB SSG (Gadget Mode)

  3. Power the Pi and connect with Micro USB cable to a computer

  4. Connect using ssh to piusb.local (or whatever hostname you chose)

  5. Share your computers network with the Pi

  6. Install Network Manager (only reboot once all files are in place)

    • sudo apt update && sudo apt install network-manager
    • sudo nano /etc/dhcpcd.conf then add line denyinterfaces wlan0
    • sudo nano /etc/NetworkManager/NetworkManager.conf and make it look exactly like
    [main]
    plugins=ifupdown,keyfile
    dhcp=internal
    
    [ifupdown]
    managed=true
    
    [keyfile]
    unmanaged-devices=interface-name:usb*
    
  7. Reboot the Pi sudo reboot then reconnect over ssh

  8. Install Docker with curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh

  9. Install git sudo apt install git

  10. Clone tuya-cloudcutter repo git clone https://github.com/tuya-cloudcutter/tuya-cloudcutter

  11. Go to cloned tuya-cloudcutter repo cd tuya-cloudcutter

  12. (Optional as independent step) In the cloudcutter directory, build the docker image sudo docker build --network=host -t cloudcutter .

  13. Run CloudCutter with sudo ./tuya-cloudcutter.sh -r ... (refer to usage instructions)