Home | History | Annotate | Download | only in bin
      1 #!/bin/sh
      2 #
      3 #
      4 # Copyright (C) 2015 The Android Open Source Project
      5 #
      6 # Licensed under the Apache License, Version 2.0 (the "License");
      7 # you may not use this file except in compliance with the License.
      8 # You may obtain a copy of the License at
      9 #
     10 #      http://www.apache.org/licenses/LICENSE-2.0
     11 #
     12 # Unless required by applicable law or agreed to in writing, software
     13 # distributed under the License is distributed on an "AS IS" BASIS,
     14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     15 # See the License for the specific language governing permissions and
     16 # limitations under the License.
     17 #
     18 #
     19 # UDEV event helper script that sets the system's WiFi regulatory domain
     20 # from VPD data.
     21 
     22 set -e
     23 
     24 # TODO(quiche): When fixing crbug.com/474657, we may need to remove
     25 # toupper().
     26 country_code=$(
     27   # Example output of dump_vpd_log --stdout:
     28   # "initial_timezone"="America/Los_Angeles"
     29   # "region"="us"
     30   dump_vpd_log --stdout |
     31   awk -F'=' \
     32     '/^"region"="[-0-9a-zA-Z.]+"$/ {
     33        gsub(/"/, "", $2)
     34        print toupper($2)
     35        exit
     36      }'
     37 )
     38 
     39 # TODO(quiche): Replace this code using the regions database and jq.
     40 # crbug.com/474657.
     41 country_code="${country_code%%.*}"
     42 case "${country_code}" in
     43   "LATAM-ES-419")
     44     country_code="MX"
     45     ;;
     46   "NORDIC")
     47     country_code="SE"
     48     ;;
     49 esac
     50 
     51 if [ -n "${country_code}" ]; then
     52   iw reg set "${country_code}"
     53 fi
     54