mirror of
https://github.com/srlabs/blue-merle.git
synced 2025-09-29 15:18:25 -04:00
Initial commit
This commit is contained in:
commit
cb4d73731f
17 changed files with 1050 additions and 0 deletions
134
files/usr/bin/blue-merle
Normal file
134
files/usr/bin/blue-merle
Normal file
|
@ -0,0 +1,134 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /lib/blue-merle/functions.sh
|
||||
|
||||
if [ ! -c "/dev/ttyUSB3" ]; then
|
||||
echo "Error: /dev/ttyUSB3 does not exist."
|
||||
echo "Please reboot and contact the maintainer if the problem persists."
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
echo -n "Swap SIM card and update IMEI? (Y/n): "
|
||||
read answer
|
||||
case $answer in
|
||||
n*) answer=0;;
|
||||
N*) answer=0;;
|
||||
*) answer=1;;
|
||||
esac
|
||||
if [[ "$answer" -eq 0 ]]; then
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
|
||||
echo "Disabling the ME from both transmitting and receiving RF signals..."
|
||||
|
||||
old_imei=$(READ_IMEI)
|
||||
old_imsi=$(READ_IMSI)
|
||||
|
||||
answer=1
|
||||
while [[ "$answer" -eq 1 ]]; do
|
||||
gl_modem AT AT+CFUN=4 | grep -q OK
|
||||
if [[ $? -eq 1 ]]; then
|
||||
echo -n "...failed. Try again? (Y/n): "
|
||||
read answer
|
||||
case $answer in
|
||||
n*) answer=0;;
|
||||
N*) answer=0;;
|
||||
*) answer=1;;
|
||||
esac
|
||||
if [[ $answer -eq 0 ]]; then
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
answer=0
|
||||
fi
|
||||
done
|
||||
|
||||
echo -n "Please now replace the SIM card and press any key to continue. "
|
||||
read answer
|
||||
|
||||
leak=0
|
||||
|
||||
until gl_modem AT AT+CFUN=0 | grep -q OK
|
||||
do
|
||||
sleep 1
|
||||
echo "CFUN=0 failed. Trying again."
|
||||
done
|
||||
|
||||
until gl_modem AT AT+CFUN=4 | grep -q OK
|
||||
do
|
||||
leak=1
|
||||
echo "CFUN=4 failed. Trying again."
|
||||
done
|
||||
|
||||
if [[ $leak -eq 1 ]]; then
|
||||
echo
|
||||
echo "WARNING: Reset took longer than expected."
|
||||
echo
|
||||
fi
|
||||
|
||||
sleep 1
|
||||
|
||||
new_imsi=$(READ_IMSI)
|
||||
|
||||
if [[ "$old_imsi" == "$new_imsi" ]]; then
|
||||
echo
|
||||
echo "WARNING: Old IMSI equals new IMSI."
|
||||
echo
|
||||
fi
|
||||
|
||||
echo -n "Would you like to set a random (r) or deterministic (d) IMEI? (R/d): "
|
||||
read answer
|
||||
case $answer in
|
||||
d*) answer=0;;
|
||||
D*) answer=0;;
|
||||
*) answer=1;;
|
||||
esac
|
||||
if [[ "$answer" -eq 1 ]]; then
|
||||
python3 /lib/blue-merle/imei_generate.py -r
|
||||
else
|
||||
python3 /lib/blue-merle/imei_generate.py -d
|
||||
fi
|
||||
|
||||
new_imei=$(READ_IMEI)
|
||||
|
||||
if [[ "$old_imei" == "$new_imei" ]]; then
|
||||
echo
|
||||
echo "WARNING: Old IMEI equals new IMEI."
|
||||
echo
|
||||
else
|
||||
mkdir -p /tmp/modem.1-1.2
|
||||
echo "$new_imei" > /tmp/modem.1-1.2/modem-imei
|
||||
fi
|
||||
|
||||
echo "You should now reset the modem or shutdown the device."
|
||||
echo "For extra privacy, you should shutdown the device and change your location."
|
||||
echo
|
||||
echo -n "Would you like to shutdown the device (s) or reset the modem (m)? (S/m): "
|
||||
read answer
|
||||
case $answer in
|
||||
m*) answer=0;;
|
||||
M*) answer=0;;
|
||||
*) answer=1;;
|
||||
esac
|
||||
if [[ "$answer" -eq 1 ]]; then
|
||||
echo {\"poweroff\": \"1\"} >/tmp/mcu_message && sleep 0.5 && killall -17 e750-mcu
|
||||
else
|
||||
echo "Resetting modem..."
|
||||
until gl_modem AT AT+QPOWD | grep -q OK
|
||||
do
|
||||
echo "Resetting modem failed. Trying again."
|
||||
sleep 1
|
||||
done
|
||||
|
||||
time_start=$(date +%s)
|
||||
until imsi=$(gl_modem AT AT+CIMI | grep -w -E "[0-9]{6,15}")
|
||||
do
|
||||
time_now=$(date +%s)
|
||||
echo -ne "Waiting for reset to complete. ($(($time_now-$time_start))s/30s)\r"
|
||||
sleep 1
|
||||
done
|
||||
echo
|
||||
echo "FIN"
|
||||
fi
|
||||
|
138
files/usr/bin/blue-merle-switch
Executable file
138
files/usr/bin/blue-merle-switch
Executable file
|
@ -0,0 +1,138 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /lib/blue-merle/functions.sh
|
||||
|
||||
if [ ! -c "/dev/ttyUSB3" ]; then
|
||||
e750-mcu "Error: /dev/ttyUSB3 does not exist."
|
||||
sleep 3
|
||||
e750-mcu "Please reboot & contact maintainer if problem persists."
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if [ ! -f "/tmp/sim_change_start" ]; then
|
||||
echo 0 > /tmp/sim_change_start
|
||||
fi
|
||||
|
||||
if [ ! -f "/tmp/sim_change_switch" ]; then
|
||||
sim_switch off
|
||||
fi
|
||||
|
||||
now=$(date +%s)
|
||||
sim_change_last=`cat /tmp/sim_change_start`
|
||||
sim_change_diff=$((now-sim_change_last))
|
||||
|
||||
if [[ "$sim_change_diff" -lt 60 ]]; then
|
||||
e750-mcu "Please wait >1min between two SIM swaps. ($sim_change_diff s)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "$now" > /tmp/sim_change_start
|
||||
|
||||
e750-mcu "Starting SIM swap."
|
||||
sleep 3
|
||||
|
||||
i=5
|
||||
until [[ $i -lt 0 ]]
|
||||
do
|
||||
e750-mcu "Pull switch to abort ($i). "
|
||||
i=$((i-1))
|
||||
sleep 1
|
||||
|
||||
CHECK_ABORT
|
||||
done
|
||||
|
||||
e750-mcu "Continuing ..."
|
||||
sleep 1
|
||||
|
||||
e750-mcu "Disabling the MEfrom transmit- ting and recei- ving RF signals."
|
||||
sleep 3
|
||||
|
||||
old_imei=$(READ_IMEI)
|
||||
old_imsi=$(READ_IMSI)
|
||||
|
||||
CHECK_ABORT
|
||||
|
||||
answer=1
|
||||
while [[ "$answer" -eq 1 ]]; do
|
||||
gl_modem AT AT+CFUN=4 | grep -q OK
|
||||
if [[ $? -eq 1 ]]; then
|
||||
e750-mcu "Disabling failed. Trying again."
|
||||
CHECK_ABORT
|
||||
else
|
||||
answer=0
|
||||
e750-mcu "Disabled."
|
||||
sleep 2
|
||||
fi
|
||||
done
|
||||
|
||||
e750-mcu "Replace the SIM card. Then pull the switch."
|
||||
|
||||
while [[ `cat /tmp/sim_change_switch` = "on" ]]; do
|
||||
e750-mcu "Replace the SIM card. Then pull the switch."
|
||||
sleep 3
|
||||
done
|
||||
|
||||
e750-mcu "Switch pulled. Continuing..."
|
||||
sleep 1
|
||||
sim_switch on
|
||||
|
||||
leak=0
|
||||
|
||||
until gl_modem AT AT+CFUN=0 | grep -q OK
|
||||
do
|
||||
e750-mcu "CFUN=0 failed. Trying again."
|
||||
sleep 1
|
||||
done
|
||||
|
||||
until gl_modem AT AT+CFUN=4 | grep -q OK
|
||||
do
|
||||
leak=1
|
||||
e750-mcu "CFUN=4 failed. Trying again."
|
||||
sleep 1
|
||||
done
|
||||
|
||||
if [[ $leak -eq 1 ]]; then
|
||||
e750-mcu "WARNING: Reset took longer than expected."
|
||||
sleep 3
|
||||
fi
|
||||
|
||||
sleep 1
|
||||
|
||||
new_imsi=$(READ_IMSI)
|
||||
|
||||
if [[ "$old_imsi" == "$new_imsi" ]]; then
|
||||
e750-mcu "WARNING: Old IMSI equals new IMSI."
|
||||
sleep 3
|
||||
fi
|
||||
|
||||
e750-mcu "Setting random IMEI"
|
||||
python3 /lib/blue-merle/imei_generate.py -r
|
||||
|
||||
new_imei=$(READ_IMEI)
|
||||
|
||||
if [[ "$old_imei" == "$new_imei" ]]; then
|
||||
e750-mcu "WARNING: Old IMEI equals new IMEI."
|
||||
sleep 3
|
||||
else
|
||||
mkdir -p /tmp/modem.1-1.2
|
||||
echo "$new_imei" > /tmp/modem.1-1.2/modem-imei
|
||||
fi
|
||||
|
||||
|
||||
e750-mcu "The device will shutdown now."
|
||||
sleep 3
|
||||
e750-mcu "You should change your location before booting again."
|
||||
sleep 5
|
||||
|
||||
|
||||
i=5
|
||||
until [[ $i -eq 0 ]]
|
||||
do
|
||||
i=$((i-1))
|
||||
e750-mcu "Shutting down... ($i)"
|
||||
sleep 1
|
||||
done
|
||||
|
||||
echo {\"poweroff\": \"1\"} >/tmp/mcu_message && sleep 0.5 && killall -17 e750-mcu
|
||||
|
||||
exit 0
|
7
files/usr/bin/sim_switch
Executable file
7
files/usr/bin/sim_switch
Executable file
|
@ -0,0 +1,7 @@
|
|||
if [ "$1" = "on" ];then
|
||||
echo "on" > /tmp/sim_change_switch
|
||||
elif [ "$1" = "off" ];then
|
||||
echo "off" > /tmp/sim_change_switch
|
||||
else
|
||||
echo "off" > /tmp/sim_change_switch
|
||||
fi
|
Loading…
Add table
Add a link
Reference in a new issue