Merge branch 'cm-13.0' of https://github.com/CyanogenMod/android_vendor_cm into replicant-6.0
150
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
|
||||
|
@ -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:
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
@ -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 \
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
913
build/tools/extract_utils.sh
Normal file
@ -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
|
||||
}
|
105
build/tools/smali/NOTICE
Normal file
@ -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.
|
||||
*******************************************************************************
|
BIN
build/tools/smali/baksmali.jar
Normal file
BIN
build/tools/smali/smali.jar
Normal file
70
charger/Android.mk
Normal file
@ -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 :=
|
1
charger/fonts/560dpi
Symbolic link
@ -0,0 +1 @@
|
||||
xxhdpi
|
1
charger/fonts/640dpi
Symbolic link
@ -0,0 +1 @@
|
||||
xxxhdpi
|
BIN
charger/fonts/hdpi/font_log.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
charger/fonts/ldpi/font_log.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
charger/fonts/mdpi/font_log.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
charger/fonts/xhdpi/font_log.png
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
charger/fonts/xxhdpi/font_log.png
Normal file
After Width: | Height: | Size: 62 KiB |
BIN
charger/fonts/xxxhdpi/font_log.png
Normal file
After Width: | Height: | Size: 77 KiB |
419
charger/healthd_board_cm.cpp
Normal file
@ -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)
|
||||
{
|
||||
}
|
1
charger/images/560dpi
Symbolic link
@ -0,0 +1 @@
|
||||
xxxhdpi
|
1
charger/images/640dpi
Symbolic link
@ -0,0 +1 @@
|
||||
xxxhdpi
|
BIN
charger/images/hdpi/battery_fail.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
charger/images/hdpi/cm_battery_scale.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
charger/images/ldpi/battery_fail.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
charger/images/ldpi/cm_battery_scale.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
charger/images/mdpi/battery_fail.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
charger/images/mdpi/cm_battery_scale.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
charger/images/xhdpi/battery_fail.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
charger/images/xhdpi/cm_battery_scale.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
charger/images/xxhdpi/battery_fail.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
charger/images/xxhdpi/cm_battery_scale.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
charger/images/xxxhdpi/battery_fail.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
charger/images/xxxhdpi/cm_battery_scale.png
Normal file
After Width: | Height: | Size: 42 KiB |
4
config/BoardConfigCM.mk
Normal file
@ -0,0 +1,4 @@
|
||||
# Charger
|
||||
ifneq ($(WITH_CM_CHARGER),false)
|
||||
BOARD_HAL_STATIC_LIBRARIES := libhealthd.cm
|
||||
endif
|
@ -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
|
||||
|
@ -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,10 +299,14 @@ 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)
|
||||
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
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.cm.display.version=$(CM_DISPLAY_VERSION)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
4
config/common_mini.mk
Normal file
@ -0,0 +1,4 @@
|
||||
# Inherit common CM stuff
|
||||
$(call inherit-product, vendor/cm/config/common.mk)
|
||||
|
||||
PRODUCT_SIZE := mini
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 += \
|
||||
|
25
config/permissions/backup.xml
Normal file
@ -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>
|
23
config/permissions/org.cyanogenmod.appsuggest.xml
Normal file
@ -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>
|
23
config/permissions/org.cyanogenmod.audio.xml
Normal file
@ -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>
|
23
config/permissions/org.cyanogenmod.livedisplay.xml
Normal file
@ -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>
|
23
config/permissions/org.cyanogenmod.partner.xml
Normal file
@ -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>
|
23
config/permissions/org.cyanogenmod.performance.xml
Normal file
@ -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>
|
23
config/permissions/org.cyanogenmod.profiles.xml
Normal file
@ -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>
|
23
config/permissions/org.cyanogenmod.statusbar.xml
Normal file
@ -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>
|
23
config/permissions/org.cyanogenmod.telephony.xml
Normal file
@ -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>
|
19
config/permissions/org.cyanogenmod.weather.xml
Normal file
@ -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>
|
@ -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 \
|
||||
|
51
gello/Android.mk
Normal file
@ -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
|
@ -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>
|
@ -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>
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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" />
|
||||
|
@ -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
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
@ -1 +1 @@
|
||||
allow drmserver theme_data_file:file r_file_perms;
|
||||
allow drmserver themeservice_app_data_file:file r_file_perms;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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 };
|
||||
|
3
sepolicy/kernel.te
Normal file
@ -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;
|
@ -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;
|
||||
|
@ -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;
|
||||
|
13
sepolicy/qcom/dumpstate.te
Normal file
@ -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;
|
||||
|
3
sepolicy/qcom/livedisplay.te
Normal file
@ -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;
|
2
sepolicy/qcom/property_contexts
Normal file
@ -0,0 +1,2 @@
|
||||
persist.dbg u:object_r:radio_prop:s0
|
||||
persist.data u:object_r:radio_prop:s0
|
@ -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;
|
||||
|
@ -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
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
19
sepolicy/themeservice_app.te
Normal file
@ -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;
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|