* 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.
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:
-
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
sshon the boot partition)
-
Access the pi (SSH or keyboard + monitor)
-
Install Network Manager (only reboot once all files are in place)
sudo apt update && sudo apt install network-managersudo nano /etc/dhcpcd.confthen add linedenyinterfaces wlan0sudo nano /etc/NetworkManager/NetworkManager.confand make it look exactly like
[main] plugins=ifupdown,keyfile dhcp=internal [ifupdown] managed=true -
Reboot the pi
sudo rebootthen reaccess. -
Make sure network manager is enabled and running:
sudo systemctl enable NetworkManager.servicesudo systemctl start NetworkManager.service
-
Install Docker with
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh -
Install git
sudo apt install git -
Clone tuya-cloudcutter repo
git clone https://github.com/tuya-cloudcutter/tuya-cloudcutter -
Go to cloned tuya-cloudcutter repo
cd tuya-cloudcutter -
(Optional as independent step) In the cloudcutter directory, build the docker image
sudo docker build --network=host -t cloudcutter . -
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:
-
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
sshon the boot partition)
-
Edit
config.txtandcmdline.txton the boot partition to enable USB SSG (Gadget Mode)- Add
dtoverlay=dwc2to the very end ofconfig.txt - Add
modules-load=dwc2,g_etherincmdline.txtafterrootwaitbefore anything else. - Ref: https://learn.adafruit.com/turning-your-raspberry-pi-zero-into-a-usb-gadget/ethernet-gadget
- Ref: https://desertbot.io/blog/headless-pi-zero-ssh-access-over-usb-windows
- Add
-
Power the Pi and connect with Micro USB cable to a computer
- May need to get the right drivers: https://raspberrypi.stackexchange.com/questions/89400/cannot-ssh-raspberry-pi-zero-w-on-windows-via-usb
-
Connect using ssh to
piusb.local(or whatever hostname you chose) -
Share your computers network with the Pi
-
Install Network Manager (only reboot once all files are in place)
sudo apt update && sudo apt install network-managersudo nano /etc/dhcpcd.confthen add linedenyinterfaces wlan0sudo nano /etc/NetworkManager/NetworkManager.confand make it look exactly like
[main] plugins=ifupdown,keyfile dhcp=internal [ifupdown] managed=true [keyfile] unmanaged-devices=interface-name:usb* -
Reboot the Pi
sudo rebootthen reconnect over ssh -
Install Docker with
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh -
Install git
sudo apt install git -
Clone tuya-cloudcutter repo
git clone https://github.com/tuya-cloudcutter/tuya-cloudcutter -
Go to cloned tuya-cloudcutter repo
cd tuya-cloudcutter -
(Optional as independent step) In the cloudcutter directory, build the docker image
sudo docker build --network=host -t cloudcutter . -
Run CloudCutter with
sudo ./tuya-cloudcutter.sh -r ...(refer to usage instructions)