mirror of
https://github.com/srlabs/blue-merle.git
synced 2024-12-22 13:55:00 -05:00
d4886a54a9
This makes it hopefully a bit easier to see what we're doing because you don't need to chase the files down. We don't re-use that functionality anywhere. Neither would we. A more important change is not restarting the gl-tertf service. First of all, there seems to be no process attached to gl-tertf. It is the "Bandwidth Monitor" and part of the kmod-gl-sdk4-tertf package, so it's kernel module. It does not appear to be holding the clients.db. There is, however, gl_clients which also makes sense, naming wise. That service defines that /usr/bin/gl_clients_update ought to be run. And stracing it shows that it does indeed touch the database: open("/etc/oui-tertf/client.db", O_RDWR|O_CREAT|O_LARGEFILE|O_NOFOLLOW|O_CLOEXEC, 0644) = 7 It also appears to be re-creating the file when it's missing. Anyway, we have the service stopped during installation so that we can safely delete the file without the process complaining. We also install our volatile mac service s.t. it runs ahead of the gl-client service so that the clientdb gets saved in volatile memory.
107 lines
2.9 KiB
Makefile
107 lines
2.9 KiB
Makefile
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=blue-merle
|
|
PKG_VERSION:=2.0.0
|
|
PKG_RELEASE:=$(AUTORELEASE)
|
|
|
|
PKG_MAINTAINER:=Matthias <matthias@srlabs.de>
|
|
PKG_LICENSE:=BSD-3-Clause
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/blue-merle
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
EXTRA_DEPENDS:=luci-base, gl-sdk4-mcu, coreutils-shred, python3-pyserial
|
|
TITLE:=Anonymity Enhancements for GL-E750 Mudi
|
|
endef
|
|
|
|
define Package/blue-merle/description
|
|
The blue-merle package enhances anonymity and reduces forensic traceability of the GL-E750 Mudi 4G mobile wi-fi router
|
|
endef
|
|
|
|
define Build/Configure
|
|
endef
|
|
|
|
define Build/Compile
|
|
endef
|
|
|
|
define Package/blue-merle/install
|
|
$(CP) ./files/* $(1)/
|
|
$(INSTALL_BIN) ./files/etc/init.d/* $(1)/etc/init.d/
|
|
$(INSTALL_BIN) ./files/etc/gl-switch.d/* $(1)/etc/gl-switch.d/
|
|
$(INSTALL_BIN) ./files/lib/blue-merle/mac-wipe.sh $(1)/lib/blue-merle/mac-wipe.sh
|
|
$(INSTALL_BIN) ./files/usr/bin/* $(1)/usr/bin/
|
|
$(INSTALL_BIN) ./files/usr/libexec/blue-merle $(1)/usr/libexec/blue-merle
|
|
$(INSTALL_BIN) ./files/lib/blue-merle/imei_generate.py $(1)/lib/blue-merle/imei_generate.py
|
|
endef
|
|
|
|
define Package/blue-merle/preinst
|
|
#!/bin/sh
|
|
[ -n "$${IPKG_INSTROOT}" ] && exit 0 # if run within buildroot exit
|
|
|
|
ABORT_GLVERSION () {
|
|
echo
|
|
if [ -f "/tmp/sysinfo/model" ] && [ -f "/etc/glversion" ]; then
|
|
echo "You have a `cat /tmp/sysinfo/model`, running firmware version `cat /etc/glversion`."
|
|
fi
|
|
echo "blue-merle has only been tested with GL-E750 Mudi Version 4.3.8."
|
|
echo "The device or firmware version you are using have not been verified to work with blue-merle."
|
|
echo -n "Would you like to continue on your own risk? (y/N): "
|
|
read answer
|
|
case $$answer in
|
|
y*) answer=0;;
|
|
y*) answer=0;;
|
|
*) answer=1;;
|
|
esac
|
|
if [[ "$$answer" -eq 0 ]]; then
|
|
exit 0
|
|
else
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
if grep -q "GL.iNet GL-E750" /proc/cpuinfo; then
|
|
GL_VERSION=$$(cat /etc/glversion)
|
|
case $$GL_VERSION in
|
|
4.3.8)
|
|
echo Version $$GL_VERSION is supported
|
|
exit 0
|
|
;;
|
|
4.*)
|
|
echo Version $$GL_VERSION is *probably* supported
|
|
ABORT_GLVERSION
|
|
;;
|
|
*)
|
|
echo Unknown version $$GL_VERSION
|
|
ABORT_GLVERSION
|
|
;;
|
|
esac
|
|
CHECK_MCUVERSION
|
|
else
|
|
ABORT_GLVERSION
|
|
fi
|
|
|
|
# Our volatile-mac service gets started during the installation
|
|
# but it modifies the client database held by the gl_clients process.
|
|
# So we stop that process now, have the database put onto volatile storage
|
|
# and start the service after installation
|
|
/etc/init.d/gl_clients stop
|
|
endef
|
|
|
|
define Package/blue-merle/postinst
|
|
#!/bin/sh
|
|
uci set switch-button.@main[0].func='sim'
|
|
uci commit switch-button
|
|
|
|
/etc/init.d/gl_clients start
|
|
|
|
echo {\"msg\": \"Successfully installed Blue Merle\"} > /dev/ttyS0
|
|
endef
|
|
|
|
define Package/blue-merle/postrm
|
|
#!/bin/sh
|
|
uci set switch-button.@main[0].func='tor'
|
|
endef
|
|
$(eval $(call BuildPackage,$(PKG_NAME)))
|