/
cloud_control
122 lines (111 loc) · 3.93 KB
/
cloud_control
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/bin/sh
## purpose: controll cloud services
## license: GPLv3+, http://www.gnu.org/licenses/gpl-3.0.html
## author: Jan Sperling , 2017
sd_mountdir="/tmp/sd"
if [ -f "${sd_mountdir}/mijia-720p-hack.cfg" ]; then
. "${sd_mountdir}/mijia-720p-hack.cfg"
fi
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
cat << EOF
Usage of ${0}
adisable/enable all cloud services like it is configured in ${sd_mountdir}/mijia-720p-hack.cfg
EOF
exit
fi
disable_binary() {
binary="$1"
restart="$2"
echo "Disabling ${1##*/}"
if [ ! -f /tmp/disable-binary ]; then
cat > /tmp/disable-binary << EOF
#!/bin/sh
echo "\$0 disabled with mijia-720p-hack"
EOF
chmod +x /tmp/disable-binary
fi
if ! mount | grep -q "${binary}"; then
mount --bind /tmp/disable-binary "${binary}"
fi
}
enable_binary() {
binary="$1"
restart="$2"
if mount|grep -q "${binary}"; then
umount "${binary}"
fi
# update restartd.conf
if [ -n "${restart}" ] &&
[ -f /tmp/etc/restartd.conf ] &&
! grep -q ^"${restart}" /tmp/etc/restartd.conf; then
grep ^"${restart}" /tmp/etc/restartd.conf.org >> /tmp/etc/restartd.conf
fi
}
## Prepare restartd
if ! [ -f /tmp/etc/restartd.conf.org ] &&
mountpoint -q /etc; then
cp /mnt/data/restartd/restartd.conf /tmp/etc/restartd.conf.org
fi
if ! mount | grep -q /mnt/data/restartd/restartd.conf; then
touch /tmp/etc/restartd.conf
mount --bind /tmp/etc/restartd.conf /mnt/data/restartd/restartd.conf
fi
/mnt/data/imi/imi_init/S99restartd stop
> /tmp/etc/restartd.conf
if [ "${DISABLE_CLOUD}" -eq 1 ]; then
echo "Disabling Cloud"
#/mnt/data/imi/imi_init/S93miio_client
disable_binary "/mnt/data/ot_wifi_tool/miio_client" "miio_client"
disable_binary "/mnt/data/ot_wifi_tool/miio_client_helper_nomqtt.sh" "miio_client_helper"
#/mnt/data/imi/imi_init/S93miot_devicekit
disable_binary "/mnt/data/miot/miot_devicekit" "miot_devicekit"
#/mnt/data/imi/imi_init/S93miot_qrcode
disable_binary "/mnt/data/miot/miot_qrcode.sh"
#/mnt/data/imi/imi_init/S95miio_smb
disable_binary "/mnt/data/miio_smb/miio_smb" "miio_smb"
# cron
disable_binary "/mnt/data/miot/logmi.sh"
else
echo "Enabling Cloud"
#/mnt/data/imi/imi_init/S95miio_smb
enable_binary "/mnt/data/miio_smb/miio_smb" "miio_smb"
#/mnt/data/imi/imi_init/S93miot_qrcode
enable_binary "/mnt/data/miot/miot_qrcode.sh"
#/mnt/data/imi/imi_init/S93miot_devicekit
enable_binary "/mnt/data/miot/miot_devicekit" "miot_devicekit"
#/mnt/data/imi/imi_init/S93miio_client
enable_binary "/mnt/data/ot_wifi_tool/miio_client" "miio_client"
enable_binary "/mnt/data/ot_wifi_tool/miio_client_helper_nomqtt.sh" "miio_client_helper"
# cron
enable_binary "/mnt/data/miot/logmi.sh"
fi
if [ "${DISABLE_CLOUD}" -eq 1 ] || [ "${DISABLE_CLOUD_STREAMING}" -eq 1 ]; then
echo "Disabling Cloud Streaming"
#/mnt/data/imi/imi_init/S60miio_avstreamer
disable_binary "/mnt/data/miio_av/miio_avstreamer" "miio_avstreamer"
else
#/mnt/data/imi/imi_init/S60miio_avstreamer
echo "Enabling Cloud Streaming"
enable_binary "/mnt/data/miio_av/miio_avstreamer" "miio_avstreamer"
fi
if [ "${DISABLE_CLOUD}" -eq 1 ] || [ "${DISABLE_OTA}" -eq 1 ]; then
echo "Disabling OTA"
#/mnt/data/imi/imi_init/S95miio_ota
disable_binary "/mnt/data/miio_ota/miio_ota" "miio_ota"
else
if [ -f "${sd_mountdir}/mijia-720p-hack/scripts/pre-ota.sh" ] &&
! mount | grep -q /mnt/data/miio_ota/pre-ota.sh; then
echo "Imporve OTA script"
mount --bind "${sd_mountdir}/mijia-720p-hack/scripts/.pre-ota.sh" /mnt/data/miio_ota/pre-ota.sh
fi
#/mnt/data/imi/imi_init/S95miio_ota
enable_binary "/mnt/data/miio_ota/miio_ota" "miio_ota"
fi
#readd telnet to to restard.conf
if [ "${ENABLE_TELNETD}" -eq 1 ] &&
! grep -q telnetd /tmp/etc/restartd.conf; then
echo "telnetd \"/usr/sbin/telnetd\" \"/mnt/data/imi/imi_init/_S50telnet restart\" \"/bin/echo 'telnetd is running'\"" >> /tmp/etc/restartd.conf
fi
if pgrep /mnt/data/restartd/restartd > /dev/null; then
/mnt/data/imi/imi_init/S99restartd restart
fi