diff options
94 files changed, 2394 insertions, 2023 deletions
diff --git a/CHANGELOG.mkdn b/CHANGELOG.mkdn index 8ac5532..de9967f 100644 --- a/CHANGELOG.mkdn +++ b/CHANGELOG.mkdn @@ -175,13 +175,161 @@ Galaxy Note 2 (N7100): CyanogenMod =============== -Visit http://github.com/CyanogenMod for full changelogs and git access. +Visit http://github.com/CyanogenMod for full source and git access. Visit http://review.cyanogenmod.org for our Gerrit instance. CHANGELOG (notable new features) --------- +### 13.0 ZNH5Y +* Common: Android 6.0.1 (Google) +* Android Security Bulletin - August 1st update +* Wi-Fi Tethering – automatically turn off hotspot after X minutes of inactivity +* Profiles – add notification light controls +* Do Not Disturb/Priority Mode – add notification light controls +* Privacy Guard/App data usage – Restrict apps to Wi-Fi or Cellular data only or block all internet access, per app +* Bluetooth Devices battery support +* Lockscreen Wallpaper picker makes its return +* Lockscreen Weather and new Weather plug in support +* Lockscreen Blur support (on a per device basis) and the ability to disable the effect +* Live Lockscreen support +* New LiveDisplay hardware enhancements and API +* Snap Camera (per device basis) +* Gello Browser (per device basis) +* Lots of translations +* Cyanogen Apps support (x86 not supported yet) +* Additional CM SDK APIs +* Security fixes galore + +### 13.0 ZNH0E +* Common: Android 6.0.1 (Google) +* Android Security Bulletin - March 7th update +* Settings > Build date - Triple tap to access demo mode +* Settings > Memory - New screen to show memory usage over a selected period of time +* Protected Apps - New folder UX, fingerprint support, enhanced ability to restrict access +* New SMS/MMS application + +### 12.1 YOG4PAO3 +* Common: Android 5.1.1 (Google) +* Android Security Bulletin – October 5th update + +### 12.1 YOG4PAO2 +* Common: Android 5.1.1 (Google) +* New Devices: Andromax Q (rendang), Galaxy S5 China (kltechn), Galaxy S5 Duos (klteduos), Galaxy S5 Duos China (kltechnduo) +* IMAP idle support +* SDK v1 release +* Stagefright security fixes + +### 12.0 +* Common: Android 5.0 (Google) + +### 11.0.0 M12 +* Common: Android 4.4.4 (Google) +* patches against POODLE vulnerability in SSLv3 +* Multi-sim improvements throughout the OS experience + +### 11.0.0 M11 +* Common: Android 4.4.4 (Google) +* New Devices: Galaxy S4 Active (jactivelte), Galaxy S4 SK I-9506 (ks01lte), Galaxy S5 GSM (klte), Galaxy Tab 10.1 (picassowifi), Galaxy Player 4.0 (ypg1) +* Re-introduce Samsung Galaxy Relay 4G (apexqtmo) support +* Fix signal strength showing ’2147483647′ on certain devices +* Frameworks & Core Apps: CAF and other upstream updates +* Lockscreen: Do not play sounds while a phone call is active & MSIM updates +* Frameworks: Add base & MSIM APIs for SEEK (Secure Element Evaluation Kit) support +* Frameworks: Fix volume button changing two ‘steps’ per click +* Frameworks: Add ‘Screen Off’ action for double-tap/long-press configuration options +* Show devices connected to your WiFi (tethering) Hotspot +* Fix bug related to ‘switch to last app’ action while in Recents view +* Fix Navigation Bar arrow keys in RTL locales +* Translations updates from CyanogenMod CrowdIn team +* Adjustments to ‘Glove Mode’ (High Touch Sensitivity) +* APN Updates for various regions +* Camera: Add support for all available Slow Shutter speeds (hardware dependent); Improve shutter button +* Dialer/InCallUI: Fix smartcover always showing answer fragment +* LG G2: Address GPS and NFC issues +* Base support for HTC Desire 816 & HTC One Mini 2 (pending nightlies) +* Various security updates +* General bug fixes + +### 11.0.0 M10 +* Common: Android 4.4.4 (Google) +* New Devices: Galaxy S5 Sprint (kltespr) +* Split out Note 3 into GSM (hlte), Sprint (hltespr) and Verizon (hltevzw) +* Refactor moto_msm8960dt as 'ghost' for Moto X 2013 +* Drop support for obake, toro, toroplus +* Theme Engine: Themes support for additional UI elements +* Frameworks & Core Apps: CAF and other upstream updates +* Settings: Add scramble pin feature +* Frameworks: Long press recent apps to switch to last used app +* Settings: Add soft reboot option +* Add smart cover support +* Add glove mode support +* Add bug reporter and crash log uploader +* Multisim updates +* General bug fixes +* ANT+ Support for various hardware +* Privacy Guard: Control NFC permissions + +### 11.0.0 M9 +* Common: Android 4.4.4 (Google) +* New Devices: Sony Xperia Z2 Tablets (castor); HTC One (m8) +* Theme Engine: Themes support for additional UI elements +* Lockscreen: Allow doubletap to sleep when using secure keyguard +* Settings: Safe Headset Volume – prompt when interfering with 3rd party device (Jawbone, Square, etc) +* Settings: Center clock support +* Settings: Proximity Wake-Up support +* Settings: Spam notification filtering +* Settings Search: Additional improvements and highlighting +* Data Usage Info: Add support for CDMA devices without sim cards +* Bluetooth: Add additional A2DP profiles +* Bluetooth: Disable AVRCP 1.5 by default (fixes various car unit compatibility) +* Email: Fix saving attachments to storage for POP3 accounts +* Account for Play Services induced wake-locks +* Fix encryption on some LG Devices +* Dialer: add support for Korean and Chinese to smart-dialer + +### 11.0.0 M8 +* Common: Android 4.4.4 (Google) +* New Devices: Sony Xperia Z2 (sirius); Xiaomi Mi2 (aries); Oppo Find 7a/s (find7); OnePlus One (bacon) +* Common: Fix VPN issues related to 4.4.3 merge +* Common: Enable 'Heads Up' notification mode (Settings > Notifications) +* Settings: 'Interface' replaced by 'Status Bar', 'Notification Drawer', and 'Gestures' +* Settings: Moved 'Expanded Desktop' to 'Display' +* Settings: Moved all lock screen related items to 'Lock Screen' and removed duplicates from 'Security' +* Settings: Moved 'Navigation Bar' layout control to 'Buttons' +* Trebuchet: Custom Homescreen grid size +* Trebuchet: Add Protected Apps feature +* Trebuchet: Add Search Panel (Google Now) option +* WhisperPush: No longer ignores 'Blacklist' +* Futex: Protect against Towelroot +* Various small bugfixes, global and device-specific + +### 11.0.0 M7 +* Common: Android 4.4.2 (Google) +* New Devices: HTC One (m8); Samsung Galaxy Tab Pro 8.4 (mondrianwifi); Galaxy Note 8.0 LTE (n5120); LG G2 Docomo (l01f) +* Common: Theme Chooser UI Overhaul +* Common: Calculator app redesign (courtesy Xlythe) +* Common: Performance Profiles +* Common: Improved theming performance on low memory devices (~512MB RAM or less) +* Trebuchet: Move settings to new slide-out panel +* Trebuchet: Consolidate settings for home and drawer options +* Media: Add FFMPEG support (expanded media format support) +* Bluetooth: Improved support for new car audio systems and docks +* Various small bugfixes, global and device-specific + +### 10.2.0 +* Common: Android 4.3 (Google) +* Common: Privacy Guard 2.0 with AppOps +* Common: Quick Settings Ribbon (replaces Notification Power Widgets) +* Common: Hardware Tunables HAL +* Common: Settings restructure +* SMS: Voice+ (Google Voice integration) +* SMS: Middleware layer +* APN: World Phone Support (unified APN list) +* Trebuchet: Universal Icon Pack support +* Various small bugfixes, global and device-specific + ### 10.1.3 * Common: CyanogenMod Account * Common: Privacy Guard diff --git a/CONTRIBUTORS.mkdn b/CONTRIBUTORS.mkdn index b7ff733..ac9125f 100644 --- a/CONTRIBUTORS.mkdn +++ b/CONTRIBUTORS.mkdn @@ -9,6 +9,7 @@ CyanogenMod Maintainers (CyanogenMod 13.0): ----------------------------- * __Acer A700:__ pawitp +* __Alcatel Idol 3:__ c457 * __Amazon Kindle Fire 1st Edition:__ Hashcode, FuZZ__ * __Amazon Kindle Fire 2nd Edition:__ Hashcode, FuZZ__ * __Asus EeePad Transformer (TF101):__ Bumble-Bee, EnJens @@ -20,10 +21,14 @@ Maintainers (CyanogenMod 13.0): * __Asus Zenfone 2 ZE551ML (Z00A):__ crpalmer, jrior001 * __Asus Zenfone 2 ZE550KL (Z00L):__ LuK1337, luca020400 * __Asus Zenfone 2 ZE551KL/ZD551KL (Z00T):__ LuK1337, luca020400 +* __Asus ZenPad 8.0 Z380KL:__ vm03 * __B&N NookColor (encore):__ eyeballer, fattire, keyodi, krylon360, sluo (NookieDevs) * __B&N Nook Tablet (acclaim):__ chrmhoffmann +* __BQ Aquaris E5 4G/E5 S (vegetalte):__ cmorlok, eloimuns, Kra1o5, stucki, brinlyau (bq-dev) +* __BQ Aquaris M5 (piccolo):__ cmorlok, eloimuns, Kra1o5, stucki, brinlyau (bq-dev) +* __BQ Aquaris X5 Plus (gohan):__ cmorlok, eloimuns, Kra1o5, stucki, brinlyau (bq-dev) * __Google Android One:__ varunchitre15 -* __Google Galaxy Nexus:__ bekit, Bumble-Bee, burnsra, KalimochoAz, something15525 +* __Google Galaxy Nexus:__ Ziyan, musical_chairs * __Google Nexus S:__ burnsra, KalimochoAz, klusark * __Google Nexus 4:__ ciwrl * __Google Nexus 5:__ ciwrl @@ -31,12 +36,12 @@ Maintainers (CyanogenMod 13.0): * __Google Nexus 6:__ dhacker29 * __Google Nexus 6P:__ ciwrl, dhacker29, Sam Mortimer * __Google Nexus 7:__ burnsra, fattire, Thömy, nemith, JoeyRizzoli (GSM) +* __Google Nexus 7 (2013):__ ciwrl, nardholio, zwliew * __Google Nexus 9:__ simonsickle, ciwrl * __Google Nexus 10:__ Tortel, ciwrl * __Google Nexus Player:__ dhacker29, bmc08gt * __HTC Desire 601(zara/zaracl):__ uberlaggydarwin, PatrikKT * __HTC Desire 816:__ Grarak, v_superuser -* __HTC Desire Eye:__ uberlaggydarwin * __HTC Droid DNA:__ crpalmer, invisiblek * __HTC Droid Incredible 4G LTE:__ intervigil, mdmower * __HTC Evo 4G LTE:__ kushdeck, toastcfh @@ -59,6 +64,7 @@ Maintainers (CyanogenMod 13.0): * __LG G2 (Canada) (D803):__ arcee, Rashed97, Shelnutt2 * __LG G2 (Sprint) (LS980):__ arcee, Rashed97, Shelnutt2 * __LG G2 (Verizon) (VS980):__ arcee, Rashed97, Shelnutt2 +* __LG G2 Mini:__ Quarx2k, vm03, NikitaProAndroid * __LG G3 (AT&T) (D850):__ * __LG G3 (T-Mobile) (D851):__ bryan2894 * __LG G3 (Canada) (D852):__ cuzz1369 @@ -66,8 +72,12 @@ Maintainers (CyanogenMod 13.0): * __LG G3 (Korea) (F400):__ TheNoFace * __LG G3 (Sprint) (LS990):__ Kasual * __LG G3 (Verizon) (VS985):__ invisiblek +* __LG G3 Beat (D722):__ Quarx2k, vm03, NikitaProAndroid +* __LG G3 s (D724):__ Quarx2k, vm03, NikitaProAndroid * __LG G4 (T-Mobile) (H811):__ codeworkx, genesixxbf3 * __LG G4 (International) (H815):__ codeworkx, genesixxbf3 +* __LG Optimus L70:__ Quarx2k, vm03, NikitaProAndroid +* __LG Optimus L90:__ Quarx2k, vm03, NikitaProAndroid * __LG Optimus LTE (P930) / LG Nitro HD {P935):__ arcee * __LG Optimus LTE (SK Telecom) (SU640):__ arcee * __LG V10 (T-Mobile) (H901):__ genesixxbf3 @@ -94,6 +104,7 @@ Maintainers (CyanogenMod 13.0): * __Motorola Xoom 3G (UMTS):__ bazar, SteadyHawkin, TDR (Team Rogue) * __Motorola Xoom 4G LTE (Verizon):__ bazar, SteadyHawkin, TDR (Team Rogue) * __OnePlus One:__ cyanogen, intervigil, inwotep, arcee +* __OnePlus Two:__ ciwrl, grarak, raymanfx * __OnePlus X:__ ashwin007, MasterAwesome * __Oppo Find 5:__ intervigil, nebkat, raymanfx * __Oppo Find 7:__ intervigil, tdm, inwotep, mikeioannina @@ -137,28 +148,31 @@ Maintainers (CyanogenMod 13.0): * __Samsung Galaxy S IV (Sprint) (SPH-L720):__ noobnl * __Samsung Galaxy S IV (T-Mobile) (SGH-M919):__ dcd * __Samsung Galaxy S IV (Verizon) (SCH-I545):__ invisiblek -* __Samsung Galaxy S IV LTE (GT-I9505):__ AntaresOne +* __Samsung Galaxy S IV LTE (GT-I9505):__ AntaresOne, invisiblek, dcd, zwliew * __Samsung Galaxy S IV LTE-A (GT-I9506):__ solk2 * __Samsung Galaxy S IV Mini 3G (GT-I9190):__ arco * __Samsung Galaxy S IV Mini LTE (GT-I9195):__ arco * __Samsung Galaxy S V (AU) (SCL23):__ scoty755 * __Samsung Galaxy S V (Vodafone) (SM-G900I):__ Regi24 -* __Samsung Galaxy S V LTE (SM-G900F):__ Albinoman887 +* __Samsung Galaxy S V LTE (SM-G900F):__ haggertk, OzzysCmAcc * __Samsung Galaxy Tab 7" (GSM):__ cdesai, humberos * __Samsung Galaxy Tab 7" (CDMA):__ jt1134 * __Samsung Galaxy Tab 2 7" (GT-P31xx):__ codyf86 * __Samsung Galaxy Tab 2 10.1" (GT-P51xx):__ codyf86 * __Samsung Galaxy Tab Pro 8.4" (SM-T320):__ crpalmer +* __Samsung Galaxy Tab S2 9.7" (SM-T810):__ raymanfx, T_I +* __Samsung Galaxy Tab S2 9.7 (LTE)" (SM-T815):__ raymanfx * __Samsung Vibrant (SGH-T959):__ FaultException * __Sony Xperia E3 (flamingo):__ FreeXperia Team * __Sony Xperia L (taoshan):__ olivieer, FreeXperia Team * __Sony Xperia M (nicki):__ RonG, FreeXperia Team * __Sony Xperia M2 (eagle):__ FreeXperia Team * __Sony Xperia SP (huashan):__ AdrianDC -* __Sony Xperia T (mint):__ FreeXperia Team, tilal6991, uberlaggydarwin +* __Sony Xperia T (mint):__ AdrianDC, FreeXperia Team * __Sony Xperia T2 Ultra (tianchi):__ FreeXperia Team * __Sony Xperia T3 (seagull):__ FreeXperia Team -* __Sony Xperia V (tsubasa):__ FreeXperia Team, tilal6991, championswimmer, uberlaggydarwin +* __Sony Xperia TX (hayabusa):__ AdrianDC, FreeXperia Team +* __Sony Xperia V (tsubasa):__ AdrianDC, FreeXperia Team * __Sony Xperia Z (yuga):__ FreeXperia Team, Turl, olivieer * __Sony Xperia ZL (odin):__ FreeXperia Team * __Sony Xperia ZR (dogo):__ FreeXperia Team @@ -176,6 +190,9 @@ Maintainers (CyanogenMod 13.0): * __Sony Z Ultra GPE (togari_gpe):__ FreeXperia Team * __Xiaomi Mi2(s) (aries):__ Michael Zimmermann * __Xiaomi Mi3/4 (cancro):__ JoeyRizzoli +* __Xiaomi Mi5 (gemini):__ bgcngm, defer, h2o64 +* __Xiaomi Redmi 3/Prime (ido):__ Anik1199 +* __Xiaomi Redmi Note 3 (kenzo):__ TheStrix * __ZTE Nubia Z9 Max (nx510j):__ dianlujitao FreeXperia Team: diff --git a/ambientsdk/Android.mk b/ambientsdk/Android.mk index 56ea1f4..fe2a9c1 100644 --- a/ambientsdk/Android.mk +++ b/ambientsdk/Android.mk @@ -21,7 +21,7 @@ LOCAL_UNINSTALLABLE_MODULE := true LOCAL_MAVEN_REPO := https://repo1.maven.org/maven2 LOCAL_MAVEN_GROUP := com.cyngn.ambient LOCAL_MAVEN_ARTIFACT := ambientsdk -LOCAL_MAVEN_VERSION := 1.4.0 +LOCAL_MAVEN_VERSION := 1.6.0-147069776-39fe2d07 LOCAL_MAVEN_PACKAGING := aar include $(BUILD_MAVEN_PREBUILT) diff --git a/build/core/apicheck_msg_current.txt b/build/core/apicheck_msg_current.txt index f58858e..05a0341 100644 --- a/build/core/apicheck_msg_current.txt +++ b/build/core/apicheck_msg_current.txt @@ -2,11 +2,15 @@ ****************************** You have tried to change the API from what has been previously approved. +STOP. + Read this: + https://github.com/CyanogenMod/cm_platform_sdk/wiki/Creating-an-API-for-the-SDK#updating--verifying-the-api + To make these errors go away, you have two choices: 1) You can add "@hide" javadoc comments to the methods, etc. listed in the errors above. - 2) You can update current.txt by executing the following command: + 2) You can update current.txt (locally) by executing the following command: make update-cm-api ^^^^^^^^^^^^^^^^^^ @@ -140,4 +144,4 @@ To make these errors go away, you have two choices: To submit the revised current.txt to the main CyanogenMod repository, you will need approval. -******************************
\ No newline at end of file +****************************** diff --git a/build/core/maven_artifact_publish.mk b/build/core/maven_artifact_publish.mk index c1fcf50..f72e970 100644 --- a/build/core/maven_artifact_publish.mk +++ b/build/core/maven_artifact_publish.mk @@ -27,7 +27,7 @@ endif $(full_target): pomfile := $(LOCAL_MAVEN_POM) $(full_target): repo := $(LOCAL_MAVEN_REPO) ifdef LOCAL_MAVEN_TARGET_MODULE -$(full_target): path_to_file := $(call intermediates-dir-for,JAVA_LIBRARIES,$(LOCAL_MAVEN_TARGET_MODULE),,COMMON)/javalib.jar +$(full_target): path_to_file := $(call intermediates-dir-for,JAVA_LIBRARIES,$(LOCAL_MAVEN_TARGET_MODULE),,COMMON)/javalib.aar endif $(full_target): repoId := $(LOCAL_MAVEN_REPO_ID) $(full_target): classifier := $(LOCAL_MAVEN_CLASSIFIER) @@ -38,7 +38,7 @@ $(full_target): artifact_path ?= $(basename $(path_to_file)) ifdef LOCAL_MAVEN_TARGET_MODULE $(full_target): $(LOCAL_MAVEN_TARGET_MODULE) $(path_to_file) $(artifact_path) $(ACP) - @echo -e ${CL_GRN}"Renaming generated sdk javalib jar"${CL_RST} + @echo -e ${CL_GRN}"Renaming generated sdk javalib aar"${CL_RST} $(hide) $(ACP) $(path_to_file) $(artifact_path) @echo -e ${CL_GRN}"Publishing to Maven"${CL_RST} $(hide) mvn -e -X gpg:sign-and-deploy-file \ diff --git a/build/tasks/apicheck.mk b/build/tasks/apicheck.mk index 3be3cae..7fa1cc4 100644 --- a/build/tasks/apicheck.mk +++ b/build/tasks/apicheck.mk @@ -25,7 +25,7 @@ ifeq (,$(filter true, $(WITHOUT_CHECK_API) $(TARGET_BUILD_PDK))) # Run the checkapi rules by default. droidcore: checkapi-cm -# Validate against current platform sdk version api text within prebuilts +# Validate against previous release platform sdk version api text within prebuilts cm_last_released_sdk_version := $(CM_PLATFORM_SDK_VERSION) .PHONY: check-cm-public-api diff --git a/build/tasks/generate_cmsdk_coverage.mk b/build/tasks/generate_cmsdk_coverage.mk index d9be81a..38b70b1 100644 --- a/build/tasks/generate_cmsdk_coverage.mk +++ b/build/tasks/generate_cmsdk_coverage.mk @@ -18,7 +18,7 @@ # Makefile for producing cmsdk coverage reports. # Run "make cmsdk-test-coverage" in the $ANDROID_BUILD_TOP directory. -cts_api_coverage_exe := $(HOST_OUT_EXECUTABLES)/cts-api-coverage +cmsdk_api_coverage_exe := $(HOST_OUT_EXECUTABLES)/cmsdk-api-coverage dexdeps_exe := $(HOST_OUT_EXECUTABLES)/dexdeps coverage_out := $(HOST_OUT)/cmsdk-api-coverage @@ -30,16 +30,17 @@ $(api_xml_description) : $(api_text_description) $(APICHECK) $(hide) mkdir -p $(dir $@) $(hide) $(APICHECK_COMMAND) -convert2xml $< $@ -cmsdk-test-coverage-report := $(coverage_out)/test-coverage.html +cmsdk-test-coverage-report := $(coverage_out)/cmsdk-test-coverage.html cmsdk_tests_apk := $(call intermediates-dir-for,APPS,CMPlatformTests)/package.apk -cmsdk_api_coverage_dependencies := $(cts_api_coverage_exe) $(dexdeps_exe) $(api_xml_description) +cmsettingsprovider_tests_apk := $(call intermediates-dir-for,APPS,CMSettingsProviderTests)/package.apk +cmsdk_api_coverage_dependencies := $(cmsdk_api_coverage_exe) $(dexdeps_exe) $(api_xml_description) -$(cmsdk-test-coverage-report): PRIVATE_TEST_CASES := $(cmsdk_tests_apk) -$(cmsdk-test-coverage-report): PRIVATE_CTS_API_COVERAGE_EXE := $(cts_api_coverage_exe) +$(cmsdk-test-coverage-report): PRIVATE_TEST_CASES := $(cmsdk_tests_apk) $(cmsettingsprovider_tests_apk) +$(cmsdk-test-coverage-report): PRIVATE_CMSDK_API_COVERAGE_EXE := $(cmsdk_api_coverage_exe) $(cmsdk-test-coverage-report): PRIVATE_DEXDEPS_EXE := $(dexdeps_exe) $(cmsdk-test-coverage-report): PRIVATE_API_XML_DESC := $(api_xml_description) -$(cmsdk-test-coverage-report): $(cmsdk_tests_apk) $(cmsdk_api_coverage_dependencies) | $(ACP) +$(cmsdk-test-coverage-report): $(cmsdk_tests_apk) $(cmsettingsprovider_tests_apk) $(cmsdk_api_coverage_dependencies) | $(ACP) $(call generate-cm-coverage-report,"CMSDK API Coverage Report",\ $(PRIVATE_TEST_CASES),html) @@ -57,8 +58,8 @@ endif # 3 - Format of the report define generate-cm-coverage-report $(hide) mkdir -p $(dir $@) - $(hide) $(PRIVATE_CTS_API_COVERAGE_EXE) -d $(PRIVATE_DEXDEPS_EXE) -a $(PRIVATE_API_XML_DESC) -f $(3) -o $@ $(2) -cm - @ echo $(1): file://$(ANDROID_BUILD_TOP)/$@ + $(hide) $(PRIVATE_CMSDK_API_COVERAGE_EXE) -d $(PRIVATE_DEXDEPS_EXE) -a $(PRIVATE_API_XML_DESC) -f $(3) -o $@ $(2) -cm + @ echo $(1): file://$@ endef # Reset temp vars diff --git a/build/tools/extract_utils.sh b/build/tools/extract_utils.sh new file mode 100644 index 0000000..6f2ff15 --- /dev/null +++ b/build/tools/extract_utils.sh @@ -0,0 +1,913 @@ +#!/bin/bash +# +# Copyright (C) 2016 The CyanogenMod Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +PRODUCT_COPY_FILES_LIST=() +PRODUCT_COPY_FILES_HASHES=() +PRODUCT_PACKAGES_LIST=() +PRODUCT_PACKAGES_HASHES=() +PACKAGE_LIST=() +VENDOR_STATE=-1 +VENDOR_RADIO_STATE=-1 +COMMON=-1 +ARCHES= +FULLY_DEODEXED=-1 + +TMPDIR="/tmp/extractfiles.$$" +mkdir "$TMPDIR" + +# +# cleanup +# +# kill our tmpfiles with fire on exit +# +function cleanup() { + rm -rf "${TMPDIR:?}" +} + +trap cleanup EXIT INT TERM ERR + +# +# setup_vendor +# +# $1: device name +# $2: vendor name +# $3: CM root directory +# $4: is common device - optional, default to false +# $5: cleanup - optional, default to true +# +# Must be called before any other functions can be used. This +# sets up the internal state for a new vendor configuration. +# +function setup_vendor() { + local DEVICE="$1" + if [ -z "$DEVICE" ]; then + echo "\$DEVICE must be set before including this script!" + exit 1 + fi + + export VENDOR="$2" + if [ -z "$VENDOR" ]; then + echo "\$VENDOR must be set before including this script!" + exit 1 + fi + + export CM_ROOT="$3" + if [ ! -d "$CM_ROOT" ]; then + echo "\$CM_ROOT must be set and valid before including this script!" + exit 1 + fi + + export OUTDIR=vendor/"$VENDOR"/"$DEVICE" + if [ ! -d "$CM_ROOT/$OUTDIR" ]; then + mkdir -p "$CM_ROOT/$OUTDIR" + fi + + export PRODUCTMK="$CM_ROOT"/"$OUTDIR"/"$DEVICE"-vendor.mk + export ANDROIDMK="$CM_ROOT"/"$OUTDIR"/Android.mk + export BOARDMK="$CM_ROOT"/"$OUTDIR"/BoardConfigVendor.mk + + if [ "$4" == "true" ] || [ "$4" == "1" ]; then + COMMON=1 + else + COMMON=0 + fi + + if [ "$5" == "true" ] || [ "$5" == "1" ]; then + VENDOR_STATE=1 + VENDOR_RADIO_STATE=1 + else + VENDOR_STATE=0 + VENDOR_RADIO_STATE=0 + fi +} + +# +# target_file: +# +# $1: colon delimited list +# +# Returns destination filename without args +# +function target_file() { + local LINE="$1" + local SPLIT=(${LINE//:/ }) + local COUNT=${#SPLIT[@]} + if [ "$COUNT" -gt "1" ]; then + if [[ "${SPLIT[1]}" =~ .*/.* ]]; then + printf '%s\n' "${SPLIT[1]}" + return 0 + fi + fi + printf '%s\n' "${SPLIT[0]}" +} + +# +# target_args: +# +# $1: colon delimited list +# +# Returns optional arguments (last value) for given target +# +function target_args() { + local LINE="$1" + local SPLIT=(${LINE//:/ }) + local COUNT=${#SPLIT[@]} + if [ "$COUNT" -gt "1" ]; then + if [[ ! "${SPLIT[$COUNT-1]}" =~ .*/.* ]]; then + printf '%s\n' "${SPLIT[$COUNT-1]}" + fi + fi +} + +# +# prefix_match: +# +# $1: the prefix to match on +# +# Internal function which loops thru the packages list and returns a new +# list containing the matched files with the prefix stripped away. +# +function prefix_match() { + local PREFIX="$1" + for FILE in "${PRODUCT_PACKAGES_LIST[@]}"; do + if [[ "$FILE" =~ ^"$PREFIX" ]]; then + printf '%s\n' "${FILE#$PREFIX}" + fi + done +} + +# +# write_product_copy_files: +# +# Creates the PRODUCT_COPY_FILES section in the product makefile for all +# items in the list which do not start with a dash (-). +# +function write_product_copy_files() { + local COUNT=${#PRODUCT_COPY_FILES_LIST[@]} + local TARGET= + local FILE= + local LINEEND= + + if [ "$COUNT" -eq "0" ]; then + return 0 + fi + + printf '%s\n' "PRODUCT_COPY_FILES += \\" >> "$PRODUCTMK" + for (( i=1; i<COUNT+1; i++ )); do + FILE="${PRODUCT_COPY_FILES_LIST[$i-1]}" + LINEEND=" \\" + if [ "$i" -eq "$COUNT" ]; then + LINEEND="" + fi + + TARGET=$(target_file "$FILE") + printf ' %s/proprietary/%s:system/%s%s\n' \ + "$OUTDIR" "$TARGET" "$TARGET" "$LINEEND" >> "$PRODUCTMK" + done + return 0 +} + +# +# write_packages: +# +# $1: The LOCAL_MODULE_CLASS for the given module list +# $2: "true" if this package is part of the vendor/ path +# $3: type-specific extra flags +# $4: Name of the array holding the target list +# +# Internal function which writes out the BUILD_PREBUILT stanzas +# for all modules in the list. This is called by write_product_packages +# after the modules are categorized. +# +function write_packages() { + + local CLASS="$1" + local VENDOR_PKG="$2" + local EXTRA="$3" + + # Yes, this is a horrible hack - we create a new array using indirection + local ARR_NAME="$4[@]" + local FILELIST=("${!ARR_NAME}") + + local FILE= + local ARGS= + local BASENAME= + local EXTENSION= + local PKGNAME= + local SRC= + + for P in "${FILELIST[@]}"; do + FILE=$(target_file "$P") + ARGS=$(target_args "$P") + + BASENAME=$(basename "$FILE") + EXTENSION=${BASENAME##*.} + PKGNAME=${BASENAME%.*} + + # Add to final package list + PACKAGE_LIST+=("$PKGNAME") + + SRC="proprietary" + if [ "$VENDOR_PKG" = "true" ]; then + SRC+="/vendor" + fi + + printf 'include $(CLEAR_VARS)\n' + printf 'LOCAL_MODULE := %s\n' "$PKGNAME" + printf 'LOCAL_MODULE_OWNER := %s\n' "$VENDOR" + if [ "$CLASS" = "SHARED_LIBRARIES" ]; then + if [ "$EXTRA" = "both" ]; then + printf 'LOCAL_SRC_FILES_64 := %s/lib64/%s\n' "$SRC" "$FILE" + printf 'LOCAL_SRC_FILES_32 := %s/lib/%s\n' "$SRC" "$FILE" + #if [ "$VENDOR_PKG" = "true" ]; then + # echo "LOCAL_MODULE_PATH_64 := \$(TARGET_OUT_VENDOR_SHARED_LIBRARIES)" + # echo "LOCAL_MODULE_PATH_32 := \$(2ND_TARGET_OUT_VENDOR_SHARED_LIBRARIES)" + #else + # echo "LOCAL_MODULE_PATH_64 := \$(TARGET_OUT_SHARED_LIBRARIES)" + # echo "LOCAL_MODULE_PATH_32 := \$(2ND_TARGET_OUT_SHARED_LIBRARIES)" + #fi + elif [ "$EXTRA" = "64" ]; then + printf 'LOCAL_SRC_FILES := %s/lib64/%s\n' "$SRC" "$FILE" + else + printf 'LOCAL_SRC_FILES := %s/lib/%s\n' "$SRC" "$FILE" + fi + if [ "$EXTRA" != "none" ]; then + printf 'LOCAL_MULTILIB := %s\n' "$EXTRA" + fi + elif [ "$CLASS" = "APPS" ]; then + if [ -z "$ARGS" ]; then + if [ "$EXTRA" = "priv-app" ]; then + SRC="$SRC/priv-app" + else + SRC="$SRC/app" + fi + fi + printf 'LOCAL_SRC_FILES := %s/%s\n' "$SRC" "$FILE" + local CERT=platform + if [ ! -z "$ARGS" ]; then + CERT="$ARGS" + fi + printf 'LOCAL_CERTIFICATE := %s\n' "$CERT" + elif [ "$CLASS" = "JAVA_LIBRARIES" ]; then + printf 'LOCAL_SRC_FILES := %s/framework/%s\n' "$SRC" "$FILE" + local CERT=platform + if [ ! -z "$ARGS" ]; then + CERT="$ARGS" + fi + printf 'LOCAL_CERTIFICATE := %s\n' "$CERT" + elif [ "$CLASS" = "ETC" ]; then + printf 'LOCAL_SRC_FILES := %s/etc/%s\n' "$SRC" "$FILE" + elif [ "$CLASS" = "EXECUTABLES" ]; then + if [ "$ARGS" = "rootfs" ]; then + SRC="$SRC/rootfs" + if [ "$EXTRA" = "sbin" ]; then + SRC="$SRC/sbin" + printf '%s\n' "LOCAL_MODULE_PATH := \$(TARGET_ROOT_OUT_SBIN)" + printf '%s\n' "LOCAL_UNSTRIPPED_PATH := \$(TARGET_ROOT_OUT_SBIN_UNSTRIPPED)" + fi + else + SRC="$SRC/bin" + fi + printf 'LOCAL_SRC_FILES := %s/%s\n' "$SRC" "$FILE" + unset EXTENSION + else + printf 'LOCAL_SRC_FILES := %s/%s\n' "$SRC" "$FILE" + fi + printf 'LOCAL_MODULE_TAGS := optional\n' + printf 'LOCAL_MODULE_CLASS := %s\n' "$CLASS" + if [ ! -z "$EXTENSION" ]; then + printf 'LOCAL_MODULE_SUFFIX := .%s\n' "$EXTENSION" + fi + if [ "$EXTRA" = "priv-app" ]; then + printf 'LOCAL_PRIVILEGED_MODULE := true\n' + fi + if [ "$VENDOR_PKG" = "true" ]; then + printf 'LOCAL_PROPRIETARY_MODULE := true\n' + fi + printf 'include $(BUILD_PREBUILT)\n\n' + done +} + +# +# write_product_packages: +# +# This function will create BUILD_PREBUILT entries in the +# Android.mk and associated PRODUCT_PACKAGES list in the +# product makefile for all files in the blob list which +# start with a single dash (-) character. +# +function write_product_packages() { + PACKAGE_LIST=() + + local COUNT=${#PRODUCT_PACKAGES_LIST[@]} + + if [ "$COUNT" = "0" ]; then + return 0 + fi + + # Figure out what's 32-bit, what's 64-bit, and what's multilib + # I really should not be doing this in bash due to shitty array passing :( + local T_LIB32=( $(prefix_match "lib/") ) + local T_LIB64=( $(prefix_match "lib64/") ) + local MULTILIBS=( $(comm -12 <(printf '%s\n' "${T_LIB32[@]}") <(printf '%s\n' "${T_LIB64[@]}")) ) + local LIB32=( $(comm -23 <(printf '%s\n' "${T_LIB32[@]}") <(printf '%s\n' "${MULTILIBS[@]}")) ) + local LIB64=( $(comm -23 <(printf '%s\n' "${T_LIB64[@]}") <(printf '%s\n' "${MULTILIBS[@]}")) ) + + if [ "${#MULTILIBS[@]}" -gt "0" ]; then + write_packages "SHARED_LIBRARIES" "false" "both" "MULTILIBS" >> "$ANDROIDMK" + fi + if [ "${#LIB32[@]}" -gt "0" ]; then + write_packages "SHARED_LIBRARIES" "false" "32" "LIB32" >> "$ANDROIDMK" + fi + if [ "${#LIB64[@]}" -gt "0" ]; then + write_packages "SHARED_LIBRARIES" "false" "64" "LIB64" >> "$ANDROIDMK" + fi + + local T_V_LIB32=( $(prefix_match "vendor/lib/") ) + local T_V_LIB64=( $(prefix_match "vendor/lib64/") ) + local V_MULTILIBS=( $(comm -12 <(printf '%s\n' "${T_V_LIB32[@]}") <(printf '%s\n' "${T_V_LIB64[@]}")) ) + local V_LIB32=( $(comm -23 <(printf '%s\n' "${T_V_LIB32[@]}") <(printf '%s\n' "${V_MULTILIBS[@]}")) ) + local V_LIB64=( $(comm -23 <(printf '%s\n' "${T_V_LIB64[@]}") <(printf '%s\n' "${V_MULTILIBS[@]}")) ) + + if [ "${#V_MULTILIBS[@]}" -gt "0" ]; then + write_packages "SHARED_LIBRARIES" "true" "both" "V_MULTILIBS" >> "$ANDROIDMK" + fi + if [ "${#V_LIB32[@]}" -gt "0" ]; then + write_packages "SHARED_LIBRARIES" "true" "32" "V_LIB32" >> "$ANDROIDMK" + fi + if [ "${#V_LIB64[@]}" -gt "0" ]; then + write_packages "SHARED_LIBRARIES" "true" "64" "V_LIB64" >> "$ANDROIDMK" + fi + + # Apps + local APPS=( $(prefix_match "app/") ) + if [ "${#APPS[@]}" -gt "0" ]; then + write_packages "APPS" "false" "" "APPS" >> "$ANDROIDMK" + fi + local PRIV_APPS=( $(prefix_match "priv-app/") ) + if [ "${#PRIV_APPS[@]}" -gt "0" ]; then + write_packages "APPS" "false" "priv-app" "PRIV_APPS" >> "$ANDROIDMK" + fi + local V_APPS=( $(prefix_match "vendor/app/") ) + if [ "${#V_APPS[@]}" -gt "0" ]; then + write_packages "APPS" "true" "" "V_APPS" >> "$ANDROIDMK" + fi + local V_PRIV_APPS=( $(prefix_match "vendor/priv-app/") ) + if [ "${#V_PRIV_APPS[@]}" -gt "0" ]; then + write_packages "APPS" "true" "priv-app" "V_PRIV_APPS" >> "$ANDROIDMK" + fi + + # Framework + local FRAMEWORK=( $(prefix_match "framework/") ) + if [ "${#FRAMEWORK[@]}" -gt "0" ]; then + write_packages "JAVA_LIBRARIES" "false" "" "FRAMEWORK" >> "$ANDROIDMK" + fi + + # Etc + local ETC=( $(prefix_match "etc/") ) + if [ "${#ETC[@]}" -gt "0" ]; then + write_packages "ETC" "false" "" "ETC" >> "$ANDROIDMK" + fi + local V_ETC=( $(prefix_match "vendor/etc/") ) + if [ "${#V_ETC[@]}" -gt "0" ]; then + write_packages "ETC" "false" "" "V_ETC" >> "$ANDROIDMK" + fi + + # Executables + local BIN=( $(prefix_match "bin/") ) + if [ "${#BIN[@]}" -gt "0" ]; then + write_packages "EXECUTABLES" "false" "" "BIN" >> "$ANDROIDMK" + fi + local V_BIN=( $(prefix_match "vendor/bin/") ) + if [ "${#V_BIN[@]}" -gt "0" ]; then + write_packages "EXECUTABLES" "true" "" "V_BIN" >> "$ANDROIDMK" + fi + local SBIN=( $(prefix_match "sbin/") ) + if [ "${#SBIN[@]}" -gt "0" ]; then + write_packages "EXECUTABLES" "false" "sbin" "SBIN" >> "$ANDROIDMK" + fi + + + # Actually write out the final PRODUCT_PACKAGES list + local PACKAGE_COUNT=${#PACKAGE_LIST[@]} + + if [ "$PACKAGE_COUNT" -eq "0" ]; then + return 0 + fi + + printf '\n%s\n' "PRODUCT_PACKAGES += \\" >> "$PRODUCTMK" + for (( i=1; i<PACKAGE_COUNT+1; i++ )); do + local LINEEND=" \\" + if [ "$i" -eq "$PACKAGE_COUNT" ]; then + LINEEND="" + fi + printf ' %s%s\n' "${PACKAGE_LIST[$i-1]}" "$LINEEND" >> "$PRODUCTMK" + done +} + +# +# write_header: +# +# $1: file which will be written to +# +# writes out the copyright header with the current year. +# note that this is not an append operation, and should +# be executed first! +# +function write_header() { + YEAR=$(date +"%Y") + + [ "$COMMON" -eq 1 ] && local DEVICE="$DEVICE_COMMON" + + cat << EOF > $1 +# Copyright (C) $YEAR The CyanogenMod Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This file is generated by device/$VENDOR/$DEVICE/setup-makefiles.sh + +EOF +} + +# +# write_headers: +# +# $1: devices falling under common to be added to guard - optional +# +# Calls write_header for each of the makefiles and creates +# the initial path declaration and device guard for the +# Android.mk +# +function write_headers() { + write_header "$ANDROIDMK" + cat << EOF >> "$ANDROIDMK" +LOCAL_PATH := \$(call my-dir) + +EOF + if [ "$COMMON" -ne 1 ]; then + cat << EOF >> "$ANDROIDMK" +ifeq (\$(TARGET_DEVICE),$DEVICE) + +EOF + else + if [ -z "$1" ]; then + echo "Argument with devices to be added to guard must be set!" + exit 1 + fi + cat << EOF >> "$ANDROIDMK" +ifneq (\$(filter $1,\$(TARGET_DEVICE)),) + +EOF + fi + + write_header "$BOARDMK" + write_header "$PRODUCTMK" +} + +# +# write_footers: +# +# Closes the inital guard and any other finalization tasks. Must +# be called as the final step. +# +function write_footers() { + cat << EOF >> "$ANDROIDMK" +endif +EOF +} + +# Return success if adb is up and not in recovery +function _adb_connected { + { + if [[ "$(adb get-state)" == device && + "$(adb shell test -e /sbin/recovery; echo $?)" == 0 ]] + then + return 0 + fi + } 2>/dev/null + + return 1 +}; + +# +# parse_file_list: +# +# $1: input file +# +# Sets PRODUCT_PACKAGES and PRODUCT_COPY_FILES while parsing the input file +# +function parse_file_list() { + if [ -z "$1" ]; then + echo "An input file is expected!" + exit 1 + elif [ ! -f "$1" ]; then + echo "Input file "$1" does not exist!" + exit 1 + fi + + PRODUCT_PACKAGES_LIST=() + PRODUCT_PACKAGES_HASHES=() + PRODUCT_COPY_FILES_LIST=() + PRODUCT_COPY_FILES_HASHES=() + + while read -r line; do + if [ -z "$line" ]; then continue; fi + + # If the line has a pipe delimiter, a sha1 hash should follow. + # This indicates the file should be pinned and not overwritten + # when extracting files. + local SPLIT=(${line//\|/ }) + local COUNT=${#SPLIT[@]} + local SPEC=${SPLIT[0]} + local HASH="x" + if [ "$COUNT" -gt "1" ]; then + HASH=${SPLIT[1]} + fi + + # if line starts with a dash, it needs to be packaged + if [[ "$SPEC" =~ ^- ]]; then + PRODUCT_PACKAGES_LIST+=("${SPEC#-}") + PRODUCT_PACKAGES_HASHES+=("$HASH") + else + PRODUCT_COPY_FILES_LIST+=("$SPEC") + PRODUCT_COPY_FILES_HASHES+=("$HASH") + fi + + done < <(egrep -v '(^#|^[[:space:]]*$)' "$1" | sort | uniq) +} + +# +# write_makefiles: +# +# $1: file containing the list of items to extract +# +# Calls write_product_copy_files and write_product_packages on +# the given file and appends to the Android.mk as well as +# the product makefile. +# +function write_makefiles() { + parse_file_list "$1" + write_product_copy_files + write_product_packages +} + +# +# append_firmware_calls_to_makefiles: +# +# Appends to Android.mk the calls to all images present in radio folder +# (filesmap file used by releasetools to map firmware images should be kept in the device tree) +# +function append_firmware_calls_to_makefiles() { + cat << EOF >> "$ANDROIDMK" +ifeq (\$(LOCAL_PATH)/radio, \$(wildcard \$(LOCAL_PATH)/radio)) + +RADIO_FILES := \$(wildcard \$(LOCAL_PATH)/radio/*) +\$(foreach f, \$(notdir \$(RADIO_FILES)), \\ + \$(call add-radio-file,radio/\$(f))) +\$(call add-radio-file,../../../device/$VENDOR/$DEVICE/radio/filesmap) + +endif + +EOF +} + +# +# get_file: +# +# $1: input file +# $2: target file/folder +# $3: source of the file (can be "adb" or a local folder) +# +# Silently extracts the input file to defined target +# Returns success if file can be pulled from the device or found locally +# +function get_file() { + local SRC="$3" + + if [ "$SRC" = "adb" ]; then + # try to pull + adb pull "$1" "$2" >/dev/null 2>&1 && return 0 + + return 1 + else + # try to copy + cp "$SRC/$1" "$2" 2>/dev/null && return 0 + + return 1 + fi +}; + +# +# oat2dex: +# +# $1: extracted apk|jar (to check if deodex is required) +# $2: odexed apk|jar to deodex +# $3: source of the odexed apk|jar +# +# Convert apk|jar .odex in the corresposing classes.dex +# +function oat2dex() { + local CM_TARGET="$1" + local OEM_TARGET="$2" + local SRC="$3" + local TARGET= + local OAT= + + if [ -z "$BAKSMALIJAR" ] || [ -z "$SMALIJAR" ]; then + export BAKSMALIJAR="$CM_ROOT"/vendor/cm/build/tools/smali/baksmali.jar + export SMALIJAR="$CM_ROOT"/vendor/cm/build/tools/smali/smali.jar + fi + + # Extract existing boot.oats to the temp folder + if [ -z "$ARCHES" ]; then + echo "Checking if system is odexed and extracting boot.oats, if applicable. This may take a while..." + for ARCH in "arm64" "arm" "x86_64" "x86"; do + if get_file "system/framework/$ARCH/boot.oat" "$TMPDIR/boot_$ARCH.oat" "$SRC"; then + ARCHES+="$ARCH " + fi + done + fi + + if [ -z "$ARCHES" ]; then + FULLY_DEODEXED=1 && return 0 # system is fully deodexed, return + fi + + if [ ! -f "$CM_TARGET" ]; then + return; + fi + + if grep "classes.dex" "$CM_TARGET" >/dev/null; then + return 0 # target apk|jar is already odexed, return + fi + + for ARCH in $ARCHES; do + BOOTOAT="$TMPDIR/boot_$ARCH.oat" + + local OAT="$(dirname "$OEM_TARGET")/oat/$ARCH/$(basename "$OEM_TARGET" ."${OEM_TARGET##*.}").odex" + + if get_file "$OAT" "$TMPDIR" "$SRC"; then + java -jar "$BAKSMALIJAR" -x -o "$TMPDIR/dexout" -c "$BOOTOAT" -d "$TMPDIR" "$TMPDIR/$(basename "$OAT")" + elif [[ "$CM_TARGET" =~ .jar$ ]]; then + # try to extract classes.dex from boot.oat for framework jars + java -jar "$BAKSMALIJAR" -x -o "$TMPDIR/dexout" -c "$BOOTOAT" -d "$TMPDIR" -e "/$OEM_TARGET" "$BOOTOAT" + else + continue + fi + + java -jar "$SMALIJAR" "$TMPDIR/dexout" -o "$TMPDIR/classes.dex" && break + done + + rm -rf "$TMPDIR/dexout" +} + +# +# init_adb_connection: +# +# Starts adb server and waits for the device +# +function init_adb_connection() { + adb start-server # Prevent unexpected starting server message from adb get-state in the next line + if ! _adb_connected; then + echo "No device is online. Waiting for one..." + echo "Please connect USB and/or enable USB debugging" + until _adb_connected; do + sleep 1 + done + echo "Device Found." + fi + + # Retrieve IP and PORT info if we're using a TCP connection + TCPIPPORT=$(adb devices | egrep '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+[^0-9]+' \ + | head -1 | awk '{print $1}') + adb root &> /dev/null + sleep 0.3 + if [ -n "$TCPIPPORT" ]; then + # adb root just killed our connection + # so reconnect... + adb connect "$TCPIPPORT" + fi + adb wait-for-device &> /dev/null + sleep 0.3 +} + +# +# fix_xml: +# +# $1: xml file to fix +# +function fix_xml() { + local XML="$1" + local TEMP_XML="$TMPDIR/`basename "$XML"`.temp" + + grep '^<?xml version' "$XML" > "$TEMP_XML" + grep -v '^<?xml version' "$XML" >> "$TEMP_XML" + + mv "$TEMP_XML" "$XML" +} + +# +# extract: +# +# $1: file containing the list of items to extract +# $2: path to extracted system folder, or "adb" to extract from device +# +function extract() { + if [ -z "$OUTDIR" ]; then + echo "Output dir not set!" + exit 1 + fi + + parse_file_list "$1" + + # Allow failing, so we can try $DEST and/or $FILE + set +e + + local FILELIST=( ${PRODUCT_COPY_FILES_LIST[@]} ${PRODUCT_PACKAGES_LIST[@]} ) + local HASHLIST=( ${PRODUCT_COPY_FILES_HASHES[@]} ${PRODUCT_PACKAGES_HASHES[@]} ) + local COUNT=${#FILELIST[@]} + local SRC="$2" + local OUTPUT_ROOT="$CM_ROOT"/"$OUTDIR"/proprietary + local OUTPUT_TMP="$TMPDIR"/"$OUTDIR"/proprietary + + if [ "$SRC" = "adb" ]; then + init_adb_connection + fi + + if [ "$VENDOR_STATE" -eq "0" ]; then + echo "Cleaning output directory ($OUTPUT_ROOT).." + rm -rf "${OUTPUT_TMP:?}" + mkdir -p "${OUTPUT_TMP:?}" + mv "${OUTPUT_ROOT:?}/"* "${OUTPUT_TMP:?}/" + VENDOR_STATE=1 + fi + + echo "Extracting $COUNT files in $1 from $SRC:" + + for (( i=1; i<COUNT+1; i++ )); do + + local FROM=$(target_file "${FILELIST[$i-1]}") + local ARGS=$(target_args "${FILELIST[$i-1]}") + local SPLIT=(${FILELIST[$i-1]//:/ }) + local FILE="${SPLIT[0]#-}" + local OUTPUT_DIR="$OUTPUT_ROOT" + local TMP_DIR="$OUTPUT_TMP" + local TARGET= + + if [ "$ARGS" = "rootfs" ]; then + TARGET="$FROM" + OUTPUT_DIR="$OUTPUT_DIR/rootfs" + TMP_DIR="$TMP_DIR/rootfs" + else + TARGET="system/$FROM" + FILE="system/$FILE" + fi + + if [ "$SRC" = "adb" ]; then + printf ' - %s .. ' "/$TARGET" + else + printf ' - %s \n' "/$TARGET" + fi + + local DIR=$(dirname "$FROM") + if [ ! -d "$OUTPUT_DIR/$DIR" ]; then + mkdir -p "$OUTPUT_DIR/$DIR" + fi + local DEST="$OUTPUT_DIR/$FROM" + + if [ "$SRC" = "adb" ]; then + # Try CM target first + adb pull "/$TARGET" "$DEST" + # if file does not exist try OEM target + if [ "$?" != "0" ]; then + adb pull "/$FILE" "$DEST" + fi + else + # Try OEM target first + if [ -f "$SRC/$FILE" ]; then + cp "$SRC/$FILE" "$DEST" + # if file does not exist try CM target + elif [ -f "$SRC/$TARGET" ]; then + cp "$SRC/$TARGET" "$DEST" + else + printf ' !! file not found in source\n' + fi + fi + + if [ "$?" == "0" ]; then + # Deodex apk|jar if that's the case + if [[ "$FULLY_DEODEXED" -ne "1" && "$DEST" =~ .(apk|jar)$ ]]; then + oat2dex "$DEST" "$FILE" "$SRC" + if [ -f "$TMPDIR/classes.dex" ]; then + zip -gjq "$DEST" "$TMPDIR/classes.dex" + rm "$TMPDIR/classes.dex" + printf ' (updated %s from odex files)\n' "/$FILE" + fi + elif [[ "$DEST" =~ .xml$ ]]; then + fix_xml "$DEST" + fi + fi + + # Check pinned files + local HASH="${HASHLIST[$i-1]}" + if [ ! -z "$HASH" ] && [ "$HASH" != "x" ]; then + local KEEP="" + local TMP="$TMP_DIR/$FROM" + if [ -f "$TMP" ]; then + if [ ! -f "$DEST" ]; then + KEEP="1" + else + local DEST_HASH=$(sha1sum "$DEST" | awk '{print $1}' ) + if [ "$DEST_HASH" != "$HASH" ]; then + KEEP="1" + fi + fi + if [ "$KEEP" = "1" ]; then + local TMP_HASH=$(sha1sum "$TMP" | awk '{print $1}' ) + if [ "$TMP_HASH" = "$HASH" ]; then + printf ' + (keeping pinned file with hash %s)\n' "$HASH" + cp -p "$TMP" "$DEST" + fi + fi + fi + fi + + if [ -f "$DEST" ]; then + local TYPE="${DIR##*/}" + if [ "$TYPE" = "bin" -o "$TYPE" = "sbin" ]; then + chmod 755 "$DEST" + else + chmod 644 "$DEST" + fi + fi + + done + + # Don't allow failing + set -e +} + +# +# extract_firmware: +# +# $1: file containing the list of items to extract +# $2: path to extracted radio folder +# +function extract_firmware() { + if [ -z "$OUTDIR" ]; then + echo "Output dir not set!" + exit 1 + fi + + parse_file_list "$1" + + # Don't allow failing + set -e + + local FILELIST=( ${PRODUCT_COPY_FILES_LIST[@]} ) + local COUNT=${#FILELIST[@]} + local SRC="$2" + local OUTPUT_DIR="$CM_ROOT"/"$OUTDIR"/radio + + if [ "$VENDOR_RADIO_STATE" -eq "0" ]; then + echo "Cleaning firmware output directory ($OUTPUT_DIR).." + rm -rf "${OUTPUT_DIR:?}/"* + VENDOR_RADIO_STATE=1 + fi + + echo "Extracting $COUNT files in $1 from $SRC:" + + for (( i=1; i<COUNT+1; i++ )); do + local FILE="${FILELIST[$i-1]}" + printf ' - %s \n' "/radio/$FILE" + + if [ ! -d "$OUTPUT_DIR" ]; then + mkdir -p "$OUTPUT_DIR" + fi + cp "$SRC/$FILE" "$OUTPUT_DIR/$FILE" + chmod 644 "$OUTPUT_DIR/$FILE" + done +} diff --git a/build/tools/smali/NOTICE b/build/tools/smali/NOTICE new file mode 100644 index 0000000..401799f --- /dev/null +++ b/build/tools/smali/NOTICE @@ -0,0 +1,105 @@ +The majority of smali/baksmali is written and copyrighted by me (Ben Gruver) +and released under the following license: + +******************************************************************************* +Copyright (c) 2010 Ben Gruver (JesusFreke) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +******************************************************************************* + + +Unless otherwise stated in the code/commit message, any changes with the +committer of bgruv@google.com is copyrighted by Google Inc. and released +under the following license: + +******************************************************************************* +Copyright 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +******************************************************************************* + + +Various portions of the code are taken from the Android Open Source Project, +and are used in accordance with the following license: + +******************************************************************************* +Copyright (C) 2007 The Android Open Source Project + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +******************************************************************************* + + +Some parts of the smalidea plugin are based on code from the IDEA project, per the +following license + +******************************************************************************* +Copyright 2000-2014 JetBrains s.r.o. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +******************************************************************************* diff --git a/build/tools/smali/baksmali.jar b/build/tools/smali/baksmali.jar Binary files differnew file mode 100644 index 0000000..fe354fb --- /dev/null +++ b/build/tools/smali/baksmali.jar diff --git a/build/tools/smali/smali.jar b/build/tools/smali/smali.jar Binary files differnew file mode 100644 index 0000000..5459a87 --- /dev/null +++ b/build/tools/smali/smali.jar diff --git a/charger/Android.mk b/charger/Android.mk new file mode 100644 index 0000000..d637284 --- /dev/null +++ b/charger/Android.mk @@ -0,0 +1,70 @@ +LOCAL_PATH := $(call my-dir) + +# Set healthd_density to the density bucket of the device. +healthd_density := unknown +ifneq (,$(TARGET_RECOVERY_DENSITY)) +healthd_density := $(filter %dpi,$(TARGET_RECOVERY_DENSITY)) +else +ifneq (,$(PRODUCT_AAPT_PREF_CONFIG)) +# If PRODUCT_AAPT_PREF_CONFIG includes a dpi bucket, then use that value. +healthd_density := $(filter %dpi,$(PRODUCT_AAPT_PREF_CONFIG)) +else +# Otherwise, use the default medium density. +healthd_density := mdpi +endif +endif + +include $(CLEAR_VARS) +LOCAL_SRC_FILES := healthd_board_cm.cpp +LOCAL_MODULE := libhealthd.cm +LOCAL_CFLAGS := -Werror +LOCAL_C_INCLUDES := \ + system/core/healthd \ + bootable/recovery +ifneq ($(BACKLIGHT_PATH),) + LOCAL_CFLAGS += -DHEALTHD_BACKLIGHT_PATH=\"$(BACKLIGHT_PATH)\" +endif +ifneq ($(SECONDARY_BACKLIGHT_PATH),) + LOCAL_CFLAGS += -DHEALTHD_SECONDARY_BACKLIGHT_PATH=\"$(SECONDARY_BACKLIGHT_PATH)\" +endif +ifneq ($(HEALTHD_BACKLIGHT_LEVEL),) + LOCAL_CFLAGS += -DHEALTHD_BACKLIGHT_LEVEL=$(HEALTHD_BACKLIGHT_LEVEL) +endif +include $(BUILD_STATIC_LIBRARY) + +include $(CLEAR_VARS) +LOCAL_MODULE := font_log.png +LOCAL_SRC_FILES := fonts/$(healthd_density)/font_log.png +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)/res/images +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) + +define _add-charger-image +include $$(CLEAR_VARS) +LOCAL_MODULE := vendor_cm_charger_$(notdir $(1)) +LOCAL_MODULE_STEM := $(notdir $(1)) +_img_modules += $$(LOCAL_MODULE) +LOCAL_SRC_FILES := $1 +LOCAL_MODULE_TAGS := optional +LOCAL_MODULE_CLASS := ETC +LOCAL_MODULE_PATH := $$(TARGET_ROOT_OUT)/res/images/charger +include $$(BUILD_PREBUILT) +endef + +_img_modules := +_images := +$(foreach _img, $(call find-subdir-subdir-files, "images/$(healthd_density)", "*.png"), \ + $(eval $(call _add-charger-image,$(_img)))) + +include $(CLEAR_VARS) +LOCAL_MODULE := cm_charger_res_images +LOCAL_MODULE_TAGS := optional +LOCAL_REQUIRED_MODULES := $(_img_modules) +LOCAL_OVERRIDES_PACKAGES := charger_res_images +include $(BUILD_PHONY_PACKAGE) + +_add-charger-image := +_img_modules := diff --git a/charger/fonts/560dpi b/charger/fonts/560dpi new file mode 120000 index 0000000..17ef829 --- /dev/null +++ b/charger/fonts/560dpi @@ -0,0 +1 @@ +xxhdpi
\ No newline at end of file diff --git a/charger/fonts/640dpi b/charger/fonts/640dpi new file mode 120000 index 0000000..af2d1fe --- /dev/null +++ b/charger/fonts/640dpi @@ -0,0 +1 @@ +xxxhdpi
\ No newline at end of file diff --git a/charger/fonts/hdpi/font_log.png b/charger/fonts/hdpi/font_log.png Binary files differnew file mode 100644 index 0000000..ddf9bc7 --- /dev/null +++ b/charger/fonts/hdpi/font_log.png diff --git a/charger/fonts/ldpi/font_log.png b/charger/fonts/ldpi/font_log.png Binary files differnew file mode 100644 index 0000000..72fa8cb --- /dev/null +++ b/charger/fonts/ldpi/font_log.png diff --git a/charger/fonts/mdpi/font_log.png b/charger/fonts/mdpi/font_log.png Binary files differnew file mode 100644 index 0000000..d727fa1 --- /dev/null +++ b/charger/fonts/mdpi/font_log.png diff --git a/charger/fonts/xhdpi/font_log.png b/charger/fonts/xhdpi/font_log.png Binary files differnew file mode 100644 index 0000000..9c16b77 --- /dev/null +++ b/charger/fonts/xhdpi/font_log.png diff --git a/charger/fonts/xxhdpi/font_log.png b/charger/fonts/xxhdpi/font_log.png Binary files differnew file mode 100644 index 0000000..5d122b7 --- /dev/null +++ b/charger/fonts/xxhdpi/font_log.png diff --git a/charger/fonts/xxxhdpi/font_log.png b/charger/fonts/xxxhdpi/font_log.png Binary files differnew file mode 100644 index 0000000..60dacec --- /dev/null +++ b/charger/fonts/xxxhdpi/font_log.png diff --git a/charger/healthd_board_cm.cpp b/charger/healthd_board_cm.cpp new file mode 100644 index 0000000..f5e0ed1 --- /dev/null +++ b/charger/healthd_board_cm.cpp @@ -0,0 +1,419 @@ +/* + * Copyright (C) 2016 The CyanogenMod Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <errno.h> +#include <fcntl.h> +#include <stdbool.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> +#include <time.h> +#include <unistd.h> + +#include <cutils/android_reboot.h> +#include <cutils/klog.h> +#include <cutils/misc.h> +#include <cutils/uevent.h> +#include <cutils/properties.h> + +#include <pthread.h> +#include <linux/android_alarm.h> +#include <sys/timerfd.h> +#include <linux/rtc.h> + +#include "healthd.h" +#include "minui/minui.h" + +#define LOGE(x...) do { KLOG_ERROR("charger", x); } while (0) +#define LOGW(x...) do { KLOG_WARNING("charger", x); } while (0) +#define LOGI(x...) do { KLOG_INFO("charger", x); } while (0) +#define LOGV(x...) do { KLOG_DEBUG("charger", x); } while (0) + +struct frame { + int min_capacity; + GRSurface *surface; +}; + +struct animation { + struct frame *frames; + int cur_frame; + int num_frames; +}; + +static struct animation anim = { + .frames = NULL, + .cur_frame = 0, + .num_frames = 0, +}; + +static bool font_inited; + +static int draw_surface_centered(GRSurface* surface) +{ + int w, h, x, y; + + w = gr_get_width(surface); + h = gr_get_height(surface); + x = (gr_fb_width() - w) / 2 ; + y = (gr_fb_height() - h) / 2 ; + + gr_blit(surface, 0, 0, w, h, x, y); + return y + h; +} + +#define STR_LEN 64 +static void draw_capacity(int capacity) +{ + char cap_str[STR_LEN]; + snprintf(cap_str, (STR_LEN - 1), "%d%%", capacity); + + struct frame *f = &anim.frames[0]; + int font_x, font_y; + gr_font_size(&font_x, &font_y); + int w = gr_measure(cap_str); + int h = gr_get_height(f->surface); + int x = (gr_fb_width() - w) / 2; + int y = (gr_fb_height() + h) / 2; + + gr_color(255, 255, 255, 255); + gr_text(x, y + font_y / 2, cap_str, 0); +} + +#ifdef QCOM_HARDWARE +enum alarm_time_type { + ALARM_TIME, + RTC_TIME, +}; + +/* + * shouldn't be changed after + * reading from alarm register + */ +static time_t alm_secs; + +static int alarm_get_time(enum alarm_time_type time_type, + time_t *secs) +{ + struct tm tm; + unsigned int cmd; + int rc, fd = -1; + + if (!secs) + return -1; + + fd = open("/dev/rtc0", O_RDONLY); + if (fd < 0) { + LOGE("Can't open rtc devfs node\n"); + return -1; + } + + switch (time_type) { + case ALARM_TIME: + cmd = RTC_ALM_READ; + break; + case RTC_TIME: + cmd = RTC_RD_TIME; + break; + default: + LOGE("Invalid time type\n"); + goto err; + } + + rc = ioctl(fd, cmd, &tm); + if (rc < 0) { + LOGE("Unable to get time\n"); + goto err; + } + + *secs = mktime(&tm) + tm.tm_gmtoff; + if (*secs < 0) { + LOGE("Invalid seconds = %ld\n", *secs); + goto err; + } + + close(fd); + return 0; + +err: + close(fd); + return -1; +} + +#define ERR_SECS 2 +static int alarm_is_alm_expired() +{ + int rc; + time_t rtc_secs; + + rc = alarm_get_time(RTC_TIME, &rtc_secs); + if (rc < 0) + return 0; + + return (alm_secs >= rtc_secs - ERR_SECS && + alm_secs <= rtc_secs + ERR_SECS) ? 1 : 0; +} + +static int timerfd_set_reboot_time_and_wait(time_t secs) +{ + int fd; + int ret = -1; + fd = timerfd_create(CLOCK_REALTIME_ALARM, 0); + if (fd < 0) { + LOGE("Can't open timerfd alarm node\n"); + goto err_return; + } + + struct itimerspec spec; + memset(&spec, 0, sizeof(spec)); + spec.it_value.tv_sec = secs; + + if (timerfd_settime(fd, 0 /* relative */, &spec, NULL)) { + LOGE("Can't set timerfd alarm\n"); + goto err_close; + } + + uint64_t unused; + if (read(fd, &unused, sizeof(unused)) < 0) { + LOGE("Wait alarm error\n"); + goto err_close; + } + + ret = 0; +err_close: + close(fd); +err_return: + return ret; +} + +static int alarm_set_reboot_time_and_wait(time_t secs) +{ + int rc, fd; + struct timespec ts; + + fd = open("/dev/alarm", O_RDWR); + if (fd < 0) { + LOGE("Can't open alarm devfs node, trying timerfd\n"); + return timerfd_set_reboot_time_and_wait(secs); + } + + /* get the elapsed realtime from boot time to now */ + rc = ioctl(fd, ANDROID_ALARM_GET_TIME( + ANDROID_ALARM_ELAPSED_REALTIME_WAKEUP), &ts); + if (rc < 0) { + LOGE("Unable to get elapsed realtime\n"); + goto err; + } + + /* calculate the elapsed time from boot time to reboot time */ + ts.tv_sec += secs; + ts.tv_nsec = 0; + + rc = ioctl(fd, ANDROID_ALARM_SET( + ANDROID_ALARM_ELAPSED_REALTIME_WAKEUP), &ts); + if (rc < 0) { + LOGE("Unable to set reboot time to %ld\n", secs); + goto err; + } + + do { + rc = ioctl(fd, ANDROID_ALARM_WAIT); + } while ((rc < 0 && errno == EINTR) || !alarm_is_alm_expired()); + + if (rc <= 0) { + LOGE("Unable to wait on alarm\n"); + goto err; + } + + close(fd); + return 0; + +err: + if (fd >= 0) + close(fd); + return -1; +} + +static void *alarm_thread(void *) +{ + time_t rtc_secs, rb_secs; + int rc; + + /* + * to support power off alarm, the time + * stored in alarm register at latest + * shutdown time should be some time + * earlier than the actual alarm time + * set by user + */ + rc = alarm_get_time(ALARM_TIME, &alm_secs); + LOGI("RTC Alarm %ld\n", alm_secs); + if (rc < 0 || !alm_secs) + goto err; + + rc = alarm_get_time(RTC_TIME, &rtc_secs); + LOGI("RTC Clock %ld\n", rtc_secs); + if (rc < 0) + goto err; + + /* + * calculate the reboot time after which + * the phone will reboot + */ + rb_secs = alm_secs - rtc_secs; + if (rb_secs <= 0) + goto err; + + rc = alarm_set_reboot_time_and_wait(rb_secs); + if (rc < 0) + goto err; + + LOGI("Exit from power off charging, reboot the phone!\n"); + android_reboot(ANDROID_RB_RESTART, 0, 0); + +err: + LOGE("Exit from alarm thread\n"); + return NULL; +} +#endif + +void healthd_board_init(struct healthd_config*) +{ + pthread_t tid; + char value[PROP_VALUE_MAX]; + int rc = 0, scale_count = 0, i; + GRSurface **scale_frames; + + rc = res_create_multi_display_surface("charger/cm_battery_scale", + &scale_count, &scale_frames); + if (rc < 0) { + LOGE("%s: Unable to load battery scale image", __func__); + return; + } + + anim.frames = new frame[scale_count]; + anim.num_frames = scale_count; + for (i = 0; i < anim.num_frames; i++) { + anim.frames[i].surface = scale_frames[i]; + anim.frames[i].min_capacity = 100/(scale_count-1) * i; + } + +#ifdef QCOM_HARDWARE + property_get("ro.bootmode", value, ""); + if (!strcmp("charger", value)) { + rc = pthread_create(&tid, NULL, alarm_thread, NULL); + if (rc < 0) + LOGE("Create alarm thread failed\n"); + } +#endif +} + +int healthd_board_battery_update(struct android::BatteryProperties*) +{ + // return 0 to log periodic polled battery status to kernel log + return 1; +} + +void healthd_board_mode_charger_draw_battery( + struct android::BatteryProperties *batt_prop) +{ + int start_frame = 0; + int capacity = -1; + + if (!font_inited) { + gr_set_font("log"); + font_inited = true; + } + + if (batt_prop && batt_prop->batteryLevel >= 0) { + capacity = batt_prop->batteryLevel; + } + + if (anim.num_frames == 0 || capacity < 0) { + LOGE("%s: Unable to draw battery", __func__); + return; + } + + // Find starting frame to display based on current capacity + for (start_frame = 1; start_frame < anim.num_frames; start_frame++) { + if (capacity < anim.frames[start_frame].min_capacity) + break; + } + // Always start from the level just below the current capacity + start_frame--; + + if (anim.cur_frame < start_frame) + anim.cur_frame = start_frame; + + draw_surface_centered(anim.frames[anim.cur_frame].surface); + draw_capacity(capacity); + // Move to next frame, with max possible frame at max_idx + anim.cur_frame = ((anim.cur_frame + 1) % anim.num_frames); +} + +void healthd_board_mode_charger_battery_update( + struct android::BatteryProperties*) +{ +} + +#ifdef HEALTHD_BACKLIGHT_PATH +#ifndef HEALTHD_BACKLIGHT_LEVEL +#define HEALTHD_BACKLIGHT_LEVEL 100 +#endif + +void healthd_board_mode_charger_set_backlight(bool on) +{ + int fd; + char buffer[10]; + + memset(buffer, '\0', sizeof(buffer)); + fd = open(HEALTHD_BACKLIGHT_PATH, O_RDWR); + if (fd < 0) { + LOGE("Could not open backlight node : %s\n", strerror(errno)); + return; + } + LOGV("Enabling backlight\n"); + snprintf(buffer, sizeof(buffer), "%d\n", on ? HEALTHD_BACKLIGHT_LEVEL : 0); + if (write(fd, buffer, strlen(buffer)) < 0) { + LOGE("Could not write to backlight : %s\n", strerror(errno)); + } + close(fd); + +#ifdef HEALTHD_SECONDARY_BACKLIGHT_PATH + fd = open(HEALTHD_SECONDARY_BACKLIGHT_PATH, O_RDWR); + if (fd < 0) { + LOGE("Could not open second backlight node : %s\n", strerror(errno)); + return; + } + LOGV("Enabling secondary backlight\n"); + if (write(fd, buffer, strlen(buffer)) < 0) { + LOGE("Could not write to second backlight : %s\n", strerror(errno)); + return; + } + close(fd); +#endif +} + +#else +void healthd_board_mode_charger_set_backlight(bool) +{ +} +#endif + +void healthd_board_mode_charger_init(void) +{ +} diff --git a/charger/images/560dpi b/charger/images/560dpi new file mode 120000 index 0000000..af2d1fe --- /dev/null +++ b/charger/images/560dpi @@ -0,0 +1 @@ +xxxhdpi
\ No newline at end of file diff --git a/charger/images/640dpi b/charger/images/640dpi new file mode 120000 index 0000000..af2d1fe --- /dev/null +++ b/charger/images/640dpi @@ -0,0 +1 @@ +xxxhdpi
\ No newline at end of file diff --git a/charger/images/hdpi/battery_fail.png b/charger/images/hdpi/battery_fail.png Binary files differnew file mode 100644 index 0000000..aded88a --- /dev/null +++ b/charger/images/hdpi/battery_fail.png diff --git a/charger/images/hdpi/cm_battery_scale.png b/charger/images/hdpi/cm_battery_scale.png Binary files differnew file mode 100644 index 0000000..0052c0a --- /dev/null +++ b/charger/images/hdpi/cm_battery_scale.png diff --git a/charger/images/ldpi/battery_fail.png b/charger/images/ldpi/battery_fail.png Binary files differnew file mode 100644 index 0000000..aded88a --- /dev/null +++ b/charger/images/ldpi/battery_fail.png diff --git a/charger/images/ldpi/cm_battery_scale.png b/charger/images/ldpi/cm_battery_scale.png Binary files differnew file mode 100644 index 0000000..b93c3af --- /dev/null +++ b/charger/images/ldpi/cm_battery_scale.png diff --git a/charger/images/mdpi/battery_fail.png b/charger/images/mdpi/battery_fail.png Binary files differnew file mode 100644 index 0000000..aded88a --- /dev/null +++ b/charger/images/mdpi/battery_fail.png diff --git a/charger/images/mdpi/cm_battery_scale.png b/charger/images/mdpi/cm_battery_scale.png Binary files differnew file mode 100644 index 0000000..eb16a29 --- /dev/null +++ b/charger/images/mdpi/cm_battery_scale.png diff --git a/charger/images/xhdpi/battery_fail.png b/charger/images/xhdpi/battery_fail.png Binary files differnew file mode 100644 index 0000000..aded88a --- /dev/null +++ b/charger/images/xhdpi/battery_fail.png diff --git a/charger/images/xhdpi/cm_battery_scale.png b/charger/images/xhdpi/cm_battery_scale.png Binary files differnew file mode 100644 index 0000000..078b2a6 --- /dev/null +++ b/charger/images/xhdpi/cm_battery_scale.png diff --git a/charger/images/xxhdpi/battery_fail.png b/charger/images/xxhdpi/battery_fail.png Binary files differnew file mode 100644 index 0000000..aded88a --- /dev/null +++ b/charger/images/xxhdpi/battery_fail.png diff --git a/charger/images/xxhdpi/cm_battery_scale.png b/charger/images/xxhdpi/cm_battery_scale.png Binary files differnew file mode 100644 index 0000000..2e6553e --- /dev/null +++ b/charger/images/xxhdpi/cm_battery_scale.png diff --git a/charger/images/xxxhdpi/battery_fail.png b/charger/images/xxxhdpi/battery_fail.png Binary files differnew file mode 100644 index 0000000..aded88a --- /dev/null +++ b/charger/images/xxxhdpi/battery_fail.png diff --git a/charger/images/xxxhdpi/cm_battery_scale.png b/charger/images/xxxhdpi/cm_battery_scale.png Binary files differnew file mode 100644 index 0000000..90c627d --- /dev/null +++ b/charger/images/xxxhdpi/cm_battery_scale.png diff --git a/config/BoardConfigCM.mk b/config/BoardConfigCM.mk new file mode 100644 index 0000000..a8bf1ad --- /dev/null +++ b/config/BoardConfigCM.mk @@ -0,0 +1,4 @@ +# Charger +ifneq ($(WITH_CM_CHARGER),false) + BOARD_HAL_STATIC_LIBRARIES := libhealthd.cm +endif diff --git a/config/cmsdk_common.mk b/config/cmsdk_common.mk index c50f5ae..e8b1907 100644 --- a/config/cmsdk_common.mk +++ b/config/cmsdk_common.mk @@ -1,7 +1,16 @@ # Permissions for cmsdk services PRODUCT_COPY_FILES += \ + vendor/replicant/config/permissions/org.cyanogenmod.appsuggest.xml:system/etc/permissions/org.cyanogenmod.appsuggest.xml \ + vendor/replicant/config/permissions/org.cyanogenmod.audio.xml:system/etc/permissions/org.cyanogenmod.audio.xml \ + vendor/replicant/config/permissions/org.cyanogenmod.livedisplay.xml:system/etc/permissions/org.cyanogenmod.livedisplay.xml \ + vendor/replicant/config/permissions/org.cyanogenmod.livelockscreen.xml:system/etc/permissions/org.cyanogenmod.livelockscreen.xml \ + vendor/replicant/config/permissions/org.cyanogenmod.partner.xml:system/etc/permissions/org.cyanogenmod.partner.xml \ + vendor/replicant/config/permissions/org.cyanogenmod.performance.xml:system/etc/permissions/org.cyanogenmod.performance.xml \ + vendor/replicant/config/permissions/org.cyanogenmod.profiles.xml:system/etc/permissions/org.cyanogenmod.profiles.xml \ + vendor/replicant/config/permissions/org.cyanogenmod.statusbar.xml:system/etc/permissions/org.cyanogenmod.statusbar.xml \ + vendor/replicant/config/permissions/org.cyanogenmod.telephony.xml:system/etc/permissions/org.cyanogenmod.telephony.xml \ vendor/replicant/config/permissions/org.cyanogenmod.theme.xml:system/etc/permissions/org.cyanogenmod.theme.xml \ - vendor/replicant/config/permissions/org.cyanogenmod.livelockscreen.xml:system/etc/permissions/org.cyanogenmod.livelockscreen.xml + vendor/replicant/config/permissions/org.cyanogenmod.weather.xml:system/etc/permissions/org.cyanogenmod.weather.xml # CM Platform Library PRODUCT_PACKAGES += \ @@ -14,6 +23,10 @@ PRODUCT_PACKAGES += \ org.cyanogenmod.hardware \ org.cyanogenmod.hardware.xml +# JNI Libraries +PRODUCT_PACKAGES += \ + libcmsdk_platform_jni + ifndef CM_PLATFORM_SDK_VERSION # This is the canonical definition of the SDK version, which defines # the set of APIs and functionality available in the platform. It @@ -21,7 +34,7 @@ ifndef CM_PLATFORM_SDK_VERSION # the SDK are released. It should only be incremented when the APIs for # the new release are frozen (so that developers don't write apps against # intermediate builds). - CM_PLATFORM_SDK_VERSION := 5 + CM_PLATFORM_SDK_VERSION := 6 endif ifndef CM_PLATFORM_REV diff --git a/config/common.mk b/config/common.mk index 3ee9b90..f2c8e76 100644 --- a/config/common.mk +++ b/config/common.mk @@ -33,14 +33,6 @@ PRODUCT_BOOTANIMATION := vendor/replicant/prebuilt/common/bootanimation/$(TARGET endif endif -ifdef CM_NIGHTLY -PRODUCT_PROPERTY_OVERRIDES += \ - ro.rommanager.developerid=cyanogenmodnightly -else -PRODUCT_PROPERTY_OVERRIDES += \ - ro.rommanager.developerid=cyanogenmod -endif - PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0 ifeq ($(PRODUCT_GMS_CLIENTID_BASE),) @@ -63,6 +55,11 @@ PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \ ro.build.selinux=1 +# Default notification/alarm sounds +PRODUCT_PROPERTY_OVERRIDES += \ + ro.config.notification_sound=Argon.ogg \ + ro.config.alarm_alert=Helium.ogg + ifneq ($(TARGET_BUILD_VARIANT),user) # Thank you, please drive thru! PRODUCT_PROPERTY_OVERRIDES += persist.sys.dun.override=0 @@ -78,13 +75,15 @@ PRODUCT_COPY_FILES += \ vendor/replicant/CHANGELOG.mkdn:system/etc/CHANGELOG-CM.txt # Backup Tool -ifneq ($(WITH_GMS),true) PRODUCT_COPY_FILES += \ vendor/replicant/prebuilt/common/bin/backuptool.sh:install/bin/backuptool.sh \ vendor/replicant/prebuilt/common/bin/backuptool.functions:install/bin/backuptool.functions \ vendor/replicant/prebuilt/common/bin/50-cm.sh:system/addon.d/50-cm.sh \ vendor/replicant/prebuilt/common/bin/blacklist:system/addon.d/blacklist -endif + +# Backup Services whitelist +PRODUCT_COPY_FILES += \ + vendor/cm/config/permissions/backup.xml:system/etc/sysconfig/backup.xml # Signature compatibility validation PRODUCT_COPY_FILES += \ @@ -125,6 +124,9 @@ PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \ vendor/replicant/config/permissions/com.cyanogenmod.android.xml:system/etc/permissions/com.cyanogenmod.android.xml +# Include CM audio files +include vendor/cm/config/cm_audio.mk + # Theme engine include vendor/replicant/config/themes_common.mk @@ -133,14 +135,18 @@ include vendor/replicant/config/cmsdk_common.mk # Required CM packages PRODUCT_PACKAGES += \ + CMAudioService \ Development \ BluetoothExt \ - Profiles + Profiles \ + ThemeManagerService \ + WeatherManagerService # Optional CM packages PRODUCT_PACKAGES += \ libemoji \ - Terminal + Terminal \ + LiveWallpapersPicker # Include librsjni explicitly to workaround GMS issue PRODUCT_PACKAGES += \ @@ -156,7 +162,13 @@ PRODUCT_PACKAGES += \ Eleven \ LockClock \ CMSettingsProvider \ - ExactCalculator + ExactCalculator \ + LiveLockScreenService \ + WeatherProvider \ + DataUsageProvider \ + WallpaperPicker \ + SoundRecorder \ + Screencast # Exchange support PRODUCT_PACKAGES += \ @@ -177,8 +189,29 @@ PRODUCT_PACKAGES += \ oprofiled \ sqlite3 \ strace \ - pigz + pigz \ + 7z \ + lib7z \ + bash \ + bzip2 \ + curl \ + powertop \ + unrar \ + unzip \ + vim \ + wget \ + zip + +# Custom off-mode charger +ifneq ($(WITH_CM_CHARGER),false) +PRODUCT_PACKAGES += \ + charger_res_images \ + cm_charger_res_images \ + font_log.png \ + libhealthd.cm +endif +# ExFAT support WITH_EXFAT ?= true ifeq ($(WITH_EXFAT),true) TARGET_USES_EXFAT := true @@ -266,8 +299,12 @@ ifneq ($(PRODUCT_DEFAULT_DEV_CERTIFICATE),build/target/product/security/testkey) else TARGET_VENDOR_RELEASE_BUILD_ID := $(TARGET_VENDOR_RELEASE_BUILD_ID) endif - CM_DISPLAY_VERSION=$(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(TARGET_VENDOR_RELEASE_BUILD_ID) - endif + ifeq ($(CM_VERSION_MAINTENANCE),0) + CM_DISPLAY_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(TARGET_VENDOR_RELEASE_BUILD_ID)-$(CM_BUILD) + else + CM_DISPLAY_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(CM_VERSION_MAINTENANCE)-$(TARGET_VENDOR_RELEASE_BUILD_ID)-$(CM_BUILD) + endif +endif endif endif diff --git a/config/common_full.mk b/config/common_full.mk index 59e034d..1e07256 100644 --- a/config/common_full.mk +++ b/config/common_full.mk @@ -1,15 +1,13 @@ # Inherit common CM stuff $(call inherit-product, vendor/replicant/config/common.mk) -# Include CM audio files -include vendor/replicant/config/cm_audio.mk +PRODUCT_SIZE := full ifeq ($(USE_OPENGL_RENDERER),true) PRODUCT_PACKAGES += \ Galaxy4 \ HoloSpiralWallpaper \ LiveWallpapers \ - LiveWallpapersPicker \ MagicSmokeWallpapers endif @@ -17,20 +15,8 @@ PRODUCT_PACKAGES += \ NoiseField \ PhaseBeam \ PhotoTable \ - SoundRecorder \ - PhotoPhase \ - Screencast + PhotoPhase -# Extra tools in CM +# Themes PRODUCT_PACKAGES += \ - 7z \ - lib7z \ - bash \ - bzip2 \ - curl \ - powertop \ - unrar \ - unzip \ - vim \ - wget \ - zip + HexoLibre diff --git a/config/common_full_phone.mk b/config/common_full_phone.mk index 7c19dda..222e944 100644 --- a/config/common_full_phone.mk +++ b/config/common_full_phone.mk @@ -8,11 +8,6 @@ PRODUCT_PACKAGES += \ # Include CM LatinIME dictionaries PRODUCT_PACKAGE_OVERLAYS += vendor/replicant/overlay/dictionaries -# Default notification/alarm sounds -PRODUCT_PROPERTY_OVERRIDES += \ - ro.config.notification_sound=Argon.ogg \ - ro.config.alarm_alert=Helium.ogg - ifeq ($(TARGET_SCREEN_WIDTH) $(TARGET_SCREEN_HEIGHT),$(space)) PRODUCT_COPY_FILES += \ vendor/replicant/prebuilt/common/bootanimation/vertical-480x800.zip:system/media/bootanimation.zip diff --git a/config/common_full_tablet_wifionly.mk b/config/common_full_tablet_wifionly.mk index fc1cf9c..5bcbcf1 100644 --- a/config/common_full_tablet_wifionly.mk +++ b/config/common_full_tablet_wifionly.mk @@ -8,12 +8,7 @@ PRODUCT_PACKAGES += \ # Include CM LatinIME dictionaries PRODUCT_PACKAGE_OVERLAYS += vendor/cm/overlay/dictionaries -# Default notification/alarm sounds -PRODUCT_PROPERTY_OVERRIDES += \ - ro.config.notification_sound=Argon.ogg \ - ro.config.alarm_alert=Helium.ogg - -ifeq ($(TARGET_BOOTANIMATION_NAME),) +ifeq ($(TARGET_SCREEN_WIDTH) $(TARGET_SCREEN_HEIGHT),$(space)) PRODUCT_COPY_FILES += \ vendor/replicant/prebuilt/common/bootanimation/horizontal-1280x800.zip:system/media/bootanimation.zip endif diff --git a/config/common_full_tv.mk b/config/common_full_tv.mk index f7689b7..779b918 100644 --- a/config/common_full_tv.mk +++ b/config/common_full_tv.mk @@ -1,11 +1,6 @@ # Inherit common CM stuff $(call inherit-product, vendor/cm/config/common_full.mk) -# Default notification/alarm sounds -PRODUCT_PROPERTY_OVERRIDES += \ - ro.config.notification_sound=Argon.ogg \ - ro.config.alarm_alert=Helium.ogg - ifeq ($(TARGET_SCREEN_WIDTH) $(TARGET_SCREEN_HEIGHT),$(space)) PRODUCT_COPY_FILES += \ vendor/cm/prebuilt/common/bootanimation/800.zip:system/media/bootanimation.zip diff --git a/config/common_mini.mk b/config/common_mini.mk new file mode 100644 index 0000000..ab1af91 --- /dev/null +++ b/config/common_mini.mk @@ -0,0 +1,4 @@ +# Inherit common CM stuff +$(call inherit-product, vendor/cm/config/common.mk) + +PRODUCT_SIZE := mini diff --git a/config/common_mini_phone.mk b/config/common_mini_phone.mk index d6344e2..4700b14 100644 --- a/config/common_mini_phone.mk +++ b/config/common_mini_phone.mk @@ -1,19 +1,10 @@ -# Inherit common CM stuff -$(call inherit-product, vendor/replicant/config/common.mk) - -# Include CM audio files -include vendor/replicant/config/cm_audio.mk +$(call inherit-product, vendor/replicant/config/common_mini.mk) # Required CM packages PRODUCT_PACKAGES += \ LatinIME -# Default notification/alarm sounds -PRODUCT_PROPERTY_OVERRIDES += \ - ro.config.notification_sound=Argon.ogg \ - ro.config.alarm_alert=Helium.ogg - -ifeq ($(TARGET_BOOTANIMATION_NAME),) +ifeq ($(TARGET_SCREEN_WIDTH) $(TARGET_SCREEN_HEIGHT),$(space)) PRODUCT_COPY_FILES += \ vendor/replicant/prebuilt/common/bootanimation/vertical-320x480.zip:system/media/bootanimation.zip endif diff --git a/config/common_mini_tablet_wifionly.mk b/config/common_mini_tablet_wifionly.mk index 5ebe2a5..fa00a63 100644 --- a/config/common_mini_tablet_wifionly.mk +++ b/config/common_mini_tablet_wifionly.mk @@ -1,19 +1,11 @@ # Inherit common CM stuff -$(call inherit-product, vendor/replicant/config/common.mk) - -# Include CM audio files -include vendor/replicant/config/cm_audio.mk +$(call inherit-product, vendor/replicant/config/common_mini.mk) # Required CM packages PRODUCT_PACKAGES += \ LatinIME -# Default notification/alarm sounds -PRODUCT_PROPERTY_OVERRIDES += \ - ro.config.notification_sound=Argon.ogg \ - ro.config.alarm_alert=Helium.ogg - -ifeq ($(TARGET_BOOTANIMATION_NAME),) +ifeq ($(TARGET_SCREEN_WIDTH) $(TARGET_SCREEN_HEIGHT),$(space)) PRODUCT_COPY_FILES += \ vendor/replicant/prebuilt/common/bootanimation/horizontal-1024x600.zip:system/media/bootanimation.zip endif diff --git a/config/common_mini_tv.mk b/config/common_mini_tv.mk index 57256ed..63f2bcf 100644 --- a/config/common_mini_tv.mk +++ b/config/common_mini_tv.mk @@ -1,13 +1,5 @@ # Inherit common CM stuff -$(call inherit-product, vendor/cm/config/common.mk) - -# Include CM audio files -include vendor/cm/config/cm_audio.mk - -# Default notification/alarm sounds -PRODUCT_PROPERTY_OVERRIDES += \ - ro.config.notification_sound=Argon.ogg \ - ro.config.alarm_alert=Helium.ogg +$(call inherit-product, vendor/cm/config/common_mini.mk) ifeq ($(TARGET_SCREEN_WIDTH) $(TARGET_SCREEN_HEIGHT),$(space)) PRODUCT_COPY_FILES += \ diff --git a/config/permissions/backup.xml b/config/permissions/backup.xml new file mode 100644 index 0000000..c335b29 --- /dev/null +++ b/config/permissions/backup.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2016 The CyanogenMod Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<config> + <!-- Whitelist of what components are permitted as backup data transports. The + 'service' attribute here is a flattened ComponentName string. --> + <backup-transport-whitelisted-service + service="android/com.android.internal.backup.LocalTransportService" /> + <backup-transport-whitelisted-service + service="com.google.android.gms/.backup.BackupTransportService" /> + <backup-transport-whitelisted-service + service="com.google.android.gms/.backup.component.D2dTransportService" /> +</config>
\ No newline at end of file diff --git a/config/permissions/org.cyanogenmod.appsuggest.xml b/config/permissions/org.cyanogenmod.appsuggest.xml new file mode 100644 index 0000000..e8a9808 --- /dev/null +++ b/config/permissions/org.cyanogenmod.appsuggest.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2016 The CyanogenMod Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<permissions> + <!-- The feature listed here coincides with the AppSuggestManagerService declared as + part of the external cm service init in SystemServer. If this xml isn't present + on the device, the service will not be published as a binder service! + --> + <feature name="org.cyanogenmod.appsuggest" /> +</permissions> diff --git a/config/permissions/org.cyanogenmod.audio.xml b/config/permissions/org.cyanogenmod.audio.xml new file mode 100644 index 0000000..1a5d122 --- /dev/null +++ b/config/permissions/org.cyanogenmod.audio.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2016 The CyanogenMod Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<permissions> + <!-- The feature listed here coincides with the PerformanceManagerService declared as + part of the external cm service init in SystemServer. If this xml isn't present + on the device, the service will not be published as a binder service! + --> + <feature name="org.cyanogenmod.audio" /> +</permissions> diff --git a/config/permissions/org.cyanogenmod.livedisplay.xml b/config/permissions/org.cyanogenmod.livedisplay.xml new file mode 100644 index 0000000..bfae5d3 --- /dev/null +++ b/config/permissions/org.cyanogenmod.livedisplay.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2016 The CyanogenMod Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<permissions> + <!-- The feature listed here coincides with the PerformanceManagerService declared as + part of the external cm service init in SystemServer. If this xml isn't present + on the device, the service will not be published as a binder service! + --> + <feature name="org.cyanogenmod.livedisplay" /> +</permissions> diff --git a/config/permissions/org.cyanogenmod.partner.xml b/config/permissions/org.cyanogenmod.partner.xml new file mode 100644 index 0000000..1526830 --- /dev/null +++ b/config/permissions/org.cyanogenmod.partner.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2016 The CyanogenMod Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<permissions> + <!-- The feature listed here coincides with the PartnerInterfaceService declared as + part of the external cm service init in SystemServer. If this xml isn't present + on the device, the service will not be published as a binder service! + --> + <feature name="org.cyanogenmod.partner" /> +</permissions> diff --git a/config/permissions/org.cyanogenmod.performance.xml b/config/permissions/org.cyanogenmod.performance.xml new file mode 100644 index 0000000..464de6e --- /dev/null +++ b/config/permissions/org.cyanogenmod.performance.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2016 The CyanogenMod Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<permissions> + <!-- The feature listed here coincides with the PerformanceManagerService declared as + part of the external cm service init in SystemServer. If this xml isn't present + on the device, the service will not be published as a binder service! + --> + <feature name="org.cyanogenmod.performance" /> +</permissions> diff --git a/config/permissions/org.cyanogenmod.profiles.xml b/config/permissions/org.cyanogenmod.profiles.xml new file mode 100644 index 0000000..6a45526 --- /dev/null +++ b/config/permissions/org.cyanogenmod.profiles.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2016 The CyanogenMod Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<permissions> + <!-- The feature listed here coincides with the ProfileManagerService declared as + part of the external cm service init in SystemServer. If this xml isn't present + on the device, the service will not be published as a binder service! + --> + <feature name="org.cyanogenmod.profiles" /> +</permissions> diff --git a/config/permissions/org.cyanogenmod.statusbar.xml b/config/permissions/org.cyanogenmod.statusbar.xml new file mode 100644 index 0000000..562bf9e --- /dev/null +++ b/config/permissions/org.cyanogenmod.statusbar.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2016 The CyanogenMod Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<permissions> + <!-- The feature listed here coincides with the CMStatusBarManagerService declared as + part of the external cm service init in SystemServer. If this xml isn't present + on the device, the service will not be published as a binder service! + --> + <feature name="org.cyanogenmod.statusbar" /> +</permissions> diff --git a/config/permissions/org.cyanogenmod.telephony.xml b/config/permissions/org.cyanogenmod.telephony.xml new file mode 100644 index 0000000..3e89e8a --- /dev/null +++ b/config/permissions/org.cyanogenmod.telephony.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2016 The CyanogenMod Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<permissions> + <!-- The feature listed here coincides with the CMTelephonyManagerService declared as + part of the external cm service init in SystemServer. If this xml isn't present + on the device, the service will not be published as a binder service! + --> + <feature name="org.cyanogenmod.telephony" /> +</permissions> diff --git a/config/permissions/org.cyanogenmod.weather.xml b/config/permissions/org.cyanogenmod.weather.xml new file mode 100644 index 0000000..69cd0b7 --- /dev/null +++ b/config/permissions/org.cyanogenmod.weather.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2016 The CyanogenMod Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<permissions> + <feature name="org.cyanogenmod.weather" /> +</permissions> diff --git a/config/telephony.mk b/config/telephony.mk index b28e26f..39a2ff8 100644 --- a/config/telephony.mk +++ b/config/telephony.mk @@ -2,10 +2,6 @@ PRODUCT_COPY_FILES += \ vendor/replicant/prebuilt/common/etc/apns-conf.xml:system/etc/apns-conf.xml -# Selective SPN list for operator number who has the problem. -PRODUCT_COPY_FILES += \ - vendor/replicant/prebuilt/common/etc/selective-spn-conf.xml:system/etc/selective-spn-conf.xml - # Telephony packages PRODUCT_PACKAGES += \ messaging \ diff --git a/gello/Android.mk b/gello/Android.mk new file mode 100644 index 0000000..1cf0cd0 --- /dev/null +++ b/gello/Android.mk @@ -0,0 +1,51 @@ +# +# Copyright (C) 2016 The CyanogenMod Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +LOCAL_PATH := $(call my-dir) + +SOURCE_GELLO_PATH := $(LOCAL_PATH)/../../../external/gello-build + +include $(CLEAR_VARS) + +LOCAL_MODULE := Gello +LOCAL_MODULE_CLASS := APPS +LOCAL_CERTIFICATE := $(DEFAULT_SYSTEM_DEV_CERTIFICATE) + +LOCAL_OVERRIDES_PACKAGES := Browser + +ifeq ($(WITH_GELLO_SOURCE),true) +# Build from source +ifeq ($(LOCAL_GELLO),true) +BUILD_GELLO := $(info $(shell bash $(SOURCE_GELLO_PATH)/gello_build.sh --local 1>&2)) +else +BUILD_GELLO := $(info $(shell bash $(SOURCE_GELLO_PATH)/gello_build.sh 1>&2)) +endif +LOCAL_SRC_FILES := ../../../external/gello-build/Gello.apk +include $(BUILD_PREBUILT) +else + +LOCAL_DEX_PREOPT := false +LOCAL_MODULE_TAGS := optional +LOCAL_BUILT_MODULE_STEM := package.apk +LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) + +LOCAL_MAVEN_REPO := https://maven.cyanogenmod.org/artifactory/gello_prebuilds +LOCAL_MAVEN_GROUP := org.cyanogenmod +LOCAL_MAVEN_VERSION := 40 +LOCAL_MAVEN_ARTIFACT := gello +LOCAL_MAVEN_PACKAGING := apk + +include $(BUILD_MAVEN_PREBUILT) +endif diff --git a/overlay/common/frameworks/base/core/res/res/values/cm_arrays.xml b/overlay/common/frameworks/base/core/res/res/values/cm_arrays.xml new file mode 100644 index 0000000..3cc1011 --- /dev/null +++ b/overlay/common/frameworks/base/core/res/res/values/cm_arrays.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The CyanogenMod Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <string-array name="config_enabledPreinstalledCarrierApps" translatable="false"> + <item>com.cyanogen.ambient.core</item> + <item>com.cyanogen.ambient.updater</item> + <item>com.cyngn.devicemanager</item> + <item>com.cyngn.discovery</item> + </string-array> +</resources>
\ No newline at end of file diff --git a/overlay/common/frameworks/base/core/res/res/values/config.xml b/overlay/common/frameworks/base/core/res/res/values/config.xml index 214ceb9..403890e 100644 --- a/overlay/common/frameworks/base/core/res/res/values/config.xml +++ b/overlay/common/frameworks/base/core/res/res/values/config.xml @@ -53,4 +53,10 @@ <item>bugreport</item> <item>users</item> </string-array> + + <!-- Enable lockscreen rotation by default --> + <bool name="config_enableLockScreenRotation">true</bool> + + <!-- Whether to persist the notification for when a usb drive device is plugged in --> + <bool name="config_persistUsbDriveNotification">true</bool> </resources> diff --git a/overlay/common/packages/apps/Settings/res/values/strings.xml b/overlay/common/packages/apps/Settings/res/values/strings.xml index 6a59a0a..93758ea 100644 --- a/overlay/common/packages/apps/Settings/res/values/strings.xml +++ b/overlay/common/packages/apps/Settings/res/values/strings.xml @@ -16,5 +16,8 @@ <resources> <!-- Help URL, Tap & pay [DO NOT TRANSLATE] --> <string name="help_url_nfc_payment" translatable="false">https://support.google.com/wallet/answer/1347934</string> + + <!-- Help URL, Fingerprint [DO NOT TRANSLATE] --> + <string name="help_url_fingerprint" translatable="false">https://support.google.com</string> </resources> diff --git a/overlay/common/packages/services/Telecomm/res/values/cm_config.xml b/overlay/common/packages/services/Telecomm/res/values/cm_config.xml index c208396..958422b 100644 --- a/overlay/common/packages/services/Telecomm/res/values/cm_config.xml +++ b/overlay/common/packages/services/Telecomm/res/values/cm_config.xml @@ -18,12 +18,10 @@ <!-- Class name for the default in-call UI Service [DO NOT TRANSLATE] --> <string-array name="incall_default_classes" translatable="false"> <item>com.android.dialer/com.android.incallui.InCallServiceImpl</item> - <item>com.cyngn.dialer/com.android.incallui.InCallServiceImpl</item> </string-array> <!-- Class name for the default main dialer activity [DO NOT TRANSLATE] --> <string-array name="dialer_default_classes" translatable="false"> <item>com.android.dialer/com.android.dialer.DialtactsActivity</item> - <item>com.cyngn.dialer/com.android.dialer.DialtactsActivity</item> </string-array> </resources> diff --git a/overlay/common/packages/services/Telephony/res/values/cm_config.xml b/overlay/common/packages/services/Telephony/res/values/cm_config.xml index 155ed8c..cc13e49 100644 --- a/overlay/common/packages/services/Telephony/res/values/cm_config.xml +++ b/overlay/common/packages/services/Telephony/res/values/cm_config.xml @@ -17,6 +17,5 @@ <resources> <string-array name="dialer_default_classes" translatable="false"> <item>com.android.dialer/com.android.dialer.DialtactsActivity</item> - <item>com.cyngn.dialer/com.android.dialer.DialtactsActivity</item> </string-array> </resources> diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_bg.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_bg.dict Binary files differindex 62a3583..322186b 100644 --- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_bg.dict +++ b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_bg.dict diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_au.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_au.dict Binary files differindex f06af14..644e7ff 100644 --- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_au.dict +++ b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_au.dict diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_hu.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_hu.dict Binary files differdeleted file mode 100644 index 2b8dce0..0000000 --- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_hu.dict +++ /dev/null diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_ka.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_ka.dict Binary files differindex 4c76a6d..86c49f5 100644 --- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_ka.dict +++ b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_ka.dict diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lb.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lb.dict Binary files differindex 56fd0cd..99cc408 100644 --- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lb.dict +++ b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lb.dict diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_uk.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_uk.dict Binary files differindex f38cc41..15715cf 100644 --- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_uk.dict +++ b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_uk.dict diff --git a/prebuilt/common/etc/apns-conf.xml b/prebuilt/common/etc/apns-conf.xml index dcea5f4..4c32e43 100644 --- a/prebuilt/common/etc/apns-conf.xml +++ b/prebuilt/common/etc/apns-conf.xml @@ -70,13 +70,15 @@ <apn carrier="中国电信WAP设置" mcc="204" mnc="04" apn="ctwap" user="ctwap@mycdma.cn" password="vnet.mobi" proxy="10.0.0.200" port="80" mmsproxy="10.0.0.200" mmsport="80" mmsc="http://mmsc.vnet.mobi" authtype="3" type="default,supl,dun,mms" /> <apn carrier="Ziggo Mobiel" mcc="204" mnc="04" apn="ziggo.dataxs.mobi" authtype="1" type="default,supl" /> <apn carrier="Hollandsnieuwe" mcc="204" mnc="04" apn="data.dataxs.mobi" proxy="" port="" user="" password="" mmsc="" authtype="1" type="default,supl" /> + <apn carrier="Truphone" mcc="204" mnc="04" apn="truphone.com" type="default,dun" mvno_match_data="204043914" mvno_type="imsi" /> + <apn carrier="Truphone" mcc="204" mnc="04" apn="truphone.com" type="default,dun" mvno_match_data="20404794" mvno_type="imsi" /> <apn carrier="KPN 4G LTE" mcc="204" mnc="08" apn="KPN4G.nl" mmsc="http://mp.mobiel.kpn/mmsc" mmsproxy="10.10.100.20" mmsport="5080" type="default,supl,mms" /> <apn carrier="KPN GPRS" mcc="204" mnc="08" apn="internet" user="kpn" password="gprs" type="default,supl" /> <apn carrier="KPN Mobiel Internet" mcc="204" mnc="08" apn="portalmmm.nl" proxy="" port="" user="" password="" mmsc="http://mp.mobiel.kpn/mmsc" mmsproxy="10.10.100.20" mmsport="5080" type="*" spn="KPN" /> <apn carrier="Hi Mobiel Internet" mcc="204" mnc="08" apn="portalmmm.nl" proxy="" port="" user="" password="" mmsc="http://mp.mobiel.kpn/mmsc" mmsproxy="10.10.100.20" mmsport="5080" type="*" spn="HI" /> <apn carrier="Simyo Mobiel Internet" mcc="204" mnc="08" apn="portalmmm.nl" proxy="" port="" user="" password="" mmsc="http://mp.mobiel.kpn/mmsc" mmsproxy="10.10.100.20" mmsport="5080" authtype="1" type="default,supl,mms" /> <apn carrier="Ortel Internet" mcc="204" mnc="08" apn="portalmmm.nl" proxy="" port="" user="" password="" mmsc="http://mp.mobiel.kpn/mmsc" mmsproxy="10.10.100.20" mmsport="5080" authtype="1" type="default,supl,mms" /> - <apn carrier="Yufone Internet" mcc="204" mnc="08" apn="portalmmm.nl" proxy="" port="" user="" password="" type="default" /> + <apn carrier="Youfone Internet" mcc="204" mnc="08" apn="portalmmm.nl" proxy="" port="" user="" password="" type="default" /> <apn carrier="Lebara Internet" mcc="204" mnc="08" apn="multimedia.lebara.nl" proxy="" port="" user="" password="" mmsc="http://mp.mobiel.kpn/mmsc" mmsproxy="10.10.100.20" mmsport="5080" authtype="1" type="default,supl,mms" /> <apn carrier="AH Mobiel Internet" mcc="204" mnc="08" apn="multimedia.ah.nl" proxy="" port="" user="" password="" mmsc="http://mms" mmsproxy="193.113.200.195" mmsport="8080" type="*" spn="AH Mobiel" /> <apn carrier="MVNO NL" mcc="204" mnc="08" apn="internet.mvno.mobi" user="mvno" password="mvno" authtype="1" type="default,supl" mvno_match_data="204080950" mvno_type="imsi" /> @@ -283,9 +285,8 @@ <apn carrier="INTERNET GPRS" mcc="214" mnc="06" apn="airtelnet.es" proxy="" port="" user="vodafone" password="vodafone" mmsc="" type="default,supl" /> <apn carrier="TeleCable Internet" mcc="214" mnc="06" apn="internet.telecable.es" proxy="" port="" user="telecable" password="telecable" mmsc="" mvno_type="spn" mvno_match_data="Telecable" type="default,supl" /> <apn carrier="TeleCable MMS" mcc="214" mnc="06" apn="mms.telecable.es" proxy="" port="" user="telecable" password="telecable" mmsc="http://mms.telecable.es/mms/" mmsproxy="212.89.0.84" mmsport="8080" mvno_type="spn" mvno_match_data="Telecable" type="mms" /> - <apn carrier="Movistar" mcc="214" mnc="07" apn="telefonica.es" proxy="" port="" mmsc="" user="telefonica" password="telefonica" type="default,supl" /> - <apn carrier="Conexión compartida" mcc="214" mnc="07" apn="movistar.es" user="MOVISTAR" password="MOVISTAR" type="dun,default" /> - <apn carrier="Movistar MMS" mcc="214" mnc="07" apn="telefonica.es" proxy="" port="" user="telefonica" password="telefonica" mmsc="http://mms.movistar.com" mmsproxy="10.138.255.5" mmsport="8080" type="mms" /> + <apn carrier="Movistar" mcc="214" mnc="07" apn="telefonica.es" proxy="10.138.255.133" port="8080" user="telefonica" password="telefonica" mmsc="http://mms.movistar.com" mmsproxy="10.138.255.5" mmsport="8080" authtype="1" type="default,mms,supl" /> + <apn carrier="Conexión Compartida" mcc="214" mnc="07" apn="movistar.es" user="MOVISTAR" password="MOVISTAR" authtype="1" type="dun" /> <apn carrier="Jazztel MMS" mcc="214" mnc="07" apn="jazzmms" proxy="" port="" user="" password="" mmsc="http://jazztelmms.com/servlets/mms" mmsproxy="37.132.0.10" mmsport="8080" mvno_type="spn" mvno_match_data="JAZZTEL" type="mms" /> <apn carrier="Jazztel" mcc="214" mnc="07" apn="jazzinternet" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="JAZZTEL" type="default,supl" /> <apn carrier="Euskaltel" mcc="214" mnc="08" apn="internet.euskaltel.mobi" user="CLIENTE" password="EUSKALTEL" type="default,supl" /> @@ -368,8 +369,8 @@ <apn carrier="iTIM" mcc="222" mnc="01" apn="unico.tim.it" proxy="213.230.130.89" port="80" user="" password="" mmsc="http://mms.tim.it/servlets/mms" mmsproxy="213.230.130.89" mmsport="80" type="mms" /> <apn carrier="Tiscali INTERNET" mcc="222" mnc="01" apn="tiscalimobileinternet" type="default,supl" /> <apn carrier="Tiscali MMS" mcc="222" mnc="01" apn="tiscalimobilemms" mmsc="http://mms.tiscali.mobi/servlets/mms" mmsproxy="213.230.130.89" mmsport="80" type="mms" /> - <apn carrier="WEB COOP" mcc="222" mnc="01" apn="web.coopvoce.it" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="COOP" type="default,supl" /> - <apn carrier="COOP MMS" mcc="222" mnc="01" apn="mms.coopvoce.it" proxy="" port="" user="" password="" mmsc="http://mms.coop.it/servlets/mms" mmsproxy="213.230.130.89" mmsport="80" mvno_type="spn" mvno_match_data="COOP" authtype="1" type="mms" /> + <apn carrier="COOPVOCE WEB" mcc="222" mnc="01" apn="web.coopvoce.it" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Coop Mobile" type="default,supl" /> + <apn carrier="COOPVOCE MMS" mcc="222" mnc="01" apn="mms.coopvoce.it" proxy="" port="" user="" password="" mmsc="http://mms.coop.it/servlets/mms" mmsproxy="213.230.130.89" mmsport="80" mvno_type="spn" mvno_match_data="Coop Mobile" authtype="1" type="mms" /> <apn carrier="Iusacell Internet" mcc="222" mnc="010" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" /> <apn carrier="Internet Modem" mcc="222" mnc="010" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" /> <apn carrier="Iusacell MMS" mcc="222" mnc="010" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" /> @@ -896,7 +897,7 @@ <apn carrier="GSMAland wap" mcc="244" mnc="14" apn="internet" proxy="194.110.177.70" port="8080" user="" password="" mmsc="" type="default,supl" /> <apn carrier="GSMAland mms" mcc="244" mnc="14" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms.amt.aland.fi" mmsproxy="194.110.177.70" mmsport="8080" type="mms" /> <apn carrier="Saunalahti Wap" mcc="244" mnc="21" apn="wap.saunalahti.fi" proxy="" port="" user="" password="" mmsc="" type="default,supl" /> - <apn carrier="Saunalahti Internet" mcc="244" mnc="21" apn="internet.saunalahti.fi" proxy="" port="" user="" password="" mmsc="" authtype="1" type="default,supl" /> + <apn carrier="Saunalahti Internet" mcc="244" mnc="21" apn="internet.saunalahti" proxy="" port="" user="" password="" mmsc="" authtype="1" type="default,supl" /> <apn carrier="Saunalahti MMS" mcc="244" mnc="21" apn="mms.saunalahti.fi" proxy="" port="" user="" password="" mmsc="http://mms.saunalahti.fi:8002/" mmsproxy="62.142.4.197" mmsport="8080" authtype="1" type="mms" /> <apn carrier="Sonera Internet" mcc="244" mnc="91" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" /> <apn carrier="Sonera MMS" mcc="244" mnc="91" apn="wap.sonera.net" proxy="" port="" user="" password="" mmsc="http://mms.sonera.fi:8002" mmsproxy="195.156.25.33" mmsport="80" type="mms" /> @@ -908,7 +909,7 @@ <apn carrier="Bite LT Internet" mcc="246" mnc="02" apn="banga" proxy="" port="" user="" password="" mmsc="" type="default,supl" /> <apn carrier="Bite MMS" mcc="246" mnc="02" apn="mms" proxy="" port="" user="mms@mms" password="mms" mmsc="http://mmsc" mmsproxy="192.168.150.2" mmsport="8080" type="mms" /> <apn carrier="Bite" mcc="246" mnc="02" apn="wap" proxy="" port="" user="" password="" server="213.226.131.133" mmsc="" type="default,supl" /> - <apn carrier="Tele2 Internet LT" mcc="246" mnc="03" apn="internet.tele2.lt" proxy="130.244.196.90" port="8080" user="" password="" mmsc="" type="default,supl" /> + <apn carrier="Tele2 Internet LT" mcc="246" mnc="03" apn="internet.tele2.lt" proxy="" port="" user="" password="" mmsc="" type="default,supl" /> <apn carrier="Tele2 LT" mcc="246" mnc="03" apn="internet.vodafone.net" proxy="" port="" user="" password="" mmsc="" type="default,supl" /> <apn carrier="Tele2 MMS LT" mcc="246" mnc="03" apn="mms.tele2.lt" proxy="" port="" user="" password="" mmsc="http://mmsc.tele2.lt/" mmsproxy="193.12.40.29" mmsport="8080" type="mms" /> <apn carrier="Tele2 LT MMS" mcc="246" mnc="03" apn="wap.tele2.lt" proxy="" port="" user="" password="" mmsc="http://mmsc.tele2.lt" mmsproxy="193.12.40.29" mmsport="8080" type="mms" /> @@ -1078,18 +1079,9 @@ <apn carrier="Lebara Internet" mcc="262" mnc="01" apn="internet.t-d1.de" proxy="" port="" user="" password="" mmsc="" type="default,supl" /> <apn carrier="Callmobile Internet" mcc="262" mnc="01" apn="internet.t-d1.de" proxy="193.254.160.002" port="9201" user="T-Mobile" password="wap" mmsc="" authtype="1" type="default,supl" /> <apn carrier="callmobile.de" mcc="262" mnc="01" apn="internet.t-mobile" proxy="" port="" user="t-mobile" password="tm" mmsc="http://mms.t-mobile.de/servlets/mms" mmsproxy="172.28.23.131" mmsport="8008" mvno_type="spn" mvno_match_data="callmobile.de" type="default,supl,mms" /> - <apn carrier="VF DE live!" mcc="262" mnc="02" apn="wap.vodafone.de" proxy="139.007.029.001" port="80" type="default,supl" /> - <apn carrier="VF DE live! Secure" mcc="262" mnc="02" apn="wap.vodafone.de" proxy="139.007.029.001" port="9203" type="default,supl" /> - <apn carrier="VF DE Event" mcc="262" mnc="02" apn="event.vodafone.de" type="default,supl" /> - <apn carrier="VF DE Web" mcc="262" mnc="02" apn="web.vodafone.de" proxy="" port="" type="default,supl" /> - <apn carrier="VF DE MMS" mcc="262" mnc="02" apn="event.vodafone.de" proxy="" port="" mmsproxy="139.007.029.017" mmsport="80" mmsc="http://139.7.24.1/servlets/mms" user="" password="" type="mms" /> - <apn carrier="Vodafone DE-MMS" mcc="262" mnc="02" apn="event.vodafone.de" mmsc="http://139.7.24.1/servlets/mms" mmsproxy="139.7.29.17" mmsport="80" type="mms" /> - <apn carrier="Vodafone DE" mcc="262" mnc="02" apn="web.vodafone.de" type="default,supl" /> - <apn carrier="Vodafone DE-IMS" mcc="262" mnc="02" apn="ims" type="ims" protocol="IPV4V6" /> <apn carrier="otelo web" mcc="262" mnc="02" apn="data.otelo.de" user="" password="" type="default,supl" /> <apn carrier="klarmobil MMS" mcc="262" mnc="02" apn="event.vodafone.de" proxy="" port="" user="" password="" mmsc="http://139.7.24.1/servlets/mms" mmsproxy="139.7.29.17" mmsport="80" mvno_type="spn" mvno_match_data="klarmobil" type="mms" /> <apn carrier="klarmobil" mcc="262" mnc="02" apn="web.vodafone.de" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="klarmobil" type="default,supl" /> - <apn carrier="Fonic" mcc="262" mnc="02" apn="pinternet.interkom.de" proxy="" port="" user="" password="" mmsc="" type="default,supl" /> <apn carrier="Otelo MMS" mcc="262" mnc="02" apn="event.otelo.de" proxy="" port="" user="" password="" mmsc="http://139.7.24.1/servlets/mms" mmsproxy="139.7.29.17" mmsport="80" mvno_type="spn" mvno_match_data="O.tel.o" type="mms" /> <apn carrier="Otelo Internet" mcc="262" mnc="02" apn="data.otelo.de" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="O.tel.o" type="default,supl" /> <apn carrier="Open Market: E-Plus Web" mcc="262" mnc="03" apn="internet.eplus.de" user="eplus" password="internet" authtype="3" type="default,supl" /> @@ -1105,13 +1097,6 @@ <apn carrier="Aldi Talk Internet" mcc="262" mnc="03" apn="internet.eplus.de" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Aldi Talk" type="default,supl" /> <apn carrier="Simyo MMS" mcc="262" mnc="03" apn="mms.eplus.de" proxy="" port="" user="simyo" password="simyo" mmsc="http://mms/eplus/" mmsproxy="212.23.97.153" mmsport="5080" mvno_type="spn" mvno_match_data="Simyo" type="mms" /> <apn carrier="Simyo Internet" mcc="262" mnc="03" apn="internet.eplus.de" proxy="" port="" user="simyo" password="simyo" mmsc="" mvno_type="spn" mvno_match_data="Simyo" type="default,supl" /> - <apn carrier="VF DE live!" mcc="262" mnc="04" apn="wap.vodafone.de" proxy="139.007.029.001" port="80" type="default,supl" /> - <apn carrier="VF DE live! Secure" mcc="262" mnc="04" apn="wap.vodafone.de" proxy="139.007.029.001" port="9203" type="default,supl" /> - <apn carrier="VF DE Event" mcc="262" mnc="04" apn="event.vodafone.de" type="default,supl" /> - <apn carrier="VF DE Web" mcc="262" mnc="04" apn="web.vodafone.de" proxy="" port="" type="default,supl" /> - <apn carrier="VF DE MMS" mcc="262" mnc="04" apn="event.vodafone.de" proxy="" port="" mmsproxy="139.007.029.017" mmsport="80" mmsc="http://139.7.24.1/servlets/mms" user="" password="" type="mms" /> - <apn carrier="Vodafone DE-MMS" mcc="262" mnc="04" apn="event.vodafone.de" mmsc="http://139.7.24.1/servlets/mms" mmsproxy="139.7.29.17" mmsport="80" type="mms" /> - <apn carrier="Vodafone DE" mcc="262" mnc="04" apn="web.vodafone.de" type="default,supl" /> <apn carrier="E-Plus Web GPRS" mcc="262" mnc="05" apn="internet.eplus.de" proxy="" port="" user="eplus" password="internet" mmsc="" type="default,supl" /> <apn carrier="E-Plus MMS" mcc="262" mnc="05" apn="mms.eplus.de" proxy="" port="" user="mms" password="eplus" mmsc="http://mms/eplus/" mmsproxy="212.23.97.153" mmsport="5080" type="mms" /> <apn carrier="T-Mobile Internet" mcc="262" mnc="06" apn="internet.t-mobile" user="t-mobile" password="tm" mmsc="http://mms.t-mobile.de/servlets/mms" mmsproxy="172.28.23.131" mmsport="8008" type="default,supl,mms" /> @@ -1145,16 +1130,10 @@ <apn carrier="Alice MMS" mcc="262" mnc="08" apn="internet.partner1" proxy="" port="" mmsproxy="82.113.100.41" mmsport="8080" mmsc="http://10.81.0.7:8002" user="" password="" type="mms" spn="Alice Mobile" /> <apn carrier="o2" mcc="262" mnc="08" apn="internet" mmsc="http://10.81.0.7:8002" mmsproxy="82.113.100.5" mmsport="8080" type="default,supl,mms" /> <apn carrier="O2" mcc="262" mnc="08" apn="internet" proxy="" port="" user="" password="" mmsc="http://10.81.0.7:8002" mmsproxy="82.113.100.5" mmsport="8080" type="default,supl,mms" /> - <apn carrier="VF DE live!" mcc="262" mnc="09" apn="wap.vodafone.de" proxy="139.007.029.001" port="80" type="default,supl" /> - <apn carrier="VF DE live! Secure" mcc="262" mnc="09" apn="wap.vodafone.de" proxy="139.007.029.001" port="9203" type="default,supl" /> - <apn carrier="VF DE Event" mcc="262" mnc="09" apn="event.vodafone.de" type="default,supl" /> - <apn carrier="VF DE Web" mcc="262" mnc="09" apn="web.vodafone.de" proxy="" port="" type="default,supl" /> - <apn carrier="VF DE MMS" mcc="262" mnc="09" apn="event.vodafone.de" proxy="" port="" mmsproxy="139.007.029.017" mmsport="80" mmsc="http://139.7.24.1/servlets/mms" user="" password="" type="mms" /> - <apn carrier="Vodafone DE-MMS" mcc="262" mnc="09" apn="event.vodafone.de" mmsc="http://139.7.24.1/servlets/mms" mmsproxy="139.7.29.17" mmsport="80" type="mms" /> - <apn carrier="Vodafone DE" mcc="262" mnc="09" apn="web.vodafone.de" type="default,supl" /> + <apn carrier="Vodafone DE Web" mcc="262" mnc="02" apn="web.vodafone.de" proxy="" port="" type="default,supl" /> + <apn carrier="Vodafone DE MMS" mcc="262" mnc="02" apn="event.vodafone.de" proxy="" port="" mmsproxy="139.007.029.017" mmsport="80" mmsc="http://139.7.24.1/servlets/mms" user="" password="" type="mms" /> + <apn carrier="Vodafone DE-IMS" mcc="262" mnc="02" apn="ims" type="ims" protocol="IPV4V6" /> <apn carrier="T-Mobile DE" mcc="262" mnc="09" apn="internet.t-mobile" proxy="" port="" user="t-mobile" password="tm" mmsc="http://mms.t-mobile.de/servlets/mms" mmsproxy="172.28.23.131" mmsport="8008" type="default,supl,mms" /> - <apn carrier="Vodafone DE-MMS" mcc="262" mnc="09" apn="event.vodafone.de" proxy="" port="" user="" password="" mmsc="http://139.7.24.1/servlets/mms" mmsproxy="139.7.29.17" mmsport="80" type="mms" /> - <apn carrier="Vodafone DE" mcc="262" mnc="09" apn="web.vodafone.de" proxy="" port="" user="" password="" mmsc="" type="default,supl" /> <apn carrier="o2 Internet" mcc="262" mnc="11" apn="internet" user="" password="" type="default,supl" /> <apn carrier="o2 Internet prepaid" mcc="262" mnc="11" apn="pinternet.interkom.de" user="" password="" type="default,supl" /> <apn carrier="o2 MMS" mcc="262" mnc="11" apn="internet" proxy="" port="" mmsproxy="82.113.100.5" mmsport="8080" mmsc="http://10.81.0.7:8002" user="" password="" type="mms" /> @@ -1165,6 +1144,7 @@ <apn carrier="Alice Web" mcc="262" mnc="11" apn="internet.partner1" user="" password="" type="default,supl" /> <apn carrier="Alice MMS" mcc="262" mnc="11" apn="internet.partner1" proxy="" port="" mmsproxy="82.113.100.41" mmsport="8080" mmsc="http://10.81.0.7:8002" user="" password="" type="mms" spn="Alice Mobile" /> <apn carrier="O2" mcc="262" mnc="11" apn="internet" proxy="" port="" user="" password="" mmsc="http://10.81.0.7:8002" mmsproxy="82.113.100.5" mmsport="8080" type="default,supl,mms" /> + <apn carrier="Truphone" mcc="262" mnc="42" apn="truphone.com" type="default,dun" /> <apn carrier="Lycamobile DE" mcc="262" mnc="43" apn="data.lycamobile.de" proxy="" port="" user="lmde" password="plus" mmsc="" mvno_type="spn" mvno_match_data="Lycamobile" type="default,supl" /> <apn carrier="Vodafone Net2" mcc="268" mnc="01" apn="net2.vodafone.pt" proxy="iproxy.vodafone.pt" port="80" mmsproxy="iproxy.vodafone.pt" mmsport="80" mmsc="http://mms.vodafone.pt/servlets/mms" user="vodafone" password="vodafone" authtype="3" type="default,mms" /> <apn carrier="Vodafone PT Internet" mcc="268" mnc="01" apn="net2.vodafone.pt" proxy="iproxy.vodafone.pt" port="80" mmsc="http://mms.vodafone.pt/servlets/mms" mmsproxy="iproxy.vodafone.pt" mmsport="80" type="default,supl,mms" /> @@ -1257,10 +1237,10 @@ <apn carrier="Turkcell MMS" mcc="286" mnc="01" apn="mms" proxy="" port="" mmsproxy="212.252.169.217" mmsport="8080" mmsc="http://mms.turkcell.com.tr/servlets/mms" user="mms" password="mms" type="mms" /> <apn carrier="Turkcell" mcc="286" mnc="01" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" /> <apn carrier="Turkcell MMS" mcc="286" mnc="01" apn="mms" proxy="" port="" user="mms" password="mms" mmsc="http://mms.turkcell.com.tr/servlets/mms" mmsproxy="212.252.169.217" mmsport="9201" type="mms" /> + <apn carrier="Vodafone TR" mcc="286" mnc="02" apn="internet" proxy="" port="" user="vodafone" password="vodafone" mmsc="" type="default,supl" protocol="IPV4V6" /> <apn carrier="Vodafone Live" mcc="286" mnc="02" apn="vflive" proxy="212.65.136.226" port="9401" mmsc="" user="vodafone" password="vodafone" authtype="3" type="default,supl" /> - <apn carrier="MMS GPRS" mcc="286" mnc="02" apn="mms" proxy="" port="" mmsc="http://217.31.233.18:6001/MM1Servlet" user="vodafone" password="vodafone" authtype="3" type="mms" /> - <apn carrier="Vodafone TR" mcc="286" mnc="02" apn="internet" proxy="" port="" user="vodafone" password="vodafone" mmsc="" type="default,supl" /> <apn carrier="Vodafone TR MMS" mcc="286" mnc="02" apn="mms" proxy="" port="" user="vodafone" password="vodafone" mmsc="http://217.31.233.18:6001/MM1Servlet" mmsproxy="217.31.233.18" mmsport="9401" type="mms" /> + <apn carrier="MMS GPRS" mcc="286" mnc="02" apn="mms" proxy="" port="" mmsc="http://217.31.233.18:6001/MM1Servlet" user="vodafone" password="vodafone" authtype="3" type="mms" /> <apn carrier="AVEA" mcc="286" mnc="03" apn="internet" proxy="" port="" user="wap" password="wap" mmsc="" type="default,supl" /> <apn carrier="AVEA MMS" mcc="286" mnc="03" apn="mms" proxy="" port="" user="mms" password="mms" mmsc="http://mms.avea.com.tr/servlets/mms" mmsproxy="213.161.151.201" mmsport="8080" type="mms" /> <apn carrier="Tele MMS" mcc="290" mnc="01" apn="internet" proxy="" port="" user="" password="" mmsc="http://mms.tele.gl/mms/wapenc" mmsproxy="10.112.222.37" mmsport="8080" type="mms" /> @@ -1273,8 +1253,8 @@ <apn carrier="T-2 Mms" mcc="293" mnc="64" apn="mms.t-2.net" proxy="" port="" user="" password="" mmsc="http://www.mms.t-2.net:8002" mmsproxy="172.20.18.137" mmsport="8080" type="mms" /> <apn carrier="Tusmobil Internet" mcc="293" mnc="70" apn="internet.tusmobil.si" proxy="" port="" user="tusmobil" password="internet" mmsc="" type="default,supl" /> <apn carrier="Tusmobil MMS" mcc="293" mnc="70" apn="mms.tusmobil.si" proxy="" port="" user="tusmobil" password="mms" mmsc="http://mms.tusmobil.si:8002" mmsproxy="91.185.221.85" mmsport="8080" type="mms" /> - <apn carrier="T-Mobile MK" mcc="294" mnc="01" apn="internet" proxy="" port="" user="internet" password="t-mobile" mmsc="" type="default,supl" /> - <apn carrier="T-Mobile MK MMS" mcc="294" mnc="01" apn="mms" proxy="" port="" user="mms" password="mms" mmsc="http://mms.t-mobile.com.mk" mmsproxy="62.162.155.227" mmsport="8080" type="mms" /> + <apn carrier="T-Mobile MK" mcc="294" mnc="01" apn="internet" proxy="" port="" user="internet" password="t-mobile" mmsc="" authtype="3" type="default,supl" /> + <apn carrier="T-Mobile MK MMS" mcc="294" mnc="01" apn="mms" proxy="" port="" user="mms" password="mms" mmsc="http://mms.t-mobile.com.mk" mmsproxy="62.162.155.227" mmsport="8080" authtype="3" type="mms" /> <apn carrier="Vip internet" mcc="294" mnc="03" apn="vipoperator" proxy="78.40.0.1" port="8080" mmsc="" user="vipoperator" password="vipoperator" type="default,supl" /> <apn carrier="Vip mms" mcc="294" mnc="03" apn="vipoperator.mms" proxy="" port="" mmsproxy="78.40.0.1" mmsport="8080" mmsc="http://mmsc.vipoperator.com.mk" user="" password="" type="mms" /> <apn carrier="Telenor MNE internet" mcc="297" mnc="01" apn="internet" proxy="192.168.246.005" port="8080" mmsc="" user="gprs" password="gprs" type="default,supl" /> @@ -1375,6 +1355,7 @@ <apn carrier="metropcs" mcc="310" mnc="027" apn="wap.metropcs.net" proxy="" port="" user="MDN@mymetropcs.com" password="metropcs" server="http://mms.metropcs.net/servlets/mmsc" mmsc="http://mms.metropcs.net/mmsc" mmsproxy="" mmsport="3128" type="default,supl,mms" /> <apn carrier="myBlue Pix" mcc="310" mnc="030" apn="mmswap.centennialwireless.com" proxy="" port="" user="" password="" mmsc="http://mms.myblue.com/servlets/mms" mmsproxy="63.99.231.135" mmsport="8080" type="mms" /> <apn carrier="Internet" mcc="310" mnc="030" apn="private.centennialwireless.com" proxy="" port="" user="privuser" password="priv" mmsc="" type="default,supl" /> + <apn carrier="Truphone" mcc="310" mnc="030" apn="truphone.com" type="default,dun" /> <apn carrier="CorrMMS" mcc="310" mnc="080" apn="corrmms" proxy="" port="" user="" password="" mmsc="http://mms.iot1.com/corr/mms.php" mmsproxy="66.255.55.23" mmsport="80" type="mms" /> <apn carrier="Internet" mcc="310" mnc="090" apn="isp" type="default,supl" /> <apn carrier="MMS" mcc="310" mnc="090" apn="mms" mmsc="http://mms.edgemobile.net/mmsc" mmsproxy="12.108.12.13" mmsport="3128" type="mms" /> @@ -1417,7 +1398,6 @@ <apn carrier="Cricket AIO" mcc="310" mnc="150" apn="ndo" mmsc="http://mmsc.aiowireless.net" mmsproxy="proxy.aiowireless.net" mmsport="80" type="default,mms,fota,hipri,supl" /> <apn carrier="ATT WAP" mcc="310" mnc="170" apn="wap.cingular" proxy="wireless.cingular.com" port="80" mmsc="http://mmsc.cingular.com" mmsproxy="wireless.cingular.com" mmsport="80" type="default,mms" /> <apn carrier="ATT Broadband" mcc="310" mnc="170" apn="Broadband" type="default,supl" /> - <apn carrier="ATT Nextgenphone" mcc="310" mnc="170" apn="nxtgenphone" mmsc="http://mmsc.mobile.att.net" mmsproxy="proxy.mobile.att.net" mmsport="80" type="default,mms,supl,fota,hipri" protocol="IPV4V6" roaming_protocol="IPV4V6" mtu="1410" /> <apn carrier="DataConnect" mcc="310" mnc="170" apn="isp.cingular" proxy="" port="" user="" password="" mmsc="" type="default,supl" /> <apn carrier="Cingular MMS" mcc="310" mnc="170" apn="wap.cingular" proxy="" port="" user="WAP@CINGULARGPRS.COM" password="CINGULAR1" mmsc="http://mmsc.cingular.com" mmsproxy="66.209.11.32" mmsport="8080" type="mms" /> <apn carrier="ATT WAP" mcc="310" mnc="180" apn="wap.cingular" proxy="wireless.cingular.com" port="80" mmsc="http://mmsc.cingular.com" mmsproxy="wireless.cingular.com" mmsport="80" type="default,mms" /> @@ -1430,10 +1410,9 @@ <apn carrier="T-Mobile MMS" mcc="310" mnc="260" apn="TMUS" mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc" type="mms" protocol="IPV4V6" roaming_protocol="IP" /> <apn carrier="Project Fi - T" mcc="310" mnc="260" apn="h2g2" type="ia" protocol="IPV4V6" roaming_protocol="IPV4V6" mvno_match_data="31026097" mvno_type="IMSI" /> <apn carrier="Project Fi - T" mcc="310" mnc="260" apn="h2g2" user="none" server="*" password="none" mmsc="http://mmsc1.g-mms.com/mms/wapenc" protocol="IPV6" roaming_protocol="IP" mvno_match_data="31026097" mvno_type="IMSI" /> - <apn carrier="T-Mobile IMS" mcc="310" mnc="260" apn="ims" type="ims" protocol="IPV6" /> - <apn carrier="MetroPCS LTE" mcc="310" mnc="260" apn="fast.metropcs.com" user="" password="" authtype="0" proxy="" port="" mmsc="http://metropcs.mmsmvno.com/mms/wapenc" type="default,mms,supl" /> - <apn carrier="MetroPCS LTE IPv6" mcc="310" mnc="260" apn="fast.metropcs.com" user="" password="" authtype="0" proxy="" port="" mmsc="http://metropcs.mmsmvno.com/mms/wapenc" type="default,mms,supl" protocol="IPV6" /> - <apn carrier="MetroPCS" mcc="310" mnc="260" apn="fast.t-mobile.com" port="" mmsc="http://metropcs.mmsmvno.com/mms/wapenc" mvno_type="gid" mvno_match_data="6d38" type="default,mms,supl" /> + <apn carrier="T-Mobile IMS" mcc="310" mnc="260" apn="ims" type="ims" modem_cognitive="true" protocol="IPV6" /> + <apn carrier="MetroPCS 260" mcc="310" mnc="260" apn="fast.metropcs.com" protocol="IPV4V6" roaming_protocol="IPV4V6" mvno_match_data="6D" mvno_type="gid" type="ia" /> + <apn carrier="MetroPCS 260" mcc="310" mnc="260" apn="fast.metropcs.com" mmsc="http://metropcs.mmsmvno.com/mms/wapenc" protocol="IPV6" roaming_protocol="IP" mvno_match_data="6D" mvno_type="gid" type="default,supl,mms" /> <apn carrier="Net10" mcc="310" mnc="260" apn="wap.tracfone" port="8080" mmsc="http://mms.tracfone.com" type="default,mms,supl" /> <apn carrier="Family Mobile" mcc="310" mnc="260" apn="web.omwtoday.com" port="" mmsc="http://wirelessfour.mmsmvno.com/mms/wapenc" mvno_type="gid" mvno_match_data="4d4b" type="default,mms,supl" /> <apn carrier="I-Wireless" mcc="310" mnc="260" apn="i2.iwireless.com" proxy="" port="" user="" password="" mmsc="http://mmsc.iwireless.datonair.net:6672" type="default,supl,mms" /> @@ -1462,6 +1441,7 @@ <apn carrier="StraightTalk T-Mobile" mcc="310" mnc="260" apn="wap.tracfone" proxy="" port="8080" user="" password="" mmsc="http://mmsc.tracfone.com" type="default,supl,mms" /> <apn carrier="nep.data" mcc="310" mnc="290" apn="nep.data" proxy="" port="" type="default,supl" authtype="0" /> <apn carrier="nep.mms" mcc="310" mnc="290" apn="nep.mms" mmsc="http://mmsgprs.com" mmsproxy="" mmsport="80" type="mms" authtype="0" /> + <apn carrier="Truphone" mcc="310" mnc="300" apn="truphone.com" type="default,dun" /> <apn carrier="CellOne NEAZ" mcc="310" mnc="320" apn="isp.cellularoneaz.net" type="default,supl" authtype="0" /> <apn carrier="CellOne NEAZ MMS" mcc="310" mnc="320" apn="wap.c1csky.net" mmsc="http://mmsc.c1neaz.csky.us:6672" mmsproxy="209.4.229.94" mmsport="9401" type="mms" authtype="0" /> <apn carrier="Westlink Internet" mcc="310" mnc="340" apn="internet.westlink" type="default,supl" authtype="0" /> @@ -1484,9 +1464,11 @@ <apn carrier="Consumer Cellular 3G" mcc="310" mnc="410" apn="att.mvno" proxy="66.209.11.32" port="80" mmsc="http://mmsc.cingular.com" mmsproxy="66.209.11.32" mmsport="80" type="default,mms,supl,agps,fota" /> <apn carrier="Consumer Cellular LTE" mcc="310" mnc="410" apn="ccdata" proxy="" port="" mmsc="http://mmsc.mobile.att.net" mmsproxy="proxy.mobile.att.net" mmsport="80" type="default,mms,agps,supl,fota" /> <apn carrier="Good 2Go Mobile" mcc="310" mnc="410" apn="att.mvno" proxy="proxy.mvno.att.ztarmobile.com" port="80" mmsc="http://mmsc.cingular.com" mmsproxy="proxy.mvno.att.ztarmobile.com" mmsport="80" type="default,mms,supl,hipri" /> + <apn carrier="ATT IMS" mcc="310" mnc="410" apn="ims" type="ims" modem_cognitive="true" protocol="IPV4V6" /> + <apn carrier="ATT Nextgenphone" mcc="310" mnc="410" apn="nxtgenphone" mmsc="http://mmsc.mobile.att.net" mmsproxy="proxy.mobile.att.net" mmsport="80" type="default,mms,supl,fota,hipri" protocol="IPV4V6" roaming_protocol="IPV4V6" mtu="1410" /> + <apn carrier="ATT Phone" mcc="310" mnc="410" apn="phone" mmsc="http://mmsc.mobile.att.net" mmsproxy="proxy.mobile.att.net" mmsport="80" type="default,mms,supl,fota,hipri" protocol="IPV4V6" roaming_protocol="IPV4V6" mtu="1410" /> <apn carrier="ATT" mcc="310" mnc="410" apn="wap.cingular" proxy="" port="" user="WAP@CINGULARGPRS.COM" password="" mmsc="http://mmsc.cingular.com" mmsproxy="wireless.cingular.com" mmsport="80" type="default,supl,mms" /> <apn carrier="ATT LTE" mcc="310" mnc="410" apn="pta" proxy="" port="" user="" password="" mmsc="http://mmsc.mobile.att.net" mmsproxy="proxy.mobile.att.net" mmsport="80" type="default,supl,mms" /> - <apn carrier="ATT Phone" mcc="310" mnc="410" apn="phone" mmsc="http://mmsc.mobile.att.net" mmsproxy="proxy.mobile.att.net" mmsport="80" type="default,supl,mms,hipri" /> <apn carrier="ATT Broadband" mcc="310" mnc="410" apn="broadband" user="" password="" mmsc="" type="default,supl" /> <apn carrier="ATT Activation" mcc="310" mnc="410" apn="lwaactivate" user="" password="" mmsc="" protocol="IP" /> <apn carrier="StraightTalk ATT" mcc="310" mnc="410" apn="tfdata" port="80" mmsc="http://mms-tf.net" mmsproxy="mms3.tracfone.com" mmsport="80" type="default,supl,mms" /> @@ -1533,6 +1515,10 @@ <apn carrier="Cellular One Smartphone" mcc="310" mnc="570" apn="internet" type="default,supl" authtype="0" /> <apn carrier="Cellular One MMS" mcc="310" mnc="570" apn="clearsky" mmsc="http://mmsc.mtpcs.csky.us:6672/" mmsproxy="209.4.229.229" mmsport="9201" type="mms" authtype="0" /> <apn carrier="ChinookMMS" mcc="310" mnc="570" apn="wapgw.chinookwireless.net" proxy="" port="" user="" password="" mmsc="http://mms.cellonenation.net/mms/" mmsproxy="204.181.155.195" mmsport="8080" type="mms" /> + <apn carrier="Inland Cellular" mcc="310" mnc="580" apn="internet.inland.com" type="default,mms" authtype="3" mmsc="http://mms.inland3g.com/inland/mms.php" /> + <apn carrier="Inland Cellular FOTA" mcc="310" mnc="580" apn="ota.inland.com" type="fota" bearer="14" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="Inland Cellular LTE" mcc="310" mnc="580" apn="internet.inland.com" type="default,mms,supl" bearer="14" protocol="IPV4V6" roaming_protocol="IPV4V6" mmsc="http://mms.inland3g.com/inland/mms.php" /> + <apn carrier="Inland Cellular Tether" mcc="310" mnc="580" apn="modem.inland.com" type="dun" bearer="14" protocol="IPV4V6" roaming_protocol="IPV4V6" mmsc="http://mms.inland3g.com/inland/mms.php" /> <apn carrier="CellularOne MMS" mcc="310" mnc="590" apn="cellular1wap" proxy="" port="" user="" password="" mmsc="http://mmsc" mmsproxy="172.23.1.252" mmsport="8799" type="mms" /> <apn carrier="EpicINT" mcc="310" mnc="610" apn="internet.epictouch" proxy="" port="" user="" password="" mmsc="" type="default,supl" /> <apn carrier="EpicMMS" mcc="310" mnc="610" apn="mms.epictouch" proxy="" port="" user="" password="" mmsc="http://mmsc.westlinkcom.com/servlets/mms" mmsproxy="63.99.231.135" mmsport="8080" type="mms" /> @@ -1643,6 +1629,7 @@ <apn carrier="Verizon" mcc="311" mnc="480" apn="VZWIMS" type="ims,ia" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer_bitmask="1|2|3|9|10|11|13|14|15" profile_id="2" modem_cognitive="true" max_conns="1023" max_conns_time="300" /> <!-- bearer 1, 2, 3, 9, 10, 11, 13, 14, 15 --> <apn carrier="Verizon" mcc="311" mnc="480" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vzwreseller.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer_bitmask="1|2|3|9|10|11|13|14|15" profile_id="4" modem_cognitive="true" max_conns="1023" max_conns_time="300" /> + <apn carrier="StraightTalk Verizon" mcc="311" mnc="480" apn="TRACFONE.VZWENTP" type="default,dun,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" /> <apn carrier="Verizon Internet" mcc="311" mnc="482" apn="VZWINTERNET" type="default,dun,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" /> <apn carrier="Verizon FOTA" mcc="311" mnc="482" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" /> <apn carrier="Verizon IMS" mcc="311" mnc="482" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" /> @@ -1887,39 +1874,84 @@ <apn carrier="Kcell" mcc="401" mnc="02" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" /> <apn carrier="Kcell MMS" mcc="401" mnc="02" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms.kcell.kz/post" mmsproxy="195.47.255.7" mmsport="8080" type="mms" /> <apn carrier="Kcell WAP" mcc="401" mnc="02" apn="wap" proxy="195.47.255.7" port="8080" mmsc="" user="" password="" type="default,supl" /> - <apn carrier="MTS WAP" mcc="404" mnc="0" apn="WAP" user="wap@wap.mtsindia.in" password="MTS" authtype="3" type="default,supl" /> - <apn carrier="MTS MMS" mcc="404" mnc="0" apn="MMS" user="mms@mms.mtsindia.in" password="MTS" authtype="3" type="mms" /> - <apn carrier="MTS MODEM" mcc="404" mnc="0" apn="Modem" user="internet@internet.mtsindia.in" password="MTS" authtype="3" type="default,supl" /> - <apn carrier="Vodafone" mcc="404" mnc="1" apn="portalnmms" proxy="10.10.1.100" port="9401" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="default,supl,mms" /> - <apn carrier="Vodafone IN MMS" mcc="404" mnc="1" apn="portalnmms" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="mms" /> - <apn carrier="Vodafone IN" mcc="404" mnc="1" apn="www" type="default,supl" /> + <apn carrier="MTS WAP" mcc="404" mnc="00" apn="WAP" user="wap@wap.mtsindia.in" password="MTS" authtype="3" type="default,supl" /> + <apn carrier="MTS MMS" mcc="404" mnc="00" apn="MMS" user="mms@mms.mtsindia.in" password="MTS" authtype="3" type="mms" /> + <apn carrier="MTS MODEM" mcc="404" mnc="00" apn="Modem" user="internet@internet.mtsindia.in" password="MTS" authtype="3" type="default,supl" /> + <apn carrier="Vodafone" mcc="404" mnc="01" apn="portalnmms" proxy="10.10.1.100" port="9401" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="default,supl,mms" /> + <apn carrier="Vodafone IN MMS" mcc="404" mnc="01" apn="portalnmms" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="mms" /> + <apn carrier="Vodafone IN" mcc="404" mnc="01" apn="www" type="default,supl" /> <apn carrier="RCOM" mcc="404" mnc="13" apn="rcomnet" type="default,supl" /> - <apn carrier="Airtel GPRS" mcc="404" mnc="2" apn="airtelgprs.com" type="default,supl" /> - <apn carrier="Airtel Live" mcc="404" mnc="2" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" /> - <apn carrier="Airtel MMS" mcc="404" mnc="2" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" authtype="1" type="mms" /> - <apn carrier="Airtel GPRS" mcc="404" mnc="3" apn="airtelgprs.com" type="default,supl" /> - <apn carrier="Airtel Live" mcc="404" mnc="3" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" /> - <apn carrier="Airtel MMS" mcc="404" mnc="3" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" authtype="1" type="mms" /> - <apn carrier="IDEA Internet" mcc="404" mnc="4" apn="internet" type="default,supl" /> - <apn carrier="IDEA Wap" mcc="404" mnc="4" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" /> - <apn carrier="IDEA MMS" mcc="404" mnc="4" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" /> - <apn carrier="IDEA Mobile" mcc="404" mnc="4" apn="mobile" type="default,supl" /> - <apn carrier="Vodafone" mcc="404" mnc="5" apn="portalnmms" proxy="10.10.1.100" port="9401" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="default,supl,mms" /> - <apn carrier="Vodafone IN MMS" mcc="404" mnc="5" apn="portalnmms" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="mms" /> - <apn carrier="Vodafone IN" mcc="404" mnc="5" apn="www" type="default,supl" /> - <apn carrier="Airtel GPRS" mcc="404" mnc="6" apn="airtelgprs.com" type="default,supl" /> - <apn carrier="Airtel Live" mcc="404" mnc="6" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" /> - <apn carrier="Airtel MMS" mcc="404" mnc="6" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" /> - <apn carrier="IDEA Internet" mcc="404" mnc="7" apn="internet" type="default,supl" /> - <apn carrier="IDEA Wap" mcc="404" mnc="7" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" /> - <apn carrier="IDEA MMS" mcc="404" mnc="7" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" /> - <apn carrier="IDEA Mobile" mcc="404" mnc="7" apn="mobile" type="default,supl" /> - <apn carrier="NetConnect" mcc="404" mnc="9" apn="rcomnet" type="default,supl" /> - <apn carrier="Reliance GPRS" mcc="404" mnc="9" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> - <apn carrier="Smart MMS" mcc="404" mnc="9" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> - <apn carrier="Reliance RTel MMS" mcc="404" mnc="9" apn="MMS" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.7" mmsport="8080" type="mms" /> - <apn carrier="Reliance RTel" mcc="404" mnc="9" apn="SMARTNET" type="default,supl" /> - <apn carrier="Reliance WAP" mcc="404" mnc="9" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> + <apn carrier="Airtel GPRS" mcc="404" mnc="02" apn="airtelgprs.com" type="default,supl" /> + <apn carrier="Airtel Live" mcc="404" mnc="02" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" /> + <apn carrier="Airtel MMS" mcc="404" mnc="02" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" authtype="1" type="mms" /> + <apn carrier="Airtel GPRS" mcc="404" mnc="03" apn="airtelgprs.com" type="default,supl" /> + <apn carrier="Airtel Live" mcc="404" mnc="03" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" /> + <apn carrier="Airtel MMS" mcc="404" mnc="03" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" authtype="1" type="mms" /> + <apn carrier="IDEA Internet" mcc="404" mnc="04" apn="internet" type="default,supl" /> + <apn carrier="IDEA Wap" mcc="404" mnc="04" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" /> + <apn carrier="IDEA MMS" mcc="404" mnc="04" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" /> + <apn carrier="IDEA Mobile" mcc="404" mnc="04" apn="mobile" type="default,supl" /> + <apn carrier="Vodafone" mcc="404" mnc="05" apn="portalnmms" proxy="10.10.1.100" port="9401" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="default,supl,mms" /> + <apn carrier="Vodafone IN MMS" mcc="404" mnc="05" apn="portalnmms" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="mms" /> + <apn carrier="Vodafone IN" mcc="404" mnc="05" apn="www" type="default,supl" /> + <apn carrier="Airtel GPRS" mcc="404" mnc="06" apn="airtelgprs.com" type="default,supl" /> + <apn carrier="Airtel Live" mcc="404" mnc="06" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" /> + <apn carrier="Airtel MMS" mcc="404" mnc="06" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" /> + <apn carrier="IDEA Internet" mcc="404" mnc="07" apn="internet" type="default,supl" /> + <apn carrier="IDEA Wap" mcc="404" mnc="07" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" /> + <apn carrier="IDEA MMS" mcc="404" mnc="07" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" /> + <apn carrier="IDEA Mobile" mcc="404" mnc="07" apn="mobile" type="default,supl" /> + <apn carrier="NetConnect" mcc="404" mnc="09" apn="rcomnet" type="default,supl" /> + <apn carrier="Reliance GPRS" mcc="404" mnc="09" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> + <apn carrier="Reliance Jio" apn="jionet" type="default,supl" roaming_protocol="IPV4V6" /> + <apn carrier="Jio Internet" mcc="405" mnc="840" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="840" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="854" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="854" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="855" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="855" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="856" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="856" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="857" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="857" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="858" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="858" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="859" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="859" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="860" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="860" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="861" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="861" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="862" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="862" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="863" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="863" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="864" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="864" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="865" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="865" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="866" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="866" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="867" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="867" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="868" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="868" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="869" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="869" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="870" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="870" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="871" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="871" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="872" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="872" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="873" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="873" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Jio Internet" mcc="405" mnc="874" apn="jionet" type="default,supl" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" /> + <apn carrier="IMS" mcc="405" mnc="874" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IP" /> + <apn carrier="Smart MMS" mcc="404" mnc="09" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="Reliance RTel MMS" mcc="404" mnc="09" apn="MMS" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.7" mmsport="8080" type="mms" /> + <apn carrier="Reliance RTel" mcc="404" mnc="09" apn="SMARTNET" type="default,supl" /> + <apn carrier="Reliance WAP" mcc="404" mnc="09" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> <apn carrier="Airtel GPRS" mcc="404" mnc="10" apn="airtelgprs.com" type="default,supl" /> <apn carrier="Airtel Live" mcc="404" mnc="10" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" /> <apn carrier="Airtel MMS" mcc="404" mnc="10" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" /> @@ -2244,10 +2276,10 @@ <apn carrier="Airtel GPRS" mcc="404" mnc="98" apn="airtelgprs.com" type="default,supl" /> <apn carrier="Airtel Live" mcc="404" mnc="98" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" /> <apn carrier="Airtel MMS" mcc="404" mnc="98" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" /> - <apn carrier="NetConnect" mcc="405" mnc="1" apn="rcomnet" type="default,supl" /> - <apn carrier="Reliance GPRS" mcc="405" mnc="1" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> - <apn carrier="Smart MMS" mcc="405" mnc="1" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> - <apn carrier="Reliance MMS" mcc="405" mnc="1" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="NetConnect" mcc="405" mnc="01" apn="rcomnet" type="default,supl" /> + <apn carrier="Reliance GPRS" mcc="405" mnc="01" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> + <apn carrier="Smart MMS" mcc="405" mnc="01" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="Reliance MMS" mcc="405" mnc="01" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="25" apn="TATA.DOCOMO.INTERNET" type="default,supl" /> <apn carrier="TATA GPRS" mcc="405" mnc="25" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" /> <apn carrier="Tata MMS" mcc="405" mnc="25" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" /> @@ -2276,10 +2308,10 @@ <apn carrier="Tata Docomo 3G" mcc="405" mnc="29" apn="tatadocomo3g" type="default,supl" /> <apn carrier="TA TA DoCoMo" mcc="405" mnc="29" apn="TATA.DOCOMO.INTERNET" type="default,supl" /> <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="29" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" /> - <apn carrier="NetConnect" mcc="405" mnc="3" apn="rcomnet" type="default,supl" /> - <apn carrier="Reliance GPRS" mcc="405" mnc="3" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> - <apn carrier="Smart MMS" mcc="405" mnc="3" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> - <apn carrier="Reliance MMS" mcc="405" mnc="3" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://mms.rcom.co.in/mms" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="NetConnect" mcc="405" mnc="03" apn="rcomnet" type="default,supl" /> + <apn carrier="Reliance GPRS" mcc="405" mnc="03" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> + <apn carrier="Smart MMS" mcc="405" mnc="03" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="Reliance MMS" mcc="405" mnc="03" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://mms.rcom.co.in/mms" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="30" apn="TATA.DOCOMO.INTERNET" type="default,supl" /> <apn carrier="TATA GPRS" mcc="405" mnc="30" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" /> <apn carrier="Tata MMS" mcc="405" mnc="30" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" /> @@ -2340,9 +2372,9 @@ <apn carrier="Tata Docomo 3G" mcc="405" mnc="39" apn="tatadocomo3g" type="default,supl" /> <apn carrier="TA TA DoCoMo" mcc="405" mnc="39" apn="TATA.DOCOMO.INTERNET" type="default,supl" /> <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="39" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" /> - <apn carrier="NetConnect" mcc="405" mnc="4" apn="rcomnet" type="default,supl" /> - <apn carrier="Reliance GPRS" mcc="405" mnc="4" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> - <apn carrier="Smart MMS" mcc="405" mnc="4" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="NetConnect" mcc="405" mnc="04" apn="rcomnet" type="default,supl" /> + <apn carrier="Reliance GPRS" mcc="405" mnc="04" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> + <apn carrier="Smart MMS" mcc="405" mnc="04" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="40" apn="TATA.DOCOMO.INTERNET" type="default,supl" /> <apn carrier="TATA GPRS" mcc="405" mnc="40" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" /> <apn carrier="Tata MMS" mcc="405" mnc="40" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" /> @@ -2391,29 +2423,29 @@ <apn carrier="Tata Docomo 3G" mcc="405" mnc="47" apn="tatadocomo3g" type="default,supl" /> <apn carrier="TA TA DoCoMo" mcc="405" mnc="47" apn="TATA.DOCOMO.INTERNET" type="default,supl" /> <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="47" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" /> - <apn carrier="NetConnect" mcc="405" mnc="5" apn="rcomnet" type="default,supl" /> - <apn carrier="Reliance GPRS" mcc="405" mnc="5" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> - <apn carrier="Smart MMS" mcc="405" mnc="5" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> - <apn carrier="Reliance MMS" mcc="405" mnc="5" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://mms.rcom.co.in/mms" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> - <apn carrier="NetConnect" mcc="405" mnc="6" apn="rcomnet" type="default,supl" /> - <apn carrier="Reliance GPRS" mcc="405" mnc="6" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> - <apn carrier="Smart MMS" mcc="405" mnc="6" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> - <apn carrier="Reliance MMS" mcc="405" mnc="6" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://mms.rcom.co.in/mms" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> - <apn carrier="NetConnect" mcc="405" mnc="7" apn="rcomnet" type="default,supl" /> - <apn carrier="Reliance GPRS" mcc="405" mnc="7" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> - <apn carrier="Smart MMS" mcc="405" mnc="7" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> - <apn carrier="Reliance MMS" mcc="405" mnc="7" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://mms.rcom.co.in/mms" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> - <apn carrier="NetConnect" mcc="405" mnc="8" apn="rcomnet" type="default,supl" /> - <apn carrier="Reliance GPRS" mcc="405" mnc="8" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> - <apn carrier="Smart MMS" mcc="405" mnc="8" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> - <apn carrier="Reliance MMS" mcc="405" mnc="8" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://mms.rcom.co.in/mms" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="NetConnect" mcc="405" mnc="05" apn="rcomnet" type="default,supl" /> + <apn carrier="Reliance GPRS" mcc="405" mnc="05" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> + <apn carrier="Smart MMS" mcc="405" mnc="05" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="Reliance MMS" mcc="405" mnc="05" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://mms.rcom.co.in/mms" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="NetConnect" mcc="405" mnc="06" apn="rcomnet" type="default,supl" /> + <apn carrier="Reliance GPRS" mcc="405" mnc="06" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> + <apn carrier="Smart MMS" mcc="405" mnc="06" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="Reliance MMS" mcc="405" mnc="06" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://mms.rcom.co.in/mms" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="NetConnect" mcc="405" mnc="07" apn="rcomnet" type="default,supl" /> + <apn carrier="Reliance GPRS" mcc="405" mnc="07" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> + <apn carrier="Smart MMS" mcc="405" mnc="07" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="Reliance MMS" mcc="405" mnc="07" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://mms.rcom.co.in/mms" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="NetConnect" mcc="405" mnc="08" apn="rcomnet" type="default,supl" /> + <apn carrier="Reliance GPRS" mcc="405" mnc="08" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> + <apn carrier="Smart MMS" mcc="405" mnc="08" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="Reliance MMS" mcc="405" mnc="08" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://mms.rcom.co.in/mms" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> <apn carrier="MTS WAP" mcc="405" mnc="89" apn="WAP" user="wap@wap.mtsindia.in" password="MTS" authtype="3" type="default,supl" /> <apn carrier="MTS MMS" mcc="405" mnc="89" apn="MMS" user="mms@mms.mtsindia.in" password="MTS" authtype="3" type="mms" /> <apn carrier="MTS MODEM" mcc="405" mnc="89" apn="Modem" user="internet@internet.mtsindia.in" password="MTS" authtype="3" type="default,supl" /> - <apn carrier="NetConnect" mcc="405" mnc="9" apn="rcomnet" type="default,supl" /> - <apn carrier="Reliance GPRS" mcc="405" mnc="9" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> - <apn carrier="Smart MMS" mcc="405" mnc="9" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> - <apn carrier="Reliance MMS" mcc="405" mnc="9" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://mms.rcom.co.in/mms" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="NetConnect" mcc="405" mnc="09" apn="rcomnet" type="default,supl" /> + <apn carrier="Reliance GPRS" mcc="405" mnc="09" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> + <apn carrier="Smart MMS" mcc="405" mnc="09" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> + <apn carrier="Reliance MMS" mcc="405" mnc="09" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://mms.rcom.co.in/mms" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> <apn carrier="NetConnect" mcc="405" mnc="10" apn="rcomnet" type="default,supl" /> <apn carrier="Reliance GPRS" mcc="405" mnc="10" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" /> <apn carrier="Smart MMS" mcc="405" mnc="10" apn="rcommms" proxy="10.239.221.5" port="8080" mmsc="http://10.239.221.47/mms/" mmsproxy="10.239.221.5" mmsport="8080" type="mms" /> @@ -2667,68 +2699,6 @@ <apn carrier="IDEA Mobile" mcc="405" mnc="853" apn="mobile" type="default,supl" /> <apn carrier="IDEA" mcc="405" mnc="853" apn="internet" type="default,supl" /> <apn carrier="IDEA MMS" mcc="405" mnc="853" apn="mmsc" mmsc="http://10.4.42.21:8002/" mmsproxy="10.4.42.15" mmsport="8080" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="854" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="854" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="854" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="855" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="855" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="855" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="856" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="856" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="856" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="857" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="857" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="857" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="858" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="858" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="858" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="859" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="859" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="859" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="860" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="860" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="860" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="861" apn="www" type="default,supl" /> - <apn carrier="Loop Internet" mcc="405" mnc="862" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="862" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="862" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="863" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="863" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="863" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="864" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="864" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="864" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="865" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="865" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="865" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="866" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="866" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="866" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="867" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="867" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="867" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="868" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="868" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="868" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="869" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="869" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="869" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="870" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="870" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="870" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="LOOP GPRS" mcc="405" mnc="871" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="871" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="871" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="871" apn="www" type="default,supl" /> - <apn carrier="Loop Internet" mcc="405" mnc="872" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="872" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="872" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="873" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="873" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="873" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> - <apn carrier="Loop Internet" mcc="405" mnc="874" apn="www" type="default,supl" /> - <apn carrier="LOOP WAP" mcc="405" mnc="874" apn="mizone" proxy="10.0.0.10" port="9401" user="Mobile phone number" password="bplmmsc" authtype="1" type="default,supl" /> - <apn carrier="BPL MMS" mcc="405" mnc="874" apn="mizone" user="Mobile phone number" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" authtype="1" type="mms" /> <apn carrier="Uninor" mcc="405" mnc="875" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" /> <apn carrier="Uninor Internet" mcc="405" mnc="875" apn="Uninor" type="default,supl" /> <apn carrier="Uninor" mcc="405" mnc="876" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" /> @@ -2910,14 +2880,12 @@ <apn carrier="Golan Telecom" mcc="425" mnc="08" apn="internet.golantelecom.net.il" authtype="0" type="default,supl" /> <apn carrier="Golan Telecom MMS" mcc="425" mnc="08" apn="mms.golantelecom.net.il" mmsc="http://mmsc.golantelecom.co.il" mmsproxy="10.224.228.81" mmsport="80" authtype="0" type="mms" /> <apn carrier="YouPhone 3G" mcc="425" mnc="14" apn="data.youphone.co.il" mmsc="http://192.168.220.15/servlets/mms" mmsport="80" type="default,supl,mms" /> - <apn carrier="Internet" mcc="426" mnc="01" apn="internet.batelco.com" type="default,supl" /> - <apn carrier="batelco WAP" mcc="426" mnc="01" apn="wap.batelco.com" proxy="192.168.1.2" port="80" user="wap" password="wap" type="default,supl" /> - <apn carrier="batelco MMS" mcc="426" mnc="01" apn="mms.batelco.com" proxy="" port="" mmsproxy="192.168.1.2" mmsport="80" mmsc="http://192.168.36.10/servlets/mms" type="mms" /> - <apn carrier="BATELCO BH" mcc="426" mnc="01" apn="internet.batelco.com" user="internet" password="internet" type="default,supl" /> - <apn carrier="BATELCO BH MMS" mcc="426" mnc="01" apn="mms.batelco.com" user="wap" password="wap" mmsc="http://192.168.36.10/servlets/mms" mmsproxy="192.168.1.2" mmsport="80" type="mms" /> - <apn carrier="Zain Wap" mcc="426" mnc="02" apn="wap" proxy="172.18.85.34" port="8080" mmsc="" user="wap" password="wap" type="default,supl" /> - <apn carrier="Zain Internet" mcc="426" mnc="02" apn="internet" user="internet" password="internet" type="default,supl" /> - <apn carrier="Zain MMS" mcc="426" mnc="02" apn="mms" proxy="" port="" mmsproxy="172.18.85.34" mmsport="8080" mmsc="http:// 172.18.83.129" user="mms" password="mms" type="mms" /> + <apn carrier="Batelco Internet" mcc="426" mnc="01" apn="internet.batelco.com" type="default,supl" /> + <apn carrier="Batelco WAP" mcc="426" mnc="01" apn="wap.batelco.com" user="wap" password="wap" authtype="0" proxy="192.168.1.2" port="80" type="default,supl" /> + <apn carrier="Batelco MMS" mcc="426" mnc="01" apn="mms.batelco.com" user="mms" password="mms" authtype="0" mmsc="http://192.168.36.10/servlets/mms" mmsproxy="192.168.1.2" mmsport="80" type="mms" /> + <apn carrier="Zain BH WAP" mcc="426" mnc="02" apn="wap" user="wap" password="wap" authtype="0" proxy="172.18.85.33" port="80" type="default,supl" /> + <apn carrier="Zain BH Internet" mcc="426" mnc="02" apn="internet" user="internet" password="internet" authtype="0" type="default,supl" /> + <apn carrier="Zain BH MMS" mcc="426" mnc="02" apn="mms" user="mms" password="mms" authtype="0" mmsc="http://172.18.83.129:80/" mmsproxy="172.18.85.34" mmsport="80" type="mms" /> <apn carrier="MTC Vodafone BH" mcc="426" mnc="02" apn="internet" user="internet" password="internet" type="default,supl" /> <apn carrier="MTC Vodafone BH MMS" mcc="426" mnc="02" apn="mms" user="mms" password="mms" mmsc="http://172.18.83.129" mmsproxy="172.18.85.34" mmsport="9201" type="mms" /> <apn carrier="VIVA GPRS" mcc="426" mnc="04" apn="viva.bh" type="default,supl" /> @@ -2947,7 +2915,7 @@ <apn carrier="Ncell WAP" mcc="429" mnc="02" apn="web" proxy="192.168.19.15" port="8080" type="default,supl" /> <apn carrier="MCI-GPRS" mcc="432" mnc="11" apn="mcinet" proxy="192.168.194.73" port="8080" type="default,supl" /> <apn carrier="MCI-MMS" mcc="432" mnc="11" apn="mcinet" mmsproxy="192.168.193.134" mmsport="38090" mmsc="http://mci.ir" type="mms" /> - <apn carrier="Irancell-GPRS" mcc="432" mnc="35" apn="mtnirancell" proxy="10.131.26.138" port="8080" type="default,supl" /> + <apn carrier="Irancell-Internet" mcc="432" mnc="35" apn="mtnirancell" type="default,supl" /> <apn carrier="Irancell-MMS" mcc="432" mnc="35" apn="mtnirancell" mmsproxy="10.131.26.138" mmsport="8080" mmsc="http://mms:8002" type="mms" /> <apn carrier="Beeline UZ" mcc="434" mnc="04" apn="internet.beeline.uz" user="beeline" password="beeline" type="default,supl" /> <apn carrier="Beeline UZ MMS" mcc="434" mnc="04" apn="mms.beeline.uz" user="beeline" password="beeline" mmsc="http://mms" mmsproxy="172.30.30.166" mmsport="8080" type="mms" /> @@ -3049,9 +3017,9 @@ <apn carrier="Beeline MMS" mcc="452" mnc="07" apn="mms" proxy="" port="" mmsproxy="10.16.70.199" mmsport="8080" mmsc="http://mms" user="mms" password="mms" authtype="1" type="mms" /> <apn carrier="BeeLine VN" mcc="452" mnc="07" apn="internet" type="default,supl" /> <apn carrier="Beeline VN MMS" mcc="452" mnc="07" apn="MMS" user="mms" password="mms" mmsc="http://mms" mmsproxy="10.16.70.199" mmsport="8080" type="mms" /> - <apn carrier="VIETNAMOBILE MMS" mcc="452" mnc="5" apn="mms" proxy="" port="" user="" password="" mmsc="http://10.10.128.58/servlets/mms" mmsproxy="10.10.128.44" mmsport="8080" type="mms" /> - <apn carrier="VIETNAMOBILE" mcc="452" mnc="5" apn="wap" proxy="10.10.128.44" port="8080" user="" password="" mmsc="" type="default,supl" /> - <apn carrier="Beeline VN MMS" mcc="452" mnc="7" apn="MMS" proxy="" port="" user="mms" password="mms" mmsc="http://mms" mmsproxy="10.16.70.199" mmsport="8080" type="mms" /> + <apn carrier="VIETNAMOBILE MMS" mcc="452" mnc="05" apn="mms" proxy="" port="" user="" password="" mmsc="http://10.10.128.58/servlets/mms" mmsproxy="10.10.128.44" mmsport="8080" type="mms" /> + <apn carrier="VIETNAMOBILE" mcc="452" mnc="05" apn="wap" proxy="10.10.128.44" port="8080" user="" password="" mmsc="" type="default,supl" /> + <apn carrier="Beeline VN MMS" mcc="452" mnc="07" apn="MMS" proxy="" port="" user="mms" password="mms" mmsc="http://mms" mmsproxy="10.16.70.199" mmsport="8080" type="mms" /> <apn carrier="csl" mcc="454" mnc="00" apn="mobile" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.51" mmsport="8080" type="default,mms,hipri" authtype="3" mvno_match_data="01020000" mvno_type="gid" /> <apn carrier="csl Tethering" mcc="454" mnc="00" apn="lte.internet" type="dun" mvno_match_data="01020000" mvno_type="gid" /> <apn carrier="csl" mcc="454" mnc="00" apn="mobile" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.51" mmsport="8080" authtype="3" type="default,mms,hipri" /> @@ -3093,6 +3061,7 @@ <apn carrier="SmarTone" mcc="454" mnc="06" apn="SmarTone" mmsc="http://mms.smartone.com/server" mmsproxy="10.9.9.9" mmsport="8080" authtype="3" type="default,supl,mms" /> <apn carrier="3gnet" mcc="454" mnc="07" apn="3gnet" type="default,supl" /> <apn carrier="3gwap" mcc="454" mnc="07" apn="3gwap" proxy="10.0.0.172" port="80" type="default,supl" /> + <apn carrier="Truphone" mcc="454" mnc="08" apn="truphone.com" type="default,dun" /> <apn carrier="SCT" mcc="454" mnc="09" apn="cmnet" type="default" /> <apn carrier="csl" mcc="454" mnc="10" apn="hkcsl" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.51" mmsport="8080" type="default,mms,hipri" authtype="3" /> <apn carrier="csl Tethering" mcc="454" mnc="10" apn="internet" type="dun" /> @@ -3314,6 +3283,7 @@ <apn carrier="Apex Telecom" mcc="505" mnc="02" apn="splns357" user="" password="" mmsc="" type="default,supl" /> <apn carrier="Boost MMS" mcc="505" mnc="02" apn="mms" user="" password="" proxy="61.88.190.10" port="8070" mmsc="http://mmsc.optus.com.au:8002/" mmsproxy="61.88.190.10" mmsport="8070" type="mms" authtype="3"/> <apn carrier="Boost Mobile" mcc="505" mnc="02" apn="yesinternet" user="" password="" proxy="" port="" mmsc="" type="default,supl" authtype="3"/> + <apn carrier="Truphone" mcc="505" mnc="02" apn="truphone.com" type="default,dun" mvno_match_data="50502100" mvno_type="imsi" /> <apn carrier="Vodafone Live!" mcc="505" mnc="03" apn="live.vodafone.com" proxy="10.202.2.60" port="8080" mmsc="" user="" password="" type="default,supl" /> <apn carrier="Vodafone PXT" mcc="505" mnc="03" apn="live.vodafone.com" proxy="" port="" mmsproxy="10.202.2.60" mmsport="8080" mmsc="http://pxt.vodafone.net.au/pxtsend" user="" password="" type="mms" /> <apn carrier="Vodafone AU" mcc="505" mnc="03" apn="live.vodafone.com" user="*" password="*" server="*" mmsc="http://pxt.vodafone.net.au/pxtsend" mmsproxy="10.202.2.60" mmsport="8080" type="mms,default,supl" /> @@ -3325,6 +3295,7 @@ <apn carrier="3Internet" mcc="505" mnc="12" apn="3netaccess" type="default,supl" /> <apn carrier="3" mcc="505" mnc="12" apn="3services" mmsc="http://mmsc.three.net.au:10021/mmsc" mmsproxy="10.176.57.25" mmsport="8799" type="default,supl,mms" /> <apn carrier="Lycamobile AU" mcc="505" mnc="19" apn="data.lycamobile.com.au" user="lmau" password="plus" type="default,supl" /> + <apn carrier="Truphone" mcc="505" mnc="38" apn="truphone.com" type="default,supl" /> <apn carrier="Telstra MMS" mcc="505" mnc="71" apn="Telstra.mms" mmsc="http://mmsc.telstra.com:8002" mmsproxy="10.1.1.180" mmsport="80" type="mms" /> <apn carrier="Telstra Internet" mcc="505" mnc="71" apn="Telstra.wap" type="default,supl" /> <apn carrier="Telstra MMS" mcc="505" mnc="72" apn="Telstra.mms" mmsc="http://mmsc.telstra.com:8002" mmsproxy="10.1.1.180" mmsport="80" type="mms" /> @@ -3346,8 +3317,8 @@ <apn carrier="Smartfren4G" mcc="510" mnc="09" apn="Smartfren4G" user="smartfren" password="smartfren" authtype="3" type="default,supl" protocol="IPV4V6" /> <apn carrier="Smartfren MMS" mcc="510" mnc="09" apn="smartfren" user="smartfren" password="smartfren" mmsc="http://10.17.93.103:8080" mmsproxy="10.17.27.250" mmsport="8080" authtype="3" type="mms" protocol="IPV4V6" /> <apn carrier="Smartfren IMS" mcc="510" mnc="09" apn="IMS" type="ims" /> - <apn carrier="AXIS" mcc="510" mnc="8" apn="AXIS" proxy="" port="" user="axis" password="123456" mmsc="" type="default,supl" /> - <apn carrier="AXIS MMS" mcc="510" mnc="8" apn="AXISmms" proxy="" port="" user="axis" password="123456" mmsc="http://mmsc.AXIS" mmsproxy="10.8.3.8" mmsport="8080" type="mms" /> + <apn carrier="AXIS" mcc="510" mnc="08" apn="AXIS" proxy="" port="" user="axis" password="123456" mmsc="" type="default,supl" /> + <apn carrier="AXIS MMS" mcc="510" mnc="08" apn="AXISmms" proxy="" port="" user="axis" password="123456" mmsc="http://mmsc.AXIS" mmsproxy="10.8.3.8" mmsport="8080" type="mms" /> <apn carrier="TSEL BROADBAND" mcc="510" mnc="10" apn="internet" proxy="" port="" user="wap" password="wap123" authtype="1" type="default,supl" /> <apn carrier="TSEL TIMEBASED" mcc="510" mnc="10" apn="flash" proxy="" port="" user="wap" password="wap123" authtype="1" type="default,supl" /> <apn carrier="TSEL MMS" mcc="510" mnc="10" apn="mms" mmsproxy="10.1.89.150" mmsport="8000" mmsc="http://mms.telkomsel.com" user="wap" password="wap123" authtype="1" type="mms" /> @@ -3374,9 +3345,15 @@ <apn carrier="myGlobe Connect" mcc="515" mnc="02" apn="www.globe.com.ph" proxy="203.177.042.214" port="8080" type="default,supl" /> <apn carrier="MyGlobe Stream" mcc="515" mnc="02" apn="real.globe.com.ph" type="default,supl" /> <apn carrier="myGlobe MMS" mcc="515" mnc="02" apn="mms.globe.com.ph" mmsc="http://192.40.100.22:10021/mmsc" mmsproxy="203.177.42.214" mmsport="8080" type="mms" /> - <apn carrier="Smart GPRS" mcc="515" mnc="03" apn="Smart1" proxy="10.102.61.46" port="8080" type="default,supl" /> - <apn carrier="Smart Internet" mcc="515" mnc="03" apn="internet" proxy="10.102.61.46" port="8080" type="default,supl" /> - <apn carrier="Smart MMS" mcc="515" mnc="03" apn="mms" mmsc="http://10.102.61.238:8002" mmsproxy="10.102.61.46" mmsport="8080" type="mms" /> + <apn carrier="SMART Internet postpaid" mcc="515" mnc="03" apn="internet" authtype="1" type="default" /> + <apn carrier="SMART HTTP postpaid" mcc="515" mnc="03" apn="smart1" proxy="10.102.61.46" port="9201" user="smartwap" password="smartwap" authtype="1" type="default" /> + <apn carrier="SMART(3G) Internet postpaid" mcc="515" mnc="03" apn="internet" type="default,supl"/> + <apn carrier="SMART(3G) MMS postpaid" mcc="515" mnc="03" apn="mms" mmsc="http://10.102.61.238:8002" mmsproxy="10.102.61.46" mmsport="8080" type="mms" /> + <apn carrier="SMART(3G) Internet prepaid" mcc="515" mnc="03" apn="internet" type="default,supl" /> + <apn carrier="SMART(3G) HTTP prepaid" mcc="515" mnc="03" apn="smart1" proxy="10.102.61.46" port="80" user="smartwap" password="smartwap" authtype="1" type="default" /> + <apn carrier="SMART(3G) MMS prepaid" mcc="515" mnc="03" apn="mms" user="smartwap" password="smartwap" mmsc="http://10.102.61.238:8002" mmsproxy="10.102.61.46" mmsport="8080" authtype="1" type="mms" /> + <apn carrier="SMART MMS postpaid" mcc="515" mnc="03" apn="mms" user="smartwap" password="smartwap" mmsc="http://10.102.61.238:8002" mmsproxy="10.102.61.46" mmsport="9201" authtype="1" type="mms" /> + <apn carrier="SMART(3G) HTTP postpaid" mcc="515" mnc="03" apn="smart1" proxy="10.102.61.46" port="9201" authtype="1" type="default" /> <apn carrier="Sun Internet" mcc="515" mnc="05" apn="minternet" type="default,supl" /> <apn carrier="Sun Streaming" mcc="515" mnc="05" apn="minternet" type="default,supl" /> <apn carrier="SUN WAP GPRS" mcc="515" mnc="05" apn="wap" proxy="202.138.159.078" port="8080" type="default,supl" /> @@ -3629,7 +3606,6 @@ <apn carrier="Vodacom ZA" mcc="655" mnc="01" apn="internet" type="default,supl" /> <apn carrier="Vodacom ZA MMS" mcc="655" mnc="01" apn="mms.vodacom.net" mmsc="http://mmsc.vodacom4me.co.za/" mmsproxy="196.6.128.13" mmsport="8080" type="mms" /> <apn carrier="LTE.Vodacom" mcc="655" mnc="01" apn="lte.vodacom.za" type="default,supl" /> - <apn carrier="Vlive!" mcc="655" mnc="01" apn="vlive" proxy="196.6.128.12" port="8080" type="default,supl" /> <apn carrier="8ta internet" mcc="655" mnc="02" apn="internet" type="default,supl" /> <apn carrier="8ta mms" mcc="655" mnc="02" apn="mms" mmsc="http://mms.8ta.com:38090/was" mmsproxy="41.151.254.162" mmsport="8080" type="mms" /> <apn carrier="CELL C INTERNET" mcc="655" mnc="07" apn="internet" proxy="" port="8080" mmsproxy="196.31.116.250" mmsport="8080" mmsc="http://mms.cmobile.co.za" type="*" /> @@ -3826,7 +3802,7 @@ <apn carrier="Internet Movil" mcc="730" mnc="01" apn="imovil.entelpcs.cl" user="entelpcs" password="entelpcs" type="default,supl" /> <apn carrier="Entel PCS" mcc="730" mnc="01" apn="bam.entelpcs.cl" user="entelpcs" password="entelpcs" proxy="10.99.0.10" port="8080" type="default,supl" /> <apn carrier="Entel MMS" mcc="730" mnc="01" apn="mms.entelpcs.cl" proxy="" port="" mmsproxy="10.99.0.10" mmsport="8080" mmsc="http://mmsc.entelpcs.cl" user="entelpcs" password="entelmms" type="mms" /> - <apn carrier="APLICACIONES" mcc="730" mnc="02" apn="wap.tmovil.cl" user="wap" password="wap" type="default,supl" /> + <apn carrier="Movistar INTERNET" mcc="730" mnc="02" apn="wap.tmovil.cl" user="wap" password="wap" type="default,supl" /> <apn carrier="Movistar MMS" mcc="730" mnc="02" apn="mms.tmovil.cl" proxy="" port="" mmsproxy="172.17.8.10" mmsport="8080" mmsc="http://mms.movistar.cl" user="mms" password="mms" type="mms" /> <apn carrier="Movistar CL" mcc="730" mnc="02" apn="web.tmovil.cl" user="web" password="web" type="default,supl" /> <apn carrier="Movistar CL MMS" mcc="730" mnc="02" apn="mms.tmovil.cl" user="mms" password="mms" mmsc="http://mms.tmovil.cl" mmsproxy="172.017.008.011" mmsport="9201" type="mms" /> diff --git a/prebuilt/common/etc/init.local.rc b/prebuilt/common/etc/init.local.rc index 1f66b77..2a5316d 100644 --- a/prebuilt/common/etc/init.local.rc +++ b/prebuilt/common/etc/init.local.rc @@ -29,6 +29,10 @@ on post-fs-data # Run sysinit start sysinit + # Change permissions on fsck log so it can be added to the dropbox + chown root log /dev/fscklogs/log + chmod 0640 /dev/fscklogs/log + on boot # interactive governor chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_rate @@ -102,6 +106,18 @@ on boot chmod 0664 /sys/block/mmcblk0/queue/scheduler restorecon /sys/block/mmcblk0/queue/scheduler + chown system system /sys/block/sda/queue/scheduler + chmod 0664 /sys/block/sda/queue/scheduler + restorecon /sys/block/sda/queue/scheduler + + chown system system /sys/block/sde/queue/scheduler + chmod 0664 /sys/block/sde/queue/scheduler + restorecon /sys/block/sde/queue/scheduler + + chown system system /sys/block/dm-0/queue/scheduler + chmod 0664 /sys/block/dm-0/queue/scheduler + restorecon /sys/block/dm-0/queue/scheduler + chown system system /dev/cpuctl/cpu.notify_on_migrate chmod 0664 /dev/cpuctl/cpu.notify_on_migrate @@ -114,6 +130,12 @@ on boot chmod 0660 /sys/devices/virtual/graphics/fb0/rgb chown system system /sys/devices/virtual/graphics/fb0/sre chmod 0660 /sys/devices/virtual/graphics/fb0/sre + chown system system /sys/devices/virtual/graphics/fb0/color_enhance + chmod 0660 /sys/devices/virtual/graphics/fb0/color_enhance + + # Vibrator intensity control + chown system system /sys/class/timed_output/vibrator/vtg_level + chmod 0644 /sys/class/timed_output/vibrator/vtg_level # Define TCP delayed ack settings for WiFi & LTE chown system system /sys/kernel/ipv4/tcp_delack_seg @@ -165,6 +187,10 @@ on property:persist.radio.noril=1 # Configure IO scheduler on property:sys.io.scheduler=* write /sys/block/mmcblk0/queue/scheduler ${sys.io.scheduler} + write /sys/block/mmcblk1/queue/scheduler ${sys.io.scheduler} + write /sys/block/sda/queue/scheduler ${sys.io.scheduler} + write /sys/block/sde/queue/scheduler ${sys.io.scheduler} + write /sys/block/dm-0/queue/scheduler ${sys.io.scheduler} on property:persist.sys.io.scheduler=* setprop sys.io.scheduler ${persist.sys.io.scheduler} @@ -172,8 +198,16 @@ on property:persist.sys.io.scheduler=* # Set slice_idle to 0 for CFQ on property:sys.io.scheduler=cfq write /sys/block/mmcblk0/queue/iosched/slice_idle 0 + write /sys/block/mmcblk1/queue/iosched/slice_idle 0 + write /sys/block/sda/queue/iosched/slice_idle 0 + write /sys/block/sde/queue/iosched/slice_idle 0 + write /sys/block/dm-0/queue/iosched/slice_idle 0 # Set slice_idle to 0 for BFQ on property:sys.io.scheduler=bfq write /sys/block/mmcblk0/queue/iosched/slice_idle 0 + write /sys/block/mmcblk1/queue/iosched/slice_idle 0 + write /sys/block/sda/queue/iosched/slice_idle 0 + write /sys/block/sde/queue/iosched/slice_idle 0 + write /sys/block/dm-0/queue/iosched/slice_idle 0 diff --git a/prebuilt/common/etc/selective-spn-conf.xml b/prebuilt/common/etc/selective-spn-conf.xml deleted file mode 100755 index e227705..0000000 --- a/prebuilt/common/etc/selective-spn-conf.xml +++ /dev/null @@ -1,1710 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> - -<spnOverrides> - <!-- Afghanistan --> - <spnOverride numeric="41201" spn="AWCC" /> - <spnOverride numeric="41240" spn="Areeba" /> - <spnOverride numeric="41250" spn="Etisalat" /> - <spnOverride numeric="41220" spn="Roshan" /> - <!-- Albania --> - <spnOverride numeric="27601" spn="AMC" /> - <spnOverride numeric="27603" spn="Eagle Mobile" /> - <spnOverride numeric="27604" spn="Plus Communication" /> - <spnOverride numeric="27602" spn="Vodafone" /> - <!-- Algeria --> - <spnOverride numeric="60302" spn="Djezzy" /> - <spnOverride numeric="60301" spn="Mobilis" /> - <spnOverride numeric="60303" spn="Nedjma" /> - <!-- American Samoa --> - <spnOverride numeric="54411" spn="Bluesky" /> - <!-- Andorra --> - <spnOverride numeric="21303" spn="Mobiland" /> - <!-- Angola --> - <spnOverride numeric="63104" spn="MOVICEL" /> - <spnOverride numeric="63102" spn="UNITEL" /> - <!-- Anguilla (United Kingdom) --> - <spnOverride numeric="365840" spn="Cable & Wireless" /> - <spnOverride numeric="365010" spn="Weblinks Limited" /> - <!-- Antigua and Barbuda --> - <spnOverride numeric="344030" spn="APUA" /> - <spnOverride numeric="344920" spn="bmobile" /> - <spnOverride numeric="344930" spn="Digicel" /> - <!-- Argentina --> - <spnOverride numeric="722310" spn="Claro" /> - <spnOverride numeric="722320" spn="Claro" /> - <spnOverride numeric="722330" spn="Claro" /> - <spnOverride numeric="722350" spn="Hutchinson (PORT HABLE)" /> - <spnOverride numeric="722010" spn="Movistar" /> - <spnOverride numeric="722070" spn="Movistar" /> - <spnOverride numeric="722020" spn="Nextel" /> - <spnOverride numeric="72234" spn="Personal" /> - <spnOverride numeric="722341" spn="Telecom Personal SA" /> - <spnOverride numeric="72236" spn="Telecom Personal SA" /> - <!-- Armenia --> - <spnOverride numeric="28301" spn="Beeline" /> - <spnOverride numeric="28310" spn="Orange" /> - <spnOverride numeric="28305" spn="VivaCell-MTS" /> - <!-- Aruba (Netherlands) --> - <spnOverride numeric="36302" spn="Digicel" /> - <spnOverride numeric="36320" spn="Digicell" /> - <spnOverride numeric="36301" spn="SETAR" /> - <!-- Australia --> - <spnOverride numeric="50506" spn="3" /> - <spnOverride numeric="50512" spn="3" /> - <spnOverride numeric="50515" spn="3GIS" /> - <spnOverride numeric="50514" spn="AAPT" /> - <spnOverride numeric="50524" spn="Advanced Communications Technologies" /> - <spnOverride numeric="50509" spn="Airnet" /> - <spnOverride numeric="50538" spn="Crazy John's" /> - <spnOverride numeric="50504" spn="Department of Defence" /> - <spnOverride numeric="50588" spn="Localstar" /> - <spnOverride numeric="50510" spn="Norfolk Telecom" /> - <spnOverride numeric="50508" spn="One. Tel" /> - <spnOverride numeric="50599" spn="One. Tel" /> - <spnOverride numeric="50502" spn="OPTUS / Virgin Mobile" /> - <spnOverride numeric="50505" spn="Ozitel" /> - <spnOverride numeric="50513" spn="Railcorp" /> - <spnOverride numeric="50521" spn="SOUL" /> - <spnOverride numeric="50501" spn="Telstra" /> - <spnOverride numeric="50511" spn="Telstra" /> - <spnOverride numeric="50571" spn="Telstra" /> - <spnOverride numeric="50572" spn="Telstra" /> - <spnOverride numeric="50516" spn="Victorian Rail Track" /> - <spnOverride numeric="50503" spn="Vodafone" /> - <spnOverride numeric="50507" spn="Vodafone" /> - <spnOverride numeric="50590" spn="YES OPTUS" /> - <!-- Austria --> - <spnOverride numeric="23210" spn="3 AT" /> - <spnOverride numeric="23214" spn="3 AT" /> - <spnOverride numeric="23201" spn="A1" /> - <spnOverride numeric="23209" spn="A1" /> - <spnOverride numeric="23215" spn="Barablu" /> - <spnOverride numeric="23211" spn="bob" /> - <spnOverride numeric="23291" spn="GSM-R A" /> - <spnOverride numeric="23205" spn="3 AT" /> - <spnOverride numeric="23203" spn="T-Mobile" /> - <spnOverride numeric="23207" spn="T-Mobile" /> - <spnOverride numeric="23212" spn="yesss" /> - <!-- Azerbaijan --> - <spnOverride numeric="40001" spn="Azercell" /> - <spnOverride numeric="40002" spn="Bakcell" /> - <spnOverride numeric="40003" spn="FONEX" /> - <spnOverride numeric="40004" spn="Nar Mobile" /> - <!-- Bahamas --> - <spnOverride numeric="364390" spn="BaTelCo" /> - <!-- Bahrain --> - <spnOverride numeric="42601" spn="Batelco" /> - <spnOverride numeric="42602" spn="MTC-VFBH" /> - <spnOverride numeric="42604" spn="VIVA" /> - <!-- Bangladesh --> - <spnOverride numeric="47002" spn="Aktel" /> - <spnOverride numeric="47003" spn="Banglalink" /> - <spnOverride numeric="47005" spn="Citycell" /> - <spnOverride numeric="47006" spn="Citycell" /> - <spnOverride numeric="47001" spn="Grameenphone" /> - <spnOverride numeric="47004" spn="TeleTalk" /> - <spnOverride numeric="47007" spn="Warid" /> - <!-- Barbados --> - <spnOverride numeric="342600" spn="bmobile" /> - <spnOverride numeric="342750" spn="Digicel" /> - <spnOverride numeric="342820" spn="Sunbeach Communications" /> - <!-- Belarus --> - <spnOverride numeric="257501" spn="BelCel JV" /> - <spnOverride numeric="25703" spn="DIALLOG" /> - <spnOverride numeric="25704" spn="life:)" /> - <spnOverride numeric="25702" spn="MTS" /> - <spnOverride numeric="25701" spn="Velcom" /> - <!-- Belgium --> - <spnOverride numeric="20620" spn="BASE" /> - <spnOverride numeric="20610" spn="Mobistar" /> - <spnOverride numeric="20601" spn="Proximus" /> - <spnOverride numeric="20605" spn="Telenet" /> - <!-- Belize --> - <spnOverride numeric="70267" spn="Belize Telemedia" /> - <spnOverride numeric="70268" spn="International Telecommunications Ltd." /> - <spnOverride numeric="70299" spn="Smart" /> - <!-- Benin --> - <spnOverride numeric="61603" spn="Areeba" /> - <spnOverride numeric="61600" spn="BBCOM" /> - <spnOverride numeric="61604" spn="BBCOM" /> - <spnOverride numeric="61605" spn="Glo" /> - <spnOverride numeric="61601" spn="Libercom" /> - <spnOverride numeric="61602" spn="Telecel" /> - <!-- Bermudas --> - <spnOverride numeric="31038" spn="Digicel" /> - <spnOverride numeric="35001" spn="Digicel Bermuda" /> - <spnOverride numeric="35002" spn="Mobility" /> - <!-- Bhutan --> - <spnOverride numeric="40211" spn="B-Mobile" /> - <spnOverride numeric="40277" spn="TashiCell" /> - <!-- Bolivia --> - <spnOverride numeric="73602" spn="Entel" /> - <spnOverride numeric="73601" spn="Nuevatel" /> - <spnOverride numeric="73603" spn="Tigo" /> - <!-- Bosnia and Herzegovina --> - <spnOverride numeric="21890" spn="BH Mobile" /> - <spnOverride numeric="21803" spn="ERONET" /> - <spnOverride numeric="21805" spn="m:tel" /> - <!-- Botswana --> - <spnOverride numeric="65204" spn="BTC Mobile" /> - <spnOverride numeric="65201" spn="Mascom" /> - <spnOverride numeric="65202" spn="Orange" /> - <!-- Brazil --> - <spnOverride numeric="72437" spn="aiou" /> - <spnOverride numeric="72424" spn="Amazonia Celular" /> - <spnOverride numeric="72416" spn="Brasil Telecom" /> - <spnOverride numeric="72405" spn="Claro" /> - <spnOverride numeric="72432" spn="CTBC Cellular" /> - <spnOverride numeric="72433" spn="CTBC Cellular" /> - <spnOverride numeric="72434" spn="CTBC Cellular" /> - <spnOverride numeric="72407" spn="CTBC Celular" /> - <spnOverride numeric="72400" spn="Nextel" /> - <spnOverride numeric="72439" spn="Nextel" /> - <spnOverride numeric="72415" spn="Sercomtel" /> - <spnOverride numeric="72402" spn="TIM" /> - <spnOverride numeric="72403" spn="TIM" /> - <spnOverride numeric="72404" spn="TIM" /> - <spnOverride numeric="72408" spn="TIM" /> - <spnOverride numeric="72431" spn="TNL PCS" /> - <spnOverride numeric="72406" spn="Vivo" /> - <spnOverride numeric="72410" spn="Vivo" /> - <spnOverride numeric="72411" spn="Vivo" /> - <spnOverride numeric="72423" spn="Vivo" /> - <!-- British Virgin Islands (United Kingdom) --> - <spnOverride numeric="348170" spn="Cable & Wireless" /> - <spnOverride numeric="348570" spn="Caribbean Cellular Telephone" /> - <spnOverride numeric="348770" spn="Digicel" /> - <!-- Brunei --> - <spnOverride numeric="52802" spn="B-Mobile" /> - <spnOverride numeric="52811" spn="DTSCom" /> - <spnOverride numeric="52801" spn="Jabatan Telekom" /> - <!-- Bulgaria --> - <spnOverride numeric="28405" spn="GLOBUL" /> - <spnOverride numeric="28401" spn="M-Tel" /> - <spnOverride numeric="28404" spn="Undisclosed" /> - <spnOverride numeric="28403" spn="Vivatel" /> - <!-- Burkina Faso --> - <spnOverride numeric="61301" spn="Onatel" /> - <spnOverride numeric="61303" spn="Telecel Faso" /> - <spnOverride numeric="61302" spn="Zain" /> - <!-- Burundi --> - <spnOverride numeric="64202" spn="Africell" /> - <spnOverride numeric="64208" spn="HiTs Telecom" /> - <spnOverride numeric="64207" spn="Smart Mobile" /> - <spnOverride numeric="64201" spn="Spacetel" /> - <spnOverride numeric="64203" spn="Telecel" /> - <spnOverride numeric="64282" spn="U-COM Burundi" /> - <!-- Cambodia --> - <spnOverride numeric="45609" spn="Beeline" /> - <spnOverride numeric="45618" spn="Camshin / Shinawatra" /> - <spnOverride numeric="45611" spn="Excell" /> - <spnOverride numeric="45602" spn="hello" /> - <spnOverride numeric="45608" spn="Metfone" /> - <spnOverride numeric="45601" spn="Mobitel" /> - <spnOverride numeric="45604" spn="qb" /> - <spnOverride numeric="45603" spn="S Telecom" /> - <spnOverride numeric="45606" spn="Smart Mobile" /> - <spnOverride numeric="45605" spn="Star-Cell" /> - <!-- Cameroon --> - <spnOverride numeric="62401" spn="MTN Cameroon" /> - <spnOverride numeric="62402" spn="Orange" /> - <!-- Canada --> - <spnOverride numeric="302290" spn="Airtel Wireless" /> - <spnOverride numeric="302652" spn="BC Tel Mobility" /> - <spnOverride numeric="302610" spn="Bell" /> - <spnOverride numeric="302640" spn="Bell" /> - <spnOverride numeric="302880" spn="Bell / Telus / SaskTel" /> - <spnOverride numeric="302651" spn="Bell Mobility" /> - <spnOverride numeric="302380" spn="DMTS" /> - <spnOverride numeric="302370" spn="Fido" /> - <spnOverride numeric="302350" spn="FIRST" /> - <spnOverride numeric="302710" spn="Globalstar" /> - <spnOverride numeric="302620" spn="ICE Wireless" /> - <spnOverride numeric="302701" spn="MB Tel Mobility" /> - <spnOverride numeric="302320" spn="Mobilicity" /> - <spnOverride numeric="302702" spn="MT&T Mobility" /> - <spnOverride numeric="302660" spn="MTS" /> - <spnOverride numeric="302655" spn="MTS Mobility" /> - <spnOverride numeric="302703" spn="New Tel Mobility" /> - <spnOverride numeric="302720" spn="Rogers Wireless" /> - <spnOverride numeric="302654" spn="Sask Tel Mobility" /> - <spnOverride numeric="302680" spn="SaskTel" /> - <spnOverride numeric="302780" spn="SaskTel" /> - <spnOverride numeric="302656" spn="Tbay Mobility" /> - <spnOverride numeric="302220" spn="Telus" /> - <spnOverride numeric="302221" spn="Telus" /> - <spnOverride numeric="302657" spn="Telus (Quebec) Mobility" /> - <spnOverride numeric="302360" spn="Telus Mobility" /> - <spnOverride numeric="302361" spn="Telus Mobility" /> - <spnOverride numeric="302653" spn="Telus Mobility" /> - <spnOverride numeric="302500" spn="Videotron" /> - <spnOverride numeric="302510" spn="Videotron" /> - <spnOverride numeric="302490" spn="WIND Mobile" /> - <!-- Cape Verde --> - <spnOverride numeric="62501" spn="CVMOVEL" /> - <spnOverride numeric="62502" spn="T+" /> - <!-- Cayman Islands (United Kingdom) --> - <spnOverride numeric="346140" spn="Cable & Wireless" /> - <spnOverride numeric="346050" spn="Digicel" /> - <!-- Central African Republic --> - <spnOverride numeric="62301" spn="CTP" /> - <spnOverride numeric="62304" spn="Nationlink" /> - <spnOverride numeric="62303" spn="Orange" /> - <spnOverride numeric="62302" spn="TC" /> - <!-- Chile --> - <spnOverride numeric="73003" spn="Claro" /> - <spnOverride numeric="73001" spn="Entel" /> - <spnOverride numeric="73010" spn="Entel" /> - <spnOverride numeric="73002" spn="movistar" /> - <spnOverride numeric="73004" spn="Nextel" /> - <spnOverride numeric="73008" spn="VTR MOvil" /> - <spnOverride numeric="73099" spn="Will" /> - <!-- China --> - <spnOverride numeric="46001" spn="中国联通" /> - <spnOverride numeric="46006" spn="中国联通" /> - <spnOverride numeric="46000" spn="中国移动" /> - <spnOverride numeric="46002" spn="中国移动" /> - <spnOverride numeric="46007" spn="中国移动" /> - <spnOverride numeric="46003" spn="中国电信" /> - <spnOverride numeric="46005" spn="中国电信" /> - <spnOverride numeric="46011" spn="中国电信" /> - <spnOverride numeric="46012" spn="中国电信" /> - <spnOverride numeric="46013" spn="中国电信" /> - <spnOverride numeric="46099" spn="中国电信" /> - <spnOverride numeric="46020" spn="China Tietong" /> - <!-- Colombia --> - <spnOverride numeric="732001" spn="Colombia Telecomunicaciones S.A. - Telecom" /> - <spnOverride numeric="732101" spn="Comcel" /> - <spnOverride numeric="732002" spn="Edatel" /> - <spnOverride numeric="732102" spn="movistar" /> - <spnOverride numeric="732123" spn="movistar" /> - <spnOverride numeric="732103" spn="Tigo" /> - <spnOverride numeric="732111" spn="Tigo" /> - <!-- Comoros --> - <spnOverride numeric="65401" spn="HURI - SNPT" /> - <!-- Cook Islands --> - <spnOverride numeric="54801" spn="Telecom Cook" /> - <!-- Costa Rica --> - <spnOverride numeric="71201" spn="ICE" /> - <spnOverride numeric="71202" spn="ICE" /> - <spnOverride numeric="71203" spn="ICE" /> - <spnOverride numeric="71204" spn="movistar" /> - <!-- Cote d'Ivoire --> - <spnOverride numeric="61201" spn="Cora de Comstar" /> - <spnOverride numeric="61204" spn="KoZ" /> - <spnOverride numeric="61202" spn="Moov" /> - <spnOverride numeric="61205" spn="MTN" /> - <spnOverride numeric="61203" spn="Orange" /> - <spnOverride numeric="61206" spn="ORICEL" /> - <!-- Croatia --> - <spnOverride numeric="21901" spn="T-Mobile" /> - <spnOverride numeric="21902" spn="Tele2" /> - <spnOverride numeric="21910" spn="VIPnet" /> - <!-- Cuba --> - <spnOverride numeric="36801" spn="ETECSA" /> - <!-- Cyprus --> - <spnOverride numeric="28001" spn="Cytamobile-Vodafone" /> - <spnOverride numeric="28010" spn="MTN" /> - <!-- Czad --> - <spnOverride numeric="62204" spn="Salam" /> - <spnOverride numeric="62202" spn="TAWALI" /> - <spnOverride numeric="62203" spn="TIGO - Millicom" /> - <spnOverride numeric="62201" spn="Zain" /> - <!-- Czech Republic --> - <spnOverride numeric="23002" spn="EUROTEL PRAHA" /> - <spnOverride numeric="23003" spn="OSKAR" /> - <spnOverride numeric="23006" spn="OSNO TELECOMUNICATION, s.r.o." /> - <spnOverride numeric="23098" spn="SeDC s.o." /> - <spnOverride numeric="23001" spn="T-Mobile" /> - <spnOverride numeric="23005" spn="TRAVEL TELEKOMMUNIKATION, s.r.o." /> - <spnOverride numeric="23004" spn="U:fon" /> - <spnOverride numeric="23099" spn="Vodafone Czech Republic a.s., R&D Centre at FEE, CTU" /> - <!-- Democratic Republic of Congo --> - <spnOverride numeric="63086" spn="CCT" /> - <spnOverride numeric="63004" spn="Cellco" /> - <spnOverride numeric="63010" spn="Libertis Telecom" /> - <spnOverride numeric="63089" spn="SAIT Telecom" /> - <spnOverride numeric="63005" spn="Supercell" /> - <spnOverride numeric="63001" spn="Vodacom" /> - <spnOverride numeric="63002" spn="Zain" /> - <!-- Denmark --> - <spnOverride numeric="23806" spn="3" /> - <spnOverride numeric="23805" spn="ApS KBUS" /> - <spnOverride numeric="23807" spn="Barablu Mobile Ltd." /> - <spnOverride numeric="23809" spn="Dansk Beredskabskommunikation A/S" /> - <spnOverride numeric="23811" spn="Dansk Beredskabskommunikation A/S" /> - <spnOverride numeric="23840" spn="Ericsson Danmark A/S" /> - <spnOverride numeric="23812" spn="Lycamobile Denmark Ltd" /> - <spnOverride numeric="23803" spn="MIGway A/S" /> - <spnOverride numeric="23877" spn="Sonofon" /> - <spnOverride numeric="23801" spn="TDC" /> - <spnOverride numeric="23810" spn="TDC" /> - <spnOverride numeric="23802" spn="Telenor" /> - <spnOverride numeric="23820" spn="Telia" /> - <spnOverride numeric="23830" spn="Telia" /> - <!-- Djibouti --> - <spnOverride numeric="63801" spn="Evatis" /> - <!-- Dominica --> - <spnOverride numeric="366110" spn="Cable & Wireless" /> - <spnOverride numeric="366020" spn="Digicel" /> - <!-- Dominican Republic --> - <spnOverride numeric="37002" spn="Claro" /> - <spnOverride numeric="37001" spn="Orange" /> - <spnOverride numeric="37003" spn="Tricom S.A." /> - <spnOverride numeric="37004" spn="ViVa" /> - <!-- East Timor --> - <spnOverride numeric="51402" spn="Timor Telecom" /> - <!-- Ecuador --> - <spnOverride numeric="74002" spn="Alegro" /> - <spnOverride numeric="74000" spn="Movistar" /> - <spnOverride numeric="74001" spn="Porta" /> - <!-- Egypt --> - <spnOverride numeric="60203" spn="Etisalat" /> - <spnOverride numeric="60201" spn="Mobinil" /> - <spnOverride numeric="60202" spn="Vodafone" /> - <!-- El Salvador --> - <spnOverride numeric="70610" spn="Claro" /> - <spnOverride numeric="70611" spn="Claro" /> - <spnOverride numeric="70601" spn="CTE Telecom Personal" /> - <spnOverride numeric="70602" spn="digicel" /> - <spnOverride numeric="70604" spn="movistar" /> - <spnOverride numeric="70603" spn="Telemovil EL Salvador" /> - <!-- Equatorial Guinea --> - <spnOverride numeric="62703" spn="Hits GQ" /> - <spnOverride numeric="62701" spn="Orange GQ" /> - <!-- Eritrea --> - <spnOverride numeric="65701" spn="Eritel" /> - <!-- Estonia --> - <spnOverride numeric="24805" spn="AS Bravocom Mobiil" /> - <spnOverride numeric="24802" spn="Elisa" /> - <spnOverride numeric="24801" spn="EMT" /> - <spnOverride numeric="24804" spn="OY Top Connect" /> - <spnOverride numeric="24806" spn="OY ViaTel" /> - <spnOverride numeric="24803" spn="Tele 2" /> - <!-- Ethiopia --> - <spnOverride numeric="63601" spn="ETMTN" /> - <!-- Faroe Islands (Denmark) --> - <spnOverride numeric="28801" spn="Faroese Telecom" /> - <spnOverride numeric="28802" spn="Vodafone" /> - <!-- Fiji --> - <spnOverride numeric="54202" spn="Digicel" /> - <spnOverride numeric="54201" spn="Vodafone" /> - <!-- Finland --> - <spnOverride numeric="24414" spn="AMT" /> - <spnOverride numeric="24403" spn="DNA" /> - <spnOverride numeric="24412" spn="DNA" /> - <spnOverride numeric="24405" spn="Elisa" /> - <spnOverride numeric="24407" spn="Nokia" /> - <spnOverride numeric="24415" spn="SAMK" /> - <spnOverride numeric="24421" spn="Saunalahti" /> - <spnOverride numeric="24429" spn="Scnl Truphone" /> - <spnOverride numeric="24491" spn="Sonera" /> - <spnOverride numeric="24410" spn="TDC Oy" /> - <spnOverride numeric="24408" spn="Unknown" /> - <spnOverride numeric="24411" spn="VIRVE" /> - <!-- France --> - <spnOverride numeric="20820" spn="Bouygues" /> - <spnOverride numeric="20821" spn="Bouygues" /> - <spnOverride numeric="20888" spn="Bouygues" /> - <spnOverride numeric="20815" spn="Free Mobile" /> - <spnOverride numeric="20816" spn="Free Mobile" /> - <spnOverride numeric="20805" spn="Globalstar Europe" /> - <spnOverride numeric="20806" spn="Globalstar Europe" /> - <spnOverride numeric="20807" spn="Globalstar Europe" /> - <spnOverride numeric="20800" spn="Orange" /> - <spnOverride numeric="20801" spn="Orange" /> - <spnOverride numeric="20802" spn="Orange" /> - <spnOverride numeric="20810" spn="SFR" /> - <spnOverride numeric="20811" spn="SFR" /> - <spnOverride numeric="20813" spn="SFR" /> - <spnOverride numeric="20822" spn="Transatel Mobile" /> - <!-- French Polynesia (France) --> - <spnOverride numeric="54720" spn="VINI" /> - <!-- Gabon --> - <spnOverride numeric="62804" spn="Azur" /> - <spnOverride numeric="62801" spn="Libertis" /> - <spnOverride numeric="62802" spn="Moov (Telecel) Gabon S.A." /> - <spnOverride numeric="62803" spn="Zain" /> - <!-- Gambia --> - <spnOverride numeric="60702" spn="Africel" /> - <spnOverride numeric="60703" spn="Comium" /> - <spnOverride numeric="60701" spn="Gamcel" /> - <spnOverride numeric="60704" spn="QCell" /> - <!-- Georgia --> - <spnOverride numeric="28988" spn="A-Mobile" /> - <spnOverride numeric="28967" spn="Aquafon" /> - <spnOverride numeric="28204" spn="Beeline" /> - <spnOverride numeric="28201" spn="Geocell" /> - <spnOverride numeric="28203" spn="Iberiatel" /> - <spnOverride numeric="28202" spn="Magti" /> - <spnOverride numeric="28205" spn="Silknet" /> - <!-- Germany --> - <spnOverride numeric="26242" spn="27C3" /> - <spnOverride numeric="26215" spn="Airdata" /> - <spnOverride numeric="26210" spn="Arcor AG & Co" /> - <spnOverride numeric="26260" spn="DB Telematik" /> - <spnOverride numeric="262901" spn="Debitel" /> - <spnOverride numeric="26212" spn="Dolphin Telecom" /> - <spnOverride numeric="26203" spn="E-Plus" /> - <spnOverride numeric="26205" spn="E-Plus" /> - <spnOverride numeric="26277" spn="E-Plus" /> - <spnOverride numeric="26214" spn="Group 3G UMTS" /> - <spnOverride numeric="26243" spn="LYCA" /> - <spnOverride numeric="26213" spn="Mobilcom Multimedia" /> - <spnOverride numeric="26292" spn="Nash Technologies" /> - <spnOverride numeric="26207" spn="O2" /> - <spnOverride numeric="26208" spn="O2" /> - <spnOverride numeric="26211" spn="O2" /> - <spnOverride numeric="26276" spn="Siemens AG" /> - <spnOverride numeric="26201" spn="T-Mobile" /> - <spnOverride numeric="26206" spn="T-Mobile" /> - <spnOverride numeric="26216" spn="vistream" /> - <spnOverride numeric="26202" spn="Vodafone" /> - <spnOverride numeric="26204" spn="Vodafone" /> - <spnOverride numeric="26209" spn="Vodafone" /> - <!-- Ghana --> - <spnOverride numeric="62006" spn="Airtel" /> - <spnOverride numeric="62002" spn="Ghana Telecom Mobile" /> - <spnOverride numeric="62004" spn="Kasapa / Hutchison Telecom" /> - <spnOverride numeric="62001" spn="MTN" /> - <spnOverride numeric="62003" spn="tiGO" /> - <!-- Gibraltar (United Kingdom) --> - <spnOverride numeric="26606" spn="CTS Mobile" /> - <spnOverride numeric="26601" spn="GibTel" /> - <!-- Greece --> - <spnOverride numeric="20201" spn="Cosmote" /> - <spnOverride numeric="20205" spn="Vodafone" /> - <spnOverride numeric="20209" spn="Wind" /> - <spnOverride numeric="20210" spn="Wind" /> - <!-- Greenland (Denmark) --> - <spnOverride numeric="29001" spn="TELE Greenland A/S" /> - <!-- Grenada --> - <spnOverride numeric="352110" spn="Cable & Wireless" /> - <spnOverride numeric="352030" spn="Digicel" /> - <!-- Guadeloupe (France) --> - <spnOverride numeric="34020" spn="Digicel" /> - <spnOverride numeric="34008" spn="MIO GSM" /> - <spnOverride numeric="34001" spn="Orange" /> - <spnOverride numeric="34002" spn="Outremer" /> - <spnOverride numeric="34003" spn="Telcell" /> - <!-- Guam (United States) --> - <spnOverride numeric="310033" spn="Guam Telephone Authority" /> - <spnOverride numeric="310370" spn="Guamcell" /> - <spnOverride numeric="310470" spn="Guamcell" /> - <spnOverride numeric="311250" spn="i CAN_GSM" /> - <spnOverride numeric="310032" spn="IT&E Wireless" /> - <spnOverride numeric="310140" spn="mPulse" /> - <!-- Guatemala --> - <spnOverride numeric="70401" spn="Claro" /> - <spnOverride numeric="70402" spn="Comcel / Tigo" /> - <spnOverride numeric="70403" spn="movistar" /> - <!-- Guiana --> - <spnOverride numeric="73801" spn="Digicel" /> - <spnOverride numeric="73802" spn="GT&T Cellink Plus" /> - <!-- Guinea --> - <spnOverride numeric="61105" spn="Cellcom" /> - <spnOverride numeric="61102" spn="Lagui" /> - <spnOverride numeric="61104" spn="MTN" /> - <spnOverride numeric="61101" spn="Spacetel" /> - <spnOverride numeric="61103" spn="Telecel Guinee" /> - <!-- Guinea-Bissau --> - <spnOverride numeric="63202" spn="Areeba" /> - <spnOverride numeric="63203" spn="Orange" /> - <!-- Haiti --> - <spnOverride numeric="372010" spn="Comcel / Voila" /> - <spnOverride numeric="37202" spn="Digicel" /> - <spnOverride numeric="37203" spn="NATCOM" /> - <!-- Holland (Netherlands) --> - <spnOverride numeric="20414" spn="6Gmobile" /> - <spnOverride numeric="20423" spn="ASPIDER Solutions Nederland B.V." /> - <spnOverride numeric="20427" spn="Breezz Nederland B.V." /> - <spnOverride numeric="20425" spn="CapX B.V." /> - <spnOverride numeric="20407" spn="eleena (MVNE)" /> - <spnOverride numeric="20405" spn="Elephant Talk Communications Premium Rate Services" /> - <spnOverride numeric="20417" spn="Intercity Mobile Communications B.V." /> - <spnOverride numeric="20408" spn="KPN" /> - <spnOverride numeric="20410" spn="KPN" /> - <spnOverride numeric="20469" spn="KPN Mobile The Netherlands B.V." /> - <spnOverride numeric="20409" spn="Lycamobile" /> - <spnOverride numeric="20422" spn="Ministerie van Defensie" /> - <spnOverride numeric="20419" spn="Mixe Communication Solutions B.V." /> - <spnOverride numeric="20406" spn="Mundio Mobile (Netherlands) Ltd" /> - <spnOverride numeric="20421" spn="NS Railinfrabeheer B.V." /> - <spnOverride numeric="20420" spn="Orange Nederland" /> - <spnOverride numeric="20424" spn="Private Mobility Nederland B.V." /> - <spnOverride numeric="20467" spn="RadioAccess B.V." /> - <spnOverride numeric="20426" spn="SpeakUp B.V." /> - <spnOverride numeric="20416" spn="T-Mobile / Ben" /> - <spnOverride numeric="20402" spn="Tele2 Netherlands" /> - <spnOverride numeric="20412" spn="Telfort / O2" /> - <spnOverride numeric="20413" spn="Unica Installatietechniek B.V" /> - <spnOverride numeric="20468" spn="Unify Group Holding B.V." /> - <spnOverride numeric="20418" spn="UPC Nederland B.V." /> - <spnOverride numeric="20401" spn="VastMobiel B.V." /> - <spnOverride numeric="20404" spn="Vodafone" /> - <spnOverride numeric="20403" spn="Voiceworks B.V." /> - <!-- Honduras --> - <spnOverride numeric="70802" spn="Celtel / Tigo" /> - <spnOverride numeric="70801" spn="Claro" /> - <spnOverride numeric="70840" spn="DIGICEL" /> - <spnOverride numeric="70830" spn="Hondutel" /> - <!-- Hong Kong (People's Republic of China) --> - <spnOverride numeric="45403" spn="3 (3G)" /> - <spnOverride numeric="45405" spn="3 CDMA" /> - <spnOverride numeric="45404" spn="3 Dual (2G)" /> - <spnOverride numeric="45412" spn="中國移動香港" /> - <spnOverride numeric="45409" spn="China Motion Telecom" /> - <spnOverride numeric="45407" spn="China Unicom" /> - <spnOverride numeric="45411" spn="China-Hongkong Telecom" /> - <spnOverride numeric="45401" spn="CITIC Telecom 1616" /> - <spnOverride numeric="45400" spn="CSL" /> - <spnOverride numeric="45402" spn="CSL 3G" /> - <spnOverride numeric="45418" spn="Hong Kong CSL Limited" /> - <spnOverride numeric="45414" spn="Hutchison Telecom" /> - <spnOverride numeric="45410" spn="New World" /> - <spnOverride numeric="45416" spn="PCCW" /> - <spnOverride numeric="45419" spn="PCCW" /> - <spnOverride numeric="45429" spn="PCCW" /> - <spnOverride numeric="45415" spn="SmarTone Mobile Comms" /> - <spnOverride numeric="45417" spn="SmarTone Mobile Comms" /> - <spnOverride numeric="45406" spn="SmarTone" /> - <spnOverride numeric="45408" spn="Trident" /> - <!-- Hungary --> - <spnOverride numeric="21601" spn="Pannon" /> - <spnOverride numeric="21630" spn="T-Mobile" /> - <spnOverride numeric="21670" spn="Vodafone" /> - <!-- Iceland --> - <spnOverride numeric="27407" spn="IceCell" /> - <spnOverride numeric="27411" spn="Nova" /> - <spnOverride numeric="27406" spn="N'll nIu ehf" /> - <spnOverride numeric="27408" spn="On-waves" /> - <spnOverride numeric="27401" spn="Siminn" /> - <spnOverride numeric="27412" spn="Tal" /> - <spnOverride numeric="27404" spn="Viking" /> - <spnOverride numeric="27402" spn="Vodafone" /> - <spnOverride numeric="27403" spn="Vodafone" /> - <!-- India --> - <spnOverride numeric="40417" spn="AIRCEL" /> - <spnOverride numeric="40425" spn="AIRCEL" /> - <spnOverride numeric="40428" spn="AIRCEL" /> - <spnOverride numeric="40429" spn="AIRCEL" /> - <spnOverride numeric="40437" spn="AIRCEL" /> - <spnOverride numeric="40491" spn="AIRCEL" /> - <spnOverride numeric="405082" spn="AIRCEL" /> - <spnOverride numeric="405800" spn="AIRCEL" /> - <spnOverride numeric="405801" spn="AIRCEL" /> - <spnOverride numeric="405802" spn="AIRCEL" /> - <spnOverride numeric="405803" spn="AIRCEL" /> - <spnOverride numeric="405804" spn="AIRCEL" /> - <spnOverride numeric="405805" spn="AIRCEL" /> - <spnOverride numeric="405806" spn="AIRCEL" /> - <spnOverride numeric="405807" spn="AIRCEL" /> - <spnOverride numeric="405808" spn="AIRCEL" /> - <spnOverride numeric="405809" spn="AIRCEL" /> - <spnOverride numeric="405810" spn="AIRCEL" /> - <spnOverride numeric="405811" spn="AIRCEL" /> - <spnOverride numeric="405812" spn="AIRCEL" /> - <spnOverride numeric="405813" spn="AIRCEL" /> - <spnOverride numeric="40460" spn="Aircell Digilink" /> - <spnOverride numeric="40415" spn="Aircell Digilink Essar Cellph." /> - <spnOverride numeric="40406" spn="Airtel" /> - <spnOverride numeric="40410" spn="Airtel" /> - <spnOverride numeric="40431" spn="Airtel" /> - <spnOverride numeric="40440" spn="Airtel" /> - <spnOverride numeric="40445" spn="Airtel" /> - <spnOverride numeric="40449" spn="Airtel" /> - <spnOverride numeric="40470" spn="Airtel" /> - <spnOverride numeric="40494" spn="Airtel" /> - <spnOverride numeric="40495" spn="Airtel" /> - <spnOverride numeric="40497" spn="Airtel" /> - <spnOverride numeric="40498" spn="Airtel" /> - <spnOverride numeric="40551" spn="Airtel" /> - <spnOverride numeric="40552" spn="Airtel" /> - <spnOverride numeric="40553" spn="AirTel" /> - <spnOverride numeric="40554" spn="AirTel" /> - <spnOverride numeric="40555" spn="AirTel" /> - <spnOverride numeric="40556" spn="AirTel" /> - <spnOverride numeric="40570" spn="AirTel" /> - <spnOverride numeric="40496" spn="Airtel - Haryana" /> - <spnOverride numeric="40402" spn="Airtel - Punjab" /> - <spnOverride numeric="40403" spn="Airtel / Bharti Telenet" /> - <spnOverride numeric="40493" spn="Airtel Gujrat" /> - <spnOverride numeric="40490" spn="Airtel Maharashtra & Goa" /> - <spnOverride numeric="40492" spn="Airtel Mumbai" /> - <spnOverride numeric="40443" spn="BPL Mobile Cellular" /> - <spnOverride numeric="40421" spn="BPL Mobile Mumbai" /> - <spnOverride numeric="40427" spn="BPL USWest Cellular / Cellular Comms" /> - <spnOverride numeric="40434" spn="BSNL" /> - <spnOverride numeric="40438" spn="BSNL" /> - <spnOverride numeric="40451" spn="BSNL" /> - <spnOverride numeric="40453" spn="BSNL" /> - <spnOverride numeric="40454" spn="BSNL" /> - <spnOverride numeric="40455" spn="BSNL" /> - <spnOverride numeric="40457" spn="BSNL" /> - <spnOverride numeric="40458" spn="BSNL" /> - <spnOverride numeric="40459" spn="BSNL" /> - <spnOverride numeric="40464" spn="BSNL" /> - <spnOverride numeric="40471" spn="BSNL" /> - <spnOverride numeric="40473" spn="BSNL" /> - <spnOverride numeric="40474" spn="BSNL" /> - <spnOverride numeric="40475" spn="BSNL" /> - <spnOverride numeric="40476" spn="BSNL" /> - <spnOverride numeric="40477" spn="BSNL" /> - <spnOverride numeric="40480" spn="BSNL" /> - <spnOverride numeric="40481" spn="BSNL" /> - <spnOverride numeric="40462" spn="BSNL J&K" /> - <spnOverride numeric="40472" spn="BSNL Kerala" /> - <spnOverride numeric="40466" spn="BSNL Maharashtra & Goa" /> - <spnOverride numeric="40478" spn="BTA Cellcom" /> - <spnOverride numeric="40448" spn="Dishnet Wireless" /> - <spnOverride numeric="40482" spn="Escorts" /> - <spnOverride numeric="40487" spn="Escorts Telecom" /> - <spnOverride numeric="40488" spn="Escorts Telecom" /> - <spnOverride numeric="40489" spn="Escorts Telecom" /> - <spnOverride numeric="40411" spn="Essar / Sterling Cellular" /> - <spnOverride numeric="405912" spn="Etisalat DB(cheers)" /> - <spnOverride numeric="405913" spn="Etisalat DB(cheers)" /> - <spnOverride numeric="405914" spn="Etisalat DB(cheers)" /> - <spnOverride numeric="405917" spn="Etisalat DB(cheers)" /> - <spnOverride numeric="40566" spn="Hutch" /> - <spnOverride numeric="40486" spn="Hutchinson Essar South" /> - <spnOverride numeric="40413" spn="Hutchison Essar South" /> - <spnOverride numeric="40484" spn="Hutchison Essar South" /> - <spnOverride numeric="40419" spn="IDEA" /> - <spnOverride numeric="405799" spn="IDEA" /> - <spnOverride numeric="405845" spn="IDEA" /> - <spnOverride numeric="405848" spn="IDEA" /> - <spnOverride numeric="405850" spn="IDEA" /> - <spnOverride numeric="40586" spn="IDEA" /> - <spnOverride numeric="40412" spn="Idea (Escotel) Haryana" /> - <spnOverride numeric="40456" spn="Idea (Escotel) UP West" /> - <spnOverride numeric="40404" spn="IDEA CELLULAR - Delhi" /> - <spnOverride numeric="40424" spn="IDEA Cellular - Gujarat" /> - <spnOverride numeric="40422" spn="IDEA Cellular - Maharashtra" /> - <spnOverride numeric="405855" spn="Loop Mobile" /> - <spnOverride numeric="405864" spn="Loop Mobile" /> - <spnOverride numeric="405865" spn="Loop Mobile" /> - <spnOverride numeric="40468" spn="MTNL - Delhi" /> - <spnOverride numeric="40469" spn="MTNL - Mumbai" /> - <spnOverride numeric="40450" spn="Reliance" /> - <spnOverride numeric="40452" spn="Reliance" /> - <spnOverride numeric="40467" spn="Reliance" /> - <spnOverride numeric="40483" spn="Reliance" /> - <spnOverride numeric="40485" spn="Reliance" /> - <spnOverride numeric="40501" spn="Reliance" /> - <spnOverride numeric="40503" spn="Reliance" /> - <spnOverride numeric="40504" spn="Reliance" /> - <spnOverride numeric="40509" spn="Reliance" /> - <spnOverride numeric="40510" spn="Reliance" /> - <spnOverride numeric="40513" spn="Reliance" /> - <spnOverride numeric="40409" spn="Reliance Telecom Private" /> - <spnOverride numeric="40436" spn="Reliance Telecom Private" /> - <spnOverride numeric="40441" spn="RPG MAA" /> - <spnOverride numeric="405881" spn="S Tel" /> - <spnOverride numeric="40444" spn="Spice Telecom - Karnataka" /> - <spnOverride numeric="40414" spn="Spice Telecom - Punjab" /> - <spnOverride numeric="40442" spn="Srinivas Cellcom / Aircel" /> - <spnOverride numeric="40407" spn="TATA Cellular / Idea Cellular" /> - <spnOverride numeric="405025" spn="TATA Teleservice" /> - <spnOverride numeric="405026" spn="TATA Teleservice" /> - <spnOverride numeric="405027" spn="TATA Teleservice" /> - <spnOverride numeric="405029" spn="TATA Teleservice" /> - <spnOverride numeric="405030" spn="TATA Teleservice" /> - <spnOverride numeric="405031" spn="TATA Teleservice" /> - <spnOverride numeric="405032" spn="TATA Teleservice" /> - <spnOverride numeric="405033" spn="TATA Teleservice" /> - <spnOverride numeric="405034" spn="TATA Teleservice" /> - <spnOverride numeric="405035" spn="TATA Teleservice" /> - <spnOverride numeric="405036" spn="TATA Teleservice" /> - <spnOverride numeric="405037" spn="TATA Teleservice" /> - <spnOverride numeric="405038" spn="TATA Teleservice" /> - <spnOverride numeric="405039" spn="TATA Teleservice" /> - <spnOverride numeric="405040" spn="TATA Teleservice" /> - <spnOverride numeric="405041" spn="TATA Teleservice" /> - <spnOverride numeric="405042" spn="TATA Teleservice" /> - <spnOverride numeric="405043" spn="TATA Teleservice" /> - <spnOverride numeric="405044" spn="TATA Teleservice" /> - <spnOverride numeric="405045" spn="TATA Teleservice" /> - <spnOverride numeric="405046" spn="TATA Teleservice" /> - <spnOverride numeric="405047" spn="TATA Teleservice" /> - <spnOverride numeric="405818" spn="Uninor" /> - <spnOverride numeric="405819" spn="Uninor" /> - <spnOverride numeric="405820" spn="Uninor" /> - <spnOverride numeric="405821" spn="Uninor" /> - <spnOverride numeric="405822" spn="Uninor" /> - <spnOverride numeric="405844" spn="Uninor" /> - <spnOverride numeric="405875" spn="Uninor" /> - <spnOverride numeric="405880" spn="Uninor" /> - <spnOverride numeric="405927" spn="Uninor" /> - <spnOverride numeric="405929" spn="Uninor" /> - <spnOverride numeric="405824" spn="Videocon Datacom" /> - <spnOverride numeric="405827" spn="Videocon Datacom" /> - <spnOverride numeric="405834" spn="Videocon Datacom" /> - <spnOverride numeric="40420" spn="Vodafone" /> - <spnOverride numeric="40446" spn="Vodafone" /> - <spnOverride numeric="40405" spn="Vodafone - Gujarat" /> - <spnOverride numeric="40401" spn="Vodafone - Haryana" /> - <spnOverride numeric="40430" spn="Vodafone - Kolkata" /> - <spnOverride numeric="405750" spn="Vodafone IN" /> - <spnOverride numeric="405751" spn="Vodafone IN" /> - <spnOverride numeric="405752" spn="Vodafone IN" /> - <spnOverride numeric="405753" spn="Vodafone IN" /> - <spnOverride numeric="405754" spn="Vodafone IN" /> - <spnOverride numeric="405755" spn="Vodafone IN" /> - <spnOverride numeric="405756" spn="Vodafone IN" /> - <!-- Indonesia --> - <spnOverride numeric="51089" spn="3" /> - <spnOverride numeric="51008" spn="AXIS" /> - <spnOverride numeric="51027" spn="Ceria" /> - <spnOverride numeric="51099" spn="Esia" /> - <spnOverride numeric="51028" spn="Smartfren" /> - <spnOverride numeric="51021" spn="IM3" /> - <spnOverride numeric="51001" spn="INDOSAT" /> - <spnOverride numeric="51000" spn="PSN" /> - <spnOverride numeric="51009" spn="Smartfren" /> - <spnOverride numeric="51003" spn="StarOne" /> - <spnOverride numeric="51007" spn="TelkomFlexi" /> - <spnOverride numeric="51020" spn="TELKOMMobile" /> - <spnOverride numeric="51010" spn="Telkomsel" /> - <spnOverride numeric="51011" spn="XL" /> - <!-- Iran --> - <spnOverride numeric="43235" spn="Irancell" /> - <spnOverride numeric="43293" spn="Iraphone" /> - <spnOverride numeric="43211" spn="MCI" /> - <spnOverride numeric="43219" spn="MTCE" /> - <spnOverride numeric="43232" spn="Taliya" /> - <spnOverride numeric="43270" spn="TCI" /> - <spnOverride numeric="43214" spn="TKC" /> - <!-- Iraq --> - <spnOverride numeric="41805" spn="Asia Cell" /> - <spnOverride numeric="41850" spn="Asia Cell" /> - <spnOverride numeric="41840" spn="Korek" /> - <spnOverride numeric="41845" spn="Mobitel" /> - <spnOverride numeric="41892" spn="Omnnea" /> - <spnOverride numeric="41808" spn="SanaTel" /> - <spnOverride numeric="41820" spn="Zain IQ" /> - <spnOverride numeric="41830" spn="Zain IQ" /> - <!-- Ireland --> - <spnOverride numeric="27205" spn="3" /> - <spnOverride numeric="27204" spn="Access Telecom" /> - <spnOverride numeric="27209" spn="Clever Communications" /> - <spnOverride numeric="27200" spn="E-Mobile" /> - <spnOverride numeric="27207" spn="Eircom" /> - <spnOverride numeric="27211" spn="Liffey Telecom" /> - <spnOverride numeric="27203" spn="Meteor" /> - <spnOverride numeric="27202" spn="O2" /> - <spnOverride numeric="272020" spn="Tesco Mobile" /> - <spnOverride numeric="27201" spn="Vodafone" /> - <!-- Israel --> - <spnOverride numeric="42502" spn="Cellcom" /> - <spnOverride numeric="42577" spn="Mirs" /> - <spnOverride numeric="42501" spn="Orange" /> - <spnOverride numeric="42503" spn="Pelephone" /> - <!-- Italy --> - <spnOverride numeric="22299" spn="3 Italia" /> - <spnOverride numeric="22298" spn="Blu" /> - <spnOverride numeric="22202" spn="Elsacom" /> - <spnOverride numeric="22277" spn="IPSE 2000" /> - <spnOverride numeric="22207" spn="Noverca" /> - <spnOverride numeric="22230" spn="RFI" /> - <spnOverride numeric="22201" spn="TIM" /> - <spnOverride numeric="22210" spn="Vodafone" /> - <spnOverride numeric="22288" spn="Wind" /> - <!-- Jamaica --> - <spnOverride numeric="338020" spn="Cable & Wireless" /> - <spnOverride numeric="338180" spn="Cable & Wireless" /> - <spnOverride numeric="338070" spn="Claro" /> - <spnOverride numeric="338050" spn="Digicel" /> - <!-- Japan --> - <spnOverride numeric="44001" spn="DoCoMo" /> - <spnOverride numeric="44002" spn="DoCoMo" /> - <spnOverride numeric="44003" spn="DoCoMo" /> - <spnOverride numeric="44009" spn="DoCoMo" /> - <spnOverride numeric="44010" spn="DoCoMo" /> - <spnOverride numeric="44011" spn="DoCoMo" /> - <spnOverride numeric="44012" spn="DoCoMo" /> - <spnOverride numeric="44013" spn="DoCoMo" /> - <spnOverride numeric="44014" spn="DoCoMo" /> - <spnOverride numeric="44015" spn="DoCoMo" /> - <spnOverride numeric="44016" spn="DoCoMo" /> - <spnOverride numeric="44017" spn="DoCoMo" /> - <spnOverride numeric="44018" spn="DoCoMo" /> - <spnOverride numeric="44019" spn="DoCoMo" /> - <spnOverride numeric="44021" spn="DoCoMo" /> - <spnOverride numeric="44022" spn="DoCoMo" /> - <spnOverride numeric="44023" spn="DoCoMo" /> - <spnOverride numeric="44024" spn="DoCoMo" /> - <spnOverride numeric="44025" spn="DoCoMo" /> - <spnOverride numeric="44026" spn="DoCoMo" /> - <spnOverride numeric="44027" spn="DoCoMo" /> - <spnOverride numeric="44028" spn="DoCoMo" /> - <spnOverride numeric="44029" spn="DoCoMo" /> - <spnOverride numeric="44030" spn="DoCoMo" /> - <spnOverride numeric="44031" spn="DoCoMo" /> - <spnOverride numeric="44032" spn="DoCoMo" /> - <spnOverride numeric="44033" spn="DoCoMo" /> - <spnOverride numeric="44034" spn="DoCoMo" /> - <spnOverride numeric="44035" spn="DoCoMo" /> - <spnOverride numeric="44036" spn="DoCoMo" /> - <spnOverride numeric="44037" spn="DoCoMo" /> - <spnOverride numeric="44038" spn="DoCoMo" /> - <spnOverride numeric="44039" spn="DoCoMo" /> - <spnOverride numeric="44049" spn="DoCoMo" /> - <spnOverride numeric="44058" spn="DoCoMo" /> - <spnOverride numeric="44060" spn="DoCoMo" /> - <spnOverride numeric="44061" spn="DoCoMo" /> - <spnOverride numeric="44062" spn="DoCoMo" /> - <spnOverride numeric="44063" spn="DoCoMo" /> - <spnOverride numeric="44064" spn="DoCoMo" /> - <spnOverride numeric="44065" spn="DoCoMo" /> - <spnOverride numeric="44066" spn="DoCoMo" /> - <spnOverride numeric="44067" spn="DoCoMo" /> - <spnOverride numeric="44068" spn="DoCoMo" /> - <spnOverride numeric="44069" spn="DoCoMo" /> - <spnOverride numeric="44087" spn="DoCoMo" /> - <spnOverride numeric="44099" spn="DoCoMo" /> - <spnOverride numeric="44000" spn="eMobile" /> - <spnOverride numeric="44007" spn="KDDI" /> - <spnOverride numeric="44008" spn="KDDI" /> - <spnOverride numeric="44050" spn="KDDI" /> - <spnOverride numeric="44051" spn="KDDI" /> - <spnOverride numeric="44052" spn="KDDI" /> - <spnOverride numeric="44053" spn="KDDI" /> - <spnOverride numeric="44054" spn="KDDI" /> - <spnOverride numeric="44055" spn="KDDI" /> - <spnOverride numeric="44056" spn="KDDI" /> - <spnOverride numeric="44070" spn="KDDI" /> - <spnOverride numeric="44071" spn="KDDI" /> - <spnOverride numeric="44072" spn="KDDI" /> - <spnOverride numeric="44073" spn="KDDI" /> - <spnOverride numeric="44074" spn="KDDI" /> - <spnOverride numeric="44075" spn="KDDI" /> - <spnOverride numeric="44076" spn="KDDI" /> - <spnOverride numeric="44077" spn="KDDI" /> - <spnOverride numeric="44079" spn="KDDI" /> - <spnOverride numeric="44088" spn="KDDI" /> - <spnOverride numeric="44089" spn="KDDI" /> - <spnOverride numeric="44078" spn="Okinawa Cellular Telephone" /> - <spnOverride numeric="44020" spn="SoftBank" /> - <spnOverride numeric="44080" spn="TU-KA" /> - <spnOverride numeric="44081" spn="TU-KA" /> - <spnOverride numeric="44082" spn="TU-KA" /> - <spnOverride numeric="44083" spn="TU-KA" /> - <spnOverride numeric="44084" spn="TU-KA" /> - <spnOverride numeric="44085" spn="TU-KA" /> - <spnOverride numeric="44086" spn="TU-KA" /> - <spnOverride numeric="44004" spn="Vodafone" /> - <spnOverride numeric="44006" spn="Vodafone" /> - <spnOverride numeric="44040" spn="Vodafone" /> - <spnOverride numeric="44041" spn="Vodafone" /> - <spnOverride numeric="44042" spn="Vodafone" /> - <spnOverride numeric="44043" spn="Vodafone" /> - <spnOverride numeric="44044" spn="Vodafone" /> - <spnOverride numeric="44045" spn="Vodafone" /> - <spnOverride numeric="44046" spn="Vodafone" /> - <spnOverride numeric="44047" spn="Vodafone" /> - <spnOverride numeric="44048" spn="Vodafone" /> - <spnOverride numeric="44090" spn="Vodafone" /> - <spnOverride numeric="44092" spn="Vodafone" /> - <spnOverride numeric="44093" spn="Vodafone" /> - <spnOverride numeric="44094" spn="Vodafone" /> - <spnOverride numeric="44095" spn="Vodafone" /> - <spnOverride numeric="44096" spn="Vodafone" /> - <spnOverride numeric="44097" spn="Vodafone" /> - <spnOverride numeric="44098" spn="Vodafone" /> - <!-- Jordan --> - <spnOverride numeric="41677" spn="Orange" /> - <spnOverride numeric="41603" spn="Umniah" /> - <spnOverride numeric="41602" spn="XPress Telecom" /> - <spnOverride numeric="41601" spn="Zain" /> - <!-- Kazakhstan --> - <spnOverride numeric="40101" spn="Beeline" /> - <spnOverride numeric="40107" spn="Dalacom" /> - <spnOverride numeric="40102" spn="K'Cell" /> - <spnOverride numeric="40108" spn="Kazakhtelecom" /> - <spnOverride numeric="40177" spn="Mobile Telecom Service" /> - <!-- Kenya --> - <spnOverride numeric="63907" spn="Orange Kenya" /> - <spnOverride numeric="63902" spn="Safaricom" /> - <spnOverride numeric="63905" spn="yu" /> - <spnOverride numeric="63903" spn="Zain" /> - <!-- Kiribati --> - <spnOverride numeric="54509" spn="Kiribati Frigate" /> - <!-- Kuwait --> - <spnOverride numeric="41904" spn="Viva" /> - <spnOverride numeric="41903" spn="Wataniya" /> - <spnOverride numeric="41902" spn="Zain" /> - <!-- Kyrgyzstan --> - <spnOverride numeric="43701" spn="Bitel" /> - <spnOverride numeric="43703" spn="Fonex" /> - <spnOverride numeric="43705" spn="MegaCom" /> - <spnOverride numeric="43709" spn="O!" /> - <!-- Laos --> - <spnOverride numeric="45702" spn="ETL" /> - <spnOverride numeric="45701" spn="LaoTel" /> - <spnOverride numeric="45703" spn="LAT" /> - <spnOverride numeric="45708" spn="Tigo" /> - <!-- Latvia --> - <spnOverride numeric="24705" spn="Bite" /> - <spnOverride numeric="24709" spn="Camel Mobile" /> - <spnOverride numeric="24708" spn="IZZI" /> - <spnOverride numeric="24701" spn="LMT" /> - <spnOverride numeric="24707" spn="MTS" /> - <spnOverride numeric="24706" spn="Rigatta" /> - <spnOverride numeric="24702" spn="Tele2" /> - <spnOverride numeric="24703" spn="TRIATEL" /> - <!-- Lebanon --> - <spnOverride numeric="41501" spn="Alfa" /> - <spnOverride numeric="41503" spn="MTC-Touch" /> - <spnOverride numeric="41505" spn="Ogero Mobile" /> - <!-- Lesotho --> - <spnOverride numeric="65102" spn="Econet Ezin-cel" /> - <spnOverride numeric="65101" spn="Vodacom" /> - <!-- Libya --> - <spnOverride numeric="60602" spn="Al-Jeel Phone" /> - <spnOverride numeric="60606" spn="Hatef Libya" /> - <spnOverride numeric="60603" spn="Libya Phone" /> - <spnOverride numeric="60600" spn="Libyana" /> - <spnOverride numeric="60601" spn="Madar" /> - <!-- Liechtenstein --> - <spnOverride numeric="29504" spn="Cubic Telecom" /> - <spnOverride numeric="29505" spn="FL1" /> - <spnOverride numeric="29502" spn="Orange" /> - <spnOverride numeric="29501" spn="Swisscom" /> - <spnOverride numeric="29577" spn="Tele 2" /> - <!-- Lithuania --> - <spnOverride numeric="24602" spn="BITE" /> - <spnOverride numeric="24605" spn="LitRail" /> - <spnOverride numeric="24606" spn="Mediafon" /> - <spnOverride numeric="24601" spn="Omnitel" /> - <spnOverride numeric="24603" spn="Tele 2" /> - <!-- Livery --> - <spnOverride numeric="61807" spn="Cellcom" /> - <spnOverride numeric="61804" spn="Comium Liberi" /> - <spnOverride numeric="61802" spn="Libercell" /> - <spnOverride numeric="61820" spn="LIBTELCO" /> - <spnOverride numeric="61801" spn="Lonestar Cell" /> - <!-- Luksemburg --> - <spnOverride numeric="27001" spn="LuxGSM" /> - <spnOverride numeric="27077" spn="Tango" /> - <spnOverride numeric="27099" spn="Voxmobile" /> - <!-- Macao (People's Republic of China) --> - <spnOverride numeric="45503" spn="3" /> - <spnOverride numeric="45505" spn="3" /> - <spnOverride numeric="45502" spn="China Telecom" /> - <spnOverride numeric="45501" spn="CTM" /> - <spnOverride numeric="45504" spn="CTM" /> - <spnOverride numeric="45500" spn="SmarTone" /> - <!-- Madagascar --> - <spnOverride numeric="64602" spn="Orange" /> - <spnOverride numeric="64603" spn="Sacel" /> - <spnOverride numeric="64604" spn="Telma" /> - <spnOverride numeric="64601" spn="Zain" /> - <!-- Malawi --> - <spnOverride numeric="65001" spn="TNM" /> - <spnOverride numeric="65010" spn="Zain" /> - <!-- Malaysia --> - <spnOverride numeric="50201" spn="ATUR 450" /> - <spnOverride numeric="502151" spn="Baraka Telecom Sdn Bhd (MVNE)" /> - <spnOverride numeric="50213" spn="Celcom" /> - <spnOverride numeric="50219" spn="Celcom" /> - <spnOverride numeric="50216" spn="DiGi" /> - <spnOverride numeric="50210" spn="DiGi Telecommunications" /> - <spnOverride numeric="50220" spn="Electcoms Wireless Sdn Bhd" /> - <spnOverride numeric="50212" spn="Maxis" /> - <spnOverride numeric="50217" spn="Maxis" /> - <spnOverride numeric="50214" spn="Telekom Malaysia Berhad for PSTN SMS" /> - <spnOverride numeric="50211" spn="TM Homeline" /> - <spnOverride numeric="502150" spn="Tune Talk Sdn Bhd" /> - <spnOverride numeric="50218" spn="U Mobile" /> - <spnOverride numeric="502152" spn="Yes" /> - <!-- Maldives --> - <spnOverride numeric="47201" spn="Dhiraagu" /> - <spnOverride numeric="47202" spn="Wataniya" /> - <!-- Mali --> - <spnOverride numeric="61001" spn="Malitel" /> - <spnOverride numeric="61002" spn="Orange" /> - <!-- Malta --> - <spnOverride numeric="27821" spn="GO" /> - <spnOverride numeric="27877" spn="Melita" /> - <spnOverride numeric="27801" spn="Vodafone" /> - <!-- Mauretania --> - <spnOverride numeric="60902" spn="Chinguitel" /> - <spnOverride numeric="60901" spn="Mattel" /> - <spnOverride numeric="60910" spn="Mauritel" /> - <!-- Mauritius --> - <spnOverride numeric="61710" spn="Emtel" /> - <spnOverride numeric="61702" spn="Mahanagar Telephone (Mauritius) Ltd." /> - <spnOverride numeric="61701" spn="Orange" /> - <!-- Mexico --> - <spnOverride numeric="334050" spn="Iusacell" /> - <spnOverride numeric="33403" spn="movistar" /> - <spnOverride numeric="334030" spn="movistar" /> - <spnOverride numeric="33401" spn="Nextel" /> - <spnOverride numeric="334010" spn="Nextel" /> - <spnOverride numeric="33402" spn="Telcel" /> - <spnOverride numeric="334020" spn="Telcel" /> - <!-- Micronesia --> - <spnOverride numeric="55001" spn="FSM Telecom" /> - <!-- Moldova --> - <spnOverride numeric="25904" spn="Eventis" /> - <spnOverride numeric="25903" spn="IDC" /> - <spnOverride numeric="25902" spn="Moldcell" /> - <spnOverride numeric="25901" spn="Orange" /> - <spnOverride numeric="25905" spn="UnitE" /> - <spnOverride numeric="25999" spn="UnitE" /> - <!-- Monaco --> - <spnOverride numeric="21201" spn="Office des Telephones" /> - <!-- Mongolia --> - <spnOverride numeric="42898" spn="G.Mobile" /> - <spnOverride numeric="42899" spn="MobiCom" /> - <spnOverride numeric="42891" spn="Skytel" /> - <spnOverride numeric="42888" spn="Unitel" /> - <!-- Montenegro --> - <spnOverride numeric="29703" spn="m:tel CG" /> - <spnOverride numeric="22004" spn="T-Mobile" /> - <spnOverride numeric="29702" spn="T-Mobile" /> - <spnOverride numeric="29704" spn="T-Mobile" /> - <spnOverride numeric="29701" spn="Telenor Montenegro" /> - <!-- Morocco --> - <spnOverride numeric="60401" spn="IAM" /> - <spnOverride numeric="60405" spn="INWI" /> - <spnOverride numeric="60400" spn="Meditel" /> - <!-- Mozambique --> - <spnOverride numeric="64301" spn="mCel" /> - <spnOverride numeric="64304" spn="Vodacom" /> - <!-- Myanmar --> - <spnOverride numeric="41401" spn="MPT" /> - <!-- Namibia --> - <spnOverride numeric="64903" spn="Cell One" /> - <spnOverride numeric="64901" spn="MTC" /> - <spnOverride numeric="64902" spn="switch" /> - <!-- Nauru --> - <spnOverride numeric="53602" spn="Digicel" /> - <!-- Nepal --> - <spnOverride numeric="42902" spn="Mero Mobile" /> - <spnOverride numeric="42901" spn="Nepal Telecom" /> - <spnOverride numeric="42904" spn="SmartCell" /> - <spnOverride numeric="42903" spn="United Telecom Limited" /> - <!-- Netherlands Antilles (Netherlands) --> - <spnOverride numeric="36294" spn="Bayus" /> - <spnOverride numeric="36269" spn="Digicel" /> - <spnOverride numeric="36295" spn="MIO" /> - <spnOverride numeric="36251" spn="Telcell" /> - <spnOverride numeric="36291" spn="UTS" /> - <!-- New Caledonia (France) --> - <spnOverride numeric="54601" spn="Mobilis" /> - <!-- New Zealand --> - <spnOverride numeric="53024" spn="NZ Comms" /> - <spnOverride numeric="53000" spn="Telecom" /> - <spnOverride numeric="53002" spn="Telecom" /> - <spnOverride numeric="53005" spn="Telecom" /> - <spnOverride numeric="53004" spn="TelstraClear" /> - <spnOverride numeric="53001" spn="Vodafone" /> - <spnOverride numeric="53003" spn="Woosh" /> - <!-- Nicaragua --> - <spnOverride numeric="71021" spn="Claro" /> - <spnOverride numeric="71030" spn="movistar" /> - <spnOverride numeric="71073" spn="SERCOM" /> - <!-- Niger --> - <spnOverride numeric="61404" spn="Orange" /> - <spnOverride numeric="61401" spn="SahelCom" /> - <spnOverride numeric="61403" spn="Telecel" /> - <spnOverride numeric="61402" spn="Zain" /> - <!-- Nigeria --> - <spnOverride numeric="62160" spn="Etisalat" /> - <spnOverride numeric="62150" spn="Glo" /> - <spnOverride numeric="62140" spn="M-Tel" /> - <spnOverride numeric="62130" spn="MTN" /> - <spnOverride numeric="62125" spn="Visafone" /> - <spnOverride numeric="62120" spn="Zain" /> - <!-- Niue --> - <spnOverride numeric="55501" spn="Telecom Niue" /> - <!-- North Korea --> - <spnOverride numeric="467192" spn="Koryolink" /> - <spnOverride numeric="467193" spn="SUN NET" /> - <!-- Norway --> - <spnOverride numeric="24209" spn="Barablu Mobile Norway Ltd" /> - <spnOverride numeric="24206" spn="Ice" /> - <spnOverride numeric="24220" spn="Jernbaneverket AS" /> - <spnOverride numeric="24223" spn="Lyca" /> - <spnOverride numeric="24203" spn="MTU" /> - <spnOverride numeric="24202" spn="NetCom" /> - <spnOverride numeric="24205" spn="Network Norway" /> - <spnOverride numeric="24211" spn="SystemNet" /> - <spnOverride numeric="24208" spn="TDC Mobil AS" /> - <spnOverride numeric="24204" spn="Tele2" /> - <spnOverride numeric="24201" spn="Telenor" /> - <spnOverride numeric="24207" spn="Ventelo" /> - <!-- Oman --> - <spnOverride numeric="42203" spn="Nawras" /> - <spnOverride numeric="42202" spn="Oman Mobile" /> - <!-- Osetia --> - <spnOverride numeric="25030" spn="Megafon" /> - <!-- Pakistan --> - <spnOverride numeric="41008" spn="Instaphone" /> - <spnOverride numeric="41001" spn="Mobilink" /> - <spnOverride numeric="41006" spn="Telenor" /> - <spnOverride numeric="41003" spn="Ufone" /> - <spnOverride numeric="41007" spn="Warid" /> - <spnOverride numeric="41004" spn="Zong" /> - <!-- Palau --> - <spnOverride numeric="55280" spn="Palau Mobile" /> - <spnOverride numeric="55201" spn="PNCC" /> - <!-- Palestine --> - <spnOverride numeric="42505" spn="JAWWAL" /> - <spnOverride numeric="42506" spn="Wataniya" /> - <!-- Panama --> - <spnOverride numeric="71401" spn="Cable & Wireless" /> - <spnOverride numeric="71404" spn="Digicel" /> - <spnOverride numeric="71403" spn="laro" /> - <spnOverride numeric="71402" spn="movistar" /> - <!-- Papua New Guinea --> - <spnOverride numeric="53701" spn="B-Mobile" /> - <spnOverride numeric="53703" spn="Digicel" /> - <!-- Paraguay --> - <spnOverride numeric="74402" spn="Claro" /> - <spnOverride numeric="74406" spn="Copaco" /> - <spnOverride numeric="74405" spn="Personal" /> - <spnOverride numeric="74404" spn="Tigo" /> - <spnOverride numeric="74401" spn="VOX" /> - <!-- Peru --> - <spnOverride numeric="71610" spn="Claro" /> - <spnOverride numeric="71606" spn="movistar" /> - <spnOverride numeric="71607" spn="NEXTEL" /> - <!-- Philippines --> - <spnOverride numeric="51511" spn="ACeS Philippines" /> - <spnOverride numeric="51505" spn="Digitel" /> - <spnOverride numeric="51502" spn="Globe" /> - <spnOverride numeric="51501" spn="Islacom" /> - <spnOverride numeric="51588" spn="Nextel" /> - <spnOverride numeric="51518" spn="Red Mobile" /> - <spnOverride numeric="51503" spn="Smart Gold" /> - <!-- Poland --> - <spnOverride numeric="26017" spn="Aero2" /> - <spnOverride numeric="26015" spn="CenterNet" /> - <spnOverride numeric="26012" spn="Cyfrowy Polsat" /> - <spnOverride numeric="26008" spn="E-Telko" /> - <spnOverride numeric="26016" spn="Mobyland" /> - <spnOverride numeric="26011" spn="Nordisk Polska" /> - <spnOverride numeric="26003" spn="Orange" /> - <spnOverride numeric="26006" spn="Play" /> - <spnOverride numeric="26001" spn="Plus" /> - <spnOverride numeric="26005" spn="Polska Telefonia" /> - <spnOverride numeric="26007" spn="Premium Internet" /> - <spnOverride numeric="26013" spn="Sferia" /> - <spnOverride numeric="26002" spn="T-Mobile" /> - <spnOverride numeric="26004" spn="Tele2" /> - <spnOverride numeric="26010" spn="Telefony Opalenickie" /> - <spnOverride numeric="26009" spn="Telekomunikacja Kolejowa" /> - <!-- Portugal --> - <spnOverride numeric="26806" spn="MEO" /> - <spnOverride numeric="26803" spn="NOS" /> - <spnOverride numeric="26801" spn="Vodafone" /> - <spnOverride numeric="26821" spn="Zapp" /> - <!-- Puerto Rico --> - <spnOverride numeric="33011" spn="Claro" /> - <spnOverride numeric="330110" spn="Claro" /> - <spnOverride numeric="33000" spn="Open Mobile" /> - <!-- Qatar --> - <spnOverride numeric="42705" spn="Ministry of Interior" /> - <spnOverride numeric="42701" spn="Qatarnet" /> - <spnOverride numeric="42702" spn="Vodafone" /> - <!-- Republic of Congo --> - <spnOverride numeric="62910" spn="Libertis Telecom" /> - <spnOverride numeric="62907" spn="Warid Telecom" /> - <spnOverride numeric="62901" spn="Zain" /> - <!-- Republic of Macedonia --> - <spnOverride numeric="29402" spn="Cosmofon" /> - <spnOverride numeric="29401" spn="T-Mobile" /> - <spnOverride numeric="29403" spn="VIP" /> - <!-- Reunion (France) --> - <spnOverride numeric="64700" spn="Orange" /> - <spnOverride numeric="64702" spn="Outremer" /> - <spnOverride numeric="64710" spn="SFR Reunion" /> - <!-- Romania --> - <spnOverride numeric="22603" spn="Cosmote" /> - <spnOverride numeric="22605" spn="DIGI.mobil" /> - <spnOverride numeric="22611" spn="Enigma-System" /> - <spnOverride numeric="22610" spn="Orange" /> - <spnOverride numeric="22602" spn="Romtelecom" /> - <spnOverride numeric="22601" spn="Vodafone" /> - <spnOverride numeric="22604" spn="Zapp" /> - <spnOverride numeric="22606" spn="Zapp" /> - <!-- Russian Federation --> - <spnOverride numeric="25012" spn="Baykalwestcom" /> - <spnOverride numeric="25028" spn="Beeline" /> - <spnOverride numeric="25099" spn="Beeline" /> - <spnOverride numeric="25010" spn="DTC" /> - <spnOverride numeric="25005" spn="ETK" /> - <spnOverride numeric="25019" spn="INDIGO" /> - <spnOverride numeric="25013" spn="KUGSM" /> - <spnOverride numeric="25002" spn="MegaFon" /> - <spnOverride numeric="25023" spn="Mobicom - Novosibirsk" /> - <spnOverride numeric="25035" spn="MOTIV" /> - <spnOverride numeric="25001" spn="MTS" /> - <spnOverride numeric="25003" spn="NCC" /> - <spnOverride numeric="25016" spn="NTC" /> - <spnOverride numeric="25011" spn="Orensot" /> - <spnOverride numeric="25092" spn="Primtelefon" /> - <spnOverride numeric="25004" spn="Sibchallenge" /> - <spnOverride numeric="25006" spn="Skylink" /> - <spnOverride numeric="25009" spn="Skylink" /> - <spnOverride numeric="25007" spn="SMARTS" /> - <spnOverride numeric="25014" spn="SMARTS" /> - <spnOverride numeric="25015" spn="SMARTS" /> - <spnOverride numeric="25044" spn="Stavtelesot / North Caucasian GSM" /> - <spnOverride numeric="25038" spn="Tambov GSM" /> - <spnOverride numeric="25020" spn="Tele2" /> - <spnOverride numeric="25093" spn="Telecom XXI" /> - <spnOverride numeric="25017" spn="Utel" /> - <spnOverride numeric="25039" spn="Utel" /> - <!-- Rwanda --> - <spnOverride numeric="63510" spn="MTN" /> - <spnOverride numeric="63512" spn="Rwandatel" /> - <spnOverride numeric="63513" spn="Tigo" /> - <!-- Saint Kitts and Nevis --> - <spnOverride numeric="356110" spn="Cable & Wireless" /> - <spnOverride numeric="356070" spn="Chippie" /> - <spnOverride numeric="356050" spn="Digicel" /> - <!-- Saint Lucia --> - <spnOverride numeric="358110" spn="Cable & Wireless" /> - <spnOverride numeric="358050" spn="Digicel" /> - <!-- Saint Vincent and the Grenadines --> - <spnOverride numeric="360110" spn="Cable & Wireless" /> - <spnOverride numeric="360100" spn="Cingular Wireless" /> - <spnOverride numeric="360050" spn="Digicel" /> - <spnOverride numeric="360070" spn="Digicel" /> - <!-- Saint-Pierre and Miquelon (France) --> - <spnOverride numeric="30801" spn="Ameris" /> - <!-- Samoa --> - <spnOverride numeric="54901" spn="Digicel" /> - <spnOverride numeric="54927" spn="SamoaTel" /> - <!-- San Marino --> - <spnOverride numeric="29201" spn="PRIMA" /> - <!-- Sao Tome and Principe --> - <spnOverride numeric="62601" spn="CSTmovel" /> - <!-- Saudi Arabia --> - <spnOverride numeric="42007" spn="EAE" /> - <spnOverride numeric="42003" spn="Mobily" /> - <spnOverride numeric="42001" spn="STC" /> - <spnOverride numeric="42004" spn="Zain SA" /> - <!-- Senegal --> - <spnOverride numeric="60803" spn="Expresso" /> - <spnOverride numeric="60802" spn="Sentel GSM" /> - <spnOverride numeric="60801" spn="Sonatel ALIZE" /> - <!-- Serbia --> - <spnOverride numeric="22003" spn="Telekom Srbija" /> - <spnOverride numeric="22001" spn="Telenor" /> - <spnOverride numeric="22005" spn="VIP Mobile" /> - <!-- Seychelles --> - <spnOverride numeric="63301" spn="Cable & Wireless (Seychelles) Ltd." /> - <spnOverride numeric="63302" spn="Mediatech International" /> - <spnOverride numeric="63310" spn="Telecom Airtel" /> - <!-- Sierra Leone --> - <spnOverride numeric="61905" spn="Africell" /> - <spnOverride numeric="61904" spn="Comium" /> - <spnOverride numeric="61903" spn="Datatel" /> - <spnOverride numeric="61902" spn="Millicom" /> - <spnOverride numeric="61925" spn="Mobitel" /> - <spnOverride numeric="61901" spn="Zain" /> - <!-- Singapore --> - <spnOverride numeric="52512" spn="Digital Trunked Radio Network" /> - <spnOverride numeric="52503" spn="M1" /> - <spnOverride numeric="52501" spn="SingTel" /> - <spnOverride numeric="52502" spn="SingTel-G18" /> - <spnOverride numeric="52505" spn="StarHub" /> - <!-- Slovakia --> - <spnOverride numeric="23105" spn="Mobile Entertainment Company" /> - <spnOverride numeric="23106" spn="O2" /> - <spnOverride numeric="23101" spn="Orange" /> - <spnOverride numeric="23102" spn="T-Mobile" /> - <spnOverride numeric="23104" spn="T-Mobile" /> - <spnOverride numeric="23103" spn="Unient Communications" /> - <spnOverride numeric="23199" spn="eSR" /> - <!-- Slovenia --> - <spnOverride numeric="29341" spn="Mobitel" /> - <spnOverride numeric="29340" spn="SI.mobil - Vodafone" /> - <spnOverride numeric="29364" spn="T-2" /> - <spnOverride numeric="29370" spn="Tusmobil" /> - <!-- Solomon Islands --> - <spnOverride numeric="54001" spn="BREEZE" /> - <spnOverride numeric="5401" spn="BREEZE" /> - <!-- Somalia --> - <spnOverride numeric="63730" spn="Golis" /> - <spnOverride numeric="63725" spn="Hormuud" /> - <spnOverride numeric="63710" spn="Nationlink" /> - <spnOverride numeric="63760" spn="Nationlink Telecom" /> - <spnOverride numeric="63704" spn="Somafone" /> - <spnOverride numeric="63701" spn="Telesom" /> - <spnOverride numeric="63782" spn="Telesom" /> - <!-- South Africa --> - <spnOverride numeric="65530" spn="Bokamoso Consortium" /> - <spnOverride numeric="65521" spn="Cape Town Metropolitan Council" /> - <spnOverride numeric="65507" spn="Cell C" /> - <spnOverride numeric="65532" spn="Ilizwi Telecommunications" /> - <spnOverride numeric="65531" spn="Karabo Telecoms (Pty) Ltd." /> - <spnOverride numeric="65510" spn="MTN" /> - <spnOverride numeric="65513" spn="Neotel" /> - <spnOverride numeric="65511" spn="SAPS Gauteng" /> - <spnOverride numeric="65506" spn="Sentech" /> - <spnOverride numeric="65502" spn="Telkom Mobile / 8.ta" /> - <spnOverride numeric="65533" spn="Thinta Thinta Telecommunications" /> - <spnOverride numeric="65501" spn="Vodacom" /> - <!-- South Korea --> - <spnOverride numeric="45004" spn="KT" /> - <spnOverride numeric="45008" spn="KTF" /> - <spnOverride numeric="45002" spn="KTF CDMA" /> - <spnOverride numeric="45006" spn="LGU+" /> - <spnOverride numeric="45003" spn="Power 017" /> - <spnOverride numeric="45005" spn="SK Telecom" /> - <!-- Spain --> - <spnOverride numeric="21423" spn="BARABLU" /> - <spnOverride numeric="21415" spn="BT" /> - <spnOverride numeric="21422" spn="DigiMobil" /> - <spnOverride numeric="21424" spn="Eroski" /> - <spnOverride numeric="21408" spn="Euskaltel" /> - <spnOverride numeric="21420" spn="Fonyou" /> - <spnOverride numeric="21425" spn="LycaMobile" /> - <spnOverride numeric="21407" spn="movistar" /> - <spnOverride numeric="21417" spn="MUbil R" /> - <spnOverride numeric="21418" spn="ONO" /> - <spnOverride numeric="21403" spn="Orange" /> - <spnOverride numeric="21409" spn="Orange" /> - <spnOverride numeric="21419" spn="Simyo" /> - <spnOverride numeric="21416" spn="TeleCable" /> - <spnOverride numeric="21405" spn="TME" /> - <spnOverride numeric="21432" spn="Tuenti" /> - <spnOverride numeric="21401" spn="Vodafone" /> - <spnOverride numeric="21406" spn="Vodafone" /> - <spnOverride numeric="21404" spn="Yoigo" /> - <!-- Sri Lanka --> - <spnOverride numeric="41305" spn="Airtel" /> - <spnOverride numeric="41302" spn="Dialog" /> - <spnOverride numeric="41308" spn="Hutch Sri Lanka" /> - <spnOverride numeric="41301" spn="Mobitel" /> - <spnOverride numeric="41303" spn="Tigo" /> - <!-- Sudan --> - <spnOverride numeric="63401" spn="Mobitel / Mobile Telephone Company" /> - <spnOverride numeric="63402" spn="MTN" /> - <spnOverride numeric="63407" spn="Sudani One" /> - <spnOverride numeric="63405" spn="Vivacell" /> - <!-- Suriname --> - <spnOverride numeric="74603" spn="Digicel" /> - <spnOverride numeric="74602" spn="Telesu" /> - <spnOverride numeric="74604" spn="Uniqa" /> - <!-- Swaziland --> - <spnOverride numeric="65310" spn="Swazi MTN" /> - <!-- Sweden --> - <spnOverride numeric="24002" spn="3 HUTCHISON" /> - <spnOverride numeric="24004" spn="3G Infrastructure Services" /> - <spnOverride numeric="24016" spn="42IT" /> - <spnOverride numeric="24021" spn="Banverket" /> - <spnOverride numeric="24012" spn="Barablu Mobile Scandinavia" /> - <spnOverride numeric="24026" spn="Beepsend" /> - <spnOverride numeric="24025" spn="DigiTelMobile" /> - <spnOverride numeric="24017" spn="Gotanet" /> - <spnOverride numeric="24000" spn="Halebop" /> - <spnOverride numeric="24011" spn="Lindholmen Science Park" /> - <spnOverride numeric="24033" spn="Mobile Arts AB" /> - <spnOverride numeric="24003" spn="Nordisk Mobiltelefon" /> - <spnOverride numeric="24010" spn="SpringMobil" /> - <spnOverride numeric="24024" spn="Sweden 2G" /> - <spnOverride numeric="24005" spn="Sweden 3G" /> - <spnOverride numeric="24014" spn="TDC Mobil" /> - <spnOverride numeric="24007" spn="Tele2Comviq" /> - <spnOverride numeric="24006" spn="Telenor" /> - <spnOverride numeric="24008" spn="Telenor" /> - <spnOverride numeric="24009" spn="Telenor Mobile Sverige" /> - <spnOverride numeric="24001" spn="TeliaSonera Mobile Networks" /> - <spnOverride numeric="24013" spn="Ventelo Sverige" /> - <spnOverride numeric="24020" spn="Wireless Maingate" /> - <spnOverride numeric="24015" spn="Wireless Maingate Nordic" /> - <!-- Switzerland --> - <spnOverride numeric="22850" spn="3G Mobile AG" /> - <spnOverride numeric="22851" spn="BebbiCell AG" /> - <spnOverride numeric="22807" spn="IN&Phone" /> - <spnOverride numeric="22803" spn="Orange" /> - <spnOverride numeric="22806" spn="SBB AG" /> - <spnOverride numeric="22802" spn="Sunrise" /> - <spnOverride numeric="22801" spn="Swisscom" /> - <spnOverride numeric="22808" spn="Tele2" /> - <spnOverride numeric="22805" spn="Togewanet AG (Comfone)" /> - <!-- Syria --> - <spnOverride numeric="41702" spn="MTN Syria" /> - <spnOverride numeric="41701" spn="SyriaTel" /> - <!-- Taiwan --> - <spnOverride numeric="46602" spn="APTG" /> - <spnOverride numeric="46605" spn="APTG" /> - <spnOverride numeric="46611" spn="Chunghwa LDM" /> - <spnOverride numeric="46692" spn="中華電信" /> - <spnOverride numeric="46601" spn="遠傳電信" /> - <spnOverride numeric="46688" spn="和信電訊" /> - <spnOverride numeric="46693" spn="東信電訊" /> - <spnOverride numeric="46697" spn="台灣大哥大" /> - <spnOverride numeric="46699" spn="泛亞電信" /> - <spnOverride numeric="46606" spn="Tuntex" /> - <spnOverride numeric="46689" spn="威寶電信" /> - <!-- Tajikistan --> - <spnOverride numeric="43604" spn="Babilon-M" /> - <spnOverride numeric="43605" spn="CTJTHSC Tajik-tel" /> - <spnOverride numeric="43602" spn="Indigo" /> - <spnOverride numeric="43603" spn="MLT" /> - <spnOverride numeric="43601" spn="Somoncom" /> - <spnOverride numeric="43612" spn="Tcell" /> - <!-- Tanzania --> - <spnOverride numeric="64009" spn="Hits" /> - <spnOverride numeric="64002" spn="Mobitel" /> - <spnOverride numeric="64006" spn="Sasatel" /> - <spnOverride numeric="64011" spn="SmileCom" /> - <spnOverride numeric="64001" spn="Tritel" /> - <spnOverride numeric="64007" spn="TTCL Mobile" /> - <spnOverride numeric="64008" spn="TTCL Mobile" /> - <spnOverride numeric="64004" spn="Vodacom" /> - <spnOverride numeric="64005" spn="Zain" /> - <spnOverride numeric="64003" spn="Zantel" /> - <!-- Thailand --> - <spnOverride numeric="52015" spn="ACT Mobile" /> - <spnOverride numeric="52001" spn="Advanced Info Service" /> - <spnOverride numeric="52023" spn="Advanced Info Service" /> - <spnOverride numeric="52000" spn="CAT CDMA" /> - <spnOverride numeric="52002" spn="CAT CDMA" /> - <spnOverride numeric="52018" spn="DTAC" /> - <spnOverride numeric="52099" spn="True Move" /> - <spnOverride numeric="52010" spn="WCS IQ" /> - <!-- Togo --> - <spnOverride numeric="61503" spn="Moov" /> - <spnOverride numeric="61505" spn="Telecel" /> - <spnOverride numeric="61501" spn="Togo Cell" /> - <!-- Tonga --> - <spnOverride numeric="53988" spn="Digicel" /> - <spnOverride numeric="53943" spn="Shoreline Communication" /> - <spnOverride numeric="53901" spn="Tonga Communications Corporation" /> - <!-- Trinidad and Tobago --> - <spnOverride numeric="37412" spn="bmobile" /> - <spnOverride numeric="37413" spn="Digicel" /> - <spnOverride numeric="374130" spn="Digicel" /> - <!-- Tunisia --> - <spnOverride numeric="60501" spn="Orange" /> - <spnOverride numeric="60502" spn="Tunicell" /> - <spnOverride numeric="60503" spn="Tunisiana" /> - <!-- Turkey --> - <spnOverride numeric="28603" spn="Avea" /> - <spnOverride numeric="28604" spn="Aycell" /> - <spnOverride numeric="28601" spn="Turkcell" /> - <spnOverride numeric="28602" spn="Vodafone" /> - <!-- Turkmenistan --> - <spnOverride numeric="43801" spn="MTS" /> - <spnOverride numeric="43802" spn="TM-Cell" /> - <!-- Tuvalu --> - <spnOverride numeric="55301" spn="TTC" /> - <!-- Uganda --> - <spnOverride numeric="64110" spn="MTN" /> - <spnOverride numeric="64114" spn="Orange" /> - <spnOverride numeric="64111" spn="Uganda Telecom Ltd." /> - <spnOverride numeric="64122" spn="Warid Telecom" /> - <spnOverride numeric="64101" spn="Zain" /> - <!-- Ukraine --> - <spnOverride numeric="25502" spn="Beeline" /> - <spnOverride numeric="25523" spn="CDMA Ukraine" /> - <spnOverride numeric="25505" spn="Golden Telecom" /> - <spnOverride numeric="25504" spn="IT" /> - <spnOverride numeric="25503" spn="Kyivstar" /> - <spnOverride numeric="25506" spn="life:)" /> - <spnOverride numeric="25501" spn="MTS" /> - <spnOverride numeric="25521" spn="PEOPLEnet" /> - <spnOverride numeric="25507" spn="Utel" /> - <!-- United Arab Emirates --> - <spnOverride numeric="42403" spn="du" /> - <spnOverride numeric="42402" spn="Etisalat" /> - <!-- United Kingdom --> - <spnOverride numeric="23420" spn="3 Hutchison" /> - <spnOverride numeric="23400" spn="BT" /> - <spnOverride numeric="23455" spn="Cable & Wireless / Sure Mobile (Isle of Man)" /> - <spnOverride numeric="23418" spn="Cloud9" /> - <spnOverride numeric="23403" spn="Jersey Telenet" /> - <spnOverride numeric="23450" spn="JT-Wave" /> - <spnOverride numeric="23458" spn="Manx Telecom" /> - <spnOverride numeric="23401" spn="MCom" /> - <spnOverride numeric="23402" spn="O2" /> - <spnOverride numeric="23410" spn="O2" /> - <spnOverride numeric="23411" spn="O2" /> - <spnOverride numeric="23433" spn="Orange" /> - <spnOverride numeric="23434" spn="Orange" /> - <spnOverride numeric="23412" spn="Railtrack" /> - <spnOverride numeric="23422" spn="Routo Telecom" /> - <spnOverride numeric="23409" spn="Sure Mobile" /> - <spnOverride numeric="23430" spn="T-Mobile" /> - <spnOverride numeric="23419" spn="Telaware" /> - <spnOverride numeric="234100" spn="Tesco Mobile" /> - <spnOverride numeric="23477" spn="Unknown" /> - <spnOverride numeric="23431" spn="Virgin" /> - <spnOverride numeric="23432" spn="Virgin" /> - <spnOverride numeric="23415" spn="Vodafone" /> - <!-- United States --> - <spnOverride numeric="310880" spn="Advantage" /> - <spnOverride numeric="310850" spn="Aeris" /> - <spnOverride numeric="310640" spn="Airadigm" /> - <spnOverride numeric="310780" spn="Airlink PCS" /> - <spnOverride numeric="310034" spn="Airpeak" /> - <spnOverride numeric="310510" spn="Airtel" /> - <spnOverride numeric="310430" spn="Alaska Digitel" /> - <spnOverride numeric="310500" spn="Alltel" /> - <spnOverride numeric="310590" spn="Alltel" /> - <spnOverride numeric="310630" spn="AmeriLink PCS" /> - <spnOverride numeric="310038" spn="AT&T" /> - <spnOverride numeric="310090" spn="AT&T" /> - <spnOverride numeric="310150" spn="AT&T" /> - <spnOverride numeric="310170" spn="AT&T" /> - <spnOverride numeric="310410" spn="AT&T" /> - <spnOverride numeric="310560" spn="AT&T" /> - <spnOverride numeric="310680" spn="AT&T" /> - <spnOverride numeric="310380" spn="AT&T Mobility" /> - <spnOverride numeric="310980" spn="AT&T Mobility" /> - <spnOverride numeric="310990" spn="AT&T Mobility" /> - <spnOverride numeric="310830" spn="Caprock" /> - <spnOverride numeric="310350" spn="Carolina Phone" /> - <spnOverride numeric="311130" spn="Cell One Amarillo" /> - <spnOverride numeric="310320" spn="Cellular One" /> - <spnOverride numeric="310440" spn="Cellular One" /> - <spnOverride numeric="310390" spn="Cellular One of East Texas" /> - <spnOverride numeric="311190" spn="Cellular Properties" /> - <spnOverride numeric="310030" spn="Centennial" /> - <spnOverride numeric="311010" spn="Chariton Valley" /> - <spnOverride numeric="310570" spn="Chinook Wireless" /> - <spnOverride numeric="310480" spn="Choice Phone" /> - <spnOverride numeric="311120" spn="Choice Phone" /> - <spnOverride numeric="310420" spn="Cincinnati Bell" /> - <spnOverride numeric="311180" spn="Cingular Wireless" /> - <spnOverride numeric="310620" spn="Coleman County Telecom" /> - <spnOverride numeric="311040" spn="Commnet Wireless" /> - <spnOverride numeric="310040" spn="Concho" /> - <spnOverride numeric="310690" spn="Conestoga" /> - <spnOverride numeric="310060" spn="Consolidated Telcom" /> - <spnOverride numeric="310740" spn="Convey" /> - <spnOverride numeric="310080" spn="Corr" /> - <spnOverride numeric="310016" spn="Cricket Communications" /> - <spnOverride numeric="310940" spn="Digital Cellular" /> - <spnOverride numeric="310190" spn="Dutch Harbor" /> - <spnOverride numeric="311070" spn="Easterbrooke" /> - <spnOverride numeric="311160" spn="Endless Mountains Wireless" /> - <spnOverride numeric="310610" spn="Epic Touch" /> - <spnOverride numeric="311060" spn="Farmers Cellular" /> - <spnOverride numeric="311210" spn="Farmers Cellular" /> - <spnOverride numeric="310311" spn="Farmers Wireless" /> - <spnOverride numeric="310910" spn="First Cellular" /> - <spnOverride numeric="310300" spn="Get Mobile Inc" /> - <spnOverride numeric="310970" spn="Globalstar" /> - <spnOverride numeric="311100" spn="High Plains Wireless" /> - <spnOverride numeric="311110" spn="High Plains Wireless" /> - <spnOverride numeric="310070" spn="Highland Cellular" /> - <spnOverride numeric="310400" spn="i CAN_GSM" /> - <spnOverride numeric="310770" spn="i wireless" /> - <spnOverride numeric="311030" spn="Indigo Wireless" /> - <spnOverride numeric="310650" spn="Jasper" /> - <spnOverride numeric="311090" spn="Long Lines Wireless" /> - <spnOverride numeric="310010" spn="MCI" /> - <spnOverride numeric="310000" spn="Mid-Tex Cellular" /> - <spnOverride numeric="311000" spn="Mid-Tex Cellular" /> - <spnOverride numeric="311020" spn="Missouri RSA 5 Partnership" /> - <spnOverride numeric="310013" spn="MobileTel" /> - <spnOverride numeric="316010" spn="Nextel" /> - <spnOverride numeric="310017" spn="North Sight Communications Inc." /> - <spnOverride numeric="310670" spn="Northstar" /> - <spnOverride numeric="310540" spn="Oklahoma Western" /> - <spnOverride numeric="310870" spn="PACE" /> - <spnOverride numeric="310760" spn="Panhandle" /> - <spnOverride numeric="311170" spn="PetroCom" /> - <spnOverride numeric="311080" spn="Pine Cellular" /> - <spnOverride numeric="310790" spn="PinPoint" /> - <spnOverride numeric="310100" spn="Plateau Wireless" /> - <spnOverride numeric="310960" spn="Plateau Wireless" /> - <spnOverride numeric="310110" spn="PTI Pacifica" /> - <spnOverride numeric="310730" spn="SeaMobile" /> - <spnOverride numeric="310046" spn="SIMMETRY" /> - <spnOverride numeric="310460" spn="Simmetry" /> - <spnOverride numeric="316011" spn="Southern Communications Services" /> - <spnOverride numeric="310120" spn="Sprint" /> - <spnOverride numeric="311140" spn="Sprocket" /> - <spnOverride numeric="310490" spn="SunCom" /> - <spnOverride numeric="310026" spn="T-Mobile" /> - <spnOverride numeric="310160" spn="T-Mobile" /> - <spnOverride numeric="310200" spn="T-Mobile" /> - <spnOverride numeric="310210" spn="T-Mobile" /> - <spnOverride numeric="310220" spn="T-Mobile" /> - <spnOverride numeric="310230" spn="T-Mobile" /> - <spnOverride numeric="310240" spn="T-Mobile" /> - <spnOverride numeric="310250" spn="T-Mobile" /> - <spnOverride numeric="310260" spn="T-Mobile" /> - <spnOverride numeric="310270" spn="T-Mobile" /> - <spnOverride numeric="310280" spn="T-Mobile" /> - <spnOverride numeric="310290" spn="T-Mobile" /> - <spnOverride numeric="310310" spn="T-Mobile" /> - <spnOverride numeric="310330" spn="T-Mobile" /> - <spnOverride numeric="310580" spn="T-Mobile" /> - <spnOverride numeric="310660" spn="T-Mobile" /> - <spnOverride numeric="310800" spn="T-Mobile" /> - <spnOverride numeric="310900" spn="Taylor" /> - <spnOverride numeric="310014" spn="Testing" /> - <spnOverride numeric="310020" spn="Union Telephone Company" /> - <spnOverride numeric="310520" spn="VeriSign" /> - <spnOverride numeric="20404" spn="Verizon" /> - <spnOverride numeric="246081" spn="Verizon" /> - <spnOverride numeric="310004" spn="Verizon" /> - <spnOverride numeric="310012" spn="Verizon" /> - <spnOverride numeric="311480" spn="Verizon" /> - <spnOverride numeric="310450" spn="Viaero" /> - <spnOverride numeric="310180" spn="West Central" /> - <spnOverride numeric="310530" spn="West Virginia Wireless" /> - <spnOverride numeric="310340" spn="Westlink" /> - <spnOverride numeric="311050" spn="Wikes Cellular" /> - <spnOverride numeric="311150" spn="Wilkes Cellular" /> - <spnOverride numeric="310890" spn="Wireless Alliance" /> - <spnOverride numeric="310950" spn="XIT Wireless" /> - <!-- Uruguay --> - <spnOverride numeric="74800" spn="Ancel" /> - <spnOverride numeric="74801" spn="Ancel" /> - <spnOverride numeric="74810" spn="Claro" /> - <spnOverride numeric="74807" spn="Movistar" /> - <!-- Uzbekistan --> - <spnOverride numeric="43404" spn="Beeline" /> - <spnOverride numeric="43401" spn="Buztel" /> - <spnOverride numeric="43407" spn="MTS" /> - <spnOverride numeric="43406" spn="Perfectum Mobile" /> - <spnOverride numeric="43405" spn="Ucell" /> - <spnOverride numeric="43402" spn="Uzmacom" /> - <!-- Vanuatu --> - <spnOverride numeric="54101" spn="SMILE" /> - <!-- Venezuela --> - <spnOverride numeric="73401" spn="Digitel" /> - <spnOverride numeric="73402" spn="Digitel" /> - <spnOverride numeric="73403" spn="Digitel" /> - <spnOverride numeric="73406" spn="Movilnet" /> - <spnOverride numeric="73404" spn="movistar" /> - <!-- Vietnam --> - <spnOverride numeric="45208" spn="3G EVNTelecom" /> - <spnOverride numeric="45207" spn="Beeline VN" /> - <spnOverride numeric="45206" spn="E-Mobile" /> - <spnOverride numeric="45205" spn="HT Mobile" /> - <spnOverride numeric="45201" spn="MobiFone" /> - <spnOverride numeric="45203" spn="S-Fone" /> - <spnOverride numeric="45204" spn="Viettel Mobile" /> - <spnOverride numeric="45202" spn="Vinaphone" /> - <!-- Wyspy Turks i Caicos --> - <spnOverride numeric="376350" spn="C&W" /> - <spnOverride numeric="33805" spn="Digicel" /> - <spnOverride numeric="376352" spn="Islandcom" /> - <!-- Yemen --> - <spnOverride numeric="42104" spn="HiTS-UNITEL" /> - <spnOverride numeric="42102" spn="MTN" /> - <spnOverride numeric="42101" spn="SabaFon" /> - <spnOverride numeric="42103" spn="Yemen Mobile" /> - <!-- Zambia --> - <spnOverride numeric="64502" spn="MTN" /> - <spnOverride numeric="64501" spn="Zain" /> - <spnOverride numeric="64503" spn="ZAMTEL" /> - <!-- Zimbabwe --> - <spnOverride numeric="64804" spn="Econet" /> - <spnOverride numeric="64801" spn="Net*One" /> - <spnOverride numeric="64803" spn="Telecel" /> -</spnOverrides> diff --git a/sepolicy/app.te b/sepolicy/app.te index e590efe..6405e20 100644 --- a/sepolicy/app.te +++ b/sepolicy/app.te @@ -4,5 +4,5 @@ allow appdomain sdcard_posix:dir r_dir_perms; allow appdomain sdcard_posix:file rw_file_perms; # Themed resources (i.e. composed icons) -allow appdomain theme_data_file:dir r_dir_perms; -allow appdomain theme_data_file:file r_file_perms; +allow appdomain themeservice_app_data_file:dir r_dir_perms; +allow appdomain themeservice_app_data_file:file r_file_perms; diff --git a/sepolicy/bootanim.te b/sepolicy/bootanim.te index 8739a87..91273bd 100644 --- a/sepolicy/bootanim.te +++ b/sepolicy/bootanim.te @@ -1,5 +1,5 @@ # Themed resources (bootanimation) -allow bootanim theme_data_file:dir search; -allow bootanim theme_data_file:file r_file_perms; +allow bootanim themeservice_app_data_file:dir search; +allow bootanim themeservice_app_data_file:file r_file_perms; allow bootanim self:process execmem; -allow bootanim ashmem_device:chr_file execute;
\ No newline at end of file +allow bootanim ashmem_device:chr_file execute; diff --git a/sepolicy/drmserver.te b/sepolicy/drmserver.te index 63f654f..508791f 100644 --- a/sepolicy/drmserver.te +++ b/sepolicy/drmserver.te @@ -1 +1 @@ -allow drmserver theme_data_file:file r_file_perms; +allow drmserver themeservice_app_data_file:file r_file_perms; diff --git a/sepolicy/file.te b/sepolicy/file.te index 1a00339..05e3c5d 100644 --- a/sepolicy/file.te +++ b/sepolicy/file.te @@ -4,7 +4,7 @@ allow file_type rootfs:filesystem associate; type auditd_log, file_type, data_file_type; # Themes -type theme_data_file, file_type, data_file_type; +type themeservice_app_data_file, file_type, data_file_type; # Performance settings type sysfs_devices_system_iosched, file_type, sysfs_type; diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts index 7024d1e..bcc9217 100644 --- a/sepolicy/file_contexts +++ b/sepolicy/file_contexts @@ -7,7 +7,7 @@ /data/misc/audit(/.*)? u:object_r:auditd_log:s0 # Themes -/data/system/theme(/.*)? u:object_r:theme_data_file:s0 +/data/system/theme(/.*)? u:object_r:themeservice_app_data_file:s0 /system/bin/sysinit u:object_r:sysinit_exec:s0 @@ -24,8 +24,8 @@ ############################# # performance-related sysfs files (CM) -/sys/devices/system/cpu.*/cpufreq(/.*)? -- u:object_r:sysfs_devices_system_cpu:s0 -/sys/block/mmcblk.*/queue/scheduler -- u:object_r:sysfs_devices_system_iosched:s0 +/sys/devices/system/cpu.*/cpufreq(/.*)? u:object_r:sysfs_devices_system_cpu:s0 +/sys/block/mmcblk.*/queue/scheduler u:object_r:sysfs_devices_system_iosched:s0 /data/hostapd(/.*)? u:object_r:wifi_data_file:s0 @@ -47,7 +47,11 @@ /sys/devices/virtual/graphics/fb0/cabc u:object_r:livedisplay_sysfs:s0 /sys/devices/virtual/graphics/fb0/rgb u:object_r:livedisplay_sysfs:s0 /sys/devices/virtual/graphics/fb0/sre u:object_r:livedisplay_sysfs:s0 +/sys/devices/virtual/graphics/fb0/color_enhance u:object_r:livedisplay_sysfs:s0 # fsck /system/bin/fsck\.ntfs u:object_r:fsck_exec:s0 /system/bin/fsck\.exfat u:object_r:fsck_exec:s0 + +# bash +/system/xbin/bash u:object_r:shell_exec:s0 diff --git a/sepolicy/installd.te b/sepolicy/installd.te index 65f471a..c240599 100644 --- a/sepolicy/installd.te +++ b/sepolicy/installd.te @@ -1,3 +1,8 @@ # Allow querying of asec size on SD card allow installd sdcard_external:dir { search }; allow installd sdcard_external:file { getattr }; + +# Required for installd to create theme service's /data/data directory +allow installd themeservice_app_data_file:dir { create_dir_perms relabelfrom relabelto }; +allow installd themeservice_app_data_file:lnk_file { create_file_perms relabelfrom relabelto }; +allow installd themeservice_app_data_file:{ file sock_file fifo_file } { getattr unlink rename relabelfrom relabelto setattr }; diff --git a/sepolicy/kernel.te b/sepolicy/kernel.te new file mode 100644 index 0000000..2984b77 --- /dev/null +++ b/sepolicy/kernel.te @@ -0,0 +1,3 @@ +# used by sdcardfs to read package list +allow kernel system_data_file:file open; +allow kernel media_rw_data_file:file rw_file_perms; diff --git a/sepolicy/mediaserver.te b/sepolicy/mediaserver.te index ea26cdf..c380ce9 100644 --- a/sepolicy/mediaserver.te +++ b/sepolicy/mediaserver.te @@ -1,3 +1,6 @@ # Themed resources (i.e. composed icons) -allow mediaserver theme_data_file:dir r_dir_perms; -allow mediaserver theme_data_file:file r_file_perms; +allow mediaserver themeservice_app_data_file:dir r_dir_perms; +allow mediaserver themeservice_app_data_file:file r_file_perms; + +# For camera +allow mediaserver media_rw_data_file:file write; diff --git a/sepolicy/platform_app.te b/sepolicy/platform_app.te index bbd4dd4..3e0eb57 100644 --- a/sepolicy/platform_app.te +++ b/sepolicy/platform_app.te @@ -5,3 +5,10 @@ allow platform_app sdcard_posix:file create_file_perms; # Allow Gallery3D to crop user images allow platform_app system_app_data_file:file rw_file_perms; + +# Allow Gallery3D to execute render scripts +allow platform_app app_data_file:file execute; + +# Allow batterymanager and batteryproperties services to be found +allow platform_app battery_service:service_manager find; +allow platform_app healthd_service:service_manager find; diff --git a/sepolicy/qcom/dumpstate.te b/sepolicy/qcom/dumpstate.te new file mode 100644 index 0000000..d2844a6 --- /dev/null +++ b/sepolicy/qcom/dumpstate.te @@ -0,0 +1,13 @@ +# For prefetcher to read themes +allow dumpstate dalvikcache_data_file:dir r_dir_perms; +allow dumpstate dalvikcache_data_file:file r_file_perms; +allow dumpstate resourcecache_data_file:dir r_dir_perms; +allow dumpstate resourcecache_data_file:file r_file_perms; +allow dumpstate fuse:dir r_dir_perms; +allow dumpstate fuse:file r_file_perms; +allow dumpstate themeservice_app_data_file:dir r_dir_perms; +allow dumpstate themeservice_app_data_file:file r_file_perms; +allow dumpstate media_rw_data_file:dir search; +allow dumpstate sdcardfs:file getattr; +allow dumpstate sdcardfs:dir search; + diff --git a/sepolicy/qcom/livedisplay.te b/sepolicy/qcom/livedisplay.te new file mode 100644 index 0000000..394caa3 --- /dev/null +++ b/sepolicy/qcom/livedisplay.te @@ -0,0 +1,3 @@ +# Storage of default mode by native API +allow system_server display_misc_file:dir rw_dir_perms; +allow system_server display_misc_file:file create_file_perms; diff --git a/sepolicy/qcom/property_contexts b/sepolicy/qcom/property_contexts new file mode 100644 index 0000000..9bf4898 --- /dev/null +++ b/sepolicy/qcom/property_contexts @@ -0,0 +1,2 @@ +persist.dbg u:object_r:radio_prop:s0 +persist.data u:object_r:radio_prop:s0 diff --git a/sepolicy/recovery.te b/sepolicy/recovery.te index da6ddac..c5f58c6 100644 --- a/sepolicy/recovery.te +++ b/sepolicy/recovery.te @@ -19,6 +19,7 @@ allow recovery rootfs:file link; allow recovery rootfs:dir { write create rmdir add_name remove_name }; # Read storage files and directories +allow recovery tmpfs:dir mounton; allow recovery media_rw_data_file:dir r_dir_perms; allow recovery media_rw_data_file:file r_file_perms; allow recovery vfat:dir r_dir_perms; diff --git a/sepolicy/seapp_contexts b/sepolicy/seapp_contexts index 06c96d4..11c8f00 100644 --- a/sepolicy/seapp_contexts +++ b/sepolicy/seapp_contexts @@ -1,3 +1,4 @@ user=_app seinfo=platform name=com.cyanogenmod.filemanager domain=untrusted_app type=app_data_file user=theme_man domain=system_app type=system_data_file user=_app seinfo=cmupdater name=com.cyanogenmod.updater domain=system_app type=system_app_data_file +user=_app seinfo=themeservice name=org.cyanogenmod.themeservice domain=themeservice_app type=themeservice_app_data_file
\ No newline at end of file diff --git a/sepolicy/service.te b/sepolicy/service.te index 1a6559f..c7ad50f 100644 --- a/sepolicy/service.te +++ b/sepolicy/service.te @@ -11,3 +11,7 @@ type cm_app_suggest_service, system_api_service, system_server_service, service_ type cm_performance_service, system_api_service, system_server_service, service_manager_type; type cm_themes_service, system_api_service, system_server_service, service_manager_type; type cm_iconcache_service, system_api_service, system_server_service, service_manager_type; +type cm_livelockscreen_service, system_api_service, system_server_service, service_manager_type; +type cm_weather_service, system_api_service, system_server_service, service_manager_type; +type cm_livedisplay_service, system_api_service, system_server_service, service_manager_type; +type cm_audio_service, system_api_service, system_server_service, service_manager_type; diff --git a/sepolicy/service_contexts b/sepolicy/service_contexts index 04efc6f..90f21c9 100644 --- a/sepolicy/service_contexts +++ b/sepolicy/service_contexts @@ -11,3 +11,7 @@ cmappsuggest u:object_r:cm_app_suggest_service:s0 cmperformance u:object_r:cm_performance_service:s0 cmthemes u:object_r:cm_themes_service:s0 cmiconcache u:object_r:cm_iconcache_service:s0 +cmlivelockscreen u:object_r:cm_livelockscreen_service:s0 +cmweather u:object_r:cm_weather_service:s0 +cmlivedisplay u:object_r:cm_livedisplay_service:s0 +cmaudio u:object_r:cm_audio_service:s0 diff --git a/sepolicy/system.te b/sepolicy/system.te index 7b202eb..a9831b6 100644 --- a/sepolicy/system.te +++ b/sepolicy/system.te @@ -7,7 +7,7 @@ allow system_server dhcp_data_file:dir r_dir_perms; allow system_server dhcp_data_file:file r_file_perms; # Themes -allow system_server theme_data_file:dir create_dir_perms; -allow system_server theme_data_file:file create_file_perms; +allow system_server themeservice_app_data_file:dir create_dir_perms; +allow system_server themeservice_app_data_file:file create_file_perms; allow system_server resourcecache_data_file:dir create_dir_perms; allow system_server resourcecache_data_file:file create_file_perms; diff --git a/sepolicy/system_server.te b/sepolicy/system_server.te index 6aaf50c..5ae809c 100644 --- a/sepolicy/system_server.te +++ b/sepolicy/system_server.te @@ -7,3 +7,9 @@ allow system_server persist_property_file:dir rw_dir_perms; allow system_server persist_property_file:file { create_file_perms unlink }; allow system_server storage_stub_file:dir { getattr }; + +allow system_server media_rw_data_file:dir r_dir_perms; + +# Allow system_server to relabel newly created theme directory for +# use by the proxied theme service +allow system_server themeservice_app_data_file:dir relabelto; diff --git a/sepolicy/themeservice_app.te b/sepolicy/themeservice_app.te new file mode 100644 index 0000000..aaa84ab --- /dev/null +++ b/sepolicy/themeservice_app.te @@ -0,0 +1,19 @@ +# Add themeservice_app to appdomain +type themeservice_app, domain; +app_domain(themeservice_app) + +# Theme manager service +allow themeservice_app activity_service:service_manager find; +allow themeservice_app cm_status_bar_service:service_manager find; +allow themeservice_app cm_themes_service:dir search; +allow themeservice_app connectivity_service:service_manager find; +allow themeservice_app display_service:service_manager find; +allow themeservice_app mount_service:service_manager find; +allow themeservice_app notification_service:service_manager find; +allow themeservice_app system_app_data_file:dir search; +allow themeservice_app user_service:service_manager find; +allow themeservice_app wallpaper_service:service_manager find; + +# Allow full access to themeservice_app_data_file +allow themeservice_app themeservice_app_data_file:dir create_dir_perms; +allow themeservice_app themeservice_app_data_file:file create_file_perms; diff --git a/sepolicy/uncrypt.te b/sepolicy/uncrypt.te index 978f9e1..2697595 100644 --- a/sepolicy/uncrypt.te +++ b/sepolicy/uncrypt.te @@ -2,3 +2,8 @@ r_dir_file(uncrypt, media_rw_data_file) allow uncrypt recovery_cache_file:dir create_dir_perms; allow uncrypt recovery_cache_file:file create_file_perms; allow uncrypt recovery_cache_file:fifo_file rw_file_perms; + +allow uncrypt storage_file:dir r_dir_perms; +allow uncrypt storage_stub_file:dir r_dir_perms; +allow uncrypt fuse:dir r_dir_perms; +allow uncrypt fuse:file r_file_perms; diff --git a/sepolicy/vold.te b/sepolicy/vold.te index 0c50c71..d00fcec 100644 --- a/sepolicy/vold.te +++ b/sepolicy/vold.te @@ -14,6 +14,7 @@ allow vold self:capability { setgid setuid }; recovery_only(` allow vold rootfs:dir { add_name write }; allow vold rootfs:file execute_no_trans; + allow vold vold_tmpfs:file link; ') # External storage diff --git a/sepolicy/zygote.te b/sepolicy/zygote.te index a93d90e..951f414 100644 --- a/sepolicy/zygote.te +++ b/sepolicy/zygote.te @@ -1,5 +1,5 @@ -allow zygote theme_data_file:file r_file_perms; -allow zygote theme_data_file:dir r_dir_perms; +allow zygote themeservice_app_data_file:file r_file_perms; +allow zygote themeservice_app_data_file:dir r_dir_perms; # ps command may do this allow untrusted_app zygote:process getsched; |