summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2016-12-12 13:09:51 +0100
committerWolfgang Wiedmeyer <wolfgit@wiedmeyer.de>2016-12-12 13:09:51 +0100
commit1bbac0dbd1b4a7e64ecd42443a4e6e9b13af1fb9 (patch)
tree07790f46da5b1716448b576ce2b6d81e7a0ddca4
parent076588cc654f9dbbc6e65a291dd85e8e8c096d1e (diff)
parentdee68b3f6e1d78bb8dca56ef3ce64045edce4bfd (diff)
downloadvendor_replicant-1bbac0dbd1b4a7e64ecd42443a4e6e9b13af1fb9.zip
vendor_replicant-1bbac0dbd1b4a7e64ecd42443a4e6e9b13af1fb9.tar.gz
vendor_replicant-1bbac0dbd1b4a7e64ecd42443a4e6e9b13af1fb9.tar.bz2
Merge branch 'cm-13.0' of https://github.com/CyanogenMod/android_vendor_cm into replicant-6.0
-rw-r--r--CHANGELOG.mkdn150
-rw-r--r--CONTRIBUTORS.mkdn29
-rw-r--r--ambientsdk/Android.mk2
-rw-r--r--build/core/apicheck_msg_current.txt8
-rw-r--r--build/core/maven_artifact_publish.mk4
-rw-r--r--build/tasks/apicheck.mk2
-rw-r--r--build/tasks/generate_cmsdk_coverage.mk17
-rw-r--r--build/tools/extract_utils.sh913
-rw-r--r--build/tools/smali/NOTICE105
-rw-r--r--build/tools/smali/baksmali.jarbin0 -> 1183908 bytes
-rw-r--r--build/tools/smali/smali.jarbin0 -> 985749 bytes
-rw-r--r--charger/Android.mk70
l---------charger/fonts/560dpi1
l---------charger/fonts/640dpi1
-rw-r--r--charger/fonts/hdpi/font_log.pngbin0 -> 36454 bytes
-rw-r--r--charger/fonts/ldpi/font_log.pngbin0 -> 26030 bytes
-rw-r--r--charger/fonts/mdpi/font_log.pngbin0 -> 28174 bytes
-rw-r--r--charger/fonts/xhdpi/font_log.pngbin0 -> 44491 bytes
-rw-r--r--charger/fonts/xxhdpi/font_log.pngbin0 -> 62981 bytes
-rw-r--r--charger/fonts/xxxhdpi/font_log.pngbin0 -> 79140 bytes
-rw-r--r--charger/healthd_board_cm.cpp419
l---------charger/images/560dpi1
l---------charger/images/640dpi1
-rw-r--r--charger/images/hdpi/battery_fail.pngbin0 -> 1368 bytes
-rw-r--r--charger/images/hdpi/cm_battery_scale.pngbin0 -> 10277 bytes
-rw-r--r--charger/images/ldpi/battery_fail.pngbin0 -> 1368 bytes
-rw-r--r--charger/images/ldpi/cm_battery_scale.pngbin0 -> 5616 bytes
-rw-r--r--charger/images/mdpi/battery_fail.pngbin0 -> 1368 bytes
-rw-r--r--charger/images/mdpi/cm_battery_scale.pngbin0 -> 5980 bytes
-rw-r--r--charger/images/xhdpi/battery_fail.pngbin0 -> 1368 bytes
-rw-r--r--charger/images/xhdpi/cm_battery_scale.pngbin0 -> 15440 bytes
-rw-r--r--charger/images/xxhdpi/battery_fail.pngbin0 -> 1368 bytes
-rw-r--r--charger/images/xxhdpi/cm_battery_scale.pngbin0 -> 28111 bytes
-rw-r--r--charger/images/xxxhdpi/battery_fail.pngbin0 -> 1368 bytes
-rw-r--r--charger/images/xxxhdpi/cm_battery_scale.pngbin0 -> 42571 bytes
-rw-r--r--config/BoardConfigCM.mk4
-rw-r--r--config/cmsdk_common.mk17
-rw-r--r--config/common.mk69
-rw-r--r--config/common_full.mk22
-rw-r--r--config/common_full_phone.mk5
-rw-r--r--config/common_full_tablet_wifionly.mk7
-rw-r--r--config/common_full_tv.mk5
-rw-r--r--config/common_mini.mk4
-rw-r--r--config/common_mini_phone.mk13
-rw-r--r--config/common_mini_tablet_wifionly.mk12
-rw-r--r--config/common_mini_tv.mk10
-rw-r--r--config/permissions/backup.xml25
-rw-r--r--config/permissions/org.cyanogenmod.appsuggest.xml23
-rw-r--r--config/permissions/org.cyanogenmod.audio.xml23
-rw-r--r--config/permissions/org.cyanogenmod.livedisplay.xml23
-rw-r--r--config/permissions/org.cyanogenmod.partner.xml23
-rw-r--r--config/permissions/org.cyanogenmod.performance.xml23
-rw-r--r--config/permissions/org.cyanogenmod.profiles.xml23
-rw-r--r--config/permissions/org.cyanogenmod.statusbar.xml23
-rw-r--r--config/permissions/org.cyanogenmod.telephony.xml23
-rw-r--r--config/permissions/org.cyanogenmod.weather.xml19
-rw-r--r--config/telephony.mk4
-rw-r--r--gello/Android.mk51
-rw-r--r--overlay/common/frameworks/base/core/res/res/values/cm_arrays.xml24
-rw-r--r--overlay/common/frameworks/base/core/res/res/values/config.xml6
-rw-r--r--overlay/common/packages/apps/Settings/res/values/strings.xml3
-rw-r--r--overlay/common/packages/services/Telecomm/res/values/cm_config.xml2
-rw-r--r--overlay/common/packages/services/Telephony/res/values/cm_config.xml1
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_bg.dictbin3385314 -> 3385409 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_au.dictbin1027324 -> 1027324 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_hu.dictbin428014 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_ka.dictbin1103867 -> 1103956 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lb.dictbin522671 -> 522671 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_uk.dictbin10694640 -> 10694609 bytes
-rw-r--r--prebuilt/common/etc/apns-conf.xml350
-rw-r--r--prebuilt/common/etc/init.local.rc34
-rwxr-xr-xprebuilt/common/etc/selective-spn-conf.xml1710
-rw-r--r--sepolicy/app.te4
-rw-r--r--sepolicy/bootanim.te6
-rw-r--r--sepolicy/drmserver.te2
-rw-r--r--sepolicy/file.te2
-rw-r--r--sepolicy/file_contexts10
-rw-r--r--sepolicy/installd.te5
-rw-r--r--sepolicy/kernel.te3
-rw-r--r--sepolicy/mediaserver.te7
-rw-r--r--sepolicy/platform_app.te7
-rw-r--r--sepolicy/qcom/dumpstate.te13
-rw-r--r--sepolicy/qcom/livedisplay.te3
-rw-r--r--sepolicy/qcom/property_contexts2
-rw-r--r--sepolicy/recovery.te1
-rw-r--r--sepolicy/seapp_contexts1
-rw-r--r--sepolicy/service.te4
-rw-r--r--sepolicy/service_contexts4
-rw-r--r--sepolicy/system.te4
-rw-r--r--sepolicy/system_server.te6
-rw-r--r--sepolicy/themeservice_app.te19
-rw-r--r--sepolicy/uncrypt.te5
-rw-r--r--sepolicy/vold.te1
-rw-r--r--sepolicy/zygote.te4
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
new file mode 100644
index 0000000..fe354fb
--- /dev/null
+++ b/build/tools/smali/baksmali.jar
Binary files differ
diff --git a/build/tools/smali/smali.jar b/build/tools/smali/smali.jar
new file mode 100644
index 0000000..5459a87
--- /dev/null
+++ b/build/tools/smali/smali.jar
Binary files differ
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
new file mode 100644
index 0000000..ddf9bc7
--- /dev/null
+++ b/charger/fonts/hdpi/font_log.png
Binary files differ
diff --git a/charger/fonts/ldpi/font_log.png b/charger/fonts/ldpi/font_log.png
new file mode 100644
index 0000000..72fa8cb
--- /dev/null
+++ b/charger/fonts/ldpi/font_log.png
Binary files differ
diff --git a/charger/fonts/mdpi/font_log.png b/charger/fonts/mdpi/font_log.png
new file mode 100644
index 0000000..d727fa1
--- /dev/null
+++ b/charger/fonts/mdpi/font_log.png
Binary files differ
diff --git a/charger/fonts/xhdpi/font_log.png b/charger/fonts/xhdpi/font_log.png
new file mode 100644
index 0000000..9c16b77
--- /dev/null
+++ b/charger/fonts/xhdpi/font_log.png
Binary files differ
diff --git a/charger/fonts/xxhdpi/font_log.png b/charger/fonts/xxhdpi/font_log.png
new file mode 100644
index 0000000..5d122b7
--- /dev/null
+++ b/charger/fonts/xxhdpi/font_log.png
Binary files differ
diff --git a/charger/fonts/xxxhdpi/font_log.png b/charger/fonts/xxxhdpi/font_log.png
new file mode 100644
index 0000000..60dacec
--- /dev/null
+++ b/charger/fonts/xxxhdpi/font_log.png
Binary files differ
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
new file mode 100644
index 0000000..aded88a
--- /dev/null
+++ b/charger/images/hdpi/battery_fail.png
Binary files differ
diff --git a/charger/images/hdpi/cm_battery_scale.png b/charger/images/hdpi/cm_battery_scale.png
new file mode 100644
index 0000000..0052c0a
--- /dev/null
+++ b/charger/images/hdpi/cm_battery_scale.png
Binary files differ
diff --git a/charger/images/ldpi/battery_fail.png b/charger/images/ldpi/battery_fail.png
new file mode 100644
index 0000000..aded88a
--- /dev/null
+++ b/charger/images/ldpi/battery_fail.png
Binary files differ
diff --git a/charger/images/ldpi/cm_battery_scale.png b/charger/images/ldpi/cm_battery_scale.png
new file mode 100644
index 0000000..b93c3af
--- /dev/null
+++ b/charger/images/ldpi/cm_battery_scale.png
Binary files differ
diff --git a/charger/images/mdpi/battery_fail.png b/charger/images/mdpi/battery_fail.png
new file mode 100644
index 0000000..aded88a
--- /dev/null
+++ b/charger/images/mdpi/battery_fail.png
Binary files differ
diff --git a/charger/images/mdpi/cm_battery_scale.png b/charger/images/mdpi/cm_battery_scale.png
new file mode 100644
index 0000000..eb16a29
--- /dev/null
+++ b/charger/images/mdpi/cm_battery_scale.png
Binary files differ
diff --git a/charger/images/xhdpi/battery_fail.png b/charger/images/xhdpi/battery_fail.png
new file mode 100644
index 0000000..aded88a
--- /dev/null
+++ b/charger/images/xhdpi/battery_fail.png
Binary files differ
diff --git a/charger/images/xhdpi/cm_battery_scale.png b/charger/images/xhdpi/cm_battery_scale.png
new file mode 100644
index 0000000..078b2a6
--- /dev/null
+++ b/charger/images/xhdpi/cm_battery_scale.png
Binary files differ
diff --git a/charger/images/xxhdpi/battery_fail.png b/charger/images/xxhdpi/battery_fail.png
new file mode 100644
index 0000000..aded88a
--- /dev/null
+++ b/charger/images/xxhdpi/battery_fail.png
Binary files differ
diff --git a/charger/images/xxhdpi/cm_battery_scale.png b/charger/images/xxhdpi/cm_battery_scale.png
new file mode 100644
index 0000000..2e6553e
--- /dev/null
+++ b/charger/images/xxhdpi/cm_battery_scale.png
Binary files differ
diff --git a/charger/images/xxxhdpi/battery_fail.png b/charger/images/xxxhdpi/battery_fail.png
new file mode 100644
index 0000000..aded88a
--- /dev/null
+++ b/charger/images/xxxhdpi/battery_fail.png
Binary files differ
diff --git a/charger/images/xxxhdpi/cm_battery_scale.png b/charger/images/xxxhdpi/cm_battery_scale.png
new file mode 100644
index 0000000..90c627d
--- /dev/null
+++ b/charger/images/xxxhdpi/cm_battery_scale.png
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
deleted file mode 100644
index 2b8dce0..0000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_hu.dict
+++ /dev/null
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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
index 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
Binary files differ
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 &amp; 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 &amp; 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&amp;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 &amp; 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&amp;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 &amp; 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 &amp; 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 &amp; 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&amp;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&amp;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 &amp; 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&amp;K" />
- <spnOverride numeric="40472" spn="BSNL Kerala" />
- <spnOverride numeric="40466" spn="BSNL Maharashtra &amp; 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 &amp; Wireless" />
- <spnOverride numeric="338180" spn="Cable &amp; 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 &amp; 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 &amp; Wireless" />
- <spnOverride numeric="356070" spn="Chippie" />
- <spnOverride numeric="356050" spn="Digicel" />
- <!-- Saint Lucia -->
- <spnOverride numeric="358110" spn="Cable &amp; Wireless" />
- <spnOverride numeric="358050" spn="Digicel" />
- <!-- Saint Vincent and the Grenadines -->
- <spnOverride numeric="360110" spn="Cable &amp; 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 &amp; 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&amp;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 &amp; 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&amp;T" />
- <spnOverride numeric="310090" spn="AT&amp;T" />
- <spnOverride numeric="310150" spn="AT&amp;T" />
- <spnOverride numeric="310170" spn="AT&amp;T" />
- <spnOverride numeric="310410" spn="AT&amp;T" />
- <spnOverride numeric="310560" spn="AT&amp;T" />
- <spnOverride numeric="310680" spn="AT&amp;T" />
- <spnOverride numeric="310380" spn="AT&amp;T Mobility" />
- <spnOverride numeric="310980" spn="AT&amp;T Mobility" />
- <spnOverride numeric="310990" spn="AT&amp;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&amp;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;