summaryrefslogtreecommitdiffstats
path: root/include/plmn_list.sh
diff options
context:
space:
mode:
authorWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2017-09-06 00:19:36 +0200
committerWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2017-09-06 00:19:36 +0200
commitf35a9bbd1ebb52433f313c675fbe01bb1ca96d7d (patch)
treec1aff224fd4a2ea2e5e06805c7caff5406b0ab42 /include/plmn_list.sh
parent06cf4fe68ad096961b4b9c653ba2bc31d270f009 (diff)
downloadqmi-ril-f35a9bbd1ebb52433f313c675fbe01bb1ca96d7d.tar.gz
qmi-ril-f35a9bbd1ebb52433f313c675fbe01bb1ca96d7d.tar.bz2
qmi-ril-f35a9bbd1ebb52433f313c675fbe01bb1ca96d7d.zip
initial version of QMI-RILHEADmaster
The RIL uses libqmi. qmicli and ModemManager were used as references for using libqmi. The request processing is modelled after Samsung-RIL and a lot of code could be reused for QMI-RIL. Establishing a data connection succeeds and mobile data is working in early testing. However, there is not yet a routine for handling interruptions and notifying Android about them. Information about the serving network including signal strength are retrieved and an unlocked SIM card is recognized. Reading data from the SIM and requesting the usual device information should work as well. Support for voice calls and SMS is completely missing at this point. Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de>
Diffstat (limited to 'include/plmn_list.sh')
-rwxr-xr-xinclude/plmn_list.sh88
1 files changed, 88 insertions, 0 deletions
diff --git a/include/plmn_list.sh b/include/plmn_list.sh
new file mode 100755
index 0000000..0a17068
--- /dev/null
+++ b/include/plmn_list.sh
@@ -0,0 +1,88 @@
+#!/bin/sh
+#
+# Copyright 2012-2014 Paul Kocialkowski, GPLv3+
+#
+# This script is a dirty hack, keep in mind that is was written in a hurry
+# and doesn't reflect our code cleanness standards.
+# Any (working) replacement written in a cleaner way, such as a perl script
+# would be greatly appreciated.
+
+echo "/*"
+echo " * This list was generated from:"
+echo " * http://en.wikipedia.org/wiki/Mobile_country_code"
+echo " *"
+echo " * Date: "$( date "+%x %X" )
+echo " * Copyright: Wikipedia Contributors, Creative Commons"
+echo " * Attribution-ShareAlike License"
+echo " */"
+echo ""
+echo "#ifndef _PLMN_LIST_H_"
+echo "#define _PLMN_LIST_H_"
+echo ""
+echo "#include <stdlib.h>"
+echo ""
+echo "struct plmn_list_entry {"
+echo " unsigned int mcc;"
+echo " unsigned int mnc;"
+echo " char *operator_long;"
+echo " char *operator_short;"
+echo "};"
+echo ""
+echo "struct plmn_list_entry plmn_list[] = {"
+
+wget "http://en.wikipedia.org/w/index.php?title=Special:Export&pages=Mobile_country_code&action=submit" --quiet -O - | tr -d '\n' | sed -e "s|.*<text[^>]*>\(.*\)</text>.*|\1|g" -e "s/|-/\n|-\n/g" | sed -e "s/\(}===.*\)/\n\1/g" -e "s/===={.*/===={\n/g" -e "s/\&amp;/\&/g" -e "s/\&lt;[^\&]*\&gt;//g" -e "s/&quot;//g" -e "s#\[http[^]]*\]##g" -e "s#\[\[\([^]|]*\)|\([^]]*\)\]\]#\2#g" -e "s#\[\[\([^]]*\)\]\]#\1#g" -e "s#\[\([^] ]*\) \([^]]*\)\]#\2#g" -e "s#{{[^}]*}}##g" | tail -n +2 | sed "s|.*==== *\([^=]*\) *====.*|// \1|g" | grep -v "|-" | while read line
+do
+ if [ "$line" = "" ]
+ then
+ continue
+ fi
+
+ test=$( echo "$line" | grep -P "^//" )
+
+ if [ ! "$test" = "" ]
+ then
+ echo "\n\t$line\n" | sed -e "s#[^|]*|\(.*\)#// \1#g" -e "s/^ //g" -e "s/ $//g" -e "s/ / /g"
+ continue
+ fi
+
+ test=$( echo "$line" | grep "||" )
+
+ if [ "$test" = "" ]
+ then
+ continue
+ fi
+
+ mcc=$( echo "$line" | sed -e "s#[^|]*|[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\).*#\1#g" -e "s/^[ |\t]*//g" -e "s/ [ |\t]*$//g" -e "s/[^1-9]*\([0-9]*\).*/\1/g")
+ mnc=$( echo "$line" | sed -e "s#[^|]*|[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\).*#\2#g" -e "s/^[ |\t]*//g" -e "s/ [ |\t]*$//g" -e "s/[^1-9]*\([0-9]*\).*/\1/g")
+ brand=$( echo "$line" | sed -e "s#[^|]*|[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\).*#\3#g" -e "s/^[ |\t]*//g" -e "s/ [ |\t]*$//g" )
+ operator=$( echo "$line" | sed -e "s#[^|]*|[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\)[ ]*||[ ]*\([^|]*\).*#\4#g" -e "s/^[ |\t]*//g" -e "s/ [ |\t]*$//g" )
+
+ if [ "$mcc" = "" ] || [ "$mcc" = "?" ]
+ then
+ continue
+ fi
+
+ if [ "$mnc" = "" ] || [ "$mnc" = "?" ]
+ then
+ continue
+ fi
+
+ if [ "$brand" = "" ]
+ then
+ if [ "$operator" = "" ]
+ then
+ continue
+ fi
+
+ echo "\t{ $mcc, $mnc, \"$operator\", \"$operator\" },"
+ else
+ echo "\t{ $mcc, $mnc, \"$brand\", \"$brand\" },"
+ fi
+done
+
+echo "};"
+echo ""
+echo "unsigned int plmn_list_count = sizeof(plmn_list) /"
+echo "\tsizeof(struct plmn_list_entry);"
+echo ""
+echo "#endif"