diff --git a/README.md b/README.md index 403da52..51be8d9 100644 --- a/README.md +++ b/README.md @@ -161,6 +161,10 @@ To have the Ethernet NIC be auto-detected and loaded automatically, set the ENAB To load a specific USB Ethernet NIC driver, set ENABLE_USB_ETH_MODULE_MANUAL to one of the following: asix, ax88179_178a, cdc_ether, r8152 +NOTE: There is a possibility of a conflict between Ethernet NIC adapters that report themselves as PCI ID '0bda:8152'. (Realtek 8152 and CDC Ethernet) +Since the 8152 is Realtek's product, that driver will be the one used for products that report that PCI ID. +If you happen to have a CDC Ethernet product that uses that specific PCI ID, please set the ENABLE_USB_ETH_MODULE_AUTODETECT option to false, and set ENABLE_USB_ETH_MODULE_MANUAL to "cdc_ether" + The next time you boot your camera, make sure your USB Ethernet Adapter is connected to the camera and ethernet. The camera has to be setup initially with Wi-Fi for this to work. After setup, Wi-Fi is no longer needed, as long as you are using the USB Ethernet Adapter. Note that using USB Ethernet disables the onboard Wi-Fi. --- @@ -436,8 +440,22 @@ Enabled by default. These options control the WiFi Drivers. V2/V3 use the 8189 --- +DISABLE_MOTOR="true" + +Disable the movement capability on motorized devices. You will no longer be able to move the device from the mobile app, or command line. Best used to convert a motorized unit to fixed + +--- + +ENABLE_FSCK_ON_BOOT="false" + +run fsck.vfat on boot. This runs fsck.vfat, the FAT disk repair utility on the micro sd card, automatically repairing most issues, including corruption. Increases boot time. During the repair process, the LEDs on the camera will flash RED-off-BLUE-off-PURPLE-off to inform the user the repair program is running. Once the program has completed, the LED will switch to RED, resuming the normal boot process. + +--- + ## Latest Updates +* 07-08-22: Added support for multiple custom scripts, simply create scripts ending in .sh in wz_mini/etc/rc.local.d. You can prefix them with numbers to order execution if desired. +* 07-08-22: Updated T31 Kernel & Modules, added cp210x serial kernel module to support car. Add motor disable, fsck on boot. Disable debug logging for wifi drivers to prevent log spam, improved method of setting imp variables, fixed soundcard issues in the kernel, revert libcallback to account for this change. * 06-24-22: BIG UPGRADE! Updated & improved WiFi Drivers - 8189fs and 6032i - Drivers work across all supported camera models. This update requires you to copy over a new wz_mini.conf before upgrading! Drivers required for operation, do not disable! Updated upgrade-run.sh script to prevent broken boot during a rare corrupted file situation. Added connection bonding, for network fail-over support. * 06-19-22: Fixed no rtsp video when wz_mini is used with the old stock rtsp firmware. * 06-18-22: Added night drop feature preventing fps drop during nightvision. Upgrade script can now work unattended. Add -F0 flag to rtsp server. diff --git a/SD_ROOT/factory_t31_ZMC6tiIDQN b/SD_ROOT/factory_t31_ZMC6tiIDQN index 6672144..f729073 100644 Binary files a/SD_ROOT/factory_t31_ZMC6tiIDQN and b/SD_ROOT/factory_t31_ZMC6tiIDQN differ diff --git a/SD_ROOT/wz_mini/bin/fsck.vfat b/SD_ROOT/wz_mini/bin/fsck.vfat new file mode 100755 index 0000000..4e2efeb Binary files /dev/null and b/SD_ROOT/wz_mini/bin/fsck.vfat differ diff --git a/SD_ROOT/wz_mini/bin/upgrade-run.sh b/SD_ROOT/wz_mini/bin/upgrade-run.sh index 062746d..ce14ded 100755 --- a/SD_ROOT/wz_mini/bin/upgrade-run.sh +++ b/SD_ROOT/wz_mini/bin/upgrade-run.sh @@ -72,7 +72,6 @@ echo "enable wifi drivers if disabled in config" sed -i 's/ENABLE_RTL8189FS_DRIVER="false"/ENABLE_RTL8189FS_DRIVER="true"/g' /opt/wz_mini/wz_mini.conf sed -i 's/ENABLE_ATBM603X_DRIVER="false"/ENABLE_ATBM603X_DRIVER="true"/g' /opt/wz_mini/wz_mini.conf - sleep 5 echo "Backup user config" @@ -80,6 +79,7 @@ cp /opt/wz_mini/wz_mini.conf /opt/Upgrade/preserve/ cp -r /opt/wz_mini/etc/configs /opt/Upgrade/preserve/ cp -r /opt/wz_mini/etc/ssh /opt/Upgrade/preserve/ cp -r /opt/wz_mini/etc/wireguard /opt/Upgrade/preserve/ +cp -r /opt/wz_mini/etc/rc.local.d /opt/Upgrade/preserve/ sync echo "Rebooting into UPGRADE MODE" @@ -155,6 +155,7 @@ fi cp /opt/Upgrade/preserve/ssh/* /opt/wz_mini/etc/ssh/ cp /opt/Upgrade/preserve/configs/* /opt/wz_mini/etc/configs cp -r /opt/Upgrade/preserve/wireguard /opt/wz_mini/etc/ +cp -r /opt/Upgrade/preserve/rc.local.d /opt/wz_mini/etc/ rm -rf /opt/Upgrade sync reboot diff --git a/SD_ROOT/wz_mini/etc/init.d/wz_init.sh b/SD_ROOT/wz_mini/etc/init.d/wz_init.sh index 1d5cf42..9a56b73 100755 --- a/SD_ROOT/wz_mini/etc/init.d/wz_init.sh +++ b/SD_ROOT/wz_mini/etc/init.d/wz_init.sh @@ -1,7 +1,4 @@ #!/bin/sh -### -###DO NOT MODIFY UNLESS YOU KNOW WHAT YOU ARE DOING -### ###This file is run by switch_root, from the initramfs in the kernel. LOG_NAME=/opt/wz_mini/log/wz_init @@ -36,13 +33,13 @@ echo ' set -x -#replace stock busybox +echo "replace stock busybox" mount --bind /opt/wz_mini/bin/busybox /bin/busybox echo "replace stock fstab" mount --bind /opt/wz_mini/etc/fstab /etc/fstab -echo "mount workplace dir" +echo "mount wz_mini tmpfs" mount -t tmpfs /opt/wz_mini/tmp echo "install busybox applets" @@ -55,6 +52,7 @@ mkdir /opt/wz_mini/tmp/.bin #PANv2=HL_PAN2 #V3=WYZE_CAKP2JFUS #DB3=WYZEDB3 +#V3C=ATOM_CamV3C #mtdblock9 only exists on the T20 platform, indicating V2 or PANv1 if [ -b /dev/mtdblock9 ]; then @@ -96,14 +94,21 @@ else fi fi -touch /opt/wz_mini/etc/.first_boot +if [ -f /opt/wz_mini/etc/.first_boot ]; then + echo "Not first_boot" +else + echo "Set first_boot" + touch /opt/wz_mini/etc/.first_boot +fi + +echo "replace stock inittab" mount --bind /opt/wz_mini/etc/inittab /etc/inittab echo "bind /etc/profile for local/ssh shells" mount --bind /opt/wz_mini/etc/profile /etc/profile -echo "mounting tmpfs" +echo "mounting global tmpfs" mount -t tmpfs /tmp echo "mount system to replace factorycheck with dummy, to prevent bind unmount" @@ -122,7 +127,7 @@ cp /etc/init.d/rcS /opt/wz_mini/tmp/.storage/rcS echo "add wz_post inject to stock rcS" sed -i '/^".*/aset -x' /opt/wz_mini/tmp/.storage/rcS -sed -i '/^# Mount configs.*/i/opt/wz_mini/etc/init.d/wz_post.sh\n' /opt/wz_mini/tmp/.storage/rcS +sed -i '/^# Run init script.*/i/opt/wz_mini/etc/init.d/wz_post.sh\n' /opt/wz_mini/tmp/.storage/rcS sed -i '/sbin:/s/$/:\/opt\/wz_mini\/bin/' /opt/wz_mini/tmp/.storage/rcS sed -i '/system\/\lib/s/$/:\/opt\/wz_mini\/lib/' /opt/wz_mini/tmp/.storage/rcS diff --git a/SD_ROOT/wz_mini/etc/init.d/wz_post.sh b/SD_ROOT/wz_mini/etc/init.d/wz_post.sh index 840e65f..41fbbcb 100755 --- a/SD_ROOT/wz_mini/etc/init.d/wz_post.sh +++ b/SD_ROOT/wz_mini/etc/init.d/wz_post.sh @@ -28,6 +28,40 @@ export WZMINI_CFG=/opt/wz_mini/wz_mini.conf echo "welcome to wz_post.sh" echo "PID $$" +#CAMERA CONFIGURATION FILES BACKUP +if [ -d /opt/.wz_backup ]; then + echo "backup directory missing" +else + echo "creating backup directory" + mkdir /opt/.wz_backup +fi + +if [ -f /opt/wz_mini/tmp/.T31 ]; then + echo "T31 platform backup" + if [ -d /opt/.wz_backup/configs ]; then + echo "configs backup directory present, not backing up again" + else + echo "backup /configs" + cp -R /configs/ /opt/.wz_backup/ + fi +elif [ -f /opt/wz_mini/tmp/.T20 ]; then + echo "T20 platform backup" + if [ -d /opt/.wz_backup/configs ]; then + echo "configs backup directory present, not backing up again" + else + echo "backup /configs" + cp -R /configs/ /opt/.wz_backup/ + fi + + if [ -d /opt/.wz_backup/params ]; then + echo "configs backup directory present, not backing up again" + else + echo "backup /params" + cp -R /params/ /opt/.wz_backup/ + fi +fi + +#SWAP FILE, REQUIRED FOR OPERATION! if [[ "$ENABLE_SWAP" == "true" ]] && [[ -e /opt/wz_mini/swap ]]; then echo "swap file found, enable" swapon /opt/wz_mini/swap @@ -41,28 +75,36 @@ if [ -d /lib/modules ]; then fi ## REPLACE STOCK MODULES - if [[ "$ENABLE_RTL8189FS_DRIVER" == "true" ]] || [[ "$ENABLE_RTL8189FS_DRIVER" == "" ]]; then echo "Enable 8189fs" if [ -f /opt/wz_mini/tmp/.WYZEC1-JZ ]; then - sed -i 's/\/driver\/rtl8189ftv.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\/extra\/8189fs.ko rtw_power_mgnt=0 rtw_enusbss=0 rtw_drv_log_level=3/g' /opt/wz_mini/tmp/.storage/app_init.sh + sed -i 's/\/driver\/rtl8189ftv.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\/extra\/8189fs.ko rtw_power_mgnt=0 rtw_enusbss=0 rtw_drv_log_level=0/g' /opt/wz_mini/tmp/.storage/app_init.sh elif [ -f /opt/wz_mini/tmp/.WYZECP1_JEF ]; then - sed -i 's/insmod \/driver\/8189es.ko/insmod \/opt\/wz_mini\/lib\/modules\/3.10.14\/extra\/8189es.ko rtw_power_mgnt=0 rtw_enusbss=0 rtw_drv_log_level=3/g' /opt/wz_mini/tmp/.storage/app_init.sh + sed -i 's/insmod \/driver\/8189es.ko/insmod \/opt\/wz_mini\/lib\/modules\/3.10.14\/extra\/8189es.ko rtw_power_mgnt=0 rtw_enusbss=0 rtw_drv_log_level=0/g' /opt/wz_mini/tmp/.storage/app_init.sh elif [ -f /opt/wz_mini/tmp/.WYZE_CAKP2JFUS ]; then - sed -i 's/\/system\/driver\/rtl8189ftv.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\_\_isvp_swan_1.0\_\_\/extra\/8189fs.ko rtw_power_mgnt=0 rtw_enusbss=0 rtw_drv_log_level=4/g' /opt/wz_mini/tmp/.storage/app_init.sh + sed -i 's/\/system\/driver\/rtl8189ftv.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\_\_isvp_swan_1.0\_\_\/extra\/8189fs.ko rtw_power_mgnt=0 rtw_enusbss=0 rtw_drv_log_level=0/g' /opt/wz_mini/tmp/.storage/app_init.sh + elif [ -f /opt/wz_mini/tmp/.ATOM_CamV3C ]; then + sed -i 's/\/system\/driver\/rtl8189ftv.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\_\_isvp_swan_1.0\_\_\/extra\/8189fs.ko rtw_power_mgnt=0 rtw_enusbss=0 rtw_drv_log_level=0/g' /opt/wz_mini/tmp/.storage/app_init.sh fi fi if [[ "$ENABLE_ATBM603X_DRIVER" == "true" ]] || [[ "$ENABLE_ATBM603X_DRIVER" == "" ]]; then echo "Enable atbm603x_wifi_sdio" - if [ -f /opt/wz_mini/tmp/.T31 ]; then - sed -i 's/\/system\/driver\/atbm603x_wifi_sdio.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\_\_isvp_swan_1.0\_\_\/extra\/atbm603x_wifi_sdio.ko/g' /opt/wz_mini/tmp/.storage/app_init.sh + if [ -f /opt/wz_mini/tmp/.ATOM_CamV3C ]; then + sed -i 's/\/thirdlib\/atbm603x_wifi_sdio.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\_\_isvp_swan_1.0\_\_\/extra\/atbm603x_wifi_sdio.ko atbm_printk_mask=0/g' /opt/wz_mini/tmp/.storage/app_init.sh + elif [ -f /opt/wz_mini/tmp/.T31 ] && ! [ -f /opt/wz_mini/tmp/.ATOM_CamV3C ]; then + sed -i 's/\/system\/driver\/atbm603x_wifi_sdio.ko/\/opt\/wz_mini\/lib\/modules\/3.10.14\_\_isvp_swan_1.0\_\_\/extra\/atbm603x_wifi_sdio.ko atbm_printk_mask=0/g' /opt/wz_mini/tmp/.storage/app_init.sh fi fi -##RTSP SERVER INIT +##ENABLE LIBCALLBACK BY DEFAULT +if [[ "$LIBCALLBACK_ENABLE" == "true" ]] || ([[ "$RTSP_HI_RES_ENABLED" == "true" ]] || [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]); then + echo "set path for iCamera" + sed -i 's/\/system\/bin\/iCamera/\/opt\/wz_mini\/usr\/bin\/iCamera/g' /opt/wz_mini/tmp/.storage/app_init.sh +fi -if [[ "$RTSP_HI_RES_ENABLED" == "true" ]] || [[ "$RTSP_LOW_RES_ENABLED" == "true" ]] && ! [[ -e /tmp/dbgflag ]]; then +#RTSP SERVER +if ([[ "$RTSP_HI_RES_ENABLED" == "true" ]] || [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]) && ! [[ -e /tmp/dbgflag ]]; then if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]] && [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then if [ -f /opt/wz_mini/tmp/.T20 ]; then echo "load video loopback driver at video6 video7" @@ -88,8 +130,12 @@ if [[ "$RTSP_HI_RES_ENABLED" == "true" ]] || [[ "$RTSP_LOW_RES_ENABLED" == "tru insmod /opt/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/v4l2loopback.ko video_nr=1 fi fi - echo "set path for iCamera" - sed -i 's/\/system\/bin\/iCamera/\/opt\/wz_mini\/usr\/bin\/iCamera/g' /opt/wz_mini/tmp/.storage/app_init.sh +fi + +#MOTORIZED CAMERA CONTROL +if [[ "$DISABLE_MOTOR" == "true" ]]; then + echo "Motor Disabled" + touch /opt/wz_mini/tmp/.ms fi /opt/wz_mini/etc/init.d/wz_user.sh & diff --git a/SD_ROOT/wz_mini/etc/init.d/wz_user.sh b/SD_ROOT/wz_mini/etc/init.d/wz_user.sh index 76c7c3d..fa5a95e 100755 --- a/SD_ROOT/wz_mini/etc/init.d/wz_user.sh +++ b/SD_ROOT/wz_mini/etc/init.d/wz_user.sh @@ -320,7 +320,7 @@ if [[ "$ENABLE_USB_ETH" == "true" ]]; then modprobe ax88179_178a ;; '1004:61aa' | '046d:c11f' | '1410:b001' | '1410:9010' | '413c:8195' |\ - '413c:8196' | '413c:819b' | '16d5:650a' | '12d1:14ac' | '0bda:8152') + '413c:8196' | '413c:819b' | '16d5:650a' | '12d1:14ac') echo "Loading USB CDC Ethernet driver..." modprobe cdc_ether ;; @@ -334,7 +334,7 @@ if [[ "$ENABLE_USB_ETH" == "true" ]]; then # Manually load any other Ethernet Drivers if asked for if [[ "$ENABLE_USB_ETH_MODULE_MANUAL" != "" ]]; then - for i in $(echo "$ENABLE_USB_ETH_MODULES" | tr "," "\n") + for i in $(echo "$ENABLE_USB_ETH_MODULE_MANUAL" | tr "," "\n") do insmod $KMOD_PATH/kernel/drivers/net/usb/$i.ko done @@ -530,54 +530,7 @@ if [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then echo "rtsp audio disabled" fi - if [[ "$RTSP_HI_RES_ENC_PARAMETER" != "" ]]; then - if [ -f /opt/wz_mini/tmp/.T20 ]; then - if [[ $RTSP_HI_RES_ENC_PARAMETER =~ "^[0|1|2|4|8]$" ]]; then - watch -n30 -t "/system/bin/impdbg --enc_rc_s 0:0:4:$RTSP_HI_RES_ENC_PARAMETER" > /dev/null 2>&1 & - sleep 5 - else - echo "Invalid encoder value" - fi - else - if [[ $RTSP_HI_RES_ENC_PARAMETER =~ "^[0|1|2|4|8]$" ]]; then - watch -n30 -t "/system/bin/impdbg --enc_rc_s 0:44:4:$RTSP_HI_RES_ENC_PARAMETER" > /dev/null 2>&1 & - sleep 5 - else - echo "Invalid encoder value" - fi - fi - fi - - if [[ "$RTSP_HI_RES_MAX_BITRATE" != "" ]]; then - if [ -f /opt/wz_mini/tmp/.T20 ]; then - watch -n30 -t "/system/bin/impdbg --enc_rc_s 0:28:4:$RTSP_HI_RES_MAX_BITRATE" > /dev/null 2>&1 & - sleep 5 - else - watch -n30 -t "/system/bin/impdbg --enc_rc_s 0:52:4:$RTSP_HI_RES_MAX_BITRATE" > /dev/null 2>&1 & - sleep 5 - fi - fi - - if [[ "$RTSP_HI_RES_TARGET_BITRATE" != "" ]]; then - if [ -f /opt/wz_mini/tmp/.T20 ]; then - echo "not supported on T20" - else - watch -n30 -t "/system/bin/impdbg --enc_rc_s 0:48:4:$RTSP_HI_RES_TARGET_BITRATE" > /dev/null 2>&1 & - sleep 5 - fi - fi - - if [[ "$RTSP_HI_RES_FPS" != "" ]]; then - if [ -f /opt/wz_mini/tmp/.T20 ]; then - watch -n30 -t "/system/bin/impdbg --enc_rc_s 0:8:4:$RTSP_HI_RES_FPS" > /dev/null 2>&1 & - sleep 5 - else - watch -n30 -t "/system/bin/impdbg --enc_rc_s 0:80:4:$RTSP_HI_RES_FPS" > /dev/null 2>&1 & - sleep 5 - fi - fi - - else +else echo "rtsp disabled" fi @@ -609,50 +562,7 @@ if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]; then echo "rtsp audio disabled" fi - if [[ "$RTSP_LOW_RES_ENC_PARAMETER" != "" ]]; then - if [ -f /opt/wz_mini/tmp/.T20 ]; then - if [[ $RTSP_LOW_RES_ENC_PARAMETER =~ "^[0|1|2|4|8]$" ]]; then - watch -n30 -t "/system/bin/impdbg --enc_rc_s 1:0:4:$RTSP_LOW_RES_ENC_PARAMETER" > /dev/null 2>&1 & - sleep 5 - else - echo "Invalid encoder value" - fi - else - if [[ $RTSP_LOW_RES_ENC_PARAMETER =~ "^[0|1|2|4|8]$" ]]; then - watch -n30 -t "/system/bin/impdbg --enc_rc_s 1:44:4:$RTSP_LOW_RES_ENC_PARAMETER" > /dev/null 2>&1 & - else - echo "Invalid encoder value" - fi - fi - fi - - if [[ "$RTSP_LOW_RES_MAX_BITRATE" != "" ]]; then - if [ -f /opt/wz_mini/tmp/.T20 ]; then - watch -n30 -t "/system/bin/impdbg --enc_rc_s 1:28:4:$RTSP_LOW_RES_MAX_BITRATE" > /dev/null 2>&1 & - sleep 5 - else - watch -n30 -t "/system/bin/impdbg --enc_rc_s 1:52:4:$RTSP_LOW_RES_MAX_BITRATE" > /dev/null 2>&1 & - fi - fi - - if [[ "$RTSP_LOW_RES_TARGET_BITRATE" != "" ]]; then - if [ -f /opt/wz_mini/tmp/.T20 ]; then - echo "not supported on T20" - else - watch -n30 -t "/system/bin/impdbg --enc_rc_s 1:48:4:$RTSP_LOW_RES_TARGET_BITRATE" > /dev/null 2>&1 & - fi - fi - - if [[ "$RTSP_LOW_RES_FPS" != "" ]]; then - if [ -f /opt/wz_mini/tmp/.T20 ]; then - watch -n30 -t "/system/bin/impdbg --enc_rc_s 1:8:4:$RTSP_LOW_RES_FPS" > /dev/null 2>&1 & - sleep 5 - else - watch -n30 -t "/system/bin/impdbg --enc_rc_s 1:80:4:$RTSP_LOW_RES_FPS" > /dev/null 2>&1 & - fi - fi - - else +else echo "rtsp disabled" fi @@ -662,6 +572,9 @@ if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]] || [[ "$RTSP_HI_RES_ENABLED" == "true #This delay is required. Sometimes, if you start the rtsp server too soon, live view will break on the app. sleep 5 LD_LIBRARY_PATH=/opt/wz_mini/lib /opt/wz_mini/bin/v4l2rtspserver $AUDIO_CH $AUDIO_FMT -F0 -U "$RTSP_LOGIN":"$RTSP_PASSWORD" -P "$RTSP_PORT" $DEVICE1 $DEVICE2 & + sleep 1 + echo "Set imp variables via helper" + /opt/wz_mini/usr/bin/imp_helper.sh > /dev/null 2>&1 & fi if ([[ "$RTSP_LOW_RES_ENABLED" == "true" ]] || [[ "$RTSP_HI_RES_ENABLED" == "true" ]]) && [[ "$RTMP_STREAM_ENABLED" == "true" ]] && ([[ "$RTSP_LOW_RES_ENABLE_AUDIO" == "true" ]] || [[ "$RTSP_HI_RES_ENABLE_AUDIO" == "true" ]]); then @@ -678,11 +591,6 @@ if [[ "$NIGHT_DROP_DISABLE" == "true" ]]; then touch /opt/wz_mini/tmp/.nd fi -if [[ "$ENABLE_ATBM603X_DRIVER" == "true" ]]; then - #Reduce dmesg log spam by driver - echo "LOG_ERR=OFF LOG_WARN=ON LOG_LMAC=ON LOG_SCAN=OFF" > /sys/module/atbm603x_wifi_sdio/atbmfs/atbm_printk_mask -fi - hostname_set touch /opt/wz_mini/tmp/.wz_user_firstrun pkill -f dumpload #Kill dumpload so it won't waste cpu or ram gathering cores and uploading them when something crashes @@ -696,7 +604,18 @@ if [ -f "$CUSTOM_SCRIPT_PATH" ]; then echo "starting custom script" $CUSTOM_SCRIPT_PATH & else - echo "custom script not found" + echo "no custom script configured in wz_mini.conf" fi +echo "searching for custom scripts in /opt/wz_mini/etc/rc.local.d" +if [ -d "${1:-/opt/wz_mini/etc/rc.local.d}" ] ; then + for filename in $(find /opt/wz_mini/etc/rc.local.d/ -name "*.sh" | /opt/wz_mini/bin/busybox sort) ; do + if [ -f "${filename}" ] && [ -x "${filename}" ]; then + echo "running ${filename}" + "${filename}" + fi + done +fi +echo "finished executing custom scripts from /opt/wz_mini/etc/rc.local.d" + echo "wz_user.sh done" > /dev/kmsg diff --git a/SD_ROOT/wz_mini/etc/rc.local.d/.gitignore b/SD_ROOT/wz_mini/etc/rc.local.d/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/SD_ROOT/wz_mini/etc/wz_mini.conf.dist b/SD_ROOT/wz_mini/etc/wz_mini.conf.dist index b60d670..358a4e5 100644 --- a/SD_ROOT/wz_mini/etc/wz_mini.conf.dist +++ b/SD_ROOT/wz_mini/etc/wz_mini.conf.dist @@ -80,6 +80,7 @@ RTMP_STREAM_TWITCH_KEY="" RTMP_STREAM_FACEBOOK_KEY="" #####GENERAL##### +LIBCALLBACK_ENABLE="true" ENABLE_SWAP="true" ENABLE_USB_STORAGE="false" ENABLE_EXT4="false" @@ -88,6 +89,8 @@ DISABLE_FW_UPGRADE="false" AUDIO_PROMPT_VOLUME="50" ENABLE_MP4_WRITE="false" NIGHT_DROP_DISABLE="false" +DISABLE_MOTOR="false" +ENABLE_FSCK_ON_BOOT="false" #####DEBUG##### #drops you to a shell via serial, doesn't load app_init.sh diff --git a/SD_ROOT/wz_mini/lib/libcallback.so b/SD_ROOT/wz_mini/lib/libcallback.so index 9e82853..03b4eec 100644 Binary files a/SD_ROOT/wz_mini/lib/libcallback.so and b/SD_ROOT/wz_mini/lib/libcallback.so differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/8189fs.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/8189fs.ko index ec5a2b5..30f6607 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/8189fs.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/8189fs.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/atbm603x_wifi_sdio.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/atbm603x_wifi_sdio.ko index c21758b..7748da9 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/atbm603x_wifi_sdio.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/atbm603x_wifi_sdio.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/crypto/cmac.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/crypto/cmac.ko index cd8a8b2..ba1a27e 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/crypto/cmac.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/crypto/cmac.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/crypto/md4.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/crypto/md4.ko index d52fb08..a717af0 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/crypto/md4.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/crypto/md4.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/bonding/bonding.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/bonding/bonding.ko index 2580ad2..8280b7f 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/bonding/bonding.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/bonding/bonding.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/asix.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/asix.ko index d264c51..a026504 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/asix.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/asix.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/ax88179_178a.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/ax88179_178a.ko index 0b4ab65..93e4be2 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/ax88179_178a.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/ax88179_178a.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/cdc_ether.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/cdc_ether.ko index 154449e..b62655d 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/cdc_ether.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/cdc_ether.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/r8152.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/r8152.ko index 7fe3c35..f68f1ef 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/r8152.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/r8152.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/rndis_host.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/rndis_host.ko index 643687b..827ffe3 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/rndis_host.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/rndis_host.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/usbnet.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/usbnet.ko index 4964dab..235b0b7 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/usbnet.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/usbnet.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/scsi/scsi_mod.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/scsi/scsi_mod.ko index 195cf39..15c479f 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/scsi/scsi_mod.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/scsi/scsi_mod.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/scsi/sd_mod.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/scsi/sd_mod.ko index 86fc214..064d3e2 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/scsi/sd_mod.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/scsi/sd_mod.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/g_ncm.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/g_ncm.ko index 31530b4..8164710 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/g_ncm.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/g_ncm.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/libcomposite.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/libcomposite.ko index 6707ad6..856a7fd 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/libcomposite.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/libcomposite.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/u_ether.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/u_ether.ko index 91e5fd0..8df6c31 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/u_ether.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/u_ether.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/usb_f_ncm.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/usb_f_ncm.ko index ae5c0c5..fd31bee 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/usb_f_ncm.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/usb_f_ncm.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/cp210x.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/cp210x.ko new file mode 100644 index 0000000..5727e81 Binary files /dev/null and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/cp210x.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/usbserial.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/usbserial.ko new file mode 100644 index 0000000..3d056b7 Binary files /dev/null and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/usbserial.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/storage/usb-storage.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/storage/usb-storage.ko index fe4e9c5..a913675 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/storage/usb-storage.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/storage/usb-storage.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/cifs/cifs.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/cifs/cifs.ko index d981e62..4dba8c2 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/cifs/cifs.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/cifs/cifs.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/ext4/ext4.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/ext4/ext4.ko index 57dc3be..53a80e5 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/ext4/ext4.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/ext4/ext4.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/fscache/fscache.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/fscache/fscache.ko index 7133786..2123ce6 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/fscache/fscache.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/fscache/fscache.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/jbd2/jbd2.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/jbd2/jbd2.ko index 5e6fd06..7587f28 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/jbd2/jbd2.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/jbd2/jbd2.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/mbcache.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/mbcache.ko index 3dff158..6fe2129 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/mbcache.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/mbcache.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/nfs/nfsv4.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/nfs/nfsv4.ko index 778085e..affacc6 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/nfs/nfsv4.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/nfs/nfsv4.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/lib/oid_registry.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/lib/oid_registry.ko index df907b2..7bc319e 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/lib/oid_registry.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/lib/oid_registry.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/dns_resolver/dns_resolver.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/dns_resolver/dns_resolver.ko index 9b61b48..ed45254 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/dns_resolver/dns_resolver.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/dns_resolver/dns_resolver.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/ip_tunnel.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/ip_tunnel.ko index 30d4828..ffd155e 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/ip_tunnel.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/ip_tunnel.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/ip_tables.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/ip_tables.ko index c84b86e..829a7df 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/ip_tables.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/ip_tables.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/ipt_REJECT.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/ipt_REJECT.ko index 1054d5b..e89590c 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/ipt_REJECT.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/ipt_REJECT.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_filter.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_filter.ko index 4c6ebc6..0bfa975 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_filter.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_filter.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_mangle.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_mangle.ko index 135ea68..2d9432a 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_mangle.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_mangle.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko index 7da3847..deecfe8 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko index 798e7f7..1ce850d 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/tunnel4.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/tunnel4.ko index 85041df..2aee31b 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/tunnel4.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/tunnel4.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6_tables.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6_tables.ko index 3d65cc4..b219e46 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6_tables.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6_tables.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6t_REJECT.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6t_REJECT.ko index 6fc441f..a4e44ae 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6t_REJECT.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6t_REJECT.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6table_filter.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6table_filter.ko index c8a9679..def08ae 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6table_filter.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6table_filter.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6table_mangle.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6table_mangle.ko index 99e16b8..bcb6af5 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6table_mangle.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6table_mangle.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/sit.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/sit.ko index 4f84a8a..502674b 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/sit.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/sit.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/nf_conntrack.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/nf_conntrack.ko index 72d6430..16cf60e 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/nf_conntrack.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/nf_conntrack.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/x_tables.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/x_tables.ko index 9f7b3db..0a05df6 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/x_tables.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/x_tables.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_LOG.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_LOG.ko index 4e5c97a..824a94a 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_LOG.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_LOG.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_TCPMSS.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_TCPMSS.ko index 36f5bea..9158a93 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_TCPMSS.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_TCPMSS.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_mark.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_mark.ko index 97e60dc..387ab00 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_mark.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_mark.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_state.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_state.ko index 7143506..589179b 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_state.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_state.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_tcpudp.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_tcpudp.ko index 76163be..78cb3b5 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_tcpudp.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_tcpudp.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko index 4117b5b..0a8e1f2 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/wireguard/wireguard.ko b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/wireguard/wireguard.ko index 88d0486..76ff2ff 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/wireguard/wireguard.ko and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/wireguard/wireguard.ko differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.alias b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.alias index d110591..b3c5a88 100644 --- a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.alias +++ b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.alias @@ -72,6 +72,7 @@ alias usb:v04DDp8007d*dc*dsc*dp*ic02isc06ip00in* cdc_ether alias usb:v04DDp8006d*dc*dsc*dp*ic02isc06ip00in* cdc_ether alias usb:v04DDp8005d*dc*dsc*dp*ic02isc06ip00in* cdc_ether alias usb:v04DDp8004d*dc*dsc*dp*ic02isc06ip00in* cdc_ether +alias usb:v*p*d*dc*dsc*dp*icEFisc04ip01in* rndis_host alias usb:v*p*d*dc*dsc*dp*icE0isc01ip03in* rndis_host alias usb:v*p*d*dc*dsc*dp*icEFisc01ip01in* rndis_host alias usb:v*p*d*dc*dsc*dp*ic02isc02ipFFin* rndis_host @@ -426,6 +427,136 @@ alias usb:v03F0p0107d0200dc*dsc*dp*ic*isc*ip*in* usb_storage alias usb:v03EEp6906d0003dc*dsc*dp*ic*isc*ip*in* usb_storage alias usb:v03EBp2002d0100dc*dsc*dp*ic*isc*ip*in* usb_storage alias usbfunc:ncm usb_f_ncm +alias usb:v413Cp9500d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v3195pF281d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v3195pF280d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v3195pF190d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0701d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0700d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0602d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0601d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0600d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0404d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0403d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0402d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0401d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0400d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0303d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0302d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0301d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0300d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0203d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0202d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0201d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0200d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1FB9p0100d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1E29p0501d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1E29p0102d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1BE3p07A6d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1ADBp0001d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v18EFpE00Fd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1843p0200d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v17F4pAAAAd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v17A8p0005d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v17A8p0001d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v16DCp0015d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v16DCp0012d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v16DCp0011d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v16DCp0010d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v16D6p0001d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v166Ap0101d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v166Ap0401d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v166Ap0305d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v166Ap0304d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v166Ap0303d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v166Ap0301d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v166Ap0201d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v1555p0004d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v13ADp9999d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10CEpEA6Ad*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C5pEA61d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4pF004d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4pF003d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4pF002d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4pF001d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4pEA71d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4pEA80d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4pEA70d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4pEA61d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4pEA60d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p88A5d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p88A4d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p8665d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p8664d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p85F8d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p85EBd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p85EAd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p8477d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p846Ed*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p8418d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p8411d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p83D8d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p83A8d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p8382d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p8341d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p82F9d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p8293d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p826Bd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p822Bd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p8218d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p81F2d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p81E8d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p81E7d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p81E2d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p81C8d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p81ADd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p81ACd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p81A9d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p81A6d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p819Fd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p818Bd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p815Fd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p815Ed*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p8156d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v2405p0003d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p814Bd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p814Ad*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p813Fd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p813Dd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p8115d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p80F6d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p80DDd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p80CAd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p80C4d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p807Ad*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p806Fd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p8066d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p8054d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p8053d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p804Ed*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p8044d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p803Bd*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p800Ad*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p1601d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p1101d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10C4p0F91d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10B5pAC70d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10ABp10C5d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v10A6pAA26d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v0FDEpCA05d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v0FCFp1006d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v0FCFp1004d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v0FCFp1003d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v0BEDp1101d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v0BEDp1100d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v08FDp000Ad*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v08E6p5501d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v0846p1100d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v0745p1000d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v0489pE003d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v0489pE000d*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v0471p066Ad*dc*dsc*dp*ic*isc*ip*in* cp210x +alias usb:v045Bp0053d*dc*dsc*dp*ic*isc*ip*in* cp210x alias scsi:t-0x0e* sd_mod alias scsi:t-0x07* sd_mod alias scsi:t-0x00* sd_mod diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.alias.bin b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.alias.bin index 8d5a811..a2a570d 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.alias.bin and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.alias.bin differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.builtin.alias.bin b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.builtin.alias.bin new file mode 100644 index 0000000..e69de29 diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.dep b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.dep index a278571..249cdc4 100644 --- a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.dep +++ b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.dep @@ -18,6 +18,8 @@ kernel/drivers/usb/gadget/libcomposite.ko: kernel/drivers/usb/gadget/u_ether.ko: kernel/drivers/usb/gadget/usb_f_ncm.ko: kernel/drivers/usb/gadget/u_ether.ko kernel/drivers/usb/gadget/libcomposite.ko kernel/drivers/usb/gadget/g_ncm.ko: kernel/drivers/usb/gadget/u_ether.ko kernel/drivers/usb/gadget/libcomposite.ko +kernel/drivers/usb/serial/usbserial.ko: +kernel/drivers/usb/serial/cp210x.ko: kernel/drivers/usb/serial/usbserial.ko kernel/drivers/scsi/scsi_mod.ko: kernel/drivers/scsi/sd_mod.ko: kernel/drivers/scsi/scsi_mod.ko kernel/net/netfilter/nf_conntrack.ko: @@ -44,4 +46,3 @@ kernel/net/sunrpc/auth_gss/auth_rpcgss.ko: kernel/lib/oid_registry.ko kernel/net/wireguard/wireguard.ko: kernel/net/ipv4/ip_tunnel.ko kernel/net/dns_resolver/dns_resolver.ko: kernel/lib/oid_registry.ko: -extra/v4l2loopback.ko: diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.dep.bin b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.dep.bin index c9f30b6..d4ff891 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.dep.bin and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.dep.bin differ diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.devname b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.devname index 58f6d6d..e69de29 100644 --- a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.devname +++ b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.devname @@ -1 +0,0 @@ -# Device nodes to trigger on-demand module loading. diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.order b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.order index cfbe4c4..55bfbf5 100644 --- a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.order +++ b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.order @@ -18,6 +18,8 @@ kernel/drivers/usb/gadget/libcomposite.ko kernel/drivers/usb/gadget/u_ether.ko kernel/drivers/usb/gadget/usb_f_ncm.ko kernel/drivers/usb/gadget/g_ncm.ko +kernel/drivers/usb/serial/usbserial.ko +kernel/drivers/usb/serial/cp210x.ko kernel/drivers/scsi/scsi_mod.ko kernel/drivers/scsi/sd_mod.ko kernel/net/netfilter/nf_conntrack.ko diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.symbols b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.symbols index 6b908e8..38a9b6f 100644 --- a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.symbols +++ b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.symbols @@ -41,6 +41,7 @@ alias symbol:__fscache_update_cookie fscache alias symbol:ip6t_unregister_table ip6_tables alias symbol:mb_cache_entry_insert mbcache alias symbol:scsi_release_buffers scsi_mod +alias symbol:usb_serial_suspend usbserial alias symbol:nf_ct_iterate_cleanup nf_conntrack alias symbol:usb_add_config libcomposite alias symbol:xt_check_target x_tables @@ -50,6 +51,7 @@ alias symbol:scsi_eh_restore_cmnd scsi_mod alias symbol:jbd2_journal_destroy jbd2 alias symbol:xt_table_unlock x_tables alias symbol:scsi_prep_state_check scsi_mod +alias symbol:usb_serial_generic_submit_read_urbs usbserial alias symbol:__nf_ct_kill_acct nf_conntrack alias symbol:ip_tunnel_get_stats64 ip_tunnel alias symbol:jbd2_journal_forget jbd2 @@ -80,11 +82,14 @@ alias symbol:__starget_for_each_device scsi_mod alias symbol:scsi_rescan_device scsi_mod alias symbol:jbd2_log_start_commit jbd2 alias symbol:scsi_kunmap_atomic_sg scsi_mod +alias symbol:usb_serial_port_softint usbserial alias symbol:scsi_free_host_dev scsi_mod alias symbol:usb_copy_descriptors libcomposite alias symbol:__fscache_uncache_all_inode_pages fscache alias symbol:usb_composite_setup_continue libcomposite alias symbol:scsi_bios_ptable scsi_mod +alias symbol:usb_serial_generic_get_icount usbserial +alias symbol:usb_serial_resume usbserial alias symbol:mb_cache_entry_find_first mbcache alias symbol:nf_ct_expect_hsize nf_conntrack alias symbol:nf_defrag_ipv4_enable nf_defrag_ipv4 @@ -96,7 +101,9 @@ alias symbol:jbd2_journal_extend jbd2 alias symbol:nf_ct_helper_expectfn_find_by_symbol nf_conntrack alias symbol:nf_conntrack_in nf_conntrack alias symbol:fscache_object_lookup_negative fscache +alias symbol:usb_serial_generic_write usbserial alias symbol:usb_function_unregister libcomposite +alias symbol:usb_serial_generic_process_read_urb usbserial alias symbol:scsi_dev_info_list_del_keyed scsi_mod alias symbol:nf_ct_l3proto_register nf_conntrack alias symbol:__fscache_read_or_alloc_page fscache @@ -108,9 +115,11 @@ alias symbol:gether_get_host_addr u_ether alias symbol:nf_ct_invert_tuplepr nf_conntrack alias symbol:scsi_allocate_command scsi_mod alias symbol:jbd2_journal_update_sb_errno jbd2 +alias symbol:usb_serial_generic_chars_in_buffer usbserial alias symbol:nf_ct_free_hashtable nf_conntrack alias symbol:scsi_flush_work scsi_mod alias symbol:usbnet_write_cmd_async usbnet +alias symbol:usb_serial_generic_read_bulk_callback usbserial alias symbol:scsi_remove_host scsi_mod alias symbol:usb_string_ids_n libcomposite alias symbol:nf_ct_l4proto_pernet_register nf_conntrack @@ -132,10 +141,13 @@ alias symbol:nfs4_set_ds_client nfsv4 alias symbol:gether_disconnect u_ether alias symbol:scsi_command_normalize_sense scsi_mod alias symbol:scsi_show_extd_sense scsi_mod +alias symbol:usb_serial_generic_resume usbserial alias symbol:fscache_io_error fscache alias symbol:nf_ct_dying_timeout nf_conntrack alias symbol:nf_conntrack_hash_check_insert nf_conntrack +alias symbol:usb_serial_generic_tiocmiwait usbserial alias symbol:nf_conntrack_helper_unregister nf_conntrack +alias symbol:usb_serial_generic_unthrottle usbserial alias symbol:sprint_oid oid_registry alias symbol:usb_stor_probe2 usb_storage alias symbol:ip_tunnel_init ip_tunnel @@ -154,6 +166,7 @@ alias symbol:xt_proto_init x_tables alias symbol:unregister_gadget_item libcomposite alias symbol:scsi_device_type scsi_mod alias symbol:nf_ct_l4proto_find_get nf_conntrack +alias symbol:usb_serial_register_drivers usbserial alias symbol:__fscache_check_page_write fscache alias symbol:jbd2__journal_start jbd2 alias symbol:nf_ct_remove_expectations nf_conntrack @@ -198,6 +211,7 @@ alias symbol:scsi_host_get scsi_mod alias symbol:scsi_get_command scsi_mod alias symbol:ip_tunnel_lookup ip_tunnel alias symbol:mb_cache_entry_free mbcache +alias symbol:usb_serial_generic_close usbserial alias symbol:scsi_report_device_reset scsi_mod alias symbol:jbd2_journal_get_undo_access jbd2 alias symbol:usbnet_get_settings usbnet @@ -226,6 +240,7 @@ alias symbol:jbd2_journal_wipe jbd2 alias symbol:usbnet_probe usbnet alias symbol:jbd2_journal_init_inode jbd2 alias symbol:__nf_ct_ext_add_length nf_conntrack +alias symbol:usb_serial_handle_break usbserial alias symbol:gether_cleanup u_ether alias symbol:usbnet_unlink_rx_urbs usbnet alias symbol:scsicam_bios_param scsi_mod @@ -252,6 +267,7 @@ alias symbol:scsi_bus_type scsi_mod alias symbol:nf_conntrack_alloc nf_conntrack alias symbol:nf_ct_l3proto_pernet_register nf_conntrack alias symbol:scsi_print_sense_hdr scsi_mod +alias symbol:usb_serial_handle_sysrq_char usbserial alias symbol:nf_conntrack_l4proto_udp4 nf_conntrack alias symbol:fscache_wait_bit fscache alias symbol:scsi_report_bus_reset scsi_mod @@ -265,6 +281,7 @@ alias symbol:scsi_eh_get_sense scsi_mod alias symbol:fscache_object_states fscache alias symbol:scsi_init_io scsi_mod alias symbol:jbd2_journal_release_jbd_inode jbd2 +alias symbol:usb_serial_generic_throttle usbserial alias symbol:jbd2_journal_start_commit jbd2 alias symbol:fscache_object_sleep_till_congested fscache alias symbol:nf_ct_helper_hsize nf_conntrack @@ -286,6 +303,7 @@ alias symbol:usb_add_config_only libcomposite alias symbol:xfrm4_tunnel_deregister tunnel4 alias symbol:usbnet_write_cmd_nopm usbnet alias symbol:usbnet_stop usbnet +alias symbol:usb_serial_generic_wait_until_sent usbserial alias symbol:nf_ct_untracked_status_or nf_conntrack alias symbol:__nf_ct_l4proto_find nf_conntrack alias symbol:xt_unregister_target x_tables @@ -304,6 +322,7 @@ alias symbol:usb_gstrings_attach libcomposite alias symbol:__fscache_read_or_alloc_pages fscache alias symbol:usbnet_link_change usbnet alias symbol:__fscache_wait_on_invalidate fscache +alias symbol:usb_serial_generic_open usbserial alias symbol:__nf_ct_refresh_acct nf_conntrack alias symbol:nf_ct_extend_register nf_conntrack alias symbol:nf_ct_l3proto_try_module_get nf_conntrack @@ -353,6 +372,7 @@ alias symbol:nf_ct_alloc_hashtable nf_conntrack alias symbol:usb_stor_bulk_srb usb_storage alias symbol:g_make_token_header auth_rpcgss alias symbol:scsi_set_medium_removal scsi_mod +alias symbol:usb_serial_deregister_drivers usbserial alias symbol:ip6t_register_table ip6_tables alias symbol:usbnet_cdc_status cdc_ether alias symbol:usb_stor_sense_invalidCDB usb_storage @@ -464,6 +484,7 @@ alias symbol:jbd2_journal_try_to_free_buffers jbd2 alias symbol:usbnet_cdc_unbind cdc_ether alias symbol:scsi_track_queue_full scsi_mod alias symbol:__scsi_print_command scsi_mod +alias symbol:usb_serial_generic_write_bulk_callback usbserial alias symbol:usbnet_start_xmit usbnet alias symbol:nf_conntrack_l4proto_tcp6 nf_conntrack alias symbol:scsi_build_sense_buffer scsi_mod @@ -476,6 +497,7 @@ alias symbol:ip_tunnel_newlink ip_tunnel alias symbol:gether_get_host_addr_cdc u_ether alias symbol:jbd2_trans_will_send_data_barrier jbd2 alias symbol:scsi_host_set_state scsi_mod +alias symbol:usb_serial_handle_dcd_change usbserial alias symbol:scsi_extd_sense_format scsi_mod alias symbol:scsi_target_unblock scsi_mod alias symbol:jbd2_journal_errno jbd2 diff --git a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.symbols.bin b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.symbols.bin index 12507b9..61ad2e9 100644 Binary files a/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.symbols.bin and b/SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.symbols.bin differ diff --git a/SD_ROOT/wz_mini/usr/bin/imp_helper.sh b/SD_ROOT/wz_mini/usr/bin/imp_helper.sh new file mode 100755 index 0000000..12760b3 --- /dev/null +++ b/SD_ROOT/wz_mini/usr/bin/imp_helper.sh @@ -0,0 +1,158 @@ +#!/bin/sh + +#Run impdbg commands sequentially + +set -x + +export WZMINI_CFG=/opt/wz_mini/wz_mini.conf + +[ -f $WZMINI_CFG ] && source $WZMINI_CFG + +DELAY_BETWEEN=2 +RE_RUN_DELAY=45 +PARM=1 + +hi_res_monitor() { +if [[ "$RTSP_HI_RES_ENABLED" == "true" ]]; then + + if [[ "$RTSP_HI_RES_ENC_PARAMETER" != "" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then + if [[ $RTSP_HI_RES_ENC_PARAMETER =~ "^[0|1|2|4|8]$" ]]; then + /system/bin/impdbg --enc_rc_s 0:0:4:$RTSP_HI_RES_ENC_PARAMETER + sleep $DELAY_BETWEEN + PARM=$((PARM+1)) + else + echo "Invalid encoder value" + fi + else + if [[ $RTSP_HI_RES_ENC_PARAMETER =~ "^[0|1|2|4|8]$" ]]; then + /system/bin/impdbg --enc_rc_s 0:44:4:$RTSP_HI_RES_ENC_PARAMETER + sleep $DELAY_BETWEEN + PARM=$((PARM+1)) + else + echo "Invalid encoder value" + fi + fi + fi + + if [[ "$RTSP_HI_RES_MAX_BITRATE" != "" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then + /system/bin/impdbg --enc_rc_s 0:28:4:$RTSP_HI_RES_MAX_BITRATE + sleep $DELAY_BETWEEN + PARM=$((PARM+1)) + else + /system/bin/impdbg --enc_rc_s 0:52:4:$RTSP_HI_RES_MAX_BITRATE + sleep $DELAY_BETWEEN + PARM=$((PARM+1)) + fi + fi + + if [[ "$RTSP_HI_RES_TARGET_BITRATE" != "" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then + echo "not supported on T20" + else + /system/bin/impdbg --enc_rc_s 0:48:4:$RTSP_HI_RES_TARGET_BITRATE + sleep $DELAY_BETWEEN + PARM=$((PARM+1)) + fi + fi + + if [[ "$RTSP_HI_RES_FPS" != "" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then + /system/bin/impdbg --enc_rc_s 0:8:4:$RTSP_HI_RES_FPS + sleep $DELAY_BETWEEN + PARM=$((PARM+1)) + else + /system/bin/impdbg --enc_rc_s 0:80:4:$RTSP_HI_RES_FPS + sleep $DELAY_BETWEEN + PARM=$((PARM+1)) + fi + fi + + if [ $PARM == 1 ]; then + echo "No Hi-Res imp variables enabled, check Low-Res" + fi + + low_res_monitor +else + echo "Hi-Res RTSP not enabled" + low_res_monitor +fi +} + +low_res_monitor () { +if [[ "$RTSP_LOW_RES_ENABLED" == "true" ]]; then + + if [[ "$RTSP_LOW_RES_ENC_PARAMETER" != "" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then + if [[ $RTSP_LOW_RES_ENC_PARAMETER =~ "^[0|1|2|4|8]$" ]]; then + /system/bin/impdbg --enc_rc_s 1:0:4:$RTSP_LOW_RES_ENC_PARAMETER + sleep $DELAY_BETWEEN + PARM=$((PARM+1)) + else + echo "Invalid encoder value" + fi + else + if [[ $RTSP_LOW_RES_ENC_PARAMETER =~ "^[0|1|2|4|8]$" ]]; then + /system/bin/impdbg --enc_rc_s 1:44:4:$RTSP_LOW_RES_ENC_PARAMETER + sleep $DELAY_BETWEEN + PARM=$((PARM+1)) + else + echo "Invalid encoder value" + fi + fi + fi + + if [[ "$RTSP_LOW_RES_MAX_BITRATE" != "" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then + /system/bin/impdbg --enc_rc_s 1:28:4:$RTSP_LOW_RES_MAX_BITRATE + sleep $DELAY_BETWEEN + PARM=$((PARM+1)) + else + /system/bin/impdbg --enc_rc_s 1:52:4:$RTSP_LOW_RES_MAX_BITRATE + sleep $DELAY_BETWEEN + PARM=$((PARM+1)) + fi + fi + + if [[ "$RTSP_LOW_RES_TARGET_BITRATE" != "" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then + echo "not supported on T20" + else + /system/bin/impdbg --enc_rc_s 1:48:4:$RTSP_LOW_RES_TARGET_BITRATE + sleep $DELAY_BETWEEN + PARM=$((PARM+1)) + fi + fi + + if [[ "$RTSP_LOW_RES_FPS" != "" ]]; then + if [ -f /opt/wz_mini/tmp/.T20 ]; then + /system/bin/impdbg --enc_rc_s 1:8:4:$RTSP_LOW_RES_FPS + sleep $DELAY_BETWEEN + PARM=$((PARM+1)) + else + /system/bin/impdbg --enc_rc_s 1:80:4:$RTSP_LOW_RES_FPS + sleep $DELAY_BETWEEN + PARM=$((PARM+1)) + fi + fi + + if [ $PARM == 1 ]; then + echo "No Low-Res imp variables enabled, exit" + break + fi +else + echo "Low-Res RTSP not enabled" + if [[ "$RTSP_HI_RES_ENABLED" == "true" ]] && [ $PARM -gt 1 ]; then + hi_res_monitor + else + break + fi +fi +} + +while true; do + hi_res_monitor + echo "Restart imp_helper.sh, sleep for $RE_RUN_DELAY" + sleep $RE_RUN_DELAY +done diff --git a/file.chk b/file.chk index 5a48f72..bc20381 100644 --- a/file.chk +++ b/file.chk @@ -1,14 +1,15 @@ -40bab9a9501244b7b482eb2c138f7f57 SD_ROOT/factory_t31_ZMC6tiIDQN +dc7881ecab32fec7ecddecfa05065d6c SD_ROOT/factory_t31_ZMC6tiIDQN d41d8cd98f00b204e9800998ecf8427e SD_ROOT/wz_mini/mnt/.gitignore 28cf061770da7b83fbc3752c455a02c3 SD_ROOT/wz_mini/etc/dnsmasq.conf 34c6a4c3a941ff2becd9f487826d7692 SD_ROOT/wz_mini/etc/uvc.config ad7d1a2f9db3079617731b5854ce3b6a SD_ROOT/wz_mini/etc/init.d/wz_cam.sh -0774518c06d6ef8e7181d35f194777cc SD_ROOT/wz_mini/etc/init.d/wz_init.sh -0abc8c502bded3b056ac64ab72e76f3f SD_ROOT/wz_mini/etc/init.d/wz_user.sh -22d8154a9d2b66b381b9f4188afc6357 SD_ROOT/wz_mini/etc/init.d/wz_post.sh +4fa268615ba8103545b062ca403bd6e8 SD_ROOT/wz_mini/etc/init.d/wz_init.sh +7ab8680003d6924c76bc8c48de115da3 SD_ROOT/wz_mini/etc/init.d/wz_user.sh +24d3dbf789915507ce7aee7537ec0826 SD_ROOT/wz_mini/etc/init.d/wz_post.sh e3034eac02d8eda9902ca9cf89f0a586 SD_ROOT/wz_mini/etc/inittab 840aa9c26726201f7cffbf001bee193a SD_ROOT/wz_mini/etc/uvc_jxf22.config -7c9d57b1b1b8bbdddfb248565ce02cb4 SD_ROOT/wz_mini/etc/wz_mini.conf.dist +d41d8cd98f00b204e9800998ecf8427e SD_ROOT/wz_mini/etc/rc.local.d/.gitignore +f9fea7e8c6926879a1088d41c8a616e9 SD_ROOT/wz_mini/etc/wz_mini.conf.dist 8b5e58acfcbb20034dc4873a08b45fd9 SD_ROOT/wz_mini/etc/profile 2c2df1b9cb603f9c31c46162d6ac307f SD_ROOT/wz_mini/etc/alsa/alsa.conf 9e5591da95042bcca910403bde25dc60 SD_ROOT/wz_mini/etc/fstab @@ -52,8 +53,9 @@ a8970288e72c871bff6a4484f1e733d6 SD_ROOT/wz_mini/bin/readelf 41b56bb30f02bce5f5e2598073151e16 SD_ROOT/wz_mini/bin/ffmpeg e37474a12d76cae16336476cba61e8b8 SD_ROOT/wz_mini/bin/neofetch 7fcc716cda1e024dae1045050a135beb SD_ROOT/wz_mini/bin/audioplay_t31 -f492fb3a78580b6f800734cc7cee644e SD_ROOT/wz_mini/bin/upgrade-run.sh +fbaa9735f60ad1b8bd9735251aa51c1f SD_ROOT/wz_mini/bin/upgrade-run.sh e6a6a9dd8ce138686083a3d4303cea40 SD_ROOT/wz_mini/bin/iperf3 +343482b8e6569ff2fbd8563d6e8c58f7 SD_ROOT/wz_mini/bin/fsck.vfat 0468ffb319707687557353242a518923 SD_ROOT/wz_mini/bin/wg 79d69cd251a8cdadd9957cdaec2034fc SD_ROOT/wz_mini/bin/rtmp-stream.sh 5d1359af0c7c5d326b8682a62f910620 SD_ROOT/wz_mini/bin/strace @@ -80,11 +82,12 @@ ac9f3a5d097d25d5d972c3d2ad288df9 SD_ROOT/wz_mini/usr/bin/ucamera_v2 cf049b9446094cc8a7e07a33cf91c4a8 SD_ROOT/wz_mini/usr/bin/watch_up.sh b339aee882a5d1c943ad08e4282ec3fd SD_ROOT/wz_mini/usr/bin/iCamera-dbg 20b061689308b2cee7edf3b9b906bca7 SD_ROOT/wz_mini/usr/bin/ucamera +3777d9e80c8b517c01a124e6360b6525 SD_ROOT/wz_mini/usr/bin/imp_helper.sh 580b1b6e91e72b4a4fef7b21d8954403 SD_ROOT/wz_mini/usr/bin/getSensorType 4c780f0455481d106d47d89f0ae04ed5 SD_ROOT/wz_mini/lib/uClibc.tar 9afeb088e4cbabbe0b04033b560204d0 SD_ROOT/wz_mini/lib/libimp.so 4100755cb6cc6e3b76da20c7e3690e16 SD_ROOT/wz_mini/lib/libalog.so -d63e45dd1a05a62ad91ef3d70eae44de SD_ROOT/wz_mini/lib/libcallback.so +ea6430bf3016b82871088c07640490b1 SD_ROOT/wz_mini/lib/libcallback.so b730b26986b36c49a5c9edb7fe1422be SD_ROOT/wz_mini/lib/modules/3.10.14/modules.order e458a5a0f017c68c2fb5658f1f0aeaf7 SD_ROOT/wz_mini/lib/modules/3.10.14/modules.devname 0fe2c09c560007790def301c0e9df33f SD_ROOT/wz_mini/lib/modules/3.10.14/modules.alias.bin @@ -156,77 +159,80 @@ ccf8f3611141656ba5594771bec06202 SD_ROOT/wz_mini/lib/modules/3.10.14/modules.so 79b84aaa91746763b61da20694ade62f SD_ROOT/wz_mini/lib/modules/3.10.14/modules.dep.bin 6d0c2124f94236c98c4abcbdb45c4395 SD_ROOT/wz_mini/lib/modules/3.10.14/modules.builtin.bin 7f6be2ddfad7f35e6979b95bc86cc684 SD_ROOT/wz_mini/lib/modules/3.10.14/modules.symbols -020b6120945a75fe25e949b094c4286b SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.order -c98aaa62c6f18be3ac26c12ffc41aff2 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.devname -38e59222166163aee2b811dce8bc1479 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.alias.bin -792dd40c508d4d65560aec52b51b30f8 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.alias -433f29f0e9b44fd53f5d3f2aab752062 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.dep -e287a5231b96affe8a142759b8776ef5 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.symbols.bin -f10007f2b27d7ff571928853b865c096 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/crypto/md4.ko -9f6ad625732d4e59996b3aa48392cfd5 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/crypto/cmac.ko -4a57e0a6eebdf4d7580049e18c5450b0 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/ext4/ext4.ko -86c72626d752fcf86aa016e3d093fb0f SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/cifs/cifs.ko -b0340272d2dba0e6488b65edde35aabe SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/mbcache.ko -a59b089731ba8ad9835faf00a6d814d9 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/fscache/fscache.ko -09eb6479235fcb24d6db5d2bed1cbbf0 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/nfs/nfsv4.ko -efc67a724625328eff8cb89abd062691 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/jbd2/jbd2.ko -f20751605f9081a9b031fca31a379af1 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_LOG.ko -8e74d3ba519fb0186ff3d3bf5da18e36 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/nf_conntrack.ko -88085e49193569bd1d1fdf26f0d046c8 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/x_tables.ko -a003e12d620b0f735e92ac72dd84cc2b SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_mark.ko -5e760045d2ac294ed80352d62ba5e447 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_tcpudp.ko -59be367a94cd339a79d75bf5ee370cd8 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_state.ko -f8073c0f564800cfa27920a36ff3dd92 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_TCPMSS.ko -ab5645bb7aa147dfd892aa28d18d139a SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko -0c846dcd127d8500c962bdc857663cca SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/dns_resolver/dns_resolver.ko -7823cff41886f596e97c554ed61e9b3a SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6table_mangle.ko -f519d25fe988b525ebff1ccf13b9d0b4 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6t_REJECT.ko -16728ab406f5a34736977dfd714636f1 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6_tables.ko -a414aa4e797355aebeb16b79cb545986 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6table_filter.ko -d07b1ca7cd33e33f8b12f4ac46317585 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/sit.ko -246174df1ddb3fbc2b6b3fb300e61a7c SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/ipt_REJECT.ko -c51a1ea529ad2b83b0d2d3dcb4d3ed2e SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko -606d44f519f4d112b196bad56fbbbd96 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko -5b50a9eb45e6b03a6a1432423e9e3bcb SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/ip_tables.ko -ad9a256267d4eab58cfd2de06e92f3ab SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_filter.ko -2d2aceaf9a1acf3f6e54dc029d9f9b38 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_mangle.ko -97eeacf8e6d12f5bac4444e175c82b7d SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/tunnel4.ko -9d30ba94eef92d431f071ffe1cee9891 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/ip_tunnel.ko -8c9c2084129b7c8eafdddc2975c2a51f SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/wireguard/wireguard.ko -bebed8cd727ab60ba8cefbe3e70d16f0 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/cdc_ether.ko -4bf9b9092bec25f13fc8c4a66cc8a6b3 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/rndis_host.ko -c90c0700191aab3bfa42bc26faf61a3a SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/asix.ko -f7028dd64c75955680b53bba91db6362 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/ax88179_178a.ko -6e8d0f4db025fbf7f79ef4585d6617c4 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/r8152.ko -14606d308e205e4ebdebf83dc22e7c43 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/usbnet.ko -ca4cff431f0fcd05dfc346f4e125d681 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/bonding/bonding.ko -1abcf81da8bdb8eca17941b27b694cc3 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/libcomposite.ko -e96bf482d469f132dd64327803a48155 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/u_ether.ko -63bef220049f4db0a0cc00461322d2a4 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/usb_f_ncm.ko -afce87801e734060908e2094d7a2725f SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/g_ncm.ko -1c923f45daf52b8e0b2275f5bdce1021 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/storage/usb-storage.ko -2f6ab4c4de5a8a75233255305b54327f SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/scsi/scsi_mod.ko -f1bf61ecda401f1a70f8942a27fa96e2 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/scsi/sd_mod.ko -380c35a5464a3f081c2a5e0db78a6740 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/lib/oid_registry.ko +6ef86b28ddfed393198662e15c2e6d95 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.order +d41d8cd98f00b204e9800998ecf8427e SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.devname +7318ef2b2c2dadabc168b81d0720197f SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.alias.bin +b307f53834b11bbd4a5e01461ef04bbc SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.alias +c3ced15d204a8fda54194db1d5cd42fc SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.dep +e367bad773fd92b9bdd25dce8ada8234 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.symbols.bin +d41d8cd98f00b204e9800998ecf8427e SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.builtin.alias.bin +75b749936eedceba6f7b68a10f0d10f3 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/crypto/md4.ko +c7e28df795c63cc5c1d00518dd969587 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/crypto/cmac.ko +356f6462265841a9673984ed0c1943dd SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/ext4/ext4.ko +bb4aadbe0ee501fac8b19860ac27127e SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/cifs/cifs.ko +c78e3f04646a3202d64e0f42dd986e99 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/mbcache.ko +665ffd442b652c48b5929694790803a0 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/fscache/fscache.ko +1458434c685047046c1cfc22fc11bc05 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/nfs/nfsv4.ko +c2838338637650abc2390a29e83963ac SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/jbd2/jbd2.ko +a120ddc153010092132207d4ccc3a271 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_LOG.ko +e1e721b9817d09ee6eca23b13b570768 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/nf_conntrack.ko +5d344ffe17ca84fc119edb65cb7dbdd9 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/x_tables.ko +6b5e3d45552bcf53b6a8d5908f2e9aab SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_mark.ko +68d67ccf9737d3f381ce8306c62e7588 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_tcpudp.ko +893265b2597e855736e2f308b13efc89 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_state.ko +43f6e67e0014ef9c1e7d75129696f694 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/netfilter/xt_TCPMSS.ko +369b5f14c8b44dd6c9f2153eaeb1e084 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko +4f7470a3a6546f447db5874a4db52af3 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/dns_resolver/dns_resolver.ko +fd8cad1d502977b570ccfc7471a3e98e SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6table_mangle.ko +a9d910713f5842fbc09774e50351e43d SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6t_REJECT.ko +c7474a95d65da89bbde9cb1831fc1da5 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6_tables.ko +3240bd6435addc9329839b6ee16dba34 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/netfilter/ip6table_filter.ko +f475ccfeb8b70738073cf5b7b9f7d4a7 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv6/sit.ko +e4a47c4ae8d3572a17b5b87b9d2b69c1 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/ipt_REJECT.ko +36df7d8a896c337612a1cc7d45a8801d SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko +7060d6479f866c52de718cd0480101d8 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko +110316d5263582228c70fd5fd2880480 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/ip_tables.ko +3411b4ed0ec37ed36e5f8cb7fc6c4946 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_filter.ko +fafed3e057a0f2683d2b2c489ca36510 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/netfilter/iptable_mangle.ko +45d16b2a02abe7595d2d24700b45c064 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/tunnel4.ko +4353fabfbac6cb832a1ed37dfd000ccd SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/ipv4/ip_tunnel.ko +4360140a03c0872daf3a1c88bfe0555a SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/net/wireguard/wireguard.ko +a16eb5ee6d15d45ad57b82cb0f8a4808 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/cdc_ether.ko +790d0ef7e14c0eed0ce980b11e6423e6 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/rndis_host.ko +73cbe3ec1613b47c3b5b8035f0e15c68 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/asix.ko +cdcb817d9cff603a5188573d148e0f8e SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/ax88179_178a.ko +4d5b3adf5d2784417981d4f9b1c8362e SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/r8152.ko +7af3d15df46ab93197ba1481cc4e2c39 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/usbnet.ko +3367575a728e87598327561d65ca7a9c SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/bonding/bonding.ko +ee90c93d5ba6047ee44664c06a5ac946 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/usbserial.ko +33f0775ff59ccd6979b46416c49f4cc4 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/cp210x.ko +f023ec28445449c2e31647f8f2b1a6a3 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/libcomposite.ko +c4635b0e5b2fe3aab4f117f8f7b6e619 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/u_ether.ko +aa0e5a49e97cbc1731dfeb3406bfd322 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/usb_f_ncm.ko +73756b762b00eb4aa3e69725efa37ac9 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/gadget/g_ncm.ko +92f9918e0c14051c0c173db0253f6bd8 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/storage/usb-storage.ko +be9265c5bd1c8e11a982703dbf946db9 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/scsi/scsi_mod.ko +1c88d5a3a2694eaa2939733c23ce73c4 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/scsi/sd_mod.ko +fdd94de5016bc92cf93ecff7cb92ac1d SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/kernel/lib/oid_registry.ko 6cf0981e18c5fce65944bb40f8fe303f SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.builtin 8d5dadc88d2a014d8e0d85cecb1375ed SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/usbcamera.ko 9e58eb1e70b6f1f316368ac413f86790 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/v4l2loopback.ko -ec11b3b956531e8652019c68e710462c SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/atbm603x_wifi_sdio.ko +ca9596eb9259bf184040591e14ab3898 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/atbm603x_wifi_sdio.ko 38714d79334997f06e3c5e005252bf9b SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/videobuf2-vmalloc.ko 01bbbcd8107e92dd470ff0e713f17485 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/atbm_txpwer_dcxo_cfg.txt 09144a07fe19daa6078a0a3861de6832 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/audio.ko -d52dd5f273ed68807dfddfd99940e6f9 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/8189fs.ko +35ece3c7b6ada61bf6f4e18c339556c3 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/extra/8189fs.ko ccf8f3611141656ba5594771bec06202 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.softdep -b3ef3280fadde06c0990dbfe4cff18ca SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.dep.bin +c6a2e765996b4a8bfe351757785fb989 SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.dep.bin 377ed0fe5b4c71821a65797905850abb SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.builtin.bin -aafb0749425838f41e68ecced758ab6c SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.symbols +55ea4a68e588713296179d7905594f4b SD_ROOT/wz_mini/lib/modules/3.10.14__isvp_swan_1.0__/modules.symbols 14865a6e2e2df87a8362c6f20377a934 SD_ROOT/wz_mini/lib/libtinyalsa.so.2.0.0 14865a6e2e2df87a8362c6f20377a934 SD_ROOT/wz_mini/lib/libtinyalsa.so.2 bd383994491e4bdca81788c168feb2eb SD_ROOT/wz_mini/lib/libasound.so.2 f6f0d5a9ebd916de6bdb9695067809ae SD_ROOT/wz_mini/lib/libaudioProcess.so -7c9d57b1b1b8bbdddfb248565ce02cb4 SD_ROOT/wz_mini/wz_mini.conf +f9fea7e8c6926879a1088d41c8a616e9 SD_ROOT/wz_mini/wz_mini.conf d41d8cd98f00b204e9800998ecf8427e SD_ROOT/wz_mini/tmp/.gitignore 090bdf50db1c1d05720f276295ac17ca v2_install/compile_image.sh -ff15869fe24297b9a5f75335a458a44f v2_install/fw_tool.sh +53db8da5b90bc9b219dbb1d58e934bda v2_install/fw_tool.sh 2f9f07a88d8a0f08c83c0b954fd012e6 v2_install/v2_kernel.bin f01d641b98388e273c1f0ba682ebc75b v2_install/.gitignore diff --git a/src/libcallback_wz_mod/Makefile b/src/libcallback_wz_mod/Makefile deleted file mode 100644 index dc4c7bc..0000000 --- a/src/libcallback_wz_mod/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# libcallback.so - -CC = /openmiko/build/mips-gcc472-glibc216-64bit/bin/mips-linux-uclibc-gnu-gcc -CFLAGS = -fPIC -std=gnu99 -shared -ldl -ltinyalsa -lm -pthread -CC_SRCS = video_callback.c audio_callback.c jpeg.c setlinebuf.c mmc_format.c curl.c freopen.c opendir.c remove.c motor.c command.c gmtime_r.c wait_motion.c irled.c audio_play.c mp4write.c imp_control.c night_drop.c -TARGET = libcallback.so - -all: ${TARGET} - -${TARGET}: ${CC_SRCS} - ${CC} ${CFLAGS} -o ${TARGET} ${CC_SRCS} diff --git a/src/libcallback_wz_mod/audio_callback.c b/src/libcallback_wz_mod/audio_callback.c deleted file mode 100644 index 158b4dd..0000000 --- a/src/libcallback_wz_mod/audio_callback.c +++ /dev/null @@ -1,180 +0,0 @@ -#define _GNU_SOURCE -#include -#include -#include -#include -#include -#include -#include -#include -#include - -struct frames_st { - void *buf; - size_t length; -}; -typedef int (* framecb)(struct frames_st *); - -static uint32_t (*real_local_sdk_audio_set_pcm_frame_callback)(int ch, void *callback); -static void *audio_pcm_cb = NULL; -static int AudioCaptureEnable = 0; - -static void *audio_pcm_cb1 = NULL; -static int AudioCaptureEnable1 = 0; - -char *AudioCapture(int fd, char *tokenPtr) { - - char *p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(!p) return AudioCaptureEnable ? "on" : "off"; - if(!strcmp(p, "on")) { - AudioCaptureEnable = 1; - fprintf(stderr, "[command] audio capute on\n", p); - return "ok"; - } - if(!strcmp(p, "on1")) { - AudioCaptureEnable1 = 1; - fprintf(stderr, "[command] audio capute on\n", p); - return "ok"; - } - if(!strcmp(p, "off")) { - AudioCaptureEnable = 0; - fprintf(stderr, "[command] audio capute off\n", p); - return "ok"; - } - if(!strcmp(p, "off1")) { - AudioCaptureEnable1 = 0; - fprintf(stderr, "[command] audio capute off\n", p); - return "ok"; - } - return "error"; -} - -//channel 0 -static uint32_t audio_pcm_capture(struct frames_st *frames) { - - static struct pcm *pcm = NULL; - static int firstEntry = 0; - uint32_t *buf = frames->buf; - - static int snd_rate = 16000; - const char *productv2="/driver/sensor_jxf23.ko"; - - //Change sample rate to 8000 if we are a V2 Camera - if( access( productv2, F_OK ) == 0 ) { - snd_rate = 8000; - } - - - if(!firstEntry) { - firstEntry++; - unsigned int card = 0; - unsigned int device = 1; - int flags = PCM_OUT | PCM_MMAP; - const struct pcm_config config = { - .channels = 1, - .rate = snd_rate, - .format = PCM_FORMAT_S16_LE, - .period_size = 128, - .period_count = 8, - .start_threshold = 320, - .silence_threshold = 0, - .silence_size = 0, - .stop_threshold = 320 * 4 - }; - pcm = pcm_open(card, device, flags, &config); - if(pcm == NULL) { - fprintf(stderr, "failed to allocate memory for PCM CH0\n"); - } else if(!pcm_is_ready(pcm)) { - pcm_close(pcm); - fprintf(stderr, "failed to open PCM CH0\n"); - } - } - - if(pcm && AudioCaptureEnable) { - int avail = pcm_mmap_avail(pcm); - int delay = pcm_get_delay(pcm); - int ready = pcm_is_ready(pcm); - int err = pcm_writei(pcm, buf, pcm_bytes_to_frames(pcm, frames->length)); - if(err < 0) fprintf(stderr, "pcm_writei err=%d\n", err); - } - return ((framecb)audio_pcm_cb)(frames); -} - -//channel1 -static uint32_t audio_pcm_capture1(struct frames_st *frames) { - - static struct pcm *pcm = NULL; - static int firstEntry = 0; - uint32_t *buf = frames->buf; - - if(!firstEntry) { - firstEntry++; - unsigned int card = 0; - unsigned int device = 0; - int flags = PCM_OUT | PCM_MMAP; - const struct pcm_config config = { - .channels = 1, - .rate = 8000, - .format = PCM_FORMAT_S16_LE, - .period_size = 128, - .period_count = 8, - .start_threshold = 320, - .silence_threshold = 0, - .silence_size = 0, - .stop_threshold = 320 * 4 - }; - pcm = pcm_open(card, device, flags, &config); - if(pcm == NULL) { - fprintf(stderr, "failed to allocate memory for PCM CH1\n"); - } else if(!pcm_is_ready(pcm)) { - pcm_close(pcm); - fprintf(stderr, "failed to open PCM CH1\n"); - } - } - - if(pcm && AudioCaptureEnable1) { - int avail = pcm_mmap_avail(pcm); - int delay = pcm_get_delay(pcm); - int ready = pcm_is_ready(pcm); - int err = pcm_writei(pcm, buf, pcm_bytes_to_frames(pcm, frames->length)); - if(err < 0) fprintf(stderr, "pcm_writei err=%d\n", err); - } - return ((framecb)audio_pcm_cb1)(frames); -} - -uint32_t local_sdk_audio_set_pcm_frame_callback(int ch, void *callback) { - - fprintf(stderr, "local_sdk_audio_set_pcm_frame_callback streamChId=%d, callback=0x%x\n", ch, callback); - - static int ch_count = 0; - - if( (ch == 0) && ch_count == 0) { - audio_pcm_cb = callback; - fprintf(stderr,"enc func injection CH0 save audio_pcm_cb=0x%x\n", audio_pcm_cb); - callback = audio_pcm_capture; - } - - if( (ch == 1) && ch_count == 1) { - audio_pcm_cb1 = callback; - fprintf(stderr,"enc func injection CH1 save audio_pcm_cb=0x%x\n", audio_pcm_cb1); - callback = audio_pcm_capture1; - } - -//if V2 here, we have to latch on to the same callback as CH0, since the V2's only have one audio callback - const char *productv2="/driver/sensor_jxf23.ko"; - if( access( productv2, F_OK ) == 0 ) { - if( (ch == 0) && ch_count == 1) { - audio_pcm_cb1 = callback; - fprintf(stderr,"enc func injection CH0 second callback for V2 save audio_pcm_cb=0x%x\n", audio_pcm_cb1); - callback = audio_pcm_capture1; - } -} - ch_count=ch_count+1; - - return real_local_sdk_audio_set_pcm_frame_callback(ch, callback); -} - -static void __attribute ((constructor)) audio_callback_init(void) { - - real_local_sdk_audio_set_pcm_frame_callback = dlsym(dlopen("/system/lib/liblocalsdk.so", RTLD_LAZY), "local_sdk_audio_set_pcm_frame_callback"); -} diff --git a/src/libcallback_wz_mod/audio_play.c b/src/libcallback_wz_mod/audio_play.c deleted file mode 100644 index a69ca0f..0000000 --- a/src/libcallback_wz_mod/audio_play.c +++ /dev/null @@ -1,126 +0,0 @@ -#include -#include -#include -#include -#include - -extern void local_sdk_speaker_set_pa_mode(int mode); -extern void local_sdk_speaker_set_ap_mode(int mode); -extern void local_sdk_speaker_clean_buf_data(); -extern void local_sdk_speaker_set_volume(int volume); -extern int local_sdk_speaker_feed_pcm_data(unsigned char *buf, int size); -extern void local_sdk_speaker_finish_buf_data(); -extern void CommandResponse(int fd, const char *res); - -static pthread_mutex_t AudioPlayMutex = PTHREAD_MUTEX_INITIALIZER; -static int AudioPlayFd = -1; -static char waveFile[256]; -static int Volume = 0; - -int PlayPCM(char *file, int vol) { - - static const int waveHeaderLength = 44; - static const int bufLength = 640; - unsigned char buf[bufLength]; - const unsigned char cmp[] = { - 0x52, 0x49, 0x46, 0x46, 0x00, 0x00, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45, 0x66, 0x6d, 0x74, 0x20, - 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x40, 0x1f, 0x00, 0x00, 0x80, 0x3e, 0x00, 0x00, - 0x02, 0x00, 0x10, 0x00, 0x64, 0x61, 0x74, 0x61 - }; - - fprintf(stderr, "[command] aplay: file:%s\n", file); - FILE *fp = fopen(file, "rb"); - if(fp == NULL) { - fprintf(stderr, "[command] aplay err: fopen %s failed!\n", file); - return -1; - } else { - size_t size = fread(buf, 1, waveHeaderLength, fp); - if(size != waveHeaderLength) { - fprintf(stderr, "[command] aplay err: header size error\n"); - } - buf[4] = buf[5] = buf[6] = buf[7] = 0; - if(memcmp(buf, cmp, waveHeaderLength - 4)) { - fprintf(stderr, "[command] aplay err: header error\n"); - } - local_sdk_speaker_clean_buf_data(); - local_sdk_speaker_set_volume(vol); - - if(!local_sdk_speaker_set_pa_mode) { - local_sdk_speaker_set_ap_mode(3); - fprintf(stderr, "[command] aplay: set ap mode 3\n"); - } - - if(!local_sdk_speaker_set_ap_mode) { - local_sdk_speaker_set_pa_mode(3); - fprintf(stderr, "[command] aplay: set pa mode 3\n"); - } - - - - while(!feof(fp)) { - size = fread(buf, 1, bufLength, fp); - if (size <= 0) break; - while(local_sdk_speaker_feed_pcm_data(buf, size)) usleep(100 * 1000); - } - fclose(fp); - usleep(2 * 1000 * 1000); - local_sdk_speaker_finish_buf_data(); - local_sdk_speaker_set_volume(0); - - if(!local_sdk_speaker_set_pa_mode) { - local_sdk_speaker_set_ap_mode(0); - } - if(!local_sdk_speaker_set_ap_mode) { - local_sdk_speaker_set_pa_mode(0); - } - - } - fprintf(stderr, "[command] aplay: finish\n"); - return 0; -} - -static void *AudioPlayThread() { - - while(1) { - pthread_mutex_lock(&AudioPlayMutex); - if(AudioPlayFd >= 0) { - int res = PlayPCM(waveFile, Volume); - CommandResponse(AudioPlayFd, res ? "error" : "ok"); - } - AudioPlayFd = -1; - } -} - -char *AudioPlay(int fd, char *tokenPtr) { - - if(AudioPlayFd >= 0) { - fprintf(stderr, "[command] aplay err: Previous file is still playing. %d %d\n", AudioPlayFd, fd); - return "error"; - } - - char *p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(!p) { - fprintf(stderr, "[command] aplay err: usage : aplay []\n"); - return "error"; - } - strncpy(waveFile, p, 255); - - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - Volume = 40; - if(p) Volume = atoi(p); - - AudioPlayFd = fd; - pthread_mutex_unlock(&AudioPlayMutex); - return NULL; -} - -static void __attribute ((constructor)) AudioPlayInit(void) { - - pthread_mutex_lock(&AudioPlayMutex); - pthread_t thread; - if(pthread_create(&thread, NULL, AudioPlayThread, NULL)) { - fprintf(stderr, "pthread_create error\n"); - pthread_mutex_unlock(&AudioPlayMutex); - return; - } -} diff --git a/src/libcallback_wz_mod/command.c b/src/libcallback_wz_mod/command.c deleted file mode 100644 index 8ff2ab6..0000000 --- a/src/libcallback_wz_mod/command.c +++ /dev/null @@ -1,197 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static const unsigned short CommandPort = 4000; -static int SelfPipe[2]; - -extern char *JpegCapture(int fd, char *tokenPtr); -extern char *VideoCapture(int fd, char *tokenPtr); -extern char *AudioCapture(int fd, char *tokenPtr); -extern char *MotorMove(int fd, char *tokenPtr); -extern char *WaitMotion(int fd, char *tokenPtr); -extern char *IrLed(int fd, char *tokenPtr); -extern char *AudioPlay(int fd, char *tokenPtr); -extern char *mp4Write(int fd, char *tokenPtr); -extern char *imp_Control(int fd, char *tokenPtr); - -struct CommandTableSt { - const char *cmd; - char * (*func)(int, char *); -}; - -struct CommandTableSt CommandTable[] = { - { "video", &VideoCapture }, - { "audio", &AudioCapture }, - { "jpeg", &JpegCapture }, - { "move", &MotorMove }, - { "waitMotion", &WaitMotion }, - { "irled", &IrLed }, - { "aplay", &AudioPlay }, - { "mp4write", &mp4Write }, - { "imp_control", &imp_Control }, - -}; - -void CommandResponse(int fd, const char *res) { - - unsigned char buf[256]; - buf[0] = strlen(res) + 1; - buf[1] = fd; - strncpy((char *)buf + 2, res, 253); - write(SelfPipe[1], &buf, buf[0] + 2); -} - -static void *CommandThread(void *arg) { - - static const int MaxConnect = 255; - int maxFd = 0; - fd_set targetFd; - - int listenSocket = socket(AF_INET, SOCK_STREAM, 0); - if(listenSocket < 0) { - fprintf(stderr, "socket : %s\n", strerror(errno)); - return NULL; - } - int sock_optval = 1; - if(setsockopt(listenSocket, SOL_SOCKET, SO_REUSEADDR, - &sock_optval, sizeof(sock_optval)) == -1) { - fprintf(stderr, "setsockopt : %s\n", strerror(errno)); - close(listenSocket); - return NULL; - } - - struct sockaddr_in saddr; - saddr.sin_family = AF_INET; - saddr.sin_port = htons(CommandPort); - saddr.sin_addr.s_addr = htonl(INADDR_ANY); - if(bind(listenSocket, (struct sockaddr *)&saddr, sizeof(saddr)) < 0) { - fprintf(stderr, "bind : %s\n", strerror(errno)); - close(listenSocket); - return NULL; - } - - if(listen(listenSocket, MaxConnect) == -1) { - fprintf(stderr, "listen : %s\n", strerror(errno)); - close(listenSocket); - return NULL; - } - - FD_ZERO(&targetFd); - FD_SET(listenSocket, &targetFd); - maxFd = listenSocket; - FD_SET(SelfPipe[0], &targetFd); - maxFd = (SelfPipe[0] > maxFd) ? SelfPipe[0] : maxFd; - if(maxFd >= MaxConnect) maxFd = MaxConnect - 1; - - while(1) { - fd_set checkFDs; - memcpy(&checkFDs, &targetFd, sizeof(targetFd)); - if(select(maxFd + 1, &checkFDs, NULL, NULL, NULL) == -1) { - fprintf(stderr, "select error : %s\n", strerror(errno)); - } else { - for(int fd = maxFd; fd >= 0; fd--) { - if(FD_ISSET(fd, &checkFDs)) { - if(fd == SelfPipe[0]) { - while(1) { - unsigned char buf[256]; - int length = read(SelfPipe[0], buf, 2); - if(length <= 1) break; - int resSize = buf[0]; - int resFd = buf[1]; - length = read(SelfPipe[0], buf, resSize); - if(length < resSize) break; - char *res = (char *)buf; - if(strlen(res)) { - strcat(res, "\n"); - send(resFd, res, strlen(res) + 1, 0); - } - close(resFd); - FD_CLR(resFd, &targetFd); - } - } else if(fd == listenSocket) { - struct sockaddr_in dstAddr; - int len = sizeof(dstAddr); - int newSocket = accept(fd, (struct sockaddr *)&dstAddr, (socklen_t *)&len); - if(newSocket < 0) { - fprintf(stderr, "Socket::Accept Error\n"); - continue; - } - if(strcmp(inet_ntoa(dstAddr.sin_addr), "127.0.0.1")) { - fprintf(stderr, "Rejected request from %s\n", inet_ntoa(dstAddr.sin_addr)); - close(newSocket); - continue; - } - int flag = fcntl(newSocket, F_GETFL, 0); - fcntl(newSocket, F_SETFL, O_NONBLOCK|flag); - FD_SET(newSocket, &targetFd); - maxFd = (newSocket > maxFd) ? newSocket : maxFd; - if(maxFd >= MaxConnect) maxFd = MaxConnect - 1; - } else { - char buf[256]; - int size = recv(fd, buf, 255, 0); - if(!size) { - FD_CLR(fd, &targetFd); - break; - } - if(size < 0) { - close(fd); - FD_CLR(fd, &targetFd); - break; - } - buf[size] = 0; - char *tokenPtr; - char *p = strtok_r(buf, " \t\r\n", &tokenPtr); - if(!p) continue; - int executed = 0; - for(int i = 0; i < sizeof(CommandTable) / sizeof(struct CommandTableSt); i++) { - if(!strcasecmp(p, CommandTable[i].cmd)) { - char *res = (*CommandTable[i].func)(fd, tokenPtr); - if(res) { - send(fd, res, strlen(res) + 1, 0); - char cr = '\n'; - send(fd, &cr, 1, 0); - close(fd); - FD_CLR(fd, &targetFd); - } - executed = 1; - break; - } - } - if(!executed) { - char *res = "error"; - send(fd, res, strlen(res) + 1, 0); - close(fd); - FD_CLR(fd, &targetFd); - fprintf(stderr, "command error : %s\n", p); - } - } - } - } - } - } -} - -static void __attribute ((constructor)) command_init(void) { - - if(pipe(SelfPipe)) { - fprintf(stderr, "pipe error\n"); - return; - } - int flag = fcntl(SelfPipe[0], F_GETFL, 0); - fcntl(SelfPipe[0], F_SETFL, O_NONBLOCK|flag); - flag = fcntl(SelfPipe[1], F_GETFL, 0); - fcntl(SelfPipe[1], F_SETFL, O_NONBLOCK|flag); - - pthread_t thread; - pthread_create(&thread, NULL, CommandThread, NULL); -} diff --git a/src/libcallback_wz_mod/curl.c b/src/libcallback_wz_mod/curl.c deleted file mode 100644 index 64624b5..0000000 --- a/src/libcallback_wz_mod/curl.c +++ /dev/null @@ -1,125 +0,0 @@ -#include -#include -#include -#include -#include - -typedef void CURL; -typedef int CURLcode; -typedef long long curl_off_t; -typedef enum { - HTTPREQ_NONE, - HTTPREQ_GET, - HTTPREQ_POST, - HTTPREQ_POST_FORM, - HTTPREQ_POST_MIME, - HTTPREQ_PUT, - HTTPREQ_HEAD, - HTTPREQ_OPTIONS, - HTTPREQ_LAST -} Curl_HttpReq; - -static const int CURL_OK = 0; -const char *methods[] = { - "NONE", "GET", "POST", "POST_FORM", "POST_MIME", "PUT", "HEAD", "OPTIONS", "LAST", "" -}; -static const char *AlarmPath = "/device/v1/alarm/add"; -static const char *DummyRes = "{\"ts\":1641390551000,\"code\":\"1\",\"msg\":\"\",\"data\":{\"alarm_file_list\":[{\"file_type\":1,\"file_suffix\":\"jpg\",\"file_url\":\"https://localhost/hoge.jpg\",\"encryption_algorithm\":0,\"encryption_password\":\"\"},{\"file_type\":2,\"file_suffix\":\"mp4\",\"file_url\":\"https://localhost/fuga.mp4\",\"encryption_algorithm\":0,\"encryption_password\":\"\"}]}}"; -static const char *DummyHost = "https://localhost/"; - -typedef int (*curl_seek_callback)(void *instream, int offset, int origin); -typedef int (*curl_write_callback)(char *buffer, int size, int nitems, void *outstream); - -struct SessionHandle { - unsigned char padding0[1392]; - unsigned char padding1[16]; - void *out; // offset 1392 + 16 - unsigned char padding2[40]; - void *postfields; // offset 1392 + 60 - unsigned char padding3[8]; - curl_off_t postfieldsize; // offset offset 1392 + 72 - unsigned char padding4[8]; - curl_write_callback fwrite_func; // offset 1392 + 88 - unsigned char padding5[568]; - Curl_HttpReq httpreq; // offset 1392 + 660 - unsigned char padding6[664]; - char *url; // offset 2720 + 0 - unsigned char padding7[16]; - unsigned char padding8[988]; - int httpcode; // offset 3728 + 0 -}; - -static CURLcode (*original_curl_easy_perform)(CURL *curl); -static int curl_hook_enable = 0; - -static void __attribute ((constructor)) curl_hook_init(void) { - original_curl_easy_perform = dlsym(dlopen("/thirdlib/libcurl.so", RTLD_LAZY), "curl_easy_perform"); - char *p = getenv("MINIMIZE_ALARM_CYCLE"); - curl_hook_enable = p && !strcmp(p, "on"); -} - -static void Dump(const char *str, void *start, int size) { - printf("[curl-debug] Dump %s\n", str); - for(int i = 0; i < size; i+= 16) { - char buf1[256]; - char buf2[256]; - sprintf(buf1, "%08x : ", start + i); - for(int j = 0; j < 16; j++) { - if(i + j >= size) break; - unsigned char d = ((unsigned char *)start)[i + j]; - sprintf(buf1 + strlen(buf1), "%02x ", d); - if((d < 0x20) || (d > 0x7f)) d = '.'; - sprintf(buf2 + j, "%c", d); - } - printf("%s %s\n", buf1, buf2); - } -} - -CURLcode curl_easy_perform(struct SessionHandle *data) { - - if(!curl_hook_enable) return original_curl_easy_perform(data); - - unsigned int ra = 0; - asm volatile( - "ori %0, $31, 0\n" - : "=r"(ra) - ); - - int method = data->httpreq; - if(method > HTTPREQ_LAST) method = HTTPREQ_LAST; - printf("[curl-debug] %s %s ra=0x%08x\n", methods[method], data->url, ra); - if(data->postfields) { - if(data->postfieldsize > 0) { - Dump("[curl-debug] post", data->postfields, data->postfieldsize); - } else { - printf("[curl-debug] post : %s\n", data->postfields); - } - } - - if(data->url && !strcmp(data->url + strlen(data->url) - strlen(AlarmPath), AlarmPath)) { - static time_t lastAccess = 0; - struct timeval now; - gettimeofday(&now, NULL); - if(now.tv_sec - lastAccess < 300) { - printf("[curl-debug] Dismiss short cycle alarms.\n"); - memcpy(data->out, DummyRes, strlen(DummyRes)); - data->httpcode = 200; - return CURL_OK; - } - CURLcode res = original_curl_easy_perform(data); - printf("[curl-debug] res=%d\n", res); - if(!res) lastAccess = now.tv_sec; - return res; - } - - if(data->url && !strncmp(data->url, DummyHost, strlen(DummyHost))) { - printf("[curl-debug] skip http-post.\n"); - data->httpcode = 200; - return CURL_OK; - } - - CURLcode res = original_curl_easy_perform(data); - if(data->out) printf("[curl-debug] res : %s\n", data->out); - printf("[curl-debug] ret: %d\n", res); - return res; -} diff --git a/src/libcallback_wz_mod/freopen.c b/src/libcallback_wz_mod/freopen.c deleted file mode 100644 index f5c106c..0000000 --- a/src/libcallback_wz_mod/freopen.c +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include -#include - -static FILE * (*original_freopen)(const char *pathname, const char *mode, FILE *stream); - -static void __attribute ((constructor)) freopen_hook_init(void) { - - original_freopen = dlsym(dlopen ("/lib/libc.so.0", RTLD_LAZY), "freopen"); -} - -FILE *freopen(const char *pathname, const char *mode, FILE *stream) { - - if(stream == stdout) return stdout; - return original_freopen(pathname, mode, stream); -} - - diff --git a/src/libcallback_wz_mod/gmtime_r.c b/src/libcallback_wz_mod/gmtime_r.c deleted file mode 100644 index bca5547..0000000 --- a/src/libcallback_wz_mod/gmtime_r.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include -#include -#include - -extern int MotorFd; -extern struct timeval MotorLastMovedTime; - -static struct tm *(*original_gmtime_r)(const time_t *timep, struct tm *result); - -static void __attribute ((constructor)) gmtime_r_hook_init(void) { - - original_gmtime_r = dlsym(dlopen ("/lib/libc.so.0", RTLD_LAZY), "gmtime_r"); -} - -struct tm *gmtime_r(const time_t *timep, struct tm *result) { - - original_gmtime_r(timep, result); - // While the camera is moving, the AI process is disabled by returning a day of the week that does not exist when motion is detected. - struct timeval tv; - gettimeofday(&tv, NULL); - timersub(&tv, &MotorLastMovedTime, &tv); - if(MotorFd || !tv.tv_sec) result->tm_wday = 8; - return result; -} diff --git a/src/libcallback_wz_mod/imp_control.c b/src/libcallback_wz_mod/imp_control.c deleted file mode 100644 index bf6a2cd..0000000 --- a/src/libcallback_wz_mod/imp_control.c +++ /dev/null @@ -1,294 +0,0 @@ -#include -#include -#include -#include - -extern int IMP_AI_DisableHpf(); -extern int IMP_AI_DisableAgc(); -extern int IMP_AI_DisableNs(); -extern int IMP_AI_DisableAec(); -extern int IMP_AI_EnableHpf(); -extern int IMP_AI_EnableAgc(); -extern int IMP_AI_EnableNs(); -extern int IMP_AI_EnableAec(); -extern int IMP_AI_SetVol(); -extern int IMP_AI_SetGain(); -extern int IMP_AI_SetAlcGain(); - -extern int IMP_AO_SetVol(); -extern int IMP_AO_SetGain(); - -extern void set_video_max_fps(); -extern void set_video_frame_rate(); -extern void paracfg_set_user_config_item(); -extern void set_fs_chn_config_fps(); - -extern void local_sdk_video_init(); -extern void local_sdk_video_set_fps(); -extern void local_sdk_video_set_gop(); - -extern void IMP_ISP_EnableTuning(); -extern void IMP_ISP_Tuning_SetSensorFPS(); - -extern int IMP_ISP_Tuning_SetHVFLIP(); -extern int IMP_ISP_Tuning_SetContrast(); -extern int IMP_ISP_Tuning_SetBrightness(); -extern int IMP_ISP_Tuning_SetSaturation(); -extern int IMP_ISP_Tuning_SetSharpness(); -extern int IMP_ISP_Tuning_SetAeComp(); -extern int IMP_ISP_Tuning_SetAe_IT_MAX(); -extern int IMP_ISP_Tuning_SetDPC_Strength(); -extern int IMP_ISP_Tuning_SetDRC_Strength(); -extern int IMP_ISP_Tuning_SetHiLightDepress(); -extern int IMP_ISP_Tuning_SetTemperStrength(); -extern int IMP_ISP_Tuning_SetSinterStrength(); -extern int IMP_ISP_Tuning_SetMaxAgain(); -extern int IMP_ISP_Tuning_SetMaxDgain(); -extern int IMP_ISP_Tuning_SetBacklightComp(); -extern int IMP_ISP_Tuning_SetDPStrength(); -extern int IMP_ISP_Tuning_SetISPHflip(); -extern int IMP_ISP_Tuning_SetISPVflip(); - -extern void CommandResponse(int fd, const char *res); - -const char *productv2="/driver/sensor_jxf23.ko"; - -char *imp_Control(int fd, char *tokenPtr) { - -//Audio -int devID = 1; -int chnID = 0; -int AO_devID = 0; -int AO_chnID = 0; -int ai_vol; -int ai_gain; -int alc_gain; -int ao_gain; -int ao_vol; - -//Video -int fps_val; -int con_val; -int bright_val; -int sharp_val; -int satur_val; -int aecomp_val; -int aeitmax_val; -int dpc_val; -int drc_val; -int depress_val; -int temper_val; -int sinter_val; -int bcomp_val; -int again_val; -int dgain_val; -int dps_val; - -//FPS -int encChn = 0; -int encChn1 = 1; -int fps_den = 1; - - char *p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(!p) return "Please refer to the documentation for valid imp_control commands."; - if(!strcmp(p, "agc_off")) { - IMP_AI_DisableAgc(); - } else if(!strcmp(p, "agc_on")) { - IMP_AI_EnableAgc(); - } else if(!strcmp(p, "hpf_off")) { - IMP_AI_DisableHpf(); - } else if(!strcmp(p, "hpf_on")) { - IMP_AI_EnableHpf(); - } else if(!strcmp(p, "ns_off")) { - IMP_AI_DisableNs(); - } else if(!strcmp(p, "ns_on")) { - IMP_AI_EnableNs(); - } else if(!strcmp(p, "aec_off")) { - IMP_AI_DisableAec(devID, chnID); - } else if(!strcmp(p, "aec_on")) { - IMP_AI_EnableAec(); - } else if(!strcmp(p, "ai_vol")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) ai_vol = atoi(p); - IMP_AI_SetVol(devID,chnID,ai_vol); - } else if(!strcmp(p, "ai_gain")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) ai_gain = atoi(p); - IMP_AI_SetGain(devID,chnID,ai_gain); - } else if(!strcmp(p, "alc_gain")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) alc_gain = atoi(p); - IMP_AI_SetAlcGain(devID,chnID,alc_gain); - } else if(!strcmp(p, "ao_gain")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) ao_gain = atoi(p); - IMP_AO_SetGain(AO_devID,AO_chnID,ao_gain); - } else if(!strcmp(p, "ao_vol")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) ao_vol = atoi(p); - IMP_AO_SetVol(AO_devID,AO_chnID,ao_vol); - } else if(!strcmp(p, "flip_mirror")) { - IMP_ISP_EnableTuning(); - if( access( productv2, F_OK ) != -1 ) { - IMP_ISP_Tuning_SetISPHflip(0); - IMP_ISP_Tuning_SetISPVflip(0); - } else { - IMP_ISP_Tuning_SetHVFLIP(0); - } - } else if(!strcmp(p, "flip_vertical")) { - IMP_ISP_EnableTuning(); - if( access( productv2, F_OK ) != -1 ) { - IMP_ISP_Tuning_SetISPVflip(0); - } else { - IMP_ISP_Tuning_SetHVFLIP(1); - } - } else if(!strcmp(p, "flip_horizontal")) { - IMP_ISP_EnableTuning(); - if( access( productv2, F_OK ) != -1 ) { - IMP_ISP_Tuning_SetISPHflip(0); - } else { - IMP_ISP_Tuning_SetHVFLIP(2); - } - } else if(!strcmp(p, "flip_normal")) { - IMP_ISP_EnableTuning(); - if( access( productv2, F_OK ) != -1 ) { - IMP_ISP_Tuning_SetISPHflip(1); - IMP_ISP_Tuning_SetISPVflip(1); - } else { - IMP_ISP_Tuning_SetHVFLIP(3); - } - } else if(!strcmp(p, "fps_set")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) fps_val = atoi(p); - - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetSensorFPS(fps_val, fps_den); - - //encoder framerate failed -// paracfg_set_user_config_item(5,fps_val); - -// set_fs_chn_config_fps(encChn, fps_val); -// set_fs_chn_config_fps(encChn1, fps_val); - -// set_video_max_fps(fps_val); -// local_sdk_video_set_fps(fps_val); - -// local_sdk_video_set_gop(encChn, fps_val); - -// local_sdk_video_init(fps_val); - - } else if(!strcmp(p, "tune_contrast")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) con_val = atoi(p); - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetContrast(con_val); - - } else if(!strcmp(p, "tune_brightness")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) bright_val = atoi(p); - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetBrightness(bright_val); - - } else if(!strcmp(p, "tune_sharpness")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) sharp_val = atoi(p); - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetSharpness(sharp_val); - - } else if(!strcmp(p, "tune_saturation")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) satur_val = atoi(p); - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetSaturation(satur_val); - - } else if(!strcmp(p, "tune_aecomp")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) aecomp_val = atoi(p); - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetAeComp(aecomp_val); - - } else if(!strcmp(p, "tune_aeitmax")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) aeitmax_val = atoi(p); - if( access( productv2, F_OK ) != -1 ) { - return "not supported on v2"; - } else { - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetAe_IT_MAX(aeitmax_val); - } - - } else if(!strcmp(p, "tune_dpc_strength")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) dpc_val = atoi(p); - if( access( productv2, F_OK ) != -1 ) { - return "not supported on v2"; - } else { - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetDPC_Strength(dpc_val); - } - - } else if(!strcmp(p, "tune_drc_strength")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) drc_val = atoi(p); - if( access( productv2, F_OK ) != -1 ) { - return "not supported on v2"; - } else { - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetDRC_Strength(drc_val); - } - - } else if(!strcmp(p, "tune_hilightdepress")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) depress_val = atoi(p); - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetHiLightDepress(depress_val); - - } else if(!strcmp(p, "tune_temper")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) temper_val = atoi(p); - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetTemperStrength(temper_val); - - } else if(!strcmp(p, "tune_sinter")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) sinter_val = atoi(p); - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetSinterStrength(sinter_val); - - } else if(!strcmp(p, "tune_dgain")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) dgain_val = atoi(p); - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetMaxDgain(dgain_val); - - } else if(!strcmp(p, "tune_again")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) again_val = atoi(p); - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetMaxAgain(again_val); - - } else if(!strcmp(p, "tune_backlightcomp")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) bcomp_val = atoi(p); - if( access( productv2, F_OK ) != -1 ) { - return "not supported on v2"; - } else { - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetBacklightComp(bcomp_val); - } - - } else if(!strcmp(p, "tune_dps")) { - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(p) dps_val = atoi(p); - if( access( productv2, F_OK ) != -1 ) { - IMP_ISP_EnableTuning(); - IMP_ISP_Tuning_SetDPStrength(dps_val); - } else { - return "not supported on v3"; - } -} else { - return "error"; - } - return "ok"; - -} diff --git a/src/libcallback_wz_mod/irled.c b/src/libcallback_wz_mod/irled.c deleted file mode 100644 index 8ec00d7..0000000 --- a/src/libcallback_wz_mod/irled.c +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include -#include - -extern int local_sdk_close_night_light(); -extern int local_sdk_open_night_light(); -extern int local_sdk_auto_night_light(); -extern void CommandResponse(int fd, const char *res); - -char *IrLed(int fd, char *tokenPtr) { - - char *p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(!p) return "error"; - if(!strcmp(p, "on")) { - local_sdk_open_night_light(); - } else if(!strcmp(p, "off")) { - local_sdk_close_night_light(); - } else if(!strcmp(p, "auto")) { - local_sdk_auto_night_light(); - } else { - return "error"; - } - return "ok"; -} diff --git a/src/libcallback_wz_mod/jpeg.c b/src/libcallback_wz_mod/jpeg.c deleted file mode 100644 index 81ae16e..0000000 --- a/src/libcallback_wz_mod/jpeg.c +++ /dev/null @@ -1,118 +0,0 @@ -#include -#include -#include -#include -#include - -struct channelConfigSt { - uint dummy[4]; - int state; - int encoder; -}; -extern struct channelConfigSt *get_enc_chn_config(int ch); -extern int get_video_run_state(int ch); -extern void video_param_set_mutex_lock(); -extern int IMP_Encoder_StartRecvPic(int ch); -extern int IMP_Encoder_PollingStream(int ch, int timeoutMSec); -extern int IMP_Encoder_GetStream(int ch, uint *stream, int); -extern int IMP_Encoder_ReleaseStream(int ch, int *stream); -extern int IMP_Encoder_StopRecvPic(int ch); -extern int save_jpeg(int fd, int *stream); -extern void video_param_set_mutex_unlock(); -extern void CommandResponse(int fd, const char *res); - -static const char *HttpResHeader = "Cache-Control: no-cache\nContent-Type: image/jpeg\n\n"; -static const char *HttpErrorHeader = "Cache-Control: no-cache\nStatus: 503\n\n"; -static pthread_mutex_t JpegDataMutex = PTHREAD_MUTEX_INITIALIZER; -static int JpegCaptureFd = -1; - -char *JpegCapture(int fd, char *tokenPtr) { - - if(JpegCaptureFd >= 0) { - fprintf(stderr, "[command] jpeg capture error %d %d\n", JpegCaptureFd, fd); - write(fd, HttpErrorHeader, strlen(HttpErrorHeader)); - CommandResponse(fd, "error : jpeg capture error"); - return NULL; - } - JpegCaptureFd = fd; - pthread_mutex_unlock(&JpegDataMutex); - return NULL; -} - -static int GetJpegData(int fd) { - - struct channelConfigSt *chConfig = get_enc_chn_config(0); - if (!chConfig->state) { - fprintf(stderr, "[command] jpeg err: ch0 is not enable jpeg!\n"); - return -1; - } - int state = get_video_run_state(0); - if (state < 5) { - fprintf(stderr, "[command] jpeg err: U should call 'video_run' before this func\n"); - return -1; - } - - video_param_set_mutex_lock(1); - int encoder = chConfig->encoder; - int ret = 0; - - if(IMP_Encoder_StartRecvPic(encoder) < 0) { - fprintf(stderr, "[command] jpeg err: IMP_Encoder_StartRecvPic(%d) failed\n", encoder); - ret = -1; - goto error1; - } - - if(IMP_Encoder_PollingStream(encoder, 2000) < 0) { - fprintf(stderr, "[command] jpeg err: Polling stream(chn%d) timeout\n", encoder); - ret = -1; - goto error2; - } - - uint stream[17]; - memset(stream, 0, 60); - if(IMP_Encoder_GetStream(encoder, stream, 1) < 0) { - fprintf(stderr, "[command] jpeg err: IMP_Encoder_GetStream(chn%d) failed\n", encoder); - ret = -1; - goto error2; - } - - write(JpegCaptureFd, HttpResHeader, strlen(HttpResHeader)); - if(save_jpeg(fd, stream) < 0) { - fprintf(stderr, "[command] jpeg err: save_jpeg(%d) failed\n", fd); - ret = -2; - } - IMP_Encoder_ReleaseStream(encoder, stream); - -error2: - if(IMP_Encoder_StopRecvPic(encoder) < 0) { - fprintf(stderr, "[command] jpeg err: IMP_Encoder_StopRecvPic(chn%d) failed\n", encoder); - } - -error1: - video_param_set_mutex_unlock(1); - if(ret == -1) write(JpegCaptureFd, HttpErrorHeader, strlen(HttpErrorHeader)); - return ret; -} - -static void *JpegCaptureThread() { - - while(1) { - pthread_mutex_lock(&JpegDataMutex); - if(JpegCaptureFd >= 0) { - int res = GetJpegData(JpegCaptureFd); - CommandResponse(JpegCaptureFd, res >= 0 ? "" : "error : buffer size error"); - } - JpegCaptureFd = -1; - } -} - -static void __attribute ((constructor)) JpegInit(void) { - - pthread_mutex_lock(&JpegDataMutex); - pthread_t thread; - if(pthread_create(&thread, NULL, JpegCaptureThread, NULL)) { - fprintf(stderr, "pthread_create error\n"); - pthread_mutex_unlock(&JpegDataMutex); - return; - } -} diff --git a/src/libcallback_wz_mod/libcallback.so b/src/libcallback_wz_mod/libcallback.so deleted file mode 100644 index 9e82853..0000000 Binary files a/src/libcallback_wz_mod/libcallback.so and /dev/null differ diff --git a/src/libcallback_wz_mod/mmc_format.c b/src/libcallback_wz_mod/mmc_format.c deleted file mode 100644 index 552a500..0000000 --- a/src/libcallback_wz_mod/mmc_format.c +++ /dev/null @@ -1,7 +0,0 @@ -#include - -// disable mmc format -int local_sdk_device_mmc_format() { - printf("skip local_sdk_device_mmc_format\n"); - return 0; -} diff --git a/src/libcallback_wz_mod/motor.c b/src/libcallback_wz_mod/motor.c deleted file mode 100644 index 66f16e4..0000000 --- a/src/libcallback_wz_mod/motor.c +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include -#include -#include -#include - -extern int local_sdk_motor_get_position(float *step,float *angle); -extern int local_sdk_motor_move_abs_angle(float pan, float tilt, int speed, void (*done)(float a, float b), void (*canceled)(void), int mode); -extern void CommandResponse(int fd, const char *res); - -int MotorFd = 0; -struct timeval MotorLastMovedTime = { 0, 0 }; - -static void motor_move_done(float pan, float tilt) { - - if(MotorFd) { - static char motorResBuf[256]; - sprintf(motorResBuf, "%f %f\n", pan, tilt); - CommandResponse(MotorFd, motorResBuf); - } - MotorFd = 0; - struct timeval tv; - gettimeofday(&MotorLastMovedTime, NULL); -} - -static void motor_move_canceled() { - - if(MotorFd) CommandResponse(MotorFd, "error"); - MotorFd = 0; - gettimeofday(&MotorLastMovedTime, NULL); -} - -char *MotorMove(int fd, char *tokenPtr) { - - char *p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(!p) { - float pan; // 0-355 - float tilt; // 0-180 - int ret = local_sdk_motor_get_position(&pan, &tilt); - static char motorResBuf[256]; - if(!ret) { - sprintf(motorResBuf, "%f %f\n", pan, tilt); - } else { - sprintf(motorResBuf, "- -\n"); - } - return motorResBuf; - } - float pan = atof(p); // 0-355 - if((pan < 0.0) || (pan > 355.0)) return "error"; - - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(!p) return "error"; - float tilt = atof(p); // 0-180 - if((tilt < 0.0) || (tilt > 180.0)) return "error"; - - p = strtok_r(NULL, " \t\r\n", &tokenPtr); - int pri = 2; // 0: high - 3: low - if(p) pri = atoi(p); - if(pri < 0) pri = 0; - if(pri > 3) pri = 3; - - if(MotorFd) return "error"; - MotorFd = fd; - - int speed = 9; - int res = local_sdk_motor_move_abs_angle(pan, tilt, speed, &motor_move_done, &motor_move_canceled, pri); - return NULL; -} diff --git a/src/libcallback_wz_mod/mp4write.c b/src/libcallback_wz_mod/mp4write.c deleted file mode 100644 index 6d307d2..0000000 --- a/src/libcallback_wz_mod/mp4write.c +++ /dev/null @@ -1,70 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static int (*original_mp4write_start_handler)(void *handler, char *file, void *config); - -static int mp4WriteEnable = 0; - -char *mp4Write(int fd, char *tokenPtr) { - - char *p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(!p) return mp4WriteEnable ? "on" : "off"; - if(!strcmp(p, "on")) { - mp4WriteEnable = 1; - fprintf(stderr, "[command] mp4write on\n", p); - return "ok"; - } - if(!strcmp(p, "off")) { - mp4WriteEnable = 0; - fprintf(stderr, "[command] mp4write off\n", p); - return "ok"; - } - return "error in mp4write.c"; -} - - -int mp4write_start_handler(void *handler, char *file, void *config, char *tokenPtr) { - -if(mp4WriteEnable) { - - const char* folder; - folder = "/media/mmc/record/tmp"; - struct stat sb; - - printf("[command] mp4write.c: checking for temporary record directory\n"); - - if (stat(folder, &sb) == 0 && S_ISDIR(sb.st_mode)) { - printf("[command] mp4write.c: temporary directory exists.\n"); - } else { - printf("[command] mp4write.c: directory missing, creating directory\n"); - mkdir("/media/mmc/record/tmp", 0700); - } - - printf("mp4write.c: filename: %s\n", file); - - if(!strncmp(file, "/tmp/alarm_", 11)) { - printf("mp4write.c: alarm, skipping\n", file); - return (original_mp4write_start_handler)(handler, file, config); - } else if(!strncmp(file, "/tmp/", 5)) { - char buf[64]; - strncpy(buf, file + 5, 30); - strcpy(file, "/media/mmc/record/tmp/"); - strcat(file, buf); - } - } - - return (original_mp4write_start_handler)(handler, file, config); -} - - -static void __attribute ((constructor)) mp4write_init(void) { - - original_mp4write_start_handler = dlsym(dlopen("/system/lib/libmp4rw.so", RTLD_LAZY), "mp4write_start_handler"); -} diff --git a/src/libcallback_wz_mod/night_drop.c b/src/libcallback_wz_mod/night_drop.c deleted file mode 100644 index ac79ff9..0000000 --- a/src/libcallback_wz_mod/night_drop.c +++ /dev/null @@ -1,45 +0,0 @@ -#define _GNU_SOURCE -#include -#include -#include -#include -#include - -static uint32_t (*real_local_sdk_video_set_fps)(int encChn); - -int local_sdk_video_set_fps(int encChn) { - - fprintf(stderr, "[command] [night_drop.c] local_sdk_video_set_fps called with fps value: %d\n", encChn); - - const char *nd_enable="/opt/wz_mini/tmp/.nd"; - const char *product_T31="/opt/wz_mini/tmp/.T31"; - const char *product_T20="/opt/wz_mini/tmp/.T20"; - - if( access( nd_enable, F_OK ) != -1 ) { - printf("[command] [night_drop.c] Night Drop Enabled\n"); - if( encChn == 15 && access( product_T31, F_OK ) != -1 ) { - printf("[command] [night_drop.c] T31 detected\n"); - fprintf(stderr, "[command] [night_drop.c] Night Time Requested FPS Drop Value: %d\n", encChn); - printf("[command] [night_drop.c] Night FPS Drop Stopped\n"); - } else if ( encChn >= 15 && access( product_T20, F_OK ) != -1 ) { - printf("[command] [night_drop.c] T20 detected\n"); - fprintf(stderr, "[command] [night_drop.c] Night Time Requested FPS Drop Value: %d\n", encChn); - printf("[command] [night_drop.c] Night FPS Drop Stopped\n"); - } else { - fprintf(stderr, "[command] [night_drop.c] Requested FPS Value: %d\n", encChn); - fprintf(stderr, "[command] [night_drop.c] Calling local_sdk_video_set_fps to: %d\n", encChn); - real_local_sdk_video_set_fps(encChn); - } - //If nd is disabled, pass all requests along - } else { - printf("[command] [night_drop.c] Night Drop not enabled\n"); - fprintf(stderr, "[command] [night_drop.c] Requested FPS Value: %d\n", encChn); - fprintf(stderr, "[command] [night_drop.c] Calling local_sdk_video_set_fps to: %d\n", encChn); - real_local_sdk_video_set_fps(encChn); - } -} - - -static void __attribute ((constructor)) night_drop_init(void) { - real_local_sdk_video_set_fps = dlsym(dlopen("/system/lib/liblocalsdk.so", RTLD_LAZY), "local_sdk_video_set_fps"); -} diff --git a/src/libcallback_wz_mod/opendir.c b/src/libcallback_wz_mod/opendir.c deleted file mode 100644 index f942e76..0000000 --- a/src/libcallback_wz_mod/opendir.c +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include -#include -#include -#include - -static DIR * (*original_opendir)(const char *pathname); -static const char *HookPath = "/media/mmc/time_lapse/time_Task_"; -static const char *MediaPath = "/media/mmc/"; -char TimeLapsePath[256]; - -static void __attribute ((constructor)) opendir_hook_init(void) { - - original_opendir = dlsym(dlopen ("/lib/libc.so.0", RTLD_LAZY), "opendir"); -} - -DIR *opendir(const char *pathname) { - - if(!strncmp(pathname, HookPath, strlen(HookPath))) { - strncpy(TimeLapsePath, pathname + strlen(MediaPath), 255); - printf("[webhook] time_lapse_event %s\n", TimeLapsePath); - } - return original_opendir(pathname); -} diff --git a/src/libcallback_wz_mod/remove.c b/src/libcallback_wz_mod/remove.c deleted file mode 100644 index 43fab86..0000000 --- a/src/libcallback_wz_mod/remove.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -static int (*original_remove)(const char *pathname); -static const char *HookPath = "/media/mmc/time_lapse/.setup"; -extern char TimeLapsePath[256]; - -static void __attribute ((constructor)) remove_hook_init(void) { - - original_remove = dlsym(dlopen ("/lib/libc.so.0", RTLD_LAZY), "remove"); -} - -int remove(const char *pathname) { - - if(!strncmp(pathname, HookPath, strlen(HookPath))) printf("[webhook] time_lapse_finish %s\n", TimeLapsePath); - return original_remove(pathname); -} - - diff --git a/src/libcallback_wz_mod/setlinebuf.c b/src/libcallback_wz_mod/setlinebuf.c deleted file mode 100644 index f99d4e6..0000000 --- a/src/libcallback_wz_mod/setlinebuf.c +++ /dev/null @@ -1,5 +0,0 @@ -#include - -static void __attribute ((constructor)) setStdoutLineBuffer(void) { - setvbuf(stdout, NULL, _IOLBF, 0); -} diff --git a/src/libcallback_wz_mod/video_callback.c b/src/libcallback_wz_mod/video_callback.c deleted file mode 100644 index a7da6f9..0000000 --- a/src/libcallback_wz_mod/video_callback.c +++ /dev/null @@ -1,211 +0,0 @@ -#define _GNU_SOURCE -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -struct frames_st { - void *buf; - size_t length; -}; -typedef int (* framecb)(struct frames_st *); - -static int (*real_local_sdk_video_set_encode_frame_callback)(int ch, void *callback); -static void *video_encode_cb = NULL; -static void *video_encode_cb1 = NULL; -static int VideoCaptureEnable = 0; -static int VideoCaptureEnable1 = 0; - -char *VideoCapture(int fd, char *tokenPtr) { - - char *p = strtok_r(NULL, " \t\r\n", &tokenPtr); - if(!p) return VideoCaptureEnable ? "on" : "off"; - if(!strcmp(p, "on")) { - VideoCaptureEnable = 1; - fprintf(stderr, "[command] video capture ch0 on\n", p); - return "ok"; - } - if(!strcmp(p, "on1")) { - VideoCaptureEnable1 = 1; - fprintf(stderr, "[command] video capture ch1 on\n", p); - return "ok"; - } - if(!strcmp(p, "off")) { - VideoCaptureEnable = 0; - fprintf(stderr, "[command] video capture ch0 off\n", p); - return "ok"; - } - if(!strcmp(p, "off1")) { - VideoCaptureEnable1 = 0; - fprintf(stderr, "[command] video capture ch1 off\n", p); - return "ok"; - } - return "error"; -} - -static uint32_t video_encode_capture(struct frames_st *frames) { - - static int firstEntry = 0; - static int v4l2Fd = -1; - -//primary stream 0 - if(!firstEntry) { - firstEntry++; - int err; - - - char *v4l2_device_path = "/dev/video0"; - //Check for this file, which should only exist on the V2 cameras - const char *productv2="/driver/sensor_jxf23.ko"; - - if( access( productv2, F_OK ) != -1 ) { - v4l2_device_path = "/dev/video6"; - fprintf(stderr, "[command] v4l2_device_path = %s\n", v4l2_device_path); - } else { - v4l2_device_path = "/dev/video1"; - fprintf(stderr, "[command] v4l2_device_path = %s\n", v4l2_device_path); - } - - - const char *productf="/configs/.product_db3"; - fprintf(stderr,"Opening V4L2 device: %s \n", v4l2_device_path); - v4l2Fd = open(v4l2_device_path, O_WRONLY, 0777); - if(v4l2Fd < 0) fprintf(stderr,"Failed to open V4L2 device: %s\n", v4l2_device_path); - struct v4l2_format vid_format; - memset(&vid_format, 0, sizeof(vid_format)); - vid_format.type = V4L2_BUF_TYPE_VIDEO_OUTPUT; - - if( access( productf, F_OK ) == 0 ) { - /* doorbell resolution */ - printf("[command] video product 1728x1296"); - vid_format.fmt.pix.width = 1728; - vid_format.fmt.pix.height = 1296; - } else { - /* v3 and panv2 res */ - printf("[command] video product 1920x1080"); - vid_format.fmt.pix.width = 1920; - vid_format.fmt.pix.height = 1080; - } - - vid_format.fmt.pix.pixelformat = V4L2_PIX_FMT_H264; - vid_format.fmt.pix.sizeimage = 0; - vid_format.fmt.pix.field = V4L2_FIELD_NONE; - vid_format.fmt.pix.bytesperline = 0; - vid_format.fmt.pix.colorspace = V4L2_PIX_FMT_YUV420; - err = ioctl(v4l2Fd, VIDIOC_S_FMT, &vid_format); - if(err < 0) fprintf(stderr,"Unable to set V4L2 device video format: %d\n", err); - err = ioctl(v4l2Fd, VIDIOC_STREAMON, &vid_format); - if(err < 0) fprintf(stderr,"Unable to perform VIDIOC_STREAMON: %d\n", err); - } - - if( (v4l2Fd >= 0) && VideoCaptureEnable) { - uint32_t *buf = frames->buf; - int size = write(v4l2Fd, frames->buf, frames->length); - if(size != frames->length) fprintf(stderr,"Stream write error: %s\n", size); - } - return ((framecb)video_encode_cb)(frames); -} - -//secondary stream 1 -static uint32_t video_encode_capture1(struct frames_st *frames) { - - static int firstEntry = 0; - static int v4l2Fd = -1; - - if(!firstEntry) { - firstEntry++; - int err; - - char *v4l2_device_path = "/dev/video0"; - //Check for this file, which should only exist on the V2 cameras - const char *productv2="/driver/sensor_jxf23.ko"; - - if( access( productv2, F_OK ) != -1 ) { - v4l2_device_path = "/dev/video7"; - fprintf(stderr, "[command] v4l2_device_path = %s\n", v4l2_device_path); - } else { - v4l2_device_path = "/dev/video2"; - fprintf(stderr, "[command] v4l2_device_path = %s\n", v4l2_device_path); - } - - const char *productf="/configs/.product_db3"; - fprintf(stderr,"Opening V4L2 device: %s \n", v4l2_device_path); - v4l2Fd = open(v4l2_device_path, O_WRONLY, 0777); - if(v4l2Fd < 0) fprintf(stderr,"Failed to open V4L2 device: %s\n", v4l2_device_path); - struct v4l2_format vid_format; - memset(&vid_format, 0, sizeof(vid_format)); - vid_format.type = V4L2_BUF_TYPE_VIDEO_OUTPUT; - - if( access( productf, F_OK ) == 0 ) { - /* doorbell resolution */ - printf("[command] video product 640x480"); - vid_format.fmt.pix.width = 640; - vid_format.fmt.pix.height = 480; - } else { - /* v3 and panv2 res */ - printf("[command] video product 640x320"); - vid_format.fmt.pix.width = 640; - vid_format.fmt.pix.height = 320; - } - - vid_format.fmt.pix.pixelformat = V4L2_PIX_FMT_H264; - vid_format.fmt.pix.sizeimage = 0; - vid_format.fmt.pix.field = V4L2_FIELD_NONE; - vid_format.fmt.pix.bytesperline = 0; - vid_format.fmt.pix.colorspace = V4L2_PIX_FMT_YUV420; - err = ioctl(v4l2Fd, VIDIOC_S_FMT, &vid_format); - if(err < 0) fprintf(stderr,"Unable to set V4L2 device video format: %d\n", err); - err = ioctl(v4l2Fd, VIDIOC_STREAMON, &vid_format); - if(err < 0) fprintf(stderr,"Unable to perform VIDIOC_STREAMON: %d\n", err); - } - - if( (v4l2Fd >= 0) && VideoCaptureEnable) { - uint32_t *buf = frames->buf; - int size = write(v4l2Fd, frames->buf, frames->length); - if(size != frames->length) fprintf(stderr,"Stream write error: %s\n", size); - } - return ((framecb)video_encode_cb1)(frames); -} - - -int local_sdk_video_set_encode_frame_callback(int ch, void *callback) { - - fprintf(stderr, "local_sdk_video_set_encode_frame_callback streamChId=%d, callback=0x%x\n", ch, callback); - static int ch_count = 0; - -/* two callbacks for video stream 0 are typically detected, unknown what the difference is between them, but if they are both hooked, the app breaks. grab just one of them. */ - //stream 0 - if( (ch == 0) && ch_count == 2) { - video_encode_cb = callback; - fprintf(stderr,"enc func injection save video_encode_cb=0x%x\n", video_encode_cb); - callback = video_encode_capture; - } else if( (ch == 0) && ch_count == 3) { - video_encode_cb = callback; - fprintf(stderr,"RTSP FIRMWARE enc func injection save video_encode_cb=0x%x\n", video_encode_cb); - callback = video_encode_capture; - } - fprintf(stderr,"ch count is %x\n", ch_count); - - //stream 1 - if( (ch == 1) && ch_count == 1) { - video_encode_cb1 = callback; - fprintf(stderr,"enc func injection save video_encode_cb=0x%x\n", video_encode_cb1); - callback = video_encode_capture1; - } - - ch_count=ch_count+1; - - return real_local_sdk_video_set_encode_frame_callback(ch, callback); -} - -static void __attribute ((constructor)) video_callback_init(void) { - - real_local_sdk_video_set_encode_frame_callback = dlsym(dlopen("/system/lib/liblocalsdk.so", RTLD_LAZY), "local_sdk_video_set_encode_frame_callback"); -} diff --git a/src/libcallback_wz_mod/wait_motion.c b/src/libcallback_wz_mod/wait_motion.c deleted file mode 100644 index 50b5264..0000000 --- a/src/libcallback_wz_mod/wait_motion.c +++ /dev/null @@ -1,111 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include - -extern void CommandResponse(int fd, const char *res); -extern int local_sdk_motor_get_position(float *step,float *angle); -extern int MotorFd; -extern struct timeval MotorLastMovedTime; - -struct RectInfoSt { - int left; - int right; - int top; - int bottom; - int dummy1; - int dummt2; -}; - -static int (*original_local_sdk_video_osd_update_rect)(int ch, int display, struct RectInfoSt *rectInfo); -static int WaitMotionFd = -1; -static int Timeout = -1; -static pthread_mutex_t WaitMotionMutex = PTHREAD_MUTEX_INITIALIZER; -static pthread_cond_t WaitMotionCond = PTHREAD_COND_INITIALIZER; - -char *WaitMotion(int fd, char *tokenPtr) { - - if(WaitMotionFd >= 0) { - fprintf(stderr, "[command] wait motion error %d %d\n", WaitMotionFd, fd); - return "error : wait motion error"; - } - char *p = strtok_r(NULL, " \t\r\n", &tokenPtr); - Timeout = p ? atoi(p) : 0; - if(Timeout < 10) { - fprintf(stderr, "[command] wait motion timeout error timeout = %d\n", Timeout); - return "error : wait motion timeout value error"; - } - - WaitMotionFd = fd; - pthread_mutex_unlock(&WaitMotionMutex); - return NULL; -} - -int local_sdk_video_osd_update_rect(int ch, int display, struct RectInfoSt *rectInfo) { - - if((WaitMotionFd >= 0) && (MotorFd <= 0) && !ch) { - struct timeval tv; - gettimeofday(&tv, NULL); - timersub(&tv, &MotorLastMovedTime, &tv); - if(tv.tv_sec || (tv.tv_usec >= 500000)) { - if(display) { - float pan; // 0-355 - float tilt; // 0-180 - int ret = local_sdk_motor_get_position(&pan, &tilt); - static char waitMotionResBuf[256]; - if(!ret) { - pan += (rectInfo->left + rectInfo->right - 320 * 2) * 85 / (2 * 640); - if(pan < 0.0) pan = 0.0; - if(pan > 355.0) pan = 355; - tilt -= (rectInfo->top + rectInfo->bottom - 180 * 2) * 55 / (2 * 360); - if(tilt < 45.0) tilt = 45.0; - if(tilt > 180.0) tilt = 180.0; - sprintf(waitMotionResBuf, "detect %d %d %d %d %d %d\n", - rectInfo->left, rectInfo->right, rectInfo->top, rectInfo->bottom, lroundf(pan), lroundf(tilt)); - } else { - sprintf(waitMotionResBuf, "detect %d %d %d %d - -\n", - rectInfo->left, rectInfo->right, rectInfo->top, rectInfo->bottom); - } - CommandResponse(WaitMotionFd, waitMotionResBuf); - } else { - CommandResponse(WaitMotionFd, "clear\n"); - } - pthread_cond_signal(&WaitMotionCond); - } - } - return original_local_sdk_video_osd_update_rect(ch, display, rectInfo); -} - -static void *WaitMotionThread() { - - while(1) { - pthread_mutex_lock(&WaitMotionMutex); - if(WaitMotionFd >= 0) { - struct timeval now; - struct timespec timeout; - gettimeofday(&now, NULL); - timeout.tv_sec = now.tv_sec + Timeout; - timeout.tv_nsec = now.tv_usec * 1000; - int ret = pthread_cond_timedwait(&WaitMotionCond, &WaitMotionMutex, &timeout); - if(ret == ETIMEDOUT) CommandResponse(WaitMotionFd, "timeout\n"); - } - WaitMotionFd = -1; - } -} - -static void __attribute ((constructor)) osd_rect_hook_init(void) { - - original_local_sdk_video_osd_update_rect = dlsym(dlopen ("/system/lib/liblocalsdk.so", RTLD_LAZY), "local_sdk_video_osd_update_rect"); - - pthread_mutex_lock(&WaitMotionMutex); - pthread_t thread; - if(pthread_create(&thread, NULL, WaitMotionThread, NULL)) { - fprintf(stderr, "pthread_create error\n"); - pthread_mutex_unlock(&WaitMotionMutex); - return; - } -} diff --git a/v2_install/fw_tool.sh b/v2_install/fw_tool.sh index e6ead5c..9eac562 100755 --- a/v2_install/fw_tool.sh +++ b/v2_install/fw_tool.sh @@ -2,6 +2,8 @@ #custom for V2 +set -x + ACTION=$1 KERNEL_OFFSET=$((64)) @@ -22,7 +24,12 @@ if [ "$ACTION" = "unpack" ]; then dd if=${DEMO_IN} of=$OUT_DIR/driver.bin skip=$DRIVER_OFFSET count=$(($APPFS_OFFSET-$DRIVER_OFFSET)) bs=1 md5sum $OUT_DIR/driver.bin + if [ "$(uname -s)" = "Darwin" ]; then + IMAGE_END=$(($(stat -f %z ${DEMO_IN}))) + else IMAGE_END=$(($(stat -c %s ${DEMO_IN}))) + fi + dd if=${DEMO_IN} of=$OUT_DIR/appfs.bin skip=$APPFS_OFFSET count=$(($IMAGE_END-$APPFS_OFFSET)) bs=1 md5sum $OUT_DIR/appfs.bin