aboutsummaryrefslogtreecommitdiff
path: root/data/dispatcher-fcc-unlock/105b
diff options
context:
space:
mode:
Diffstat (limited to 'data/dispatcher-fcc-unlock/105b')
-rw-r--r--data/dispatcher-fcc-unlock/105b34
1 files changed, 34 insertions, 0 deletions
diff --git a/data/dispatcher-fcc-unlock/105b b/data/dispatcher-fcc-unlock/105b
new file mode 100644
index 00000000..772c90f4
--- /dev/null
+++ b/data/dispatcher-fcc-unlock/105b
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+# SPDX-License-Identifier: CC0-1.0
+# 2021 Aleksander Morgado <aleksander@aleksander.es>
+#
+# Foxconn SDX55 FCC unlock operation
+#
+
+# require program name and at least 2 arguments
+[ $# -lt 2 ] && exit 1
+
+# first argument is DBus path, not needed here
+shift
+
+# second and next arguments are control port names
+for PORT in "$@"; do
+ # match port type in Linux 5.14 and newer
+ grep -q MBIM "/sys/class/wwan/$PORT/type" 2>/dev/null && {
+ MBIM_PORT=$PORT
+ break
+ }
+ # match port name in Linux 5.13
+ echo "$PORT" | grep -q MBIM && {
+ MBIM_PORT=$PORT
+ break
+ }
+done
+
+# fail if no MBIM port exposed
+[ -n "$MBIM_PORT" ] || exit 2
+
+# run qmicli operation over MBIM
+qmicli --device-open-proxy --device="/dev/$MBIM_PORT" --dms-foxconn-set-fcc-authentication=0
+exit $?