summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.mk10
-rw-r--r--README.mkdn38
-rw-r--r--addonsu/51-addonsu.sh41
-rw-r--r--addonsu/mount-system.sh34
-rw-r--r--addonsu/unmount-system.sh15
-rw-r--r--addonsu/updater-script-install25
-rw-r--r--addonsu/updater-script-remove23
-rw-r--r--bash_completion/git.bash2766
-rw-r--r--bash_completion/repo.bash655
-rw-r--r--bootanimation/Android.mk63
-rw-r--r--bootanimation/CleanSpec.mk17
-rw-r--r--bootanimation/bootanimation.tarbin10265600 -> 0 bytes
-rw-r--r--bootanimation/desc.txt5
-rwxr-xr-xbootanimation/generate-bootanimation.sh41
-rw-r--r--build/core/apicheck_msg_current.txt147
-rw-r--r--build/core/clear_vars.mk4
-rw-r--r--build/core/config.mk26
-rw-r--r--build/core/definitions.mk12
-rw-r--r--build/core/main.mk2
-rw-r--r--build/core/main_version.mk19
-rw-r--r--build/core/pathmap.mk29
-rw-r--r--build/core/qcom_target.mk55
-rw-r--r--build/core/sdllvm-lto-defs.mk34
-rw-r--r--build/core/system_rro.mk28
-rw-r--r--build/core/utils.mk203
-rw-r--r--build/core/vendor/mtk_boards.mk5
-rw-r--r--build/core/vendor/qcom_boards.mk54
-rw-r--r--build/envsetup.sh997
-rw-r--r--build/soong/Android.bp46
-rw-r--r--build/soong/android/config.go13
-rw-r--r--build/soong/android/variable.go100
-rw-r--r--build/soong/generator/generator.go310
-rw-r--r--build/soong/generator/variables.go28
-rw-r--r--build/soong/soong_config.mk34
-rw-r--r--build/target/product/AndroidProducts.mk21
-rw-r--r--build/target/product/lineage_arm.mk21
-rw-r--r--build/target/product/lineage_arm64.mk19
-rw-r--r--build/target/product/lineage_generic_target.mk24
-rw-r--r--build/target/product/lineage_x86.mk21
-rw-r--r--build/target/product/lineage_x86_64.mk19
-rw-r--r--build/target/product/security/lineage.x509.pem23
-rw-r--r--build/target/product/source.properties7
-rw-r--r--build/tasks/addonsu.mk41
-rw-r--r--build/tasks/apicheck.mk92
-rw-r--r--build/tasks/bacon.mk25
-rw-r--r--build/tasks/dt_image.mk65
-rw-r--r--build/tasks/dtbo.mk27
-rw-r--r--build/tasks/generate_lineage_sdk_coverage.mk77
-rw-r--r--build/tasks/kernel.mk311
-rwxr-xr-xbuild/templates/extract-files.sh67
-rwxr-xr-xbuild/templates/setup-makefiles.sh48
-rwxr-xr-xbuild/tools/Darwin/compact_dex_converterbin37256 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/libart-dexlayout.dylibbin384320 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/libart.dylibbin9554172 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/libbacktrace.dylibbin65060 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/libbase.dylibbin95440 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/libc++.dylibbin1594708 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/libcutils.dylibbin68936 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/libdexfile.dylibbin263288 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/liblog.dylibbin102920 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/liblz4.dylibbin108720 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/libmetricslogger.dylibbin12900 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/libnativebridge.dylibbin23468 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/libnativehelper.dylibbin36312 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/libnativeloader.dylibbin12060 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/libsigchain.dylibbin11244 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/libz-host.dylibbin119252 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/lib64/libziparchive.dylibbin70584 -> 0 bytes
-rwxr-xr-xbuild/tools/Darwin/vdexExtractorbin167180 -> 0 bytes
-rwxr-xr-xbuild/tools/Linux/compact_dex_converterbin7291608 -> 0 bytes
-rwxr-xr-xbuild/tools/Linux/vdexExtractorbin197056 -> 0 bytes
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/assets/android-developer-docs.css2768
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/assets/css/default.css7439
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/assets/css/fullscreen.css208
-rwxr-xr-xbuild/tools/droiddoc/templates-lineage-sdk/assets/customizations.css14
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/assets/design/design.js188
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/assets/docs.js4339
-rwxr-xr-xbuild/tools/droiddoc/templates-lineage-sdk/assets/favicon.icobin894 -> 0 bytes
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/assets/fullscreen.pngbin1154 -> 0 bytes
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/assets/images/fullscreen.pngbin1154 -> 0 bytes
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_down.pngbin238 -> 0 bytes
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_left.pngbin229 -> 0 bytes
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_right.pngbin228 -> 0 bytes
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_up.pngbin221 -> 0 bytes
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/assets/lineage_logo.svg1
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/class.cs679
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/classes.cs53
-rwxr-xr-xbuild/tools/droiddoc/templates-lineage-sdk/components/masthead.cs10
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/customizations.cs516
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/head_tag.cs87
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/macros_override.cs36
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/package.cs65
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/packages.cs45
-rw-r--r--build/tools/droiddoc/templates-lineage-sdk/timestamp.cs1
-rw-r--r--build/tools/extract_utils.sh1433
-rwxr-xr-xbuild/tools/getb64key.py18
-rwxr-xr-xbuild/tools/repopick.py480
-rwxr-xr-xbuild/tools/roomservice.py315
-rwxr-xr-xbuild/tools/sdat2img.py142
-rw-r--r--build/tools/smali/NOTICE105
-rw-r--r--build/tools/smali/baksmali.jarbin1367549 -> 0 bytes
-rw-r--r--build/tools/smali/smali.jarbin1120090 -> 0 bytes
-rw-r--r--charger/Android.mk71
l---------charger/fonts/560dpi1
l---------charger/fonts/640dpi1
-rw-r--r--charger/fonts/hdpi/font_log.pngbin36454 -> 0 bytes
-rw-r--r--charger/fonts/ldpi/font_log.pngbin26030 -> 0 bytes
-rw-r--r--charger/fonts/mdpi/font_log.pngbin28174 -> 0 bytes
-rw-r--r--charger/fonts/xhdpi/font_log.pngbin44491 -> 0 bytes
-rw-r--r--charger/fonts/xxhdpi/font_log.pngbin62981 -> 0 bytes
-rw-r--r--charger/fonts/xxxhdpi/font_log.pngbin79140 -> 0 bytes
-rw-r--r--charger/healthd_board_lineage.cpp418
l---------charger/images/400dpi1
l---------charger/images/420dpi1
l---------charger/images/560dpi1
l---------charger/images/640dpi1
-rw-r--r--charger/images/hdpi/lineage_battery_scale.pngbin10277 -> 0 bytes
-rw-r--r--charger/images/ldpi/lineage_battery_scale.pngbin5616 -> 0 bytes
-rw-r--r--charger/images/mdpi/lineage_battery_scale.pngbin5980 -> 0 bytes
-rw-r--r--charger/images/xhdpi/lineage_battery_scale.pngbin15440 -> 0 bytes
-rw-r--r--charger/images/xxhdpi/lineage_battery_scale.pngbin28111 -> 0 bytes
-rw-r--r--charger/images/xxxhdpi/lineage_battery_scale.pngbin42571 -> 0 bytes
-rw-r--r--config/BoardConfigKernel.mk128
-rw-r--r--config/BoardConfigLineage.mk12
-rw-r--r--config/BoardConfigQcom.mk98
-rw-r--r--config/BoardConfigSoong.mk22
-rw-r--r--config/aosp_audio.mk201
-rw-r--r--config/common.mk321
-rw-r--r--config/common_full.mk8
-rw-r--r--config/common_full_phone.mk11
-rw-r--r--config/common_full_tablet_wifionly.mk9
-rw-r--r--config/common_full_tv.mk4
-rw-r--r--config/common_mini.mk4
-rw-r--r--config/common_mini_phone.mk8
-rw-r--r--config/common_mini_tablet_wifionly.mk6
-rw-r--r--config/common_mini_tv.mk4
-rw-r--r--config/common_mobile.mk63
-rw-r--r--config/common_tv.mk16
-rw-r--r--config/data_only.mk8
-rw-r--r--config/lineage_audio.mk42
-rw-r--r--config/lineage_sdk_common.mk42
-rw-r--r--config/partner_gms.mk15
-rw-r--r--config/permissions/backup.xml25
-rw-r--r--config/permissions/lineage-hiddenapi-package-whitelist.xml26
-rw-r--r--config/permissions/lineage-power-whitelist.xml20
-rw-r--r--config/permissions/lineage-sysconfig.xml25
-rw-r--r--config/permissions/org.lineageos.android.xml21
-rw-r--r--config/permissions/org.lineageos.audio.xml23
-rw-r--r--config/permissions/org.lineageos.livedisplay.xml23
-rw-r--r--config/permissions/org.lineageos.performance.xml23
-rw-r--r--config/permissions/org.lineageos.profiles.xml23
-rw-r--r--config/permissions/org.lineageos.settings.xml19
-rw-r--r--config/permissions/org.lineageos.style.xml23
-rw-r--r--config/permissions/org.lineageos.trust.xml23
-rw-r--r--config/permissions/org.lineageos.weather.xml19
-rw-r--r--config/permissions/privapp-permissions-cm-legacy.xml32
-rw-r--r--config/permissions/privapp-permissions-lineage.xml104
-rw-r--r--config/permissions/vendor.lineage.biometrics.fingerprint.inscreen.xml19
-rw-r--r--config/telephony.mk22
-rw-r--r--config/twrp.mk1
-rw-r--r--libbfqio/Android.bp44
-rw-r--r--libbfqio/bfqio.c89
-rw-r--r--libbfqio/include/bfqio/bfqio.h27
-rw-r--r--overlay/common/frameworks/base/core/res/res/drawable-hdpi/default_wallpaper.pngbin306472 -> 0 bytes
-rw-r--r--overlay/common/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.pngbin266854 -> 0 bytes
-rw-r--r--overlay/common/frameworks/base/core/res/res/drawable-nodpi/stat_sys_adb.xml26
-rw-r--r--overlay/common/frameworks/base/core/res/res/drawable-sw600dp-nodpi/default_wallpaper.pngbin607355 -> 0 bytes
-rw-r--r--overlay/common/frameworks/base/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.pngbin607355 -> 0 bytes
-rw-r--r--overlay/common/frameworks/base/core/res/res/drawable-xhdpi/default_wallpaper.pngbin430683 -> 0 bytes
-rw-r--r--overlay/common/frameworks/base/core/res/res/drawable-xxhdpi/default_wallpaper.pngbin607355 -> 0 bytes
-rw-r--r--overlay/common/frameworks/base/core/res/res/drawable-xxxhdpi/default_wallpaper.pngbin623021 -> 0 bytes
-rw-r--r--overlay/common/frameworks/base/core/res/res/values-mcc234-mnc02/config.xml22
-rw-r--r--overlay/common/frameworks/base/core/res/res/values-mcc234-mnc10/config.xml22
-rw-r--r--overlay/common/frameworks/base/core/res/res/values-mcc234-mnc11/config.xml22
-rw-r--r--overlay/common/frameworks/base/core/res/res/values-mcc268-mnc06/config.xml22
-rw-r--r--overlay/common/frameworks/base/core/res/res/values-mcc440-mnc20/config.xml23
-rw-r--r--overlay/common/frameworks/base/core/res/res/values-mcc460/config.xml24
-rw-r--r--overlay/common/frameworks/base/core/res/res/values/colors.xml23
-rw-r--r--overlay/common/frameworks/base/core/res/res/values/config.xml97
-rw-r--r--overlay/common/frameworks/base/core/res/res/values/dimens.xml22
-rw-r--r--overlay/common/frameworks/base/core/res/res/values/vendor_required_apps_managed_device.xml38
-rw-r--r--overlay/common/frameworks/base/core/res/res/values/vendor_required_apps_managed_profile.xml29
-rw-r--r--overlay/common/frameworks/base/core/res/res/values/vendor_required_apps_managed_user.xml36
-rw-r--r--overlay/common/frameworks/base/core/res/res/xml/config_webview_packages.xml38
-rw-r--r--overlay/common/frameworks/base/packages/Keyguard/res/values/config.xml24
-rw-r--r--overlay/common/frameworks/base/packages/SettingsProvider/res/values/defaults.xml23
-rw-r--r--overlay/common/frameworks/base/packages/SystemUI/res/values-sw600dp/config.xml23
-rw-r--r--overlay/common/frameworks/base/packages/SystemUI/res/values/config.xml34
-rw-r--r--overlay/common/frameworks/base/packages/SystemUI/res/values/dimens.xml20
-rw-r--r--overlay/common/lineage-sdk/packages/LineageSettingsProvider/res/values/defaults.xml22
-rw-r--r--overlay/common/packages/apps/DocumentsUI/res/values/config.xml27
-rw-r--r--overlay/common/packages/apps/Settings/res/values/bools.xml23
-rw-r--r--overlay/common/packages/apps/Settings/res/values/config.xml26
-rw-r--r--overlay/common/packages/apps/Settings/res/values/dimens.xml20
-rw-r--r--overlay/common/packages/apps/Settings/res/values/strings.xml23
-rw-r--r--overlay/common/packages/apps/Trebuchet/res/values/config.xml22
-rw-r--r--overlay/common/packages/inputmethods/LatinIME/java/res/values/gesture-input.xml22
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc204-mnc04/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc310-mnc00/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc310-mnc002/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc310-mnc003/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc310-mnc004/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc310-mnc005/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc310-mnc006/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc310-mnc012/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc310-mnc480/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc310-mnc481/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc310-mnc483/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc310-mnc486/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc310-mnc489/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc310-mnc99/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc311-mnc480/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc311-mnc482/config.xml20
-rw-r--r--overlay/common/packages/services/Telephony/res/values-mcc311-mnc485/config.xml20
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_bg.dictbin3385409 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_cs.dictbin1017987 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_da.dictbin1304047 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_el.dictbin2345513 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_au.dictbin1027324 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_gb.dictbin1027321 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_us.dictbin1043435 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_fi.dictbin1591913 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_hr.dictbin1166744 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_hu.dictbin426867 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_iw.dictbin779557 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_ka.dictbin1103956 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lb.dictbin522671 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lt.dictbin1320376 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lv.dictbin1347250 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_nb.dictbin1214008 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_nl.dictbin1407361 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_pl.dictbin1193157 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_pt_pt.dictbin1418266 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_ro.dictbin6366607 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_sl.dictbin336572 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_sr.dictbin1774606 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_sv.dictbin1385043 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_tr.dictbin1195386 -> 0 bytes
-rw-r--r--overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_uk.dictbin10694609 -> 0 bytes
-rw-r--r--overlay/tv/frameworks/base/packages/SettingsProvider/res/values/lineage_defaults.xml21
-rw-r--r--overlay/tv/lineage-sdk/lineage/res/res/values/config.xml39
-rw-r--r--prebuilt/common/Android.mk38
-rwxr-xr-xprebuilt/common/bin/50-lineage.sh43
-rw-r--r--prebuilt/common/bin/backuptool.functions43
-rwxr-xr-xprebuilt/common/bin/backuptool.sh122
-rw-r--r--prebuilt/common/bin/backuptool_ab.functions48
-rwxr-xr-xprebuilt/common/bin/backuptool_ab.sh98
-rwxr-xr-xprebuilt/common/bin/backuptool_postinstall.sh11
-rw-r--r--prebuilt/common/bin/sysinit9
-rw-r--r--prebuilt/common/etc/apns-conf.xml3822
-rw-r--r--prebuilt/common/etc/init.d/00banner13
-rwxr-xr-xprebuilt/common/etc/init.d/90userinit9
-rw-r--r--prebuilt/common/etc/init/lineage-adb.rc11
-rw-r--r--prebuilt/common/etc/init/lineage-governor.rc71
-rw-r--r--prebuilt/common/etc/init/lineage-iosched.rc70
-rw-r--r--prebuilt/common/etc/init/lineage-livedisplay.rc16
-rw-r--r--prebuilt/common/etc/init/lineage-radio.rc12
-rw-r--r--prebuilt/common/etc/init/lineage-ssh.rc3
-rw-r--r--prebuilt/common/etc/init/lineage-system.rc31
-rw-r--r--prebuilt/common/etc/init/lineage-updates.rc4
-rw-r--r--prebuilt/common/etc/sensitive_pn.xml757
-rw-r--r--prebuilt/common/lib/content-types.properties44
-rw-r--r--prebuilt/common/media/audio/alarms/CyanAlarm.oggbin103481 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/alarms/NuclearLaunch.oggbin65601 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/notifications/CyanDoink.oggbin10349 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/notifications/CyanMail.oggbin109553 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/notifications/CyanMessage.oggbin56684 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/notifications/Laser.oggbin11575 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/notifications/Naughty.oggbin31725 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/notifications/Pong.oggbin36542 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/notifications/Rang.oggbin95315 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/notifications/Stone.oggbin56319 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/ringtones/Boxbeat.oggbin712951 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/ringtones/CyanTone.oggbin1197464 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/ringtones/Highscore.oggbin217486 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/ringtones/Lyon.oggbin111064 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/ringtones/Rockin.oggbin216000 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/ringtones/Sheep.mp3bin35759 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/ringtones/Yukaay.oggbin603651 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/ringtones/boosted/Boxbeat.oggbin386236 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/ringtones/boosted/CyanTone.oggbin515203 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/ringtones/boosted/Highscore.oggbin68981 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/ringtones/boosted/Lyon.oggbin31334 -> 0 bytes
-rw-r--r--prebuilt/common/media/audio/ringtones/boosted/Rockin.oggbin67936 -> 0 bytes
-rw-r--r--product/nvidia.mk18
-rw-r--r--tools/custom_apns.py62
-rw-r--r--vendorsetup.sh9
-rw-r--r--verity_tool/Android.bp28
-rw-r--r--verity_tool/include/verity_tool.h51
-rw-r--r--verity_tool/main.cpp87
-rw-r--r--verity_tool/verity_tool.cpp255
-rwxr-xr-xwget (renamed from prebuilt/common/bin/wget)0
292 files changed, 11 insertions, 34804 deletions
diff --git a/Android.mk b/Android.mk
new file mode 100644
index 00000000..605f171c
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,10 @@
+LOCAL_PATH := $(call my-dir)
+
+# a wrapper for curl which provides wget syntax, for compatibility
+include $(CLEAR_VARS)
+LOCAL_MODULE := wget
+LOCAL_SRC_FILES := wget
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
+include $(BUILD_PREBUILT)
diff --git a/README.mkdn b/README.mkdn
index cda44d8a..c3f4ca9d 100644
--- a/README.mkdn
+++ b/README.mkdn
@@ -1,37 +1 @@
-LineageOS
-===========
-
-Getting started
----------------
-
-To get started with Android/LineageOS, you'll need to get
-familiar with [Repo](https://source.android.com/source/using-repo.html) and [Version Control with Git](https://source.android.com/source/version-control.html).
-
-To initialize your local repository using the LineageOS trees, use a command like this:
-```
-repo init -u git://github.com/LineageOS/android.git -b lineage-16.0
-```
-Then to sync up:
-```
-repo sync
-```
-Please see the [LineageOS Wiki](https://wiki.lineageos.org/) for building instructions, by device.
-
-
-Submitting patches
-------------------
-Patches are always welcome! Please submit your patches via LineageOS Gerrit!
-
-Simply follow our guide on [how to submit patches](https://wiki.lineageos.org/submitting-patch-howto.html).
-
-To view the status of your and others' patches, visit [LineageOS Gerrit Code Review](https://review.lineageos.org/).
-
-
-Buildbot
---------
-
-All supported devices are built weekly and periodically as changes are committed to ensure the source trees remain buildable.
-
-You can view the current build statuses at [LineageOS Jenkins](https://jenkins.lineageos.org/).
-
-Builds produced weekly by the buildbot can be downloaded from [LineageOS downloads](https://download.lineageos.org/).
+This wget implementation comes from LineageOS's vendor/lineage repository.
diff --git a/addonsu/51-addonsu.sh b/addonsu/51-addonsu.sh
deleted file mode 100644
index f2d200b9..00000000
--- a/addonsu/51-addonsu.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/sbin/sh
-#
-# ADDOND_VERSION=2
-#
-
-. /tmp/backuptool.functions
-
-list_files() {
-cat <<EOF
-bin/su
-etc/init/superuser.rc
-xbin/su
-EOF
-}
-
-case "$1" in
- backup)
- list_files | while read FILE DUMMY; do
- backup_file $S/"$FILE"
- done
- ;;
- restore)
- list_files | while read FILE REPLACEMENT; do
- R=""
- [ -n "$REPLACEMENT" ] && R="$S/$REPLACEMENT"
- restore_file $S/"$FILE" "$R"
- done
- ;;
- pre-backup)
- # Stub
- ;;
- post-backup)
- # Stub
- ;;
- pre-restore)
- # Stub
- ;;
- post-restore)
- # Stub
- ;;
-esac
diff --git a/addonsu/mount-system.sh b/addonsu/mount-system.sh
deleted file mode 100644
index e5cc81ce..00000000
--- a/addonsu/mount-system.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/sbin/sh
-
-# Modern devices use /system as root ("/")
-system_as_root=`getprop ro.build.system_root_image`
-if [ "$system_as_root" == "true" ]; then
- if mount /system_root; then
- exit 0
- fi
-
- active_slot=`getprop ro.boot.slot_suffix`
- if [ ! -z "$active_slot" ]; then
- block=/dev/block/bootdevice/by-name/system$active_slot
- else
- block=/dev/block/bootdevice/by-name/system
- fi
- mkdir -p /system_root
- if mount -o rw $block /system_root ||
- mount -o rw $block /system_root -t ext4 ||
- mount -o rw $block /system_root -t f2fs; then
- exit 0
- fi
-else
- if mount /system; then
- exit 0
- fi
-
- # Try to get the block from /etc/recovery.fstab
- block=`cat /etc/recovery.fstab | cut -d '#' -f 1 | grep /system | grep -o '/dev/[^ ]*' | head -1`
- if [ -n "$block" ] && mount $block /system; then
- exit 0
- fi
-fi
-
-exit 1
diff --git a/addonsu/unmount-system.sh b/addonsu/unmount-system.sh
deleted file mode 100644
index 19b34311..00000000
--- a/addonsu/unmount-system.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/sbin/sh
-
-# Modern devices use /system as root ("/")
-system_as_root=`getprop ro.build.system_root_image`
-if [ "$system_as_root" == "true" ]; then
- if umount /system_root; then
- exit 0
- fi
-else
- if umount /system; then
- exit 0
- fi
-fi
-
-exit 1
diff --git a/addonsu/updater-script-install b/addonsu/updater-script-install
deleted file mode 100644
index 996023c2..00000000
--- a/addonsu/updater-script-install
+++ /dev/null
@@ -1,25 +0,0 @@
-ui_print("Installing su addon...");
-ifelse(is_mounted("/system"), unmount("/system"));
-package_extract_file("mount-system.sh", "/tmp/mount-system.sh");
-package_extract_file("unmount-system.sh", "/tmp/unmount-system.sh");
-set_metadata("/tmp/mount-system.sh", "uid", 0, "gid", 0, "mode", 0755);
-set_metadata("/tmp/unmount-system.sh", "uid", 0, "gid", 0, "mode", 0755);
-run_program("/tmp/mount-system.sh") == 0 || abort("Could not mount /system");
-
-if getprop("ro.build.system_root_image") != "true" then
- package_extract_dir("system", "/system");
- set_metadata("/system/addon.d/51-addonsu.sh", "uid", 0, "gid", 0, "mode", 0755, "selabel", "u:object_r:system_file:s0");
- set_metadata("/system/etc/init/superuser.rc", "uid", 0, "gid", 0, "mode", 0644, "selabel", "u:object_r:system_file:s0");
- set_metadata("/system/xbin/su", "uid", 0, "gid", 2000, "mode", 0755, "selabel", "u:object_r:su_exec:s0");
- symlink("/system/xbin/su", "/system/bin/su");
-else
- package_extract_dir("system", "/system_root/system");
- set_metadata("/system_root/system/addon.d/51-addonsu.sh", "uid", 0, "gid", 0, "mode", 0755, "selabel", "u:object_r:system_file:s0");
- set_metadata("/system_root/system/etc/init/superuser.rc", "uid", 0, "gid", 0, "mode", 0644, "selabel", "u:object_r:system_file:s0");
- set_metadata("/system_root/system/xbin/su", "uid", 0, "gid", 2000, "mode", 0755, "selabel", "u:object_r:su_exec:s0");
- symlink("/system/xbin/su", "/system_root/system/bin/su");
-endif;
-
-run_program("/tmp/unmount-system.sh") == 0 || ui_print("Could not unmount /system");
-ui_print("Done");
-set_progress(1.000000);
diff --git a/addonsu/updater-script-remove b/addonsu/updater-script-remove
deleted file mode 100644
index 6531e55b..00000000
--- a/addonsu/updater-script-remove
+++ /dev/null
@@ -1,23 +0,0 @@
-ui_print("Removing su addon...");
-ifelse(is_mounted("/system"), unmount("/system"));
-package_extract_file("mount-system.sh", "/tmp/mount-system.sh");
-package_extract_file("unmount-system.sh", "/tmp/unmount-system.sh");
-set_metadata("/tmp/mount-system.sh", "uid", 0, "gid", 0, "mode", 0755);
-set_metadata("/tmp/unmount-system.sh", "uid", 0, "gid", 0, "mode", 0755);
-run_program("/tmp/mount-system.sh") == 0 || abort("Could not mount /system");
-
-if getprop("ro.build.system_root_image") != "true" then
- delete("/system/addon.d/51-addonsu.sh");
- delete("/system/bin/su");
- delete("/system/etc/init/superuser.rc");
- delete("/system/xbin/su");
-else
- delete("/system_root/system/addon.d/51-addonsu.sh");
- delete("/system_root/system/bin/su");
- delete("/system_root/system/etc/init/superuser.rc");
- delete("/system_root/system/xbin/su");
-endif;
-
-run_program("/tmp/unmount-system.sh") == 0 || ui_print("Could not unmount /system");
-ui_print("Done");
-set_progress(1.000000);
diff --git a/bash_completion/git.bash b/bash_completion/git.bash
deleted file mode 100644
index 93eba467..00000000
--- a/bash_completion/git.bash
+++ /dev/null
@@ -1,2766 +0,0 @@
-#!bash
-#
-# bash/zsh completion support for core Git.
-#
-# Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
-# Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/).
-# Distributed under the GNU General Public License, version 2.0.
-#
-# The contained completion routines provide support for completing:
-#
-# *) local and remote branch names
-# *) local and remote tag names
-# *) .git/remotes file names
-# *) git 'subcommands'
-# *) tree paths within 'ref:path/to/file' expressions
-# *) file paths within current working directory and index
-# *) common --long-options
-#
-# To use these routines:
-#
-# 1) Copy this file to somewhere (e.g. ~/.git-completion.sh).
-# 2) Add the following line to your .bashrc/.zshrc:
-# source ~/.git-completion.sh
-# 3) Consider changing your PS1 to also show the current branch,
-# see git-prompt.sh for details.
-
-case "$COMP_WORDBREAKS" in
-*:*) : great ;;
-*) COMP_WORDBREAKS="$COMP_WORDBREAKS:"
-esac
-
-# __gitdir accepts 0 or 1 arguments (i.e., location)
-# returns location of .git repo
-__gitdir ()
-{
- # Note: this function is duplicated in git-prompt.sh
- # When updating it, make sure you update the other one to match.
- if [ -z "${1-}" ]; then
- if [ -n "${__git_dir-}" ]; then
- echo "$__git_dir"
- elif [ -n "${GIT_DIR-}" ]; then
- test -d "${GIT_DIR-}" || return 1
- echo "$GIT_DIR"
- elif [ -d .git ]; then
- echo .git
- else
- git rev-parse --git-dir 2>/dev/null
- fi
- elif [ -d "$1/.git" ]; then
- echo "$1/.git"
- else
- echo "$1"
- fi
-}
-
-__gitcomp_1 ()
-{
- local c IFS=$' \t\n'
- for c in $1; do
- c="$c$2"
- case $c in
- --*=*|*.) ;;
- *) c="$c " ;;
- esac
- printf '%s\n' "$c"
- done
-}
-
-# The following function is based on code from:
-#
-# bash_completion - programmable completion functions for bash 3.2+
-#
-# Copyright © 2006-2008, Ian Macdonald <ian@caliban.org>
-# © 2009-2010, Bash Completion Maintainers
-# <bash-completion-devel@lists.alioth.debian.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# The latest version of this software can be obtained here:
-#
-# http://bash-completion.alioth.debian.org/
-#
-# RELEASE: 2.x
-
-# This function can be used to access a tokenized list of words
-# on the command line:
-#
-# __git_reassemble_comp_words_by_ref '=:'
-# if test "${words_[cword_-1]}" = -w
-# then
-# ...
-# fi
-#
-# The argument should be a collection of characters from the list of
-# word completion separators (COMP_WORDBREAKS) to treat as ordinary
-# characters.
-#
-# This is roughly equivalent to going back in time and setting
-# COMP_WORDBREAKS to exclude those characters. The intent is to
-# make option types like --date=<type> and <rev>:<path> easy to
-# recognize by treating each shell word as a single token.
-#
-# It is best not to set COMP_WORDBREAKS directly because the value is
-# shared with other completion scripts. By the time the completion
-# function gets called, COMP_WORDS has already been populated so local
-# changes to COMP_WORDBREAKS have no effect.
-#
-# Output: words_, cword_, cur_.
-
-__git_reassemble_comp_words_by_ref()
-{
- local exclude i j first
- # Which word separators to exclude?
- exclude="${1//[^$COMP_WORDBREAKS]}"
- cword_=$COMP_CWORD
- if [ -z "$exclude" ]; then
- words_=("${COMP_WORDS[@]}")
- return
- fi
- # List of word completion separators has shrunk;
- # re-assemble words to complete.
- for ((i=0, j=0; i < ${#COMP_WORDS[@]}; i++, j++)); do
- # Append each nonempty word consisting of just
- # word separator characters to the current word.
- first=t
- while
- [ $i -gt 0 ] &&
- [ -n "${COMP_WORDS[$i]}" ] &&
- # word consists of excluded word separators
- [ "${COMP_WORDS[$i]//[^$exclude]}" = "${COMP_WORDS[$i]}" ]
- do
- # Attach to the previous token,
- # unless the previous token is the command name.
- if [ $j -ge 2 ] && [ -n "$first" ]; then
- ((j--))
- fi
- first=
- words_[$j]=${words_[j]}${COMP_WORDS[i]}
- if [ $i = $COMP_CWORD ]; then
- cword_=$j
- fi
- if (($i < ${#COMP_WORDS[@]} - 1)); then
- ((i++))
- else
- # Done.
- return
- fi
- done
- words_[$j]=${words_[j]}${COMP_WORDS[i]}
- if [ $i = $COMP_CWORD ]; then
- cword_=$j
- fi
- done
-}
-
-if ! type _get_comp_words_by_ref >/dev/null 2>&1; then
-_get_comp_words_by_ref ()
-{
- local exclude cur_ words_ cword_
- if [ "$1" = "-n" ]; then
- exclude=$2
- shift 2
- fi
- __git_reassemble_comp_words_by_ref "$exclude"
- cur_=${words_[cword_]}
- while [ $# -gt 0 ]; do
- case "$1" in
- cur)
- cur=$cur_
- ;;
- prev)
- prev=${words_[$cword_-1]}
- ;;
- words)
- words=("${words_[@]}")
- ;;
- cword)
- cword=$cword_
- ;;
- esac
- shift
- done
-}
-fi
-
-# Generates completion reply with compgen, appending a space to possible
-# completion words, if necessary.
-# It accepts 1 to 4 arguments:
-# 1: List of possible completion words.
-# 2: A prefix to be added to each possible completion word (optional).
-# 3: Generate possible completion matches for this word (optional).
-# 4: A suffix to be appended to each possible completion word (optional).
-__gitcomp ()
-{
- local cur_="${3-$cur}"
-
- case "$cur_" in
- --*=)
- COMPREPLY=()
- ;;
- *)
- local IFS=$'\n'
- COMPREPLY=($(compgen -P "${2-}" \
- -W "$(__gitcomp_1 "${1-}" "${4-}")" \
- -- "$cur_"))
- ;;
- esac
-}
-
-# Generates completion reply with compgen from newline-separated possible
-# completion words by appending a space to all of them.
-# It accepts 1 to 4 arguments:
-# 1: List of possible completion words, separated by a single newline.
-# 2: A prefix to be added to each possible completion word (optional).
-# 3: Generate possible completion matches for this word (optional).
-# 4: A suffix to be appended to each possible completion word instead of
-# the default space (optional). If specified but empty, nothing is
-# appended.
-__gitcomp_nl ()
-{
- local IFS=$'\n'
- COMPREPLY=($(compgen -P "${2-}" -S "${4- }" -W "$1" -- "${3-$cur}"))
-}
-
-# Generates completion reply with compgen from newline-separated possible
-# completion filenames.
-# It accepts 1 to 3 arguments:
-# 1: List of possible completion filenames, separated by a single newline.
-# 2: A directory prefix to be added to each possible completion filename
-# (optional).
-# 3: Generate possible completion matches for this word (optional).
-__gitcomp_file ()
-{
- local IFS=$'\n'
-
- # XXX does not work when the directory prefix contains a tilde,
- # since tilde expansion is not applied.
- # This means that COMPREPLY will be empty and Bash default
- # completion will be used.
- COMPREPLY=($(compgen -P "${2-}" -W "$1" -- "${3-$cur}"))
-
- # Tell Bash that compspec generates filenames.
- compopt -o filenames 2>/dev/null
-}
-
-__git_index_file_list_filter_compat ()
-{
- local path
-
- while read -r path; do
- case "$path" in
- ?*/*) echo "${path%%/*}/" ;;
- *) echo "$path" ;;
- esac
- done
-}
-
-__git_index_file_list_filter_bash ()
-{
- local path
-
- while read -r path; do
- case "$path" in
- ?*/*)
- # XXX if we append a slash to directory names when using
- # `compopt -o filenames`, Bash will append another slash.
- # This is pretty stupid, and this the reason why we have to
- # define a compatible version for this function.
- echo "${path%%/*}" ;;
- *)
- echo "$path" ;;
- esac
- done
-}
-
-# Process path list returned by "ls-files" and "diff-index --name-only"
-# commands, in order to list only file names relative to a specified
-# directory, and append a slash to directory names.
-__git_index_file_list_filter ()
-{
- # Default to Bash >= 4.x
- __git_index_file_list_filter_bash
-}
-
-# Execute git ls-files, returning paths relative to the directory
-# specified in the first argument, and using the options specified in
-# the second argument.
-__git_ls_files_helper ()
-{
- (
- test -n "${CDPATH+set}" && unset CDPATH
- # NOTE: $2 is not quoted in order to support multiple options
- cd "$1" && git ls-files --exclude-standard $2
- ) 2>/dev/null
-}
-
-
-# Execute git diff-index, returning paths relative to the directory
-# specified in the first argument, and using the tree object id
-# specified in the second argument.
-__git_diff_index_helper ()
-{
- (
- test -n "${CDPATH+set}" && unset CDPATH
- cd "$1" && git diff-index --name-only --relative "$2"
- ) 2>/dev/null
-}
-
-# __git_index_files accepts 1 or 2 arguments:
-# 1: Options to pass to ls-files (required).
-# Supported options are --cached, --modified, --deleted, --others,
-# and --directory.
-# 2: A directory path (optional).
-# If provided, only files within the specified directory are listed.
-# Sub directories are never recursed. Path must have a trailing
-# slash.
-__git_index_files ()
-{
- local dir="$(__gitdir)" root="${2-.}"
-
- if [ -d "$dir" ]; then
- __git_ls_files_helper "$root" "$1" | __git_index_file_list_filter |
- sort | uniq
- fi
-}
-
-# __git_diff_index_files accepts 1 or 2 arguments:
-# 1) The id of a tree object.
-# 2) A directory path (optional).
-# If provided, only files within the specified directory are listed.
-# Sub directories are never recursed. Path must have a trailing
-# slash.
-__git_diff_index_files ()
-{
- local dir="$(__gitdir)" root="${2-.}"
-
- if [ -d "$dir" ]; then
- __git_diff_index_helper "$root" "$1" | __git_index_file_list_filter |
- sort | uniq
- fi
-}
-
-__git_heads ()
-{
- local dir="$(__gitdir)"
- if [ -d "$dir" ]; then
- git --git-dir="$dir" for-each-ref --format='%(refname:short)' \
- refs/heads
- return
- fi
-}
-
-__git_tags ()
-{
- local dir="$(__gitdir)"
- if [ -d "$dir" ]; then
- git --git-dir="$dir" for-each-ref --format='%(refname:short)' \
- refs/tags
- return
- fi
-}
-
-# __git_refs accepts 0, 1 (to pass to __gitdir), or 2 arguments
-# presence of 2nd argument means use the guess heuristic employed
-# by checkout for tracking branches
-__git_refs ()
-{
- local i hash dir="$(__gitdir "${1-}")" track="${2-}"
- local format refs
- if [ -d "$dir" ]; then
- case "$cur" in
- refs|refs/*)
- format="refname"
- refs="${cur%/*}"
- track=""
- ;;
- *)
- for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD; do
- if [ -e "$dir/$i" ]; then echo $i; fi
- done
- format="refname:short"
- refs="refs/tags refs/heads refs/remotes"
- ;;
- esac
- git --git-dir="$dir" for-each-ref --format="%($format)" \
- $refs
- if [ -n "$track" ]; then
- # employ the heuristic used by git checkout
- # Try to find a remote branch that matches the completion word
- # but only output if the branch name is unique
- local ref entry
- git --git-dir="$dir" for-each-ref --shell --format="ref=%(refname:short)" \
- "refs/remotes/" | \
- while read -r entry; do
- eval "$entry"
- ref="${ref#*/}"
- if [[ "$ref" == "$cur"* ]]; then
- echo "$ref"
- fi
- done | sort | uniq -u
- fi
- return
- fi
- case "$cur" in
- refs|refs/*)
- git ls-remote "$dir" "$cur*" 2>/dev/null | \
- while read -r hash i; do
- case "$i" in
- *^{}) ;;
- *) echo "$i" ;;
- esac
- done
- ;;
- *)
- git ls-remote "$dir" HEAD ORIG_HEAD 'refs/tags/*' 'refs/heads/*' 'refs/remotes/*' 2>/dev/null | \
- while read -r hash i; do
- case "$i" in
- *^{}) ;;
- refs/*) echo "${i#refs/*/}" ;;
- *) echo "$i" ;;
- esac
- done
- ;;
- esac
-}
-
-# __git_refs2 requires 1 argument (to pass to __git_refs)
-__git_refs2 ()
-{
- local i
- for i in $(__git_refs "$1"); do
- echo "$i:$i"
- done
-}
-
-# __git_refs_remotes requires 1 argument (to pass to ls-remote)
-__git_refs_remotes ()
-{
- local i hash
- git ls-remote "$1" 'refs/heads/*' 2>/dev/null | \
- while read -r hash i; do
- echo "$i:refs/remotes/$1/${i#refs/heads/}"
- done
-}
-
-__git_remotes ()
-{
- local i IFS=$'\n' d="$(__gitdir)"
- test -d "$d/remotes" && ls -1 "$d/remotes"
- for i in $(git --git-dir="$d" config --get-regexp 'remote\..*\.url' 2>/dev/null); do
- i="${i#remote.}"
- echo "${i/.url*/}"
- done
-}
-
-__git_list_merge_strategies ()
-{
- git merge -s help 2>&1 |
- sed -n -e '/[Aa]vailable strategies are: /,/^$/{
- s/\.$//
- s/.*://
- s/^[ ]*//
- s/[ ]*$//
- p
- }'
-}
-
-__git_merge_strategies=
-# 'git merge -s help' (and thus detection of the merge strategy
-# list) fails, unfortunately, if run outside of any git working
-# tree. __git_merge_strategies is set to the empty string in
-# that case, and the detection will be repeated the next time it
-# is needed.
-__git_compute_merge_strategies ()
-{
- test -n "$__git_merge_strategies" ||
- __git_merge_strategies=$(__git_list_merge_strategies)
-}
-
-__git_complete_revlist_file ()
-{
- local pfx ls ref cur_="$cur"
- case "$cur_" in
- *..?*:*)
- return
- ;;
- ?*:*)
- ref="${cur_%%:*}"
- cur_="${cur_#*:}"
- case "$cur_" in
- ?*/*)
- pfx="${cur_%/*}"
- cur_="${cur_##*/}"
- ls="$ref:$pfx"
- pfx="$pfx/"
- ;;
- *)
- ls="$ref"
- ;;
- esac
-
- case "$COMP_WORDBREAKS" in
- *:*) : great ;;
- *) pfx="$ref:$pfx" ;;
- esac
-
- __gitcomp_nl "$(git --git-dir="$(__gitdir)" ls-tree "$ls" 2>/dev/null \
- | sed '/^100... blob /{
- s,^.* ,,
- s,$, ,
- }
- /^120000 blob /{
- s,^.* ,,
- s,$, ,
- }
- /^040000 tree /{
- s,^.* ,,
- s,$,/,
- }
- s/^.* //')" \
- "$pfx" "$cur_" ""
- ;;
- *...*)
- pfx="${cur_%...*}..."
- cur_="${cur_#*...}"
- __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
- ;;
- *..*)
- pfx="${cur_%..*}.."
- cur_="${cur_#*..}"
- __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
- ;;
- *)
- __gitcomp_nl "$(__git_refs)"
- ;;
- esac
-}
-
-
-# __git_complete_index_file requires 1 argument: the options to pass to
-# ls-file
-__git_complete_index_file ()
-{
- local pfx cur_="$cur"
-
- case "$cur_" in
- ?*/*)
- pfx="${cur_%/*}"
- cur_="${cur_##*/}"
- pfx="${pfx}/"
-
- __gitcomp_file "$(__git_index_files "$1" "$pfx")" "$pfx" "$cur_"
- ;;
- *)
- __gitcomp_file "$(__git_index_files "$1")" "" "$cur_"
- ;;
- esac
-}
-
-# __git_complete_diff_index_file requires 1 argument: the id of a tree
-# object
-__git_complete_diff_index_file ()
-{
- local pfx cur_="$cur"
-
- case "$cur_" in
- ?*/*)
- pfx="${cur_%/*}"
- cur_="${cur_##*/}"
- pfx="${pfx}/"
-
- __gitcomp_file "$(__git_diff_index_files "$1" "$pfx")" "$pfx" "$cur_"
- ;;
- *)
- __gitcomp_file "$(__git_diff_index_files "$1")" "" "$cur_"
- ;;
- esac
-}
-
-__git_complete_file ()
-{
- __git_complete_revlist_file
-}
-
-__git_complete_revlist ()
-{
- __git_complete_revlist_file
-}
-
-__git_complete_remote_or_refspec ()
-{
- local cur_="$cur" cmd="${words[1]}"
- local i c=2 remote="" pfx="" lhs=1 no_complete_refspec=0
- if [ "$cmd" = "remote" ]; then
- ((c++))
- fi
- while [ $c -lt $cword ]; do
- i="${words[c]}"
- case "$i" in
- --mirror) [ "$cmd" = "push" ] && no_complete_refspec=1 ;;
- --all)
- case "$cmd" in
- push) no_complete_refspec=1 ;;
- fetch)
- COMPREPLY=()
- return
- ;;
- *) ;;
- esac
- ;;
- -*) ;;
- *) remote="$i"; break ;;
- esac
- ((c++))
- done
- if [ -z "$remote" ]; then
- __gitcomp_nl "$(__git_remotes)"
- return
- fi
- if [ $no_complete_refspec = 1 ]; then
- COMPREPLY=()
- return
- fi
- [ "$remote" = "." ] && remote=
- case "$cur_" in
- *:*)
- case "$COMP_WORDBREAKS" in
- *:*) : great ;;
- *) pfx="${cur_%%:*}:" ;;
- esac
- cur_="${cur_#*:}"
- lhs=0
- ;;
- +*)
- pfx="+"
- cur_="${cur_#+}"
- ;;
- esac
- case "$cmd" in
- fetch)
- if [ $lhs = 1 ]; then
- __gitcomp_nl "$(__git_refs2 "$remote")" "$pfx" "$cur_"
- else
- __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
- fi
- ;;
- pull|remote)
- if [ $lhs = 1 ]; then
- __gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_"
- else
- __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
- fi
- ;;
- push)
- if [ $lhs = 1 ]; then
- __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_"
- else
- __gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_"
- fi
- ;;
- esac
-}
-
-__git_complete_strategy ()
-{
- __git_compute_merge_strategies
- case "$prev" in
- -s|--strategy)
- __gitcomp "$__git_merge_strategies"
- return 0
- esac
- case "$cur" in
- --strategy=*)
- __gitcomp "$__git_merge_strategies" "" "${cur##--strategy=}"
- return 0
- ;;
- esac
- return 1
-}
-
-__git_commands () {
- if test -n "${GIT_TESTING_COMMAND_COMPLETION:-}"
- then
- printf "%s" "${GIT_TESTING_COMMAND_COMPLETION}"
- else
- git help -a|egrep '^ [a-zA-Z0-9]'
- fi
-}
-
-__git_list_all_commands ()
-{
- local i IFS=" "$'\n'
- for i in $(__git_commands)
- do
- case $i in
- *--*) : helper pattern;;
- *) echo $i;;
- esac
- done
-}
-
-__git_all_commands=
-__git_compute_all_commands ()
-{
- test -n "$__git_all_commands" ||
- __git_all_commands=$(__git_list_all_commands)
-}
-
-__git_list_porcelain_commands ()
-{
- local i IFS=" "$'\n'
- __git_compute_all_commands
- for i in $__git_all_commands
- do
- case $i in
- *--*) : helper pattern;;
- applymbox) : ask gittus;;
- applypatch) : ask gittus;;
- archimport) : import;;
- cat-file) : plumbing;;
- check-attr) : plumbing;;
- check-ignore) : plumbing;;
- check-ref-format) : plumbing;;
- checkout-index) : plumbing;;
- commit-tree) : plumbing;;
- count-objects) : infrequent;;
- credential-cache) : credentials helper;;
- credential-store) : credentials helper;;
- cvsexportcommit) : export;;
- cvsimport) : import;;
- cvsserver) : daemon;;
- daemon) : daemon;;
- diff-files) : plumbing;;
- diff-index) : plumbing;;
- diff-tree) : plumbing;;
- fast-import) : import;;
- fast-export) : export;;
- fsck-objects) : plumbing;;
- fetch-pack) : plumbing;;
- fmt-merge-msg) : plumbing;;
- for-each-ref) : plumbing;;
- hash-object) : plumbing;;
- http-*) : transport;;
- index-pack) : plumbing;;
- init-db) : deprecated;;
- local-fetch) : plumbing;;
- lost-found) : infrequent;;
- ls-files) : plumbing;;
- ls-remote) : plumbing;;
- ls-tree) : plumbing;;
- mailinfo) : plumbing;;
- mailsplit) : plumbing;;
- merge-*) : plumbing;;
- mktree) : plumbing;;
- mktag) : plumbing;;
- pack-objects) : plumbing;;
- pack-redundant) : plumbing;;
- pack-refs) : plumbing;;
- parse-remote) : plumbing;;
- patch-id) : plumbing;;
- peek-remote) : plumbing;;
- prune) : plumbing;;
- prune-packed) : plumbing;;
- quiltimport) : import;;
- read-tree) : plumbing;;
- receive-pack) : plumbing;;
- remote-*) : transport;;
- repo-config) : deprecated;;
- rerere) : plumbing;;
- rev-list) : plumbing;;
- rev-parse) : plumbing;;
- runstatus) : plumbing;;
- sh-setup) : internal;;
- shell) : daemon;;
- show-ref) : plumbing;;
- send-pack) : plumbing;;
- show-index) : plumbing;;
- ssh-*) : transport;;
- stripspace) : plumbing;;
- symbolic-ref) : plumbing;;
- tar-tree) : deprecated;;
- unpack-file) : plumbing;;
- unpack-objects) : plumbing;;
- update-index) : plumbing;;
- update-ref) : plumbing;;
- update-server-info) : daemon;;
- upload-archive) : plumbing;;
- upload-pack) : plumbing;;
- write-tree) : plumbing;;
- var) : infrequent;;
- verify-pack) : infrequent;;
- verify-tag) : plumbing;;
- *) echo $i;;
- esac
- done
-}
-
-__git_porcelain_commands=
-__git_compute_porcelain_commands ()
-{
- __git_compute_all_commands
- test -n "$__git_porcelain_commands" ||
- __git_porcelain_commands=$(__git_list_porcelain_commands)
-}
-
-__git_pretty_aliases ()
-{
- local i IFS=$'\n'
- for i in $(git --git-dir="$(__gitdir)" config --get-regexp "pretty\..*" 2>/dev/null); do
- case "$i" in
- pretty.*)
- i="${i#pretty.}"
- echo "${i/ */}"
- ;;
- esac
- done
-}
-
-__git_aliases ()
-{
- local i IFS=$'\n'
- for i in $(git --git-dir="$(__gitdir)" config --get-regexp "alias\..*" 2>/dev/null); do
- case "$i" in
- alias.*)
- i="${i#alias.}"
- echo "${i/ */}"
- ;;
- esac
- done
-}
-
-# __git_aliased_command requires 1 argument
-__git_aliased_command ()
-{
- local word cmdline=$(git --git-dir="$(__gitdir)" \
- config --get "alias.$1")
- for word in $cmdline; do
- case "$word" in
- \!gitk|gitk)
- echo "gitk"
- return
- ;;
- \!*) : shell command alias ;;
- -*) : option ;;
- *=*) : setting env ;;
- git) : git itself ;;
- *)
- echo "$word"
- return
- esac
- done
-}
-
-# __git_find_on_cmdline requires 1 argument
-__git_find_on_cmdline ()
-{
- local word subcommand c=1
- while [ $c -lt $cword ]; do
- word="${words[c]}"
- for subcommand in $1; do
- if [ "$subcommand" = "$word" ]; then
- echo "$subcommand"
- return
- fi
- done
- ((c++))
- done
-}
-
-__git_has_doubledash ()
-{
- local c=1
- while [ $c -lt $cword ]; do
- if [ "--" = "${words[c]}" ]; then
- return 0
- fi
- ((c++))
- done
- return 1
-}
-
-# Try to count non option arguments passed on the command line for the
-# specified git command.
-# When options are used, it is necessary to use the special -- option to
-# tell the implementation were non option arguments begin.
-# XXX this can not be improved, since options can appear everywhere, as
-# an example:
-# git mv x -n y
-#
-# __git_count_arguments requires 1 argument: the git command executed.
-__git_count_arguments ()
-{
- local word i c=0
-
- # Skip "git" (first argument)
- for ((i=1; i < ${#words[@]}; i++)); do
- word="${words[i]}"
-
- case "$word" in
- --)
- # Good; we can assume that the following are only non
- # option arguments.
- ((c = 0))
- ;;
- "$1")
- # Skip the specified git command and discard git
- # main options
- ((c = 0))
- ;;
- ?*)
- ((c++))
- ;;
- esac
- done
-
- printf "%d" $c
-}
-
-__git_whitespacelist="nowarn warn error error-all fix"
-
-_git_am ()
-{
- local dir="$(__gitdir)"
- if [ -d "$dir"/rebase-apply ]; then
- __gitcomp "--skip --continue --resolved --abort"
- return
- fi
- case "$cur" in
- --whitespace=*)
- __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}"
- return
- ;;
- --*)
- __gitcomp "
- --3way --committer-date-is-author-date --ignore-date
- --ignore-whitespace --ignore-space-change
- --interactive --keep --no-utf8 --signoff --utf8
- --whitespace= --scissors
- "
- return
- esac
- COMPREPLY=()
-}
-
-_git_apply ()
-{
- case "$cur" in
- --whitespace=*)
- __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}"
- return
- ;;
- --*)
- __gitcomp "
- --stat --numstat --summary --check --index
- --cached --index-info --reverse --reject --unidiff-zero
- --apply --no-add --exclude=
- --ignore-whitespace --ignore-space-change
- --whitespace= --inaccurate-eof --verbose
- "
- return
- esac
- COMPREPLY=()
-}
-
-_git_add ()
-{
- case "$cur" in
- --*)
- __gitcomp "
- --interactive --refresh --patch --update --dry-run
- --ignore-errors --intent-to-add
- "
- return
- esac
-
- # XXX should we check for --update and --all options ?
- __git_complete_index_file "--others --modified"
-}
-
-_git_archive ()
-{
- case "$cur" in
- --format=*)
- __gitcomp "$(git archive --list)" "" "${cur##--format=}"
- return
- ;;
- --remote=*)
- __gitcomp_nl "$(__git_remotes)" "" "${cur##--remote=}"
- return
- ;;
- --*)
- __gitcomp "
- --format= --list --verbose
- --prefix= --remote= --exec=
- "
- return
- ;;
- esac
- __git_complete_file
-}
-
-_git_bisect ()
-{
- __git_has_doubledash && return
-
- local subcommands="start bad good skip reset visualize replay log run"
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
- if [ -z "$subcommand" ]; then
- if [ -f "$(__gitdir)"/BISECT_START ]; then
- __gitcomp "$subcommands"
- else
- __gitcomp "replay start"
- fi
- return
- fi
-
- case "$subcommand" in
- bad|good|reset|skip|start)
- __gitcomp_nl "$(__git_refs)"
- ;;
- *)
- COMPREPLY=()
- ;;
- esac
-}
-
-_git_branch ()
-{
- local i c=1 only_local_ref="n" has_r="n"
-
- while [ $c -lt $cword ]; do
- i="${words[c]}"
- case "$i" in
- -d|-m) only_local_ref="y" ;;
- -r) has_r="y" ;;
- esac
- ((c++))
- done
-
- case "$cur" in
- --set-upstream-to=*)
- __gitcomp "$(__git_refs)" "" "${cur##--set-upstream-to=}"
- ;;
- --*)
- __gitcomp "
- --color --no-color --verbose --abbrev= --no-abbrev
- --track --no-track --contains --merged --no-merged
- --set-upstream-to= --edit-description --list
- --unset-upstream
- "
- ;;
- *)
- if [ $only_local_ref = "y" -a $has_r = "n" ]; then
- __gitcomp_nl "$(__git_heads)"
- else
- __gitcomp_nl "$(__git_refs)"
- fi
- ;;
- esac
-}
-
-_git_bundle ()
-{
- local cmd="${words[2]}"
- case "$cword" in
- 2)
- __gitcomp "create list-heads verify unbundle"
- ;;
- 3)
- # looking for a file
- ;;
- *)
- case "$cmd" in
- create)
- __git_complete_revlist
- ;;
- esac
- ;;
- esac
-}
-
-_git_checkout ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --conflict=*)
- __gitcomp "diff3 merge" "" "${cur##--conflict=}"
- ;;
- --*)
- __gitcomp "
- --quiet --ours --theirs --track --no-track --merge
- --conflict= --orphan --patch
- "
- ;;
- *)
- # check if --track, --no-track, or --no-guess was specified
- # if so, disable DWIM mode
- local flags="--track --no-track --no-guess" track=1
- if [ -n "$(__git_find_on_cmdline "$flags")" ]; then
- track=''
- fi
- __gitcomp_nl "$(__git_refs '' $track)"
- ;;
- esac
-}
-
-_git_cherry ()
-{
- __gitcomp "$(__git_refs)"
-}
-
-_git_cherry_pick ()
-{
- case "$cur" in
- --*)
- __gitcomp "--edit --no-commit"
- ;;
- *)
- __gitcomp_nl "$(__git_refs)"
- ;;
- esac
-}
-
-_git_clean ()
-{
- case "$cur" in
- --*)
- __gitcomp "--dry-run --quiet"
- return
- ;;
- esac
-
- # XXX should we check for -x option ?
- __git_complete_index_file "--others"
-}
-
-_git_clone ()
-{
- case "$cur" in
- --*)
- __gitcomp "
- --local
- --no-hardlinks
- --shared
- --reference
- --quiet
- --no-checkout
- --bare
- --mirror
- --origin
- --upload-pack
- --template=
- --depth
- --single-branch
- --branch
- "
- return
- ;;
- esac
- COMPREPLY=()
-}
-
-_git_commit ()
-{
- case "$prev" in
- -c|-C)
- __gitcomp_nl "$(__git_refs)" "" "${cur}"
- return
- ;;
- esac
-
- case "$prev" in
- -c|-C)
- __gitcomp_nl "$(__git_refs)" "" "${cur}"
- return
- ;;
- esac
-
- case "$cur" in
- --cleanup=*)
- __gitcomp "default strip verbatim whitespace
- " "" "${cur##--cleanup=}"
- return
- ;;
- --reuse-message=*|--reedit-message=*|\
- --fixup=*|--squash=*)
- __gitcomp_nl "$(__git_refs)" "" "${cur#*=}"
- return
- ;;
- --untracked-files=*)
- __gitcomp "all no normal" "" "${cur##--untracked-files=}"
- return
- ;;
- --*)
- __gitcomp "
- --all --author= --signoff --verify --no-verify
- --edit --no-edit
- --amend --include --only --interactive
- --dry-run --reuse-message= --reedit-message=
- --reset-author --file= --message= --template=
- --cleanup= --untracked-files --untracked-files=
- --verbose --quiet --fixup= --squash=
- "
- return
- esac
-
- if git rev-parse --verify --quiet HEAD >/dev/null; then
- __git_complete_diff_index_file "HEAD"
- else
- # This is the first commit
- __git_complete_index_file "--cached"
- fi
-}
-
-_git_describe ()
-{
- case "$cur" in
- --*)
- __gitcomp "
- --all --tags --contains --abbrev= --candidates=
- --exact-match --debug --long --match --always
- "
- return
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-__git_diff_algorithms="myers minimal patience histogram"
-
-__git_diff_common_options="--stat --numstat --shortstat --summary
- --patch-with-stat --name-only --name-status --color
- --no-color --color-words --no-renames --check
- --full-index --binary --abbrev --diff-filter=
- --find-copies-harder
- --text --ignore-space-at-eol --ignore-space-change
- --ignore-all-space --exit-code --quiet --ext-diff
- --no-ext-diff
- --no-prefix --src-prefix= --dst-prefix=
- --inter-hunk-context=
- --patience --histogram --minimal
- --raw
- --dirstat --dirstat= --dirstat-by-file
- --dirstat-by-file= --cumulative
- --diff-algorithm=
-"
-
-_git_diff ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --diff-algorithm=*)
- __gitcomp "$__git_diff_algorithms" "" "${cur##--diff-algorithm=}"
- return
- ;;
- --*)
- __gitcomp "--cached --staged --pickaxe-all --pickaxe-regex
- --base --ours --theirs --no-index
- $__git_diff_common_options
- "
- return
- ;;
- esac
- __git_complete_revlist_file
-}
-
-__git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff
- tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc3 codecompare
-"
-
-_git_difftool ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --tool=*)
- __gitcomp "$__git_mergetools_common kompare" "" "${cur##--tool=}"
- return
- ;;
- --*)
- __gitcomp "--cached --staged --pickaxe-all --pickaxe-regex
- --base --ours --theirs
- --no-renames --diff-filter= --find-copies-harder
- --relative --ignore-submodules
- --tool="
- return
- ;;
- esac
- __git_complete_file
-}
-
-__git_fetch_options="
- --quiet --verbose --append --upload-pack --force --keep --depth=
- --tags --no-tags --all --prune --dry-run
-"
-
-_git_fetch ()
-{
- case "$cur" in
- --*)
- __gitcomp "$__git_fetch_options"
- return
- ;;
- esac
- __git_complete_remote_or_refspec
-}
-
-__git_format_patch_options="
- --stdout --attach --no-attach --thread --thread= --output-directory
- --numbered --start-number --numbered-files --keep-subject --signoff
- --signature --no-signature --in-reply-to= --cc= --full-index --binary
- --not --all --cover-letter --no-prefix --src-prefix= --dst-prefix=
- --inline --suffix= --ignore-if-in-upstream --subject-prefix=
-"
-
-_git_format_patch ()
-{
- case "$cur" in
- --thread=*)
- __gitcomp "
- deep shallow
- " "" "${cur##--thread=}"
- return
- ;;
- --*)
- __gitcomp "$__git_format_patch_options"
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-_git_fsck ()
-{
- case "$cur" in
- --*)
- __gitcomp "
- --tags --root --unreachable --cache --no-reflogs --full
- --strict --verbose --lost-found
- "
- return
- ;;
- esac
- COMPREPLY=()
-}
-
-_git_gc ()
-{
- case "$cur" in
- --*)
- __gitcomp "--prune --aggressive"
- return
- ;;
- esac
- COMPREPLY=()
-}
-
-_git_gitk ()
-{
- _gitk
-}
-
-__git_match_ctag() {
- awk "/^${1////\\/}/ { print \$1 }" "$2"
-}
-
-_git_grep ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --*)
- __gitcomp "
- --cached
- --text --ignore-case --word-regexp --invert-match
- --full-name --line-number
- --extended-regexp --basic-regexp --fixed-strings
- --perl-regexp
- --files-with-matches --name-only
- --files-without-match
- --max-depth
- --count
- --and --or --not --all-match
- "
- return
- ;;
- esac
-
- case "$cword,$prev" in
- 2,*|*,-*)
- if test -r tags; then
- __gitcomp_nl "$(__git_match_ctag "$cur" tags)"
- return
- fi
- ;;
- esac
-
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_help ()
-{
- case "$cur" in
- --*)
- __gitcomp "--all --info --man --web"
- return
- ;;
- esac
- __git_compute_all_commands
- __gitcomp "$__git_all_commands $(__git_aliases)
- attributes cli core-tutorial cvs-migration
- diffcore gitk glossary hooks ignore modules
- namespaces repository-layout tutorial tutorial-2
- workflows
- "
-}
-
-_git_init ()
-{
- case "$cur" in
- --shared=*)
- __gitcomp "
- false true umask group all world everybody
- " "" "${cur##--shared=}"
- return
- ;;
- --*)
- __gitcomp "--quiet --bare --template= --shared --shared="
- return
- ;;
- esac
- COMPREPLY=()
-}
-
-_git_ls_files ()
-{
- case "$cur" in
- --*)
- __gitcomp "--cached --deleted --modified --others --ignored
- --stage --directory --no-empty-directory --unmerged
- --killed --exclude= --exclude-from=
- --exclude-per-directory= --exclude-standard
- --error-unmatch --with-tree= --full-name
- --abbrev --ignored --exclude-per-directory
- "
- return
- ;;
- esac
-
- # XXX ignore options like --modified and always suggest all cached
- # files.
- __git_complete_index_file "--cached"
-}
-
-_git_ls_remote ()
-{
- __gitcomp_nl "$(__git_remotes)"
-}
-
-_git_ls_tree ()
-{
- __git_complete_file
-}
-
-# Options that go well for log, shortlog and gitk
-__git_log_common_options="
- --not --all
- --branches --tags --remotes
- --first-parent --merges --no-merges
- --max-count=
- --max-age= --since= --after=
- --min-age= --until= --before=
- --min-parents= --max-parents=
- --no-min-parents --no-max-parents
-"
-# Options that go well for log and gitk (not shortlog)
-__git_log_gitk_options="
- --dense --sparse --full-history
- --simplify-merges --simplify-by-decoration
- --left-right --notes --no-notes
-"
-# Options that go well for log and shortlog (not gitk)
-__git_log_shortlog_options="
- --author= --committer= --grep=
- --all-match
-"
-
-__git_log_pretty_formats="oneline short medium full fuller email raw format:"
-__git_log_date_formats="relative iso8601 rfc2822 short local default raw"
-
-_git_log ()
-{
- __git_has_doubledash && return
-
- local g="$(git rev-parse --git-dir 2>/dev/null)"
- local merge=""
- if [ -f "$g/MERGE_HEAD" ]; then
- merge="--merge"
- fi
- case "$cur" in
- --pretty=*|--format=*)
- __gitcomp "$__git_log_pretty_formats $(__git_pretty_aliases)
- " "" "${cur#*=}"
- return
- ;;
- --date=*)
- __gitcomp "$__git_log_date_formats" "" "${cur##--date=}"
- return
- ;;
- --decorate=*)
- __gitcomp "long short" "" "${cur##--decorate=}"
- return
- ;;
- --*)
- __gitcomp "
- $__git_log_common_options
- $__git_log_shortlog_options
- $__git_log_gitk_options
- --root --topo-order --date-order --reverse
- --follow --full-diff
- --abbrev-commit --abbrev=
- --relative-date --date=
- --pretty= --format= --oneline
- --cherry-pick
- --graph
- --decorate --decorate=
- --walk-reflogs
- --parents --children
- $merge
- $__git_diff_common_options
- --pickaxe-all --pickaxe-regex
- "
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-__git_merge_options="
- --no-commit --no-stat --log --no-log --squash --strategy
- --commit --stat --no-squash --ff --no-ff --ff-only --edit --no-edit
-"
-
-_git_merge ()
-{
- __git_complete_strategy && return
-
- case "$cur" in
- --*)
- __gitcomp "$__git_merge_options"
- return
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_mergetool ()
-{
- case "$cur" in
- --tool=*)
- __gitcomp "$__git_mergetools_common tortoisemerge" "" "${cur##--tool=}"
- return
- ;;
- --*)
- __gitcomp "--tool="
- return
- ;;
- esac
- COMPREPLY=()
-}
-
-_git_merge_base ()
-{
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_mv ()
-{
- case "$cur" in
- --*)
- __gitcomp "--dry-run"
- return
- ;;
- esac
-
- if [ $(__git_count_arguments "mv") -gt 0 ]; then
- # We need to show both cached and untracked files (including
- # empty directories) since this may not be the last argument.
- __git_complete_index_file "--cached --others --directory"
- else
- __git_complete_index_file "--cached"
- fi
-}
-
-_git_name_rev ()
-{
- __gitcomp "--tags --all --stdin"
-}
-
-_git_notes ()
-{
- local subcommands='add append copy edit list prune remove show'
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
-
- case "$subcommand,$cur" in
- ,--*)
- __gitcomp '--ref'
- ;;
- ,*)
- case "$prev" in
- --ref)
- __gitcomp_nl "$(__git_refs)"
- ;;
- *)
- __gitcomp "$subcommands --ref"
- ;;
- esac
- ;;
- add,--reuse-message=*|append,--reuse-message=*|\
- add,--reedit-message=*|append,--reedit-message=*)
- __gitcomp_nl "$(__git_refs)" "" "${cur#*=}"
- ;;
- add,--*|append,--*)
- __gitcomp '--file= --message= --reedit-message=
- --reuse-message='
- ;;
- copy,--*)
- __gitcomp '--stdin'
- ;;
- prune,--*)
- __gitcomp '--dry-run --verbose'
- ;;
- prune,*)
- ;;
- *)
- case "$prev" in
- -m|-F)
- ;;
- *)
- __gitcomp_nl "$(__git_refs)"
- ;;
- esac
- ;;
- esac
-}
-
-_git_pull ()
-{
- __git_complete_strategy && return
-
- case "$cur" in
- --*)
- __gitcomp "
- --rebase --no-rebase
- $__git_merge_options
- $__git_fetch_options
- "
- return
- ;;
- esac
- __git_complete_remote_or_refspec
-}
-
-_git_push ()
-{
- case "$prev" in
- --repo)
- __gitcomp_nl "$(__git_remotes)"
- return
- esac
- case "$cur" in
- --repo=*)
- __gitcomp_nl "$(__git_remotes)" "" "${cur##--repo=}"
- return
- ;;
- --*)
- __gitcomp "
- --all --mirror --tags --dry-run --force --verbose
- --receive-pack= --repo= --set-upstream
- "
- return
- ;;
- esac
- __git_complete_remote_or_refspec
-}
-
-_git_rebase ()
-{
- local dir="$(__gitdir)"
- if [ -d "$dir"/rebase-apply ] || [ -d "$dir"/rebase-merge ]; then
- __gitcomp "--continue --skip --abort"
- return
- fi
- __git_complete_strategy && return
- case "$cur" in
- --whitespace=*)
- __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}"
- return
- ;;
- --*)
- __gitcomp "
- --onto --merge --strategy --interactive
- --preserve-merges --stat --no-stat
- --committer-date-is-author-date --ignore-date
- --ignore-whitespace --whitespace=
- --autosquash
- "
-
- return
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_reflog ()
-{
- local subcommands="show delete expire"
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
-
- if [ -z "$subcommand" ]; then
- __gitcomp "$subcommands"
- else
- __gitcomp_nl "$(__git_refs)"
- fi
-}
-
-__git_send_email_confirm_options="always never auto cc compose"
-__git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all"
-
-_git_send_email ()
-{
- case "$cur" in
- --confirm=*)
- __gitcomp "
- $__git_send_email_confirm_options
- " "" "${cur##--confirm=}"
- return
- ;;
- --suppress-cc=*)
- __gitcomp "
- $__git_send_email_suppresscc_options
- " "" "${cur##--suppress-cc=}"
-
- return
- ;;
- --smtp-encryption=*)
- __gitcomp "ssl tls" "" "${cur##--smtp-encryption=}"
- return
- ;;
- --thread=*)
- __gitcomp "
- deep shallow
- " "" "${cur##--thread=}"
- return
- ;;
- --*)
- __gitcomp "--annotate --bcc --cc --cc-cmd --chain-reply-to
- --compose --confirm= --dry-run --envelope-sender
- --from --identity
- --in-reply-to --no-chain-reply-to --no-signed-off-by-cc
- --no-suppress-from --no-thread --quiet
- --signed-off-by-cc --smtp-pass --smtp-server
- --smtp-server-port --smtp-encryption= --smtp-user
- --subject --suppress-cc= --suppress-from --thread --to
- --validate --no-validate
- $__git_format_patch_options"
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-_git_stage ()
-{
- _git_add
-}
-
-__git_config_get_set_variables ()
-{
- local prevword word config_file= c=$cword
- while [ $c -gt 1 ]; do
- word="${words[c]}"
- case "$word" in
- --system|--global|--local|--file=*)
- config_file="$word"
- break
- ;;
- -f|--file)
- config_file="$word $prevword"
- break
- ;;
- esac
- prevword=$word
- c=$((--c))
- done
-
- git --git-dir="$(__gitdir)" config $config_file --list 2>/dev/null |
- while read -r line
- do
- case "$line" in
- *.*=*)
- echo "${line/=*/}"
- ;;
- esac
- done
-}
-
-_git_config ()
-{
- case "$prev" in
- branch.*.remote)
- __gitcomp_nl "$(__git_remotes)"
- return
- ;;
- branch.*.merge)
- __gitcomp_nl "$(__git_refs)"
- return
- ;;
- remote.*.fetch)
- local remote="${prev#remote.}"
- remote="${remote%.fetch}"
- if [ -z "$cur" ]; then
- COMPREPLY=("refs/heads/")
- return
- fi
- __gitcomp_nl "$(__git_refs_remotes "$remote")"
- return
- ;;
- remote.*.push)
- local remote="${prev#remote.}"
- remote="${remote%.push}"
- __gitcomp_nl "$(git --git-dir="$(__gitdir)" \
- for-each-ref --format='%(refname):%(refname)' \
- refs/heads)"
- return
- ;;
- pull.twohead|pull.octopus)
- __git_compute_merge_strategies
- __gitcomp "$__git_merge_strategies"
- return
- ;;
- color.branch|color.diff|color.interactive|\
- color.showbranch|color.status|color.ui)
- __gitcomp "always never auto"
- return
- ;;
- color.pager)
- __gitcomp "false true"
- return
- ;;
- color.*.*)
- __gitcomp "
- normal black red green yellow blue magenta cyan white
- bold dim ul blink reverse
- "
- return
- ;;
- help.format)
- __gitcomp "man info web html"
- return
- ;;
- log.date)
- __gitcomp "$__git_log_date_formats"
- return
- ;;
- sendemail.aliasesfiletype)
- __gitcomp "mutt mailrc pine elm gnus"
- return
- ;;
- sendemail.confirm)
- __gitcomp "$__git_send_email_confirm_options"
- return
- ;;
- sendemail.suppresscc)
- __gitcomp "$__git_send_email_suppresscc_options"
- return
- ;;
- --get|--get-all|--unset|--unset-all)
- __gitcomp_nl "$(__git_config_get_set_variables)"
- return
- ;;
- *.*)
- COMPREPLY=()
- return
- ;;
- esac
- case "$cur" in
- --*)
- __gitcomp "
- --system --global --local --file=
- --list --replace-all
- --get --get-all --get-regexp
- --add --unset --unset-all
- --remove-section --rename-section
- "
- return
- ;;
- branch.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "remote merge mergeoptions rebase" "$pfx" "$cur_"
- return
- ;;
- branch.*)
- local pfx="${cur%.*}." cur_="${cur#*.}"
- __gitcomp_nl "$(__git_heads)" "$pfx" "$cur_" "."
- return
- ;;
- guitool.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "
- argprompt cmd confirm needsfile noconsole norescan
- prompt revprompt revunmerged title
- " "$pfx" "$cur_"
- return
- ;;
- difftool.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "cmd path" "$pfx" "$cur_"
- return
- ;;
- man.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "cmd path" "$pfx" "$cur_"
- return
- ;;
- mergetool.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "cmd path trustExitCode" "$pfx" "$cur_"
- return
- ;;
- pager.*)
- local pfx="${cur%.*}." cur_="${cur#*.}"
- __git_compute_all_commands
- __gitcomp_nl "$__git_all_commands" "$pfx" "$cur_"
- return
- ;;
- remote.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "
- url proxy fetch push mirror skipDefaultUpdate
- receivepack uploadpack tagopt pushurl
- " "$pfx" "$cur_"
- return
- ;;
- remote.*)
- local pfx="${cur%.*}." cur_="${cur#*.}"
- __gitcomp_nl "$(__git_remotes)" "$pfx" "$cur_" "."
- return
- ;;
- url.*.*)
- local pfx="${cur%.*}." cur_="${cur##*.}"
- __gitcomp "insteadOf pushInsteadOf" "$pfx" "$cur_"
- return
- ;;
- esac
- __gitcomp "
- add.ignoreErrors
- advice.commitBeforeMerge
- advice.detachedHead
- advice.implicitIdentity
- advice.pushNonFastForward
- advice.resolveConflict
- advice.statusHints
- alias.
- am.keepcr
- apply.ignorewhitespace
- apply.whitespace
- branch.autosetupmerge
- branch.autosetuprebase
- browser.
- clean.requireForce
- color.branch
- color.branch.current
- color.branch.local
- color.branch.plain
- color.branch.remote
- color.decorate.HEAD
- color.decorate.branch
- color.decorate.remoteBranch
- color.decorate.stash
- color.decorate.tag
- color.diff
- color.diff.commit
- color.diff.frag
- color.diff.func
- color.diff.meta
- color.diff.new
- color.diff.old
- color.diff.plain
- color.diff.whitespace
- color.grep
- color.grep.context
- color.grep.filename
- color.grep.function
- color.grep.linenumber
- color.grep.match
- color.grep.selected
- color.grep.separator
- color.interactive
- color.interactive.error
- color.interactive.header
- color.interactive.help
- color.interactive.prompt
- color.pager
- color.showbranch
- color.status
- color.status.added
- color.status.changed
- color.status.header
- color.status.nobranch
- color.status.untracked
- color.status.updated
- color.ui
- commit.status
- commit.template
- core.abbrev
- core.askpass
- core.attributesfile
- core.autocrlf
- core.bare
- core.bigFileThreshold
- core.compression
- core.createObject
- core.deltaBaseCacheLimit
- core.editor
- core.eol
- core.excludesfile
- core.fileMode
- core.fsyncobjectfiles
- core.gitProxy
- core.ignoreCygwinFSTricks
- core.ignoreStat
- core.ignorecase
- core.logAllRefUpdates
- core.loosecompression
- core.notesRef
- core.packedGitLimit
- core.packedGitWindowSize
- core.pager
- core.preferSymlinkRefs
- core.preloadindex
- core.quotepath
- core.repositoryFormatVersion
- core.safecrlf
- core.sharedRepository
- core.sparseCheckout
- core.symlinks
- core.trustctime
- core.warnAmbiguousRefs
- core.whitespace
- core.worktree
- diff.autorefreshindex
- diff.statGraphWidth
- diff.external
- diff.ignoreSubmodules
- diff.mnemonicprefix
- diff.noprefix
- diff.renameLimit
- diff.renames
- diff.suppressBlankEmpty
- diff.tool
- diff.wordRegex
- diff.algorithm
- difftool.
- difftool.prompt
- fetch.recurseSubmodules
- fetch.unpackLimit
- format.attach
- format.cc
- format.headers
- format.numbered
- format.pretty
- format.signature
- format.signoff
- format.subjectprefix
- format.suffix
- format.thread
- format.to
- gc.
- gc.aggressiveWindow
- gc.auto
- gc.autopacklimit
- gc.packrefs
- gc.pruneexpire
- gc.reflogexpire
- gc.reflogexpireunreachable
- gc.rerereresolved
- gc.rerereunresolved
- gitcvs.allbinary
- gitcvs.commitmsgannotation
- gitcvs.dbTableNamePrefix
- gitcvs.dbdriver
- gitcvs.dbname
- gitcvs.dbpass
- gitcvs.dbuser
- gitcvs.enabled
- gitcvs.logfile
- gitcvs.usecrlfattr
- guitool.
- gui.blamehistoryctx
- gui.commitmsgwidth
- gui.copyblamethreshold
- gui.diffcontext
- gui.encoding
- gui.fastcopyblame
- gui.matchtrackingbranch
- gui.newbranchtemplate
- gui.pruneduringfetch
- gui.spellingdictionary
- gui.trustmtime
- help.autocorrect
- help.browser
- help.format
- http.lowSpeedLimit
- http.lowSpeedTime
- http.maxRequests
- http.minSessions
- http.noEPSV
- http.postBuffer
- http.proxy
- http.sslCAInfo
- http.sslCAPath
- http.sslCert
- http.sslCertPasswordProtected
- http.sslKey
- http.sslVerify
- http.useragent
- i18n.commitEncoding
- i18n.logOutputEncoding
- imap.authMethod
- imap.folder
- imap.host
- imap.pass
- imap.port
- imap.preformattedHTML
- imap.sslverify
- imap.tunnel
- imap.user
- init.templatedir
- instaweb.browser
- instaweb.httpd
- instaweb.local
- instaweb.modulepath
- instaweb.port
- interactive.singlekey
- log.date
- log.decorate
- log.showroot
- mailmap.file
- man.
- man.viewer
- merge.
- merge.conflictstyle
- merge.log
- merge.renameLimit
- merge.renormalize
- merge.stat
- merge.tool
- merge.verbosity
- mergetool.
- mergetool.keepBackup
- mergetool.keepTemporaries
- mergetool.prompt
- notes.displayRef
- notes.rewrite.
- notes.rewrite.amend
- notes.rewrite.rebase
- notes.rewriteMode
- notes.rewriteRef
- pack.compression
- pack.deltaCacheLimit
- pack.deltaCacheSize
- pack.depth
- pack.indexVersion
- pack.packSizeLimit
- pack.threads
- pack.window
- pack.windowMemory
- pager.
- pretty.
- pull.octopus
- pull.twohead
- push.default
- rebase.autosquash
- rebase.stat
- receive.autogc
- receive.denyCurrentBranch
- receive.denyDeleteCurrent
- receive.denyDeletes
- receive.denyNonFastForwards
- receive.fsckObjects
- receive.unpackLimit
- receive.updateserverinfo
- remotes.
- repack.usedeltabaseoffset
- rerere.autoupdate
- rerere.enabled
- sendemail.
- sendemail.aliasesfile
- sendemail.aliasfiletype
- sendemail.bcc
- sendemail.cc
- sendemail.cccmd
- sendemail.chainreplyto
- sendemail.confirm
- sendemail.envelopesender
- sendemail.from
- sendemail.identity
- sendemail.multiedit
- sendemail.signedoffbycc
- sendemail.smtpdomain
- sendemail.smtpencryption
- sendemail.smtppass
- sendemail.smtpserver
- sendemail.smtpserveroption
- sendemail.smtpserverport
- sendemail.smtpuser
- sendemail.suppresscc
- sendemail.suppressfrom
- sendemail.thread
- sendemail.to
- sendemail.validate
- showbranch.default
- status.relativePaths
- status.showUntrackedFiles
- status.submodulesummary
- submodule.
- tar.umask
- transfer.unpackLimit
- url.
- user.email
- user.name
- user.signingkey
- web.browser
- branch. remote.
- "
-}
-
-_git_remote ()
-{
- local subcommands="add rename remove set-head set-branches set-url show prune update"
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
- if [ -z "$subcommand" ]; then
- __gitcomp "$subcommands"
- return
- fi
-
- case "$subcommand" in
- rename|remove|set-url|show|prune)
- __gitcomp_nl "$(__git_remotes)"
- ;;
- set-head|set-branches)
- __git_complete_remote_or_refspec
- ;;
- update)
- local i c='' IFS=$'\n'
- for i in $(git --git-dir="$(__gitdir)" config --get-regexp "remotes\..*" 2>/dev/null); do
- i="${i#remotes.}"
- c="$c ${i/ */}"
- done
- __gitcomp "$c"
- ;;
- *)
- COMPREPLY=()
- ;;
- esac
-}
-
-_git_replace ()
-{
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_reset ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --*)
- __gitcomp "--merge --mixed --hard --soft --patch"
- return
- ;;
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_revert ()
-{
- case "$cur" in
- --*)
- __gitcomp "--edit --mainline --no-edit --no-commit --signoff"
- return
- ;;
- esac
- __gitcomp_nl "$(__git_refs)"
-}
-
-_git_rm ()
-{
- case "$cur" in
- --*)
- __gitcomp "--cached --dry-run --ignore-unmatch --quiet"
- return
- ;;
- esac
-
- __git_complete_index_file "--cached"
-}
-
-_git_shortlog ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --*)
- __gitcomp "
- $__git_log_common_options
- $__git_log_shortlog_options
- --numbered --summary
- "
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-_git_show ()
-{
- __git_has_doubledash && return
-
- case "$cur" in
- --pretty=*|--format=*)
- __gitcomp "$__git_log_pretty_formats $(__git_pretty_aliases)
- " "" "${cur#*=}"
- return
- ;;
- --diff-algorithm=*)
- __gitcomp "$__git_diff_algorithms" "" "${cur##--diff-algorithm=}"
- return
- ;;
- --*)
- __gitcomp "--pretty= --format= --abbrev-commit --oneline
- $__git_diff_common_options
- "
- return
- ;;
- esac
- __git_complete_file
-}
-
-_git_show_branch ()
-{
- case "$cur" in
- --*)
- __gitcomp "
- --all --remotes --topo-order --current --more=
- --list --independent --merge-base --no-name
- --color --no-color
- --sha1-name --sparse --topics --reflog
- "
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-_git_stash ()
-{
- local save_opts='--keep-index --no-keep-index --quiet --patch'
- local subcommands='save list show apply clear drop pop create branch'
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
- if [ -z "$subcommand" ]; then
- case "$cur" in
- --*)
- __gitcomp "$save_opts"
- ;;
- *)
- if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then
- __gitcomp "$subcommands"
- else
- COMPREPLY=()
- fi
- ;;
- esac
- else
- case "$subcommand,$cur" in
- save,--*)
- __gitcomp "$save_opts"
- ;;
- apply,--*|pop,--*)
- __gitcomp "--index --quiet"
- ;;
- show,--*|drop,--*|branch,--*)
- COMPREPLY=()
- ;;
- show,*|apply,*|drop,*|pop,*|branch,*)
- __gitcomp_nl "$(git --git-dir="$(__gitdir)" stash list \
- | sed -n -e 's/:.*//p')"
- ;;
- *)
- COMPREPLY=()
- ;;
- esac
- fi
-}
-
-_git_submodule ()
-{
- __git_has_doubledash && return
-
- local subcommands="add status init update summary foreach sync"
- if [ -z "$(__git_find_on_cmdline "$subcommands")" ]; then
- case "$cur" in
- --*)
- __gitcomp "--quiet --cached"
- ;;
- *)
- __gitcomp "$subcommands"
- ;;
- esac
- return
- fi
-}
-
-_git_svn ()
-{
- local subcommands="
- init fetch clone rebase dcommit log find-rev
- set-tree commit-diff info create-ignore propget
- proplist show-ignore show-externals branch tag blame
- migrate mkdirs reset gc
- "
- local subcommand="$(__git_find_on_cmdline "$subcommands")"
- if [ -z "$subcommand" ]; then
- __gitcomp "$subcommands"
- else
- local remote_opts="--username= --config-dir= --no-auth-cache"
- local fc_opts="
- --follow-parent --authors-file= --repack=
- --no-metadata --use-svm-props --use-svnsync-props
- --log-window-size= --no-checkout --quiet
- --repack-flags --use-log-author --localtime
- --ignore-paths= $remote_opts
- "
- local init_opts="
- --template= --shared= --trunk= --tags=
- --branches= --stdlayout --minimize-url
- --no-metadata --use-svm-props --use-svnsync-props
- --rewrite-root= --prefix= --use-log-author
- --add-author-from $remote_opts
- "
- local cmt_opts="
- --edit --rmdir --find-copies-harder --copy-similarity=
- "
-
- case "$subcommand,$cur" in
- fetch,--*)
- __gitcomp "--revision= --fetch-all $fc_opts"
- ;;
- clone,--*)
- __gitcomp "--revision= $fc_opts $init_opts"
- ;;
- init,--*)
- __gitcomp "$init_opts"
- ;;
- dcommit,--*)
- __gitcomp "
- --merge --strategy= --verbose --dry-run
- --fetch-all --no-rebase --commit-url
- --revision --interactive $cmt_opts $fc_opts
- "
- ;;
- set-tree,--*)
- __gitcomp "--stdin $cmt_opts $fc_opts"
- ;;
- create-ignore,--*|propget,--*|proplist,--*|show-ignore,--*|\
- show-externals,--*|mkdirs,--*)
- __gitcomp "--revision="
- ;;
- log,--*)
- __gitcomp "
- --limit= --revision= --verbose --incremental
- --oneline --show-commit --non-recursive
- --authors-file= --color
- "
- ;;
- rebase,--*)
- __gitcomp "
- --merge --verbose --strategy= --local
- --fetch-all --dry-run $fc_opts
- "
- ;;
- commit-diff,--*)
- __gitcomp "--message= --file= --revision= $cmt_opts"
- ;;
- info,--*)
- __gitcomp "--url"
- ;;
- branch,--*)
- __gitcomp "--dry-run --message --tag"
- ;;
- tag,--*)
- __gitcomp "--dry-run --message"
- ;;
- blame,--*)
- __gitcomp "--git-format"
- ;;
- migrate,--*)
- __gitcomp "
- --config-dir= --ignore-paths= --minimize
- --no-auth-cache --username=
- "
- ;;
- reset,--*)
- __gitcomp "--revision= --parent"
- ;;
- *)
- COMPREPLY=()
- ;;
- esac
- fi
-}
-
-_git_tag ()
-{
- local i c=1 f=0
- while [ $c -lt $cword ]; do
- i="${words[c]}"
- case "$i" in
- -d|-v)
- __gitcomp_nl "$(__git_tags)"
- return
- ;;
- -f)
- f=1
- ;;
- esac
- ((c++))
- done
-
- case "$prev" in
- -m|-F)
- COMPREPLY=()
- ;;
- -*|tag)
- if [ $f = 1 ]; then
- __gitcomp_nl "$(__git_tags)"
- else
- COMPREPLY=()
- fi
- ;;
- *)
- __gitcomp_nl "$(__git_refs)"
- ;;
- esac
-}
-
-_git_whatchanged ()
-{
- _git_log
-}
-
-__git_main ()
-{
- local i c=1 command __git_dir
-
- while [ $c -lt $cword ]; do
- i="${words[c]}"
- case "$i" in
- --git-dir=*) __git_dir="${i#--git-dir=}" ;;
- --bare) __git_dir="." ;;
- --help) command="help"; break ;;
- -c) c=$((++c)) ;;
- -*) ;;
- *) command="$i"; break ;;
- esac
- ((c++))
- done
-
- if [ -z "$command" ]; then
- case "$cur" in
- --*) __gitcomp "
- --paginate
- --no-pager
- --git-dir=
- --bare
- --version
- --exec-path
- --exec-path=
- --html-path
- --info-path
- --work-tree=
- --namespace=
- --no-replace-objects
- --help
- "
- ;;
- *) __git_compute_porcelain_commands
- __gitcomp "$__git_porcelain_commands $(__git_aliases)" ;;
- esac
- return
- fi
-
- local completion_func="_git_${command//-/_}"
- declare -f $completion_func >/dev/null && $completion_func && return
-
- local expansion=$(__git_aliased_command "$command")
- if [ -n "$expansion" ]; then
- completion_func="_git_${expansion//-/_}"
- declare -f $completion_func >/dev/null && $completion_func
- fi
-}
-
-__gitk_main ()
-{
- __git_has_doubledash && return
-
- local g="$(__gitdir)"
- local merge=""
- if [ -f "$g/MERGE_HEAD" ]; then
- merge="--merge"
- fi
- case "$cur" in
- --*)
- __gitcomp "
- $__git_log_common_options
- $__git_log_gitk_options
- $merge
- "
- return
- ;;
- esac
- __git_complete_revlist
-}
-
-if [[ -n ${ZSH_VERSION-} ]]; then
- echo "WARNING: this script is deprecated, please see git-completion.zsh" 1>&2
-
- autoload -U +X compinit && compinit
-
- __gitcomp ()
- {
- emulate -L zsh
-
- local cur_="${3-$cur}"
-
- case "$cur_" in
- --*=)
- ;;
- *)
- local c IFS=$' \t\n'
- local -a array
- for c in ${=1}; do
- c="$c${4-}"
- case $c in
- --*=*|*.) ;;
- *) c="$c " ;;
- esac
- array[$#array+1]="$c"
- done
- compset -P '*[=:]'
- compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
- ;;
- esac
- }
-
- __gitcomp_nl ()
- {
- emulate -L zsh
-
- local IFS=$'\n'
- compset -P '*[=:]'
- compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
- }
-
- __gitcomp_file ()
- {
- emulate -L zsh
-
- local IFS=$'\n'
- compset -P '*[=:]'
- compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
- }
-
- __git_zsh_helper ()
- {
- emulate -L ksh
- local cur cword prev
- cur=${words[CURRENT-1]}
- prev=${words[CURRENT-2]}
- let cword=CURRENT-1
- __${service}_main
- }
-
- _git ()
- {
- emulate -L zsh
- local _ret=1
- __git_zsh_helper
- let _ret && _default -S '' && _ret=0
- return _ret
- }
-
- compdef _git git gitk
- return
-elif [[ -n ${BASH_VERSION-} ]]; then
- if ((${BASH_VERSINFO[0]} < 4)); then
- # compopt is not supported
- __git_index_file_list_filter ()
- {
- __git_index_file_list_filter_compat
- }
- fi
-fi
-
-__git_func_wrap ()
-{
- local cur words cword prev
- _get_comp_words_by_ref -n =: cur words cword prev
- $1
-}
-
-# Setup completion for certain functions defined above by setting common
-# variables and workarounds.
-# This is NOT a public function; use at your own risk.
-__git_complete ()
-{
- local wrapper="__git_wrap${2}"
- eval "$wrapper () { __git_func_wrap $2 ; }"
- complete -o bashdefault -o default -o nospace -F $wrapper $1 2>/dev/null \
- || complete -o default -o nospace -F $wrapper $1
-}
-
-# wrapper for backwards compatibility
-_git ()
-{
- __git_wrap__git_main
-}
-
-# wrapper for backwards compatibility
-_gitk ()
-{
- __git_wrap__gitk_main
-}
-
-__git_complete git __git_main
-__git_complete gitk __gitk_main
-
-# The following are necessary only for Cygwin, and only are needed
-# when the user has tab-completed the executable name and consequently
-# included the '.exe' suffix.
-#
-if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then
-__git_complete git.exe __git_main
-fi
diff --git a/bash_completion/repo.bash b/bash_completion/repo.bash
deleted file mode 100644
index 9ae5e00f..00000000
--- a/bash_completion/repo.bash
+++ /dev/null
@@ -1,655 +0,0 @@
-# -*- mode: sh; -*-
-
-declare -A CMD_HANDLERS
-CMD_HANDLERS=(
- ["init"]=_repo_init
- ["help"]=_repo_help
- ["abandon"]=_repo_abandon
- ["branch"]=_repo_branch
- ["branches"]=_repo_branches
- ["checkout"]=_repo_checkout
- ["cherry-pick"]=_repo_cherry_pick
- ["diff"]=_repo_diff
- ["download"]=_repo_download
- ["forall"]=_repo_forall
- ["grep"]=_repo_grep
- ["list"]=_repo_list
- ["prune"]=_repo_prune
- ["rebase"]=_repo_rebase
- ["selfupdate"]=_repo_selfupdate
- ["smartsync"]=_repo_smartsync
- ["stage"]=_repo_stage
- ["start"]=_repo_start
- ["status"]=_repo_status
- ["sync"]=_repo_sync
- ["upload"]=_repo_upload
- ["version"]=_repo_version
-)
-
-# To be populated by command handlers.
-declare -a OPTIONS
-declare -A ARG_OPTIONS
-
-declare cur
-declare prev
-
-_init_cur_prev() {
- cur=$(_get_cword "=")
- prev=$(_get_cword "=" 1)
-
- _split_longopt
-}
-
-_find_repo() {
- local dir=$(pwd)
- local found=1
-
- while [ "${dir}" != / ]
- do
- if [ -e "${dir}/.repo/repo/main.py" ]
- then
- found=0
- break
- fi
-
- dir=$(cd "${dir}/.." && pwd)
- done
-
- if [ ${found} -eq 0 ]
- then
- echo "${dir}"
- fi
-}
-
-_is_repo_dir() {
- local repo_root=$(_find_repo)
-
- [ -n "${repo_root}" ]
-}
-
-_gen_comps() {
- local completions="$1"
- local suffix="${2:- }"
-
- local -i i
- local -a tmp=( $(compgen -W "${completions}" -- ${cur}) )
-
- for (( i=0; i < ${#tmp[*]}; i++ ))
- do
- tmp[$i]="${tmp[$i]}${suffix}"
- done
-
- COMPREPLY=(
- "${COMPREPLY[@]}"
- "${tmp[@]}"
- )
-}
-
-_strip_colors () {
- # taken from http://goo.gl/7KlLZ
- sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
-}
-
-_no_completion() {
- true
-}
-
-_command_completion() {
- local cmds
-
- if _is_repo_dir
- then
- cmds=("abandon" "branch" "branches" "checkout" "cherry-pick" "diff"
- "download" "forall" "grep" "help" "init" "list" "prune" "rebase"
- "selfupdate" "smartsync" "stage" "start" "status" "sync"
- "upload" "version")
- else
- cmds=("help" "init")
- fi
-
- _gen_comps "${cmds[*]}"
-}
-
-_branch_completion() {
- local raw_branches
-
- # separate statement required to be able to access exit code
- raw_branches=$(repo branches 2>/dev/null)
-
- if [ $? -eq 0 ]
- then
- local branches=$(
- echo "${raw_branches}" |
- _strip_colors | awk 'BEGIN { FS="|" } { print $1 }' | cut -c 3-
- )
-
- _gen_comps "${branches}"
- fi
-}
-
-_dir_completion() {
- _filedir -d
-}
-
-_project_completion() {
- local repo_root=$(_find_repo)
-
- if [ -n "${repo_root}" -a -f "${repo_root}/.repo/project.list" ]
- then
- local projects=$(cat "${repo_root}/.repo/project.list")
- _gen_comps "${projects}"
- fi
-}
-
-_manifest_completion() {
- local repo_root=$(_find_repo)
-
- if [ -n "${repo_root}" ]
- then
- local manifests_dir="${repo_root}/.repo/manifests"
- local git_dir="${manifests_dir}/.git"
- local candidates
-
- manifests=$(
- git --git-dir "${git_dir}" ls-files "*.xml" 2>/dev/null)
-
- if [ $? -eq 0 ]
- then
- _gen_comps "${manifests}"
- fi
- fi
-}
-
-_path_cmd_completion() {
- _gen_comps "$(compgen -c ${cur})"
-}
-
-_is_option() {
- local opt="$1"
-
- [[ "${opt}" == -* ]]
-}
-
-_is_long_option() {
- local opt="$1"
-
- [[ "${opt}" == --* ]]
-}
-
-_expects_arg() {
- local opt="$1"
-
- if [[ ${ARG_OPTIONS[$opt]} ]]
- then
- return 0
- else
- return 1
- fi
-}
-
-_handle_options() {
- if _expects_arg "${prev}"
- then
- local handler=${ARG_OPTIONS[$prev]}
- eval ${handler} "${cur}"
- elif _is_option "${cur}"
- then
- _gen_comps "${OPTIONS[*]}"
-
- local arg_short
- local arg_long
-
- for opt in "${!ARG_OPTIONS[@]}"
- do
- if _is_long_option "${opt}"
- then
- arg_long="${arg_long} ${opt}"
- else
- arg_short="${arg_short} ${opt}"
- fi
- done
-
- _gen_comps "${arg_short}"
- _gen_comps "${arg_long}" "="
- else
- return 1
- fi
-
- return 0
-}
-
-_is_known_shortopt() {
- local needle="$1"
-
- for opt in ${OPTIONS[@]}
- do
- if [ "${opt}" = "${needle}" ]
- then
- return 0
- fi
- done
-
- return 1
-}
-
-_is_known_longopt() {
- local needle="$1"
-
- [[ ${ARG_OPTIONS[$1]} ]]
-}
-
-_arg_index() {
- local -i i=2 # skip repo and command
- local -i ix=0
-
- while [ ${i} -lt ${COMP_CWORD} ]
- do
- if _is_known_shortopt "${COMP_WORDS[i]}"
- then
- i+=1
- elif _is_known_longopt "${COMP_WORDS[i]}"
- then
- i+=2
- elif _is_option "${COMP_WORDS[i]}"
- then
- i+=1
- else
- i+=1
- ix+=1
- fi
- done
-
- eval $1="${ix}"
-}
-
-_when_ix() {
- local ix="$1"
- local completion="$2"
-
- _arg_index arg_ix
-
- if [ ${arg_ix} -eq ${ix} ]
- then
- ${completion}
- return 0
- else
- return 1
- fi
-}
-
-_when_first() {
- _when_ix 0 "$1"
-}
-
-_when_even() {
- local completion="$1"
-
- _arg_index arg_ix
-
- if [ $(( ${arg_ix} % 2 )) -eq 0 ]
- then
- ${completion}
- return 0
- else
- return 1
- fi
-}
-
-_cmp_opts() {
- local opt="$1"
- local word="$2"
-
- if _is_option "${opt}" && ! _is_long_option "${opt}"
- then
- [ "${word}" == "${opt}" ]
- else
- [[ "${word}" == "${opt}"=* || "${word}" == "${opt}" ]]
- fi
-}
-
-_before() {
- local completion="$1"
- local words
-
- shift
-
- _get_comp_words_by_ref -n = words
-
- for word in "${words[@]}"
- do
- for needle in "$@"
- do
- if _cmp_opts "${needle}" "${word}"
- then
- return 1
- fi
- done
- done
-
- ${completion}
- return 0
-}
-
-_repo_init() {
- OPTIONS=(
- "-h" "--help"
- "-q" "--quite"
- "--mirror"
- "--no-repo-verify"
- )
-
- ARG_OPTIONS=(
- ["-u"]=_no_completion
- ["--manifest-url"]=_no_completion
- ["-b"]=_no_completion
- ["--manifest-branch"]=_no_completion
- ["-m"]=_manifest_completion
- ["--manifest-name"]=_manifest_completion
- ["--reference"]=_dir_completion
- ["--repo-url"]=_no_completion
- ["--repo-branch"]=_no_completion
- )
-
- _handle_options
-}
-
-_repo_help() {
- OPTIONS=(
- "-a" "--all"
- "-h" "--help"
- )
-
- ARG_OPTIONS=()
-
- _handle_options || _when_first _command_completion
-}
-
-_repo_abandon() {
- OPTIONS=(
- "-h" "--help"
- )
-
- ARG_OPTIONS=()
-
- _handle_options || _when_first _branch_completion || _project_completion
-}
-
-_repo_branch() {
- OPTIONS=(
- "-h" "--help"
- )
-
- ARG_OPTIONS=()
-
- _handle_options
-}
-
-_repo_branches() {
- OPTIONS=(
- "-h" "--help"
- )
-
- ARG_OPTIONS=()
-
- _handle_options
-}
-
-_repo_checkout() {
- OPTIONS=(
- "-h" "--help"
- )
-
- ARG_OPTIONS=()
-
- _handle_options || _when_first _branch_completion || _project_completion
-}
-
-_repo_cherry_pick() {
- OPTIONS=(
- "-h" "--help"
- )
-
- ARG_OPTIONS=()
-
- _handle_options
-}
-
-_repo_diff() {
- OPTIONS=(
- "-h" "--help"
- )
-
- ARG_OPTIONS=()
-
- _handle_options || _project_completion
-}
-
-_repo_download() {
- OPTIONS=(
- "-h" "--help"
- )
-
- ARG_OPTIONS=()
-
- _handle_options || _when_even _project_completion
-}
-
-_repo_forall() {
- OPTIONS=(
- "-h" "--help"
- "-p"
- "-v" "--verbose"
- )
-
- ARG_OPTIONS=(
- ["-c"]=_path_cmd_completion
- ["--command"]=_path_cmd_completion
- )
-
- _handle_options || _before _project_completion -c --command || _filedir
-}
-
-_repo_grep() {
- OPTIONS=(
- "-h" "--help"
- "--cached"
- "-r" "--revision"
- "-i" "--ignore-case"
- "-a" "--text"
- "-I"
- "-w" "--word-regexp"
- "-v" "--invert-match"
- "-G" "--basic-regexp"
- "-E" "--extended-regexp"
- "-F" "--fixed-strings"
- "--all-match"
- "--and" "--or" "--not"
- "-(" "-)"
- "-n"
- "-l" "--name-only" "--files-with-matches"
- "-L" "--files-without-match"
- )
-
- ARG_OPTIONS=(
- ["-e"]=_no_completion
- ["-C"]=_no_completion
- ["-B"]=_no_completion
- ["-A"]=_no_completion
- )
-
- _handle_options || _project_completion
-}
-
-_repo_list() {
- OPTIONS=(
- "-h" "--help"
- )
-
- ARG_OPTIONS=()
-
- _handle_options || _project_completion
-}
-
-_repo_prune() {
- OPTIONS=(
- "-h" "--help"
- )
-
- ARG_OPTIONS=()
-
- _handle_options || _project_completion
-}
-
-_repo_rebase() {
- OPTIONS=(
- "-h" "--help"
- "-i" "--interactive"
- "-f" "--force-rebase"
- "--no-ff"
- "-q" "--quiet"
- "--autosquash"
- )
-
- ARG_OPTIONS=(
- ["--whitespace"]=_no_completion
- )
-
- _handle_options || _project_completion
-}
-
-_repo_selfupdate() {
- OPTIONS=(
- "-h" "--help"
- "--no-repo-verify"
- )
-
- ARG_OPTIONS=()
-
- _handle_options
-}
-
-_repo_smartsync() {
- OPTIONS=(
- "-h" "--help"
- "-f" "--force-broken"
- "-l" "--local-only"
- "-n" "--network-only"
- "-d" "--detach"
- "-q" "--quiet"
- "--no-repo-verify"
- )
-
- ARG_OPTIONS=(
- ["-j"]=_no_completion
- ["--jobs"]=_no_completion
-
- )
-
- _handle_options || _project_completion
-}
-
-_repo_stage() {
- OPTIONS=(
- "-h" "--help"
- "-i" "--interactive"
- )
-
- ARG_OPTIONS=()
-
- _handle_options || _project_completion
-}
-
-_repo_start() {
- OPTIONS=(
- "-h" "--help"
- "--all"
- )
-
- ARG_OPTIONS=()
-
- _handle_options || _when_first _branch_completion || _project_completion
-}
-
-_repo_status() {
- OPTIONS=(
- "-h" "--help"
- )
-
- ARG_OPTIONS=(
- ["-j"]=_no_completion
- ["--jobs"]=_no_completion
- )
-
- _handle_options || _project_completion
-}
-
-_repo_sync() {
- OPTIONS=(
- "-h" "--help"
- "-f" "--force-broken"
- "--force-sync"
- "-l" "--local-only"
- "-n" "--network-only"
- "-d" "--detach"
- "-q" "--quiet"
- "-s" "--smart-sync"
- "--no-repo-verify"
- )
-
- ARG_OPTIONS=(
- ["-j"]=_no_completion
- ["--jobs"]=_no_completion
- )
-
- _handle_options || _project_completion
-}
-
-_repo_upload() {
- OPTIONS=(
- "-h" "--help"
- "-t"
- "--no-verify"
- "--verify"
- )
-
- ARG_OPTIONS=(
- ["--re"]=_no_completion
- ["--reviewers"]=_no_completion
- ["--cc"]=_no_completion
- ["--br"]=_branch_completion
- )
-
- _handle_options || _project_completion
-}
-
-_repo_version() {
- OPTIONS=(
- "-h" "--help"
- )
-
- ARG_OPTIONS=()
-
- _handle_options
-}
-
-_repo() {
- COMPREPLY=()
-
- _init_cur_prev
-
- if [ ${COMP_CWORD} -eq 1 ]
- then
- _command_completion
- else
- local cmd=${COMP_WORDS[1]}
- local handler=${CMD_HANDLERS["${cmd}"]}
- if [ -n ${handler} ]
- then
- eval ${handler}
- fi
- fi
-
- return 0
-}
-
-complete -o nospace -F _repo repo
diff --git a/bootanimation/Android.mk b/bootanimation/Android.mk
deleted file mode 100644
index 7eaf96c4..00000000
--- a/bootanimation/Android.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-#
-# Copyright (C) 2016 The CyanogenMod Project
-# 2017 The LineageOS 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.
-#
-
-ifeq ($(TARGET_SCREEN_WIDTH),)
- $(warning TARGET_SCREEN_WIDTH is not set, using default value: 1080)
- TARGET_SCREEN_WIDTH := 1080
-endif
-ifeq ($(TARGET_SCREEN_HEIGHT),)
- $(warning TARGET_SCREEN_HEIGHT is not set, using default value: 1920)
- TARGET_SCREEN_HEIGHT := 1920
-endif
-
-define build-bootanimation
- $(shell) vendor/lineage/bootanimation/generate-bootanimation.sh \
- $(PRODUCT_OUT) \
- $(TARGET_SCREEN_WIDTH) \
- $(TARGET_SCREEN_HEIGHT) \
- $(TARGET_BOOTANIMATION_HALF_RES)
-endef
-
-TARGET_GENERATED_BOOTANIMATION := $(TARGET_OUT_INTERMEDIATES)/BOOTANIMATION/bootanimation.zip
-$(TARGET_GENERATED_BOOTANIMATION):
- @echo "Building bootanimation"
- $(build-bootanimation)
-
-ifeq ($(TARGET_BOOTANIMATION),)
- TARGET_BOOTANIMATION := $(TARGET_GENERATED_BOOTANIMATION)
- ifeq ($(shell command -v mogrify),)
- $(info **********************************************)
- $(info The boot animation could not be generated as)
- $(info ImageMagick is not installed in your system.)
- $(info $(space))
- $(info Please install ImageMagick from this website:)
- $(info https://imagemagick.org/script/binary-releases.php)
- $(info **********************************************)
- $(error stop)
- endif
-endif
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := bootanimation.zip
-LOCAL_MODULE_CLASS := ETC
-LOCAL_MODULE_PATH := $(TARGET_OUT)/media
-
-include $(BUILD_SYSTEM)/base_rules.mk
-
-$(LOCAL_BUILT_MODULE): $(TARGET_BOOTANIMATION)
- @mkdir -p $(dir $@)
- @cp $(TARGET_BOOTANIMATION) $@
diff --git a/bootanimation/CleanSpec.mk b/bootanimation/CleanSpec.mk
deleted file mode 100644
index a32a8837..00000000
--- a/bootanimation/CleanSpec.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# Copyright (C) 2017 The LineageOS 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.
-#
-
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/BOOTANIMATION)
diff --git a/bootanimation/bootanimation.tar b/bootanimation/bootanimation.tar
deleted file mode 100644
index 7e4b0dc9..00000000
--- a/bootanimation/bootanimation.tar
+++ /dev/null
Binary files differ
diff --git a/bootanimation/desc.txt b/bootanimation/desc.txt
deleted file mode 100644
index 5ddacd6b..00000000
--- a/bootanimation/desc.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-c 1 0 part0
-c 0 0 part1
-c 1 0 part2
-c 1 1 part3
-c 1 0 part4
diff --git a/bootanimation/generate-bootanimation.sh b/bootanimation/generate-bootanimation.sh
deleted file mode 100755
index 41d8c022..00000000
--- a/bootanimation/generate-bootanimation.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/bash
-
-PRODUCT_OUT="$1"
-WIDTH="$2"
-HEIGHT="$3"
-HALF_RES="$4"
-
-OUT="$PRODUCT_OUT/obj/BOOTANIMATION"
-
-if [ "$HEIGHT" -lt "$WIDTH" ]; then
- IMAGEWIDTH="$HEIGHT"
-else
- IMAGEWIDTH="$WIDTH"
-fi
-
-IMAGESCALEWIDTH="$IMAGEWIDTH"
-IMAGESCALEHEIGHT=$(expr $IMAGESCALEWIDTH / 3)
-
-if [ "$HALF_RES" = "true" ]; then
- IMAGEWIDTH=$(expr $IMAGEWIDTH / 2)
-fi
-
-IMAGEHEIGHT=$(expr $IMAGEWIDTH / 3)
-
-RESOLUTION=""$IMAGEWIDTH"x"$IMAGEHEIGHT""
-
-for part_cnt in 0 1 2 3 4
-do
- mkdir -p "$OUT/bootanimation/part$part_cnt"
-done
-tar xfp "vendor/lineage/bootanimation/bootanimation.tar" -C "$OUT/bootanimation/"
-mogrify -resize $RESOLUTION -colors 250 "$OUT/bootanimation/"*"/"*".png"
-
-# Create desc.txt
-echo "$IMAGESCALEWIDTH $IMAGESCALEHEIGHT" 60 > "$OUT/bootanimation/desc.txt"
-cat "vendor/lineage/bootanimation/desc.txt" >> "$OUT/bootanimation/desc.txt"
-
-# Create bootanimation.zip
-cd "$OUT/bootanimation"
-
-zip -qr0 "$OUT/bootanimation.zip" .
diff --git a/build/core/apicheck_msg_current.txt b/build/core/apicheck_msg_current.txt
deleted file mode 100644
index b02dd0a4..00000000
--- a/build/core/apicheck_msg_current.txt
+++ /dev/null
@@ -1,147 +0,0 @@
-
-******************************
-You have tried to change the API from what has been previously approved.
-
-STOP.
- Read this:
- https://github.com/LineageOS/android_lineage-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 (locally) by executing the following command:
- make update-lineage-api
-
- ^^^^^^^^^^^^^^^^^^
- CONGRATS YOU EARNED A STINKEYE FROM CID!
-
-
- . ``
- `+++++ ;++++'
- +++++++ ;++++++'
- ++++++++, ++++++++
- +++++++++ :++++++++`
- +++++++++ +++++++++`
- ++++++++++ +++++++++
- +++++++++ ++++++++++
- +++++++++: +++++++++
- :+++++++++ ;+++++++++
- +++++++++` +++++++++,
- ++++++++++ `+++++++++
- +++++++++ ++++++++++
- +++++++++; +++++++++
- ,+++++++++ '+++++++++
- +++++++++. +++++++++,
- '+++++++++ .+++++++++
- +++++++++ +++++++++'
- +++++++++' +++++++++
- .+++++++++ '+++++++++
- +++++++++, +++++++++.
- ;+++++++++ ,+++++++++
- +++++++++ +++++++++;
- ++++++++++ .,;;+++++++++++++++++++++++++++++++++;,,. +++++++++
- `+++++++++ ,;++++++++++++++++++++++++++++++++++++++++++++++++++++++++',` ++++++++++
- +++++++++, :++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;. +++++++++`
- ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++:
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ,+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- :+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;
- ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++`
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++`
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ,+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- `+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ,+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'. ,+++++++++++++++++++++++++++.
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++' .++++++++++++++++++++++++.
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++' `++++++++++++++++++++++.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ;++++++++++++++++++++.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++' +++++++++++++++++++.
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; ++++++++++++++++++.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; +++++++++++++++++.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++.
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ;+++++++++++++++.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++` +++++++++++++++.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++.
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++.
- ++++++++++++++++++ .,;+++++++++++++++++++++++++++++++++++++++++++++++++++++ .+++++++++++++.
- ++++++++++++++++++ .,;++++++++++++++++++++++++++++++++++++++: +++++++++++++.
- ++++++++++++++++++ .,+++++++++++++++++++++++++ +++++++++++++.
- +++++++++++++++++. +++++++++++++++++++++++++ ,++++++++++++.
- +++++++++++++++++ ;++++++++++++++++++++++++ ++++++++++++.
- +++++++++++++++++ ,+++++++++++++++++++++++; ++++++++++++.
- +++++++++++++++++ .+++++++++++++++++++++++, ++++++++++++.
- +++++++++++++++++ .+++++++++++++++++++++++, ++++++++++++.
- +++++++++++++++++ .+++++++++++++++++++++++, ++++++++++++.
- +++++++++++++++++ :+++++++++++++++++++++++; ++++++++++++.
- +++++++++++++++++` +++++++++++++++++++++++++ ++++++++++++.
- +++++++++++++++++; +++++++++++++++++++++++++ ++++++++++++.
- ++++++++++++++++++ +++++++++++++++++++++++++ ;++++++++++++.
- ++++++++++++++++++ ,+++++++++++++++++++++++++ +++++++++++++.
- ++++++++++++++++++: ++++++++++++++++++++++++++' +++++++++++++.
- +++++++++++++++++++ +++++++++++++++++++++++++++ ;+++++++++++++.
- +++++++++++++++++++, ++++++++++++++++++++++++++++, ++++++++++++++.
- ++++++++++++++++++++ +++++++++++++++++++++++++++++ ;++++++++++++++.
- ++++++++++++++++++++' ++++++++++++++++++++++++++++++' +++++++++++++++.
- +++++++++++++++++++++, ++++++++++++++++++++++++++++++++ ++++++++++++++++.
- ++++++++++++++++++++++ ;+++++++++++++++++++++++++++++++++ '++++++++++++++++.
- +++++++++++++++++++++++ ;+++++++++++++++++++++++++++++++++++ :+++++++++++++++++.
- ++++++++++++++++++++++++, '+++++++++++++++++++++++++++++++++++++ ;++++++++++++++++++.
- +++++++++++++++++++++++++' ++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++.
- +++++++++++++++++++++++++++, '++++++++++++++++++++++++++++++++++++++++++' +++++++++++++++++++++.
- +++++++++++++++++++++++++++++: '++++++++++++++++++++++++++++++++++++++++++++++, +++++++++++++++++++++++.
- ++++++++++++++++++++++++++++++++;` .++++++++++++++++++++++++++++++++++++++++++++++++++++' ,+++++++++++++++++++++++++.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++',..,;+++++++++++++++++++++++++++++.
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ,+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++`
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ,+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- .+++++++++++++++++++++++++++++++++++++++++++++++++++++++: .,++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++: :+++++++++++++++++++++++++++++++++++++++++++++++++++++++
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++, .++++++++++++++++++++++++++++++++++++++++++++++++++++++'
- ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ,+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,
- .++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'
- ,+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- .++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;
- ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++`
- :+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++`
- ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,
- .;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,
- ,;+++++++++++++++++++++++++++++++++++++++++++++++++++++++:.
- ..,;;+++++++++++++++++++++++++++++;:,.
-
- To submit the revised current.txt to the main LineageOS repository,
- you will need approval.
-******************************
diff --git a/build/core/clear_vars.mk b/build/core/clear_vars.mk
deleted file mode 100644
index 1d8135cb..00000000
--- a/build/core/clear_vars.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-#
-# Lineage-specific variable clears
-#
-LOCAL_IGNORE_SUBDIR :=
diff --git a/build/core/config.mk b/build/core/config.mk
deleted file mode 100644
index 3bf8e2c0..00000000
--- a/build/core/config.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (C) 2015 The CyanogenMod Project
-# (C) 2017-2018 The LineageOS 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.
-
-LINEAGE_SRC_API_DIR := $(TOPDIR)prebuilts/lineage-sdk/api
-INTERNAL_LINEAGE_PLATFORM_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/lineage_public_api.txt
-INTERNAL_LINEAGE_PLATFORM_REMOVED_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/lineage_removed.txt
-FRAMEWORK_LINEAGE_PLATFORM_API_FILE := $(TOPDIR)lineage-sdk/api/lineage_current.txt
-FRAMEWORK_LINEAGE_PLATFORM_REMOVED_API_FILE := $(TOPDIR)lineage-sdk/api/lineage_removed.txt
-FRAMEWORK_LINEAGE_API_NEEDS_UPDATE_TEXT := $(TOPDIR)vendor/lineage/build/core/apicheck_msg_current.txt
-
-BUILD_RRO_SYSTEM_PACKAGE := $(TOPDIR)vendor/lineage/build/core/system_rro.mk
-
-# Rules for QCOM targets
-include $(TOPDIR)vendor/lineage/build/core/qcom_target.mk
diff --git a/build/core/definitions.mk b/build/core/definitions.mk
deleted file mode 100644
index 82ed55d4..00000000
--- a/build/core/definitions.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# Lineage-specific macros
-#
-define uniq
-$(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1)))
-endef
-
-# Include board/platform macros
-include vendor/lineage/build/core/utils.mk
-
-# Include vendor platform definitions
-include vendor/lineage/build/core/vendor/*.mk
diff --git a/build/core/main.mk b/build/core/main.mk
deleted file mode 100644
index 0793b8a7..00000000
--- a/build/core/main.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-# Include LineageOS versions
-include $(TOPDIR)vendor/lineage/build/core/main_version.mk
diff --git a/build/core/main_version.mk b/build/core/main_version.mk
deleted file mode 100644
index 96213b08..00000000
--- a/build/core/main_version.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# LineageOS System Version
-ADDITIONAL_BUILD_PROPERTIES += \
- ro.lineage.version=$(LINEAGE_VERSION) \
- ro.lineage.releasetype=$(LINEAGE_BUILDTYPE) \
- ro.lineage.build.version=$(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR) \
- ro.modversion=$(LINEAGE_VERSION) \
- ro.lineagelegal.url=https://lineageos.org/legal
-
-# LineageOS Platform Display Version
-ADDITIONAL_BUILD_PROPERTIES += \
- ro.lineage.display.version=$(LINEAGE_DISPLAY_VERSION)
-
-# LineageOS Platform SDK Version
-ADDITIONAL_BUILD_PROPERTIES += \
- ro.lineage.build.version.plat.sdk=$(LINEAGE_PLATFORM_SDK_VERSION)
-
-# LineageOS Platform Internal Version
-ADDITIONAL_BUILD_PROPERTIES += \
- ro.lineage.build.version.plat.rev=$(LINEAGE_PLATFORM_REV)
diff --git a/build/core/pathmap.mk b/build/core/pathmap.mk
deleted file mode 100644
index b02868e1..00000000
--- a/build/core/pathmap.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-# Enter project path into pathmap
-#
-# $(1): name
-# $(2): path
-#
-define project-set-path
-$(eval pathmap_PROJ += $(1):$(2))
-endef
-
-# Enter variant project path into pathmap
-#
-# $(1): name
-# $(2): variable to check
-# $(3): base path
-#
-define project-set-path-variant
- $(call project-set-path,$(1),$(strip \
- $(if $($(2)), \
- $(3)-$($(2)), \
- $(3))))
-endef
-
-# Returns the path to the requested module's include directory,
-# relative to the root of the source tree.
-#
-# $(1): a list of modules (or other named entities) to find the projects for
-define project-path-for
-$(foreach n,$(1),$(patsubst $(n):%,%,$(filter $(n):%,$(pathmap_PROJ))))
-endef
diff --git a/build/core/qcom_target.mk b/build/core/qcom_target.mk
deleted file mode 100644
index 0e43f76f..00000000
--- a/build/core/qcom_target.mk
+++ /dev/null
@@ -1,55 +0,0 @@
-define wlan-set-path-variant
-$(call project-set-path-variant,wlan,TARGET_WLAN_VARIANT,hardware/qcom/$(1))
-endef
-define bt-vendor-set-path-variant
-$(call project-set-path-variant,bt-vendor,TARGET_BT_VENDOR_VARIANT,hardware/qcom/$(1))
-endef
-
-# Set device-specific HALs into project pathmap
-define set-device-specific-path
-$(if $(USE_DEVICE_SPECIFIC_$(1)), \
- $(if $(DEVICE_SPECIFIC_$(1)_PATH), \
- $(eval path := $(DEVICE_SPECIFIC_$(1)_PATH)), \
- $(eval path := $(TARGET_DEVICE_DIR)/$(2))), \
- $(eval path := $(3))) \
-$(call project-set-path,qcom-$(2),$(strip $(path)))
-endef
-
-ifeq ($(BOARD_USES_QCOM_HARDWARE),true)
-
-$(call set-device-specific-path,AUDIO,audio,hardware/qcom/audio-caf/$(QCOM_HARDWARE_VARIANT))
-$(call set-device-specific-path,DISPLAY,display,hardware/qcom/display-caf/$(QCOM_HARDWARE_VARIANT))
-$(call set-device-specific-path,MEDIA,media,hardware/qcom/media-caf/$(QCOM_HARDWARE_VARIANT))
-
-$(call set-device-specific-path,CAMERA,camera,hardware/qcom/camera)
-$(call set-device-specific-path,DATA_IPA_CFG_MGR,data-ipa-cfg-mgr,vendor/qcom/opensource/data-ipa-cfg-mgr)
-$(call set-device-specific-path,GPS,gps,hardware/qcom/gps)
-$(call set-device-specific-path,SENSORS,sensors,hardware/qcom/sensors)
-$(call set-device-specific-path,LOC_API,loc-api,vendor/qcom/opensource/location)
-$(call set-device-specific-path,DATASERVICES,dataservices,vendor/qcom/opensource/dataservices)
-$(call set-device-specific-path,POWER,power,hardware/qcom/power)
-$(call set-device-specific-path,THERMAL,thermal,hardware/qcom/thermal)
-$(call set-device-specific-path,VR,vr,hardware/qcom/vr)
-
-$(call wlan-set-path-variant,wlan-caf)
-$(call bt-vendor-set-path-variant,bt-caf)
-
-PRODUCT_CFI_INCLUDE_PATHS += \
- hardware/qcom/wlan-caf/qcwcn/wpa_supplicant_8_lib
-else
-
-$(call project-set-path,qcom-audio,hardware/qcom/audio/default)
-$(call project-set-path,qcom-display,hardware/qcom/display/$(TARGET_BOARD_PLATFORM))
-$(call project-set-path,qcom-media,hardware/qcom/media/$(TARGET_BOARD_PLATFORM))
-
-$(call project-set-path,qcom-camera,hardware/qcom/camera)
-$(call project-set-path,qcom-data-ipa-cfg-mgr,hardware/qcom/data/ipacfg-mgr)
-$(call project-set-path,qcom-gps,hardware/qcom/gps)
-$(call project-set-path,qcom-sensors,hardware/qcom/sensors)
-$(call project-set-path,qcom-loc-api,vendor/qcom/opensource/location)
-$(call project-set-path,qcom-dataservices,$(TARGET_DEVICE_DIR)/dataservices)
-
-$(call wlan-set-path-variant,wlan)
-$(call bt-vendor-set-path-variant,bt)
-
-endif
diff --git a/build/core/sdllvm-lto-defs.mk b/build/core/sdllvm-lto-defs.mk
deleted file mode 100644
index 0d202bd9..00000000
--- a/build/core/sdllvm-lto-defs.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-ifeq ($(LOCAL_MODULE_CLASS), STATIC_LIBRARIES)
-# For STATIC_LIBRARIES we need to use SD LLVM's archiver and archiver flags.
-
-AR := $(SDCLANG_PATH)/llvm-ar
-
-ifeq ($(LOCAL_SDCLANG_2),true)
-AR := $(SDCLANG_PATH_2)/llvm-ar
-endif
-
-ARFLAGS := crsD
-
-# For 32 bit
-$(LOCAL_BUILT_MODULE) : $(combo_2nd_arch_prefix)TARGET_AR := $(AR)
-$(LOCAL_BUILT_MODULE) : $(combo_var_prefix)GLOBAL_ARFLAGS := $(ARFLAGS)
-
-# For 64 bit
-intermediates := $(call local-intermediates-dir,,$(LOCAL_2ND_ARCH_VAR_PREFIX))
-LOCAL_BUILT_MODULE_64 := $(intermediates)/$(my_installed_module_stem)
-
-$(LOCAL_BUILT_MODULE_64) : TARGET_AR := $(AR)
-$(LOCAL_BUILT_MODULE_64) : TARGET_GLOBAL_ARFLAGS := $(ARFLAGS)
-
-else
-# For SHARED_LIBRARIES and EXECUTABLES we need to filter out flags not
-# needed/understood by SD LLVM's Linker.
-
-FLAGS_TO_BE_FILTERED := -Wl,--icf=safe -Wl,--no-undefined-version -Wl,--fix-cortex-a53-843419 -fuse-ld=gold
-linked_module_32 := $(intermediates)/LINKED/$(my_installed_module_stem)
-intermediates := $(call local-intermediates-dir,,$(LOCAL_2ND_ARCH_VAR_PREFIX))
-linked_module_64 := $(intermediates)/LINKED/$(my_installed_module_stem)
-
-$(linked_module_32) : PRIVATE_TARGET_GLOBAL_LDFLAGS := $(filter-out $(FLAGS_TO_BE_FILTERED),$(PRIVATE_TARGET_GLOBAL_LDFLAGS))
-$(linked_module_64) : PRIVATE_TARGET_GLOBAL_LDFLAGS := $(filter-out $(FLAGS_TO_BE_FILTERED),$(PRIVATE_TARGET_GLOBAL_LDFLAGS))
-endif
diff --git a/build/core/system_rro.mk b/build/core/system_rro.mk
deleted file mode 100644
index 9b1257a9..00000000
--- a/build/core/system_rro.mk
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (C) 2018 The LineageOS 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_IS_RUNTIME_RESOURCE_OVERLAY := true
-
-ifneq ($(LOCAL_SRC_FILES),)
- $(error runtime resource overlay package should not contain sources)
-endif
-
-ifeq ($(LOCAL_RRO_THEME),)
- $(error runtime resource overlay package must define \'LOCAL_RRO_THEME\')
-else
- LOCAL_MODULE_PATH := $(TARGET_OUT)/app/$(LOCAL_RRO_THEME)
-endif
-
-include $(BUILD_SYSTEM)/package.mk
-
diff --git a/build/core/utils.mk b/build/core/utils.mk
deleted file mode 100644
index 23bd4c9b..00000000
--- a/build/core/utils.mk
+++ /dev/null
@@ -1,203 +0,0 @@
-# vars for use by utils
-empty :=
-space := $(empty) $(empty)
-colon := $(empty):$(empty)
-underscore := $(empty)_$(empty)
-
-# $(call match-word,w1,w2)
-# checks if w1 == w2
-# How it works
-# if (w1-w2 not empty or w2-w1 not empty) then not_match else match
-#
-# returns true or empty
-#$(warning :$(1): :$(2): :$(subst $(1),,$(2)):) \
-#$(warning :$(2): :$(1): :$(subst $(2),,$(1)):) \
-#
-define match-word
-$(strip \
- $(if $(or $(subst $(1),$(empty),$(2)),$(subst $(2),$(empty),$(1))),,true) \
-)
-endef
-
-# $(call find-word-in-list,w,wlist)
-# finds an exact match of word w in word list wlist
-#
-# How it works
-# fill wlist spaces with colon
-# wrap w with colon
-# search word w in list wl, if found match m, return stripped word w
-#
-# returns stripped word or empty
-define find-word-in-list
-$(strip \
- $(eval wl:= $(colon)$(subst $(space),$(colon),$(strip $(2)))$(colon)) \
- $(eval w:= $(colon)$(strip $(1))$(colon)) \
- $(eval m:= $(findstring $(w),$(wl))) \
- $(if $(m),$(1),) \
-)
-endef
-
-# $(call match-word-in-list,w,wlist)
-# does an exact match of word w in word list wlist
-# How it works
-# if the input word is not empty
-# return output of an exact match of word w in wordlist wlist
-# else
-# return empty
-# returns true or empty
-define match-word-in-list
-$(strip \
- $(if $(strip $(1)), \
- $(call match-word,$(call find-word-in-list,$(1),$(2)),$(strip $(1))), \
- ) \
-)
-endef
-
-# $(call match-prefix,p,delim,w/wlist)
-# matches prefix p in wlist using delimiter delim
-#
-# How it works
-# trim the words in wlist w
-# if find-word-in-list returns not empty
-# return true
-# else
-# return empty
-#
-define match-prefix
-$(strip \
- $(eval w := $(strip $(1)$(strip $(2)))) \
- $(eval text := $(patsubst $(w)%,$(1),$(3))) \
- $(if $(call match-word-in-list,$(1),$(text)),true,) \
-)
-endef
-
-# ----
-# The following utilities are meant for board platform specific
-# featurisation
-
-ifndef get-vendor-board-platforms
-# $(call get-vendor-board-platforms,v)
-# returns list of board platforms for vendor v
-define get-vendor-board-platforms
-$(if $(call match-word,$(BOARD_USES_$(1)_HARDWARE),true),$($(1)_BOARD_PLATFORMS))
-endef
-endif # get-vendor-board-platforms
-
-# $(call is-board-platform,bp)
-# returns true or empty
-define is-board-platform
-$(call match-word,$(1),$(TARGET_BOARD_PLATFORM))
-endef
-
-# $(call is-not-board-platform,bp)
-# returns true or empty
-define is-not-board-platform
-$(if $(call match-word,$(1),$(TARGET_BOARD_PLATFORM)),,true)
-endef
-
-# $(call is-board-platform-in-list,bpl)
-# returns true or empty
-define is-board-platform-in-list
-$(call match-word-in-list,$(TARGET_BOARD_PLATFORM),$(1))
-endef
-
-# $(call is-vendor-board-platform,vendor)
-# returns true or empty
-define is-vendor-board-platform
-$(strip \
- $(call match-word-in-list,$(TARGET_BOARD_PLATFORM),\
- $(call get-vendor-board-platforms,$(1)) \
- ) \
-)
-endef
-
-# $(call is-chipset-in-board-platform,chipset)
-# does a prefix match of chipset in TARGET_BOARD_PLATFORM
-# uses underscore as a delimiter
-#
-# returns true or empty
-define is-chipset-in-board-platform
-$(call match-prefix,$(1),$(underscore),$(TARGET_BOARD_PLATFORM))
-endef
-
-# $(call is-chipset-prefix-in-board-platform,prefix)
-# does a chipset prefix match in TARGET_BOARD_PLATFORM
-# assumes '_' and 'a' as the delimiter to the chipset prefix
-#
-# How it works
-# if ($(prefix)_ or $(prefix)a match in board platform)
-# return true
-# else
-# return empty
-#
-define is-chipset-prefix-in-board-platform
-$(strip \
- $(eval delim_a := $(empty)a$(empty)) \
- $(if \
- $(or \
- $(call match-prefix,$(1),$(delim_a),$(TARGET_BOARD_PLATFORM)), \
- $(call match-prefix,$(1),$(underscore),$(TARGET_BOARD_PLATFORM)), \
- ), \
- true, \
- ) \
-)
-endef
-
-#----
-# The following utilities are meant for Android Code Name
-# specific featurisation
-#
-# refer http://source.android.com/source/build-numbers.html
-# for code names and associated sdk versions
-CUPCAKE_SDK_VERSIONS := 3
-DONUT_SDK_VERSIONS := 4
-ECLAIR_SDK_VERSIONS := 5 6 7
-FROYO_SDK_VERSIONS := 8
-GINGERBREAD_SDK_VERSIONS := 9 10
-HONEYCOMB_SDK_VERSIONS := 11 12 13
-ICECREAM_SANDWICH_SDK_VERSIONS := 14 15
-JELLY_BEAN_SDK_VERSIONS := 16 17 18
-
-# $(call is-platform-sdk-version-at-least,version)
-# version is a numeric SDK_VERSION defined above
-define is-platform-sdk-version-at-least
-$(strip \
- $(if $(filter 1,$(shell echo "$$(( $(PLATFORM_SDK_VERSION) >= $(1) ))" )), \
- true, \
- ) \
-)
-endef
-
-# $(call is-android-codename,codename)
-# codename is one of cupcake,donut,eclair,froyo,gingerbread,icecream
-# please refer the $(codename)_SDK_VERSIONS declared above
-define is-android-codename
-$(strip \
- $(if \
- $(call match-word-in-list,$(PLATFORM_SDK_VERSION),$($(1)_SDK_VERSIONS)), \
- true, \
- ) \
-)
-endef
-
-# $(call is-android-codename-in-list,cnlist)
-# cnlist is combination/list of android codenames
-define is-android-codename-in-list
-$(strip \
- $(eval acn := $(empty)) \
- $(foreach \
- i,$(1),\
- $(eval acn += \
- $(if \
- $(call \
- match-word-in-list,\
- $(PLATFORM_SDK_VERSION),\
- $($(i)_SDK_VERSIONS)\
- ),\
- true,\
- )\
- )\
- ) \
- $(if $(strip $(acn)),true,) \
-)
-endef
diff --git a/build/core/vendor/mtk_boards.mk b/build/core/vendor/mtk_boards.mk
deleted file mode 100644
index 48fd6605..00000000
--- a/build/core/vendor/mtk_boards.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# Board platforms lists to be used for
-# TARGET_BOARD_PLATFORM specific featurization
-MTK_BOARD_PLATFORMS := mt6592
-MTK_BOARD_PLATFORMS += mt6582
-MTK_BOARD_PLATFORMS += mt6572
diff --git a/build/core/vendor/qcom_boards.mk b/build/core/vendor/qcom_boards.mk
deleted file mode 100644
index ed8f0898..00000000
--- a/build/core/vendor/qcom_boards.mk
+++ /dev/null
@@ -1,54 +0,0 @@
-# Board platforms lists to be used for
-# TARGET_BOARD_PLATFORM specific featurization
-
-# Platform name variables - used in makefiles everywhere
-MSMNILE := msmnile #SM8150
-MSMSTEPPE := sm6150
-TRINKET := trinket #SM6125
-
-# A Family
-QCOM_BOARD_PLATFORMS += msm7x27a
-QCOM_BOARD_PLATFORMS += msm7x30
-QCOM_BOARD_PLATFORMS += msm8660
-
-QCOM_BOARD_PLATFORMS += msm8960
-
-# B Family
-QCOM_BOARD_PLATFORMS += msm8226
-QCOM_BOARD_PLATFORMS += msm8610
-QCOM_BOARD_PLATFORMS += msm8974
-
-QCOM_BOARD_PLATFORMS += apq8084
-
-# B64 Family
-QCOM_BOARD_PLATFORMS += msm8992
-QCOM_BOARD_PLATFORMS += msm8994
-
-# BR Family
-QCOM_BOARD_PLATFORMS += msm8909
-QCOM_BOARD_PLATFORMS += msm8916
-
-QCOM_BOARD_PLATFORMS += msm8952
-
-# UM Family
-QCOM_BOARD_PLATFORMS += msm8937
-QCOM_BOARD_PLATFORMS += msm8953
-QCOM_BOARD_PLATFORMS += msm8996
-
-QCOM_BOARD_PLATFORMS += msm8998
-QCOM_BOARD_PLATFORMS += sdm660
-
-QCOM_BOARD_PLATFORMS += sdm710
-QCOM_BOARD_PLATFORMS += sdm845
-
-QCOM_BOARD_PLATFORMS += $(TRINKET)
-QCOM_BOARD_PLATFORMS += $(MSMSTEPPE)
-QCOM_BOARD_PLATFORMS += $(MSMNILE)
-
-# MSM7000 Family
-MSM7K_BOARD_PLATFORMS := msm7x30
-MSM7K_BOARD_PLATFORMS += msm7x27
-MSM7K_BOARD_PLATFORMS += msm7x27a
-MSM7K_BOARD_PLATFORMS += msm7k
-
-QSD8K_BOARD_PLATFORMS := qsd8k
diff --git a/build/envsetup.sh b/build/envsetup.sh
deleted file mode 100644
index ccc05892..00000000
--- a/build/envsetup.sh
+++ /dev/null
@@ -1,997 +0,0 @@
-function __print_lineage_functions_help() {
-cat <<EOF
-Additional LineageOS functions:
-- cout: Changes directory to out.
-- mmp: Builds all of the modules in the current directory and pushes them to the device.
-- mmap: Builds all of the modules in the current directory and its dependencies, then pushes the package to the device.
-- mmmp: Builds all of the modules in the supplied directories and pushes them to the device.
-- lineagegerrit: A Git wrapper that fetches/pushes patch from/to LineageOS Gerrit Review.
-- lineagerebase: Rebase a Gerrit change and push it again.
-- lineageremote: Add git remote for LineageOS Gerrit Review.
-- aospremote: Add git remote for matching AOSP repository.
-- cafremote: Add git remote for matching CodeAurora repository.
-- githubremote: Add git remote for LineageOS Github.
-- mka: Builds using SCHED_BATCH on all processors.
-- mkap: Builds the module(s) using mka and pushes them to the device.
-- cmka: Cleans and builds using mka.
-- repodiff: Diff 2 different branches or tags within the same repo
-- repolastsync: Prints date and time of last repo sync.
-- reposync: Parallel repo sync using ionice and SCHED_BATCH.
-- repopick: Utility to fetch changes from Gerrit.
-- installboot: Installs a boot.img to the connected device.
-- installrecovery: Installs a recovery.img to the connected device.
-EOF
-}
-
-function mk_timer()
-{
- local start_time=$(date +"%s")
- $@
- local ret=$?
- local end_time=$(date +"%s")
- local tdiff=$(($end_time-$start_time))
- local hours=$(($tdiff / 3600 ))
- local mins=$((($tdiff % 3600) / 60))
- local secs=$(($tdiff % 60))
- local ncolors=$(tput colors 2>/dev/null)
- echo
- if [ $ret -eq 0 ] ; then
- echo -n "#### make completed successfully "
- else
- echo -n "#### make failed to build some targets "
- fi
- if [ $hours -gt 0 ] ; then
- printf "(%02g:%02g:%02g (hh:mm:ss))" $hours $mins $secs
- elif [ $mins -gt 0 ] ; then
- printf "(%02g:%02g (mm:ss))" $mins $secs
- elif [ $secs -gt 0 ] ; then
- printf "(%s seconds)" $secs
- fi
- echo " ####"
- echo
- return $ret
-}
-
-function brunch()
-{
- breakfast $*
- if [ $? -eq 0 ]; then
- mka bacon
- else
- echo "No such item in brunch menu. Try 'breakfast'"
- return 1
- fi
- return $?
-}
-
-function breakfast()
-{
- target=$1
- local variant=$2
- LINEAGE_DEVICES_ONLY="true"
- unset LUNCH_MENU_CHOICES
- add_lunch_combo full-eng
- for f in `/bin/ls vendor/lineage/vendorsetup.sh 2> /dev/null`
- do
- echo "including $f"
- . $f
- done
- unset f
-
- if [ $# -eq 0 ]; then
- # No arguments, so let's have the full menu
- lunch
- else
- echo "z$target" | grep -q "-"
- if [ $? -eq 0 ]; then
- # A buildtype was specified, assume a full device name
- lunch $target
- else
- # This is probably just the Lineage model name
- if [ -z "$variant" ]; then
- variant="userdebug"
- fi
-
- lunch lineage_$target-$variant
- fi
- fi
- return $?
-}
-
-alias bib=breakfast
-
-function eat()
-{
- if [ "$OUT" ] ; then
- ZIPPATH=`ls -tr "$OUT"/lineage-*.zip | tail -1`
- if [ ! -f $ZIPPATH ] ; then
- echo "Nothing to eat"
- return 1
- fi
- adb start-server # Prevent unexpected starting server message from adb get-state in the next line
- if [ $(adb get-state) != device -a $(adb shell 'test -e /sbin/recovery 2> /dev/null; echo $?') != 0 ] ; then
- echo "No device is online. Waiting for one..."
- echo "Please connect USB and/or enable USB debugging"
- until [ $(adb get-state) = device -o $(adb shell 'test -e /sbin/recovery 2> /dev/null; echo $?') = 0 ];do
- sleep 1
- done
- echo "Device Found.."
- fi
- if (adb shell getprop ro.lineage.device | grep -q "$LINEAGE_BUILD"); then
- # if adbd isn't root we can't write to /cache/recovery/
- adb root
- sleep 1
- adb wait-for-device
- cat << EOF > /tmp/command
---sideload_auto_reboot
-EOF
- if adb push /tmp/command /cache/recovery/ ; then
- echo "Rebooting into recovery for sideload installation"
- adb reboot recovery
- adb wait-for-sideload
- adb sideload $ZIPPATH
- fi
- rm /tmp/command
- else
- echo "The connected device does not appear to be $LINEAGE_BUILD, run away!"
- fi
- return $?
- else
- echo "Nothing to eat"
- return 1
- fi
-}
-
-function omnom()
-{
- brunch $*
- eat
-}
-
-function cout()
-{
- if [ "$OUT" ]; then
- cd $OUT
- else
- echo "Couldn't locate out directory. Try setting OUT."
- fi
-}
-
-function dddclient()
-{
- local OUT_ROOT=$(get_abs_build_var PRODUCT_OUT)
- local OUT_SYMBOLS=$(get_abs_build_var TARGET_OUT_UNSTRIPPED)
- local OUT_SO_SYMBOLS=$(get_abs_build_var TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)
- local OUT_VENDOR_SO_SYMBOLS=$(get_abs_build_var TARGET_OUT_VENDOR_SHARED_LIBRARIES_UNSTRIPPED)
- local OUT_EXE_SYMBOLS=$(get_symbols_directory)
- local PREBUILTS=$(get_abs_build_var ANDROID_PREBUILTS)
- local ARCH=$(get_build_var TARGET_ARCH)
- local GDB
- case "$ARCH" in
- arm) GDB=arm-linux-androideabi-gdb;;
- arm64) GDB=arm-linux-androideabi-gdb; GDB64=aarch64-linux-android-gdb;;
- mips|mips64) GDB=mips64el-linux-android-gdb;;
- x86) GDB=x86_64-linux-android-gdb;;
- x86_64) GDB=x86_64-linux-android-gdb;;
- *) echo "Unknown arch $ARCH"; return 1;;
- esac
-
- if [ "$OUT_ROOT" -a "$PREBUILTS" ]; then
- local EXE="$1"
- if [ "$EXE" ] ; then
- EXE=$1
- if [[ $EXE =~ ^[^/].* ]] ; then
- EXE="system/bin/"$EXE
- fi
- else
- EXE="app_process"
- fi
-
- local PORT="$2"
- if [ "$PORT" ] ; then
- PORT=$2
- else
- PORT=":5039"
- fi
-
- local PID="$3"
- if [ "$PID" ] ; then
- if [[ ! "$PID" =~ ^[0-9]+$ ]] ; then
- PID=`pid $3`
- if [[ ! "$PID" =~ ^[0-9]+$ ]] ; then
- # that likely didn't work because of returning multiple processes
- # try again, filtering by root processes (don't contain colon)
- PID=`adb shell ps | \grep $3 | \grep -v ":" | awk '{print $2}'`
- if [[ ! "$PID" =~ ^[0-9]+$ ]]
- then
- echo "Couldn't resolve '$3' to single PID"
- return 1
- else
- echo ""
- echo "WARNING: multiple processes matching '$3' observed, using root process"
- echo ""
- fi
- fi
- fi
- adb forward "tcp$PORT" "tcp$PORT"
- local USE64BIT="$(is64bit $PID)"
- adb shell gdbserver$USE64BIT $PORT --attach $PID &
- sleep 2
- else
- echo ""
- echo "If you haven't done so already, do this first on the device:"
- echo " gdbserver $PORT /system/bin/$EXE"
- echo " or"
- echo " gdbserver $PORT --attach <PID>"
- echo ""
- fi
-
- OUT_SO_SYMBOLS=$OUT_SO_SYMBOLS$USE64BIT
- OUT_VENDOR_SO_SYMBOLS=$OUT_VENDOR_SO_SYMBOLS$USE64BIT
-
- echo >|"$OUT_ROOT/gdbclient.cmds" "set solib-absolute-prefix $OUT_SYMBOLS"
- echo >>"$OUT_ROOT/gdbclient.cmds" "set solib-search-path $OUT_SO_SYMBOLS:$OUT_SO_SYMBOLS/hw:$OUT_SO_SYMBOLS/ssl/engines:$OUT_SO_SYMBOLS/drm:$OUT_SO_SYMBOLS/egl:$OUT_SO_SYMBOLS/soundfx:$OUT_VENDOR_SO_SYMBOLS:$OUT_VENDOR_SO_SYMBOLS/hw:$OUT_VENDOR_SO_SYMBOLS/egl"
- echo >>"$OUT_ROOT/gdbclient.cmds" "source $ANDROID_BUILD_TOP/development/scripts/gdb/dalvik.gdb"
- echo >>"$OUT_ROOT/gdbclient.cmds" "target remote $PORT"
- # Enable special debugging for ART processes.
- if [[ $EXE =~ (^|/)(app_process|dalvikvm)(|32|64)$ ]]; then
- echo >> "$OUT_ROOT/gdbclient.cmds" "art-on"
- fi
- echo >>"$OUT_ROOT/gdbclient.cmds" ""
-
- local WHICH_GDB=
- # 64-bit exe found
- if [ "$USE64BIT" != "" ] ; then
- WHICH_GDB=$ANDROID_TOOLCHAIN/$GDB64
- # 32-bit exe / 32-bit platform
- elif [ "$(get_build_var TARGET_2ND_ARCH)" = "" ]; then
- WHICH_GDB=$ANDROID_TOOLCHAIN/$GDB
- # 32-bit exe / 64-bit platform
- else
- WHICH_GDB=$ANDROID_TOOLCHAIN_2ND_ARCH/$GDB
- fi
-
- ddd --debugger $WHICH_GDB -x "$OUT_ROOT/gdbclient.cmds" "$OUT_EXE_SYMBOLS/$EXE"
- else
- echo "Unable to determine build system output dir."
- fi
-}
-
-function lineageremote()
-{
- if ! git rev-parse --git-dir &> /dev/null
- then
- echo ".git directory not found. Please run this from the root directory of the Android repository you wish to set up."
- return 1
- fi
- git remote rm lineage 2> /dev/null
- local REMOTE=$(git config --get remote.github.projectname)
- local LINEAGE="true"
- if [ -z "$REMOTE" ]
- then
- REMOTE=$(git config --get remote.aosp.projectname)
- LINEAGE="false"
- fi
- if [ -z "$REMOTE" ]
- then
- REMOTE=$(git config --get remote.caf.projectname)
- LINEAGE="false"
- fi
-
- if [ $LINEAGE = "false" ]
- then
- local PROJECT=$(echo $REMOTE | sed -e "s#platform/#android/#g; s#/#_#g")
- local PFX="LineageOS/"
- else
- local PROJECT=$REMOTE
- fi
-
- local LINEAGE_USER=$(git config --get review.review.lineageos.org.username)
- if [ -z "$LINEAGE_USER" ]
- then
- git remote add lineage ssh://review.lineageos.org:29418/$PFX$PROJECT
- else
- git remote add lineage ssh://$LINEAGE_USER@review.lineageos.org:29418/$PFX$PROJECT
- fi
- echo "Remote 'lineage' created"
-}
-
-function aospremote()
-{
- if ! git rev-parse --git-dir &> /dev/null
- then
- echo ".git directory not found. Please run this from the root directory of the Android repository you wish to set up."
- return 1
- fi
- git remote rm aosp 2> /dev/null
- local PROJECT=$(pwd -P | sed -e "s#$ANDROID_BUILD_TOP\/##; s#-caf.*##; s#\/default##")
- # Google moved the repo location in Oreo
- if [ $PROJECT = "build/make" ]
- then
- PROJECT="build"
- fi
- if (echo $PROJECT | grep -qv "^device")
- then
- local PFX="platform/"
- fi
- git remote add aosp https://android.googlesource.com/$PFX$PROJECT
- echo "Remote 'aosp' created"
-}
-
-function cafremote()
-{
- if ! git rev-parse --git-dir &> /dev/null
- then
- echo ".git directory not found. Please run this from the root directory of the Android repository you wish to set up."
- return 1
- fi
- git remote rm caf 2> /dev/null
- local PROJECT=$(pwd -P | sed -e "s#$ANDROID_BUILD_TOP\/##; s#-caf.*##; s#\/default##")
- # Google moved the repo location in Oreo
- if [ $PROJECT = "build/make" ]
- then
- PROJECT="build"
- fi
- if [[ $PROJECT =~ "qcom/opensource" ]];
- then
- PROJECT=$(echo $PROJECT | sed -e "s#qcom\/opensource#qcom-opensource#")
- fi
- if (echo $PROJECT | grep -qv "^device")
- then
- local PFX="platform/"
- fi
- git remote add caf https://source.codeaurora.org/quic/la/$PFX$PROJECT
- echo "Remote 'caf' created"
-}
-
-function githubremote()
-{
- if ! git rev-parse --git-dir &> /dev/null
- then
- echo ".git directory not found. Please run this from the root directory of the Android repository you wish to set up."
- return 1
- fi
- git remote rm github 2> /dev/null
- local REMOTE=$(git config --get remote.aosp.projectname)
-
- if [ -z "$REMOTE" ]
- then
- REMOTE=$(git config --get remote.caf.projectname)
- fi
-
- local PROJECT=$(echo $REMOTE | sed -e "s#platform/#android/#g; s#/#_#g")
-
- git remote add github https://github.com/LineageOS/$PROJECT
- echo "Remote 'github' created"
-}
-
-function installboot()
-{
- if [ ! -e "$OUT/recovery/root/etc/recovery.fstab" ];
- then
- echo "No recovery.fstab found. Build recovery first."
- return 1
- fi
- if [ ! -e "$OUT/boot.img" ];
- then
- echo "No boot.img found. Run make bootimage first."
- return 1
- fi
- PARTITION=`grep "^\/boot" $OUT/recovery/root/etc/recovery.fstab | awk {'print $3'}`
- if [ -z "$PARTITION" ];
- then
- # Try for RECOVERY_FSTAB_VERSION = 2
- PARTITION=`grep "[[:space:]]\/boot[[:space:]]" $OUT/recovery/root/etc/recovery.fstab | awk {'print $1'}`
- PARTITION_TYPE=`grep "[[:space:]]\/boot[[:space:]]" $OUT/recovery/root/etc/recovery.fstab | awk {'print $3'}`
- if [ -z "$PARTITION" ];
- then
- echo "Unable to determine boot partition."
- return 1
- fi
- fi
- adb start-server
- adb wait-for-online
- adb root
- sleep 1
- adb wait-for-online shell mount /system 2>&1 > /dev/null
- adb wait-for-online remount
- if (adb shell getprop ro.lineage.device | grep -q "$LINEAGE_BUILD");
- then
- adb push $OUT/boot.img /cache/
- if [ -e "$OUT/system/lib/modules/*" ];
- then
- for i in $OUT/system/lib/modules/*;
- do
- adb push $i /system/lib/modules/
- done
- adb shell chmod 644 /system/lib/modules/*
- fi
- adb shell dd if=/cache/boot.img of=$PARTITION
- adb shell rm -rf /cache/boot.img
- echo "Installation complete."
- else
- echo "The connected device does not appear to be $LINEAGE_BUILD, run away!"
- fi
-}
-
-function installrecovery()
-{
- if [ ! -e "$OUT/recovery/root/etc/recovery.fstab" ];
- then
- echo "No recovery.fstab found. Build recovery first."
- return 1
- fi
- if [ ! -e "$OUT/recovery.img" ];
- then
- echo "No recovery.img found. Run make recoveryimage first."
- return 1
- fi
- PARTITION=`grep "^\/recovery" $OUT/recovery/root/etc/recovery.fstab | awk {'print $3'}`
- if [ -z "$PARTITION" ];
- then
- # Try for RECOVERY_FSTAB_VERSION = 2
- PARTITION=`grep "[[:space:]]\/recovery[[:space:]]" $OUT/recovery/root/etc/recovery.fstab | awk {'print $1'}`
- PARTITION_TYPE=`grep "[[:space:]]\/recovery[[:space:]]" $OUT/recovery/root/etc/recovery.fstab | awk {'print $3'}`
- if [ -z "$PARTITION" ];
- then
- echo "Unable to determine recovery partition."
- return 1
- fi
- fi
- adb start-server
- adb wait-for-online
- adb root
- sleep 1
- adb wait-for-online shell mount /system 2>&1 >> /dev/null
- adb wait-for-online remount
- if (adb shell getprop ro.lineage.device | grep -q "$LINEAGE_BUILD");
- then
- adb push $OUT/recovery.img /cache/
- adb shell dd if=/cache/recovery.img of=$PARTITION
- adb shell rm -rf /cache/recovery.img
- echo "Installation complete."
- else
- echo "The connected device does not appear to be $LINEAGE_BUILD, run away!"
- fi
-}
-
-function makerecipe() {
- if [ -z "$1" ]
- then
- echo "No branch name provided."
- return 1
- fi
- cd android
- sed -i s/'default revision=.*'/'default revision="refs\/heads\/'$1'"'/ default.xml
- git commit -a -m "$1"
- cd ..
-
- repo forall -c '
-
- if [ "$REPO_REMOTE" = "github" ]
- then
- pwd
- lineageremote
- git push lineage HEAD:refs/heads/'$1'
- fi
- '
-}
-
-function lineagegerrit() {
- if [ "$(__detect_shell)" = "zsh" ]; then
- # zsh does not define FUNCNAME, derive from funcstack
- local FUNCNAME=$funcstack[1]
- fi
-
- if [ $# -eq 0 ]; then
- $FUNCNAME help
- return 1
- fi
- local user=`git config --get review.review.lineageos.org.username`
- local review=`git config --get remote.github.review`
- local project=`git config --get remote.github.projectname`
- local command=$1
- shift
- case $command in
- help)
- if [ $# -eq 0 ]; then
- cat <<EOF
-Usage:
- $FUNCNAME COMMAND [OPTIONS] [CHANGE-ID[/PATCH-SET]][{@|^|~|:}ARG] [-- ARGS]
-
-Commands:
- fetch Just fetch the change as FETCH_HEAD
- help Show this help, or for a specific command
- pull Pull a change into current branch
- push Push HEAD or a local branch to Gerrit for a specific branch
-
-Any other Git commands that support refname would work as:
- git fetch URL CHANGE && git COMMAND OPTIONS FETCH_HEAD{@|^|~|:}ARG -- ARGS
-
-See '$FUNCNAME help COMMAND' for more information on a specific command.
-
-Example:
- $FUNCNAME checkout -b topic 1234/5
-works as:
- git fetch http://DOMAIN/p/PROJECT refs/changes/34/1234/5 \\
- && git checkout -b topic FETCH_HEAD
-will checkout a new branch 'topic' base on patch-set 5 of change 1234.
-Patch-set 1 will be fetched if omitted.
-EOF
- return
- fi
- case $1 in
- __cmg_*) echo "For internal use only." ;;
- changes|for)
- if [ "$FUNCNAME" = "lineagegerrit" ]; then
- echo "'$FUNCNAME $1' is deprecated."
- fi
- ;;
- help) $FUNCNAME help ;;
- fetch|pull) cat <<EOF
-usage: $FUNCNAME $1 [OPTIONS] CHANGE-ID[/PATCH-SET]
-
-works as:
- git $1 OPTIONS http://DOMAIN/p/PROJECT \\
- refs/changes/HASH/CHANGE-ID/{PATCH-SET|1}
-
-Example:
- $FUNCNAME $1 1234
-will $1 patch-set 1 of change 1234
-EOF
- ;;
- push) cat <<EOF
-usage: $FUNCNAME push [OPTIONS] [LOCAL_BRANCH:]REMOTE_BRANCH
-
-works as:
- git push OPTIONS ssh://USER@DOMAIN:29418/PROJECT \\
- {LOCAL_BRANCH|HEAD}:refs/for/REMOTE_BRANCH
-
-Example:
- $FUNCNAME push fix6789:gingerbread
-will push local branch 'fix6789' to Gerrit for branch 'gingerbread'.
-HEAD will be pushed from local if omitted.
-EOF
- ;;
- *)
- $FUNCNAME __cmg_err_not_supported $1 && return
- cat <<EOF
-usage: $FUNCNAME $1 [OPTIONS] CHANGE-ID[/PATCH-SET][{@|^|~|:}ARG] [-- ARGS]
-
-works as:
- git fetch http://DOMAIN/p/PROJECT \\
- refs/changes/HASH/CHANGE-ID/{PATCH-SET|1} \\
- && git $1 OPTIONS FETCH_HEAD{@|^|~|:}ARG -- ARGS
-EOF
- ;;
- esac
- ;;
- __cmg_get_ref)
- $FUNCNAME __cmg_err_no_arg $command $# && return 1
- local change_id patchset_id hash
- case $1 in
- */*)
- change_id=${1%%/*}
- patchset_id=${1#*/}
- ;;
- *)
- change_id=$1
- patchset_id=1
- ;;
- esac
- hash=$(($change_id % 100))
- case $hash in
- [0-9]) hash="0$hash" ;;
- esac
- echo "refs/changes/$hash/$change_id/$patchset_id"
- ;;
- fetch|pull)
- $FUNCNAME __cmg_err_no_arg $command $# help && return 1
- $FUNCNAME __cmg_err_not_repo && return 1
- local change=$1
- shift
- git $command $@ http://$review/p/$project \
- $($FUNCNAME __cmg_get_ref $change) || return 1
- ;;
- push)
- $FUNCNAME __cmg_err_no_arg $command $# help && return 1
- $FUNCNAME __cmg_err_not_repo && return 1
- if [ -z "$user" ]; then
- echo >&2 "Gerrit username not found."
- return 1
- fi
- local local_branch remote_branch
- case $1 in
- *:*)
- local_branch=${1%:*}
- remote_branch=${1##*:}
- ;;
- *)
- local_branch=HEAD
- remote_branch=$1
- ;;
- esac
- shift
- git push $@ ssh://$user@$review:29418/$project \
- $local_branch:refs/for/$remote_branch || return 1
- ;;
- changes|for)
- if [ "$FUNCNAME" = "lineagegerrit" ]; then
- echo >&2 "'$FUNCNAME $command' is deprecated."
- fi
- ;;
- __cmg_err_no_arg)
- if [ $# -lt 2 ]; then
- echo >&2 "'$FUNCNAME $command' missing argument."
- elif [ $2 -eq 0 ]; then
- if [ -n "$3" ]; then
- $FUNCNAME help $1
- else
- echo >&2 "'$FUNCNAME $1' missing argument."
- fi
- else
- return 1
- fi
- ;;
- __cmg_err_not_repo)
- if [ -z "$review" -o -z "$project" ]; then
- echo >&2 "Not currently in any reviewable repository."
- else
- return 1
- fi
- ;;
- __cmg_err_not_supported)
- $FUNCNAME __cmg_err_no_arg $command $# && return
- case $1 in
- #TODO: filter more git commands that don't use refname
- init|add|rm|mv|status|clone|remote|bisect|config|stash)
- echo >&2 "'$FUNCNAME $1' is not supported."
- ;;
- *) return 1 ;;
- esac
- ;;
- #TODO: other special cases?
- *)
- $FUNCNAME __cmg_err_not_supported $command && return 1
- $FUNCNAME __cmg_err_no_arg $command $# help && return 1
- $FUNCNAME __cmg_err_not_repo && return 1
- local args="$@"
- local change pre_args refs_arg post_args
- case "$args" in
- *--\ *)
- pre_args=${args%%-- *}
- post_args="-- ${args#*-- }"
- ;;
- *) pre_args="$args" ;;
- esac
- args=($pre_args)
- pre_args=
- if [ ${#args[@]} -gt 0 ]; then
- change=${args[${#args[@]}-1]}
- fi
- if [ ${#args[@]} -gt 1 ]; then
- pre_args=${args[0]}
- for ((i=1; i<${#args[@]}-1; i++)); do
- pre_args="$pre_args ${args[$i]}"
- done
- fi
- while ((1)); do
- case $change in
- ""|--)
- $FUNCNAME help $command
- return 1
- ;;
- *@*)
- if [ -z "$refs_arg" ]; then
- refs_arg="@${change#*@}"
- change=${change%%@*}
- fi
- ;;
- *~*)
- if [ -z "$refs_arg" ]; then
- refs_arg="~${change#*~}"
- change=${change%%~*}
- fi
- ;;
- *^*)
- if [ -z "$refs_arg" ]; then
- refs_arg="^${change#*^}"
- change=${change%%^*}
- fi
- ;;
- *:*)
- if [ -z "$refs_arg" ]; then
- refs_arg=":${change#*:}"
- change=${change%%:*}
- fi
- ;;
- *) break ;;
- esac
- done
- $FUNCNAME fetch $change \
- && git $command $pre_args FETCH_HEAD$refs_arg $post_args \
- || return 1
- ;;
- esac
-}
-
-function lineagerebase() {
- local repo=$1
- local refs=$2
- local pwd="$(pwd)"
- local dir="$(gettop)/$repo"
-
- if [ -z $repo ] || [ -z $refs ]; then
- echo "LineageOS Gerrit Rebase Usage: "
- echo " lineagerebase <path to project> <patch IDs on Gerrit>"
- echo " The patch IDs appear on the Gerrit commands that are offered."
- echo " They consist on a series of numbers and slashes, after the text"
- echo " refs/changes. For example, the ID in the following command is 26/8126/2"
- echo ""
- echo " git[...]ges_apps_Camera refs/changes/26/8126/2 && git cherry-pick FETCH_HEAD"
- echo ""
- return
- fi
-
- if [ ! -d $dir ]; then
- echo "Directory $dir doesn't exist in tree."
- return
- fi
- cd $dir
- repo=$(cat .git/config | grep git://github.com | awk '{ print $NF }' | sed s#git://github.com/##g)
- echo "Starting branch..."
- repo start tmprebase .
- echo "Bringing it up to date..."
- repo sync .
- echo "Fetching change..."
- git fetch "http://review.lineageos.org/p/$repo" "refs/changes/$refs" && git cherry-pick FETCH_HEAD
- if [ "$?" != "0" ]; then
- echo "Error cherry-picking. Not uploading!"
- return
- fi
- echo "Uploading..."
- repo upload .
- echo "Cleaning up..."
- repo abandon tmprebase .
- cd $pwd
-}
-
-function mka() {
- m -j "$@"
-}
-
-function cmka() {
- if [ ! -z "$1" ]; then
- for i in "$@"; do
- case $i in
- bacon|otapackage|systemimage)
- mka installclean
- mka $i
- ;;
- *)
- mka clean-$i
- mka $i
- ;;
- esac
- done
- else
- mka clean
- mka
- fi
-}
-
-function repolastsync() {
- RLSPATH="$ANDROID_BUILD_TOP/.repo/.repo_fetchtimes.json"
- RLSLOCAL=$(date -d "$(stat -c %z $RLSPATH)" +"%e %b %Y, %T %Z")
- RLSUTC=$(date -d "$(stat -c %z $RLSPATH)" -u +"%e %b %Y, %T %Z")
- echo "Last repo sync: $RLSLOCAL / $RLSUTC"
-}
-
-function reposync() {
- repo sync -j 4 "$@"
-}
-
-function repodiff() {
- if [ -z "$*" ]; then
- echo "Usage: repodiff <ref-from> [[ref-to] [--numstat]]"
- return
- fi
- diffopts=$* repo forall -c \
- 'echo "$REPO_PATH ($REPO_REMOTE)"; git diff ${diffopts} 2>/dev/null ;'
-}
-
-# 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
-};
-
-# Credit for color strip sed: http://goo.gl/BoIcm
-function dopush()
-{
- local func=$1
- shift
-
- 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
-
- if (adb shell getprop ro.lineage.device | grep -q "$LINEAGE_BUILD") || [ "$FORCE_PUSH" = "true" ];
- then
- # retrieve IP and PORT info if we're using a TCP connection
- TCPIPPORT=$(adb devices \
- | egrep '^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-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
- adb remount &> /dev/null
-
- mkdir -p $OUT
- ($func $*|tee $OUT/.log;return ${PIPESTATUS[0]})
- ret=$?;
- if [ $ret -ne 0 ]; then
- rm -f $OUT/.log;return $ret
- fi
-
- is_gnu_sed=`sed --version | head -1 | grep -c GNU`
-
- # Install: <file>
- if [ $is_gnu_sed -gt 0 ]; then
- LOC="$(cat $OUT/.log | sed -r -e 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' -e 's/^\[ {0,2}[0-9]{1,3}% [0-9]{1,6}\/[0-9]{1,6}\] +//' \
- | grep '^Install: ' | cut -d ':' -f 2)"
- else
- LOC="$(cat $OUT/.log | sed -E "s/"$'\E'"\[([0-9]{1,3}((;[0-9]{1,3})*)?)?[m|K]//g" -E "s/^\[ {0,2}[0-9]{1,3}% [0-9]{1,6}\/[0-9]{1,6}\] +//" \
- | grep '^Install: ' | cut -d ':' -f 2)"
- fi
-
- # Copy: <file>
- if [ $is_gnu_sed -gt 0 ]; then
- LOC="$LOC $(cat $OUT/.log | sed -r -e 's/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g' -e 's/^\[ {0,2}[0-9]{1,3}% [0-9]{1,6}\/[0-9]{1,6}\] +//' \
- | grep '^Copy: ' | cut -d ':' -f 2)"
- else
- LOC="$LOC $(cat $OUT/.log | sed -E "s/"$'\E'"\[([0-9]{1,3}((;[0-9]{1,3})*)?)?[m|K]//g" -E 's/^\[ {0,2}[0-9]{1,3}% [0-9]{1,6}\/[0-9]{1,6}\] +//' \
- | grep '^Copy: ' | cut -d ':' -f 2)"
- fi
-
- # If any files are going to /data, push an octal file permissions reader to device
- if [ -n "$(echo $LOC | egrep '(^|\s)/data')" ]; then
- CHKPERM="/data/local/tmp/chkfileperm.sh"
-(
-cat <<'EOF'
-#!/system/xbin/sh
-FILE=$@
-if [ -e $FILE ]; then
- ls -l $FILE | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}' | cut -d ' ' -f1
-fi
-EOF
-) > $OUT/.chkfileperm.sh
- echo "Pushing file permissions checker to device"
- adb push $OUT/.chkfileperm.sh $CHKPERM
- adb shell chmod 755 $CHKPERM
- rm -f $OUT/.chkfileperm.sh
- fi
-
- stop_n_start=false
- for TARGET in $(echo $LOC | tr " " "\n" | sed "s#.*$OUT##" | sort | uniq); do
- # Make sure file is in $OUT/system or $OUT/data
- case $TARGET in
- /system/*|/data/*)
- # Get out file from target (i.e. /system/bin/adb)
- FILE=$OUT$TARGET
- ;;
- *) continue ;;
- esac
-
- case $TARGET in
- /data/*)
- # fs_config only sets permissions and se labels for files pushed to /system
- if [ -n "$CHKPERM" ]; then
- OLDPERM=$(adb shell $CHKPERM $TARGET)
- OLDPERM=$(echo $OLDPERM | tr -d '\r' | tr -d '\n')
- OLDOWN=$(adb shell ls -al $TARGET | awk '{print $2}')
- OLDGRP=$(adb shell ls -al $TARGET | awk '{print $3}')
- fi
- echo "Pushing: $TARGET"
- adb push $FILE $TARGET
- if [ -n "$OLDPERM" ]; then
- echo "Setting file permissions: $OLDPERM, $OLDOWN":"$OLDGRP"
- adb shell chown "$OLDOWN":"$OLDGRP" $TARGET
- adb shell chmod "$OLDPERM" $TARGET
- else
- echo "$TARGET did not exist previously, you should set file permissions manually"
- fi
- adb shell restorecon "$TARGET"
- ;;
- /system/priv-app/SystemUI/SystemUI.apk|/system/framework/*)
- # Only need to stop services once
- if ! $stop_n_start; then
- adb shell stop
- stop_n_start=true
- fi
- echo "Pushing: $TARGET"
- adb push $FILE $TARGET
- ;;
- *)
- echo "Pushing: $TARGET"
- adb push $FILE $TARGET
- ;;
- esac
- done
- if [ -n "$CHKPERM" ]; then
- adb shell rm $CHKPERM
- fi
- if $stop_n_start; then
- adb shell start
- fi
- rm -f $OUT/.log
- return 0
- else
- echo "The connected device does not appear to be $LINEAGE_BUILD, run away!"
- fi
-}
-
-alias mmp='dopush mm'
-alias mmmp='dopush mmm'
-alias mmap='dopush mma'
-alias mmmap='dopush mmma'
-alias mkap='dopush mka'
-alias cmkap='dopush cmka'
-
-function repopick() {
- T=$(gettop)
- $T/vendor/lineage/build/tools/repopick.py $@
-}
-
-function fixup_common_out_dir() {
- common_out_dir=$(get_build_var OUT_DIR)/target/common
- target_device=$(get_build_var TARGET_DEVICE)
- if [ ! -z $LINEAGE_FIXUP_COMMON_OUT ]; then
- if [ -d ${common_out_dir} ] && [ ! -L ${common_out_dir} ]; then
- mv ${common_out_dir} ${common_out_dir}-${target_device}
- ln -s ${common_out_dir}-${target_device} ${common_out_dir}
- else
- [ -L ${common_out_dir} ] && rm ${common_out_dir}
- mkdir -p ${common_out_dir}-${target_device}
- ln -s ${common_out_dir}-${target_device} ${common_out_dir}
- fi
- else
- [ -L ${common_out_dir} ] && rm ${common_out_dir}
- mkdir -p ${common_out_dir}
- fi
-}
-
-# Enable SD-LLVM if available
-if [ -d $(gettop)/prebuilts/snapdragon-llvm/toolchains ]; then
- case `uname -s` in
- Darwin)
- # Darwin is not supported yet
- ;;
- *)
- export SDCLANG=true
- export SDCLANG_PATH=$(gettop)/prebuilts/snapdragon-llvm/toolchains/llvm-Snapdragon_LLVM_for_Android_4.0/prebuilt/linux-x86_64/bin
- export SDCLANG_PATH_2=$(gettop)/prebuilts/snapdragon-llvm/toolchains/llvm-Snapdragon_LLVM_for_Android_4.0/prebuilt/linux-x86_64/bin
- export SDCLANG_LTO_DEFS=$(gettop)/vendor/lineage/build/core/sdllvm-lto-defs.mk
- ;;
- esac
-fi
diff --git a/build/soong/Android.bp b/build/soong/Android.bp
deleted file mode 100644
index 382b68ee..00000000
--- a/build/soong/Android.bp
+++ /dev/null
@@ -1,46 +0,0 @@
-bootstrap_go_package {
- name: "soong-lineage",
- pkgPath: "lineage/soong/android",
- srcs: [
- "android/config.go",
- "android/variable.go",
- ],
-}
-
-bootstrap_go_package {
- name: "soong-lineage-generator",
- pkgPath: "lineage/soong/generator",
- deps: [
- "blueprint",
- "blueprint-pathtools",
- "soong",
- "soong-android",
- "soong-shared",
- ],
- srcs: [
- "generator/generator.go",
- "generator/variables.go",
- ],
- pluginFor: ["soong_build"],
-}
-
-lineage_generator {
- name: "generated_kernel_includes",
-
- // The headers make command
- cmd: "make $(KERNEL_MAKE_FLAGS) -C $(TARGET_KERNEL_SOURCE) O=$(genDir) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) headers_install",
-
- // Directories that can be imported by a cc_* module generated_headers property
- export_include_dirs: ["usr/include", "usr/techpack/audio/include"],
-
- // Sources for dependency tracking
- dep_root: "$(TARGET_KERNEL_SOURCE)",
- dep_files: [ "Makefile", "include/**/*", "arch/$(KERNEL_ARCH)/include/**/*", "techpack/audio/include/**/*"],
-}
-
-cc_library_headers {
- name: "generated_kernel_headers",
- generated_headers: ["generated_kernel_includes"],
- export_generated_headers: ["generated_kernel_includes"],
- vendor_available: true,
-}
diff --git a/build/soong/android/config.go b/build/soong/android/config.go
deleted file mode 100644
index e926c9d8..00000000
--- a/build/soong/android/config.go
+++ /dev/null
@@ -1,13 +0,0 @@
-package android
-
-// Global config used by Lineage soong additions
-var LineageConfig = struct {
- // List of packages that are permitted
- // for java source overlays.
- JavaSourceOverlayModuleWhitelist []string
-}{
- // JavaSourceOverlayModuleWhitelist
- []string{
- "org.lineageos.hardware",
- },
-}
diff --git a/build/soong/android/variable.go b/build/soong/android/variable.go
deleted file mode 100644
index 2136f01e..00000000
--- a/build/soong/android/variable.go
+++ /dev/null
@@ -1,100 +0,0 @@
-package android
-type Product_variables struct {
- Additional_gralloc_10_usage_bits struct {
- Cppflags []string
- }
- Apply_msm8974_1440p_egl_workaround struct {
- Cflags []string
- }
- Bootloader_message_offset struct {
- Cflags []string
- }
- Has_legacy_camera_hal1 struct {
- Cflags []string
- }
- Should_skip_waiting_for_qsee struct {
- Cflags []string
- }
- Supports_hw_fde struct {
- Cflags []string
- Header_libs []string
- Shared_libs []string
- }
- Supports_hw_fde_perf struct {
- Cflags []string
- }
- Supports_legacy_hw_fde struct {
- Cflags []string
- }
- Target_omx_legacy_rescaling struct {
- Cppflags []string
- }
- Target_process_sdk_version_override struct {
- Cppflags []string
- }
- Target_shim_libs struct {
- Cppflags []string
- }
- Uses_generic_camera_parameter_library struct {
- Srcs []string
- }
- Uses_metadata_as_fde_key struct {
- Cflags []string
- }
- Uses_nvidia_enhancements struct {
- Cppflags []string
- }
- Uses_qcom_bsp_legacy struct {
- Cppflags []string
- }
- Uses_qti_camera_device struct {
- Cppflags []string
- Shared_libs []string
- }
- Uses_qcom_um_family struct {
- Cflags []string
- Srcs []string
- }
- Uses_qcom_um_3_18_family struct {
- Header_libs []string
- Shared_libs []string
- }
- Uses_qcom_um_4_4_family struct {
- Header_libs []string
- Shared_libs []string
- }
- Uses_qcom_um_4_9_family struct {
- Header_libs []string
- Shared_libs []string
- }
- Uses_qcom_um_4_14_family struct {
- Header_libs []string
- Shared_libs []string
- }
-}
-
-type ProductVariables struct {
- Additional_gralloc_10_usage_bits *string `json:",omitempty"`
- Apply_msm8974_1440p_egl_workaround *bool `json:",omitempty"`
- Bootloader_message_offset *int `json:",omitempty"`
- Has_legacy_camera_hal1 *bool `json:",omitempty"`
- Java_Source_Overlays *string `json:",omitempty"`
- Should_skip_waiting_for_qsee *bool `json:",omitempty"`
- Specific_camera_parameter_library *string `json:",omitempty"`
- Supports_hw_fde *bool `json:",omitempty"`
- Supports_hw_fde_perf *bool `json:",omitempty"`
- Supports_legacy_hw_fde *bool `json:",omitempty"`
- Target_omx_legacy_rescaling *bool `json:",omitempty"`
- Target_process_sdk_version_override *string `json:",omitempty"`
- Target_shim_libs *string `json:",omitempty"`
- Uses_generic_camera_parameter_library *bool `json:",omitempty"`
- Uses_metadata_as_fde_key *bool `json:",omitempty"`
- Uses_nvidia_enhancements *bool `json:",omitempty"`
- Uses_qcom_bsp_legacy *bool `json:",omitempty"`
- Uses_qti_camera_device *bool `json:",omitempty"`
- Uses_qcom_um_family *bool `json:",omitempty"`
- Uses_qcom_um_3_18_family *bool `json:",omitempty"`
- Uses_qcom_um_4_4_family *bool `json:",omitempty"`
- Uses_qcom_um_4_9_family *bool `json:",omitempty"`
- Uses_qcom_um_4_14_family *bool `json:",omitempty"`
-}
diff --git a/build/soong/generator/generator.go b/build/soong/generator/generator.go
deleted file mode 100644
index 7da1fde3..00000000
--- a/build/soong/generator/generator.go
+++ /dev/null
@@ -1,310 +0,0 @@
-// Copyright 2015 Google Inc. All rights reserved.
-// Copyright (C) 2018 The LineageOS 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.
-
-package generator
-
-import (
- "fmt"
- "strings"
-
- "github.com/google/blueprint"
- "github.com/google/blueprint/bootstrap"
- "github.com/google/blueprint/proptools"
-
- "android/soong/android"
- "android/soong/shared"
- "path/filepath"
-)
-
-func init() {
- android.RegisterModuleType("lineage_generator", GeneratorFactory)
-
- pctx.HostBinToolVariable("sboxCmd", "sbox")
-}
-
-var String = proptools.String
-
-var (
- pctx = android.NewPackageContext("android/soong/generator")
-)
-
-type HostToolProvider interface {
- HostToolPath() android.OptionalPath
-}
-
-type hostToolDependencyTag struct {
- blueprint.BaseDependencyTag
-}
-
-var hostToolDepTag hostToolDependencyTag
-
-type generatorProperties struct {
- // The command to run on one or more input files. Cmd supports substitution of a few variables
- // (the actual substitution is implemented in GenerateAndroidBuildActions below)
- //
- // Available variables for substitution:
- //
- // $(location): the path to the first entry in tools or tool_files
- // $(location <label>): the path to the tool or tool_file with name <label>
- // $(genDir): the sandbox directory for this tool; contains $(out)
- // $$: a literal $
- //
- Cmd *string
-
- // name of the modules (if any) that produces the host executable. Leave empty for
- // prebuilts or scripts that do not need a module to build them.
- Tools []string
-
- // Local file that is used as the tool
- Tool_files []string
-
- // List of directories to export as headers
- Export_include_dirs []string
-
- // List of directories to export as sources
- Export_source_dirs []string
-
- // Root directory for dep_files.
- // Relative to top build dir.
- Dep_root *string
-
- // Declare list of files that should be used for timestamp dependency checking
- Dep_files []string
-}
-
-type Module struct {
- android.ModuleBase
-
- properties generatorProperties
-
- rule blueprint.Rule
-
- // Tool dependencies
- implicitDeps android.Paths
- // Deps from input files declared in dep_files property.
- inputDeps android.Paths
-
- exportedIncludeDirs android.Paths
- exportedSourceDirs android.Paths
-
- outputDeps android.Paths
-}
-
-// These three methods satisfy genrule.SourceFileGenerator.
-// Which cc modules check for when including headers etc.
-func (g *Module) GeneratedHeaderDirs() android.Paths {
- return g.exportedIncludeDirs
-}
-
-func (g *Module) GeneratedSourceFiles() android.Paths {
- return g.exportedSourceDirs
-}
-
-func (g *Module) GeneratedDeps() android.Paths {
- return g.outputDeps
-}
-
-func (g *Module) DepsMutator(ctx android.BottomUpMutatorContext) {
- android.ExtractSourcesDeps(ctx, g.properties.Dep_files)
- android.ExtractSourcesDeps(ctx, g.properties.Tool_files)
- if g, ok := ctx.Module().(*Module); ok {
- if len(g.properties.Tools) > 0 {
- ctx.AddFarVariationDependencies([]blueprint.Variation{
- {"arch", ctx.Config().BuildOsVariant},
- }, hostToolDepTag, g.properties.Tools...)
- }
- }
-}
-
-func (g *Module) GenerateAndroidBuildActions(ctx android.ModuleContext) {
- if len(g.properties.Export_include_dirs) > 0 {
- for _, dir := range g.properties.Export_include_dirs {
- g.exportedIncludeDirs = append(g.exportedIncludeDirs,
- android.PathForModuleGen(ctx, dir))
- }
- } else {
- g.exportedIncludeDirs = append(g.exportedIncludeDirs, android.PathForModuleGen(ctx, ""))
- }
- if len(g.properties.Export_source_dirs) > 0 {
- for _, dir := range g.properties.Export_source_dirs {
- g.exportedSourceDirs = append(g.exportedSourceDirs,
- android.PathForModuleGen(ctx, dir))
- }
- } else {
- g.exportedSourceDirs = append(g.exportedSourceDirs, android.PathForModuleGen(ctx, ""))
- }
-
- tools := map[string]android.Path{}
-
- if len(g.properties.Tools) > 0 {
- ctx.VisitDirectDepsBlueprint(func(module blueprint.Module) {
- switch ctx.OtherModuleDependencyTag(module) {
- case android.SourceDepTag:
- // Nothing to do
- case hostToolDepTag:
- tool := ctx.OtherModuleName(module)
- var path android.OptionalPath
-
- if t, ok := module.(HostToolProvider); ok {
- if !t.(android.Module).Enabled() {
- if ctx.Config().AllowMissingDependencies() {
- ctx.AddMissingDependencies([]string{tool})
- } else {
- ctx.ModuleErrorf("depends on disabled module %q", tool)
- }
- break
- }
- path = t.HostToolPath()
- } else if t, ok := module.(bootstrap.GoBinaryTool); ok {
- if s, err := filepath.Rel(android.PathForOutput(ctx).String(), t.InstallPath()); err == nil {
- path = android.OptionalPathForPath(android.PathForOutput(ctx, s))
- } else {
- ctx.ModuleErrorf("cannot find path for %q: %v", tool, err)
- break
- }
- } else {
- ctx.ModuleErrorf("%q is not a host tool provider", tool)
- break
- }
-
- if path.Valid() {
- g.implicitDeps = append(g.implicitDeps, path.Path())
- if _, exists := tools[tool]; !exists {
- tools[tool] = path.Path()
- } else {
- ctx.ModuleErrorf("multiple tools for %q, %q and %q", tool, tools[tool], path.Path().String())
- }
- } else {
- ctx.ModuleErrorf("host tool %q missing output file", tool)
- }
- default:
- ctx.ModuleErrorf("unknown dependency on %q", ctx.OtherModuleName(module))
- }
- })
- }
-
- if ctx.Failed() {
- return
- }
-
- toolFiles := ctx.ExpandSources(g.properties.Tool_files, nil)
- for _, tool := range toolFiles {
- g.implicitDeps = append(g.implicitDeps, tool)
- if _, exists := tools[tool.Rel()]; !exists {
- tools[tool.Rel()] = tool
- } else {
- ctx.ModuleErrorf("multiple tools for %q, %q and %q", tool, tools[tool.Rel()], tool.Rel())
- }
- }
-
- // Determine root dir for dep_files. Defaults to current ctx ModuleDir.
- depRoot := String(g.properties.Dep_root)
- if depRoot == "" {
- depRoot = ctx.ModuleDir()
- } else {
- depRoot = lineageExpandVariables(ctx, depRoot)
- }
-
- // Glob dep_files property
- for _, dep_file := range g.properties.Dep_files {
- dep_file = lineageExpandVariables(ctx, dep_file)
- globPath := filepath.Join(depRoot, dep_file)
- paths, err := ctx.GlobWithDeps(globPath, nil)
- if err != nil {
- ctx.ModuleErrorf("unable to glob %s: %s", globPath, err.Error())
- return
- }
- for _, path := range paths {
- g.inputDeps = append(g.inputDeps, android.PathForSourceRelaxed(ctx, path))
- }
- }
-
- cmd := lineageExpandVariables(ctx, String(g.properties.Cmd))
-
- rawCommand, err := android.Expand(cmd, func(name string) (string, error) {
- switch name {
- case "location":
- if len(g.properties.Tools) == 0 && len(toolFiles) == 0 {
- return "", fmt.Errorf("at least one `tools` or `tool_files` is required if $(location) is used")
- }
-
- if len(g.properties.Tools) > 0 {
- return tools[g.properties.Tools[0]].String(), nil
- } else {
- return tools[toolFiles[0].Rel()].String(), nil
- }
- case "genDir":
- return "__SBOX_OUT_DIR__", nil
- default:
- if strings.HasPrefix(name, "location ") {
- label := strings.TrimSpace(strings.TrimPrefix(name, "location "))
- if tool, ok := tools[label]; ok {
- return tool.String(), nil
- } else {
- return "", fmt.Errorf("unknown location label %q", label)
- }
- }
- return "", fmt.Errorf("unknown variable '$(%s)'", name)
- }
- })
-
- if err != nil {
- ctx.PropertyErrorf("cmd", "%s", err.Error())
- return
- }
-
- // Dummy output dep
- dummyDep := android.PathForModuleGen(ctx, ".dummy_dep")
-
- // tell the sbox command which directory to use as its sandbox root
- buildDir := android.PathForOutput(ctx).String()
- sandboxPath := shared.TempDirForOutDir(buildDir)
-
- genDir := android.PathForModuleGen(ctx)
- // Escape the command for the shell
- rawCommand = "'" + strings.Replace(rawCommand, "'", `'\''`, -1) + "'"
- sandboxCommand := fmt.Sprintf("$sboxCmd --sandbox-path %s --output-root %s --copy-all-output -c %s && touch %s",
- sandboxPath, genDir, rawCommand, dummyDep.String())
-
- ruleParams := blueprint.RuleParams{
- Command: sandboxCommand,
- CommandDeps: []string{"$sboxCmd"},
- }
- g.rule = ctx.Rule(pctx, "generator", ruleParams)
-
- params := android.BuildParams{
- Rule: g.rule,
- Description: "generate",
- Output: dummyDep,
- Inputs: g.inputDeps,
- Implicits: g.implicitDeps,
- }
-
- g.outputDeps = append(g.outputDeps, dummyDep)
-
- ctx.Build(pctx, params)
-}
-
-func NewGenerator() *Module {
- module := &Module{}
- module.AddProperties(&module.properties)
- return module
-}
-
-func GeneratorFactory() android.Module {
- m := NewGenerator()
- android.InitAndroidModule(m)
- return m
-}
diff --git a/build/soong/generator/variables.go b/build/soong/generator/variables.go
deleted file mode 100644
index 8485f94b..00000000
--- a/build/soong/generator/variables.go
+++ /dev/null
@@ -1,28 +0,0 @@
-package generator
-
-import (
- "fmt"
-
- "android/soong/android"
-)
-
-func lineageExpandVariables(ctx android.ModuleContext, in string) string {
- lineageVars := ctx.Config().VendorConfig("lineageVarsPlugin")
-
- out, err := android.Expand(in, func(name string) (string, error) {
- if lineageVars.IsSet(name) {
- return lineageVars.String(name), nil
- }
- // This variable is not for us, restore what the original
- // variable string will have looked like for an Expand
- // that comes later.
- return fmt.Sprintf("$(%s)", name), nil
- })
-
- if err != nil {
- ctx.PropertyErrorf("%s: %s", in, err.Error())
- return ""
- }
-
- return out
-}
diff --git a/build/soong/soong_config.mk b/build/soong/soong_config.mk
deleted file mode 100644
index 0820d67b..00000000
--- a/build/soong/soong_config.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-add_json_str_omitempty = $(if $(strip $(2)),$(call add_json_str, $(1), $(2)))
-add_json_val_default = $(call add_json_val, $(1), $(if $(strip $(2)), $(2), $(3)))
-
-_contents := $(_contents) "Lineage":{$(newline)
-
-# See build/core/soong_config.mk for the add_json_* functions you can use here.
-$(call add_json_str_omitempty, Additional_gralloc_10_usage_bits, $(TARGET_ADDITIONAL_GRALLOC_10_USAGE_BITS))
-$(call add_json_bool, Apply_msm8974_1440p_egl_workaround, $(filter true,$(TARGET_MSM8974_1440P_EGL_WORKAROUND)))
-$(call add_json_val_default, Bootloader_message_offset, $(BOOTLOADER_MESSAGE_OFFSET), 0)
-$(call add_json_bool, Has_legacy_camera_hal1, $(filter true,$(TARGET_HAS_LEGACY_CAMERA_HAL1)))
-$(call add_json_str, Java_Source_Overlays, $(JAVA_SOURCE_OVERLAYS))
-$(call add_json_bool, Should_skip_waiting_for_qsee, $(filter true,$(TARGET_KEYMASTER_SKIP_WAITING_FOR_QSEE)))
-$(call add_json_str, Specific_camera_parameter_library, $(TARGET_SPECIFIC_CAMERA_PARAMETER_LIBRARY))
-$(call add_json_bool, Supports_hw_fde, $(filter true,$(TARGET_HW_DISK_ENCRYPTION)))
-$(call add_json_bool, Supports_hw_fde_perf, $(filter true,$(TARGET_HW_DISK_ENCRYPTION_PERF)))
-$(call add_json_bool, Supports_legacy_hw_fde, $(filter true,$(TARGET_LEGACY_HW_DISK_ENCRYPTION)))
-$(call add_json_bool, Target_omx_legacy_rescaling, $(filter true,$(TARGET_OMX_LEGACY_RESCALING)))
-$(call add_json_str_omitempty, Target_process_sdk_version_override, $(TARGET_PROCESS_SDK_VERSION_OVERRIDE))
-$(call add_json_str_omitempty, Target_shim_libs, $(TARGET_LD_SHIM_LIBS))
-$(call add_json_bool, Uses_generic_camera_parameter_library, $(if $(TARGET_SPECIFIC_CAMERA_PARAMETER_LIBRARY),,true))
-$(call add_json_bool, Uses_metadata_as_fde_key, $(filter true,$(TARGET_USES_METADATA_AS_FDE_KEY)))
-$(call add_json_bool, Uses_nvidia_enhancements, $(filter true,$(NV_ANDROID_FRAMEWORK_ENHANCEMENTS)))
-$(call add_json_bool, Uses_qcom_bsp_legacy, $(filter true,$(TARGET_USES_QCOM_BSP_LEGACY)))
-$(call add_json_bool, Uses_qti_camera_device, $(filter true,$(TARGET_USES_QTI_CAMERA_DEVICE)))
-$(call add_json_bool, Uses_qcom_um_family, $(filter true,$(TARGET_USES_QCOM_UM_FAMILY)))
-$(call add_json_bool, Uses_qcom_um_3_18_family, $(filter true,$(TARGET_USES_QCOM_UM_3_18_FAMILY)))
-$(call add_json_bool, Uses_qcom_um_4_4_family, $(filter true,$(TARGET_USES_QCOM_UM_4_4_FAMILY)))
-$(call add_json_bool, Uses_qcom_um_4_9_family, $(filter true,$(TARGET_USES_QCOM_UM_4_9_FAMILY)))
-$(call add_json_bool, Uses_qcom_um_4_14_family, $(filter true,$(TARGET_USES_QCOM_UM_4_14_FAMILY)))
-
-# This causes the build system to strip out the last comma in our nested struct, to keep the JSON valid.
-_contents := $(_contents)__SV_END
-
-_contents := $(_contents) },$(newline)
diff --git a/build/target/product/AndroidProducts.mk b/build/target/product/AndroidProducts.mk
deleted file mode 100644
index d92c4673..00000000
--- a/build/target/product/AndroidProducts.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# Copyright (C) 2018 The LineageOS 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_MAKEFILES := \
- $(LOCAL_DIR)/lineage_arm.mk \
- $(LOCAL_DIR)/lineage_arm64.mk \
- $(LOCAL_DIR)/lineage_x86.mk \
- $(LOCAL_DIR)/lineage_x86_64.mk
diff --git a/build/target/product/lineage_arm.mk b/build/target/product/lineage_arm.mk
deleted file mode 100644
index 97bbe3e2..00000000
--- a/build/target/product/lineage_arm.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (C) 2018-2019 The LineageOS 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.
-
-$(call inherit-product, build/target/product/aosp_arm.mk)
-
-include vendor/lineage/build/target/product/lineage_generic_target.mk
-
-TARGET_USES_64_BIT_BINDER := true
-
-PRODUCT_NAME := lineage_arm
diff --git a/build/target/product/lineage_arm64.mk b/build/target/product/lineage_arm64.mk
deleted file mode 100644
index b46c4e51..00000000
--- a/build/target/product/lineage_arm64.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (C) 2018-2019 The LineageOS 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.
-
-$(call inherit-product, build/target/product/aosp_arm64.mk)
-
-include vendor/lineage/build/target/product/lineage_generic_target.mk
-
-PRODUCT_NAME := lineage_arm64
diff --git a/build/target/product/lineage_generic_target.mk b/build/target/product/lineage_generic_target.mk
deleted file mode 100644
index aa380844..00000000
--- a/build/target/product/lineage_generic_target.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright (C) 2019 The LineageOS 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.
-
-$(call inherit-product, vendor/lineage/config/common_mobile.mk)
-
-PRODUCT_COPY_FILES += \
- device/generic/goldfish/data/etc/permissions/privapp-permissions-goldfish.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/permissions/privapp-permissions-goldfish.xml \
-
-# Allow building otatools
-TARGET_FORCE_OTA_PACKAGE := true
-
-PRODUCT_SDK_ADDON_NAME := lineage
-PRODUCT_SDK_ADDON_SYS_IMG_SOURCE_PROP := $(LOCAL_PATH)/source.properties
diff --git a/build/target/product/lineage_x86.mk b/build/target/product/lineage_x86.mk
deleted file mode 100644
index 8dc75757..00000000
--- a/build/target/product/lineage_x86.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (C) 2018-2019 The LineageOS 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.
-
-$(call inherit-product, build/target/product/aosp_x86.mk)
-
-include vendor/lineage/build/target/product/lineage_generic_target.mk
-
-TARGET_USES_64_BIT_BINDER := true
-
-PRODUCT_NAME := lineage_x86
diff --git a/build/target/product/lineage_x86_64.mk b/build/target/product/lineage_x86_64.mk
deleted file mode 100644
index 69418b10..00000000
--- a/build/target/product/lineage_x86_64.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright (C) 2018-2019 The LineageOS 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.
-
-$(call inherit-product, build/target/product/aosp_x86_64.mk)
-
-include vendor/lineage/build/target/product/lineage_generic_target.mk
-
-PRODUCT_NAME := lineage_x86_64
diff --git a/build/target/product/security/lineage.x509.pem b/build/target/product/security/lineage.x509.pem
deleted file mode 100644
index edbe4695..00000000
--- a/build/target/product/security/lineage.x509.pem
+++ /dev/null
@@ -1,23 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDszCCApugAwIBAgIJAOEEE8dzw8VPMA0GCSqGSIb3DQEBBQUAMHAxCzAJBgNV
-BAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9uMRAwDgYDVQQHDAdTZWF0dGxlMRIw
-EAYDVQQKDAlMaW5lYWdlT1MxEjAQBgNVBAsMCUxpbmVhZ2VPUzESMBAGA1UEAwwJ
-TGluZWFnZU9TMB4XDTE3MDEwNzA0MjEyNVoXDTQ0MDUyNTA0MjEyNVowcDELMAkG
-A1UEBhMCVVMxEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUx
-EjAQBgNVBAoMCUxpbmVhZ2VPUzESMBAGA1UECwwJTGluZWFnZU9TMRIwEAYDVQQD
-DAlMaW5lYWdlT1MwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCmTdPh
-+EIDj/A/Z7jpvwlTD8KRPLU+NlTHjsINvIsecRNijKWrwIYFYMtELBtR+Yttzl5Z
-xJA38n9k9IrvBJCrmRBvCAeiEw4aizqs2DTmVvCFS2Amd7ZsAHsUwtDCjQ3GE0He
-ZI2HnbWannnhKIhzGjuxxh+1j3JawHHeErYQk97MVoWsJHTO4s8i8ORL8ghBDZHF
-0fYKp5RVSIIrrXVqcOD+F8g/NeX6Wb5N0rRGBI+bQjMhhv8KpH7TnCEN6f2YHFVx
-nsjzDKrEQVwhYF8T9X0OzfBoLEhOlFZ0jevoDi8uCxz0f7ldkv/0Zz4W9jeB87LH
-zUuQQEGr6134UFmZAgMBAAGjUDBOMB0GA1UdDgQWBBRyljIn1mxMTV+gkWrCLHk8
-1F9DXDAfBgNVHSMEGDAWgBRyljIn1mxMTV+gkWrCLHk81F9DXDAMBgNVHRMEBTAD
-AQH/MA0GCSqGSIb3DQEBBQUAA4IBAQCKJH4ByccucWfewkmT8j9TnAdhjCgZ7k0+
-rpbSgxc66+ESRpQFxMSAUu8exy8pSawGd7SerFBVvqL+dajdPfyLPM+I+xDEoMJ3
-ncKGHoC0RRKMGEhc4rS090/wOJJHZZtThlcjdND5vybMwmHngzl8o4CNWhneJvjb
-hNkqxocrC9vGCsdo5Kx00ULn8sXVwcq7yl0bqtuSMlKxm6CVA3DVVnB8N8OZyTam
-fgj9F0jOpWVtit1/ohd+1jB5bY3g+ulXCydKBFkJhNXAZf4welNG61SWLkH1gNGk
-SEYxEuLV9JGjm7n5oqDKxYVcKKNfvbGtSmrqsq6i+QVuc/xIdzfr
------END CERTIFICATE-----
-
diff --git a/build/target/product/source.properties b/build/target/product/source.properties
deleted file mode 100644
index 11d524e9..00000000
--- a/build/target/product/source.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-Pkg.Desc=LineageOS System Image API ${PLATFORM_VERSION} ${TARGET_CPU_ABI}
-Pkg.Revision=1
-AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
-SystemImage.Abi=${TARGET_CPU_ABI}
-SystemImage.TagId=lineage
-SystemImage.TagDisplay=LineageOS
-
diff --git a/build/tasks/addonsu.mk b/build/tasks/addonsu.mk
deleted file mode 100644
index 8f963872..00000000
--- a/build/tasks/addonsu.mk
+++ /dev/null
@@ -1,41 +0,0 @@
-ADDONSU_PREBUILTS_PATH := vendor/lineage/addonsu/
-
-ADDONSU_INSTALL_OUT := $(PRODUCT_OUT)/addonsu-install/
-ADDONSU_INSTALL_TARGET := $(PRODUCT_OUT)/addonsu-$(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(TARGET_ARCH).zip
-
-$(ADDONSU_INSTALL_TARGET): $(ALL_MODULES.updater.BUILT) \
- $(ALL_MODULES.su.BUILT) $(ALL_MODULES.su.PATH)/superuser.rc
- $(hide) rm -rf $@ $(ADDONSU_INSTALL_OUT)
- $(hide) mkdir -p $(ADDONSU_INSTALL_OUT)/META-INF/com/google/android/
- $(hide) mkdir -p $(ADDONSU_INSTALL_OUT)/system/xbin
- $(hide) mkdir -p $(ADDONSU_INSTALL_OUT)/system/addon.d
- $(hide) mkdir -p $(ADDONSU_INSTALL_OUT)/system/etc/init
- $(hide) cp $(ALL_MODULES.su.BUILT) $(ADDONSU_INSTALL_OUT)/system/xbin/
- $(hide) cp $(ALL_MODULES.su.PATH)/superuser.rc $(ADDONSU_INSTALL_OUT)/system/etc/init/
- $(hide) cp $(ALL_MODULES.updater.BUILT) $(ADDONSU_INSTALL_OUT)/META-INF/com/google/android/update-binary
- $(hide) cp $(ADDONSU_PREBUILTS_PATH)/51-addonsu.sh $(ADDONSU_INSTALL_OUT)/system/addon.d/
- $(hide) cp $(ADDONSU_PREBUILTS_PATH)/mount-system.sh $(ADDONSU_INSTALL_OUT)/
- $(hide) cp $(ADDONSU_PREBUILTS_PATH)/unmount-system.sh $(ADDONSU_INSTALL_OUT)/
- $(hide) cp $(ADDONSU_PREBUILTS_PATH)/updater-script-install $(ADDONSU_INSTALL_OUT)/META-INF/com/google/android/updater-script
- $(hide) (cd $(ADDONSU_INSTALL_OUT) && zip -qr $@ *)
-
-.PHONY: addonsu
-addonsu: $(ADDONSU_INSTALL_TARGET)
- @echo "Done: $(ADDONSU_INSTALL_TARGET)"
-
-
-ADDONSU_REMOVE_OUT := $(PRODUCT_OUT)/addonsu-remove/
-ADDONSU_REMOVE_TARGET := $(PRODUCT_OUT)/addonsu-remove-$(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(TARGET_ARCH).zip
-
-$(ADDONSU_REMOVE_TARGET): $(ALL_MODULES.updater.BUILT)
- $(hide) rm -rf $@ $(ADDONSU_REMOVE_OUT)
- $(hide) mkdir -p $(ADDONSU_REMOVE_OUT)/META-INF/com/google/android/
- $(hide) cp $(ALL_MODULES.updater.BUILT) $(ADDONSU_REMOVE_OUT)/META-INF/com/google/android/update-binary
- $(hide) cp $(ADDONSU_PREBUILTS_PATH)/mount-system.sh $(ADDONSU_REMOVE_OUT)/
- $(hide) cp $(ADDONSU_PREBUILTS_PATH)/unmount-system.sh $(ADDONSU_REMOVE_OUT)/
- $(hide) cp $(ADDONSU_PREBUILTS_PATH)/updater-script-remove $(ADDONSU_REMOVE_OUT)/META-INF/com/google/android/updater-script
- $(hide) (cd $(ADDONSU_REMOVE_OUT) && zip -qr $@ *)
-
-.PHONY: addonsu-remove
-addonsu-remove: $(ADDONSU_REMOVE_TARGET)
- @echo "Done: $(ADDONSU_REMOVE_TARGET)"
diff --git a/build/tasks/apicheck.mk b/build/tasks/apicheck.mk
deleted file mode 100644
index 6b2c85b9..00000000
--- a/build/tasks/apicheck.mk
+++ /dev/null
@@ -1,92 +0,0 @@
-# Copyright (C) 2015 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.
-
-#
-# Rules for running apicheck to confirm that you haven't broken
-# api compatibility or added apis illegally.
-#
-
-# skip api check for PDK buid
-ifeq (,$(filter true, $(WITHOUT_CHECK_API) $(TARGET_BUILD_PDK) $(TARGET_DISABLE_LINEAGE_SDK)))
-
-.PHONY: checkapi-lineage
-
-# Run the checkapi rules by default.
-droidcore: checkapi-lineage
-
-# Validate against previous release platform sdk version api text within prebuilts
-lineage_last_released_sdk_version := $(LINEAGE_PLATFORM_SDK_VERSION)
-
-.PHONY: check-lineage-public-api
-checkapi-lineage : check-lineage-public-api
-
-.PHONY: update-lineage-api
-
-# INTERNAL_LINEAGE_PLATFORM_API_FILE is the one build by droiddoc.
-# Note that since INTERNAL_LINEAGE_PLATFORM_API_FILE is the byproduct of api-stubs module,
-# (See lineage-sdk/Android.mk)
-# we need to add api-stubs as additional dependency of the api check.
-
-$(INTERNAL_LINEAGE_PLATFORM_API_FILE): lineage-api-stubs-docs
-
-# Check that the API we're building hasn't broken the last-released
-# SDK version.
-$(eval $(call check-api, \
- checkpublicapi-lineage-last, \
- $(LINEAGE_SRC_API_DIR)/$(lineage_last_released_sdk_version).txt, \
- $(INTERNAL_LINEAGE_PLATFORM_API_FILE), \
- $(FRAMEWORK_LINEAGE_PLATFORM_REMOVED_API_FILE), \
- $(INTERNAL_LINEAGE_PLATFORM_REMOVED_API_FILE), \
- -hide 2 -hide 3 -hide 4 -hide 5 -hide 6 -hide 24 -hide 25 -hide 26 -hide 27 \
- -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \
- -error 16 -error 17 -error 18 , \
- cat $(FRAMEWORK_LINEAGE_API_NEEDS_UPDATE_TEXT), \
- check-lineage-public-api, \
- $(call doc-timestamp-for,lineage-api-stubs) \
- ))
-
-# Check that the API we're building hasn't changed from the not-yet-released
-# SDK version.
-$(eval $(call check-api, \
- checkpublicapi-lineage-current, \
- $(FRAMEWORK_LINEAGE_PLATFORM_API_FILE), \
- $(INTERNAL_LINEAGE_PLATFORM_API_FILE), \
- $(FRAMEWORK_LINEAGE_PLATFORM_REMOVED_API_FILE), \
- $(INTERNAL_LINEAGE_PLATFORM_REMOVED_API_FILE), \
- -error 2 -error 3 -error 4 -error 5 -error 6 \
- -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 \
- -error 16 -error 17 -error 18 -error 19 -error 20 -error 21 -error 23 -error 24 \
- -error 25 -error 26 -error 27, \
- cat $(FRAMEWORK_LINEAGE_API_NEEDS_UPDATE_TEXT), \
- check-lineage-public-api, \
- $(call doc-timestamp-for,lineage-api-stubs) \
- ))
-
-.PHONY: update-lineage-public-api
-update-lineage-public-api: $(INTERNAL_LINEAGE_PLATFORM_API_FILE) | $(ACP)
- @echo "Copying lineage_current.txt"
- $(hide) $(ACP) $(INTERNAL_LINEAGE_PLATFORM_API_FILE) $(FRAMEWORK_LINEAGE_PLATFORM_API_FILE)
- @echo "Copying lineage_removed.txt"
- $(hide) $(ACP) $(INTERNAL_LINEAGE_PLATFORM_REMOVED_API_FILE) $(FRAMEWORK_LINEAGE_PLATFORM_REMOVED_API_FILE)
-
-update-lineage-api : update-lineage-public-api
-
-.PHONY: update-lineage-prebuilts-latest-public-api
-current_sdk_release_text_file := $(LINEAGE_SRC_API_DIR)/$(lineage_last_released_sdk_version).txt
-
-update-lineage-prebuilts-latest-public-api: $(FRAMEWORK_LINEAGE_PLATFORM_API_FILE) | $(ACP)
- @echo "Publishing lineage_current.txt as latest API release"
- $(hide) $(ACP) $(FRAMEWORK_LINEAGE_PLATFORM_API_FILE) $(current_sdk_release_text_file)
-
-endif
diff --git a/build/tasks/bacon.mk b/build/tasks/bacon.mk
deleted file mode 100644
index f0184400..00000000
--- a/build/tasks/bacon.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright (C) 2017 Unlegacy-Android
-# Copyright (C) 2017 The LineageOS 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.
-
-# -----------------------------------------------------------------
-# Lineage OTA update package
-
-LINEAGE_TARGET_PACKAGE := $(PRODUCT_OUT)/lineage-$(LINEAGE_VERSION).zip
-
-.PHONY: bacon
-bacon: $(INTERNAL_OTA_PACKAGE_TARGET)
- $(hide) ln -f $(INTERNAL_OTA_PACKAGE_TARGET) $(LINEAGE_TARGET_PACKAGE)
- $(hide) $(MD5SUM) $(LINEAGE_TARGET_PACKAGE) | sed "s|$(PRODUCT_OUT)/||" > $(LINEAGE_TARGET_PACKAGE).md5sum
- @echo "Package Complete: $(LINEAGE_TARGET_PACKAGE)" >&2
diff --git a/build/tasks/dt_image.mk b/build/tasks/dt_image.mk
deleted file mode 100644
index 2e68bfb7..00000000
--- a/build/tasks/dt_image.mk
+++ /dev/null
@@ -1,65 +0,0 @@
-#----------------------------------------------------------------------
-# Generate device tree image (dt.img)
-#----------------------------------------------------------------------
-ifeq ($(strip $(BOARD_CUSTOM_BOOTIMG_MK)),)
-ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DT)),true)
-INSTALLED_DTIMAGE_TARGET := $(PRODUCT_OUT)/dt.img
-
-ifeq ($(strip $(BOARD_KERNEL_PREBUILT_DT)),)
-
-ifeq ($(strip $(TARGET_CUSTOM_DTBTOOL)),)
-DTBTOOL_NAME := dtbToolLineage
-else
-DTBTOOL_NAME := $(TARGET_CUSTOM_DTBTOOL)
-endif
-
-DTBTOOL := $(HOST_OUT_EXECUTABLES)/$(DTBTOOL_NAME)$(HOST_EXECUTABLE_SUFFIX)
-
-ifeq ($(strip $(TARGET_CUSTOM_DTBTOOL)),)
-# dtbToolLineage will search subdirectories
-possible_dtb_dirs = $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/
-else
-# Most specific paths must come first in possible_dtb_dirs
-possible_dtb_dirs = $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/dts/ $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/
-endif
-
-define build-dtimage-target
- $(call pretty,"Target dt image: $@")
- $(hide) for dir in $(possible_dtb_dirs); do \
- if [ -d "$$dir" ]; then \
- dtb_dir="$$dir"; \
- break; \
- fi; \
- done; \
- $(DTBTOOL) $(BOARD_DTBTOOL_ARGS) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ "$$dtb_dir";
- $(hide) chmod a+r $@
-endef
-
-ifeq ($(strip $(BOARD_KERNEL_LZ4C_DT)),true)
-LZ4_DT_IMAGE := $(PRODUCT_OUT)/dt-lz4.img
-endif
-
-$(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(INSTALLED_KERNEL_TARGET)
- $(build-dtimage-target)
-ifeq ($(strip $(BOARD_KERNEL_LZ4C_DT)),true)
- lz4 -9 < $@ > $(LZ4_DT_IMAGE) || lz4c -c1 -y $@ $(LZ4_DT_IMAGE)
- $(hide) $(ACP) $(LZ4_DT_IMAGE) $@
-endif
- @echo "Made DT image: $@"
-
-else
-
-$(INSTALLED_DTIMAGE_TARGET) : $(BOARD_KERNEL_PREBUILT_DT) | $(ACP)
- $(transform-prebuilt-to-target)
-
-endif # BOARD_KERNEL_PREBUILT_DT
-
-ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTIMAGE_TARGET)
-ALL_MODULES.$(LOCAL_MODULE).INSTALLED += $(INSTALLED_DTIMAGE_TARGET)
-
-.PHONY: dtimage
-dtimage: $(INSTALLED_DTIMAGE_TARGET)
-
-
-endif
-endif
diff --git a/build/tasks/dtbo.mk b/build/tasks/dtbo.mk
deleted file mode 100644
index 674eae0a..00000000
--- a/build/tasks/dtbo.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-ifneq ($(TARGET_NO_KERNEL),true)
-ifeq ($(strip $(BOARD_KERNEL_SEPARATED_DTBO)),true)
-
-MKDTIMG := $(HOST_OUT_EXECUTABLES)/mkdtimg$(HOST_EXECUTABLE_SUFFIX)
-
-BOARD_PREBUILT_DTBOIMAGE := $(PRODUCT_OUT)/dtbo-pre.img
-
-# Most specific paths must come first in possible_dtbo_dirs
-possible_dtbo_dirs = $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/dts $(KERNEL_OUT)/arch/arm/boot/dts
-
-define build-dtboimage-target
- $(call pretty,"Target dtbo image: $(BOARD_PREBUILT_DTBOIMAGE)")
- $(hide) for dir in $(possible_dtbo_dirs); do \
- if [ -d "$$dir" ]; then \
- dtbo_dir="$$dir"; \
- break; \
- fi; \
- done; \
- $(MKDTIMG) create $@ --page_size=$(BOARD_KERNEL_PAGESIZE) $$(find "$$dtbo_dir" -name '*.dtbo')
- $(hide) chmod a+r $@
-endef
-
-$(BOARD_PREBUILT_DTBOIMAGE): $(MKDTIMG) $(INSTALLED_KERNEL_TARGET)
- $(build-dtboimage-target)
-
-endif # BOARD_KERNEL_SEPARATED_DTBO
-endif # TARGET_NO_KERNEL
diff --git a/build/tasks/generate_lineage_sdk_coverage.mk b/build/tasks/generate_lineage_sdk_coverage.mk
deleted file mode 100644
index dca3df9f..00000000
--- a/build/tasks/generate_lineage_sdk_coverage.mk
+++ /dev/null
@@ -1,77 +0,0 @@
-#
-# Copyright (C) 2010 The Android Open Source Project
-# 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.
-#
-
-# Makefile for producing lineage sdk coverage reports.
-# Run "make lineage-sdk-test-coverage" in the $ANDROID_BUILD_TOP directory.
-
-lineage_sdk_api_coverage_exe := $(HOST_OUT_EXECUTABLES)/lineage-sdk-api-coverage
-dexdeps_exe := $(HOST_OUT_EXECUTABLES)/dexdeps
-
-coverage_out := $(HOST_OUT)/lineage-sdk-api-coverage
-
-api_text_description := lineage-sdk/api/lineage_current.txt
-api_xml_description := $(coverage_out)/api.xml
-$(api_xml_description) : $(api_text_description) $(APICHECK)
- $(hide) echo "Converting API file to XML: $@"
- $(hide) mkdir -p $(dir $@)
- $(hide) $(APICHECK_COMMAND) -convert2xml $< $@
-
-lineage-sdk-test-coverage-report := $(coverage_out)/lineage-sdk-test-coverage.html
-
-lineage_sdk_tests_apk := $(call intermediates-dir-for,APPS,LineagePlatformTests)/package.apk
-lineagesettingsprovider_tests_apk := $(call intermediates-dir-for,APPS,LineageSettingsProviderTests)/package.apk
-lineage_sdk_api_coverage_dependencies := $(lineage_sdk_api_coverage_exe) $(dexdeps_exe) $(api_xml_description)
-
-$(lineage-sdk-test-coverage-report): PRIVATE_TEST_CASES := $(lineage_sdk_tests_apk) $(lineagesettingsprovider_tests_apk)
-$(lineage-sdk-test-coverage-report): PRIVATE_LINEAGE_SDK_API_COVERAGE_EXE := $(lineage_sdk_api_coverage_exe)
-$(lineage-sdk-test-coverage-report): PRIVATE_DEXDEPS_EXE := $(dexdeps_exe)
-$(lineage-sdk-test-coverage-report): PRIVATE_API_XML_DESC := $(api_xml_description)
-$(lineage-sdk-test-coverage-report): $(lineage_sdk_tests_apk) $(lineagesettingsprovider_tests_apk) $(lineage_sdk_api_coverage_dependencies) | $(ACP)
- $(call generate-lineage-coverage-report,"LINEAGE-SDK API Coverage Report",\
- $(PRIVATE_TEST_CASES),html)
-
-.PHONY: lineage-sdk-test-coverage
-lineage-sdk-test-coverage : $(lineage-sdk-test-coverage-report)
-
-# Put the test coverage report in the dist dir if "lineage-sdk" is among the build goals.
-ifneq ($(filter lineage-sdk, $(MAKECMDGOALS)),)
- $(call dist-for-goals, lineage-sdk, $(lineage-sdk-test-coverage-report):lineage-sdk-test-coverage-report.html)
-endif
-
-# Arguments;
-# 1 - Name of the report printed out on the screen
-# 2 - List of apk files that will be scanned to generate the report
-# 3 - Format of the report
-define generate-lineage-coverage-report
- $(hide) mkdir -p $(dir $@)
- $(hide) $(PRIVATE_LINEAGE_SDK_API_COVERAGE_EXE) -d $(PRIVATE_DEXDEPS_EXE) -a $(PRIVATE_API_XML_DESC) -f $(3) -o $@ $(2) -cm
- @ echo $(1): file://$@
-endef
-
-# Reset temp vars
-lineage_sdk_api_coverage_dependencies :=
-lineage-sdk-combined-coverage-report :=
-lineage-sdk-combined-xml-coverage-report :=
-lineage-sdk-verifier-coverage-report :=
-lineage-sdk-test-coverage-report :=
-api_xml_description :=
-api_text_description :=
-coverage_out :=
-dexdeps_exe :=
-lineage_sdk_api_coverage_exe :=
-lineage_sdk_verifier_apk :=
-android_lineage_sdk_zip :=
diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk
deleted file mode 100644
index e5e59604..00000000
--- a/build/tasks/kernel.mk
+++ /dev/null
@@ -1,311 +0,0 @@
-# Copyright (C) 2012 The CyanogenMod Project
-# (C) 2017 The LineageOS 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.
-
-
-# Android makefile to build kernel as a part of Android Build
-#
-# Configuration
-# =============
-#
-# These config vars are usually set in BoardConfig.mk:
-#
-# TARGET_KERNEL_CONFIG = Kernel defconfig
-# TARGET_KERNEL_VARIANT_CONFIG = Variant defconfig, optional
-# TARGET_KERNEL_SELINUX_CONFIG = SELinux defconfig, optional
-# TARGET_KERNEL_ADDITIONAL_CONFIG = Additional defconfig, optional
-#
-# TARGET_KERNEL_CLANG_COMPILE = Compile kernel with clang, defaults to false
-#
-# TARGET_KERNEL_CLANG_VERSION = Clang prebuilts version, optional, defaults to clang-stable
-#
-# TARGET_KERNEL_CLANG_PATH = Clang prebuilts path, optional
-#
-# BOARD_KERNEL_IMAGE_NAME = Built image name
-# for ARM use: zImage
-# for ARM64 use: Image.gz
-# for uncompressed use: Image
-# If using an appended DT, append '-dtb'
-# to the end of the image name.
-# For example, for ARM devices,
-# use zImage-dtb instead of zImage.
-#
-# KERNEL_CC = The C Compiler used. This is automatically set based
-# on whether the clang version is set, optional.
-#
-# KERNEL_CLANG_TRIPLE = Target triple for clang (e.g. aarch64-linux-gnu-)
-# defaults to arm-linux-gnu- for arm
-# aarch64-linux-gnu- for arm64
-# x86_64-linux-gnu- for x86
-#
-# NEED_KERNEL_MODULE_ROOT = Optional, if true, install kernel
-# modules in root instead of vendor
-# NEED_KERNEL_MODULE_SYSTEM = Optional, if true, install kernel
-# modules in system instead of vendor
-
-ifneq ($(TARGET_NO_KERNEL),true)
-
-## Externally influenced variables
-KERNEL_SRC := $(TARGET_KERNEL_SOURCE)
-# kernel configuration - mandatory
-KERNEL_DEFCONFIG := $(TARGET_KERNEL_CONFIG)
-VARIANT_DEFCONFIG := $(TARGET_KERNEL_VARIANT_CONFIG)
-SELINUX_DEFCONFIG := $(TARGET_KERNEL_SELINUX_CONFIG)
-
-## Internal variables
-KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ
-KERNEL_CONFIG := $(KERNEL_OUT)/.config
-KERNEL_RELEASE := $(KERNEL_OUT)/include/config/kernel.release
-
-ifeq ($(KERNEL_ARCH),x86_64)
-KERNEL_DEFCONFIG_ARCH := x86
-else
-KERNEL_DEFCONFIG_ARCH := $(KERNEL_ARCH)
-endif
-KERNEL_DEFCONFIG_SRC := $(KERNEL_SRC)/arch/$(KERNEL_DEFCONFIG_ARCH)/configs/$(KERNEL_DEFCONFIG)
-
-ifeq ($(BOARD_KERNEL_IMAGE_NAME),)
-$(error BOARD_KERNEL_IMAGE_NAME not defined.)
-endif
-TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(BOARD_KERNEL_IMAGE_NAME)
-
-ifneq ($(TARGET_KERNEL_ADDITIONAL_CONFIG),)
-KERNEL_ADDITIONAL_CONFIG := $(TARGET_KERNEL_ADDITIONAL_CONFIG)
-KERNEL_ADDITIONAL_CONFIG_SRC := $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG)
- ifeq ("$(wildcard $(KERNEL_ADDITIONAL_CONFIG_SRC))","")
- $(warning TARGET_KERNEL_ADDITIONAL_CONFIG '$(TARGET_KERNEL_ADDITIONAL_CONFIG)' doesn't exist)
- KERNEL_ADDITIONAL_CONFIG_SRC := /dev/null
- endif
-else
- KERNEL_ADDITIONAL_CONFIG_SRC := /dev/null
-endif
-
-ifeq "$(wildcard $(KERNEL_SRC) )" ""
- ifneq ($(TARGET_PREBUILT_KERNEL),)
- HAS_PREBUILT_KERNEL := true
- NEEDS_KERNEL_COPY := true
- else
- $(foreach cf,$(PRODUCT_COPY_FILES), \
- $(eval _src := $(call word-colon,1,$(cf))) \
- $(eval _dest := $(call word-colon,2,$(cf))) \
- $(ifeq kernel,$(_dest), \
- $(eval HAS_PREBUILT_KERNEL := true)))
- endif
-
- ifneq ($(HAS_PREBUILT_KERNEL),)
- $(warning ***************************************************************)
- $(warning * Using prebuilt kernel binary instead of source *)
- $(warning * THIS IS DEPRECATED, AND WILL BE DISCONTINUED *)
- $(warning * Please configure your device to download the kernel *)
- $(warning * source repository to $(KERNEL_SRC))
- $(warning * for more information *)
- $(warning ***************************************************************)
- FULL_KERNEL_BUILD := false
- KERNEL_BIN := $(TARGET_PREBUILT_KERNEL)
- else
- $(warning ***************************************************************)
- $(warning * *)
- $(warning * No kernel source found, and no fallback prebuilt defined. *)
- $(warning * Please make sure your device is properly configured to *)
- $(warning * download the kernel repository to $(KERNEL_SRC))
- $(warning * and add the TARGET_KERNEL_CONFIG variable to BoardConfig.mk *)
- $(warning * *)
- $(warning * As an alternative, define the TARGET_PREBUILT_KERNEL *)
- $(warning * variable with the path to the prebuilt binary kernel image *)
- $(warning * in your BoardConfig.mk file *)
- $(warning * *)
- $(warning ***************************************************************)
- $(error "NO KERNEL")
- endif
-else
- NEEDS_KERNEL_COPY := true
- ifeq ($(TARGET_KERNEL_CONFIG),)
- $(warning **********************************************************)
- $(warning * Kernel source found, but no configuration was defined *)
- $(warning * Please add the TARGET_KERNEL_CONFIG variable to your *)
- $(warning * BoardConfig.mk file *)
- $(warning **********************************************************)
- # $(error "NO KERNEL CONFIG")
- else
- #$(info Kernel source found, building it)
- FULL_KERNEL_BUILD := true
- KERNEL_BIN := $(TARGET_PREBUILT_INT_KERNEL)
- endif
-endif
-
-ifeq ($(FULL_KERNEL_BUILD),true)
-
-ifeq ($(NEED_KERNEL_MODULE_ROOT),true)
-KERNEL_MODULES_OUT := $(TARGET_ROOT_OUT)
-KERNEL_DEPMOD_STAGING_DIR := $(call intermediates-dir-for,PACKAGING,depmod_recovery)
-KERNEL_MODULE_MOUNTPOINT :=
-else ifeq ($(NEED_KERNEL_MODULE_SYSTEM),true)
-KERNEL_MODULES_OUT := $(TARGET_OUT)
-KERNEL_DEPMOD_STAGING_DIR := $(call intermediates-dir-for,PACKAGING,depmod_system)
-KERNEL_MODULE_MOUNTPOINT := system
-else
-KERNEL_MODULES_OUT := $(TARGET_OUT_VENDOR)
-KERNEL_DEPMOD_STAGING_DIR := $(call intermediates-dir-for,PACKAGING,depmod_vendor)
-KERNEL_MODULE_MOUNTPOINT := vendor
-endif
-MODULES_INTERMEDIATES := $(call intermediates-dir-for,PACKAGING,kernel_modules)
-
-ifeq ($(TARGET_KERNEL_CLANG_COMPILE),true)
- ifneq ($(TARGET_KERNEL_CLANG_VERSION),)
- # Find the clang-* directory containing the specified version
- KERNEL_CLANG_VERSION := $(shell find $(BUILD_TOP)/prebuilts/clang/host/$(HOST_OS)-x86/ -name AndroidVersion.txt -exec grep -l $(TARGET_KERNEL_CLANG_VERSION) "{}" \; | sed -e 's|/AndroidVersion.txt$$||g;s|^.*/||g')
- else
- # Use the default version of clang if TARGET_KERNEL_CLANG_VERSION hasn't been set by the device config
- KERNEL_CLANG_VERSION := $(LLVM_PREBUILTS_VERSION)
- endif
- TARGET_KERNEL_CLANG_PATH ?= $(BUILD_TOP)/prebuilts/clang/host/$(HOST_OS)-x86/$(KERNEL_CLANG_VERSION)/bin
- ifeq ($(KERNEL_ARCH),arm64)
- KERNEL_CLANG_TRIPLE ?= CLANG_TRIPLE=aarch64-linux-gnu-
- else ifeq ($(KERNEL_ARCH),arm)
- KERNEL_CLANG_TRIPLE ?= CLANG_TRIPLE=arm-linux-gnu-
- else ifeq ($(KERNEL_ARCH),x86)
- KERNEL_CLANG_TRIPLE ?= CLANG_TRIPLE=x86_64-linux-gnu-
- endif
- PATH_OVERRIDE := PATH=$(TARGET_KERNEL_CLANG_PATH):$$PATH LD_LIBRARY_PATH=$(BUILD_TOP)/prebuilts/clang/host/$(HOST_OS)-x86/$(KERNEL_CLANG_VERSION)/lib64:$$LD_LIBRARY_PATH
- ifeq ($(KERNEL_CC),)
- KERNEL_CC := CC="$(CCACHE_BIN) clang"
- endif
-endif
-
-ifeq ($(TARGET_KERNEL_MODULES),)
- TARGET_KERNEL_MODULES := INSTALLED_KERNEL_MODULES
-endif
-
-KERNEL_ADDITIONAL_CONFIG_OUT := $(KERNEL_OUT)/.additional_config
-
-# Internal implementation of make-kernel-target
-# $(1): output path (The value passed to O=)
-# $(2): target to build (eg. defconfig, modules, dtbo.img)
-define internal-make-kernel-target
-$(PATH_OVERRIDE) $(MAKE) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(1) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(2)
-endef
-
-# Make a kernel target
-# $(1): The kernel target to build (eg. defconfig, modules, modules_install)
-define make-kernel-target
-$(call internal-make-kernel-target,$(KERNEL_OUT),$(1))
-endef
-
-# Make a DTBO target
-# $(1): The DTBO target to build (eg. dtbo.img, defconfig)
-define make-dtbo-target
-$(call internal-make-kernel-target,$(PRODUCT_OUT)/dtbo,$(1))
-endef
-
-.PHONY: force_additional_config
-$(KERNEL_ADDITIONAL_CONFIG_OUT): force_additional_config
- $(hide) cmp -s $(KERNEL_ADDITIONAL_CONFIG_SRC) $@ || cp $(KERNEL_ADDITIONAL_CONFIG_SRC) $@;
-
-$(KERNEL_CONFIG): $(KERNEL_DEFCONFIG_SRC) $(KERNEL_ADDITIONAL_CONFIG_OUT)
- @echo "Building Kernel Config"
- $(hide) mkdir -p $(KERNEL_OUT)
- $(call make-kernel-target,VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG))
- $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \
- echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \
- echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \
- $(call make-kernel-target,oldconfig); \
- fi
- # Create defconfig build artifact
- $(call make-kernel-target,savedefconfig)
- $(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \
- echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \
- $(KERNEL_SRC)/scripts/kconfig/merge_config.sh -m -O $(KERNEL_OUT) $(KERNEL_OUT)/.config $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG); \
- $(call make-kernel-target,KCONFIG_ALLCONFIG=$(KERNEL_OUT)/.config alldefconfig); \
- fi
-
-.PHONY: TARGET_KERNEL_BINARIES
-TARGET_KERNEL_BINARIES: $(KERNEL_CONFIG)
- @echo "Building Kernel"
- $(call make-kernel-target,$(BOARD_KERNEL_IMAGE_NAME))
- $(hide) if grep -q '^CONFIG_OF=y' $(KERNEL_CONFIG); then \
- echo "Building DTBs"; \
- $(call make-kernel-target,dtbs); \
- fi
- $(hide) if grep -q '=m' $(KERNEL_CONFIG); then \
- echo "Building Kernel Modules"; \
- $(call make-kernel-target,modules); \
- fi
-
-.PHONY: INSTALLED_KERNEL_MODULES
-INSTALLED_KERNEL_MODULES: depmod-host
- $(hide) if grep -q '=m' $(KERNEL_CONFIG); then \
- echo "Installing Kernel Modules"; \
- $(call make-kernel-target,INSTALL_MOD_PATH=$(MODULES_INTERMEDIATES) modules_install); \
- kernel_release=$$(cat $(KERNEL_RELEASE)) \
- modules=$$(find $(MODULES_INTERMEDIATES)/lib/modules/$$kernel_release -type f -name '*.ko'); \
- for f in $$modules; do \
- $(KERNEL_TOOLCHAIN_PATH)strip --strip-unneeded $$f; \
- done; \
- ($(call build-image-kernel-modules,$$modules,$(KERNEL_MODULES_OUT),$(KERNEL_MODULE_MOUNTPOINT)/,$(KERNEL_DEPMOD_STAGING_DIR))); \
- fi
-
-$(TARGET_KERNEL_MODULES): TARGET_KERNEL_BINARIES
-
-$(TARGET_PREBUILT_INT_KERNEL): $(TARGET_KERNEL_MODULES)
-
-.PHONY: kerneltags
-kerneltags: $(KERNEL_CONFIG)
- $(hide) mkdir -p $(KERNEL_OUT)
- $(call make-kernel-target,tags)
-
-.PHONY: kernelsavedefconfig alldefconfig
-
-kernelsavedefconfig:
- $(hide) mkdir -p $(KERNEL_OUT)
- $(call make-kernel-target,$(KERNEL_DEFCONFIG))
- env KCONFIG_NOTIMESTAMP=true \
- $(call make-kernel-target,savedefconfig)
- cp $(KERNEL_OUT)/defconfig $(KERNEL_DEFCONFIG_SRC)
-
-alldefconfig:
- $(hide) mkdir -p $(KERNEL_OUT)
- env KCONFIG_NOTIMESTAMP=true \
- $(call make-kernel-target,alldefconfig)
-
-ifeq ($(TARGET_NEEDS_DTBOIMAGE),true)
-BOARD_PREBUILT_DTBOIMAGE = $(PRODUCT_OUT)/dtbo/arch/$(KERNEL_ARCH)/boot/dtbo.img
-$(BOARD_PREBUILT_DTBOIMAGE):
- echo -e ${CL_GRN}"Building DTBO.img"${CL_RST}
- $(call make-dtbo-target,$(KERNEL_DEFCONFIG))
- $(call make-dtbo-target,dtbo.img)
-endif # TARGET_NEEDS_DTBOIMAGE
-
-endif # FULL_KERNEL_BUILD
-
-## Install it
-
-ifeq ($(NEEDS_KERNEL_COPY),true)
-file := $(INSTALLED_KERNEL_TARGET)
-ALL_PREBUILT += $(file)
-$(file) : $(KERNEL_BIN) | $(ACP)
- $(transform-prebuilt-to-target)
-
-ALL_PREBUILT += $(INSTALLED_KERNEL_TARGET)
-endif
-
-INSTALLED_DTBOIMAGE_TARGET := $(PRODUCT_OUT)/dtbo.img
-ALL_PREBUILT += $(INSTALLED_DTBOIMAGE_TARGET)
-
-.PHONY: kernel
-kernel: $(INSTALLED_KERNEL_TARGET)
-
-.PHONY: dtboimage
-dtboimage: $(INSTALLED_DTBOIMAGE_TARGET)
-
-endif # TARGET_NO_KERNEL
diff --git a/build/templates/extract-files.sh b/build/templates/extract-files.sh
deleted file mode 100755
index fede6709..00000000
--- a/build/templates/extract-files.sh
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) 2016 The CyanogenMod Project
-# Copyright (C) 2017 The LineageOS 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.
-#
-
-set -e
-
-DEVICE=**** FILL IN DEVICE NAME ****
-VENDOR=*** FILL IN VENDOR ****
-
-# Load extract_utils and do some sanity checks
-MY_DIR="${BASH_SOURCE%/*}"
-if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
-
-LINEAGE_ROOT="${MY_DIR}/../../.."
-
-HELPER="${LINEAGE_ROOT}/vendor/lineage/build/tools/extract_utils.sh"
-if [ ! -f "${HELPER}" ]; then
- echo "Unable to find helper script at ${HELPER}"
- exit 1
-fi
-source "${HELPER}"
-
-# Default to sanitizing the vendor folder before extraction
-CLEAN_VENDOR=true
-SECTION=
-KANG=
-
-while [ "$1" != "" ]; do
- case "$1" in
- -n | --no-cleanup ) CLEAN_VENDOR=false
- ;;
- -k | --kang) KANG="--kang"
- ;;
- -s | --section ) shift
- SECTION="$1"
- CLEAN_VENDOR=false
- ;;
- * ) SRC="$1"
- ;;
- esac
- shift
-done
-
-if [ -z "${SRC}" ]; then
- SRC=adb
-fi
-
-# Initialize the helper
-setup_vendor "${DEVICE}" "${VENDOR}" "${LINEAGE_ROOT}" false "${CLEAN_VENDOR}"
-
-extract "${MY_DIR}/proprietary-files.txt" "${SRC}" ${KANG} --section "${SECTION}"
-
-"${MY_DIR}/setup-makefiles.sh"
diff --git a/build/templates/setup-makefiles.sh b/build/templates/setup-makefiles.sh
deleted file mode 100755
index 51b4ba22..00000000
--- a/build/templates/setup-makefiles.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) 2016 The CyanogenMod Project
-# Copyright (C) 2017 The LineageOS 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.
-#
-
-set -e
-
-DEVICE=*** FILL IN DEVICE ****
-VENDOR=*** FILL IN VENDOR ****
-
-INITIAL_COPYRIGHT_YEAR=**** FILL IN COPYRIGHT YEAR ****
-
-# Load extract_utils and do some sanity checks
-MY_DIR="${BASH_SOURCE%/*}"
-if [[ ! -d "$MY_DIR" ]]; then MY_DIR="$PWD"; fi
-
-LINEAGE_ROOT="$MY_DIR"/../../..
-
-HELPER="$LINEAGE_ROOT"/vendor/lineage/build/tools/extract_utils.sh
-if [ ! -f "$HELPER" ]; then
- echo "Unable to find helper script at $HELPER"
- exit 1
-fi
-. "$HELPER"
-
-# Initialize the helper
-setup_vendor "$DEVICE" "$VENDOR" "$LINEAGE_ROOT"
-
-# Copyright headers and guards
-write_headers
-
-write_makefiles "$MY_DIR"/proprietary-files.txt
-
-# Finish
-write_footers
diff --git a/build/tools/Darwin/compact_dex_converter b/build/tools/Darwin/compact_dex_converter
deleted file mode 100755
index 1c89476c..00000000
--- a/build/tools/Darwin/compact_dex_converter
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/libart-dexlayout.dylib b/build/tools/Darwin/lib64/libart-dexlayout.dylib
deleted file mode 100755
index 88e940fc..00000000
--- a/build/tools/Darwin/lib64/libart-dexlayout.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/libart.dylib b/build/tools/Darwin/lib64/libart.dylib
deleted file mode 100755
index 53f8712d..00000000
--- a/build/tools/Darwin/lib64/libart.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/libbacktrace.dylib b/build/tools/Darwin/lib64/libbacktrace.dylib
deleted file mode 100755
index c2e6d899..00000000
--- a/build/tools/Darwin/lib64/libbacktrace.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/libbase.dylib b/build/tools/Darwin/lib64/libbase.dylib
deleted file mode 100755
index 71130e5b..00000000
--- a/build/tools/Darwin/lib64/libbase.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/libc++.dylib b/build/tools/Darwin/lib64/libc++.dylib
deleted file mode 100755
index 739164b1..00000000
--- a/build/tools/Darwin/lib64/libc++.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/libcutils.dylib b/build/tools/Darwin/lib64/libcutils.dylib
deleted file mode 100755
index 73a6c073..00000000
--- a/build/tools/Darwin/lib64/libcutils.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/libdexfile.dylib b/build/tools/Darwin/lib64/libdexfile.dylib
deleted file mode 100755
index abb0fe28..00000000
--- a/build/tools/Darwin/lib64/libdexfile.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/liblog.dylib b/build/tools/Darwin/lib64/liblog.dylib
deleted file mode 100755
index 66a34d8f..00000000
--- a/build/tools/Darwin/lib64/liblog.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/liblz4.dylib b/build/tools/Darwin/lib64/liblz4.dylib
deleted file mode 100755
index 0a6bfc63..00000000
--- a/build/tools/Darwin/lib64/liblz4.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/libmetricslogger.dylib b/build/tools/Darwin/lib64/libmetricslogger.dylib
deleted file mode 100755
index 0b2ae0c6..00000000
--- a/build/tools/Darwin/lib64/libmetricslogger.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/libnativebridge.dylib b/build/tools/Darwin/lib64/libnativebridge.dylib
deleted file mode 100755
index f53c20e2..00000000
--- a/build/tools/Darwin/lib64/libnativebridge.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/libnativehelper.dylib b/build/tools/Darwin/lib64/libnativehelper.dylib
deleted file mode 100755
index 56a485a1..00000000
--- a/build/tools/Darwin/lib64/libnativehelper.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/libnativeloader.dylib b/build/tools/Darwin/lib64/libnativeloader.dylib
deleted file mode 100755
index cba9b63a..00000000
--- a/build/tools/Darwin/lib64/libnativeloader.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/libsigchain.dylib b/build/tools/Darwin/lib64/libsigchain.dylib
deleted file mode 100755
index 5f6ecbf9..00000000
--- a/build/tools/Darwin/lib64/libsigchain.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/libz-host.dylib b/build/tools/Darwin/lib64/libz-host.dylib
deleted file mode 100755
index 386865c5..00000000
--- a/build/tools/Darwin/lib64/libz-host.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/lib64/libziparchive.dylib b/build/tools/Darwin/lib64/libziparchive.dylib
deleted file mode 100755
index 394c1914..00000000
--- a/build/tools/Darwin/lib64/libziparchive.dylib
+++ /dev/null
Binary files differ
diff --git a/build/tools/Darwin/vdexExtractor b/build/tools/Darwin/vdexExtractor
deleted file mode 100755
index 34b2ee1a..00000000
--- a/build/tools/Darwin/vdexExtractor
+++ /dev/null
Binary files differ
diff --git a/build/tools/Linux/compact_dex_converter b/build/tools/Linux/compact_dex_converter
deleted file mode 100755
index 0a99e321..00000000
--- a/build/tools/Linux/compact_dex_converter
+++ /dev/null
Binary files differ
diff --git a/build/tools/Linux/vdexExtractor b/build/tools/Linux/vdexExtractor
deleted file mode 100755
index 39684111..00000000
--- a/build/tools/Linux/vdexExtractor
+++ /dev/null
Binary files differ
diff --git a/build/tools/droiddoc/templates-lineage-sdk/assets/android-developer-docs.css b/build/tools/droiddoc/templates-lineage-sdk/assets/android-developer-docs.css
deleted file mode 100644
index bc27b324..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/assets/android-developer-docs.css
+++ /dev/null
@@ -1,2768 +0,0 @@
-/* file: android-developer-core.css
- author: smain
- date: september 2008
- info: core developer styles (developer.android.com)
- Required by jdiff
-*/
-
-
-/* RESET STYLES */
-
-html,body,div,h1,h2,h3,h4,h5,h6,p,img,
-dl,dt,dd,ol,ul,li,table,caption,tbody,
-tfoot,thead,tr,th,td,form,fieldset,
-embed,object,applet {
- margin: 0;
- padding: 0;
- border: 0;
-}
-
-/* BASICS */
-
-html, body {
- overflow:hidden; /* keeps scrollbar off IE */
- background-color:#fff;
-}
-
-body {
- font-family:arial,sans-serif;
- color:#000;
- font-size:13px;
- color:#333;
- background-image:url(images/bg_fade.jpg);
- background-repeat:repeat-x;
-}
-
-a, a code {
- color:#006699;
-}
-
-a:active,
-a:active code {
- color:#f00;
-}
-
-a:visited,
-a:visited code {
- color:#006699;
-}
-
-input, select,
-textarea, option, label {
- font-family:inherit;
- font-size:inherit;
- padding:0;
- margin:0;
- vertical-align:middle;
-}
-
-option {
- padding:0 4px;
-}
-
-p, form {
- padding:0;
- margin:0 0 1em;
-}
-
-code, pre {
- color:#007000;
- font-family:monospace;
- line-height:1em;
-}
-
-var {
- color:#007000;
- font-style:italic;
-}
-
-pre {
- border:1px solid #ccc;
- background-color:#fafafa;
- padding:10px;
- margin:0 0 1em 1em;
- overflow:auto;
- line-height:inherit; /* fixes vertical scrolling in webkit */
-}
-
-h1,h2,h3,h4,h5 {
- margin:1em 0;
- padding:0;
-}
-
-p,ul,ol,dl,dd,dt,li {
- line-height:1.3em;
-}
-
-ul,ol {
- margin:0 0 .8em;
- padding:0 0 0 2em;
-}
-
-li {
- padding:0 0 .5em;
-}
-
-dl {
- margin:0 0 1em 0;
- padding:0;
-}
-
-dt {
- margin:0;
- padding:0;
-}
-
-dd {
- margin:0 0 1em;
- padding:0 0 0 2em;
-}
-
-li p {
- margin:.5em 0 0;
-}
-
-dd p {
- margin:1em 0 0;
-}
-
-li pre, li table, li img {
- margin:.5em 0 0 1em;
-}
-
-dd pre,
-#jd-content dd table,
-#jd-content dd img {
- margin:1em 0 0 1em;
-}
-
-li ul,
-li ol,
-dd ul,
-dd ol {
- margin:0;
- padding: 0 0 0 2em;
-}
-
-li li,
-dd li {
- margin:0;
- padding:.5em 0 0;
-}
-
-dl dl,
-ol dl,
-ul dl {
- margin:0 0 1em;
- padding:0;
-}
-
-table {
- font-size:1em;
- margin:0 0 1em;
- padding:0;
- border-collapse:collapse;
- border-width:0;
- empty-cells:show;
-}
-
-td,th {
- border:1px solid #ccc;
- padding:6px 12px;
- text-align:left;
- vertical-align:top;
- background-color:inherit;
-}
-
-th {
- background-color:#dee8f1;
-}
-
-td > p:last-child {
- margin:0;
-}
-
-hr.blue {
- background-color:#DDF0F2;
- border:none;
- height:5px;
- margin:20px 0 10px;
-}
-
-blockquote {
- margin: 0 0 1em 1em;
- padding: 0 4em 0 1em;
- border-left:2px solid #eee;
-}
-/* LAYOUT */
-
-#body-content {
- /* "Preliminary" watermark for preview releases and interim builds.
- background:transparent url(images/preliminary.png) repeat scroll 0 0; */
- margin:0;
- position:relative;
- width:100%;
-}
-
-#header {
- height: 114px;
- position:relative;
- z-index:100;
- min-width:675px; /* min width for the tabs, before they wrap */
- padding:0 10px;
- border-bottom:3px solid #94b922;
-}
-
-#headerLeft{
- padding: 25px 0 0;
-}
-
-#headerLeft img{
- height:50px;
- width:180px;
-}
-
-#headerRight {
- position:absolute;
- right:0;
- top:0;
- text-align:right;
-}
-
-/* Tabs in the header */
-
-#header ul {
- list-style: none;
- margin: 7px 0 0;
- padding: 0;
- height: 29px;
-}
-
-#header li {
- float: left;
- margin: 0px 2px 0px 0px;
- padding:0;
-}
-
-#header li a {
- text-decoration: none;
- display: block;
- background-image: url(images/bg_images_sprite.png);
- background-position: 0 -58px;
- background-repeat: no-repeat;
- color: #666;
- font-size: 13px;
- font-weight: bold;
- width: 94px;
- height: 29px;
- text-align: center;
- margin: 0px;
-}
-
-#header li a:hover {
- background-image: url(images/bg_images_sprite.png);
- background-position: 0 -29px;
- background-repeat: no-repeat;
-}
-
-#header li a span {
- position:relative;
- top:7px;
-}
-
-#header li a span+span {
- display:none;
-}
-
-/* tab highlighting */
-
-.home #home-link a,
-.guide #guide-link a,
-.reference #reference-link a,
-.sdk #sdk-link a,
-.resources #resources-link a,
-.videos #videos-link a {
- background-image: url(images/bg_images_sprite.png);
- background-position: 0 0;
- background-repeat: no-repeat;
- color: #fff;
- font-weight: bold;
- cursor:default;
-}
-
-.home #home-link a:hover,
-.guide #guide-link a:hover,
-.reference #reference-link a:hover,
-.sdk #sdk-link a:hover,
-.resources #resources-link a:hover,
-.videos #videos-link a:hover {
- background-image: url(images/bg_images_sprite.png);
- background-position: 0 0;
-}
-
-#headerLinks {
- margin:10px 10px 0 0;
- height:13px;
- font-size: 11px;
- vertical-align: top;
-}
-
-#headerLinks a {
- color: #7FA9B5;
-}
-
-#headerLinks img {
- vertical-align:middle;
-}
-
-#language {
- margin:0 10px 0 4px;
-}
-
-#search {
- height:45px;
- margin:15px 10px 0 0;
-}
-
-/* MAIN BODY */
-
-#mainBodyFluid {
- margin: 20px 10px;
- color:#333;
-}
-
-#mainBodyFixed {
- margin: 20px 10px;
- color: #333;
- width:930px;
- position:relative;
-}
-
-#mainBodyFixed h3,
-#mainBodyFluid h3 {
- color:#336666;
- font-size:1.25em;
- margin: 0em 0em 0em 0em;
- padding-bottom:.5em;
-}
-
-#mainBodyFixed h2,
-#mainBodyFluid h2 {
- color:#336666;
- font-size:1.25em;
- margin: 0;
- padding-bottom:.5em;
-}
-
-#mainBodyFixed h1,
-#mainBodyFluid h1 {
- color:#435A6E;
- font-size:1.7em;
- margin: 1em 0;
-}
-
-#mainBodyFixed .green,
-#mainBodyFluid .green,
-#jd-content .green {
- color:#7BB026;
- background-color:none;
-}
-
-#mainBodyLeft {
- float: left;
- width: 600px;
- margin-right: 20px;
- color: #333;
- position:relative;
-}
-
-div.indent {
- margin-left: 40px;
- margin-right: 70px;
-}
-
-#mainBodyLeft p {
- color: #333;
- font-size: 13px;
-}
-
-#mainBodyLeft p.blue {
- color: #669999;
-}
-
-#mainBodyLeft #communityDiv {
- float: left;
- background-image:url(images/bg_community_leftDiv.jpg);
- background-repeat: no-repeat;
- width: 581px;
- height: 347px;
- padding: 20px 0px 0px 20px;
-}
-
-#mainBodyRight {
- float: left;
- width: 300px;
- color: #333;
-}
-
-#mainBodyRight p {
- padding-right: 50px;
- color: #333;
-}
-
-#mainBodyRight table {
- width: 100%;
-}
-
-#mainBodyRight td {
- border:0px solid #666;
- padding:0px 5px;
- text-align:left;
-}
-
-#mainBodyRight td p {
- margin:0 0 1em 0;
-}
-
-#mainBodyRight .blueBorderBox {
- border:5px solid #ddf0f2;
- padding:18px 18px 18px 18px;
- text-align:left;
-}
-
-#mainBodyFixed .seperator {
- background-image:url(images/hr_gray_side.jpg);
- background-repeat:no-repeat;
- width: 100%;
- float: left;
- clear: both;
-}
-
-#mainBodyBottom {
- float: left;
- width: 100%;
- clear:both;
- color: #333;
-}
-
-#mainBodyBottom .seperator {
- background-image:url(images/hr_gray_main.jpg);
- background-repeat:no-repeat;
- width: 100%;
- float: left;
- clear: both;
-}
-
-/* FOOTER */
-
-#footer {
- float: left;
- width:90%;
- margin: 20px;
- color: #aaa;
- font-size: 11px;
-}
-
-#footer a {
- color: #aaa;
- font-size: 11px;
-}
-
-#footer a:hover {
- text-decoration: underline;
- color:#aaa;
-}
-
-#footerlinks {
- margin-top:2px;
-}
-
-#footerlinks a,
-#footerlinks a:visited {
- color:#006699;
-}
-
-/* SEARCH FILTER */
-
-#search_autocomplete {
- color:#aaa;
-}
-
-#search-button {
- display:inline;
-}
-
-#search_filtered_div {
- position:absolute;
- margin-top:-1px;
- z-index:101;
- border:1px solid #BCCDF0;
- background-color:#fff;
-}
-
-#search_filtered {
- min-width:100%;
-}
-#search_filtered td{
- background-color:#fff;
- border-bottom: 1px solid #669999;
- line-height:1.5em;
-}
-
-#search_filtered .jd-selected {
- background-color: #94b922;
- cursor:pointer;
-}
-#search_filtered .jd-selected,
-#search_filtered .jd-selected a {
- color:#fff;
-}
-
-.no-display {
- display: none;
-}
-
-.jd-autocomplete {
- font-family: Arial, sans-serif;
- padding-left: 6px;
- padding-right: 6px;
- padding-top: 1px;
- padding-bottom: 1px;
- font-size: 0.81em;
- border: none;
- margin: 0;
- line-height: 1.05em;
-}
-
-.show-row {
- display: table-row;
-}
-.hide-row {
- display: hidden;
-}
-
-/* SEARCH */
-
-/* restrict global search form width */
-#searchForm {
- width:350px;
-}
-
-#searchTxt {
- width:200px;
-}
-
-/* disable twiddle and size selectors for left column */
-#leftSearchControl div {
- width: 100%;
-}
-
-#leftSearchControl .gsc-twiddle {
- background-image : none;
-}
-
-#leftSearchControl td, #searchForm td {
- border: 0px solid #000;
-}
-
-#leftSearchControl .gsc-resultsHeader .gsc-title {
- padding-left : 0px;
- font-weight : bold;
- font-size : 13px;
- color:#006699;
- display : none;
-}
-
-#leftSearchControl .gsc-resultsHeader div.gsc-results-selector {
- display : none;
-}
-
-#leftSearchControl .gsc-resultsRoot {
- padding-top : 6px;
-}
-
-#leftSearchControl div.gs-visibleUrl-long {
- display : block;
- color:#006699;
-}
-
-.gsc-webResult div.gs-visibleUrl-short,
-table.gsc-branding,
-.gsc-clear-button {
- display : none;
-}
-
-.gsc-cursor-box .gsc-cursor div.gsc-cursor-page,
-.gsc-cursor-box .gsc-trailing-more-results a.gsc-trailing-more-results,
-#leftSearchControl a,
-#leftSearchControl a b {
- color:#006699;
-}
-
-.gsc-resultsHeader {
- display: none;
-}
-
-/* Disable built in search forms */
-.gsc-control form.gsc-search-box {
- display : none;
-}
-table.gsc-search-box {
- margin:6px 0 0 0;
- border-collapse:collapse;
-}
-
-td.gsc-input {
- padding:0 2px;
- width:100%;
- vertical-align:middle;
-}
-
-input.gsc-input {
- border:1px solid #BCCDF0;
- width:99%;
- padding-left:2px;
- font-size:.95em;
-}
-
-td.gsc-search-button {
- text-align: right;
- padding:0;
- vertical-align:top;
-}
-
-#search-button {
- margin:0 0 0 2px;
- font-size:11px;
-}
-
-/* search result tabs */
-
-#doc-content .gsc-control {
- position:relative;
-}
-
-#doc-content .gsc-tabsArea {
- position:relative;
- white-space:nowrap;
-}
-
-#doc-content .gsc-tabHeader {
- padding: 3px 6px;
- position:relative;
- width:auto;
-}
-
-#doc-content .gsc-tabHeader.gsc-tabhActive {
- border-top: 2px solid #94B922;
-}
-
-#doc-content h2#searchTitle {
- padding:0;
-}
-
-#doc-content .gsc-resultsbox-visible {
- padding:1em 0 0 6px;
-}
-
-/* CAROUSEL */
-
-#homeMiddle {
- padding: 0px 0px 0px 0px;
- float: left;
- width: 584px;
- height: 627px;
- position:relative;
-}
-
-#topAnnouncement {
- background:url(images/home/bg_home_announcement.png) no-repeat 0 0;
-}
-
-#homeTitle {
- padding:15px 15px 0;
- height:30px;
-}
-
-#homeTitle h2 {
- padding:0;
-}
-
-#announcement-block {
- padding:0 15px 0;
- overflow:hidden;
- background: url(images/hr_gray_side.jpg) no-repeat 15px 0;
- zoom:1;
-}
-
-#announcement-block>* {
- padding:15px 0 0;
-}
-
-#announcement-block img {
- float:left;
- margin:0 30px 0 0;
-}
-
-#announcement {
- float:left;
- margin:0;
-}
-
-#carousel {
- background:url(images/home/bg_home_carousel.png) no-repeat 0 0;
- position:relative;
- height:400px;
-}
-
-#carouselMain {
- background: url(images/home/bg_home_carousel_board.png) 0 0 no-repeat;
- height:auto;
- padding: 25px 21px 0;
- overflow:hidden;
- position:relative;
- zoom:1; /*IE6*/
-}
-
-#carouselMain img {
- margin:0;
-}
-
-#carouselMain .bulletinDesc h3 {
- margin:0;
- padding:0;
-}
-
-#carouselMain .bulletinDesc p {
- margin:0;
- padding:0.7em 0 0;
-}
-
-#carouselWheel {
- background: url(images/home/bg_home_carousel_wheel.png) 0 0 no-repeat;
- padding-top:40px;
- height:150px;
-}
-
-.clearer { clear:both; }
-
-a#arrow-left, a#arrow-right {
- float:left;
- width:42px;
- height:42px;
- background-image:url(images/home/carousel_buttons_sprite.png);
- background-repeat:no-repeat;
-}
-a#arrow-left {
- margin:35px 3px 0 10px;
-}
-a#arrow-right {
- margin:35px 10px 0 0;
-}
-a.arrow-left-off,
-a#arrow-left.arrow-left-off:hover {
- background-position:0 0;
-}
-a.arrow-right-off,
-a#arrow-right.arrow-right-off:hover {
- background-position:-42px 0;
-}
-a#arrow-left:hover {
- background-position:0 -42px;
-}
-a#arrow-right:hover {
- background-position:-42px -42px;
-}
-a.arrow-left-on {
- background-position:0 0;
-}
-a.arrow-right-on {
- background-position:-42px 0;
-}
-a.arrow-right-off,
-a.arrow-left-off {
- cursor:default;
-}
-
-.app-list-container {
- margin:0 20px;
- position:relative;
- width:100%;
-}
-
-div#list-clip {
- height:110px;
- width:438px;
- overflow:hidden;
- position:relative;
- float:left;
-}
-
-div#app-list {
- left:0;
- z-index:1;
- position:absolute;
- margin:11px 0 0;
- _margin-top:13px;
- width:1000%;
-}
-
-#app-list a {
- display:block;
- float:left;
- height:90px;
- width:90px;
- margin:0 24px 0;
- padding:3px;
- background:#99cccc;
- -webkit-border-radius:7px;
- -moz-border-radius:7px;
- border-radius:7px;
- text-decoration:none;
- text-align:center;
- font-size:11px;
- line-height:11px;
-}
-
-#app-list a span {
- position:relative;
- top:-4px;
-}
-
-#app-list img {
- width:90px;
- height:70px;
- margin:0;
-}
-
-#app-list a.selected,
-#app-list a:active.selected,
-#app-list a:hover.selected {
- background:#A4C639;
- color:#fff;
- cursor:default;
- text-decoration:none;
-}
-
-#app-list a:hover,
-#app-list a:active {
- background:#ff9900;
-}
-
-#app-list a:hover span,
-#app-list a:active span {
- text-decoration:underline;
-}
-
-#droid-name {
- padding-top:.5em;
- color:#666;
- padding-bottom:.25em;
-}
-
-/*IE6*/
-* html #app-list a { zoom: 1; margin:0 24px 0 15px;}
-
-* html #list-clip {
- width:430px !important;
-}
-
-/*carousel bulletin layouts*/
-/*460px width*/
-/*185px height*/
-.img-left {
- float:left;
- width:230px;
- overflow:hidden;
- padding:8px 0 8px 8px;
-}
-.desc-right {
- float:left;
- width:270px;
- padding:10px;
-}
-.img-right {
- float:right;
- width:220px;
- overflow:hidden;
- padding:8px 8px 8px 0;
-}
-.desc-left {
- float:right;
- width:280px;
- padding:10px;
- text-align:right;
-}
-.img-top {
- padding:20px 20px 0;
-}
-.desc-bottom {
- padding:10px;
-}
-
-
-/* VIDEO PAGE */
-
-#mainBodyLeft.videoPlayer {
- width:570px;
-}
-
-#mainBodyRight.videoPlayer {
- width:330px;
-}
-
-/* player */
-
-#videoPlayerBox {
- background-color: #DAF3FC;
- border-radius:7px;
- -moz-border-radius:7px;
- -webkit-border-radius:7px;
- width:530px;
- padding:20px;
- border:1px solid #d3ecf5;
- box-shadow:2px 3px 1px #eee;
- -moz-box-shadow:2px 3px 1px #eee;
- -webkit-box-shadow:2px 3px 1px #eee;
-}
-
-#videoBorder {
- background-color: #FFF;
- min-height:399px;
- height:auto !important;
- border:1px solid #ccdada;
- border-radius:7px 7px 0 0;
- -moz-border-radius:7px 7px 0 0;
- -webkit-border-top-left-radius:7px;
- -webkit-border-top-right-radius:7px;
-}
-
-#videoPlayerTitle {
- width:500px;
- padding:15px 15px 0;
-}
-
-#videoPlayerTitle h2 {
- font-weight:bold;
- font-size:1.2em;
- color:#336666;
- margin:0;
- padding:0;
-}
-
-#objectWrapper {
- padding:15px 15px;
- height:334px;
- width:500px;
-}
-
-/* playlist tabs */
-
-ul#videoTabs {
- list-style-type:none;
- padding:0;
- clear:both;
- margin:0;
- padding: 20px 0 0 15px;
- zoom:1; /* IE7/8, otherwise top-padding is double */
-}
-
-ul#videoTabs li {
- display:inline;
- padding:0;
- margin:0 3px 0 0;
- line-height:2em;
-}
-
-ul#videoTabs li a {
- border-radius:7px 7px 0 0;
- -moz-border-radius:7px 7px 0 0;
- -webkit-border-top-left-radius:7px;
- -webkit-border-top-right-radius:7px;
- background:#95c0d0;
- color:#fff;
- text-decoration:none;
- padding:.45em 1.5em;
- font-weight:bold;
-}
-
-ul#videoTabs li.selected a {
- font-weight:bold;
- text-decoration:none;
- color:#555;
- background:#daf3fc;
- border-bottom:1px solid #daf3fc;
-}
-
-ul#videoTabs li:hover a {
- background:#85acba;
-}
-
-ul#videoTabs li.selected:hover a {
- background:#daf3fc;
-}
-
-/* playlists */
-
-#videos {
- background:#daf3fc;
- margin-bottom:1.5em;
- padding:15px;
- border-radius:5px;
- -moz-border-radius:5px;
- -webkit-border-radius:5px;
- box-shadow:2px 3px 1px #eee;
- -moz-box-shadow:2px 3px 1px #eee;
- -webkit-box-shadow:2px 3px 1px #eee;
-}
-
-#videos div {
- display:none;
-}
-
-#videos div.selected {
- display:block;
-}
-
-ul.videoPreviews {
- list-style:none;
- padding:0;
- margin:0;
- zoom:1; /* IE, otherwise, layout doesn't update when showing 'more' */
-}
-
-ul.videoPreviews li {
- margin:0 0 5px;
- padding:0;
- overflow:hidden;
- position:relative;
-}
-
-#mainBodyFixed ul.videoPreviews h3 {
- font-size: 12px;
- margin:0 0 1em 130px;
- padding:0;
- font-weight:bold;
- color:inherit;
-}
-
-ul.videoPreviews a {
- margin:1px;
- padding:10px;
- text-decoration:none;
- height:90px;
- display:block;
- border-radius:5px;
- -moz-border-radius:5px;
- -webkit-border-radius:5px;
- background-color:transparent;
-}
-
-ul.videoPreviews a:hover {
- background-color:#FFF;
- border:none; /* IE8, otherwise, bg doesn't work */
-}
-
-ul.videoPreviews a.selected {
- background-color: #FF9900;
-}
-
-ul.videoPreviews img {
- float:left;
- clear:left;
- margin:0;
-}
-
-ul.videoPreviews h3 {
- font-size:12px;
- font-weight:bold;
- text-decoration:none;
- margin:0 0 1em 130px;
- padding:0;
-}
-
-ul.videoPreviews p {
- font-size: 12px;
- text-decoration:none;
- margin:0 0 1.2em 130px;
-}
-
-ul.videoPreviews p.full {
- display:none;
-}
-
-ul.videoPreviews span.more {
- padding:0 0 0 12px;
- background:url(images/arrow_bluelink_down.png) 0 2px no-repeat;
-}
-
-ul.videoPreviews span.less {
- padding:0 0 0 12px;
- background:url(images/arrow_bluelink_up.png) 0 2px no-repeat;
- display:none;
-}
-
-ul.videoPreviews p.toggle {
- position:absolute;
- margin:0;
- margin-top:-23px; /* instead of bottom:23px, because IE won't do it correctly */
- left:140px;
-}
-
-ul.videoPreviews p.toggle a {
- height:auto;
- margin:0;
- padding:0;
- zoom:1; /* IE6, otherwise the margin considers the img on redraws */
-}
-
-ul.videoPreviews p.toggle a:hover {
- text-decoration:underline;
- background:transparent; /* IE6, otherwise it inherits white */
-}
-
-/* featured videos */
-
-#mainBodyRight h2 {
- padding:0 0 5px;
-}
-
-#mainBodyRight ul.videoPreviews {
- margin:10px 0 0;
-}
-
-#mainBodyRight ul.videoPreviews li {
- font-size:11px;
- line-height:13px;
- margin:0 0 5px;
- padding:0;
-}
-
-#mainBodyRight ul.videoPreviews h3 {
- padding:0;
- margin:0;
- font-size:100%;
-}
-
-#mainBodyRight ul.videoPreviews a {
- text-decoration:none;
- height:108px;
- border:1px solid #FFF;
-}
-
-#mainBodyRight ul.videoPreviews a:hover {
- border:1px solid #CCDADA;
-}
-
-#mainBodyRight ul.videoPreviews a.selected {
- border:1px solid #FFF;
-}
-
-#mainBodyRight ul.videoPreviews p {
- line-height:1.2em;
- padding:0;
- margin:4px 0 0 130px;
-}
-
-#mainBodyRight ul.videoPreviews img {
- margin-top:5px;
-}
-
-/* Pretty printing styles. Used with prettify.js. */
-
-.str { color: #080; }
-.kwd { color: #008; }
-.com { color: #800; }
-.typ { color: #606; }
-.lit { color: #066; }
-.pun { color: #660; }
-.pln { color: #000; }
-dl.tag-list dt code,
-.tag { color: #008; }
-dl.atn-list dt code,
-.atn { color: #828; }
-.atv { color: #080; }
-.dec { color: #606; }
-
-@media print {
- .str { color: #060; }
- .kwd { color: #006; font-weight: bold; }
- .com { color: #600; font-style: italic; }
- .typ { color: #404; font-weight: bold; }
- .lit { color: #044; }
- .pun { color: #440; }
- .pln { color: #000; }
- .tag { color: #006; font-weight: bold; }
- .atn { color: #404; }
- .atv { color: #060; }
-}
-
-
-#title {
- border-bottom: 4px solid #ccc;
- display:none;
-}
-
-#title h1 {
- color:#336666;
- margin:0;
- padding: 5px 10px;
- font-size: 1em;
- line-height: 15px;
-}
-
-#title h1 .small{
- color:#000;
- margin:0;
- font-size: 13px;
- padding:0 0 0 15px;
-}
-
-/* SIDE NAVIGATION */
-
-#side-nav {
- padding:0 6px 0 0;
- background-color: #fff;
- font-size:12px;
-}
-
-#resize-packages-nav {
-/* keeps the resize handle below the h-scroll handle */
- height:270px;
- overflow:hidden;
- max-height:100%;
-}
-
-#packages-nav {
- height:270px;
- max-height:inherit;
- position:relative;
- overflow:auto;
-}
-
-#classes-nav,
-#devdoc-nav {
- overflow:auto;
- position:relative;
-}
-
-#side-nav ul {
- list-style: none;
- margin: 0;
- padding:5px 0;
-}
-
-#side-nav ul ul {
- margin: .5em 0 0 0;
- padding: 0;
-}
-
-#side-nav li {
- padding:0;
- padding:1px 0 1px 0;
- zoom:1;
-}
-
-#side-nav li span.heading,
-#side-nav li h2 {
- display:block;
- font-size:12px;
- font-weight: bold;
- margin:.5em 0 0 0;
- padding: 3px 0 1px 9px;
-}
-
-#side-nav li a {
- display: inline-block; /* needed to apply padding to line-wraps */
- text-decoration:none;
- padding: 0 0 0 18px;
- zoom:1;
-}
-
-#side-nav li a span+span {
- display:none;
-}
-
-#side-nav li a:hover {
- text-decoration:underline;
-}
-
-#side-nav li a+a {
- padding: 0;
-}
-/*second level (nested) list*/
-#side-nav li li li a {
- padding: 0 0 0 28px;
-}
-/*third level (nested) list*/
-#side-nav li li li li a {
- padding: 0 0 0 38px;
-}
-
-#side-nav .selected {
- background-color: #435a6e;
- color: #fff;
- font-weight:bold;
-}
-
-#side-nav .selected a {
- color: #fff;
- text-decoration:none;
-}
-
-#side-nav strong {
- display:block;
-}
-
-#side-nav .toggle-list .toggle-img {
- margin:0;
- padding:0;
- position:absolute;
- top:0;
- left:0;
- height:16px;
- width:15px;
- outline-style:none;
-}
-/* second-level toggle */
-#side-nav .toggle-list .toggle-list .toggle-img {
- left:10px;
-}
-
-#side-nav .closed .toggle-img,
-#side-nav .open .closed .toggle-img {
- background:url('images/triangle-closed-small.png') 7px 4px no-repeat;
-}
-#side-nav .open .toggle-img {
- background:url('images/triangle-opened-small.png') 7px 4px no-repeat;
-}
-
-#side-nav .toggle-list {
- position:relative;
-}
-
-#side-nav .toggle-list ul {
- margin:0;
- display:none;
-}
-
-#side-nav .toggle-list div {
- display:block;
-}
-
-#index-links .selected {
- background-color: #fff;
- color: #000;
- font-weight:normal;
- text-decoration:none;
-}
-
-#index-links {
- padding:7px 0 4px 10px;
-}
-
-/* nav tree */
-
-#nav-tree ul {
- padding:5px 0 1.5em;
-}
-
-#side-nav #nav-tree ul li a,
-#side-nav #nav-tree ul li span.no-children {
- padding: 0 0 0 0;
- margin: 0;
-}
-
-#nav-tree .plus {
- margin: 0 3px 0 0;
-}
-
-#nav-tree ul ul {
- list-style: none;
- margin: 0;
- padding: 0 0 0 0;
-}
-
-#nav-tree ul li {
- margin: 0;
- padding: 0 0 0 0;
- white-space: nowrap;
-}
-
-#nav-tree .children_ul {
- margin:0;
-}
-
-#nav-tree a.nolink {
- color: black;
- text-decoration: none;
-}
-
-#nav-tree span.label {
- width: 100%;
-}
-
-#nav-tree {
- overflow-x: auto;
- overflow-y: scroll;
-}
-
-#nav-swap {
- font-size:10px;
- line-height:10px;
- margin-left:1em;
- text-decoration:none;
- display:block;
-}
-
-#tree-link {
-
-}
-
-/* DOCUMENT BODY */
-
-#doc-content {
- overflow:auto;
-}
-
-#jd-header {
- background-color: #E2E2E2;
- padding: 7px 15px;
-}
-
-#jd-header h1 {
- margin: 0 0 10px;
- font-size:1.7em;
-}
-
-#jd-header .crumb {
- font-size:.9em;
- line-height:1em;
- color:#777;
-}
-
-#jd-header .crumb a,
-#jd-header .crumb a:visited {
- text-decoration:none;
- color:#777;
-}
-
-#jd-header .crumb a:hover {
- text-decoration:underline;
-}
-
-#jd-header table {
- margin:0;
- padding:0;
-}
-
-#jd-header td {
- border:none;
- padding:0;
- vertical-align:top;
-}
-
-#jd-header.guide-header {
- background-color:#fff;
- color:#435a6e;
- height:50px;
-}
-
-#jd-descr {
- position:relative;
-}
-
-/* summary tables for reference pages */
-.jd-sumtable {
- margin: .5em 1em 1em 1em;
- width:95%; /* consistent table widths; within IE's quirks */
- font-size:.9em;
-}
-
-.jd-sumtable a {
- text-decoration:none;
-}
-
-.jd-sumtable a:hover {
- text-decoration:underline;
-}
-
-/* the link inside a sumtable for "Show All/Hide All" */
-.toggle-all {
- display:block;
- float:right;
- font-weight:normal;
- font-size:0.9em;
-}
-
-/* adjustments for in/direct subclasses tables */
-.jd-sumtable-subclasses {
- margin: 1em 0 0 0;
- max-width:968px;
-}
-
-/* extra space between end of method name and open-paren */
-.sympad {
- margin-right: 2px;
-}
-
-/* right alignment for the return type in sumtable */
-.jd-sumtable .jd-typecol {
- text-align:right;
-}
-
-/* adjustments for the expando table-in-table */
-.jd-sumtable-expando {
- margin:.5em 0;
- padding:0;
-}
-
-/* a div that holds a short description */
-.jd-descrdiv {
- padding:3px 1em 0 1em;
- margin:0;
- border:0;
-}
-
-/* page-top-right container for reference pages (holds
-links to summary tables) */
-#api-info-block {
- font-size:.8em;
- padding:6px 10px;
- font-weight:normal;
- float:right;
- text-align:right;
- color:#999;
- max-width:70%;
-}
-
-#api-level-toggle {
- padding:0 10px;
- font-size:11px;
- float:right;
-}
-
-#api-level-toggle label.disabled {
- color:#999;
-}
-
-div.api-level {
- font-size:.8em;
- font-weight:normal;
- color:#999;
- float:right;
- padding:0 7px 0;
- margin-top:-25px;
-}
-
-#api-info-block div.api-level {
- font-size:1.3em;
- font-weight:bold;
- float:none;
- color:#444;
- padding:0;
- margin:0;
-}
-
-/* Force link colors for IE6 */
-div.api-level a {
- color:#999;
-}
-#api-info-block div.api-level a:link {
- color:#444;
-}
-#api-level-toggle a {
- color:#999;
-}
-
-div#deprecatedSticker {
- display:none;
- z-index:99;
- position:fixed;
- right:15px;
- top:114px;
- margin:0;
- padding:1em;
- background:#FFF;
- border:1px solid #dddd00;
- box-shadow:-5px 5px 10px #ccc;
- -moz-box-shadow:-5px 5px 10px #ccc;
- -webkit-box-shadow:-5px 5px 10px #ccc;
-}
-
-div#naMessage {
- display:none;
- width:555px;
- height:0;
- margin:0 auto;
-}
-
-div#naMessage div {
- z-index:99;
- width:450px;
- position:fixed;
- margin:50px 0;
- padding:4em 4em 3em;
- background:#FFF;
- border:1px solid #dddd00;
- box-shadow:-10px 10px 40px #888;
- -moz-box-shadow:-10px 10px 40px #888;
- -webkit-box-shadow:-10px 10px 40px #888;
-}
-/* IE6 can't position fixed */
-* html div#naMessage div { position:absolute; }
-
-div#naMessage strong {
- font-size:1.1em;
-}
-
-.absent,
-.absent a:link,
-.absent a:visited,
-.absent a:hover,
-.absent * {
- color:#bbb !important;
- cursor:default !important;
- text-decoration:none !important;
-}
-
-#api-level-toggle a,
-.api-level a {
- color:inherit;
- text-decoration:none;
-}
-
-#api-level-toggle a:hover,
-.api-level a:hover {
- color:inherit;
- text-decoration:underline !important;
- cursor:pointer !important;
-}
-
-#side-nav li.absent.selected,
-#side-nav li.absent.selected *,
-#side-nav div.label.absent.selected,
-#side-nav div.label.absent.selected * {
- background-color:#eaeaea !important;
-}
-/* IE6 quirk (won't chain classes, so just keep background blue) */
-* html #side-nav li.selected,
-* html #side-nav li.selected *,
-* html #side-nav div.label.selected,
-* html #side-nav div.label.selected * {
- background-color: #435a6e !important;
-}
-
-
-.absent h4.jd-details-title,
-.absent h4.jd-details-title * {
- background-color:#f6f6f6 !important;
-}
-
-.absent img {
- opacity: .3;
- filter: alpha(opacity=30);
- -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
-}
-
-
-/* applies to a div containing links to summary tables */
-.sum-details-links {
- padding:0;
- font-weight:normal;
-}
-
-.sum-details-links a {
- text-decoration:none;
-}
-
-.sum-details-links a:hover {
- text-decoration:underline;
-}
-
-
-/* inheritance table */
-.jd-inheritance-table {
- border-spacing:0;
- margin:0;
- padding:0;
- font-size:.9em;
-}
-.jd-inheritance-table td {
- border: none;
- margin: 0;
- padding: 0;
-}
-.jd-inheritance-table .jd-inheritance-space {
- font-weight:bold;
- width:1em;
-}
-.jd-inheritance-table .jd-inheritance-interface-cell {
- padding-left: 17px;
-}
-
-#jd-content {
- padding: 18px 15px;
-}
-
-hr {
- background-color:#ccc;
- border-color:#fff;
- margin:2em 0 1em;
-}
-
-/* DOC CLASSES */
-
-#jd-content h1 {
-/*sdk page*/
- font-size:1.6em;
- color:#336666;
- margin:0 0 .5em;
-}
-
-#jd-content h2 {
- font-size:1.45em;
- color:#111;
- border-top:2px solid #ccc;
- padding: .5em 0 0;
- margin: 2em 0 1em 0;
-}
-
-#jd-content h3 {
- font-size:1.3em;
- color:#3a3a3a;
- padding: 0;
- margin: 1.5em 0 .65em 0;
-}
-
-#jd-content h4 {
- font-size:1.1em;
- color:#3a3a3a;
- padding: 0;
- margin: 1.25em 0 .65em 0;
-}
-
-#jd-content h5 {
- font-size:1.0em;
- color:#3a3a3a;
- padding: 0;
- margin: 1em 0 .65em 0;
-}
-
-#jd-content .small-header {
- font-size:1em;
- color:#000;
- font-weight:bold;
- border:none;
- padding:0;
- margin:1em 0 .5em;
- position:inherit;
-}
-
-#jd-content table {
- margin: 0 0 1em 1em;
-}
-
-#jd-content img {
- margin: 0 0 1em 1em;
-}
-
-#jd-content li img,
-#jd-content dd img {
- margin:.5em 0 .5em 1em;
-}
-
-.nolist {
- list-style:none;
- padding:0;
- margin:0 0 1em 1em;
-}
-
-.nolist li {
- padding:0 0 2px;
- margin:0;
-}
-
-h4 .normal {
- font-size:.9em;
- font-weight:normal;
-}
-
-.caps {
- font-variant:small-caps;
- font-size:1.2em;
-}
-
-dl.tag-list dl.atn-list {
- padding:0 0 0 2em;
-}
-
-.jd-details {
-/* border:1px solid #669999;
- padding:4px; */
- margin:0 0 1em;
-}
-
-/* API reference: a container for the
-.tagdata blocks that make up the detailed
-description */
-.jd-details-descr {
- padding:0;
- margin:.5em .25em;
-}
-
-/* API reference: a block containing
-a detailed description, a params table,
-seealso list, etc */
-.jd-tagdata {
- margin:.5em 1em;
-}
-
-.jd-tagdata p {
- margin:0 0 1em 1em;
-}
-
-/* API reference: adjustments to
-the detailed description block */
-.jd-tagdescr {
- margin:.25em 0 .75em 0;
- line-height:1em;
-}
-
-.jd-tagdescr p {
- margin:.5em 0;
- padding:0;
-
-}
-
-.jd-tagdescr ol,
-.jd-tagdescr ul {
- margin:0 2.5em;
- padding:0;
-}
-
-.jd-tagdescr table,
-.jd-tagdescr img {
- margin:.25em 1em;
-}
-
-.jd-tagdescr li {
-margin:0 0 .25em 0;
-padding:0;
-}
-
-/* API reference: heading marking
-the details section for constants,
-attrs, methods, etc. */
-h4.jd-details-title {
- font-size:1.15em;
- background-color: #E2E2E2;
- margin:1.5em 0 .6em;
- padding:3px 95px 3px 3px; /* room for api-level */
-}
-
-h4.jd-tagtitle {
- margin:0;
-}
-
-/* API reference: heading for "Parameters", "See Also", etc.,
-in details sections */
-h5.jd-tagtitle {
- margin:0 0 .25em 0;
- font-size:1em;
-}
-
-.jd-tagtable {
- margin:0;
-}
-
-.jd-tagtable td,
-.jd-tagtable th {
- border:none;
- background-color:#fff;
- vertical-align:top;
- font-weight:normal;
- padding:2px 10px;
-}
-
-.jd-tagtable th {
- font-style:italic;
-}
-
-#jd-content table h2 {
- background-color: #d6d6d6;
- font-size: 1.1em;
- margin:0 0 10px;
- padding:5px;
- left:0;
- width:auto;
-}
-
-div.design-announce {
- border-top:1px solid #167c80;
- border-bottom:1px solid #167c80;
- padding:5px 10px 10px 55px;
- margin:2em 0;
- background:url('images/icon_design.png') 5px 13px no-repeat;
-}
-
-div.design-announce p {
- margin: .5em 0 0 0;
-}
-
-div.special {
- padding: .5em 1em 1em 1em;
- margin: 0 0 1em;
- background-color: #DAF3FC;
- border:1px solid #d3ecf5;
- border-radius:5px;
- -moz-border-radius:5px;
- -webkit-border-radius:5px;
-}
-
-div.special p {
- margin: .5em 0 0 0;
-}
-
-div.special ol {
- margin: 0;
-}
-
-div.special ol li {
- margin: 0;
- padding: 0;
-}
-
-#jd-content div.special h2,
-#jd-content div.special h3 {
- color:#669999;
- font-size:1.2em;
- border:none;
- margin:0 0 .5em;
- padding:0;
-}
-
-#jd-content div.special.reference h2,
-#jd-content div.special.reference h3,
-#jd-content div.special.reference h4 {
- color:#000;
- font-size:1em;
- border:none;
- font-weight:bold;
- margin:.5em 0;
- padding:0;
-}
-
-p.note, div.note,
-p.caution, div.caution,
-p.warning, div.warning {
- margin: 1em;
- padding: 0 0 0 .5em;
- border-left: 4px solid;
-}
-
-p.special-note,
-div.special-note {
- background-color:#EBF3DB;
- padding:10px 20px;
- margin:0 0 1em;
-}
-
-p.note,
-div.note {
- border-color: #99aacc;
-}
-
-p.warning,
-div.warning {
- border-color: #aa0033;
-}
-
-p.caution,
-div.caution {
- border-color: #ffcf00;
-}
-
-li .note,
-li .caution,
-li .warning {
- margin: .5em 0 0 0;
- padding: .2em .5em .2em .9em;
-}
-
-/* Makes sure the first paragraph does not add top-whitespace within the box*/
-li .note>p:first-child,
-li .caution>p:first-child,
-li .warning>p:first-child {
- margin-top:0;
- padding-top:0;
-}
-
-dl.xml dt {
- font-variant:small-caps;
- font-size:1.2em;
-}
-
-dl.xml dl {
- padding:0;
-}
-
-dl.xml dl dt {
- font-variant:normal;
- font-size:1em;
-}
-
-.listhead li {
- font-weight: bold;
-}
-
-.listhead li *, /*ie*/.listhead li li {
- font-weight: normal;
-}
-
-ol.no-style,
-ul.no-style {
- list-style:none;
- padding-left:1em;
-}
-
-.new,
-.new-child {
- font-size: .78em;
- font-weight: bold;
- color: #ff3d3d;
- text-decoration: none;
- vertical-align:top;
- line-height:.9em;
- white-space:nowrap;
-}
-
-.toggle-list.open .new-child {
- display:none;
-}
-
-pre.classic {
- background-color:transparent;
- border:none;
- padding:0;
-}
-
-p.img-caption {
- margin: -0.5em 0 1em 1em; /* matches default img left-margin */
-}
-
-div.figure {
- float:right;
- clear:right;
- margin:1em 0 0 0;
- padding:0 0 0 3em;
- background-color:#fff;
- /* width must be defined w/ an inline style matching the image width */
-}
-
-#jd-content
-div.figure img {
- margin: 0 0 1em;
-}
-
-div.figure p.img-caption {
- margin: -0.5em 0 1em 0;
-}
-
-p.table-caption {
- margin: 0 0 0.5em 1em; /* matches default table left-margin */
-}
-
-
-/* toggle for misc content (such as long sample code)
- see toggleContent() script in android-developer-docs.js */
-.toggle-content.closed .toggle-content-toggleme {
- display:none;
-}
-
-.toggle-content a[href="#"] {
- text-decoration:none;
- color:inherit;
-}
-
-.toggle-content-toggleme {
- padding-bottom:1px; /* fixes animation bounce due to margins */
-}
-
-#jd-content .toggle-content img.toggle-content-img {
- margin:0;
-}
-
-
-/* BEGIN quickview sidebar element styles */
-
-#qv-wrapper {
- float: right;
- width:310px; /* +35px padding */
- background-color:#fff;
- margin:-48px 0 2px 0;
- padding:0 0 20px 35px;
-}
-
-#qv {
- background-color:#fff;
- border:4px solid #dee8f1;
- margin:0;
- padding:0 5px 5px;
- width:292px; /* +10px padding; +8px border */
- font-size:.9em;
-}
-
-#qv ol {
- list-style:none;
- padding: 0;
-}
-
-#qv ol ol{
- list-style:none;
- padding: 0 0 0 12px;
- margin:0;
-}
-
-#qv ul {
- padding: 0 10px 0 2em;
-}
-
-#qv li {
- padding: 0 10px 3px;
- line-height: 1.2em;
-}
-
-#qv li li {
- padding: 3px 10px 0;
-}
-
-#qv ul li {
- padding: 0 10px 0 0;
-}
-
-#qv li.selected a {
- color:#555;
- text-decoration:none;
-}
-
-#qv a,
-#qv a code {
- color:#cc6600;
-}
-
-#qv p {
- margin:8px 0 0;
- padding:0 10px;
-}
-
-#jd-content #qv h2 {
- font-size:1.05em;
- font-weight:bold;
- margin:12px 0 .25em 0;
- padding:0 10px;
- background-color:transparent;
- color:#7BB026;
- border:none;
- left:0;
- z-index:1;
-}
-
-#qv-extra #rule {
- padding: 0 10px;
- margin: 0;
-}
-
-#qv-sub-rule {
- padding: 5px 15px 10px;
- margin: 0;
-}
-
-#jd-content
-#qv-sub-rule h2 {
- margin: 0 0 .5em 0;
-}
-
-/* END quickview sidebar element styles */
-
-/* Begin sidebox sidebar element styles */
-
-.sidebox-wrapper {
- float:right;
- clear:right;
- width:310px; /* +35px padding */
- background-color:#fff;
- margin:0;
- padding:0 0 20px 35px;
-}
-
-.sidebox {
- border-left:1px solid #dee8f1;
- background-color:#ffffee;
- margin:0;
- padding:8px 12px;
- font-size:0.9em;
- width:285px; /* +24px padding; +1px border */
-}
-
-.sidebox p {
- margin-bottom: .75em;
-}
-
-.sidebox ul {
- padding: 0 0 0 1.5em;
-}
-
-.sidebox li ul {
- margin-top:0;
- margin-bottom:.1em;
-}
-
-.sidebox li {
-padding:0 0 0 0em;
-}
-
-#jd-content .sidebox h2,
-#jd-content .sidebox h3,
-#jd-content .sidebox h4,
-#jd-content .sidebox h5 {
- border:none;
- font-size:1em;
- margin:0;
- padding:0 0 8px;
- left:0;
- z-index:0;
-}
-
-.sidebox hr {
- background-color:#ccc;
- border:none;
-}
-
-/* End sidebox sidebar element styles */
-
-/* BEGIN developer training bar styles */
-
-div#tb-wrapper {
- float: right;
- clear:right;
- width:380px; /* +25px padding = 405 */
- background-color:#fff;
- margin:0 0 2px 0;
- padding:0 0 20px 25px;
-}
-
-div#tb {
- margin:0;
- padding:0 15px;
- width:350px; /* +15px padding = 380 */
- font-size:.9em;
- background:#e9e9e9;
- border:1px solid #aaa;
- border-radius:5px;
- -moz-border-radius:5px;
- -webkit-border-radius:5px;
- overflow:auto;
-}
-
-div#tb h2 {
- font-size:1.3em;
- font-weight:bold;
- margin:1em 0;
- padding:0;
- background-color:transparent;
- border:none;
- clear:both;
-}
-
-div.download-box a.button {
- color: #069;
- font-size:1.1em;
- font-weight:bold;
- text-decoration:none;
- height:27px;
- line-height:27px;
- text-align:center;
- padding:5px 8px;
- background-color: #fff;
- border: 1px solid #aaa;
- -webkit-border-radius: 2px;
- -moz-border-radius: 2px;
- border-radius: 2px;
-}
-
-div.download-box a.button:hover {
- border-color: #09C;
- background-color: #4CADCB;
- background-image: -webkit-gradient(linear,left top,left bottom,from(#5dbcd9),to(#4cadcb));
- background-image: -webkit-linear-gradient(top,#5dbcd9,#4cadcb);
- background-image: -moz-linear-gradient(top,#5dbcd9,#4cadcb);
- background-image: -ms-linear-gradient(top,#5dbcd9,#4cadcb);
- background-image: -o-linear-gradient(top,#5dbcd9,#4cadcb);
- background-image: linear-gradient(top,#5dbcd9,#4cadcb);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#5dbcd9',EndColorStr='#4cadcb');
- color: #fff;
-}
-
-div.download-box a.button:active {
- background-color: #1E799A;
- background-image: none;
- border-color: #30B7E6;
-}
-
-div.download-box p.filename {
- font-size:0.85em;
- color:#888;
- margin:4px 0 1em 10px;
-}
-
-/* End developer training bar */
-
-/* Training nav bar (previous/next) */
-
-div.training-nav-top {
- float: right;
- width:380px; /* +25px padding = 405 */
- margin:-58px 0 0 0;
- padding:0 0 20px 25px;
-}
-
-div.training-nav-bottom {
- padding:1px; /* for weird FF bug (scrollbar appears) */
- margin:3em 0;
- overflow:auto;
-}
-
-div.training-nav-button-next a,
-div.training-nav-button-previous a {
- display:block;
- width:160px;
- height:55px;
- padding:4px 7px;
- border:1px solid #aaa;
- border-radius:5px;
- -moz-border-radius:5px;
- -webkit-border-radius:5px;
- text-decoration:none;
- font-weight:bold;
-}
-
-div.training-nav-button-next a:hover,
-div.training-nav-button-previous a:hover {
- border:1px solid #069; /* match link color */
-}
-
-div.training-nav-button-next a:active,
-div.training-nav-button-previous a:active {
- border:1px solid #f00; /* match link color */
-}
-
-div.training-nav-button-previous {
- float:left;
- text-align:left;
-}
-
-div.training-nav-button-next {
- float:right;
- text-align:right;
-}
-
-span.training-nav-button-title {
- display:block;
- font-size:.85em;
- font-weight:normal;
- line-height:1.3em;
- margin:.5em 0 0;
-}
-
-/* End training nav bar */
-
-/* BEGIN image and caption styles (originally for UI Guidelines docs) */
-
-table.image-caption {
- padding:0;
- margin:.5em 0;
- border:0;
-}
-
-td.image-caption-i {
- font-size:92%;
- padding:0 5px;
- margin:0;
- border:0;
-}
-
-td.image-caption-i img {
- padding:0 1em;
- margin:0;
-}
-
-.image-list {
- width:24px;
- text-align:center;
-}
-
-td.image-caption-c {
- font-size:92%;
- padding:1em 2px 2px 2px;
- margin:0;
- border:0;
- width:350px;
-}
-
-.grad-rule-top {
-background-image:url(images/grad-rule-qv.png);
-background-repeat:no-repeat;
-padding-top:1em;
-margin-top:0;
-}
-
-.image-caption-nested {
- margin-top:0;
- padding:0 0 0 1em;
-}
-
-.image-caption-nested td {
- padding:0 4px 2px 0;
- margin:0;
- border:0;
-}
-
-/* END image and caption styles */
-
-/* table of contents */
-
-ol.toc {
- margin: 0 0 1em 0;
- padding: 0;
- list-style: none;
- font-size:95%;
-}
-
-ol.toc li {
- font-weight: bold;
- margin: 0 0 .5em 1em;
- padding: 0;
-}
-
-ol.toc li p {
- font-weight: normal;
-}
-
-ol.toc li ol {
- margin: 0;
- padding: 0;
-}
-
-ol.toc li li {
- padding: 0;
- margin: 0 0 0 1em;
- font-weight: normal;
- list-style: none;
-}
-
-table ol.toc {
- margin-left: 0;
-}
-
-.columns td {
- padding:0 5px;
- border:none;
-}
-
-/* link table */
-.jd-linktable {
- margin: 0 0 1em;
- border-bottom: 1px solid #888;
-}
-.jd-linktable th,
-.jd-linktable td {
- padding: 3px 5px;
- vertical-align: top;
- text-align: left;
- border:none;
-}
-.jd-linktable tr {
- background-color: #fff;
-}
-.jd-linktable td {
- border-top: 1px solid #888;
- background-color: inherit;
-}
-.jd-linktable td p {
- padding: 0 0 5px;
-}
-.jd-linktable .jd-linkcol {
-}
-.jd-linktable .jd-descrcol {
-}
-.jd-linktable .jd-typecol {
- text-align:right;
-}
-.jd-linktable .jd-valcol {
-}
-.jd-linktable .jd-commentrow {
- border-top:none;
- padding-left:25px;
-}
-.jd-deprecated-warning {
- margin-top: 0;
- margin-bottom: 10px;
-}
-
-tr.alt-color {
- background-color: #f6f6f6;
-}
-
-/* expando trigger */
-#jd-content .jd-expando-trigger-img {
- margin:0;
-}
-
-/* jd-expando */
-.jd-inheritedlinks {
- padding:0 0 0 13px
-}
-
-/* SDK PAGE */
-table.download tr {
- background-color:#d9d9d9;
-}
-
-table.download tr.alt-color {
- background-color:#ededed;
-}
-
-table.download td,
-table.download th {
- border:2px solid #fff;
- padding:10px 5px;
-}
-
-table.download th {
- background-color:#6d8293;
- color:#fff;
-}
-
-/* INLAY 180 COPY and 240PX EXTENSION */
-/* modified to 43px so that all browsers eliminate the package panel h-scroll */
-.g-tpl-240 .g-unit,
-.g-unit .g-tpl-240 .g-unit,
-.g-unit .g-unit .g-tpl-240 .g-unit {
- display: block;
- margin: 0 0 0 243px;
- width: auto;
- float: none;
-}
-.g-unit .g-unit .g-tpl-240 .g-first,
-.g-unit .g-tpl-240 .g-first,
-.g-tpl-240 .g-first {
- display: block;
- margin: 0;
- width: 243px;
- float: left;
-}
-/* 240px alt */
-.g-tpl-240-alt .g-unit,
-.g-unit .g-tpl-240-alt .g-unit,
-.g-unit .g-unit .g-tpl-240-alt .g-unit {
- display: block;
- margin: 0 243px 0 0;
- width: auto;
- float: none;
-}
-.g-unit .g-unit .g-tpl-240-alt .g-first,
-.g-unit .g-tpl-240-alt .g-first,
-.g-tpl-240-alt .g-first {
- display: block;
- margin: 0;
- width: 243px;
- float: right;
-}
-
-/* 200px */
-.g-tpl-200 .g-unit,
-.g-unit .g-tpl-200 .g-unit,
-.g-unit .g-unit .g-tpl-200 .g-unit {
- display: block;
- margin: 0 0 0 200px;
- width: auto;
- float: none;
-}
-.g-unit .g-unit .g-tpl-200 .g-first,
-.g-unit .g-tpl-200 .g-first,
-.g-tpl-200 .g-first {
- display: block;
- margin: 0;
- width: 200px;
- float: left;
-}
-/* 200px alt */
-.g-tpl-200-alt .g-unit,
-.g-unit .g-tpl-200-alt .g-unit,
-.g-unit .g-unit .g-tpl-200-alt .g-unit {
- display: block;
- margin: 0 200px 0 0;
- width: auto;
- float: none;
-}
-.g-unit .g-unit .g-tpl-200-alt .g-first,
-.g-unit .g-tpl-200-alt .g-first,
-.g-tpl-200-alt .g-first {
- display: block;
- margin: 0;
- width: 200px;
- float: right;
-}
-
-/* 190px */
-.g-tpl-190 .g-unit,
-.g-unit .g-tpl-190 .g-unit,
-.g-unit .g-unit .g-tpl-190 .g-unit {
- display: block;
- margin: 0 0 0 190px;
- width: auto;
- float: none;
-}
-.g-unit .g-unit .g-tpl-190 .g-first,
-.g-unit .g-tpl-190 .g-first,
-.g-tpl-190 .g-first {
- display: block;
- margin: 0;
- width: 190px;
- float: left;
-}
-/* 190px alt */
-.g-tpl-190-alt .g-unit,
-.g-unit .g-tpl-190-alt .g-unit,
-.g-unit .g-unit .g-tpl-190-alt .g-unit {
- display: block;
- margin: 0 190px 0 0;
- width: auto;
- float: none;
-}
-.g-unit .g-unit .g-tpl-190-alt .g-first,
-.g-unit .g-tpl-190-alt .g-first,
-.g-tpl-190-alt .g-first {
- display: block;
- margin: 0;
- width: 190px;
- float: right;
-}
-
-/* 180px */
-.g-tpl-180 .g-unit,
-.g-unit .g-tpl-180 .g-unit,
-.g-unit .g-unit .g-tpl-180 .g-unit {
- display: block;
- margin: 0 0 0 180px;
- width: auto;
- float: none;
-}
-.g-unit .g-unit .g-tpl-180 .g-first,
-.g-unit .g-tpl-180 .g-first,
-.g-tpl-180 .g-first {
- display: block;
- margin: 0;
- width: 180px;
- float: left;
-}
-/* 180px alt */
-.g-tpl-180-alt .g-unit,
-.g-unit .g-tpl-180-alt .g-unit,
-.g-unit .g-unit .g-tpl-180-alt .g-unit {
- display: block;
- margin: 0 180px 0 0;
- width: auto;
- float: none;
-}
-.g-unit .g-unit .g-tpl-180-alt .g-first,
-.g-unit .g-tpl-180-alt .g-first,
-.g-tpl-180-alt .g-first {
- display: block;
- margin: 0;
- width: 180px;
- float: right;
-}
-
-
-/* JQUERY RESIZABLE STYLES */
-.ui-resizable { position: relative; }
-.ui-resizable-handle { position: absolute; display: none; font-size: 0.1px; z-index:1; }
-.ui-resizable .ui-resizable-handle { display: block; }
-body .ui-resizable-disabled .ui-resizable-handle { display: none; }
-body .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-s { cursor: s-resize; height: 6px; width: 100%; bottom: 0px; left: 0px;
- background: transparent url("images/resizable-s2.gif") repeat scroll center top; }
-.ui-resizable-e { cursor: e-resize; width: 6px; right: 0px; top: 0px; height: 100%;
- background: transparent url("images/resizable-e2.gif") repeat scroll right center; }
-
-@media print {
-
- body {
- overflow:visible;
- }
-
- #header {
- height:60px;
- }
-
- #headerLeft {
- padding:0;
- }
-
- #header-tabs,
- #headerRight,
- #side-nav,
- #api-info-block {
- display:none;
- }
-
- #body-content {
- position:inherit;
- }
-
- #doc-content {
- margin-left:0 !important;
- height:auto !important;
- width:auto !important;
- overflow:inherit;
- display:inline;
- }
-
- #jd-header {
- padding:10px 0;
- }
-
- #jd-content {
- padding:15px 0 0;
- }
-
- #footer {
- float:none;
- margin:2em 0 0;
- }
-
- h4.jd-details-title {
- border-bottom:1px solid #666;
- }
-
- pre {
- /* these allow lines to break (if there's a white space) */
- overflow: visible;
- text-wrap: unrestricted;
- white-space: -moz-pre-wrap; /* Moz */
- white-space: -pre-wrap; /* Opera 4-6 */
- white-space: -o-pre-wrap; /* Opera 7 */
- white-space: pre-wrap; /* CSS3 */
- word-wrap: break-word; /* IE 5.5+ */
- }
-
- h1, h2, h3, h4, h5, h6 {
- page-break-after: avoid;
- }
-
- table, img {
- page-break-inside: avoid;
- }
-}
diff --git a/build/tools/droiddoc/templates-lineage-sdk/assets/css/default.css b/build/tools/droiddoc/templates-lineage-sdk/assets/css/default.css
deleted file mode 100644
index 7e0926fc..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/assets/css/default.css
+++ /dev/null
@@ -1,7439 +0,0 @@
-/* color definitions */
-/* 16 column layout */
-/* clearfix idiom */
-/* common mixins */
-/* page layout + top-level styles */
-::selection {
- background-color: #167c80;
- color: #fff; }
-::-webkit-selection {
- background-color: #167c80;
- color: #fff; }
-::-moz-selection {
- background-color: #167c80;
- color: #fff; }
-
-html, body {
- height: 100%;
- margin: 0;
- padding: 0;
- background-color:#F9F9F9;
- -webkit-font-smoothing: antialiased;
- /* prevent subpixel antialiasing, which thickens the text */
- /* text-rendering: optimizeLegibility; */
- /* turned off ligatures due to bug 5945455 */ }
-
-body {
- color: #222;
- font: 14px/19px Roboto, sans-serif;
- font-weight: 400;
- letter-spacing:.1;
- padding:0 10px; }
-
-#page-container {
- width: 940px;
- margin: 0 40px; }
-
-#page-header {
- height: 80px;
- margin-bottom: 20px;
- font-size: 48px;
- line-height: 48px;
- font-weight: 100;
- padding-left: 10px; }
- #page-header a {
- display: block;
- position: relative;
- top: 20px;
- text-decoration: none;
- color: #555555 !important; }
-
-#main-row {
- display: inline-block; }
- #main-row:after {
- content: ".";
- display: block;
- height: 0;
- clear: both;
- visibility: hidden; }
- * html #main-row {
- height: 1px; }
-
-#page-footer {
- margin-left: 190px;
- margin-top: 80px;
- color: #999999;
- padding-bottom: 40px;
- font-size: 12px;
- line-height: 15px; }
- #page-footer a {
- color: #777777; }
- #page-footer #copyright {
- margin-bottom: 10px; }
-
-#nav-container {
- width: 160px;
- min-height: 10px;
- margin-right: 20px;
- float: left; }
-
-#nav {
- margin:0;
- padding:0 0 30px;
-}
-
-#side-nav {
- min-height:5px; /* silly way to avoid doc floating left when nav goes fixed */
- margin-bottom:1px;
-}
-#devdoc-nav {
- outline:none;
- width:auto;
- margin: 20px 0 0; }
-
-#devdoc-nav h2 {
- border:0;
-}
-
-#devdoc-nav.fixed {
- position: fixed;
- margin:0;
- top: 65px; /* sticky-header height + 20px gutter */
-}
-
-#devdoc-nav span.small {
- font-size:12px;
- font-weight:normal;
-}
-
-#content {
- width: 760px;
- float: left; }
-
-a:hover,
-acronym:hover {
- color: #0C4446 !important; }
-
-a:focus,
-a:active {
- color: #167c80 !important; }
-
-a.external-link {
- background:url('../images/styles/open_new_page.png') no-repeat 100% 50%;
- padding-right:16px;
-}
-
-img {
- border: none; }
-#jd-content img {
- margin-bottom:15px;
-}
-
-ul {
- margin: 0;
- padding: 0; }
-
-strong {
- font-weight: 500; }
-
-em {
- font-style: italic; }
-
-acronym,
-.tooltip-link {
- border-bottom: 1px dotted #555555;
- cursor: help; }
-
-acronym:hover,
-.tooltip-link:hover {
- color: #0C4446;
- border-bottom-color: #0C4446; }
-
-img.with-shadow,
-video.with-shadow {
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25); }
-
-/* disclosures mixin */
-/* content layout */
-.layout-content-row {
- display: inline-block;
- margin-bottom: 10px; }
- * html .layout-content-row {
- height: 1px; }
-
-.layout-content-col {
- float: left;
- margin-left: 20px; }
- .layout-content-col:first-child {
- margin-left: 0; }
- .layout-content-col h3,
- .layout-content-col h4 {
- margin-top:0; }
-
-.layout-content-col.span-1 {
- width: 40px; }
-
-.layout-content-col.span-2 {
- width: 100px; }
-
-.layout-content-col.span-3 {
- width: 160px; }
-
-.layout-content-col.span-4 {
- width: 220px; }
-
-.layout-content-col.span-5 {
- width: 280px; }
-
-.layout-content-col.span-6 {
- width: 340px; }
-
-.layout-content-col.span-7 {
- width: 400px; }
-
-.layout-content-col.span-8 {
- width: 460px; }
-
-.layout-content-col.span-9 {
- width: 520px; }
-
-.layout-content-col.span-10 {
- width: 580px; }
-
-.layout-content-col.span-11 {
- width: 640px; }
-
-.layout-content-col.span-12 {
- width: 700px; }
-
-.layout-content-col.span-13 {
- width: 760px; }
-
-.vspace.size-1 {
- height: 10px; }
-
-.vspace.size-2 {
- height: 20px; }
-
-.vspace.size-3 {
- height: 30px; }
-
-.vspace.size-4 {
- height: 40px; }
-
-.vspace.size-5 {
- height: 50px; }
-
-.vspace.size-6 {
- height: 60px; }
-
-.vspace.size-7 {
- height: 70px; }
-
-.vspace.size-8 {
- height: 80px; }
-
-.vspace.size-9 {
- height: 90px; }
-
-.vspace.size-10 {
- height: 100px; }
-
-.vspace.size-11 {
- height: 110px; }
-
-.vspace.size-12 {
- height: 120px; }
-
-.vspace.size-13 {
- height: 130px; }
-
-.vspace.size-14 {
- height: 140px; }
-
-.vspace.size-15 {
- height: 150px; }
-
-.vspace.size-16 {
- height: 160px; }
-
-/* nav */
-#nav {
- /* section header divs */
- /* expanded section header divs */
- /* sublinks */ }
- #nav li {
- list-style-type: none;
- font-size: 14px;
- margin:0;
- padding:0;
- line-height: 15px; }
- #nav a {
- color: #555555;
- text-decoration: none;
- word-wrap:break-word; }
- #nav .nav-section-header {
- position: relative;
- margin-bottom: 1px;
- padding: 0 30px 0 0; }
- #nav li.selected a, #nav li.selected > .nav-section-header > a {
- color: #09C;
- }
- #nav li.selected ul li a {
- /* don't highlight child items */
- color: #555555; }
- #nav .nav-section .nav-section .nav-section-header {
- /* no white line between second level sections */
- margin-bottom: 0; }
- /* section header links */
- #nav > li > div > a {
- display: block;
- color: #333333;
- font-weight: 500;
- padding: 10px 0 10px 10px; }
- #nav .nav-section-header:after {
- content: '';
- background: transparent url(../images/styles/disclosure_down.png) no-repeat scroll 50% 50%;
- width: 34px;
- height: 34px;
- display: block;
- position: absolute;
- top: 0;
- right: 0; }
- #nav .nav-section-header.empty {
- padding:0; }
- #nav .nav-section-header.empty:after {
- display: none; }
- /* nested nav headers */
- #nav .nav-section .nav-section {
- position: relative;
- padding: 0;
- margin: 0; }
- #nav .nav-section li a {
- /* first gen child (2nd level li) */
- display:block;
- font-weight: normal;
- text-transform: none;
- padding: 7px 5px 7px 10px;
- }
- #nav .nav-section li li a {
- /* second gen child (3rd level li) */
- padding: 5px 5px 5px 10px;
- }
- #nav li.expanded .nav-section-header {
- background:#e9e9e9;
- background: rgba(0, 0, 0, 0.05); }
- #nav li.expanded li .nav-section-header {
- background: transparent; }
- #nav li.expanded li ul {
- /* 3rd level ul */
- padding:0 0 0 10px;
- }
- #nav li.expanded > .nav-section-header:after {
- content: '';
- background: transparent url(../images/styles/disclosure_up.png) no-repeat scroll 50% 50%;
- width: 34px;
- height: 34px; }
- #nav li.expanded li ul.tree-list-children {
- padding: 0;
- }
- #nav li.expanded li ul.tree-list-children .tree-list-children {
- padding:0 0 0 10px;
- }
- #nav li span.tree-list-subtitle {
- display:inline-block;
- padding:5px 0 0 10px;
- color:#555;
- text-transform:uppercase;
- font-size:12px;
- }
- #nav li span.tree-list-subtitle:before {
- content: '—';
- }
- #nav li span.tree-list-subtitle:after {
- content: '—';
- }
- #nav li span.tree-list-subtitle.package {
- padding-top:15px;
- cursor:default;
- }
- #nav li span.tree-list-subtitle.package:before {
- content: '';
- }
- #nav li span.tree-list-subtitle.package:after {
- content: '';
- }
- #nav li ul.tree-list-children.classes {
- padding-left:10px;
- }
- #nav li ul {
- display:none;
- overflow: hidden;
- margin: 0; }
- #nav li ul.animate-height-in {
- -webkit-transition: height 0.25s ease-in;
- -moz-transition: height 0.25s ease-in;
- transition: height 0.25s ease-in; }
- #nav li ul.animate-height-out {
- -webkit-transition: height 0.25s ease-out;
- -moz-transition: height 0.25s ease-out;
- transition: height 0.25s ease-out; }
- #nav li ul li {
- padding: 0; }
- #nav li li li {
- padding: 0; }
- #nav li.expanded ul {
- }
- #nav li ul > li {
- padding:0;
- }
- #nav li ul > li:last-child {
- padding-bottom:5px;
- }
- #nav li ul.tree-list-children > li:last-child {
- padding-bottom:0;
- }
- #nav li.expanded ul > li {
- background:#efefef;
- background: rgba(0, 0, 0, 0.03); }
- #nav li.expanded ul > li li {
- background:inherit; }
- #nav li ul.tree-list-children ul {
- display:block; }
-
-#nav.samples-nav li li li {
- font-size:13px;
-}
-#nav.samples-nav li li li a {
- padding-top:3px;
- padding-bottom:3px;
-}
-#nav.samples-nav li li ul > li:last-child {
- padding-bottom:3px;
-}
-
-.new,
-.new-child {
- font-size: .78em;
- font-weight: bold;
- color: #ff3d3d;
- vertical-align:top;
- white-space:nowrap;
-}
-
-/* content header */
-.content-header {
- height: 30px;
- margin:36px 0 23px; /* same as h1 */
- padding:0 0 10px;} /* same as h1 */
-.content-header.just-links {
- margin-bottom:0;
- padding-bottom:0;}
-
-.content-header h1 {
- margin:0;
- padding:0;
- width: 700px;
-}
-.content-header > div:first-child {
- height:1px; /* set fixed height for the header div to ensure the
- next/prev links align with toc on training classes */
-}
-
-.content-footer {
- border-top: 1px solid #ccc;
- margin-top: 10px;
- padding-top:10px;
- width:100%; }
-
-.content-footer .col-9 {
- margin-left:0;
-}
-.content-footer .col-4 {
- margin-right:0;
-}
-.content-footer.wrap {
- width:940px;
-}
-.content-footer .plus-container {
- margin:5px 0 0;
- text-align:right;
- float:right;
-}
-
-a.back-link {
- text-decoration: none;
- text-transform: uppercase;
-}
-
-.content-header .paging-links {
- margin-top:-25px;
-}
-.paging-links {
- position: relative;
- height:30px; }
- .paging-links a {
- position: absolute; }
- .paging-links a,
- .training-nav-top a {
- color: #555555;
- text-decoration: none;
- text-transform: uppercase; }
- .paging-links .prev-page-link:before,
- .training-nav-top .prev-page-link:before,
- a.back-link:before {
- content: '';
- background: transparent url(../images/styles/disclosure_left.png) no-repeat scroll 50% 50%;
- width: 10px;
- height: 10px;
- display: inline-block;
- margin-right: 5px; }
- .training-nav-top .next-page-link,
- .training-nav-top .start-class-link,
- .training-nav-top .start-course-link {
- right: 10px; }
- .paging-links .prev-page-link {
- left: -15px; }
- .paging-links .next-page-link {
- right: 0; }
- .next-page-link:after,
- .start-class-link:after,
- .start-course-link:after,
- .next-class-link:after,
- .go-link:after {
- content: '';
- background: transparent url(../images/styles/disclosure_right.png) no-repeat scroll 50% 50%;
- width: 10px;
- height: 10px;
- display: inline-block;
- margin-left: 5px; }
- .prev-page-link.inline:before {
- content: none; }
- .next-page-link.inline:after {
- content: none; }
-
- .content-footer .paging-links .next-page-link {
- left:0;
- }
-
- .training-nav-top a {
- display:block;
- float:left;
- width:122px;
- height:28px;
- padding: 8px;
- line-height:28px;
- text-align:center;
- border:1px solid #DADADA;
- border-bottom:0;
- }
-
- .training-nav-top a.next-page-link {
- border-left:0;
- width:123px;
- }
-
- .paging-links a.disabled,
- .training-nav-top a.disabled,
- .content-footer a.disabled {
- color:#bbb;
- }
-
- .paging-links a.disabled:hover,
- .training-nav-top a.disabled:hover,
- .content-footer a.disabled:hover {
- cursor:default;
- color:#bbb !important;
- }
-
- .training-nav-top a.start-class-link,
- .training-nav-top a.start-course-link {
- width:262px;
- }
-
- .paging-links a.start-class-link {
- width:100%;
- }
-
- /* list of classes on course landing page */
- ol.class-list {
- list-style:none;
- margin-left:0;
- }
- ol.class-list>li {
- margin:0 0 15px;
- padding:5px 0 0;
- overflow:hidden;
- border-top:1px solid #ccc;
- }
- ol.class-list li a.title {
- font-size:16px;
- margin:0;
- clear:left;
- display:block;
- height:32px;
- padding:0 4px;
- }
- ol.class-list li a.title h2 {
- color:inherit;
- margin:0 0 10px;
- display:block;
- float:left;
- width:675px;
- }
- ol.class-list li a.title span {
- display:none;
- float:left;
- font-size:18px;
- font-weight:bold;
- background: transparent url(../images/styles/disclosure_right.png) no-repeat scroll 50% 50%;
- width: 10px;
- height: 32px;
- }
- ol.class-list li a.title:hover {
- background:#ddd;
- color:#258AAF !important;
- }
- ol.class-list li a.title:hover span {
- display:block;
- }
-
- #jd-content
- ol.class-list li img {
- float:left;
- clear:left;
- width:64px;
- margin:0 20px 0 0;
- }
- ol.class-list li p.description {
- float:left;
- display:block;
- width:250px;
- margin:0;
- }
- ol.class-list li p.description.article {
- width: 550px;
- }
- ol.class-list ol {
- float:left;
- width:320px;
- margin:0 0 0 30px;
- list-style:none;
- margin:0 0 0 20px;
- }
- ol.class-list div.lessons li {
- margin:0 0 6px;
- line-height:16px;
- }
-
-
- .hide {
- display:none !important;
- }
-
-
-
- /* inner-doc tabs w/ title */
-
-div#title-tabs-wrapper {
- border-bottom:1px solid #ccc;
- margin:20px 0 30px;
-}
-h1.with-title-tabs {
- display:inline-block;
- margin:0 0 -1px 0;
- padding:0 60px 0 0;
- border-bottom:1px solid #F9F9F9;
-}
-ul#title-tabs {
- list-style:none;
- padding:0;
- height:29px;
- margin:0;
- font-size:16px;
- line-height:26px;
- display:inline-block;
- vertical-align:bottom;
-}
-ul#title-tabs li {
- display:block;
- float:left;
- margin-right:40px;
- border-bottom: 3px solid transparent;
-}
-ul#title-tabs li.selected {
- border-bottom: 3px solid #93C;
-}
-ul#title-tabs li a {
- color:#333;
-}
-ul#title-tabs li a:hover,
-ul#title-tabs li a:active {
- color:#93C !important;
-}
-
-
-
-/* content body */
-@-webkit-keyframes glowheader {
- from {
- background-color: #167c80;
- color: #000;
- border-bottom-color: #000; }
-
- to {
- background-color: transparent;
- color: #167c80;
- border-bottom-color: #167c80; } }
-
-@-moz-keyframes glowheader {
- from {
- background-color: #167c80;
- color: #000;
- border-bottom-color: #000; }
-
- to {
- background-color: transparent;
- color: #167c80;
- border-bottom-color: #167c80; } }
-
-@keyframes glowheader {
- from {
- background-color: #167c80;
- color: #000;
- border-bottom-color: #000; }
-
- to {
- background-color: transparent;
- color: #167c80;
- border-bottom-color: #167c80; } }
-
-h1:target,
-h2:target,
-h3:target {
- -webkit-animation-name: glowheader;
- -moz-animation-name: glowheader;
- animation-name: glowheader;
- -webkit-animation-duration: 0.7s;
- -moz-animation-duration: 0.7s;
- animation-duration: 0.7s;
- -webkit-animation-timing-function: ease-out;
- -moz-animation-timing-function: ease-out;
- animation-timing-function: ease-out; }
-
-.design ol h4 {
- margin-bottom:0;
-}
-.design ol {
- counter-reset: item; }
- .design ol>li {
- font-size: 14px;
- line-height: 20px;
- list-style-type: none;
- position: relative; }
- .design ol>li:before {
- content: counter(item) ". ";
- counter-increment: item;
- position: absolute;
- left: -20px;
- top: 0; }
- .design ol li.value-1:before {
- content: "1. "; }
- .design ol li.value-2:before {
- content: "2. "; }
- .design ol li.value-3:before {
- content: "3. "; }
- .design ol li.value-4:before {
- content: "4. "; }
- .design ol li.value-5:before {
- content: "5. "; }
- .design ol li.value-6:before {
- content: "6. "; }
- .design ol li.value-7:before {
- content: "7. "; }
- .design ol li.value-8:before {
- content: "8. "; }
- .design ol li.value-9:before {
- content: "9. "; }
- .design ol li.value-10:before {
- content: "10. "; }
-.design .with-callouts ol>li {
- list-style-position: inside;
- margin-left: 0; }
- .design .with-callouts ol>li:before {
- display: inline;
- left: -20px;
- float: left;
- width: 17px;
- color: #167c80;
- font-weight: 500; }
-.design .with-callouts ul>li {
- list-style-position: outside; }
-
-/* special list items */
-li.no-bullet {
- list-style-type: none !important; }
-li.no-bullet *{
- margin:0; }
-
-.design li.with-icon {
- position: relative;
- margin-left: 20px;
- min-height: 30px; }
- .design li.with-icon p {
- margin-left: 0 !important; }
- .design li.with-icon:before {
- position: absolute;
- left: -40px;
- top: 0;
- content: '';
- width: 30px;
- height: 30px; }
- .design li.with-icon.tablet:before {
- background-image: url(../images/styles/ico_phone_tablet.png); }
- .design li.with-icon.web:before {
- background-image: url(../images/styles/ico_web.png); }
- .design li.with-icon.action:before {
- background-image: url(../images/styles/ico_action.png); }
- .design li.with-icon.use:before {
- background-image: url(../images/styles/ico_use.png); }
-
-/* figures and callouts */
-.figure {
- position: relative; }
- .figure.pad-below {
- margin-bottom: 20px; }
- .figure .figure-callout {
- position: absolute;
- color: #fff;
- font-weight: 500;
- font-size: 16px;
- line-height: 23px;
- text-align: center;
- background: transparent url(../images/styles/callout.png) no-repeat scroll 50% 50%;
- padding-right: 2px;
- width: 30px;
- height: 29px;
- z-index: 1000; }
- .figure .figure-callout.top {
- top: -9px; }
- .figure .figure-callout.right {
- right: -5px; }
-
-.figure-caption {
- margin: 0 10px 20px 0;
- font-size: 14px;
- line-height: 20px;
- font-style: italic; }
-
-/* rows of figures */
-.figure-row {
- font-size: 0;
- line-height: 0;
- /* to prevent space between figures */ }
- .figure-row .figure {
- display: inline-block;
- vertical-align: top; }
- .figure-row .figure + .figure {
- margin-left: 10px;
- /* reintroduce space between figures */ }
-
-/* video containers */
-.framed-galaxynexus-land-span-13 {
- background: transparent url(../images/styles/device_galaxynexus_blank_land_span13.png) no-repeat
-scroll top left;
- padding: 42px 122px 62px 126px;
- overflow: hidden; }
- .framed-galaxynexus-land-span-13, .framed-galaxynexus-land-span-13 video,
-.framed-galaxynexus-land-span-13 img {
- width: 512px;
- height: 286px; }
-
-
-.framed-galaxynexus-land-span-8{
- background: transparent url(../images/styles/device_galaxynexus_blank_land_span8.png) no-repeat
-scroll top left;
- padding: 26px 68px 38px 72px;
- overflow: hidden; }
- .framed-galaxynexus-land-span-8, .framed-galaxynexus-land-span-8 video,
-.framed-galaxynexus-land-span-8 img {
- width: 320px;
- height: 180px; }
-
-.framed-galaxynexus-port-span-9 {
- background: transparent url(../images/styles/device_galaxynexus_blank_port_span9.png) no-repeat
-scroll top left;
- padding: 95px 122px 107px 124px;
- overflow: hidden; }
- .framed-galaxynexus-port-span-9, .framed-galaxynexus-port-span-9 video,
-.framed-galaxynexus-port-span-9 img {
- width: 274px;
- height: 488px; }
-
-.framed-galaxynexus-port-span-5 {
- background: transparent url(../images/styles/device_galaxynexus_blank_port_span5.png) no-repeat
-scroll top left;
- padding: 75px 31px 76px 33px;
- overflow: hidden; }
- .framed-galaxynexus-port-span-5, .framed-galaxynexus-port-span-5 video,
-.framed-galaxynexus-port-span-5 img {
- width: 216px;
- height: 384px; }
-
-.framed-nexus4-port-216 {
- background: transparent url(../images/styles/device_nexus4_blank_port_432.png) no-repeat
-scroll top left;
- background-size:240px 465px;
- padding: 52px 12px 52px 12px;
- overflow: hidden; }
- .framed-nexus4-port-216, .framed-nexus4-port-216 video,
- .framed-nexus4-port-216 img {
- width: 216px;
- height: 360px; }
-
-.framed-nexus5-port-span-5 {
- background: transparent url(../images/styles/device_nexus5_blank_port_span5.png) no-repeat
- scroll top left;
- padding: 52px 33px 69px 31px;
- overflow: hidden;
-}
-
-.framed-nexus5-port-span-5,
-.framed-nexus5-port-span-5 video,
-.framed-nexus5-port-span-5 img {
- width: 216px;
- height: 384px;
-}
-
-.framed-nexus5-land-span-13 {
- background: transparent url(../images/styles/device_nexus5_blank_land_span13.png) no-repeat scroll top left;
- padding: 36px 119px 54px 108px;
- overflow: hidden;
-}
-
-.framed-nexus5-land-span-13,
-.framed-nexus5-land-span-13 video,
-.framed-nexus5-land-span-13 img {
- width: 533px;
- height: 300px;
-}
-
-.framed-nexus5-port-span-5,
-.framed-nexus5-port-span-5 video,
-.framed-nexus5-port-span-5 img {
- width: 216px;
- height: 384px;
-}
-
-/* wear device frames */
-
-.framed-wear-square {
- background: transparent url(../images/styles/device_wear_square.png) no-repeat scroll top left;
- background-size: 302px 302px;
- height:222px;
- width:222px;
- padding:40px;
- overflow:hidden;
-}
-
-.framed-wear-square-small {
- background: transparent url(../images/styles/device_wear_square_small.png) no-repeat scroll top left;
- background-size: 169px 200px;
- height:147px;
- width:147px;
- padding:27px 11px;
- overflow:hidden;
-}
-
-#jd-content
-.framed-wear-square img {
- height:222px;
- width: 222px;
- padding:0;
- margin:0;
-}
-
-#jd-content
-.framed-wear-square-small img {
- height:147px;
- width: 147px;
- padding:0;
- margin:0;
-}
-
-
-
-
-
-
-/* landing page disclosures */
-.landing-page-link {
- text-decoration: none;
- font-weight: 500;
- color: #333333; }
- .landing-page-link:after {
- content: '';
- background: transparent url(../images/styles/disclosure_right.png) no-repeat scroll 50% 50%;
- width: 10px;
- height: 10px;
- display: inline-block;
- margin-left: 5px; }
-
-/* tooltips */
-.tooltip-box {
- position: absolute;
- background-color: rgba(0, 0, 0, 0.9);
- border-radius: 2px;
- font-size: 14px;
- line-height: 20px;
- color: #fff;
- padding: 6px 10px;
- max-width: 250px;
- z-index: 10000; }
- .tooltip-box.below:after {
- position: absolute;
- content: '';
- line-height: 0;
- display: block;
- top: -10px;
- left: 5px;
- border: 5px solid transparent;
- border-bottom-color: rgba(0, 0, 0, 0.9); }
-
-/* video note */
-.video-instructions {
- margin-top: 10px;
- margin-bottom: 10px; }
- .video-instructions:before {
- content: '';
- background: transparent url(../images/styles/ico_movie_inline.png) no-repeat scroll top left;
- display: inline-block;
- width: 12px;
- height: 12px;
- margin-right: 8px; }
- .video-instructions:after {
- content: 'Click device screen to replay movie.'; }
-
-/* download buttons */
-.download-button {
- display: block;
- margin-bottom: 5px;
- text-decoration: none;
- background-color: #167c80;
- color: #fff !important;
- font-weight: 500;
- box-shadow: 0 1px 1px rgba(0, 0, 0, 0.12);
- padding: 6px 12px;
- border-radius: 2px; }
- .download-button:hover, .download-button:focus {
- background-color: #167c80;
- color: #fff !important; }
- .download-button:active {
- background-color: #006699; }
-
-/* UI tables and other things found in Writing style and Settings pattern */
-.ui-table {
- width: 100%;
- background-color: #282828;
- color: #fff;
- border-radius: 2px;
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
- border-collapse: separate; }
- .ui-table th,
- .ui-table td {
- padding: 5px 10px;
- background-color: inherit;
- border:0;}
- .ui-table thead th {
- font-weight: bold; }
- .ui-table tfoot td {
- border-top: 1px solid #494949;
- border-right: 1px solid #494949;
- text-align: center; }
- .ui-table tfoot td:last-child {
- border-right: 0; }
-
-.layout-with-list-item-margins {
- margin-left: 30px !important; }
-
-.emulate-content-left-padding {
- margin-left: 10px; }
-
-.do-dont-label {
- margin-bottom: 10px;
- padding-left: 20px;
- background: transparent none no-repeat scroll 0px 3px; }
- .do-dont-label.bad {
- background-image: url(../images/styles/ico_wrong.png); }
- .do-dont-label.good {
- background-image: url(../images/styles/ico_good.png); }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/***** PREVIOUSLY style.css ******************/
-
-
-
-
-
-@media screen, projection, print {
-[dir='rtl'] {
- direction: rtl;
-}
-html {
- line-height: 20px;
-}
-pre, table, input, textarea, code {
- font-size: 1em;
-}
-address, abbr, cite {
- font-style: normal;
-}
-[dir='rtl'] th {
- text-align: right;
-}
-html[lang^=ja] blockquote, html[lang^=ja] q, html[lang^=ko] blockquote, html[lang^=ko] q,
-html[lang^=zh] blockquote, html[lang^=zh] q {
- font-style: normal;
-}
-q {
- font-style: italic;
-}
-fieldset, iframe, img {
- border: 0;
-}
-img {
- -ms-interpolation-mode: bicubic;
- vertical-align: middle;
- max-width: 100%;
-}
-q {
- quotes: none;
-}
-sup, sub {
- font-size: 11px;
- line-height: 0;
-}
-}
-
-@media screen, projection {
-
-table, fieldset {
- margin: 0;
-}
-h1 {
- color:#333;
- font-size: 34px;
- margin: 36px 0 27px;
- padding:0 0 10px;
- font-weight:300;
-}
-h1, h2 {
- line-height: 30px;
-}
-h1.short {
- margin-right:320px;
-}
-h1.short {
- margin-right:320px;
-}
-h1.super {
- font-size: 37px;
-}
-h2 {
- color:#333;
- font-size: 26px;
- margin: 32px 0 20px;
- padding:0;
- font-weight:300;
-}
-h3 {
- color:#333;
- font-size: 21px;
- font-weight:400;
- margin:21px 0 14px 0;
-}
-h3, h4 {
- line-height: 21px;
-}
-h4 {
- font-size: 18px;
- margin: 12px 0;
- font-weight:500;
-}
-h5 {
- font-size: 14px;
-}
-h5, h6 {
- margin: 5px 0;
-}
-h6 {
- font-size: 12px;
-}
-hr { /* applied to the bottom of h2 elements */
- height: 1px;
- margin: 3px 0 12px;
- border: 0;
- background: #ccc;
-}
-p, pre, table, form {
- margin: 0 0 15px;
-}
-small {
- font-size: 11.5px;
- color: #000;
-}
-ul, ol {
- margin: 0 0 15px 18px;
- padding: 0;
-}
-[dir='rtl'] ul, [dir='rtl'] ol {
- margin: 10px 30px 10px 10px;
-}
-ul ul, ul ol, ol ul, ol ol {
- margin-bottom: 0;
- margin-top: 0;
-}
-li {
- margin:0 0 5px;
-}
-dd {
- margin:0 0 10px 30px;
-}
-dd p,
-dd pre,
-dd ul,
-dd ol,
-dd dl {
- margin-top:10px;
-}
-li p,
-li pre,
-li ul,
-li ol,
-li dl {
- margin-top:5px;
- margin-bottom:5px;
-}
-dl dd dl:first-child {
- margin-top:0;
-}
-pre strong, pre b, a strong, a b, a code {
- color: inherit;
-}
-pre, code {
- color: #060;
- font: 13px/1.5 monospace;
-}
-code {
- font-weight:bold;
- font: 13px/14px monospace;
-}
-
-legend {
- display: none;
-}
-a:link, a:visited, .link-color {
- color: #167c80;
- text-decoration: none;
-}
-a:focus, a:hover, a:active {
- color: #167c80;
- text-decoration: none;
-}
-a.white {
- color: #fff;
- text-decoration:underline;
-}
-a.white:hover, a.white:active {
- color: #ccc !important;
-}
-strong, b {
- font-weight:bold;
- color: #222;
-}
-table {
- border-collapse: collapse;
- border-spacing: 0;
- border:0;
- margin: .5em 1em 1em 0;
- width:100%; /* consistent table widths; within IE's quirks */
- background-color:#f7f7f7;
-}
-th, td {
- padding: 4px 12px;
- vertical-align: top;
- text-align: left;
-}
-td {
- background-color:inherit;
- border:solid 1px #DDD;
-}
-td *:last-child {
- margin-bottom:0;
-}
-th {
- background-color: #999;
- color: #fff;
- border:solid 1px #DDD;
- font-weight: normal;
-}
-tr:first-of-type th:first-of-type:empty {
- visibility: hidden;
-}
-
-/* --------------------------------------------------------------------------
-Footer
-*/
-.line {
- clear: both;
- background: #acbc00;
- background: -moz-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #acbc00),
-color-stop(50%, #acbc00), color-stop(50%, #bdde00), color-stop(100%, #bdde00));
- background: -webkit-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
- background: -o-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
- background: -ms-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
- background: linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
- height: 2px;
- margin-top: 150px;
- position: relative;
- z-index: 11;
-}
-#footer {
- font-size:11px;
- clear: both;
- color: #999;
- padding: 15px 0;
- margin-top:10px;
- width:auto;
-}
-#footer-local ul {
- list-style: none;
- margin: 5px 0 30px 0;
-}
-#footer-local li {
- display: inline;
-}
-#footer-local li+li:before {
- content: '|';
- padding: 0 3px;
- color: #e5e5e5;
-}
-#footer-global {
- padding: 10px 15px;
- background: #f5f5f5;
-}
-#footer-global {
- border-top: 1px solid #ebebeb;
- font-size: 11.5px;
- line-height: 1.8;
- list-style: none;
-}
-#footer-global ul {
- margin: 0;
-}
-#footer-global li {
- display: inline;
- font-weight: bold;
-}
-#footer-global li+li:before {
- content: '¬?';
- padding: 0 3px;
-}
-* html #footer-global li {
- margin: 0 13px 0 0;
-}
-* [dir='rtl'] #footer-global li {
- margin: 0 0 0 13px;
-}
-*+html #footer-global li {
- margin: 0 13px 0 0;
-}
-*+[dir='rtl'] #footer-global li {
- margin: 0 0 0 13px;
-}
-#footer-global li a {
- font-weight: normal;
-}
-.locales {
- margin: 10px 0 0 0px;
-}
-[dir='rtl'] .locales {
- background-position: right center;
- float: left;
- padding: 0 24px 0 0;
-}
-.locales form {
- margin: 0;
-}
-.locales select, .sites select {
- line-height: 3.08;
- margin: 0px 0;
- border: solid 1px #EBEBEB;
- -webkit-appearance: none;
- background: white url('../images/arrows-up-down.png') right center no-repeat;
- height: 30px;
- color: #222;
- line-height: normal;
- padding: 5px;
- width: 230px;
-}
-}
-
-/* =============================================================================
- Print Only
- ========================================================================== */
-@media print {
- /* configure printed page */
- @page {
- margin: 0.75in 1in;
- widows: 4;
- orphans: 4;
- }
-
- /* reset spacing metrics */
- html, body, .wrap {
- margin: 0 !important;
- padding: 0 !important;
- width: auto !important;
- }
-
- /* leave enough space on the left for bullets */
- body {
- padding-left: 20px !important;
- }
- #doc-col {
- margin-left: 0;
- }
-
- /* hide a bunch of non-content elements */
- #header, #footer, #nav-x, #side-nav,
- .training-nav-top, .training-nav-bottom,
- #doc-col .content-footer,
- .nav-x, .nav-y,
- .paging-links {
- display: none !important;
- }
-
- /* remove extra space above page titles */
- #doc-col .content-header {
- margin-top: 0;
- }
-
- /* bump up spacing above subheadings */
- h2 {
- margin-top: 40px !important;
- }
-
- /* print link URLs where possible and give links default text color */
- p a:after {
- content: " (" attr(href) ")";
- font-size: 80%;
- }
- p a {
- word-wrap: break-word;
- }
- a {
- color: inherit;
- }
-
- /* syntax highlighting rules */
- .str { color: #060; }
- .kwd { color: #006; font-weight: bold; }
- .com { color: #600; font-style: italic; }
- .typ { color: #404; font-weight: bold; }
- .lit { color: #044; }
- .pun { color: #440; }
- .pln { color: #000; }
- .tag { color: #006; font-weight: bold; }
- .atn { color: #404; }
- .atv { color: #060; }
-}
-
-/* =============================================================================
- Columns
- ========================================================================== */
-
-@media screen, projection, print {
-.full {
- padding: 2.5em 0;
- border-top: solid 1px #ddd;
- border-bottom: solid 1px #ddd;
- background: #f7f7f7;
-}
-.wrap {
- margin: 0 auto;
- width: 940px;
- clear: both;
-}
-.cols {
- height: 1%;
- margin: 0 -1.533742331288343558282%;
- width: 103.06748466257669%}
-*+html .cols {
- margin-bottom: 20px;
-}
-.cols:after {
- clear: both;
- content: ' ';
- display: block;
- height: 0;
- visibility: hidden;
-}
-.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12,
-.col-13, .col-14, .col-15, .col-16 {
- display: inline;
- float: left;
- margin-left: 10px;
- margin-right: 10px;
-}
-/*
-* html .col-1, * html .col-2, * html .col-3, * html .col-4, * html .col-5, * html .col-6, * html
-.col-7, * html .col-8, * html .col-9, * html .col-10, * html .col-11, * html .col-12 {
- margin: 0;
- padding: 0 1.4% 20px;
-}
-[dir='rtl'] .col-1, [dir='rtl'] .col-2, [dir='rtl'] .col-3, [dir='rtl'] .col-4, [dir='rtl'] .col-5,
-[dir='rtl'] .col-6, [dir='rtl'] .col-7, [dir='rtl'] .col-8, [dir='rtl'] .col-9, [dir='rtl'] .col-10,
-[dir='rtl'] .col-11, [dir='rtl'] .col-12 {
- float: right;
-}
-*/
-.col-1 { width: 40px }
-.col-2 { width: 100px }
-.col-3 { width: 160px }
-.col-4 { width: 220px }
-.col-5 { width: 280px }
-.col-6 { width: 340px }
-.col-7 { width: 400px }
-.col-8 { width: 460px }
-.col-9 { width: 520px }
-.col-10 { width: 580px }
-.col-11 { width: 640px }
-.col-12 { width: 700px }
-.col-13 { width: 760px }
-.col-14 { width: 820px }
-.col-15 { width: 880px }
-.col-16 { width: 940px }
-}
-
-.col-right {
- margin-right:0px;
-}
-
-@media screen and (max-width:772px) {
-.col-5, .col-6, .col-7 {
- clear: both;
- width: 97.0238096%}
-}
-
-/* =============================================================================
- Layout
- ========================================================================== */
-@media screen, projection, print {
-
-/* --------------------------------------------------------------------------
-Header, Login, Nav-X, Search
-*/
-#header {
- margin: 0;
- padding: 0;
-}
-#header:before, #header:after {
- content: "";
- display: table;
- clear: both
-}
-.logo, .nav-x {
- float: left;
-}
-.nav-x {
- margin-top: -2px;
- list-style-type: none;
-}
-.nav-x a {
- color: #333;
- font-size: 16px;
-}
-.about a.selected {
- color: #9933CC;
-}
-.design a.selected {
- color: #167c80;
-}
-.develop a.selected {
- color: #F80;
-}
-.distribute a.selected {
- color: #9C0;
-}
-
-
-
-.nav-x li {
- display: inline;
- margin-right: 45px;
-}
-.search {
- float: right;
- position: relative;
- width: 220px
-}
-.search .bottom, .search .left, .search .right {
- position: absolute;
- background-color: #a3a3a3;
-}
-.search .bottom {
- width: 220px;
- height: 1px;
- top: 24px;
- left: 0
-}
-.search .left, .search .right {
- height: 5px;
- width: 1px
-}
-.search .left { top: 19px; left: 0 }
-.search .right { top: 19px; right: 0 }
-.search form {
- float: left;
- margin-top: 2px;
- width: inherit;
-}
-.search .close,
-#player-frame .close {
- position: absolute;
- right: 8px;
- bottom: 4px;
- width: 16px;
- height: 16px;
- margin: 0;
- text-indent: -1000em;
- background: url(../images/close.png) no-repeat 0 0;
- z-index:9999;
-}
-.search .close:hover, .search .close:focus,
-#player-frame .close:hover, #player-frame .close:focus {
- background-position: -16px 0;
- cursor:pointer;
-}
-#player-frame .close {
- top: 6px;
-}
-.search form input {
- color: #999;
- font-size: 1em;
- width: inherit;
- border: none;
- margin: 0;
- padding:0 0 0 6px;
- z-index: 1500;
- background-color: transparent
-}
-.search:hover .bottom, .search:hover .left, .search:hover .right {
- background-color: #167c80;
-}
-.search:hover .icon {
- background-position: -8px 0
-}
-.search form input:focus {
- color: #222;
- font-weight: bold;
- outline:0;
-}
-/* Search Dropdown */
-.search-dropdown {
- padding: 15px;
- width: 192px;
- border: solid 1px #c5c5c5;
- background: #fff;
- position: absolute;
- top: 35px;
- left: 0;
- -moz-box-shadow: 0 0 10px rgba(0,0,0,0.2);
- -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.2);
- box-shadow: 0 0 10px rgba(0,0,0,0.2)
-}
-.search-dropdown ul, .search-dropdown ul li {
- list-style-type: none;
- margin: 0;
- padding: 0
-}
-.search-dropdown ul li {
- clear: both
-}
-.search-dropdown img {
- float: left;
- margin: 0 10px 10px 0
-}
-.search-dropdown h6 {
- color: #222;
- margin: 0;
- line-height: normal
-}
-.search-dropdown .desc {
- color: #999;
- font-size: 11.5px;
- line-height: normal;
- margin: 0;
-}
-.search-dropdown li a:hover h6, .search-dropdown li a:hover .desc {
- color: #167c80
-}
-/* --------------------------------------------------------------------------
-Buttons
-*/
-.button, a.button, .button-secondary, a.button-secondary {
- border-image: initial;
- -webkit-border-radius: 2px;
- -moz-border-radius: 2px;
- border-radius: 2px;
- cursor: pointer;
-}
-.button, a.button {
- display:inline-block;
- background-color: #09c;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#2faddb), to(#09c));
- background-image: -webkit-linear-gradient(top, #2faddb, #09c);
- background-image: -moz-linear-gradient(top, #2faddb, #09c);
- background-image: -ms-linear-gradient(top, #2faddb, #09c);
- background-image: -o-linear-gradient(top, #2faddb, #09c);
- background-image: linear-gradient(top, #2faddb, #09c);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#2faddb', EndColorStr='#167c80',GradientType=0);
- border: 1px solid #3990ab;
- color: #fff;
-}
-.button-secondary, a.button-secondary {
- background-color: #f3f3f3;
- border: 1px solid #dcdcdc;
- color: #444;
-}
-a.button, a.button:visited, a.button-secondary, a.button-secondary:visited {
- margin-right: 16px;
- font-weight: 400;
- min-width: 54px;
- outline: 0;
- padding: 8px 15px;
- text-align: center;
-}
-.button, .button-secondary {
- margin-right: 16px;
- font-weight: 400;
- min-width: 54px;
- outline: 0;
- padding: 0 15px;
- text-align: center;
-}
-.button:hover, a.button:hover {
- border-color: #09c;
- background-color: #4cadcb;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#5dbcd9), to(#4cadcb));
- background-image: -webkit-linear-gradient(top, #5dbcd9, #4cadcb);
- background-image: -moz-linear-gradient(top, #5dbcd9, #4cadcb);
- background-image: -ms-linear-gradient(top, #5dbcd9, #4cadcb);
- background-image: -o-linear-gradient(top, #5dbcd9, #4cadcb);
- background-image: linear-gradient(top, #5dbcd9, #4cadcb);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#5dbcd9',
-EndColorStr='#4cadcb',GradientType=0);
- color: #fff !important;
-}
-.button:active, a.button:active {
- background-color: #1e799a;
- background-image: none;
- border-color: #30b7e6;
-}
-a.button.big.subtitle {
- line-height:18px;
-}
-.button-secondary:hover, a.button-secondary:hover {
- border-color: #dbdbdb;
- background-color: #f3f3f3;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#ececec));
- background-image: -webkit-linear-gradient(top, #f9f9f9, #ececec);
- background-image: -moz-linear-gradient(top, #f9f9f9, #ececec);
- background-image: -ms-linear-gradient(top, #f9f9f9, #ececec);
- background-image: -o-linear-gradient(top, #f9f9f9, #ececec);
- background-image: linear-gradient(top, #f9f9f9, #ececec);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f9f9f9',
-EndColorStr='#ececec');
- color: #167c80 !important;
-}
-.button-secondary:active, a.button-secondary:active {
- border-color: #dadada;
- background: #ebebeb; /* Old browsers */
- /* IE9 SVG, needs conditional override of 'filter' to 'none' */
- background:
-url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/
-Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0Jv
-eD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+
-CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIg
-eDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ViZWJl
-YiIgc3RvcC1vcGFjaXR5PSIxIi8+
-CiAgICA8c3RvcCBvZmZzZXQ9IjEwJSIgc3RvcC1jb2xvcj0iI2Y5ZjlmOSIgc3RvcC1vcGFjaXR5PSIxIi8+
-CiAgICA8c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iI2ZhZmFmYSIgc3RvcC1vcGFjaXR5PSIxIi8+
-CiAgICA8c3RvcCBvZmZzZXQ9IjkwJSIgc3RvcC1jb2xvcj0iI2Y5ZjlmOSIgc3RvcC1vcGFjaXR5PSIxIi8+
-CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNmY2ZjYiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFy
-R3JhZGllbnQ+
-CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIg
-Lz4KPC9zdmc+);
- background: -moz-linear-gradient(top, #ebebeb 0%, #f9f9f9 5%, #fafafa 50%, #f9f9f9 90%,
-#ffffff 100%); /* FF3.6+ */
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ebebeb),
-color-stop(5%,#f9f9f9), color-stop(50%,#fafafa), color-stop(90%,#f9f9f9), color-stop(100%,#ffffff));
-/* Chrome,Safari4+ */
- background: -webkit-linear-gradient(top, #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9
-90%,#ffffff 100%); /* Chrome10+,Safari5.1+ */
- background: -o-linear-gradient(top, #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 90%,#ffffff
-100%); /* Opera 11.10+ */
- background: -ms-linear-gradient(top, #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 90%,#ffffff
-100%); /* IE10+ */
- background: linear-gradient(top, #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 90%,#ffffff
-100%); /* W3C */
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ebebeb',
-endColorstr='#ffffff',GradientType=0 ); /* IE6-8 */
- -webkit-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
- -moz-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
- box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
- color: #258AAF !important;
-}
-.button.big {
- font-size:20px;
- display:inline-block;
-}
-.button.big span.small {
- font-size:14px;
-}
-.button-caption {
- margin-top:10px;
- font-size:12px;
- font-style:italic;
-}
-
-.button.disabled,
-.button.disabled:hover,
-.button.disabled:active {
- background:#ebebeb;
- color:#999 !important;
- border-color:#999;
- cursor:default;
-}
-
-.training-nav-top a.button-secondary,
-.training-nav-bottom a.button-secondary {
- display:block;
- float:left;
- margin:0;
- width:130px;
- text-transform:uppercase;
- font-weight:bold;
-
- background-color: #f3f3f3;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#ececec));
- background-image: -webkit-linear-gradient(top, #f9f9f9, #ececec);
- background-image: -moz-linear-gradient(top, #f9f9f9, #ececec);
- background-image: -ms-linear-gradient(top, #f9f9f9, #ececec);
- background-image: -o-linear-gradient(top, #f9f9f9, #ececec);
- background-image: linear-gradient(top, #f9f9f9, #ececec);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f9f9f9',
-EndColorStr='#ececec');
- color: #167c80;
-}
-
-.training-nav-top a.button-secondary:hover,
-.training-nav-bottom a.button-secondary:hover {
- background-color: #09c;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#2faddb), to(#09c));
- background-image: -webkit-linear-gradient(top, #2faddb, #09c);
- background-image: -moz-linear-gradient(top, #2faddb, #09c);
- background-image: -ms-linear-gradient(top, #2faddb, #09c);
- background-image: -o-linear-gradient(top, #2faddb, #09c);
- background-image: linear-gradient(top, #2faddb, #09c);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#2faddb', EndColorStr='#09c');
- border: 1px solid #3990ab;
- color: #fff !important;
-}
-
-.training-nav-top a.button-secondary.last,
-.training-nav-bottom a.button-secondary.last {
- border-left:0;
-}
-
-.training-nav-top a.button-secondary.double-size,
-.training-nav-bottom a.button-secondary.double-size {
- width:291px;
-}
-
-.training-nav-top,
-.training-nav-bottom {
- float:right;
- margin:0 0 0 20px;
-}
-
-.training-nav-top {
- position:relative;
- top:73px;
-}
-
-.training-nav-bottom {
- padding:0 0 20px;
-}
-
-#tb-wrapper,
-#qv-wrapper {
- float:right;
- clear:right;
- margin:6px 0 0 30px; /* negative top-margin to counter the content-header bottom margin */
- padding:0 0 30px;
-}
-
-#tb-wrapper {
- margin:51px 0 0 20px; /* negative top-margin to counter the content-header bottom margin */
-}
-
-#tb,
-#qv {
- font-size:13px;
- line-height:18px;
- width:238px;
- border:1px solid #ccc;
- float:right;
-}
-
-#tb {
- width:278px;
-}
-
-#tb h2,
-#qv h2 {
- margin:10px 15px;
- padding:0;
- text-transform:uppercase;
- border-bottom:1px solid gainsboro;
-}
-
-#tb *,
-#qv * {
- font-size:inherit;
-}
-
-#tb .download-box,
-#qv .download-box {
- padding:0 0 0 15px;
-}
-
-#tb .download-box .filename,
-#qv .download-box .filename {
- font-size:11px;
- margin:4px 4px 10px;
- color:#666;
-}
-
-
-/* Dev guide quicknav */
-
-.sidebox-wrapper {
- float:right;
- clear:right;
- margin:0 0 0 20px;
- padding:0 0 20px;
-}
-
-.sidebox {
- width:226px;
- font-size:13px;
- line-height:18px;
- border-left:4px solid #99CC00;
- float:right;
- padding:0 0 0 10px;
- margin:0 0 1em 20px;
-}
-
-.sidebox h2,
-.sidebox h3,
-.sidebox h4,
-.sidebox h5 {
- font-weight:bold;
- margin:0 0 10px;
- line-height: 16px;
-}
-
-.sidebox * {
- font-size:inherit;
-}
-
-.sidebox > *:last-child {
- margin-bottom:0;
-}
-
-#tb ol,
-#tb ul,
-#qv ul {
- margin:0 15px 10px 35px;
-}
-
-#tb p {
- margin:0 15px 10px;
-}
-
-#qv ol {
- list-style:none;
- margin:0 15px 15px;
- font-size:inherit;
- line-height:inherit;
-}
-
-#tb ol ol,
-#tb ul ul,
-#qv ol ol,
-#qv ul ul,
-.sidebox ol ol,
-.sidebox ul ul {
- margin-bottom:0;
-}
-
-#qv ol ol {
- margin:3px 0 3px 15px;
-}
-
-.sidebox p,
-#qv p,
-#tb p {
- margin: 0 0 10px;
-}
-
-/* related resources blocks in checklists */
-
-/* related resources sections that have dynamic content */
-
-
-
-h3.rel-resources {
-margin:1.25em auto;
-}
-
-/* --------------------------------------------------------------------------
-Form
-*/
-.article form {
- margin: 0 0 20px;
-}
-.article form .form-required {
- color: #dd4b39;
-}
-.article form fieldset {
- margin: 0 0 20px;
- padding: 0;
-}
-.article form legend {
- display: block;
- line-height: 1.5;
- margin: 0;
- padding: 0;
-}
-/*
-.article form ol, .article form ul {
- margin: 0 0 0 1em;
- padding: 0 0 0 1em;
-}
-[dir='rtl'] .article form ol, [dir='rtl'] .article form ul {
- margin: 0 1em 0 0;
- padding: 0 1em 0 0;
-}
-.article form ol ul, .article form ul ul, [dir='rtl'] .article form ol ul, [dir='rtl'] .article form
-ul ul {
- list-style: none;
- margin: 0;
- padding: 0;
-}
-.article form li {
- margin: 0 0 20px;
-}
-.article form li li {
- margin: 0 0 5px;
-}
-*/
-.article form label {
- display: block;
- margin: 0 0 5px;
- padding: 0;
-}
-.article form input[type='text'], .article form select, .article form textarea, .article form
-.checkbox-group, .article form .radio-group {
- margin-bottom: 15px;
-}
-.checkbox-group input {
- width: 13px;
- height: 13px;
- background: #fff;
- border: solid 1px #c6c6c6;
- float: left;
-}
-.article form .checkbox-group, .article form .radio-group {
- display: block
-}
-.article form select {
- border: solid 1px #ebebeb;
- border-top-color: #ddd;
- -webkit-appearance: none;
- background: #f3f3f3 url(../images/arrows-up-down.png) right center no-repeat;
- height: 30px;
- color: #222;
- line-height: normal;
- padding: 5px;
- width: 130px;
-}
-
-.article form .browse .browse-msg {
- font-size: 11.5px;
-}
-.article form .browse .button-secondary {
- height: auto;
- line-height: 25px;
- font-size: 11px;
- padding: 0 8px;
- margin: 0 10px 15px 0;
-}
-.article form input[type='text'], .article form textarea {
- border: 1px solid #ebebeb;
- border-top-color: #dcdcdc;
- color: #222;
- line-height: normal;
- padding: 6px 10px;
- width: 300px;
-}
-.article form textarea {
- height: 150px;
-}
-.article form input[type='text']:focus, .article form textarea:focus {
- border-color: #167c80;
- -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
- -o-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
- -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
- outline: 0;
-}
-.article form input[disabled], .article form textarea[disabled], .article form label.form-disabled {
- color: #999;
-}
-.article form input[type='text'][disabled], .article form textarea[disabled] {
- background-color: #ebebeb;
-}
-form .form-error input[type='text'], form .form-error textarea {
- border-color: #dd4b39;
- margin-right: 20px;
-}
-.aside {
- -moz-border-radius: 2px;
- -webkit-border-radius: 2px;
- border-radius: 2px;
- margin: 10px 0;
- padding: 20px;
- color: #666;
- position: relative;
- background: #f9f9f9;
-}
-/*
-.aside, .notification, .promo {
- -moz-border-radius: 2px;
- -webkit-border-radius: 2px;
- border-radius: 2px;
- margin: 10px 0;
- padding: 10px;
- position: relative;
-}
-.aside>:first-child, .notification>:first-child, .promo>:first-child {
- margin-top: 0;
-}
-.aside>:last-child, .notification>:last-child, .promo>:last-child {
- margin-bottom: 0;
-}
-.aside {
- background: #f9f9f9;
-}
-.notification {
- background: #fffbe4;
- border-color: #f8f6e6;
-}
-.promo {
- background: #f6f9ff;
- border-color: #eff2f9;
-}
-*/
-
-/* SDK TOS styles */
-
-div.sdk-terms {
- white-space: pre-wrap;
- word-wrap: break-word;
- font-family: inherit;
- font-size: inherit;
- padding: 10px;
- height: 370px;
- width: 738px;
- border: 1px solid #444;
- background: transparent;
- overflow:auto;
- margin:0 0 10px;
-}
-
-div.sdk-terms.fullsize {
- padding: 0;
- height: auto;
- width: auto;
- border:none;
-}
-
-div.sdk-terms h3,
-div.sdk-terms h2 {
- margin:0;
-}
-
-div#sdk-terms-form {
- padding:0 0 0 10px;
-}
-
-div#sdk-terms-form input {
- display:inline;
- margin:4px 4px 4px 0;
-}
-
-
-/* --------------------------------------------------------------------------
-Code Style
-*/
-pre {
- margin:0 0 1em 0;
- padding: 1em;
- overflow: auto;
- border: solid 1px #ddd;
- background: #f7f7f7;
-}
-.str { color: #800; } /* Code string */
-.kwd { color: #008; }
-.typ { color: #606; }
-.lit { color: #066; }
-.pun { color: #660; }
-.pln { color: #000; }
-.tag { color: #008; }
-.atn { color: #828; }
-.atv { color: #800; } /* XML string */
-.dec { color: #606; }
-
-/* --------------------------------------------------------------------------
-Three-Pane
-*/
-/* Package Nav & Classes Nav */
-.three-pane {
- position: relative;
- border-top: solid 1px #ebebeb;
-}
-#packages-nav .js-pane,
-#classes-nav .js-pane {
- overflow:visible;
-}
-#packages-nav {
- height:270px;
- max-height: inherit;
- position: relative;
-}
-#classes-nav {
- position: relative;
-}
-#packages-nav ul, #classes-nav ul {
- list-style-type: none;
- margin: 10px 0 20px 0;
- padding: 0;
-}
-#classes-nav li {
- font-weight: bold;
- margin: 5px 0;
-}
-#packages-nav li,
-#classes-nav li li {
- margin: 0;
-}
-#packages-nav li a, #packages-nav li a:active, #packages-nav li a:visited,
-#classes-nav li a, #classes-nav li a:active, #classes-nav li a:visited {
- padding: 0 0 0 4px;
-}
-#packages-nav li a, #packages-nav li a:active, #packages-nav li a:visited,
-#classes-nav li li a, #classes-nav li li a:active, #classes-nav li li a:visited,
-#nav-tree li a, #nav-tree li a:active, #nav-tree li a:visited {
- color: #222;
- font-weight: normal;
-}
-#packages-nav li a, #packages-nav li a:active, #packages-nav li a:visited,
-#classes-nav li li a, #classes-nav li li a:active, #classes-nav li li a:visited {
- display: block;
-}
-#packages-nav li.selected a, #packages-nav li.selected a:active, #packages-nav li.selected
-a:visited,
-#classes-nav li li.selected a, #classes-nav li li.selected a:active, #classes-nav li li.selected
-a:visited,
-#nav-tree li div.selected {
- font-weight: 500;
- color: #167c80;
- background-color:#fff; }
- #packages-nav li.selected ul li a,
- #classes-nav li.selected ul li a {
- /* don't highlight child items */
- color: #555555; }
-#nav-tree li div.selected a {
- font-weight: 500;
- color: #167c80;
-}
-#nav-swap {
- height:30px;
- border-top:1px solid #ccc;
-}
-#nav-swap a {
- display:inline-block;
- height:100%;
- color: #222;
- font-size: 12px;
- padding: 5px 0 5px 5px;
-}
-
-#nav-swap .fullscreen {
- float: right;
- width: 24px;
- height: 24px;
- text-indent: -1000em;
- padding:0;
- margin:3px 5px 0;
- background: url(../images/fullscreen.png) no-repeat -24px 0;
-}
-#nav-swap .fullscreen.disabled {
- background-position: 0 0;
-}
-#nav-swap .fullscreen:hover,
-#nav-swap .fullscreen:focus {
- cursor:pointer;
-}
-
-
-/* nav tree */
-#side-nav, #swapper,
-#nav-tree, #tree-list {
- overflow:hidden;
- margin-left:0;
-}
-
-#devdoc-nav {
- overflow:visible !important; /* To keep the "to top" button visible */
-}
-
-#nav-tree ul {
- list-style:none;
- padding:0;
- margin:10px 0;
-}
-
-#nav-tree ul li div {
- padding:0 0 0 4px;
-}
-
-#side-nav #nav-tree ul li a,
-#side-nav #nav-tree ul li span.no-children {
- padding: 0;
- margin: 0;
-}
-
-#nav-tree .plus {
- margin: 0 3px 0 0;
-}
-
-#nav-tree ul ul {
- list-style: none;
- margin: 0;
- padding: 0 0 0 0;
-}
-
-#nav-tree ul li {
- margin: 0;
- padding: 0 0 0 0;
- white-space: nowrap;
-}
-
-#nav-tree .children_ul {
- padding:0;
- margin:0;
-}
-#nav-tree .children_ul li div {
- padding:0 0 0 10px;
-}
-#nav-tree .children_ul .children_ul li div {
- padding:0 0 0 20px;
-}
-
-#nav-tree a.nolink {
- color: #222;
- text-decoration: none;
-}
-
-#nav-tree span.label {
- width: 100%;
-}
-
-#nav-tree {
- overflow-x: auto;
- overflow-y: scroll;
- outline:0;
-}
-
-
-/* Content */
-#doc-col {
- margin-right:0;
-}
-
-/* Uncomment this for preview release watermark
-#doc-col {
- background: url('../images/preview.png') repeat;
-}
-*/
-
-#doc-content-container {
- margin-left: 291px
-}
-#doc-header, #doc-content {
- padding: 1em 2em;
-}
-#doc-header {
- background: #f7f7f7;
-}
-#doc-header h1 {
- line-height: 0;
- margin-bottom: 15px;
-}
-#api-info-block {
- float: right;
- font-weight: bold;
-}
-#api-info-block a, #api-info-block a:active, #api-info-block a:visited {
- color: #222;
-}
-#api-info-block a:hover, #api-info-block a:focus {
- color: #167c80;
-}
-#api-nav-header {
- height:19px; /* plus 16px padding = 35; same as #nav li */
- font-size:14px;
- padding: 8px 0;
- margin: 0;
- border-bottom: 1px solid #CCC;
- background:#e9e9e9;
- background: rgba(0, 0, 0, 0.05); /* matches #nav li.expanded */
-
-}
-#api-nav-title {
- padding:0 5px;
- white-space:nowrap;
-}
-
-#api-level-toggle {
- float:right;
- padding:0 5px;
-
-}
-
-#api-level-toggle label {
- margin:0;
- vertical-align:top;
- line-height: 19px;
- font-size:13px;
- height: 19px;
-}
-
-#api-level-toggle .select-wrapper {
- width: 35px;
- display: inline-block;
- overflow: hidden;
-}
-#api-level-toggle select {
- border: 0;
- appearance:none;
- -moz-appearance:none;
- -webkit-appearance: none;
- background: transparent url(../images/arrows-up-down.png) 23px 5px no-repeat;
- color: #222;
- height: 19px;
- line-height: 19px;
- padding: 0;
- margin:1px 0 0 0;
- width:150%;
- font-size:13px;
- vertical-align:top;
- outline:0;
-}
-
-
-/* Toggle for revision notes and stuff */
-div.toggle-content.closed .toggle-content-toggleme {
- display:none;
-}
-
-#jd-content img.toggle-content-img {
- margin:0 5px 5px 0;
-}
-
-div.toggle-content-toggleme {
- padding:0 0 0 15px;
-}
-
-
-/* API LEVEL FILTERED MEMBERS */
-
-.absent,
-.absent a:link,
-.absent a:visited,
-.absent a:hover,
-.absent * {
- color:#bbb !important;
- cursor:default !important;
- text-decoration:none !important;
-}
-#devdoc-nav li.absent.selected,
-#devdoc-nav li.absent.selected *,
-#devdoc-nav div.label.absent.selected,
-#devdoc-nav div.label.absent.selected * {
- background-color:#eaeaea !important;
-}
-.absent h4.jd-details-title,
-.absent h4.jd-details-title * {
- background-color:#f6f6f6 !important;
-}
-.absent img {
- opacity: .3;
- filter: alpha(opacity=30);
- -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
-}
-
-
-
-
-
-
-
-
-
-/* JQUERY RESIZABLE STYLES */
-.ui-resizable { position: relative; }
-.ui-resizable-handle { position: absolute; display: none; font-size: 0.1px; z-index:1; }
-.ui-resizable .ui-resizable-handle { display: block; border-bottom: 1px solid #e4e4e4; }
-/*body .ui-resizable-disabled .ui-resizable-handle { display: none; }
-body .ui-resizable-autohide .ui-resizable-handle { display: none; }*/
-.ui-resizable-s { cursor: s-resize; height: 10px; width: 100% !important; bottom: -11px; left: 0;
-border-bottom: solid 1px #ededed;
- background: #f7f7f7 url("../images/resizable-s2.png") no-repeat scroll center center; }
-/*
-.ui-resizable-e {
-cursor: e-resize; width: 10px; right: 0; top: 0; height: 100%; border-right: solid
-1px #ededed;background: #f7f7f7 url("../images/resizable-e2.png") no-repeat scroll center center; }
-*/
-
-/* --------------------------------------------------------------------------
-Lightbox
-*/
-.lightbox {
- width: 769px;
- padding: 1.5em;
- margin: 0 auto;
- border: solid 1px #dcdcdc;
- background: #fff;
- -moz-box-shadow: 1px 1px 5px rgba(0,0,0,0.1);
- -webkit-box-shadow: 1px 1px 5px rgba(0,0,0,0.1);
- box-shadow: 1px 1px 5px rgba(0,0,0,0.1)
-}
-.lightbox .header {
- float: left;
- width: 720px;
- margin: -10px 20px 10px 0;
-}
-.lightbox .close {
- float: right;
- width: 10px;
- height: 10px;
- margin: -10px -10px 10px 0;
- text-indent: -1000em;
- background: url(../images/close.png) no-repeat 0 0;
-}
-.lightbox .close:hover, .lightbox .close:focus {
- background-position: -10px 0;
-}
-
-/* --------------------------------------------------------------------------
-Styles for samples browser
-*/
-
-#codesample-wrapper {
- width:100000px; /* super wide to contain floats, but doesn't cause scroll */
- overflow:visible;
-}
-pre#codesample-block {
- float:left;
- overflow:visible;
- background:transparent;
- border:none;
-}
-pre#codesample-block a.number {
- display:none;
-}
-pre#codesample-block .code-line:hover {
- background:#e7e7e7;
-}
-pre#codesample-line-numbers {
- float:left;
- width:2em;
- background:transparent;
- border:none;
- border-right:1px solid #ccc;
- padding-left:0;
- font-family:monospace;
- text-align:right;
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -khtml-user-select: none;
- -moz-user-select: -moz-none;
- -ms-user-select: none;
- user-select: none;
-}
-pre#codesample-line-numbers a {
- color:#999;
-}
-pre#codesample-line-numbers.hidden {
- display:none;
-}
-pre#codesample-block span.code-line {
- width:100%;
- display:inline-block;
-}
-
-/*
-Styles for displaying image or video resources in samples browser.
-Resources are marked as no-display if they exceed the size limit.
-*/
-div#codesample-resource img, div#codesample-resource video {
- border: 1px solid #ececec;
-}
-
-div#codesample-resource.noDisplay div {
- border: 1px solid #ececec;
- width:120px;
- margin-bottom:4px;
- padding:20px;
-}
-
-div#codesample-resource .noDisplay-message:after {
- font-style:italic;
- font-size:12px;
- content: 'This resource is not available for browsing. To view it, please download the project.';
-}
-
-/*
-Styles for project structure (treeview) page
-*/
-.structure-dir {
-background-image:url(../../assets/images/folder.png);
-background-repeat:no-repeat;
-background-position:16px 2px;
- margin:.25em 0 0 0;
- padding:0 0 0 0;
-}
-
-.structure-toggleme {
- margin:0 0 0 3em;
- padding:0 0 0 0;
- text-decoration:none;
-}
-
-.structure-java{
-background-image:url(../../assets/images/file-java.png);
-background-repeat:no-repeat;
-background-position:0px 2px;
- margin:.3em 0 0 0;
- padding:.3em 0 .3em 22px;
-}
-
-.structure-file {
-background-image:url(../../assets/images/file-generic.png);
-background-repeat:no-repeat;
-background-position:0px 2px;
- margin:.3em 0 0 0;
- padding:.3em 0 .3em 22px;
-}
-
-.structure-xml {
-background-image:url(../../assets/images/file-xml.png);
-background-repeat:no-repeat;
-background-position:0px 2px;
- margin:.3em 0 0 0;
- padding:.3em 0 .25em 22px;
-}
-
-.structure-img {
-background-image:url(../../assets/images/file-image.png);
-background-repeat:no-repeat;
-background-position:0px 2px;
- margin:.3em 0 0 0;
- padding:.3em 0 .25em 22px;
-}
-
-.structure-manifest {
-background-image:url(../../assets/images/file-manifest.png);
-background-repeat:no-repeat;
- margin:.0 0 0 1.25em;
- padding:0 0 0 22px;
- text-decoration:none;
-}
-
-#jd-content .structure-toggle-img {
- margin:.5em 0 0 0;
-padding-right:2.1em;
-}
-
-.dirInfo {
- margin-left:2em;
-}
-
-.structure-dir a {
- text-decoration:none;
-}
-
-.structure-manifest a {
- text-decoration: none;
-}
-.structure-file a {
- text-decoration: none;
-}
-
-.sampleEmbed {
- background-color:rgb(249, 249, 249);
-}
-
-.sampleEmbed ol.lineNumbers {
- list-style-type: decimal;
- padding-left:1em;
-}
-
-.sampleEmbed ol.lineNumbers li {
-border-left:1px solid #ddd;
-border-right:1px solid #ddd;
-color:gray;
-background-color:#f7f7f7;
-margin:0 0 0 24px;
-padding: 2px 2px 2px 6px;
-}
-
-.sampleEmbed ol.lineNumbers li:hover {
-background: #efefef;
-}
-
-.samples-nav li a {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-/* --------------------------------------------------------------------------
-Styles for raw formatted line numbers (not used with listformatted version)
-div.sampleLine div.lineNumber {
- display: inline;
-}
-div.sampleLine div.lineCode {
- display: inline;
- padding-left:6px;
-}
-div.sampleLine {
- padding:0;
- margin:0;
-}*/
-
-/* --------------------------------------------------------------------------
-Butterbar
-*/
-#butterbar-wrapper {
- position:absolute;
- top:0;
- left:0;
- width:100%;
-}
-#butterbar {
- width:100%;
- margin:0 auto;
-}
-#butterbar-message {
- background-color:rgba(255, 187, 51, .4);
- font-size:13px;
- padding: 5px 0;
- text-align:center;
-}
-a#butterbar-message {
- cursor:pointer;
- display:block;
-}
-a#butterbar-message:hover {
- text-decoration:underline;
-}
-
-/* --------------------------------------------------------------------------
-Misc
-*/
-
-
-.clearfix:before, .clearfix:after {
- content: "";
- display: table
-}
-.clearfix:after {
- clear: both
-}
-.clearfix {
- *zoom: 1
-}
-table.blank th, table.blank td {
- border: 0;
- background: none
-}
-.caption {
- margin: 0.5em 0 2em 0;
- color: #000;
- font-size: 11.5px;
-}
-
-.nolist, .nolist ul, .nolist ol {
- list-style:none;
- margin-left:0;
-}
-#tb .nolist {
- margin-left:15px;
-}
-
-dl.xml>dt {
- text-transform:uppercase;
-}
-dl.xml dl.attr {
- margin-top:0;
-}
-
-pre.classic {
- background-color:transparent;
- border:none;
- padding:0;
-}
-
-p.img-caption {
- margin: -10px 0 20px;
- font-size:13px;
- color:#666;
-}
-
-div.figure,
-div.figure-right {
- float:right;
- clear:right;
- margin:10px 0 0 0;
- padding:0 0 0 20px;
- /* width must be defined w/ an inline style matching the image width */
-}
-
-div.figure-left {
- float:left;
- clear:left;
- margin:10px 0 0 0;
- padding:0 20px 0 0;
- /* width must be defined w/ an inline style matching the image width */
-}
-
-img.frame {
- border:1px solid #DDD;
- padding:4px;
-}
-
-p.table-caption {
- margin: 0 0 4px 0;
- font-size:13px;
- color:#666;
-}
-
-p.code-caption {
- margin-bottom: 4px;
- font: 12px/1.5 monospace;
- color:#666;
-}
-
-div.note,
-div.caution,
-div.warning {
- margin: 0 0 15px;
-}
-
-p.note, div.note,
-p.caution, div.caution,
-p.warning, div.warning {
- padding: 0 0 0 10px;
- border-left: 4px solid;
-}
-
-p.note, div.note {
- border-color: #258AAF;
-}
-
-p.caution, div.caution {
- border-color: #FF8800;
-}
-
-p.warning, div.warning {
- border-color: #ff4443;
-}
-
-div.note.design {
- border-left: 4px solid #167c80;
-}
-
-div.note.develop {
- border-left: 4px solid #F80;
-}
-
-div.note.distribute {
- border-left: 4px solid #9C0;
-}
-
-.note p, .caution p, .warning p {
- margin:0 0 5px;
-}
-
-.note p:last-child, .caution p:last-child, .warning p:last-child {
- margin-bottom:0;
-}
-
-body.about blockquote {
- display:block;
- float:right;
- width:280px;
- font-size:20px;
- font-style:italic;
- line-height:24px;
- color:#167c80;
- margin:0 0 20px 30px;
-}
-
-div.design-announce p {
- margin:0 0 10px;
-}
-
-.expandable {
- height:34px;
- padding-left:20px;
- position:relative;
-}
-.expandable:before {
- content: '';
- background-image: url(../images/styles/disclosure_down.png);
- background-repeat:no-repeat;
- background-position: -12px -9px;
- width: 20px;
- height: 20px;
- display: inline-block;
- position: absolute;
- top: 0;
- left: 0; }
-}
-.expandable.expanded:before {
- background-image: url(../images/styles/disclosure_up.png);
-}
-
-/* notice box for cross links between Design/Develop docs */
-a.notice-developers-video,
-a.notice-developers,
-a.notice-designers-video,
-a.notice-designers {
- float:right;
- clear:right;
- width:238px;
- min-height:50px;
- margin:0 0 20px 20px;
- border:1px solid #ddd;
-}
-a.notice-developers-video.wide,
-a.notice-developers.wide,
-a.notice-designers-video.wide,
-a.notice-designers.wide {
- width:278px;
-}
-a.notice-developers-video div,
-a.notice-developers div,
-a.notice-designers-video div,
-a.notice-designers div {
- min-height:40px;
- background:url('../images/styles/notice-developers@2x.png') no-repeat 10px 10px;
- background-size:40px 40px;
- padding:10px 10px 10px 60px;
-}
-a.notice-designers div {
- background:url('../images/styles/notice-designers@2x.png') no-repeat 10px 10px;
- background-size:40px 40px;
-}
-a.notice-designers-video div {
- background:url('../images/styles/notice-designers-video@2x.png') no-repeat 10px 10px;
- background-size:40px 40px;
-}
-a.notice-developers-video div {
- background:url('../images/styles/notice-developers-video@2x.png') no-repeat 10px 10px;
- background-size:40px 40px;
-}
-a.notice-developers-video:hover,
-a.notice-developers:hover,
-a.notice-designers-video:hover,
-a.notice-designers:hover {
- background:#eee;
-}
-a.notice-developers-video h3,
-a.notice-developers h3,
-a.notice-designers-video h3,
-a.notice-designers h3 {
- font-size:13px;
- line-height:18px;
- font-weight:bold;
- text-transform:uppercase;
- color:#000 !important;
- margin:0 0 1px;
-}
-a.notice-developers-video p,
-a.notice-developers p,
-a.notice-designers-video p,
-a.notice-designers p {
- margin:0;
- line-height:14px;
-}
-a.notice-developers-video.left,
-a.notice-developers.left,
-a.notice-designers-video.left,
-a.notice-designers.left {
- margin-left:0;
- float:left;
-}
-
-
-/* hide nested list items; companion to hideNestedLists() */
-.hide-nested li ol,
-.hide-nested li ul {
- display:none;
-}
-
-a.header-toggle {
- display:block;
- float:right;
- text-transform:uppercase;
- font-size:.8em !important;
- font-weight:normal;
- margin-top:2px;
-}
-
-
-/* for IDE instruction toggle (Studio/Eclipse/Other) */
-select.ide {
- background: transparent;
- border: 1px solid #bbb;
- border-left: 0;
- border-right: 0;
- margin: 10px 0;
- padding: 10px 0;
- color:#666;
-}
-select.ide,
-select.ide option {
- font-family: inherit;
- font-size:16px;
- font-weight:500;
-}
-/* hide all except studio by default */
-.select-ide.eclipse,
-.select-ide.other {
- display:none;
-}
-/* ... unless studio also includes one of the others */
-.select-ide.studio.eclipse,
-.select-ide.studio.other {
- display:none;
-}
-
-
-/* -----------------------------------------------
-good/bad example containers
-*/
-
-div.example-block {
- background-repeat: no-repeat;
- background-position:10px 8px;
- background-color:#ccc;
- padding:4px;
- margin:.8em auto 1.5em 2em;
- width:260px;
- float:right;
-}
-/* red container */
-.example-block.bad {
- background-image: url(/images/example-bad.png);
- background-color:#f4cccc;
-}
-/* green container */
-.example-block.good {
- background-image: url(/images/example-good.png);
- background-color:#d9ead3;
-}
-/* container heading div */
-#jd-content .example-block .heading {
- font-weight:bold;
- margin:6px 0 9px 36px;
- padding:6px auto;
-}
-/* container image (if any) */
-#jd-content .example-block img {
- margin:0;
- padding:0px;
-}
-
-.example-block table {
- margin:0;
-}
-
-/* -----------------------------------------------
-Dialog box for popup messages
-*/
-
-div.dialog {
- height:0;
- margin:0 auto;
-}
-
-div.dialog>div {
- z-index:99;
- position:fixed;
- margin:70px 0;
- width: 391px;
- height: 200px;
- background: #F7F7F7;
--moz-box-shadow: 0 0 15px rgba(0,0,0,0.5);
--webkit-box-shadow: 0 0 15px rgba(0,0,0,0.5);
-box-shadow: 0 0 15px rgba(0,0,0,0.5);
-}
-/* IE6 can't position fixed */
-* html div.dialog div { position:absolute; }
-
-
-div#deprecatedSticker {
- display:none;
- z-index:99;
- position:fixed;
- right:15px;
- top:114px;
- margin:0;
- padding:1em;
- background:#FFF;
- border:1px solid #dddd00;
- box-shadow:-5px 5px 10px #ccc;
- -moz-box-shadow:-5px 5px 10px #ccc;
- -webkit-box-shadow:-5px 5px 10px #ccc;
-}
-
-div#langMessage,
-div#naMessage {
- display:none;
- width:555px;
- height:0;
- margin:0 auto;
-}
-
-
-div#langMessage>div,
-div#naMessage div {
- z-index:99;
- width:450px;
- position:fixed;
- margin:50px 0;
- padding:4em 4em 3em;
- background:#FFF;
- border:1px solid #999;
- box-shadow:-10px 10px 40px #888;
- -moz-box-shadow:-10px 10px 40px #888;
- -webkit-box-shadow:-10px 10px 40px #888;
-}
-/* IE6 can't position fixed */
-* html div#langMessage>div,
-* html div#naMessage div { position:absolute; }
-
-div#naMessage strong {
- font-size:1.1em;
-}
-
-div#langMessage .lang {
- display:none;
-}
-
-/* --------------------------------------------------------------------------
-Slideshow Controls & Next/Prev
-*/
-.slideshow-next, .slideshow-prev {
- width: 20px;
- height: 36px;
- text-indent: -1000em;
-}
-.slideshow-container {
- margin: 2em 0;
-}
-.slideshow-container:before, .slideshow-container:after {
- content: "";
- display: table;
- clear: both;
-}
-a.slideshow-next, a.slideshow-next:visited {
-
- float: right;
-
- background: url(../images/arrow-right.png) no-repeat 0 0
-
-}
-
-a.slideshow-prev, a.slideshow-prev:visited {
-
- float: left;
-
- background: url(../images/arrow-left.png) no-repeat 0 0
-
-}
-
-.slideshow-next:hover, .slideshow-prev:hover, .slideshow-next:focus, .slideshow-prev:focus {
-
- background-position: 0 -36px
-
-}
-
-.slideshow-next:active, .slideshow-prev:active {
-
- background-position: 0 -72px
-
-}
-.slideshow-nav {
- width: 74px;
- margin: 0 auto;
-}
-.slideshow-nav a, .slideshow-nav a:visited {
- display: inline-block;
- width: 12px;
- height: 12px;
- margin: 0 2px 20px 2px;
- background: #ccc;
- -webkit-border-radius: 50%;
- -moz-border-radius: 50%;
- border-radius: 50%;
-}
-.slideshow-nav a:hover, .slideshow-nav a:focus {
-
- background: #167c80
-}
-
-.slideshow-nav a:active {
-
- background: #1e799a;
- background: #ebebeb;
- -webkit-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
- -moz-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
- box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
-}
-.slideshow-nav a.active, .slideshow-nav a.active:active, .slideshow-nav a.active:visited {
- background: #167c80
-}
-/* --------------------------------------------------------------------------
-Tabs
-*/
-ul.tabs {
- padding: 0;
- margin: 2em 0 0 0;
-}
-ul.tabs:before, ul.tabs:after {
- content: "";
- display: table;
- clear: both;
-}
-ul.tabs li {
- list-style-type: none;
- float: left;
-}
-ul.tabs li a, ul.tabs li a:active, ul.tabs li a:visited {
- display: block;
- height: 36px;
- line-height: 36px;
- padding: 0 15px;
- margin-right: 2px;
- color: #222;
- -moz-border-radius-topleft: 2px;
- -moz-border-radius-topright: 2px;
- -moz-border-radius-bottomright: px;
- -moz-border-radius-bottomleft: px;
- -webkit-border-radius: 2px 2px px px;
- border-radius: 2px 2px px px;
- border-top: solid 1px #ebebeb;
- border-left: solid 1px #ebebeb;
- border-right: solid 1px #ebebeb;
- background-color: #fff;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#fafafa));
- background-image: -webkit-linear-gradient(top, #ffffff, #fafafa);
- background-image: -moz-linear-gradient(top, #ffffff, #fafafa);
- background-image: -ms-linear-gradient(top, #ffffff, #fafafa);
- background-image: -o-linear-gradient(top, #ffffff, #fafafa);
- background-image: linear-gradient(top, #ffffff, #fafafa);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff',
-EndColorStr='#fafafa');
-}
-ul.tabs li a:hover {
- color: #167c80;
-}
-ul.tabs li a.selected {
- height: 37px;
- color: #167c80;
- background-color: #f7f7f7;
- background-image: none;
- border-color: #ddd;
-}
-.tab-content {
- padding: 1.2em;
- margin: -1px 0 2em 0;
- -webkit-border-radius: 2px;
- -moz-border-radius: 2px;
- border-radius: 2px;
- border: solid 1px #ddd;
- background: #f7f7f7;
-}
-/* --------------------------------------------------------------------------
-Feature Boxes
-*/
-.feature-box {
- width: 291px;
- height: 200px;
- position: relative;
- background: #F7F7F7;
-}
-.box-border .top, .box-border .bottom, .box-border .left, .box-border .right {
- z-index: 100;
- position: absolute;
- background-color: #aaa;
-}
-.box-border .top, .box-border .bottom {
- width: 291px;
- height: 1px;
-}
-.dialog .box-border .top,
-.dialog .box-border .bottom { width:391px; }
-
-.box-border .left, .box-border .right {
- width: 1px;
- height: 8px;
-}
-.box-border .top { top: 0; left: 0 }
-.box-border .top .left { top: 1px; left: 0 }
-.box-border .top .right { top: 1px; right: 0 }
-.box-border .bottom .left { top: -8px; left: 0 }
-.box-border .bottom { top: 200px; left: 0 }
-.box-border .bottom .right { top: -8px; right: 0 }
-
-.feature-box h4,
-.dialog h4 {
- margin: 15px 18px 10px;
- padding:0;
-}
-
-.feature-box p,
-.dialog p {
- margin: 10px 18px;
- padding:0;
-}
-.feature-box .link,
-.dialog .link {
- border-top: 1px solid #dedede;
- bottom: 0;
- position: absolute;
- width: inherit;
-}
-.feature-box a, .feature-box h4,
-.dialog a, .dialog h4 {
- -webkit-transition: color .4s ease;
- -moz-transition: color .4s ease;
- -o-transition: color .4s ease;
- transition: color .4s ease;
-}
-.feature-box:hover {
- cursor: pointer;
-}
-.feature-box:hover .box-border .top, .feature-box:hover .box-border .bottom, .feature-box:hover
-.left, .feature-box:hover .right {
- background-color: #167c80;
-}
-.feature-box:hover h4, .feature-box:hover a {
- color: #167c80;
-}
-/* --------------------------------------------------------------------------
-Page-Specific Styles
-*/
-.colors {
- position: relative;
- float: left;
- width: 92px;
- margin: 40px 0 20px;
-}
-.colors div {
- color: #fff;
- font-size: 11.5px;
- width: 82px;
- height: 82px;
- margin-top:-30px;
- line-height: 82px;
- text-align: center;
- border: solid 5px #fff;
- -webkit-border-radius: 50%;
- -moz-border-radius: 50%;
- border-radius: 50%;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/* ########### REFERENCE DOCS ################## */
-
-#packages-nav h2,
-#classes-nav h2 {
- font-size:18px;
- margin:0;
- padding:0 0 0 4px;
-}
-
-#jd-header {
- padding: 0 0 12px;
- margin: 20px 0 12px;
- font-size:12px;
- padding-bottom:12px;
- border-bottom:solid 1px #ccc;
-}
-
-#jd-header h1 {
- margin:0;
- padding:0 0 6px 0;
-}
-
-/* not sure if this is needed in the ref docs, disabling for now
-.jd-descr h2 {
- margin:16px 0;
-}
-*/
-
-/* page-top-right container for reference pages (holds
-links to summary tables) */
-#api-info-block {
- font-size:12px;
- margin:20px 0 0;
- padding:0 10px 6px;
- font-weight:normal;
- float:right;
- text-align:right;
- color:#999;
- max-width:80%;
- font-size: 12px;
- line-height:14px;
-}
-
-#api-info-block div.api-level {
- font-weight:bold;
- font-size:inherit;
- float:none;
- color:#222;
- padding:0;
- margin:0;
-}
-
-/* inheritance table */
-.jd-inheritance-table {
- border-spacing:0;
- margin:0;
- padding:0;
- font-size:12px;
- line-height:14px;
- background-color:transparent;
-}
-.jd-inheritance-table tr td {
- border: none;
- margin: 0;
- padding: 0;
- background-color:transparent;
-}
-.jd-inheritance-table .jd-inheritance-space {
- font-weight:bold;
- width:1em;
-}
-.jd-inheritance-table .jd-inheritance-interface-cell {
- padding-left: 17px;
-}
-
-
-
-.jd-sumtable a {
- text-decoration:none;
-}
-
-.jd-sumtable a:hover {
- text-decoration:underline;
-}
-
-/* the link inside a sumtable for "Show All/Hide All" */
-.toggle-all {
- display:block;
- float:right;
- font-weight:normal;
- font-size:0.9em;
-}
-
-/* adjustments for in/direct subclasses tables */
-.jd-sumtable.jd-sumtable-subclasses {
- margin: 1em 0 0 0;
- max-width:968px;
- background-color:transparent;
- font-size:13px;
-}
-
-/* extra space between end of method name and open-paren */
-.sympad {
- margin-right: 2px;
-}
-
-/* right alignment for the return type in sumtable */
-.jd-sumtable .jd-typecol {
- text-align:right;
-}
-
-/* adjustments for the expando table-in-table */
-.jd-sumtable-expando {
- margin:.5em 0;
- padding:0;
-}
-
-/* a div that holds a short description */
-.jd-descrdiv {
- padding:3px 1em 0 1em;
- margin:0;
- border:0;
-}
-
-#jd-content img.jd-expando-trigger-img {
- padding:0 4px 4px 0;
- margin:0;
-}
-
-.jd-sumtable-subclasses div#subclasses-direct,
-.jd-sumtable-subclasses div#subclasses-indirect {
- margin:0 0 0 13px;
-}
-
-
-
-/********* MEMBER REF *************/
-
-
-.jd-details {
-/* border:1px solid #669999;
- padding:4px; */
- margin:0 0 1em;
-}
-
-/* API reference: a container for the
-.tagdata blocks that make up the detailed
-description */
-.jd-details-descr {
- padding:0;
- margin:.5em .25em;
-}
-
-/* API reference: a block containing
-a detailed description, a params table,
-seealso list, etc */
-.jd-tagdata {
- margin:.5em 1em;
-}
-
-.jd-tagdata p {
- margin:0 0 1em 1em;
-}
-
-/* API reference: adjustments to
-the detailed description block */
-.jd-tagdescr {
- margin:.25em 0 .75em 0;
-}
-
-.jd-tagdescr ol,
-.jd-tagdescr ul {
- margin:0 2.5em;
- padding:0;
-}
-
-.jd-tagdescr table,
-.jd-tagdescr img {
- margin:.25em 1em;
-}
-
-.jd-tagdescr li {
-margin:0 0 .25em 0;
-padding:0;
-}
-
-/* API reference: heading marking
-the details section for constants,
-attrs, methods, etc. */
-h4.jd-details-title {
- font-size:1.15em;
- background-color: #E2E2E2;
- margin:1.5em 0 .6em;
- padding:3px 95px 3px 3px; /* room for api-level */
-}
-body.google h4.jd-details-title {
- background-color: #FFF;
- padding-top:5px;
- border-top: 1px solid #ccc;
-}
-body.google table.jd-sumtable th {
- background-color: #FFF;
- color:#000;
-}
-
-h4.jd-tagtitle {
- margin:0;
-}
-
-h4 .normal {
- font-weight:normal;
-}
-
-/* API reference: heading for "Parameters", "See Also", etc.,
-in details sections */
-h5.jd-tagtitle {
- margin:0 0 .25em 0;
- font-size:1em;
-}
-
-.jd-tagtable {
- margin:0;
- background-color:transparent;
- width:auto;
-}
-
-.jd-tagtable td,
-.jd-tagtable th {
- border:none;
- background-color:#fff;
- vertical-align:top;
- font-weight:normal;
- padding:2px 10px;
-}
-
-.jd-tagtable th {
- font-style:italic;
-}
-
-/* Inline api level indicator for methods */
-div.api-level {
- font-size:.8em;
- font-weight:normal;
- color:#999;
- float:right;
- padding:0 8px 0;
- margin-top:-30px;
-}
-
-table.jd-tagtable td,
-table.jd-tagtable th {
- background-color:transparent;
-}
-
-table.jd-tagtable th {
- color:inherit;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/* SEARCH FILTER */
-
-.menu-container {
- position:relative;
-}
-#search_autocomplete {
- font-weight:normal;
-}
-
-.search_filtered_wrapper.reference {
- width: 193px;
- float: right;
-}
-.search_filtered_wrapper.docs {
- width:875px;
- float: left;
- position:absolute;
- top:26px;
- right:66px;
-}
-.suggest-card {
- position:relative;
- width:170px;
- min-height:90px;
- padding:5px;
- border: solid 1px #C5C5C5;
- background: white;
- top: 15px;
- margin-right:-5px;
- -moz-box-shadow: 0 0 10px rgba(0,0,0,0.2);
- -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
-}
-.suggest-card.reference {
- position:absolute;
- z-index:999;
- min-width:171px; /* +padding and border makes this match input width */
- min-height:93px; /* add 3px because this has 1 not 4px top border */
- width:auto;
- top:41px;
- margin:0;
-}
-.suggest-card.develop {
- z-index:997;
- border-top: solid 4px #F80;
- float:right;
-}
-.suggest-card.design {
- z-index:996;
- border-top: solid 4px #167c80;
- float:right;
-}
-.suggest-card.distribute {
- z-index:995;
- border-top: solid 4px #9C0;
- float:right;
-}
-.child-card {
- width:100%;
-}
-.suggest-card.dummy {
- width:172px;
- float:right;
- border:0;
- background:transparent;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-ul.search_filtered {
- min-width:100%;
- list-style: none;
- margin: 0 0 5px;
- padding: 0;
-}
-.search_filtered .jd-selected {
- background:#efefef;
- cursor:pointer;
-}
-.search_filtered .jd-selected,
-.search_filtered .jd-selected a {
- color:#09C !important;
-}
-
-.no-display {
- display: none;
-}
-
-.search_filtered li.jd-autocomplete {
- font-size: 0.81em;
- border: none;
- margin: 0 0 2px;
- padding: 0;
- line-height:1.5em;
-}
-
-.search_filtered li a {
- padding:0 5px;
- color:#222 !important;
- display:inline-block;
- line-height:12px;
-}
-
-.search_filtered li.header {
- font-weight:bold;
- color:#444;
- border: none;
- margin: 8px 0 2px;
- padding:1px 5px;
- line-height:1.5em;
-}
-.search_filtered li.header.small {
- font-size:0.85em;
-}
-
-.suggest-card.reference
-.search_filtered li.header {
- color:#aaa;
- font-size: 0.81em;
-}
-
-.search_filtered li.header:first-child {
- margin: 0 0 2px;
-}
-
-.show-item {
- display: table-row;
-}
-.hide-item {
- display: hidden;
-}
-
-
-
-
-
-/* SEARCH RESULTS */
-
-
-#leftSearchControl .gsc-twiddle {
- background-image : none;
-}
-
-#leftSearchControl td, #searchForm td {
- border: 0px solid #000;
- padding:0;
-}
-
-#leftSearchControl .gsc-resultsHeader .gsc-title {
- padding-left : 0px;
- font-weight : bold;
- font-size : 13px;
- color:#006699;
- display : none;
-}
-
-#leftSearchControl .gsc-resultsHeader div.gsc-results-selector {
- display : none;
-}
-
-#leftSearchControl .gsc-resultsRoot {
- padding-top : 6px;
-}
-
-#leftSearchControl div.gs-visibleUrl-long {
- display : block;
- color:#006699;
-}
-
-#leftSearchControl .gsc-webResult {
- padding:0 0 20px 0;
-}
-
-.gsc-webResult div.gs-visibleUrl-short,
-table.gsc-branding,
-.gsc-clear-button {
- display : none;
-}
-
-.gsc-cursor-box .gsc-cursor div.gsc-cursor-page,
-.gsc-cursor-box .gsc-trailing-more-results a.gsc-trailing-more-results,
-#leftSearchControl a,
-#leftSearchControl a b {
- color:#006699;
-}
-
-.gsc-resultsHeader {
- display: none;
-}
-
-/* Disable built in search forms */
-.gsc-control form.gsc-search-box {
- display : none;
-}
-table.gsc-search-box {
- margin:6px 0 0 0;
- border-collapse:collapse;
-}
-
-td.gsc-input {
- padding:0 2px;
- width:100%;
- vertical-align:middle;
-}
-
-input.gsc-input {
- border:1px solid #BCCDF0;
- width:99%;
- padding-left:2px;
- font-size:.95em;
-}
-
-td.gsc-search-button {
- text-align: right;
- padding:0;
- vertical-align:top;
-}
-
-
-#searchResults {
- overflow:hidden; /* because the repositioned page links makes the section think it needs to scroll
-(it doesn't) */
- height:auto;
-}
-
-#searchResults .gsc-control {
- position:relative;
- width:auto;
- padding:0 0 10px;
-}
-
-#searchResults .gsc-tabsArea {
- position:relative;
- white-space:nowrap;
- float:left;
- width:200px;
-}
-
-#searchResults .gsc-above-wrapper-area {
- display:none;
-}
-
-#searchResults .gsc-resultsbox-visible {
- float:left;
- width:720px;
- margin-left:20px;
-}
-
-#searchResults .gsc-tabHeader {
- padding: 3px 6px;
- position:relative;
- width:auto;
- display:block;
-}
-
-#searchResults h2#searchTitle {
- padding:0;
- margin:5px 0;
- border:none;
-}
-
-#searchResults h2#searchTitle em {
- font-style:normal;
- color:#167c80;
-}
-
-#searchResults .gsc-table-result {
- margin:5px 0 10px 0;
- background-color:transparent;
-}
-#searchResults .gs-web-image-box, .gs-promotion-image-box {
- width:120px;
-}
-#searchResults .gs-web-image-box img.gs-image, .gs-promotion-image-box img.gs-promotion-image {
- max-width:120px;
-}
-
-#searchResults .gsc-table-result .gsc-thumbnail {
- padding:0 20px 0 0;
-}
-
-#searchResults td {
- background-color:transparent;
-}
-
-#searchResults .gsc-expansionArea {
- position:relative;
-}
-#searchResults .gsc-tabsArea .gsc-cursor-box {
- width:200px;
- padding:20px 0 0 1px;
-}
-#searchResults .gsc-cursor-page {
- display:inline-block;
- float:left;
- margin:-1px 0 0 -1px;
- padding:0;
- height:27px;
- width:27px;
- text-align:center;
- line-height:2;
-}
-
-#searchResults .gsc-tabHeader.gsc-tabhInactive,
-#searchResults .gsc-cursor-page {
- text-decoration:none;
- color:#258AAF;
- border: solid 1px #DADADA;
-}
-
-#searchResults .gsc-tabHeader.gsc-tabhInactive:hover,
-#searchResults .gsc-cursor-page:hover {
- border-color: #DBDBDB;
- background-color: #F3F3F3;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#F9F9F9), to(#ECECEC));
- background-image: -webkit-linear-gradient(top, #F9F9F9, #ECECEC);
- background-image: -moz-linear-gradient(top, #F9F9F9, #ECECEC);
- background-image: -ms-linear-gradient(top, #F9F9F9, #ECECEC);
- background-image: -o-linear-gradient(top, #F9F9F9, #ECECEC);
- background-image: linear-gradient(top, #F9F9F9, #ECECEC);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f9f9f9',
-EndColorStr='#ececec');
- color: #167c80;
-}
-
-#searchResults .gsc-tabHeader.gsc-tabhActive,
-#searchResults .gsc-tabHeader.gsc-tabhActive:hover,
-#searchResults .gsc-cursor-page.gsc-cursor-current-page,
-#searchResults .gsc-cursor-page.gsc-cursor-current-page:hover {
- color:#fff;
- background-color: #09C;
- background-image: -webkit-gradient(linear, left top, left bottom, from(#2FADDB), to(#09C));
- background-image: -webkit-linear-gradient(top, #2FADDB, #09C);
- background-image: -moz-linear-gradient(top, #2FADDB, #09C);
- background-image: -ms-linear-gradient(top, #2FADDB, #09C);
- background-image: -o-linear-gradient(top, #2FADDB, #09C);
- background-image: linear-gradient(top, #2FADDB, #09C);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#2faddb', EndColorStr='#09c');
- border: 1px solid #3990AB;
- z-index:100;
-}
-
-
-
-
-
-/************ STICKY NAV BAR ******************/
-
-#header-wrapper {
- background: #f9f9f9;
- margin: 0 -10px 0 -10px;
- padding: 31px 10px 0px 10px;
- position: relative;
-}
-#header-wrapper #nav-x div.wrap {
- max-width: 940px;
- height: 38px;
-}
-#header-wrapper #nav-x ul.nav-x li {
- margin-right: 31px !important;
- margin-top: 5px;
- margin-bottom: 0px;
- height: 30px;
-}
-#header-wrapper #nav-x > div.wrap ul.nav-x li.active {
- color: #669900;
- border-bottom: 3px solid #669900;
-}
-#header-wrapper #nav-x > div.wrap ul.nav-x li.active a {
- color: #669900;
-}
-#header-wrapper #nav-x > div.wrap ul.nav-x a {
- font-size: 14.5px;
-}
-#header-wrapper .developer-console-btn {
- float: right;
- background: #fefefe;
- border-radius: 4px;
- padding: 8px 14px;
- box-shadow: 1px 1px 0px #7a7a7a;
- font-size: 14px;
- margin-top: -6px;
- cursor: pointer;
- color: #464646;
- margin-right: 20px;
-}
-/* not currently used */
-#header-wrapper .shadow {
- width: 1034px;
- height: 4px;
- position: absolute;
- left: 50%;
- margin-left: -517px;
- bottom: -4px;
- background-image: url(../images/header-shadow.png);
-}
-
-#context {
- clear: both;
- padding-top: 14px;
-}
-#context .breadcrumb {
- float: left;
- margin-bottom: 10px;
-}
-#context .util {
- float: right;
- margin-right: 20px;
-}
-
-.breadcrumb {
- list-style: none;
- margin: 0;
- padding: 0;
- position: relative;
-}
-.breadcrumb li {
- float: left;
- padding: 0 20px 0 0;
- color: #000;
- white-space: nowrap;
-}
-.breadcrumb li a {
- color: #000;
-}
-.breadcrumb li:after {
- content: url(../images/breadcrumb.png);
- position: relative;
- top: 1px;
- left: 10px;
- width: 5px;
- height: 10px;
-}
-.breadcrumb li.current {
- font-weight: 700;
-}
-.breadcrumb li.current:after {
- display: none;
-}
-
-/* Sticky Nav overrides */
-.sticky-menu {
- position: fixed;
- width: 940px;
- height: 0px;
- z-index: 51;
- top: 12px;
-}
-#sticky-header {
- display: none;
- padding: 0 10px;
- position: fixed;
- background: #f9f9f9;
- top: 0px;
- left: 0px;
- right: 0px;
- height: 45px;
- box-shadow: 0px 1px 5px rgba(0, 0, 0, 0.1);
- border-bottom: 1px solid #a5c43a;
- z-index: 50;
-}
-#sticky-header.design {
- border-bottom: 1px solid #167c80;
-}
-#sticky-header.develop {
- border-bottom: 1px solid #F80;
-}
-#sticky-header.distribute {
- border-bottom: 1px solid #9C0;
-}
-#sticky-header.about {
- border-bottom: 1px solid #9933CC;
-}
-#sticky-header > div {
- overflow: hidden;
- *zoom: 1;
- width: 940px;
- margin: 0 auto;
- clear: both;
- padding-top: 9px;
-}
-#sticky-header > div .logo {
- float: left;
- width: 26px;
- height: 25px;
- background: url(../images/dac_logo.png);
- background-image: -webkit-image-set(url(../images/dac_logo.png) 1x, url(../images/dac_logo@2x.png) 2x);
- z-index: 52;
- position: relative;
-}
-#sticky-header > div .top {
- float: left;
- width: 38px;
- height: 38px;
- position: relative;
- background: url(../images/styles/gototop.png);
- z-index: 52;
-}
-#sticky-header > div .breadcrumb {
- float: left;
- padding: 0 0 0 10px;
- border-left: 1px solid #d2d2d2;
- line-height: 24px;
- font-size: 14px;
- position: relative;
- top: 0px;
- z-index: 52;
-}
-
-/* offset the <a name=""> tags to account for sticky nav */
-body.reference a[name] {
- visibility: hidden;
- display: block;
- position: relative;
- top: -56px;
-}
-
-
-}
-
-
-
-
-
-
-
-/*********** PREVIOUSLY dac-styles.css ***************/
-
-
-#header {
- border-bottom:0;
-}
-
-#header .wrap {
- max-width:940px;
- height:41px;
- border-bottom:1px solid;
- border-color: #ccc;
- position:relative;
-}
-
-.about #header .wrap {
- border-color: #9933CC;
-}
-
-.design #header .wrap {
- border-color: #167c80;
-}
-
-.develop #header .wrap {
- border-color: #F80;
-}
-
-.distribute #header .wrap {
- border-color: #9C0;
-}
-
-.logo a {
- float:left;
-}
-
-#header .logo {
- margin-top: -6px;
- margin-left: 0px;
- margin-bottom:0px;
- width: 160px;
- padding-right:10px;
-}
-
-
-#header-wrap .logo.landing-logo {
- width:220px;
- margin:0;
- padding:0;
- margin-bottom:22px;
-}
-#header-wrap .logo.landing-logo img {
- padding:0 0 0 10px;
-}
-
-.search {
- height:25px;
- margin-top: -3px;
- margin-bottom: 0px;
-}
-
-
-
-/* Quicknav */
-.btn-quicknav {
- width:20px;
- height:28px;
- float:left;
- margin-left:6px;
- padding-right:10px;
- position:relative;
- cursor:pointer;
- border-right:1px solid #CCC;
-}
-
-.btn-quicknav a {
- zoom:1;
- position:absolute;
- top:13px;
- left:5px;
- display:block;
- text-indent:-9999em;
- width:10px;
- height:5px;
- background:url(../images/quicknav_arrow.png) no-repeat;
-}
-
-.btn-quicknav a.arrow-active {
- background-position: 0 -5px;
- display:none;
-}
-
-#header-wrap.quicknav a.arrow-inactive {
- display:none;
-}
-
-.btn-quicknav.active a.arrow-active {
- display:block;
-}
-
-.nav-x li {
- display:block;
- float:left;
- margin-right:45px;
- -webkit-transition: all 0.25s linear;
- -moz-transition: all 0.25s linear;
- -ms-transition: all 0.25s linear;
- -o-transition: all 0.25s linear;
- transition: all 0.25s linear;
-}
-
-#header-wrap.quicknav .nav-x li {
- min-width:160px;
- margin-right:20px;
-}
-
-#header-wrap.quicknav li.last {
- margin-right:0px;
-}
-
-#quicknav {
- float:none;
- clear:both;
- margin-left:0;
- margin-top:-30px;
- display:none;
- overflow:hidden;
-}
-
-#header-wrap.quicknav #quicknav {
-
-}
-
-#quicknav ul {
- margin:10px 0;
- padding:0;
-}
-
-#quicknav ul li.about {
- border-top:1px solid #9933CC;
-}
-
-#quicknav ul li.design {
- border-top:1px solid #167c80;
-}
-
-#quicknav ul li.develop {
- border-top:1px solid #FF8800;
-}
-
-#quicknav ul li.distribute {
- border-top:1px solid #99cc00;
-}
-
-#quicknav ul li {
- display:block;
- float:left;
- margin:0 20px 0 0;
- min-width:140px;
-}
-
-#quicknav ul li.last {
- margin-right:0px;
-}
-
-#quicknav ul li ul li {
- float:none;
-}
-
-#quicknav ul li ul li a {
- color:#222;
-}
-
-#quicknav ul li li ul,
-#quicknav ul li li ul li {
- margin:0;
-}
-
-#quicknav ul li li ul li:before {
- content:"\21B3";
-}
-
-#header-wrap {
- -webkit-transition: all 0.25s ease-out;
- -moz-transition: all 0.25s ease-out;
- -ms-transition: all 0.25s ease-out;
- -o-transition: all 0.25s ease-out;
- transition: all 0.25s ease-out;
-
-}
-
-#header-wrap.quicknav {
- height:216px;
-
-}
-
-/* SEARCH AND MORE */
-.search {
- position: absolute;
- width: 50px;
- height:28px;
- display: block;
- margin-top:-3px;
- margin-bottom:7px;
- overflow:hidden;
- z-index:100;
- right:54px;
- -webkit-transition: width 0.4s ease;
- -moz-transition: width 0.4s ease;
- -o-transition: width 0.4s ease;
- transition: width 0.4s ease;
-}
-
-.search #search-btn {
- width:50px;
- height:28px;
- background:url(../images/icon_search.png) no-repeat;
- float:left;
-}
-
-.search-inner {
- width:245px;
-}
-
-.search:hover, .search.active {
- width:245px;
-}
-
-.search .bottom, .search .left, .search .right {
- position: absolute;
- background-color: #a2a2a2
-}
-
-.search .bottom {
- width: 214px;
- height: 1px;
- top: 24px;
- left: 0
-}
-
-.search .left, .search .right {
- height: 5px;
- width: 1px
-}
-
-.search .left {
- top: 22px;
- left: 56px;
- background-color:#CCC;
-}
-
-.search .right {
- top: 22px;
- left: 238px;
- background-color:#CCC;
-}
-
-.search form {
- margin-top: 2px;
- width: 162px;
- float:left;
-}
-
-.search form input {
- color: #2f2f2f;
- font-size: 0.95em;
- width: 178px;
- border: none;
- margin-left: 6px;
- z-index: 1500;
- position: relative;
- background-color: transparent;
- border-bottom:1px solid #CCC;
- padding:0 0 0 4px;
- outline:none;
- height:24px;
-}
-
-.search:hover form input {
- border-bottom:1px solid #167c80;
-}
-
-.search:hover .bottom, .search:hover .left, .search:hover .right {
- background-color: #167c80;
-}
-
-.search:hover #search-btn {
- background-position: 0 -28px
-}
-
-.search form input:focus {
- color: #222;
- font-weight: bold
-}
-
-.moremenu {
- float: right;
- position: relative;
- width: 50px;
- height:28px;
- display: block;
- margin-top:-3px;
- margin-bottom:7px;
- overflow:hidden;
- -webkit-transition: width 0.25s ease;
- -moz-transition: width 0.25s ease;
- -o-transition: width 0.25s ease;
- transition: width 0.25s ease;
-}
-
-.moremenu #more-btn {
- width:40px;
- height:28px;
- background:url(../images/icon_more.png) no-repeat;
- border-left:1px solid #CCC;
- float:left;
- cursor:pointer;
-}
-
-.moremenu:hover #more-btn {
- background-position:0 -28px;
-}
-
-.morehover {
- position:absolute;
- right:6px;
- top:-9px;
- width:40px;
- height:35px;
- z-index:99;
- overflow:hidden;
-
- -webkit-opacity:0;
- -moz-opacity:0;
- -o-opacity:0;
- opacity:0;
-
- -webkit-transform-origin:100% 0%;
- -moz-transform-origin:100% 0%;
- -o-transform-origin:100% 0%;
- transform-origin:100% 0%;
-
- -webkit-transition-property: -webkit-opacity;
- -webkit-transition-duration: .25s;
- -webkit-transition-timing-function:ease;
-
- -moz-transition-property: -moz-opacity;
- -moz-transition-duration: .25s;
- -moz-transition-timing-function:ease;
-
- -o-transition-property: -o-opacity;
- -o-transition-duration: .25s;
- -o-transition-timing-function:ease;
-
- transition-property: opacity;
- transition-duration: .25s;
- transition-timing-function:ease;
-}
-
-.morehover:hover,
-.morehover.hover {
- opacity:1;
- height:385px;
- width:268px;
- -webkit-transition-property:height, -webkit-opacity;
-}
-
-.morehover .top {
- width:268px;
- height:39px;
- background:url(../images/more_top.png) no-repeat;
-}
-
-.morehover .mid {
- width:228px;
- background:url(../images/more_mid.png) repeat-y;
- padding:10px 20px 0 20px;
-}
-
-.morehover .mid .header {
- border-bottom:1px solid #ccc;
- font-weight:bold;
-}
-
-.morehover .bottom {
- width:268px;
- height:6px;
- background:url(../images/more_bottom.png) no-repeat;
-}
-
-.morehover ul {
- margin:10px 10px 20px 0;
-}
-
-.morehover ul li {
- list-style:none;
-}
-
-.morehover ul li.active a,
-.morehover ul li.active a:hover {
- color:#222 !important;
-}
-
-.morehover ul li.active img {
- margin-right:4px;
-}
-
-
-
-
-/* MARQUEE */
-.slideshow-container {
- width:100%;
- overflow:hidden;
- position:relative;
-}
-.slideshow-container .slideshow-prev {
- position:absolute;
- top:50%;
- left:0px;
- margin-top:-36px;
- z-index:99;
-}
-.slideshow-container .slideshow-next {
- position:absolute;
- top:50%;
- margin-top:-36px;
- z-index:99;
- right:0px;
-}
-
-.slideshow-container .pagination {
- position:absolute;
- bottom:20px;
- width:100%;
- text-align:center;
- z-index:99;
-}
-.slideshow-container .pagination ul {
- margin:0;
-}
-.slideshow-container .pagination ul li{
- display: inline-block;
- width:12px;
- height:12px;
- text-indent:-8000px;
- list-style:none;
- margin: 0 2px;
- border-radius:6px;
- background-color:#ccc;
- cursor:pointer;
- -webkit-transition:color .5s ease-in;
- -moz-transition:color .5s ease-in;
- -o-transition:color .5s ease-in;
- transition:color .5s ease-in;
-}
-.slideshow-container .pagination ul li:hover {
- background-color:#999;
-}
-.slideshow-container .pagination ul li.active {
- background-color:#167c80;
-}
-.slideshow-container .pagination ul li.active:hover {
- background-color:#167c80;
-}
-.slideshow-container ul li {
- display:inline;
- list-style:none;
-}
-
-
-#landing h1 {
- margin:17px 0 20px 0 !important;
-}
-
-a.download-sdk {
- float:right;
- margin:-10px 0;
- height:30px;
- padding-top:4px;
- padding-bottom:0px;
-}
-
-#nav-x {
- padding-top: 13px;
-}
-
-#nav-x .wrap {
- min-height:32px;
-}
-
-#nav-x .wrap,
-#searchResults.wrap {
- max-width:940px;
- border-bottom:1px solid #CCC;
-}
-
-#searchResults.wrap #leftSearchControl {
- min-height:700px
-}
-.nav-x {
- margin-left:0;
- margin-bottom:0;
-}
-
-
-
-
-
-
-
-
-
-
-/*
- * CSS Styles that are needed by jScrollPane for it to operate correctly.
- */
-
-.jspContainer {
- overflow: hidden;
- position: relative;
-}
-
-.jspPane {
- position: absolute;
- width:100% !important; /* to avoid cut-off api names in reference in horiz scroll */
-}
-
-.jspVerticalBar {
- position: absolute;
- top: 0;
- right: 0;
- width: 4px;
- height: 100%;
- background: #f5f5f5;
-}
-
-.jspHorizontalBar {
- position: absolute;
- bottom: 0;
- left: 0;
- width: 100%;
- height: 4px;
- background: #f5f5f5;
-}
-
-.jspVerticalBar *,
-.jspHorizontalBar * {
- margin: 0;
- padding: 0;
-}
-.jspCap {
- display: block;
-}
-
-.jspVerticalBar .jspCap {
- height: 4px;
-}
-
-.jspHorizontalBar .jspCap {
- width: 0;
- height: 100%;
-}
-
-.jspHorizontalBar .jspCap {
- float: left;
-}
-
-.jspTrack {
- position: relative;
-}
-
-.jspDrag {
- background: #bbb;
- position: relative;
- top: 0;
- left: 0;
- cursor: pointer;
-}
-
-.jspDrag:hover,
-.jspDrag:active {
- border-color: #09c;
- background-color: #4cadcb;
- background-image: -webkit-gradient(linear, left top, right top, from(#5dbcd9), to(#4cadcb));
- background-image: -webkit-linear-gradient(left, #5dbcd9, #4cadcb);
- background-image: -moz-linear-gradient(left, #5dbcd9, #4cadcb);
- background-image: -ms-linear-gradient(left, #5dbcd9, #4cadcb);
- background-image: -o-linear-gradient(left, #5dbcd9, #4cadcb);
- background-image: linear-gradient(left, #5dbcd9, #4cadcb);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#5dbcd9', EndColorStr='#4cadcb');
-}
-
-.jspHorizontalBar .jspTrack,
-.jspHorizontalBar .jspDrag {
- float: left;
- height: 100%;
-}
-
-.jspArrow {
- background: #999;
- text-indent: -20000px;
- display: block;
- cursor: pointer;
-}
-
-.jspArrow.jspDisabled {
- cursor: default;
- background: #ccc;
-}
-
-.jspVerticalBar .jspArrow {
- height: 16px;
-}
-
-.jspHorizontalBar .jspArrow {
- width: 16px;
- float: left;
- height: 100%;
-}
-
-.jspVerticalBar .jspArrow:focus {
- outline: none;
-}
-
-.jspCorner {
- float: left;
- height: 100%;
-}
-
-/* Yuk! CSS Hack for IE6 3 pixel bug :( */
-* html .jspCorner {
- margin: 0 -3px 0 0;
-}
-/******* end of jscrollpane *********/
-
-
-
-
-
-/************ DEVELOP HOMEPAGE ******************/
-
-/* Slideshow */
-.slideshow-develop {
- height: 316px;
- width: 940px;
- position: relative;
- overflow:hidden;
-}
-.slideshow-develop .frame {
- width: 940px;
- height: 316px;
-}
-.slideshow-develop img.play {
- max-width:350px;
- max-height:240px;
- margin:20px 0 0 90px;
- -webkit-transform: perspective(800px ) rotateY( 35deg );
- box-shadow: -16px 20px 40px rgba(0, 0, 0, 0.3);
- -moz-box-shadow: -16px 20px 40px rgba(0, 0, 0, 0.3);
- -webkit-box-shadow: -16px 20px 40px rgba(0, 0, 0, 0.3);
-}
-.slideshow-develop img.play.no-shadow {
- box-shadow: none;
- -moz-box-shadow: none;
- -webkit-box-shadow: none;
-}
-.slideshow-develop img.play.no-transform {
- -webkit-transform: none;
-}
-.slideshow-develop a.slideshow-next {
- background: url(../images/arrow-right-develop.png);
-}
-.slideshow-develop a.slideshow-prev {
- background: url(../images/arrow-left-develop.png);
-}
-.slideshow-develop .content-right {
- float: left;
-}
-.slideshow-develop .content-right h2 {
- padding:0;
- margin-bottom:10px;
- border:none;
- font-size:24px;
-}
-.slideshow-develop .item {
- height: 300px;
- width: 940px;
-}
-.slideshow-develop .pagination ul li.active {
- background-color: #F80;
-}
-.slideshow-develop .pagination ul li.active:hover {
- background-color: #F80;
-}
-.slideshow-develop .item hr {
- margin:5px 0 10px;
-}
-.slideshow-develop .item p {
- margin:10px 0;
-}
-.slideshow-develop .item p.title-intro {
- position:absolute;
- margin:0;
-}
-
-/* Feeds */
-.feed ul {
- margin: 0;
-}
-.feed .feed-nav {
- height: 25px;
- border-bottom: 1px solid #CCC;
-}
-.feed .feed-nav li {
- list-style: none;
- float: left;
- height: 21px; /* +4px bottom border = 25px; same as .feed-nav */
- margin-right: 25px;
- cursor: pointer;
-}
-.feed .feed-nav li.active {
- color: #000;
- border-bottom: 4px solid #F80;
-}
-.feed .feed-container {
- overflow: hidden;
- width: 460px;
-}
-.feed .feed-container .feed-frame {
- width: 1000px;
-}
-.feed .feed-container .feed-frame ul {
- float: left;
- width:460px;
-}
-.feed .feed-container .feed-frame ul ul {
- float: none;
- margin:10px 0 0 30px;
-}
-.feed .feed-container .feed-frame li {
- list-style: none;
- margin: 20px 0 20px 0;
- width: 460px;
- height:93px;
-}
-.feed .feed-container .feed-frame li.playlist {
- height:auto;
-}
-.feed .feed-container .feed-frame li.playlist a {
- height:93px;
- display:block;
-}
-.feed .feed-container .feed-frame li.more {
- height:20px;
- margin:10px 0 5px 5px;
-}
-.feed .feed-container .feed-frame li.more a {
- height:inherit;
-}
-.feed .feed-container .feed-frame li.playlist-video {
- list-style: none;
- margin: 0;
- width: 460px;
- height:55px;
- font-size:12px;
-}
-.feed .feed-container .feed-frame li.playlist-video a {
- height:45px;
- padding:5px;
-}
-.feed .feed-container .feed-frame li.playlist-video h5 {
- font-size:12px;
- line-height:13px;
- margin:0;
-}
-.feed .feed-container .feed-frame li.playlist-video p {
- margin:5px 0 0;
- line-height:15px;
-}
-.feed-container .feed-frame div.feed-image {
- float: left;
- border: 1px solid #999;
- margin:0 20px 0 0;
- width:122px;
- height:92px;
- background:url('../images/blog-default.png') no-repeat 0 0;
- background-size:180px;
-}
-#jd-content .feed .feed-container .feed-frame li img {
- float: left;
- border: 1px solid #999;
- margin:0 20px 0 0;
- width:122px;
- height:92px;
-}
-#jd-content .feed .feed-container .feed-frame li.playlist-video img {
- width:inherit;
- height:inherit;
-}
-
-.feed .feed-container .feed-frame li a,
-.feed .feed-container .feed-frame li a:active {
- color:#555 !important;
-}
-
-.feed .feed-container .feed-frame li a:hover,
-.feed .feed-container .feed-frame li a:hover * {
- color:#7AA1B0 !important;
-}
-
-/* Video player */
-#player-wrapper {
- display:none;
- margin: -1px auto 0;
- position: relative;
- width: 940px;
- height: 0px;
-}
-#player-frame {
- background: #EFEFEF;
- border: 1px solid #CCC;
- padding: 0px 207px;
- z-index: 10; /* stay above marque, but below search suggestions */
- width: 525px;
- height: 330px;
- position: relative;
-}
-
-
-
-/************ DEVELOP TOPIC CONTAINERS ************/
-
-.landing-banner,
-.landing-docs {
- margin:20px 0;
-}
-.landing-banner > div:first-child,
-.landing-docs > div:first-child,
-.landing-docs > .col-12 {
- margin-left:0;
- min-height:280px;
-}
-.landing-banner.short > div {
- min-height:50px;
-}
-.landing-banner > div:last-child,
-.landing-docs > div:last-child,
-.landing-docs > .col-12 {
- margin-right:0;
-}
-
-.landing-banner > div > *:last-child {
- margin-bottom:0;
-}
-.landing-banner h1 {
- margin-top:16px;
- padding-bottom:24px;
-}
-.landing-docs,
-.landing-banner {
- clear:both;
- overflow:hidden;
-}
-.landing-docs h3 {
- font-size:14px;
- line-height:21px;
- color:#555;
- text-transform:uppercase;
- border-bottom:1px solid #CCC;
- margin:0 0 20px;
-}
-.landing-docs a {
- color:#333 !important;
-}
-
-.landing-docs a:hover,
-.landing-docs a:hover * {
- color:#0C4446 !important
-}
-
-.landing-docs .normal-links a {
- color:#167c80 !important;
-}
-
-.plusone {
- float:right;
-}
-
-
-
-.next-docs {
- border-top:1px solid #ccc;
- margin:40px 0 0;
- padding:5px 0 0;
- clear:left;
- overflow:hidden;
-}
-.next-docs div:first-child {
- margin-left:0;
-}
-.next-docs div:last-child {
- margin-right:0;
-}
-
-.next-docs h2 {
- font-size:14px;
- line-height:21px;
- color:#555;
- text-transform:uppercase;
- border-bottom:none;
- margin:0 0 1em;
- padding:5px 0 0;
-}
-
-
-
-/************* HOME/LANDING PAGE *****************/
-
-.slideshow-home {
- height: 500px;
- width: 940px;
- border-bottom: 1px solid #CCC;
- position: relative;
- margin: 0;
-}
-.slideshow-home .frame {
- width: 940px;
- height: 500px;
-}
-.slideshow-home .content-left {
- float: left;
- text-align: center;
- vertical-align: center;
- margin: 0 0 0 35px;
-}
-.slideshow-home .content-right {
- margin: 80px 0 0 0;
-}
-.slideshow-home .content-right p {
- margin-bottom: 10px;
-}
-.slideshow-home .content-right p:last-child {
- margin-top: 15px;
-}
-.slideshow-home .content-right h1 {
- padding:0;
-}
-.slideshow-home .item {
- height: 500px;
- width: 940px;
-}
-.home-sections {
- padding: 30px 20px 20px;
- margin: 20px 0;
- background: -webkit-linear-gradient(top, #F6F6F6,#F9F9F9);
-}
-.home-sections ul {
- margin: 0;
-}
-.home-sections ul li {
- float: left;
- display: block;
- list-style: none;
- width: 170px;
- height: 35px;
- border: 1px solid #ccc;
- background: white;
- margin-right: 10px;
- border-radius: 1px;
- -webkit-border-radius: 1px;
- -moz-border-radius: 1px;
- box-shadow: 1px 1px 5px #EEE;
- -webkit-box-shadow: 1px 1px 5px #EEE;
- -moz-box-shadow: 1px 1px 5px #EEE;
- background: white;
-}
-.home-sections ul li:hover {
- background: #F9F9F9;
- border: 1px solid #CCC;
-}
-.home-sections ul li a,
-.home-sections ul li a:hover {
- font-weight: bold;
- margin-top: 8px;
- line-height: 18px;
- float: left;
- width: 100%;
- text-align: center;
- color: #09c !important;
-}
-.home-sections ul li a {
- font-weight: bold;
- margin-top: 8px;
- line-height: 18px;
- float: left;
- width:100%;
- text-align:center;
-}
-.home-sections ul li img {
- float: left;
- margin: -8px 0 0 10px;
-}
-.home-sections ul li.last {
- margin-right: 0px;
-}
-.fullpage #footer {
- margin-top: -40px;
-}
-
-/************ DISTRIBUTE PAGES ******************/
-
-.article-detail #body-content {
- padding-top: 10px;
-}
-
-/* A container for grid sets with uppercase h3 and rule */
-.dynamic-grid h3 {
- font-size:14px;
- line-height:21px;
- color:#555;
- text-transform:uppercase;
- border-bottom:1px solid #CCC;
- padding:8px 0 0 1px;
- margin-bottom:14px;
- clear:both;
-}
-
-.top-right-float {
- float: right;
-}
-
-.clearfloat {
- float: none;
- clear: both;
-}
-
-.border-img {
- border: 1px solid #CCC;
-}
-
-.center-img {
- margin: auto;
- text-align: center;
-}
-.center-img img {
- margin-bottom: 15px;
-}
-
-.figure img, .border-img {
- margin-bottom: 15px;
-}
-
-/************ RESOURCE CARDS ******************/
-
-/* Resource cards, 12, 13, 16-col */
-
-/* Basic card-styling with shadow */
-.resource-card {
- border-radius: 1px;
- box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.12);
- background: #fefefe;
-}
-
-/* Styling for background image including tinting and section icons in stacks */
-.card-bg {
- display: block;
- position: absolute;
- vertical-align: top;
- width: 100%;
- left: 0;
- top: 0;
- background-size: cover;
- background-repeat: no-repeat;
- background-position: center;
- background-image: url(../images/resource-card-default-android.jpg);
-}
-.card-bg:after {
- content: "";
- display: block;
- height: 100%;
- width: 100%;
- opacity: 1;
- background: rgba(0, 0, 0, 0.2);
- -webkit-transition: opacity 0.5s;
- -moz-transition: opacity 0.5s;
- -o-transition: opacity 0.5s;
- transition: opacity 0.5s;
-}
-.static .card-bg:after {
- display:none;
-}
-.card-bg .card-section-icon {
- position: absolute;
- top: 50%;
- width: 100%;
- margin-top: -35px;
- text-align: center;
- padding-top: 65px;
- z-index: 100;
-}
-.card-bg .card-section-icon .icon {
- position: absolute;
- left: 50%;
- margin-left: -28px;
- top: 0px;
- width: 56px;
- height: 56px;
- background-repeat: no-repeat;
- background-position: 50% 50%;
- background-image: url(../images/stack-icon.png);
-}
-.card-bg .card-section-icon .section {
- text-transform: uppercase;
- color: white;
- font-size: 14px;
-}
-
-.card-info {
- position: absolute;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- overflow: hidden;
- background: #fefefe;
- padding: 4px 12px 6px 12px;
-}
-.card-info .section {
- text-transform: uppercase;
- color: #898989;
- font-size: 12px;
- margin-bottom: 1px;
-}
-.card-info .title {
- color: #363636;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- padding-bottom: 5px;
- margin-bottom: -2px;
- font-size: 16px;
-}
-.card-info .description {
- overflow: hidden;
-}
-.card-info .description .text {
- color: #464646;
- font: 13px/15px Roboto Condensed;
- overflow: hidden;
- width:100%;
-}
-.card-info .description .util {
- position: absolute;
- right: 5px;
- bottom: 70px; /*-2px;*/
- opacity: 0;
- -webkit-transition: opacity 0.5s;
- -moz-transition: opacity 0.5s;
- -o-transition: opacity 0.5s;
- transition: opacity 0.5s;
-}
-.card-info.empty-desc .title {
- white-space: normal;
- overflow: visible;
-}
-.card-info.empty-desc .description {
- display: none;
-}
-/* Truncate card summaries at bounding box and
- * and apply ellipsis at lower right */
-.ellipsis {
- overflow: hidden;
- float:right;
- line-height: 15px;
- width:100%;
-}
-.resource-card-6x6 .card-info .description .teddddddxt {
- float:left;
- position:relative;
- margin-left:0;
-}
-.ellipsis:before {
- content:"";
- float: left;
- width: 5px;
- height:100%;
-}
-.ellipsis > *:first-child.text {
- float: right;
- width: 100% !important;
- margin-left: -5px;
-}
-.ellipsis:after {
- content: "\02026";
- height:17px;
- padding-bottom:4px;
-
- box-sizing: content-box;
- -webkit-box-sizing: content-box;
- -moz-box-sizing: content-box;
-
- float: right; position: relative;
- top: -16px; left: 100%;
- width: 4em; margin-left: -4em;
- padding-right: 5px;
-
- background: -webkit-gradient(linear, left top, right top,
- from(rgba(255, 255, 255, 0)), to(white), color-stop(65%, white));
- background: -moz-linear-gradient(to right, rgba(255, 255, 255, 0), white 65%, white);
- background: -o-linear-gradient(to right, rgba(255, 255, 255, 0), white 65%, white);
- background: -ms-linear-gradient(to right, rgba(255, 255, 255, 0), white 65%, white);
- background: linear-gradient(to right, rgba(255, 255, 255, 0), white 65%, white);
-}
-.ellipsis:after {
- font-style: normal; color: #aaa;
- font-size:13px;
- text-align: right;
-}
-
-/* Flow Layout */
-.resource-flow-layout {
- display: inline-block;
-}
-.resource-flow-layout .resource-card, .resource-flow-layout .resource-card-stack {
- float: left;
- position: relative;
-}
-.resource-flow-layout .resource-card-stack > .resource-card {
- margin-right: 0px !important;
-}
-.resource-flow-layout:after {
- content: ".";
- display: block;
- height: 0;
- position:relative;
- clear: both;
- visibility: hidden;
-}
-.resource-card:hover {
- cursor: pointer;
-}
-.static .resource-card:hover {
- cursor: auto;
-}
-.resource-card:hover .card-bg:after {
- opacity: 0;
-}
-/* disabled to make way for fade/ellipsis truncation,
- and the plusone moves up.
-.resource-card:hover .card-info .description .text {
- padding-right: 70px;
-} */
-.resource-card:hover .card-info .description .util {
- opacity: 1;
-}
-
-/* Carousel Layout */
-/* Carousel styles for landing page */
-.resource-carousel-layout {
- margin: 20px 0 20px 0;
- position: relative;
- overflow: hidden;
-}
-.resource-carousel-layout .slideshow-prev, .resource-carousel-layout .slideshow-next {
- display: none;
-}
-.resource-carousel-layout .pagination {
- bottom: 0px;
-}
-.resource-carousel-layout .frame li {
- position: relative;
-}
-.resource-carousel-layout .frame li .card-bg {
- height: 300px;
-}
-.resource-carousel-layout .frame li .card-info {
- padding: 7px 15px 0px 15px;
- top: 300px;
-}
-.resource-carousel-layout .frame li .card-info .section {
- font-size: 13px;
- margin-bottom: 7px;
-}
-.resource-carousel-layout .frame li .card-info .title {
- font-size: 25px;
- margin-bottom: 2px;
-}
-.resource-carousel-layout .frame li .card-info .description {
- font-family: 15px/16px Roboto Condensed, sans-serif;
-}
-.resource-carousel-layout .frame li .card-info .description .text {
- height: 40px;
-}
-.resource-carousel-layout .frame li .card-info .description .util {
- bottom:97px;
- right:4px;
-}
-
-/* Stack Layout */
-.resource-stack-layout {
- display: inline-block;
-}
-.resource-stack-layout .resource-card-stack {
- float: left;
- position: relative;
-}
-.resource-stack-layout .resource-card {
- margin-bottom: 20px;
- display: block;
- position: relative;
-}
-.resource-stack-layout .section-card-menu > .card-info .section, .resource-stack-layout .section-card > .card-info .title {
- /*text-transform: uppercase;*/
- color: #898989;
- font-size: 17px;
- line-height: 24px;
- margin-bottom: 6px;
-}
-.resource-stack-layout .section-card {
- height: 284px;
-}
-.resource-stack-layout .section-card > .card-bg {
- height: 192px;
-}
-.resource-stack-layout .section-card > .card-info {
- padding: 4px 12px 6px 12px;
- top: 192px;
-}
-.resource-stack-layout .section-card > .card-info .section {
- display: none;
-}
-.resource-stack-layout .section-card > .card-info .title {
- font-size: 17px;
- border-bottom: 1px solid #959595;
- padding-bottom: 0px;
-}
-.resource-stack-layout .section-card > .card-info .description {
- font-size: 13px;
- line-height: 15px;
-}
-.resource-stack-layout .section-card > .card-info .description .text {
- height: 30px;
-}
-.resource-stack-layout .related-card {
- height: 90px;
-}
-.resource-stack-layout .related-card > .card-bg {
- left: 0;
- top: 0;
- width: 90px;
- height: 100%;
- position: absolute;
- display: block;
-}
-.resource-stack-layout .related-card > .card-info {
- left: 90px;
- padding: 4px 12px 4px 12px;
-}
-.resource-stack-layout .related-card > .card-info .section {
- font-size: 12px;
- margin-bottom: 1px;
- display: none;
-}
-.resource-stack-layout .related-card > .card-info .title {
- font-size: 16px;
- margin-bottom: -2px;
- white-space: normal;
- overflow: visible;
- text-overflow: ellipsis;
-}
-.resource-stack-layout .related-card > .card-info .title:after {
- content: url(../images/link-out.png);
- display: block;
-}
-.resource-stack-layout .related-card > .card-info .description {
- display: none;
-}
-.resource-stack-layout .section-card-menu {
- /* Flexible height */
- display: block;
- height: auto;
- width: auto;
-}
-.resource-stack-layout .section-card-menu .card-bg {
- height: 155px;
- /* Flexible height */
- position: relative;
- display: inline-block;
- vertical-align: top;
-}
-.resource-stack-layout .section-card-menu .card-info {
- padding: 4px 12px 0px 12px;
- /* Flexible height */
- position: relative;
- left: auto;
- top: auto;
- right: auto;
- bottom: auto;
-}
-.resource-stack-layout .section-card-menu .card-info ul {
- list-style: none;
- margin: 0;
-}
-.resource-stack-layout .section-card-menu .card-info ul li {
- list-style: none;
- margin: 0;
- padding: 15px 0;
- border-top-width: 1px;
- border-top-style: solid;
- border-top-color: #959595;
-}
-.resource-stack-layout .section-card-menu .card-info ul li a, .resource-stack-layout .section-card-menu .card-info ul li a:focus, .resource-stack-layout .section-card-menu .card-info ul li a:link, .resource-stack-layout .section-card-menu .card-info ul li a:visited, .resource-stack-layout .section-card-menu .card-info ul li a:active, .resource-stack-layout .section-card-menu .card-info ul li a:hover {
- color: #363636 !important;
-}
-.resource-stack-layout .section-card-menu .card-info ul li:first-child {
- border-top: none;
-}
-.resource-stack-layout .section-card-menu .card-info ul li:hover .title:after {
- opacity: 1;
- -webkit-transition: opacity 0.5s;
- -moz-transition: opacity 0.5s;
- -o-transition: opacity 0.5s;
- transition: opacity 0.5s;
-}
-.resource-stack-layout .section-card-menu .card-info ul li:hover .description {
- max-height: 30px;
- opacity: 1;
- -webkit-transition: max-height 0.5s, opacity 1s;
- -moz-transition: max-height 0.5s, opacity 1s;
- -o-transition: max-height 0.5s, opacity 1s;
- transition: max-height 0.5s, opacity 1s;
-}
-.resource-stack-layout .section-card-menu .card-info .title {
- font-size: 16px;
- margin-bottom: -2px;
- position: relative;
-}
-.resource-stack-layout .section-card-menu .card-info .title:after {
- background: url(../images/stack-arrow-right.png);
- content: '';
- opacity: 0;
- -webkit-transition: opacity 0.25s;
- -moz-transition: opacity 0.25s;
- -o-transition: opacity 0.25s;
- transition: opacity 0.25s;
- position: absolute;
- right: 0px;
- top: 3px;
- width: 10px;
- height: 15px;
-}
-.resource-stack-layout .section-card-menu .card-info .title.more {
- text-transform: uppercase;
- color: #898989;
- display: inline-block;
-}
-.resource-stack-layout .section-card-menu .card-info .title.more:after {
- background: url(../images/stack-arrow-right.png);
- content: '';
- display: block;
- position: absolute;
- right: -20px;
- top: 3px;
- width: 10px;
- height: 15px;
-}
-.resource-stack-layout .section-card-menu .card-info .description {
- max-height: 0px;
- opacity: 0;
- overflow: hidden;
- font-size: 13px;
- line-height: 15px;
- /* Hover off */
- -webkit-transition: max-height 0.5s, opacity 0.5s;
- -moz-transition: max-height 0.5s, opacity 0.5s;
- -o-transition: max-height 0.5s, opacity 0.5s;
- transition: max-height 0.5s, opacity 0.5s;
-}
-.resource-stack-layout .section-card-menu .card-info .description .text {
- height: 30px;
-}
-.resource-stack-layout:after {
- content: ".";
- display: block;
- height: 0;
- clear: both;
- visibility: hidden;
-}
-
-/* Generate the flow layout styles for a 3-column 16-col span */
-.resource-flow-layout.col-16 {
- margin: 0 -14px 0 0;
- width: 954px;
-}
-.resource-flow-layout.col-16 .resource-card, .resource-flow-layout.col-16 .resource-card-stack {
- margin: 0 14px 20px 0;
-}
-.resource-flow-layout.col-16 .resource-card-row-stack-last {
- margin-bottom: 0px !important;
-}
-.resource-flow-layout.col-16 .resource-card-col-stack-last {
- margin-bottom: 0px !important;
-}
-.resource-flow-layout.col-16 .resource-card-3x6 {
- width: 145px;
- height: 284px;
-}
-.resource-flow-layout.col-16 .resource-card-3x12 {
- width: 145px;
- height: 588px;
-}
-.resource-flow-layout.col-16 .resource-card-3x18 {
- width: 145px;
- height: 892px;
-}
-.resource-flow-layout.col-16 .resource-card-6x6 {
- width: 304px;
- height: 284px;
-}
-.resource-flow-layout.col-16 .resource-card-6x12 {
- width: 304px;
- height: 588px;
-}
-.resource-flow-layout.col-16 .resource-card-6x18 {
- width: 304px;
- height: 892px;
-}
-.resource-flow-layout.col-16 .resource-card-9x6 {
- width: 463px;
- height: 284px;
-}
-.resource-flow-layout.col-16 .resource-card-9x12 {
- width: 463px;
- height: 588px;
-}
-.resource-flow-layout.col-16 .resource-card-9x18 {
- width: 463px;
- height: 892px;
-}
-.resource-flow-layout.col-16 .resource-card-12x6 {
- width: 622px;
- height: 284px;
-}
-.resource-flow-layout.col-16 .resource-card-12x12 {
- width: 622px;
- height: 588px;
-}
-.resource-flow-layout.col-16 .resource-card-12x18 {
- width: 622px;
- height: 892px;
-}
-.resource-flow-layout.col-16 .resource-card-15x6 {
- width: 781px;
- height: 284px;
-}
-.resource-flow-layout.col-16 .resource-card-15x12 {
- width: 781px;
- height: 588px;
-}
-.resource-flow-layout.col-16 .resource-card-15x18 {
- width: 781px;
- height: 892px;
-}
-.resource-flow-layout.col-16 .resource-card-18x6 {
- width: 940px;
- height: 284px;
-}
-.resource-flow-layout.col-16 .resource-card-18x12 {
- width: 940px;
- height: 420px;
-}
-.resource-flow-layout.col-16 .resource-card-18x18 {
- width: 940px;
- height: 892px;
-}
-.resource-flow-layout.col-16 .resource-card-3x2 {
- width: 145px;
- height: 95px;
-}
-.resource-flow-layout.col-16 .resource-card-3x2x3 {
- width: 145px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-16 .resource-card-3x3 {
- width: 145px;
- height: 142px;
-}
-.resource-flow-layout.col-16 .resource-card-3x3x2 {
- width: 145px;
- height: 138px;
- margin-bottom: 8px;
-}
-.resource-flow-layout.col-16 .resource-card-6x2 {
- width: 304px;
- height: 95px;
-}
-.resource-flow-layout.col-16 .resource-card-6x2x3 {
- width: 304px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-16 .resource-card-6x3 {
- width: 304px;
- height: 142px;
-}
-.resource-flow-layout.col-16 .resource-card-6x3x2 {
- width: 304px;
- height: 138px;
- margin-bottom: 8px;
-}
-.resource-flow-layout.col-16 .resource-card-9x2 {
- width: 463px;
- height: 95px;
-}
-.resource-flow-layout.col-16 .resource-card-9x2x3 {
- width: 463px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-16 .resource-card-9x3 {
- width: 463px;
- height: 142px;
-}
-.resource-flow-layout.col-16 .resource-card-9x3x2 {
- width: 463px;
- height: 138px;
- margin-bottom: 8px;
-}
-.resource-flow-layout.col-16 .resource-card-12x2 {
- width: 622px;
- height: 95px;
-}
-.resource-flow-layout.col-16 .resource-card-12x2x3 {
- width: 622px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-16 .resource-card-12x3 {
- width: 622px;
- height: 142px;
-}
-.resource-flow-layout.col-16 .resource-card-12x3x2 {
- width: 622px;
- height: 138px;
- margin-bottom: 8px;
-}
-.resource-flow-layout.col-16 .resource-card-15x2 {
- width: 781px;
- height: 95px;
-}
-.resource-flow-layout.col-16 .resource-card-15x2x3 {
- width: 781px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-16 .resource-card-15x3 {
- width: 781px;
- height: 142px;
-}
-.resource-flow-layout.col-16 .resource-card-15x3x2 {
- width: 781px;
- height: 138px;
- margin-bottom: 8px;
-}
-.resource-flow-layout.col-16 .resource-card-18x2 {
- width: 940px;
- height: 95px;
-}
-.resource-flow-layout.col-16 .resource-card-18x2x3 {
- width: 940px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-16 .resource-card-18x3 {
- width: 940px;
- height: 142px;
-}
-.resource-flow-layout.col-16 .resource-card-18x3x2 {
- width: 940px;
- height: 138px;
- margin-bottom: 8px;
-}
-
-/* Generate the flow layout styles for a 3-column 16-col span */
-.resource-flow-layout.col-12 {
- margin: 0 -14px 0 0;
- width: 714px;
-}
-
-.resource-flow-layout.col-12 .resource-card, .resource-flow-layout.col-12 .resource-card-stack {
- margin: 0 14px 20px 0;
-}
-.resource-flow-layout.col-12 .resource-card-row-stack-last {
- margin-bottom: 0px !important;
-}
-.resource-flow-layout.col-12 .resource-card-col-stack-last {
- margin-bottom: 0px !important;
-}
-.resource-flow-layout.col-12 .resource-card-3x6 {
- width: 105px;
- height: 284px;
-}
-.resource-flow-layout.col-12 .resource-card-3x12 {
- width: 105px;
- height: 588px;
-}
-.resource-flow-layout.col-12 .resource-card-3x18 {
- width: 105px;
- height: 892px;
-}
-.resource-flow-layout.col-12 .resource-card-6x6 {
- width: 224px;
- height: 284px;
-}
-.resource-flow-layout.col-12 .resource-card-6x12 {
- width: 224px;
- height: 588px;
-}
-.resource-flow-layout.col-12 .resource-card-6x18 {
- width: 224px;
- height: 892px;
-}
-.resource-flow-layout.col-12 .resource-card-9x6 {
- width: 343px;
- height: 284px;
-}
-.resource-flow-layout.col-12 .resource-card-9x12 {
- width: 343px;
- height: 588px;
-}
-.resource-flow-layout.col-12 .resource-card-9x18 {
- width: 343px;
- height: 892px;
-}
-.resource-flow-layout.col-12 .resource-card-12x6 {
- width: 462px;
- height: 284px;
-}
-.resource-flow-layout.col-12 .resource-card-12x12 {
- width: 462px;
- height: 588px;
-}
-.resource-flow-layout.col-12 .resource-card-12x18 {
- width: 462px;
- height: 892px;
-}
-.resource-flow-layout.col-12 .resource-card-15x6 {
- width: 581px;
- height: 284px;
-}
-.resource-flow-layout.col-12 .resource-card-15x12 {
- width: 581px;
- height: 588px;
-}
-.resource-flow-layout.col-12 .resource-card-15x18 {
- width: 581px;
- height: 892px;
-}
-.resource-flow-layout.col-12 .resource-card-18x6 {
- width: 700px;
- height: 284px;
-}
-.resource-flow-layout.col-12 .resource-card-18x12 {
- width: 700px;
- height: 420px;
-}
-.resource-flow-layout.col-12 .resource-card-18x18 {
- width: 700px;
- height: 892px;
-}
-.resource-flow-layout.col-12 .resource-card-3x2 {
- width: 105px;
- height: 95px;
-}
-.resource-flow-layout.col-12 .resource-card-3x2x3 {
- width: 105px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-12 .resource-card-3x3 {
- width: 105px;
- height: 142px;
-}
-.resource-flow-layout.col-12 .resource-card-3x3x2 {
- width: 105px;
- height: 138px;
- margin-bottom: 8px;
-}
-.resource-flow-layout.col-12 .resource-card-6x2 {
- width: 224px;
- height: 95px;
-}
-.resource-flow-layout.col-12 .resource-card-6x2x3 {
- width: 224px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-12 .resource-card-6x3 {
- width: 224px;
- height: 142px;
-}
-.resource-flow-layout.col-12 .resource-card-6x3x2 {
- width: 224px;
- height: 138px;
- margin-bottom: 8px;
-}
-.resource-flow-layout.col-12 .resource-card-9x2 {
- width: 343px;
- height: 95px;
-}
-.resource-flow-layout.col-12 .resource-card-9x2x3 {
- width: 343px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-12 .resource-card-9x3 {
- width: 343px;
- height: 142px;
-}
-.resource-flow-layout.col-12 .resource-card-9x3x2 {
- width: 343px;
- height: 138px;
- margin-bottom: 8px;
-}
-.resource-flow-layout.col-12 .resource-card-12x2 {
- width: 462px;
- height: 95px;
-}
-.resource-flow-layout.col-12 .resource-card-12x2x3 {
- width: 462px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-12 .resource-card-12x3 {
- width: 462px;
- height: 142px;
-}
-.resource-flow-layout.col-12 .resource-card-12x3x2 {
- width: 462px;
- height: 138px;
- margin-bottom: 8px;
-}
-.resource-flow-layout.col-12 .resource-card-15x2 {
- width: 581px;
- height: 95px;
-}
-.resource-flow-layout.col-12 .resource-card-15x2x3 {
- width: 581px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-12 .resource-card-15x3 {
- width: 581px;
- height: 142px;
-}
-.resource-flow-layout.col-12 .resource-card-15x3x2 {
- width: 581px;
- height: 138px;
- margin-bottom: 8px;
-}
-.resource-flow-layout.col-12 .resource-card-18x2 {
- width: 700px;
- height: 95px;
-}
-.resource-flow-layout.col-12 .resource-card-18x2x3 {
- width: 700px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-12 .resource-card-18x3 {
- width: 700px;
- height: 142px;
-}
-.resource-flow-layout.col-12 .resource-card-18x3x2 {
- width: 700px;
- height: 138px;
- margin-bottom: 8px;
-}
-
-/* Generate the flow layout styles for a 3-column 13-col span */
-
-.resource-flow-layout.col-13 {
- margin: 0 -14px 0 0;
- width: 774px;
-}
-.resource-flow-layout.col-13 .resource-card, .resource-flow-layout.col-13 .resource-card-stack {
- margin: 0 14px 20px 0;
-}
-.resource-flow-layout.col-13 .resource-card-row-stack-last {
- margin-bottom: 0px !important;
-}
-.resource-flow-layout.col-13 .resource-card-col-stack-last {
- margin-bottom: 0px !important;
-}
-.resource-flow-layout.col-13 .resource-card-3x6 {
- width: 115px;
- height: 284px;
-}
-.resource-flow-layout.col-13 .resource-card-3x12 {
- width: 115px;
- height: 588px;
-}
-.resource-flow-layout.col-13 .resource-card-3x18 {
- width: 115px;
- height: 892px;
-}
-.resource-flow-layout.col-13 .resource-card-6x6 {
- width: 244px;
- height: 284px;
-}
-.resource-flow-layout.col-13 .resource-card-6x12 {
- width: 244px;
- height: 588px;
-}
-.resource-flow-layout.col-13 .resource-card-6x18 {
- width: 244px;
- height: 892px;
-}
-.resource-flow-layout.col-13 .resource-card-9x6 {
- width: 373px;
- height: 284px;
-}
-.resource-flow-layout.col-13 .resource-card-9x12 {
- width: 373px;
- height: 588px;
-}
-.resource-flow-layout.col-13 .resource-card-9x18 {
- width: 373px;
- height: 892px;
-}
-.resource-flow-layout.col-13 .resource-card-12x6 {
- width: 502px;
- height: 284px;
-}
-.resource-flow-layout.col-13 .resource-card-12x12 {
- width: 502px;
- height: 588px;
-}
-.resource-flow-layout.col-13 .resource-card-12x18 {
- width: 502px;
- height: 892px;
-}
-.resource-flow-layout.col-13 .resource-card-15x6 {
- width: 631px;
- height: 284px;
-}
-.resource-flow-layout.col-13 .resource-card-15x12 {
- width: 631px;
- height: 588px;
-}
-.resource-flow-layout.col-13 .resource-card-15x18 {
- width: 631px;
- height: 892px;
-}
-.resource-flow-layout.col-13 .resource-card-18x6 {
- width: 760px;
- height: 284px;
-}
-.resource-flow-layout.col-13 .resource-card-18x12 {
- width: 760px;
- height: 420px;
-}
-.resource-flow-layout.col-13 .resource-card-18x18 {
- width: 760px;
- height: 892px;
-}
-.resource-flow-layout.col-13 .resource-card-3x2 {
- width: 115px;
- height: 95px;
-}
-.resource-flow-layout.col-13 .resource-card-3x2x3 {
- width: 115px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-13 .resource-card-3x3 {
- width: 115px;
- height: 142px;
-}
-.resource-flow-layout.col-13 .resource-card-3x3x2 {
- width: 115px;
- height: 138px;
- margin-bottom: 8px;
-}
-.resource-flow-layout.col-13 .resource-card-6x2 {
- width: 244px;
- height: 95px;
-}
-.resource-flow-layout.col-13 .resource-card-6x2x3 {
- width: 244px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-13 .resource-card-6x3 {
- width: 244px;
- height: 142px;
-}
-.resource-flow-layout.col-13 .resource-card-6x3x2 {
- width: 244px;
- height: 138px;
- margin-bottom: 8px;
-}
-.resource-flow-layout.col-13 .resource-card-9x2 {
- width: 373px;
- height: 95px;
-}
-.resource-flow-layout.col-13 .resource-card-9x2x3 {
- width: 373px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-13 .resource-card-9x3 {
- width: 373px;
- height: 142px;
-}
-.resource-flow-layout.col-13 .resource-card-9x3x2 {
- width: 373px;
- height: 138px;
- margin-bottom: 8px;
-}
-.resource-flow-layout.col-13 .resource-card-12x2 {
- width: 502px;
- height: 95px;
-}
-.resource-flow-layout.col-13 .resource-card-12x2x3 {
- width: 502px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-13 .resource-card-12x3 {
- width: 502px;
- height: 142px;
-}
-.resource-flow-layout.col-13 .resource-card-12x3x2 {
- width: 502px;
- height: 138px;
- margin-bottom: 8px;
-}
-.resource-flow-layout.col-13 .resource-card-15x2 {
- width: 631px;
- height: 95px;
-}
-.resource-flow-layout.col-13 .resource-card-15x2x3 {
- width: 631px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-13 .resource-card-15x3 {
- width: 631px;
- height: 142px;
-}
-.resource-flow-layout.col-13 .resource-card-15x3x2 {
- width: 631px;
- height: 138px;
- margin-bottom: 8px;
-}
-.resource-flow-layout.col-13 .resource-card-18x2 {
- width: 760px;
- height: 95px;
-}
-.resource-flow-layout.col-13 .resource-card-18x2x3 {
- width: 760px;
- height: 90px;
- margin-bottom: 7px;
-}
-.resource-flow-layout.col-13 .resource-card-18x3 {
- width: 760px;
- height: 142px;
-}
-.resource-flow-layout.col-13 .resource-card-18x3x2 {
- width: 760px;
- height: 138px;
- margin-bottom: 8px;
-}
-
-/*
- The following are styles for cards in the flowlayout above, styled by the number of rows they span
-*/
-/* Single row items, might be simpler to just apply a class */
-.resource-card-3x6 > .card-bg, .resource-card-6x6 > .card-bg, .resource-card-9x6 > .card-bg, .resource-card-12x6 > .card-bg, .resource-card-15x6 > .card-bg, .resource-card-18x6 > .card-bg {
- height: 192px;
-}
-.resource-card-3x6 > .card-info, .resource-card-6x6 > .card-info, .resource-card-9x6 > .card-info, .resource-card-12x6 > .card-info, .resource-card-15x6 > .card-info, .resource-card-18x6 > .card-info {
- padding: 4px 12px 6px 12px;
- top: 192px;
-}
-.resource-card-3x6 > .card-info .section, .resource-card-6x6 > .card-info .section, .resource-card-9x6 > .card-info .section, .resource-card-12x6 > .card-info .section, .resource-card-15x6 > .card-info .section, .resource-card-18x6 > .card-info .section {
- font-size: 12px;
- margin-bottom: 1px;
-}
-.resource-card-3x6 > .card-info .title, .resource-card-6x6 > .card-info .title, .resource-card-9x6 > .card-info .title, .resource-card-12x6 > .card-info .title, .resource-card-15x6 > .card-info .title, .resource-card-18x6 > .card-info .title {
- font-size: 16px;
- margin-bottom: -2px;
-}
-.resource-card-3x6 > .card-info .description, .resource-card-6x6 > .card-info .description, .resource-card-9x6 > .card-info .description, .resource-card-12x6 > .card-info .description, .resource-card-15x6 > .card-info .description, .resource-card-18x6 > .card-info .description {
- font-size: 13px;
- line-height: 15px;
-}
-.resource-card-3x6 > .card-info .description .text, .resource-card-6x6 > .card-info .description .text, .resource-card-9x6 > .card-info .description .text, .resource-card-12x6 > .card-info .description .text, .resource-card-15x6 > .card-info .description .text, .resource-card-18x6 > .card-info .description .text {
- height: 30px;
-}
-
-/* Double row items */
-.resource-card-3x12 > .card-bg, .resource-card-6x12 > .card-bg, .resource-card-9x12 > .card-bg, .resource-card-12x12 > .card-bg, .resource-card-15x12 > .card-bg, .resource-card-18x12 > .card-bg {
- height: 320px;
-}
-.resource-card-3x12 > .card-info, .resource-card-6x12 > .card-info, .resource-card-9x12 > .card-info, .resource-card-12x12 > .card-info, .resource-card-15x12 > .card-info, .resource-card-18x12 > .card-info {
- padding: 4px 12px 6px 12px;
- top: 320px;
-}
-.resource-card-3x12 > .card-info .section, .resource-card-6x12 > .card-info .section, .resource-card-9x12 > .card-info .section, .resource-card-12x12 > .card-info .section, .resource-card-15x12 > .card-info .section, .resource-card-18x12 > .card-info .section {
- font-size: 12px;
- margin-bottom: 1px;
-}
-.resource-card-3x12 > .card-info .title, .resource-card-6x12 > .card-info .title, .resource-card-9x12 > .card-info .title, .resource-card-12x12 > .card-info .title, .resource-card-15x12 > .card-info .title, .resource-card-18x12 > .card-info .title {
- font-size: 16px;
- margin-bottom: -2px;
- white-space: normal;
-}
-.resource-card-3x12 > .card-info .description, .resource-card-6x12 > .card-info .description, .resource-card-9x12 > .card-info .description, .resource-card-12x12 > .card-info .description, .resource-card-15x12 > .card-info .description, .resource-card-18x12 > .card-info .description {
- font-size: 13px;
- line-height: 15px;
-}
-
-/* 1/3 row items */
-.resource-card-3x2 > .card-bg, .resource-card-6x2 > .card-bg, .resource-card-9x2 > .card-bg, .resource-card-12x2 > .card-bg, .resource-card-15x2 > .card-bg, .resource-card-18x2 > .card-bg {
- left: 0;
- top: 0;
- width: 90px;
- height: 100%;
- position: absolute;
- display: block;
-}
-.resource-card-3x2 > .card-info, .resource-card-6x2 > .card-info, .resource-card-9x2 > .card-info, .resource-card-12x2 > .card-info, .resource-card-15x2 > .card-info, .resource-card-18x2 > .card-info {
- left: 90px;
- padding: 4px 12px 4px 12px;
- height: 80px;
- overflow: hidden;
-}
-.resource-card-3x2 > .card-info .section, .resource-card-6x2 > .card-info .section, .resource-card-6x3 > .card-info .section, .resource-card-9x2 > .card-info .section, .resource-card-12x2 > .card-info .section, .resource-card-15x2 > .card-info .section, .resource-card-18x2 > .card-info .section {
- font-size: 12px;
- margin-bottom: 1px;
- /* display: none; */
-}
-.resource-card-3x2 > .card-info .title, .resource-card-6x2 > .card-info .title, .resource-card-9x2 > .card-info .title, .resource-card-12x2 > .card-info .title, .resource-card-15x2 > .card-info .title, .resource-card-18x2 > .card-info .title {
- font-size: 16px;
- margin-bottom: -2px;
- white-space: normal;
- overflow: visible;
- text-overflow: ellipsis;
-}
-.resource-card-3x2 > .card-info .title:after, .resource-card-6x2 > .card-info .title:after, .resource-card-9x2 > .card-info .title:after, .resource-card-12x2 > .card-info .title:after, .resource-card-15x2 > .card-info .title:after, .resource-card-18x2 > .card-info .title:after {
- /* content: url(../images/link-out.png); */
- display: block;
-}
-.resource-card-3x2 > .card-info .description, .resource-card-6x2 > .card-info .description, .resource-card-9x2 > .card-info .description, .resource-card-12x2 > .card-info .description, .resource-card-15x2 > .card-info .description, .resource-card-18x2 > .card-info .description {
- display: none;
-}
-
-
-/* Override to show the description instead of the content section */
-.no-section .resource-card-3x2 > .card-info .section,
-.no-section .resource-card-6x2 > .card-info .section {
- display: none;
-}
-.no-section .resource-card-3x2 > .card-info .description,
-.no-section .resource-card-6x2 > .card-info .description {
- display: block;
-}
-
-/* 1/2 row items */
-.resource-card-3x3 > .card-bg, .resource-card-6x3 > .card-bg, .resource-card-9x3 > .card-bg, .resource-card-12x3 > .card-bg, .resource-card-15x3 > .card-bg, .resource-card-18x3 > .card-bg {
- left: 0;
- top: 0;
- width: 90px;
- height: 100%;
- position: absolute;
- display: block;
-}
-.resource-card-3x3 > .card-info, .resource-card-6x3 > .card-info, .resource-card-9x3 > .card-info, .resource-card-12x3 > .card-info, .resource-card-15x3 > .card-info, .resource-card-18x3 > .card-info {
- left: 90px;
- padding: 4px 12px 0px 12px;
-}
-.resource-card-3x3 > .card-info .section, .resource-card-6x3 > .card-info .section, .resource-card-9x3 > .card-info .section, .resource-card-12x3 > .card-info .section, .resource-card-15x3 > .card-info .section, .resource-card-18x3 > .card-info .section {
- font-size: 12px;
- margin-bottom: 1px;
- display: none;
-}
-.resource-card-3x3 > .card-info .title, .resource-card-6x3 > .card-info .title, .resource-card-9x3 > .card-info .title, .resource-card-12x3 > .card-info .title, .resource-card-15x3 > .card-info .title, .resource-card-18x3 > .card-info .title {
- font-size: 16px;
- margin-bottom: -2px;
- white-space: normal;
- overflow: visible;
-}
-.resource-card-3x3 > .card-info .description .text, .resource-card-6x3 > .card-info .description .text, .resource-card-9x3 > .card-info .description .text, .resource-card-12x3 > .card-info .description .text, .resource-card-15x3 > .card-info .description .text, .resource-card-18x3 > .card-info .description .text {
- font-size: 12px;
- line-height: 15px;
- padding-right: 0px !important;
- height: 80px;
-}
-.resource-card-3x3 > .card-info .description .util, .resource-card-6x3 > .card-info .description .util, .resource-card-9x3 > .card-info .description .util, .resource-card-12x3 > .card-info .description .util, .resource-card-15x3 > .card-info .description .util, .resource-card-18x3 > .card-info .description .util {
- display: none;
-}
-/* placement of plusone */
-.resource-card-6x12 > .card-info .description .util, .resource-card-9x12 > .card-info .description .util, .resource-card-12x12 > .card-info .description .util, .resource-card-15x12 > .card-info .description .util {
- bottom:2px;
-}
-.resource-card-18x12 > .card-info .description .util {
- bottom:2px;
-}
-/* Overrides for col-16 6x6 cards linking to local content on landing pages.
- Suppresses "section" and puts the title above a hairline rule. */
-.landing .card-info .section, .resource-flow-layout.col-16.landing .resource-card-9x6 .card-info .section {
- display:none;
-}
-.landing .card-info .title {
- color: #898989;
- font-size: 17px;
- line-height: 24px;
- margin-bottom: 6px;
- border-bottom: 1px solid #959595;
- padding-bottom: 0px;
-}
-.landing .card-info .description {
- font-size: 13px;
- line-height: 15px;
-}
-.landing .card-info .description .text {
-height:30px;
-}
-.landing .resource-card-6x6 > .card-info .description .util, .landing .resource-card-9x6 > .card-info .description .util {
- bottom:2px;
-}
-/*
- Generate a resource stack layout for a 3 column widget spanning 16 grid cols
-*/
-.resource-stack-layout.col-16 {
- margin: 0 -14px 0 0;
- width: 954px;
-}
-.resource-stack-layout.col-16 .resource-card-stack {
- margin: 0 14px 0 0;
- width: 304px;
-}
-
-/* Example of card menu tinting */
-.resource-widget[data-section=distribute\/tools] .section-card-menu
-.card-bg:after {
- background: rgba(126, 55, 148, 0.4) !important;
-}
-.resource-widget[data-section=distribute\/tools] .section-card-menu
-.card-section-icon .icon {
- background-color: #7e3794 !important;
-}
-.resource-widget[data-section=distribute\/tools] .section-card-menu
-.card-info ul li {
- border-top-color: #7e3794 !important;
-}
-
-/* tinting for stacks */
-
-div.jd-descr > .resource-widget[data-section=distribute\/tools]
-.section-card-menu .card-info ul li {
- border-top-color: #7e3794 !important;
-}
-
-
-
-/**
- * UTILITIES
- */
-
-
-.border-box {
- box-sizing: border-box;
-}
-
-.vertical-center-outer {
- display: table;
- height: 100%;
- width: 100%;
-}
-
-.vertical-center-inner {
- display: table-cell;
- vertical-align: middle;
-}
-
-/**
- * TYPE STYLES
- */
-
-.landing-h1 {
- font-weight: 100;
- font-size: 60px;
- line-height: 78px;
- text-align: center;
- letter-spacing: -1px;
-}
-
-.landing-pre-h1 {
- font-weight: 400;
- font-size: 28px;
- color: #93B73F;
- line-height: 36px;
- text-align: center;
- letter-spacing: -1px;
- text-transform: uppercase;
-
-}
-
-.landing-h1.hero {
- text-align: left;
-}
-
-.landing-h2 {
- font-weight: 300;
- font-size: 42px;
- line-height: 64px;
- text-align: center;
-}
-
-.landing-subhead {
- color: #999999;
- font-size: 20px;
- line-height: 28px;
- font-weight:300;
- text-align: center;
-}
-.landing-subhead.hero {
- text-align: left;
- color: white;
-}
-
-.landing-hero-description {
- text-align: left;
- margin: 1em 0;
-}
-
-.landing-hero-description p {
- font-weight: 300;
- margin: 0;
- font-size: 18px;
- line-height: 24px;
-}
-
-.landing-body .landing-small {
- font-size: 14px;
- line-height: 19px;
-}
-
-.landing-body.landing-align-center {
- text-align: center;
-}
-
-.landing-align-left {
- text-align: left;
-}
-
-/**
- * LAYOUT
- */
-
-#body-content,
-.fullpage,
-#jd-content,
-.jd-descr,
-.landing-body-content {
- height: 100%;
-}
-
-.landing-section {
- padding: 80px 10px 80px;
- width: 100%;
- margin-left: -10px;
- text-rendering: optimizeLegibility;
-}
-
-#extending-android-to-wearables {
- padding-top: 30px;
-}
-
-.landing-short-section {
- padding: 40px 10px 28px;
-}
-
-.landing-gray-background {
- background-color: #e9e9e9;
-}
-
-.landing-white-background {
- background-color: white;
-}
-
-.landing-red-background {
- color: white;
- background-color: hsl(8, 70%, 54%);
-}
-
-.landing-subhead-red {
- color: hsl(8, 71%, 84%);
- text-align: left;
-}
-
-.landing-subhead-red p {
- margin-top: 20px;
-}
-
-.landing-hero-container {
- height: 100%;
-}
-
-
-.preview-hero {
- height: calc(100% - 110px);
- min-height: 504px;
- margin-top: -5px;
- padding-top: 0;
- padding-bottom: 0;
- background-image: url(../../preview/images/hero.jpg);
- background-size: cover;
- background-position: right center;
- color: white;
- position: relative;
- overflow: hidden;
-}
-
-.wear-hero {
- height: calc(100% - 110px);
- min-height: 504px;
- margin-top: -5px;
- padding-top: 0;
- padding-bottom: 0;
- background-image: url(../../wear/images/hero.jpg);
- background-size: cover;
- background-position: top center;
- color: white;
- position: relative;
- overflow: hidden;
-}
-
-.tv-hero {
- height: calc(100% - 110px);
- min-height: 504px;
- margin-top: -5px;
- padding-top: 0;
- padding-bottom: 0;
- background-image: url(../../tv/images/hero.jpg);
- background-size: cover;
- background-position: right center;
- color: white;
- position: relative;
- overflow: hidden;
-}
-
-.auto-hero {
- height: calc(100% - 110px);
- min-height: 504px;
- margin-top: -5px;
- padding-top: 0;
- padding-bottom: 0;
- background-image: url(../../auto/images/hero.jpg);
- background-size: cover;
- background-position: right center;
- color: white;
- position: relative;
- overflow: hidden;
-}
-
-.landing-hero-scrim {
- background: black;
- opacity: .2;
- position: absolute;
- width: 100%;
- height: 100%;
- margin-left: -10px;
-}
-
-.landing-hero-wrap {
- margin: 0 auto;
- width: 940px;
- clear: both;
- height: 100%;
- position: relative;
-}
-
-.landing-section-header {
- margin-bottom: 40px;
-}
-
-.landing-hero-wrap .landing-section-header {
- margin-bottom: 16px;
-}
-
-.landing-body {
- font-size: 18px;
- line-height: 24px;
-}
-
-.landing-button {
- white-space: nowrap;
- display: inline-block;
- padding: 16px 32px;
- font-size: 18px;
- font-weight: 500;
- line-height: 24px;
- cursor: pointer;
- color: white;
- -webkit-user-select: none;
- -moz-user-select: none;
- -o-user-select: none;
- user-select: none;
- -webkit-transition: .2s background-color ease-in-out;
- -moz-transition: .2s background-color ease-in-out;
- -o-transition: .2s background-color ease-in-out;
- transition: .2s background-color ease-in-out;
-}
-
-.landing-primary {
- background-color: hsl(8, 70%, 44%);
- color: #f8f8f8;
-}
-
-.landing-button.landing-primary:hover {
- background-color: hsl(8, 70%, 36%);
-}
-
-.landing-button.landing-primary:active {
- background-color: hsl(8, 70%, 30%);
-}
-
-.landing-button.landing-secondary {
- background-color: #2faddb;
-}
-
-.landing-button.landing-secondary:hover {
- background-color: #09c;
-}
-
-.landing-button.landing-secondary:active {
- background-color: #3990ab;
-}
-
-a.landing-button,
-a.landing-button:hover,
-a.landing-button:visited {
- color: white !important;
-}
-
-.landing-video-link {
- white-space: nowrap;
- display: inline-block;
- padding: 16px 32px 16px 82px;
- font-size: 18px;
- font-weight: 400;
- line-height: 24px;
- cursor: pointer;
- color: hsla(0, 0%, 100%, .8);
- -webkit-user-select: none;
- -moz-user-select: none;
- -o-user-select: none;
- user-select: none;
- -webkit-transition: .2s color ease-in-out;
- -moz-transition: .2s color ease-in-out;
- -o-transition: .2s color ease-in-out;
- transition: .2s color ease-in-out;
-}
-
-.landing-video-link:before {
- height: 64px;
- width: 64px;
- display: inline-block;
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAFuklEQVR42u2dXWgcVRSAV9LWtBBTTZVWUhNqEQtq1QeroDRKFRFsROqTYPuo+JCiIoJKFC0USqlUfCiowRcfrBgVUUElefAPkW5T8aeaGn9aRbFsjP0x2cx8PuRMvFxmdjeb2Z17Z8+B85DsZPbO+eaec3/OPSkABdXsVI2gABSAqgJQAKoKQAGoKgAFoKoAFICqAlAAqgpAAai6DqDRAiwDeoFtwB7gPaAInABKwKToCWAMeB/YDdwJrAWWNLh9+QMAXABsBQ4A3wFTwAxQBmaBAAhjNJDPy3L938BXwAvArUCHAkh+kCXAVcA+YBw4bRg7MngtkgTlDPA98CywHmhTAP8/xCbgVeAvMZZpwDQllN7xB/AysKGlAQAXAvuBkzW85UVgCBgENlfQQbmuWAXELPAnsAvoaikAQBtwh/j3coLhS2LIfqCzzu/plL8fkvvFgZiR4L2lHrfkHQBgpQTFUwmGnwC212v0KjC2y/3jQPwDPA+05xYAcBHwubx1YZzhC02QBBBRbxgBzssdAOBy4JgRZE0ZTPuNr7FHDCbEhqNAd24AAN0yUbID7QSwsZChABut3hANXY8Bq70HIMb/Ocb4w81+66v0hmGrN0QQ1ngLQJYRvpWHMWWo4KDIaMnuCcVKgdlZAGL8t2J8vpPGrwChDLyWBMFlAA8D0z4ZvwKEs8D93gCQEc9Jy/jFgkdizaRDGUSs8wXAu1bQLQE9ngHosWbPAXDQeQAypT9rBd3+gociyxi2K9riLABZUj5iuZ6RgsciM2OzFxw2A7JrAO6VwGtKTwpG+Anoy9AVmb3gDHCPcwCAFcChRox6jPu9CazMeFQUAKNRL3AJwE2yopjq228BQPZ/d2bcCyaBTa4BeNGa8Q6naIA4GQWubiKEYWvBbp8zAGQt5VfL/fQ3GEAkTzXDLVkjokA2k5a7AuA2GaLNj/tTfvhq0pQgbcwLQtlQusYVALtlzSR191MjADNI9zbJDZWBR10BMGr5/4GMADQ0SAMDlht62xUAxy0AmzMEEMnhtIO0ZF2YAH5wITd0hQw/5wE04M1bjDyXZpC2hqMlYGnWAHqBf40APOEYgChI35VSWyasWfGqrAH0WVkOIw4CSC1IG2tDoSy7XJE1gPs8ArDoIG0BmJGk30wBDHgGYFFBOgbAtqwB7GxxAHerC8rOBU0Dt2gQzjYIb8gawDor+6HVhqFdrkzEwhabiAVOTMSkUb+06FLEUVfWgj5q0cW4g64AeNo66ZLlcnTDNmesBN4y8KArAG6QU42ttCEzBVzpCoAO4EfLDeV5SzIEvgHaXdqUP2BlQud1Ux55zj2uZUX02cPRnKalRLmu17qYmPWF5YbymJgVAh8Ay5wCII3ZEZOYm6fURGT2u9X43Mnk3CDHybmfmRVYXExPv9nKEcpLejqSC3SjdY2TBzTesHqB7wc0onTEV2KucxLApXKkJy9HlAI5anuJFwCkYQ/EuCJfD+mdBnYkXOssgHY53un7MdVZ4CVgqVcADAhjMafkfTioHc14P04yvvMApIEXy5F/+7S8y6UKolPyR4BVVf7Wi2IdawwIPhTrmAW+rmZ8bwBIQ7vloXwoVzNWS6UUrwAYy9YfOlqwKZDkgneA5Qu4l3cly84F9sqGhislywLmaozuYoGFXr0DII1ukxP1hxJ6QzR7HqLxRfumZaRzXZ3f4XXZyi7gCeB3kqsnzs+kSb9s5XHgMeD8RTxDLgq3rmeuYuFvNYCoR8wqujNi+L3UWBcu9wAMt3QZ8LiMlk5RuU50teq6kcEDgTolveIRYHUQBOek1O5cFu/ukLz7/ZJgNSm+OirebWpgaPS7slxfAr4EngGuX8jopqUBxGzyrAVuB54EXgc+lV4yLhO8cfn5E+ZqUD8kBu9sQvv0Hzj4rmoEBaAAVBWAAlBVAApAVQEoAFUFoABUFYACUFUACkC1CfofXVRJocowZVYAAAAASUVORK5CYII=);
- background-size: contain;
- position: absolute;
- content: "";
- opacity: .7;
- margin-top: -19px;
- margin-left: -64px;
- -webkit-transition: .2s opacity ease-in-out;
- -moz-transition: .2s opacity ease-in-out;
- -o-transition: .2s opacity ease-in-out;
- transition: .2s opacity ease-in-out;
-}
-
-.landing-video-link:hover {
- color: hsla(0, 0%, 100%, 1);
-}
-
-.landing-video-link:hover:before {
- opacity: 1;
-}
-
-.landing-social-image {
- float: left;
- margin-right: 14px;
- height: 64px;
- width: 64px;
-}
-
-.landing-social-copy {
- padding-left: 78px;
-}
-
-.landing-scroll-down-affordance {
- position: absolute;
- bottom: 0;
- width: 100%;
- text-align: center;
- z-index: 10;
-}
-
-.landing-down-arrow {
- padding: 24px;
- display: inline-block;
- opacity: .5;
- -webkit-transition: .2s opacity ease-in-out;
- -moz-transition: .2s opacity ease-in-out;
- -o-transition: .2s opacity ease-in-out;
- transition: .2s opacity ease-in-out;
-
- -webkit-animation-name: pulse-opacity;
- -webkit-animation-duration: 4s;
-}
-
-.landing-down-arrow:hover {
- opacity: 1;
-}
-
-.landing-down-arrow img {
- height: 28px;
- width: 28px;
- margin: 0 auto;
- display: block;
-}
-
-.landing-divider {
- display: inline-block;
- height: 2px;
- background-color: white;
- position: relative;
- margin: 10px 0;
-}
-
-/* 3 CLOLUMN LAYOUT */
-
-.landing-breakout {
- margin-top: 40px;
- margin-bottom: 40px;
-}
-
-.landing-breakout img {
- margin-bottom: 20px;
-}
-
-.landing-partners img {
- margin-bottom: 20px;
-}
-
-.landing-breakout p {
- padding: 0 23px;
-}
-
-.landing-breakout.landing-partners img {
- margin-bottom: 20px;
-}
-
-.col-3-wide {
- display: inline;
- float: left;
- margin-left: 10px;
- margin-right: 10px;
-}
-
-.col-3-wide {
- width: 302px;
-}
-
-/**
- * ANIMATION
- */
-
-@-webkit-keyframes pulse-opacity {
- 0% {
- opacity: .5;
- }
- 20% {
- opacity: .5;
- }
- 40% {
- opacity: 1;
- }
- 60% {
- opacity: .5;
- }
- 80% {
- opacity: 1;
- }
- 100% {
- opacity: .5;
- }
-}
-
-
-
-/**
- * VIDEO
- */
-
-#video-container {
- display:none;
- position:fixed;
- top:0;
- left:0;
- width:100%;
- height:100%;
- background-color:rgba(0,0,0,0.8);
- z-index:9999;
-}
-
-#video-frame {
- width:940px;
- height:100%;
- margin:72px auto;
- display:none;
- position:relative;
-}
-
-.video-close {
- cursor: pointer;
- position: absolute;
- right: -49px;
- top: -49px;
- pointer-events: all;
-}
-
-#icon-video-close {
- background-image: url("../images/close-white.png");
- background-image: -webkit-image-set(url(../images/close-white.png) 1x, url(../images/close-white_2x.png) 2x);
- background-repeat: no-repeat;
- background-position: 0 0;
- background-size: 36px 36px;
- height: 36px;
- width: 36px;
- display:block;
-}
-
-#icon-video-close:hover {
- background-image: url("../images/close-grey.png");
- background-image: -webkit-image-set(url(../images/close-grey.png) 1x, url(../images/close-grey_2x.png) 2x);
-}
-
-/* Preload the hover images */
-a.video-shadowbox-button.white:after {
- display:none;
- content:url("../images/close-grey.png") url("../images/close-grey_2x.png");
-}
-
-a.video-shadowbox-button.white {
- background-image: url("../images/play-circle-white.png");
- background-image: -webkit-image-set(url(../images/play-circle-white.png) 1x, url(../images/play-circle-white_2x.png) 2x);
- background-size: 36px 36px;
- background-repeat: no-repeat;
- background-position: right;
- padding: 16px 42px 16px 8px;
- font-size: 18px;
- font-weight: 500;
- line-height: 24px;
- color: #fff;
- text-decoration:none;
-}
-
-a.video-shadowbox-button.white:hover {
- color:#bababa !important;
- background-image: url("../images/play-circle-grey.png");
- background-image: -webkit-image-set(url(../images/play-circle-grey.png) 1x, url(../images/play-circle-grey_2x.png) 2x);
-}
-
-/* Preload the hover images */
-a.video-shadowbox-button.white:after {
- display:none;
- content:url("../images/play-circle-grey.png") url("../images/play-circle-grey_2x.png");
-}
-
-/******************
-Styles for d.a.c/index:
-*******************/
-
-
-
-/* Generic full screen carousel styling to be used across pages. */
-.fullscreen-carousel {
- margin: 0 -10px;
- width: 100%;
- overflow: hidden;
- position: relative;
-}
-
-.fullscreen-carousel-content {
- width: 100%;
- height: 100%;
- position: relative;
- display: table; /* For vertical centering */
-}
-
-.fullscreen-carousel .vcenter {
- display: table-cell;
- vertical-align: middle;
- position: relative;
-}
-
-.fullscreen-carousel .vcenter > div {
- margin: 10px auto;
-}
-
-/* Styles for the full-bleed hero image type. */
-.fullscreen-carousel .hero, .fullscreen-carousel .hero h1 {
- color: #fff;
-}
-
-.fullscreen-carousel .hero h1 {
- font-weight: 300;
- font-size: 60px;
- line-height: 68px;
- letter-spacing: -1px;
- margin-top: 0;
-}
-
-.fullscreen-carousel .hero p {
- font-weight: 300;
- font-size: 18px;
- line-height: 24px;
- -webkit-font-smoothing: antialiased;
-}
-
-.fullscreen-carousel .hero .hero-bg {
- background-size: cover;
- width: 100%;
- height: 100%;
- position: absolute;
- left: 0px;
- top: 0px;
-}
-
-
-/* Full screen carousel styling for the resource flow layout type of content */
-.fullscreen-carousel .resource-flow-layout:after {
- height: 0; /* Dont know why this is set at 10 in default.css */
-}
-
-.fullscreen-carousel .resource-flow-layout {
- margin-bottom: 20px;
-}
-
-
-
-/* Generic Tab carousel styling to be used across multiple pages. */
-
-.tab-carousel .tab-nav {
- list-style: none;
- position: relative;
- text-align: center;
-}
-
-.tab-carousel .tab-nav li {
- display: inline-block;
- font-size: 22px;
- font-weight: 400;
- line-height: 50px;
- list-style: none;
- margin: 0;
- padding: 0 25px;
- position: relative;
-}
-
-.tab-carousel .tab-nav li a,
-.tab-carousel .tab-nav li a:hover {
- color: #333 !important;
- padding: 10px 10px 13px 10px;
- position: relative;
- z-index: 1000;
-}
-
-.tab-carousel .tab-nav li:after {
- background: #ddd;
- bottom: 0;
- content: '';
- height: 4px;
- left: 0;
- position: absolute;
- width: 100%;
- z-index: 0;
-}
-
-.tab-carousel .tab-nav .highlight {
- position: absolute;
- height: 4px;
- width: 100px;
- bottom: 0;
- background: #167c80;
-}
-
-.tab-carousel .tab-carousel-content {
- position: relative;
- overflow: hidden;
- white-space: nowrap;
-}
-
-.tab-carousel .tab-carousel-content [data-tab] {
- display: inline-block;
- white-space: normal;
-}
-
-
-
-/*
- Resource styling for the tab carousel. The tab carousel contains either
- a 3 column layout of resources or a single full-width resource. The
- latter has the 18x12 class applied to it and can be styled differently
- that way.
-*/
-
-.tab-carousel .resource .image {
- width: 100%;
- height: 250px;
- background-repeat: no-repeat;
- background-size: contain;
- background-position: 50% 50%;
-}
-
-.tab-carousel .resource .info .title {
- font-size: 18px;
- line-height: 24px;
-}
-
-.tab-carousel .resource .info .summary,
-.tab-carousel .resource .info .cta {
- line-height: 24px;
- font-size: 16px;
-}
-
-.tab-carousel .resource-card-18x12 {
- position: relative;
- padding-left: 450px;
- box-sizing: border-box;
- display: table-cell;
- vertical-align: middle;
-}
-
-.tab-carousel .resource-card-18x12 .image {
- position: absolute;
- width: 420px;
- height: 100%;
- left: 0;
- top: 0;
-}
-
-.tab-carousel .resource-card-18x12 .info {
- display: inline-block;
-}
-
-.tab-carousel .resource-card-18x12 .info .title {
- margin-bottom: 26px;
-}
-
-
-
-
-
-/*
- Styles for the entity link used in the actions bar and in the cta of
- the resources that appear in the tab carousel.
-*/
-.actions-bar a:after,
-.resource .cta:after {
- content: '›';
- font-weight: 400;
- font-size: 22px;
- left: 5px;
- line-height: 1;
- position: relative;
- top: 1px;
- transition: left 190ms ease-out;
-}
-
-.actions-bar a:hover:after,
-.resource .cta:hover:after {
- left: 10px;
-}
-
-
-
-
-/*
- Styles for the actions bar.
-*/
-.actions-bar {
- background: #9acd00;
- margin: 0 -10px;
- text-align: center;
-}
-
-.actions-bar .actions {
- padding: 30px 0 30px;
- text-align: justify;
- font-size: 0.1px;
- line-height: 0.1px;
- margin: 0 10px 0 0;
-}
-
-.actions-bar .actions:after {
- content: '';
- width: 100%;
- display: inline-block;
-}
-
-.actions-bar .actions > div {
- display: inline-block;
-}
-
-.actions-bar a {
- font-size: 21px;
- line-height: 27px;
- color: #fff;
- font-weight: 300;
- -webkit-font-smoothing: antialiased;
-}
-
-.actions-bar a:after {
- top: 0px;
- font-size: 22px;
-}
-
-.actions-bar a:hover {
- color: #fff !important;
-}
-
-
-
-
-
-/*
- Specific styles for new home page layout of the carousels.
-*/
-
-/* Big blue button */
-a.home-new-cta-btn,
-.home-new-carousel-1 .resource-card-18x6 .cta {
- white-space: nowrap;
- display: inline-block;
- padding: 14px 32px;
- font-size: 18px;
- font-weight: 500;
- line-height: 24px;
- cursor: pointer;
- background: #33b5e6;
- border-radius: 4px;
- margin-top: 20px;
- color: #fff;
- transition: 0.2s background-color ease-in-out;
-}
-
-.home-new-carousel-1 .resource-card-18x6 .cta:after {
- display: none; /* Hide the entity for this button */
-}
-
-a.home-new-cta-btn:hover,
-.home-new-carousel-1 .resource-card-18x6 .cta:hover {
- color: #fff !important;
- background: #2d9fca;
-}
-
-.home-new-carousel-1 .resource-card-18x6 .cta {
- position: absolute;
- bottom: 20px;
- left: 16px;
-}
-
-/* Fullscreen carousel. */
-.home-new-carousel-1 {
- max-height: 700px; /* Set max height so doesn't get too long */
-}
-
-.home-new-carousel-1 .fullscreen-carousel-content {
- min-height: 450px; /* Set min height for all content */
-}
-
-.home-new-carousel-1 .hero {
- background: #000;
-}
-
-.home-new-carousel-1 .hero-bg {
- background-image: url(/home-new/images/hero.jpg);
- background-position: right center;
- opacity: 0.85;
-}
-
-/*
- Styling for special top card of full screen layout resource layout.
- We need to specifically style the 18x6 card to adjust its size and layout,
- since it's not a standard card, not sure if this is unique to the home page
- layout or should be namespaced within the fullscreen-carousel container.
-*/
-.home-new-carousel-1 .resource-flow-layout.col-16 .resource-card-18x6 {
- height: 320px;
- background-color:#F9F9F9;
- border-radius: 0px;
- box-shadow: 0px 0px 0px rgba(0, 0, 0, 0);
-
-}
-
-.home-new-carousel-1 .resource-card-18x6 .card-bg {
- width: 636px;
- height: 100%;
-}
-
-.home-new-carousel-1 .resource-card-18x6 .card-info {
- right: 0px;
- left: 636px;
- height: 100%;
- top: 0px;
- padding: 15px 22px;
-}
-
-.home-new-carousel-1 .resource-card-18x6 .card-info .util {
- display: none;
-}
-
-.home-new-carousel-1 .resource-card-18x6 .card-info .title {
- font-size: 20px;
- font-weight: 500;
- margin-top: 15px;
- margin-bottom: 15px;
-}
-
-.home-new-carousel-1 .resource-card-18x6 .card-info .text {
- font-size: 15px;
- line-height: 21px;
-}
-
-
-/* Tabbed carousel. */
-.home-new-carousel-2 {
- margin: 35px auto 100px auto;
-}
-
-.home-new-carousel-2 h1 {
- font-size: 47px;
- font-weight: 100;
- line-height: 54px;
- text-align: center;
-}
-
-.annotation-message {
- display: block;
- font-style: italic;
- color: #F80;
-}
-
-
-
-/* Helpouts widget */
-.resource-card-6x2.helpouts-card {
- width: 255px;
- height: 40px;
- position:absolute;
- z-index:999;
- top:-8px;
- right:1px;
-}
-
-.resource-card-6x2.helpouts-card > .card-info {
- left:35px;
- height:35px;
- padding:4px 8px 4px 0;
-}
-
-.resource-card-6x2.helpouts-card > .card-info .helpouts-description {
- display:block;
- overflow:visible;
- font-size:12px;
- line-height:12px;
- text-align:right;
- color:#666;
-}
-
-.helpouts-description .link-color {
- text-transform: uppercase;
-}
-
-.resource-card-6x2 > .card-bg.helpouts-card-bg {
- width:35px;
- height:35px;
- margin:2px 0 0 0;
- background-image: url(../images/styles/helpouts-logo-35_2x.png);
- background-image: -webkit-image-set(url(../images/styles/helpouts-logo-35.png) 1x, url(../images/styles/helpouts-logo-35_2x.png) 2x);
-}
-
-.resource-card-6x2 > .card-bg.helpouts-card-bg:after {
- display:none;
-}
diff --git a/build/tools/droiddoc/templates-lineage-sdk/assets/css/fullscreen.css b/build/tools/droiddoc/templates-lineage-sdk/assets/css/fullscreen.css
deleted file mode 100644
index 7912e349..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/assets/css/fullscreen.css
+++ /dev/null
@@ -1,208 +0,0 @@
-
-/* =============================================================================
- Columns
- ========================================================================== */
-/* Applied to body to debug layout alignments
-.grid {
- width:100%;
- height:100%;
- background:url(../images/grid.png) center repeat-y;
- top:0px;
- margin:auto;
- position:absolute;
-}
-*/
-
-@media screen, projection, print {
-.full {
- padding: 2.5em 0;
- border-top: solid 1px #ddd;
- border-bottom: solid 1px #ddd;
- background: #f7f7f7;
-}
-.wrap {
- margin: 0 auto;
- width: 100%;
- min-width:600px;
- clear: both;
-}
-.cols {
- height: 1%;
- margin: 0 -1.533742331288343558282%;
- width: 103.06748466257669%}
-*+html .cols {
- margin-bottom: 20px;
-}
-.cols:after {
- clear: both;
- content: ' ';
- display: block;
- height: 0;
- visibility: hidden;
-}
-.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12,
-.col-13, .col-14, .col-15, .col-16 {
- float: left;
- margin: 0 1.063829787234% 20px 1.063829787234%;
-}
-* html .col-1, * html .col-2, * html .col-3, * html .col-4, * html .col-5, * html .col-6, * html
-.col-7, * html .col-8, * html .col-9, * html .col-10, * html .col-11, * html .col-12, * html
-.col-13, * html .col-14, * html .col-15, * html .col-16 {
- margin: 0;
- margin: 0 1.063829787234% 20px 1.063829787234%;
-}
-[dir='rtl'] .col-1, [dir='rtl'] .col-2, [dir='rtl'] .col-3, [dir='rtl'] .col-4, [dir='rtl'] .col-5,
-[dir='rtl'] .col-6, [dir='rtl'] .col-7, [dir='rtl'] .col-8, [dir='rtl'] .col-9, [dir='rtl'] .col-10,
-[dir='rtl'] .col-11, [dir='rtl'] .col-12 {
- float: right;
-}
-.col-1 {
- width: 4.16666666666667%;
-}
-.col-2 {
- width: 10.4166666666667%;
-}
-.col-3 {
- width: 16.6666666666667%;
-}
-.col-4 {
- width: 22.9166666666667%;
-}
-.col-5 {
- width: 29.1666666666667%;
-}
-.col-6 {
- width: 35.4166666666667%;
-}
-.col-7 {
- width: 41.6666666666667%;
-}
-.col-8 {
- width: 47.9166666666667%;
-}
-.col-9 {
- width: 55.3333333333333%;
-}
-.col-10 {
- width: 60.4166666666667%;
-}
-.col-11 {
- width: 66.6666666666667%;
-}
-.col-12 {
- width: 72.9166666666667%;
-}
-.col-13 {
- width: 79.1666666666667%;
-}
-.col-14 {
- width: 85.4166666666667%;
-}
-.col-15 {
- width: 91.6666666666667%;
-}
-.col-16 {
- width: 97.9166666666667%;
-}
-
-
-
-
-
-
-
-#header .col-1,
-#nav-x .col-1 { width: 40px }
-#header .col-2,
-#nav-x .col-2 { width: 100px }
-#header .col-3,
-#nav-x .col-3 { width: 160px }
-#header .col-4,
-#nav-x .col-4 { width: 220px }
-#header .col-5,
-#nav-x .col-5 { width: 280px }
-#header .col-6,
-#nav-x .col-6 { width: 340px }
-#header .col-7,
-#nav-x .col-7 { width: 400px }
-#header .col-8,
-#nav-x .col-8 { width: 460px }
-#header .col-9,
-#nav-x .col-9 { width: 520px }
-#header .col-10,
-#nav-x .col-10 { width: 580px }
-#header .col-11,
-#nav-x .col-11 { width: 640px }
-#header .col-12,
-#nav-x .col-12 { width: 700px }
-#header .col-13,
-#nav-x .col-13 { width: 760px }
-#header .col-14,
-#nav-x .col-14 { width: 820px }
-#header .col-15,
-#nav-x .col-15 { width: 880px }
-#header .col-16,
-#nav-x .col-16 { width: 940px }
-
-
-
-body {
- padding:0 20px;
-}
-#header,
-#searchResults,
-#nav-x {
- margin:0;
-}
-#body-content {
- margin:0;
-}
-#body-content > .col-12 {
- width:77.9804965%;
- margin:0 0 0 0.97%; /* this percentage chosen to make IE9 happy */
-}
-#side-nav {
- width: 19.9804965%;
- margin:0 1.063829787234% 0 0;
-}
-
-#header .wrap {
- max-width: 100%;
-}
-
-#header-wrapper #nav-x div.wrap,
-#searchResults.wrap {
- max-width:100%;
-}
-
-.nav-x {
- margin:-2px 0 0 0;
-}
-
-#devdoc-nav.fixed,
-#devdoc-nav.fixed a.totop {
- left:20px; /* !important ... for IE i think */
-}
-
-#sticky-header {
- padding: 0 20px;
-}
-
-#sticky-header > div {
- width: 100%;
-}
-
-.sticky-menu {
- width:100%;
- left:-20px;
-}
-
-.col-right {
- margin-right:0px;
-}
-
-@media screen and (max-width:772px) {
-.col-5, .col-6, .col-7 {
- clear: both;
- width: 97.0238096%}
-} \ No newline at end of file
diff --git a/build/tools/droiddoc/templates-lineage-sdk/assets/customizations.css b/build/tools/droiddoc/templates-lineage-sdk/assets/customizations.css
deleted file mode 100755
index 958f6888..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/assets/customizations.css
+++ /dev/null
@@ -1,14 +0,0 @@
-#masthead-title {
- color: #373332;
- text-decoration: none;
- font-weight: bold;
- margin-left: 5px;
-}
-
-#headerLeft a {
- text-decoration: none;
-}
-
-#header {
- border-bottom: 4px solid rgb(22, 124, 128);
-}
diff --git a/build/tools/droiddoc/templates-lineage-sdk/assets/design/design.js b/build/tools/droiddoc/templates-lineage-sdk/assets/design/design.js
deleted file mode 100644
index 3ba84868..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/assets/design/design.js
+++ /dev/null
@@ -1,188 +0,0 @@
-$(document).ready(function() {
- // prep nav expandos
- var pagePath = document.location.pathname;
- if (pagePath.indexOf(SITE_ROOT) == 0) {
- pagePath = pagePath.substr(SITE_ROOT.length);
- if (pagePath == '' || pagePath.charAt(pagePath.length - 1) == '/') {
- pagePath += 'index.html';
- }
- }
-
- if (SITE_ROOT.match(/\.\.\//) || SITE_ROOT == '') {
- // If running locally, SITE_ROOT will be a relative path, so account for that by
- // finding the relative URL to this page. This will allow us to find links on the page
- // leading back to this page.
- var pathParts = pagePath.split('/');
- var relativePagePathParts = [];
- var upDirs = (SITE_ROOT.match(/(\.\.\/)+/) || [''])[0].length / 3;
- for (var i = 0; i < upDirs; i++) {
- relativePagePathParts.push('..');
- }
- for (var i = 0; i < upDirs; i++) {
- relativePagePathParts.push(pathParts[pathParts.length - (upDirs - i) - 1]);
- }
- relativePagePathParts.push(pathParts[pathParts.length - 1]);
- pagePath = relativePagePathParts.join('/');
- } else {
- // Otherwise the page path should be an absolute URL.
- pagePath = SITE_ROOT + pagePath;
- }
-
- // select current page in sidenav and set up prev/next links if they exist
- var $selNavLink = $('.nav-y').find('a[href="' + pagePath + '"]');
- if ($selNavLink.length) {
- $selListItem = $selNavLink.closest('li');
-
- $selListItem.addClass('selected');
- $selListItem.closest('li>ul').addClass('expanded');
-
- // set up prev links
- var $prevLink = [];
- var $prevListItem = $selListItem.prev('li');
- if ($prevListItem.length) {
- if ($prevListItem.hasClass('nav-section')) {
- // jump to last topic of previous section
- $prevLink = $prevListItem.find('a:last');
- } else {
- // jump to previous topic in this section
- $prevLink = $prevListItem.find('a:eq(0)');
- }
- } else {
- // jump to this section's index page (if it exists)
- $prevLink = $selListItem.parents('li').find('a');
- }
-
- if ($prevLink.length) {
- var prevHref = $prevLink.attr('href');
- if (prevHref == SITE_ROOT + 'index.html') {
- // Don't show Previous when it leads to the homepage
- $('.prev-page-link').hide();
- } else {
- $('.prev-page-link').attr('href', prevHref).show();
- }
- } else {
- $('.prev-page-link').hide();
- }
-
- // set up next links
- var $nextLink = [];
- if ($selListItem.hasClass('nav-section')) {
- // we're on an index page, jump to the first topic
- $nextLink = $selListItem.find('ul').find('a:eq(0)')
- } else {
- // jump to the next topic in this section (if it exists)
- $nextLink = $selListItem.next('li').find('a:eq(0)');
- if (!$nextLink.length) {
- // no more topics in this section, jump to the first topic in the next section
- $nextLink = $selListItem.parents('li').next('li.nav-section').find('a:eq(0)');
- }
- }
- if ($nextLink.length) {
- $('.next-page-link').attr('href', $nextLink.attr('href')).show();
- } else {
- $('.next-page-link').hide();
- }
- }
-
- // Set up expand/collapse behavior
- $('.nav-y li').has('ul').click(function() {
- if ($(this).hasClass('expanded')) {
- return;
- }
-
- // hide other
- var $old = $('.nav-y li.expanded');
- if ($old.length) {
- var $oldUl = $old.children('ul');
- $oldUl.css('height', $oldUl.height() + 'px');
- window.setTimeout(function() {
- $oldUl
- .addClass('animate-height')
- .css('height', '');
- }, 0);
- $old.removeClass('expanded');
- }
-
- // show me
- $(this).addClass('expanded');
- var $ul = $(this).children('ul');
- var expandedHeight = $ul.height();
- $ul
- .removeClass('animate-height')
- .css('height', 0);
- window.setTimeout(function() {
- $ul
- .addClass('animate-height')
- .css('height', expandedHeight + 'px');
- }, 0);
- });
-
- // Stop expand/collapse behavior when clicking on nav section links (since we're navigating away
- // from the page)
- $('.nav-y li').has('ul').find('a:eq(0)').click(function(evt) {
- window.location.href = $(this).attr('href');
- return false;
- });
-
- // Set up play-on-hover <video> tags.
- $('video.play-on-hover').bind('click', function(){
- $(this).get(0).load(); // in case the video isn't seekable
- $(this).get(0).play();
- });
-
- // Set up tooltips
- var TOOLTIP_MARGIN = 10;
- $('acronym').each(function() {
- var $target = $(this);
- var $tooltip = $('<div>')
- .addClass('tooltip-box')
- .text($target.attr('title'))
- .hide()
- .appendTo('body');
- $target.removeAttr('title');
-
- $target.hover(function() {
- // in
- var targetRect = $target.offset();
- targetRect.width = $target.width();
- targetRect.height = $target.height();
-
- $tooltip.css({
- left: targetRect.left,
- top: targetRect.top + targetRect.height + TOOLTIP_MARGIN
- });
- $tooltip.addClass('below');
- $tooltip.show();
- }, function() {
- // out
- $tooltip.hide();
- });
- });
-
- // Set up <h2> deeplinks
- $('h2').click(function() {
- var id = $(this).attr('id');
- if (id) {
- document.location.hash = id;
- }
- });
-
- // Set up fixed navbar
- var navBarIsFixed = false;
- $(window).scroll(function() {
- var scrollTop = $(window).scrollTop();
- var navBarShouldBeFixed = (scrollTop > (100 - 40));
- if (navBarIsFixed != navBarShouldBeFixed) {
- if (navBarShouldBeFixed) {
- $('#nav')
- .addClass('fixed')
- .prependTo('#page-container');
- } else {
- $('#nav')
- .removeClass('fixed')
- .prependTo('#nav-container');
- }
- navBarIsFixed = navBarShouldBeFixed;
- }
- });
-}); \ No newline at end of file
diff --git a/build/tools/droiddoc/templates-lineage-sdk/assets/docs.js b/build/tools/droiddoc/templates-lineage-sdk/assets/docs.js
deleted file mode 100644
index 3ab4caf8..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/assets/docs.js
+++ /dev/null
@@ -1,4339 +0,0 @@
-var classesNav;
-var devdocNav;
-var sidenav;
-var cookie_namespace = 'android_developer';
-var NAV_PREF_TREE = "tree";
-var NAV_PREF_PANELS = "panels";
-var nav_pref;
-var isMobile = false; // true if mobile, so we can adjust some layout
-var mPagePath; // initialized in ready() function
-
-var basePath = getBaseUri(location.pathname);
-var SITE_ROOT = toRoot + basePath.substring(1,basePath.indexOf("/",1));
-var GOOGLE_DATA; // combined data for google service apis, used for search suggest
-
-// Ensure that all ajax getScript() requests allow caching
-$.ajaxSetup({
- cache: true
-});
-
-/****** ON LOAD SET UP STUFF *********/
-
-$(document).ready(function() {
-
- // show lang dialog if the URL includes /intl/
- //if (location.pathname.substring(0,6) == "/intl/") {
- // var lang = location.pathname.split('/')[2];
- // if (lang != getLangPref()) {
- // $("#langMessage a.yes").attr("onclick","changeLangPref('" + lang
- // + "', true); $('#langMessage').hide(); return false;");
- // $("#langMessage .lang." + lang).show();
- // $("#langMessage").show();
- // }
- //}
-
- // load json file for JD doc search suggestions
- $.getScript(toRoot + 'jd_lists_unified.js');
- // load json file for Android API search suggestions
- $.getScript(toRoot + 'reference/lists.js');
-
- // setup keyboard listener for search shortcut
- $('body').keyup(function(event) {
- if (event.which == 191) {
- $('#search_autocomplete').focus();
- }
- });
-
- // init the fullscreen toggle click event
- $('#nav-swap .fullscreen').click(function(){
- if ($(this).hasClass('disabled')) {
- toggleFullscreen(true);
- } else {
- toggleFullscreen(false);
- }
- });
-
- // initialize the divs with custom scrollbars
- $('.scroll-pane').jScrollPane( {verticalGutter:0} );
-
- // add HRs below all H2s (except for a few other h2 variants)
- $('h2').not('#qv h2')
- .not('#tb h2')
- .not('.sidebox h2')
- .not('#devdoc-nav h2')
- .not('h2.norule').css({marginBottom:0})
- .after('<hr/>');
-
- // set up the search close button
- $('.search .close').click(function() {
- $searchInput = $('#search_autocomplete');
- $searchInput.attr('value', '');
- $(this).addClass("hide");
- $("#search-container").removeClass('active');
- $("#search_autocomplete").blur();
- search_focus_changed($searchInput.get(), false);
- hideResults();
- });
-
- // Set up quicknav
- var quicknav_open = false;
- $("#btn-quicknav").click(function() {
- if (quicknav_open) {
- $(this).removeClass('active');
- quicknav_open = false;
- collapse();
- } else {
- $(this).addClass('active');
- quicknav_open = true;
- expand();
- }
- })
-
- var expand = function() {
- $('#header-wrap').addClass('quicknav');
- $('#quicknav').stop().show().animate({opacity:'1'});
- }
-
- var collapse = function() {
- $('#quicknav').stop().animate({opacity:'0'}, 100, function() {
- $(this).hide();
- $('#header-wrap').removeClass('quicknav');
- });
- }
-
-
- //Set up search
- $("#search_autocomplete").focus(function() {
- $("#search-container").addClass('active');
- })
- $("#search-container").mouseover(function() {
- $("#search-container").addClass('active');
- $("#search_autocomplete").focus();
- })
- $("#search-container").mouseout(function() {
- if ($("#search_autocomplete").is(":focus")) return;
- if ($("#search_autocomplete").val() == '') {
- setTimeout(function(){
- $("#search-container").removeClass('active');
- $("#search_autocomplete").blur();
- },250);
- }
- })
- $("#search_autocomplete").blur(function() {
- if ($("#search_autocomplete").val() == '') {
- $("#search-container").removeClass('active');
- }
- })
-
-
- // prep nav expandos
- var pagePath = document.location.pathname;
- // account for intl docs by removing the intl/*/ path
- if (pagePath.indexOf("/intl/") == 0) {
- pagePath = pagePath.substr(pagePath.indexOf("/",6)); // start after intl/ to get last /
- }
-
- if (pagePath.indexOf(SITE_ROOT) == 0) {
- if (pagePath == '' || pagePath.charAt(pagePath.length - 1) == '/') {
- pagePath += 'index.html';
- }
- }
-
- // Need a copy of the pagePath before it gets changed in the next block;
- // it's needed to perform proper tab highlighting in offline docs (see rootDir below)
- var pagePathOriginal = pagePath;
- if (SITE_ROOT.match(/\.\.\//) || SITE_ROOT == '') {
- // If running locally, SITE_ROOT will be a relative path, so account for that by
- // finding the relative URL to this page. This will allow us to find links on the page
- // leading back to this page.
- var pathParts = pagePath.split('/');
- var relativePagePathParts = [];
- var upDirs = (SITE_ROOT.match(/(\.\.\/)+/) || [''])[0].length / 3;
- for (var i = 0; i < upDirs; i++) {
- relativePagePathParts.push('..');
- }
- for (var i = 0; i < upDirs; i++) {
- relativePagePathParts.push(pathParts[pathParts.length - (upDirs - i) - 1]);
- }
- relativePagePathParts.push(pathParts[pathParts.length - 1]);
- pagePath = relativePagePathParts.join('/');
- } else {
- // Otherwise the page path is already an absolute URL
- }
-
- // Highlight the header tabs...
- // highlight Design tab
- if ($("body").hasClass("design")) {
- $("#header li.design a").addClass("selected");
- $("#sticky-header").addClass("design");
-
- // highlight About tabs
- } else if ($("body").hasClass("about")) {
- var rootDir = pagePathOriginal.substring(1,pagePathOriginal.indexOf('/', 1));
- if (rootDir == "about") {
- $("#nav-x li.about a").addClass("selected");
- } else if (rootDir == "wear") {
- $("#nav-x li.wear a").addClass("selected");
- } else if (rootDir == "tv") {
- $("#nav-x li.tv a").addClass("selected");
- } else if (rootDir == "auto") {
- $("#nav-x li.auto a").addClass("selected");
- }
- // highlight Develop tab
- } else if ($("body").hasClass("develop") || $("body").hasClass("google")) {
- $("#header li.develop a").addClass("selected");
- $("#sticky-header").addClass("develop");
- // In Develop docs, also highlight appropriate sub-tab
- var rootDir = pagePathOriginal.substring(1,pagePathOriginal.indexOf('/', 1));
- if (rootDir == "training") {
- $("#nav-x li.training a").addClass("selected");
- } else if (rootDir == "guide") {
- $("#nav-x li.guide a").addClass("selected");
- } else if (rootDir == "reference") {
- // If the root is reference, but page is also part of Google Services, select Google
- if ($("body").hasClass("google")) {
- $("#nav-x li.google a").addClass("selected");
- } else {
- $("#nav-x li.reference a").addClass("selected");
- }
- } else if ((rootDir == "tools") || (rootDir == "sdk")) {
- $("#nav-x li.tools a").addClass("selected");
- } else if ($("body").hasClass("google")) {
- $("#nav-x li.google a").addClass("selected");
- } else if ($("body").hasClass("samples")) {
- $("#nav-x li.samples a").addClass("selected");
- }
-
- // highlight Distribute tab
- } else if ($("body").hasClass("distribute")) {
- $("#header li.distribute a").addClass("selected");
- $("#sticky-header").addClass("distribute");
-
- var baseFrag = pagePathOriginal.indexOf('/', 1) + 1;
- var secondFrag = pagePathOriginal.substring(baseFrag, pagePathOriginal.indexOf('/', baseFrag));
- if (secondFrag == "users") {
- $("#nav-x li.users a").addClass("selected");
- } else if (secondFrag == "engage") {
- $("#nav-x li.engage a").addClass("selected");
- } else if (secondFrag == "monetize") {
- $("#nav-x li.monetize a").addClass("selected");
- } else if (secondFrag == "analyze") {
- $("#nav-x li.analyze a").addClass("selected");
- } else if (secondFrag == "tools") {
- $("#nav-x li.disttools a").addClass("selected");
- } else if (secondFrag == "stories") {
- $("#nav-x li.stories a").addClass("selected");
- } else if (secondFrag == "essentials") {
- $("#nav-x li.essentials a").addClass("selected");
- } else if (secondFrag == "googleplay") {
- $("#nav-x li.googleplay a").addClass("selected");
- }
- } else if ($("body").hasClass("about")) {
- $("#sticky-header").addClass("about");
- }
-
- // set global variable so we can highlight the sidenav a bit later (such as for google reference)
- // and highlight the sidenav
- mPagePath = pagePath;
- highlightSidenav();
- buildBreadcrumbs();
-
- // set up prev/next links if they exist
- var $selNavLink = $('#nav').find('a[href="' + pagePath + '"]');
- var $selListItem;
- if ($selNavLink.length) {
- $selListItem = $selNavLink.closest('li');
-
- // set up prev links
- var $prevLink = [];
- var $prevListItem = $selListItem.prev('li');
-
- var crossBoundaries = ($("body.design").length > 0) || ($("body.guide").length > 0) ? true :
-false; // navigate across topic boundaries only in design docs
- if ($prevListItem.length) {
- if ($prevListItem.hasClass('nav-section') || crossBoundaries) {
- // jump to last topic of previous section
- $prevLink = $prevListItem.find('a:last');
- } else if (!$selListItem.hasClass('nav-section')) {
- // jump to previous topic in this section
- $prevLink = $prevListItem.find('a:eq(0)');
- }
- } else {
- // jump to this section's index page (if it exists)
- var $parentListItem = $selListItem.parents('li');
- $prevLink = $selListItem.parents('li').find('a');
-
- // except if cross boundaries aren't allowed, and we're at the top of a section already
- // (and there's another parent)
- if (!crossBoundaries && $parentListItem.hasClass('nav-section')
- && $selListItem.hasClass('nav-section')) {
- $prevLink = [];
- }
- }
-
- // set up next links
- var $nextLink = [];
- var startClass = false;
- var isCrossingBoundary = false;
-
- if ($selListItem.hasClass('nav-section') && $selListItem.children('div.empty').length == 0) {
- // we're on an index page, jump to the first topic
- $nextLink = $selListItem.find('ul:eq(0)').find('a:eq(0)');
-
- // if there aren't any children, go to the next section (required for About pages)
- if($nextLink.length == 0) {
- $nextLink = $selListItem.next('li').find('a');
- } else if ($('.topic-start-link').length) {
- // as long as there's a child link and there is a "topic start link" (we're on a landing)
- // then set the landing page "start link" text to be the first doc title
- $('.topic-start-link').text($nextLink.text().toUpperCase());
- }
-
- // If the selected page has a description, then it's a class or article homepage
- if ($selListItem.find('a[description]').length) {
- // this means we're on a class landing page
- startClass = true;
- }
- } else {
- // jump to the next topic in this section (if it exists)
- $nextLink = $selListItem.next('li').find('a:eq(0)');
- if ($nextLink.length == 0) {
- isCrossingBoundary = true;
- // no more topics in this section, jump to the first topic in the next section
- $nextLink = $selListItem.parents('li:eq(0)').next('li').find('a:eq(0)');
- if (!$nextLink.length) { // Go up another layer to look for next page (lesson > class > course)
- $nextLink = $selListItem.parents('li:eq(1)').next('li.nav-section').find('a:eq(0)');
- if ($nextLink.length == 0) {
- // if that doesn't work, we're at the end of the list, so disable NEXT link
- $('.next-page-link').attr('href','').addClass("disabled")
- .click(function() { return false; });
- // and completely hide the one in the footer
- $('.content-footer .next-page-link').hide();
- }
- }
- }
- }
-
- if (startClass) {
- $('.start-class-link').attr('href', $nextLink.attr('href')).removeClass("hide");
-
- // if there's no training bar (below the start button),
- // then we need to add a bottom border to button
- if (!$("#tb").length) {
- $('.start-class-link').css({'border-bottom':'1px solid #DADADA'});
- }
- } else if (isCrossingBoundary && !$('body.design').length) { // Design always crosses boundaries
- $('.content-footer.next-class').show();
- $('.next-page-link').attr('href','')
- .removeClass("hide").addClass("disabled")
- .click(function() { return false; });
- // and completely hide the one in the footer
- $('.content-footer .next-page-link').hide();
- if ($nextLink.length) {
- $('.next-class-link').attr('href',$nextLink.attr('href'))
- .removeClass("hide")
- .append(": " + $nextLink.html());
- $('.next-class-link').find('.new').empty();
- }
- } else {
- $('.next-page-link').attr('href', $nextLink.attr('href'))
- .removeClass("hide");
- // for the footer link, also add the next page title
- $('.content-footer .next-page-link').append(": " + $nextLink.html());
- }
-
- if (!startClass && $prevLink.length) {
- var prevHref = $prevLink.attr('href');
- if (prevHref == SITE_ROOT + 'index.html') {
- // Don't show Previous when it leads to the homepage
- } else {
- $('.prev-page-link').attr('href', $prevLink.attr('href')).removeClass("hide");
- }
- }
-
- }
-
-
-
- // Set up the course landing pages for Training with class names and descriptions
- if ($('body.trainingcourse').length) {
- var $classLinks = $selListItem.find('ul li a').not('#nav .nav-section .nav-section ul a');
-
- // create an array for all the class descriptions
- var $classDescriptions = new Array($classLinks.length);
- var lang = getLangPref();
- $classLinks.each(function(index) {
- var langDescr = $(this).attr(lang + "-description");
- if (typeof langDescr !== 'undefined' && langDescr !== false) {
- // if there's a class description in the selected language, use that
- $classDescriptions[index] = langDescr;
- } else {
- // otherwise, use the default english description
- $classDescriptions[index] = $(this).attr("description");
- }
- });
-
- var $olClasses = $('<ol class="class-list"></ol>');
- var $liClass;
- var $imgIcon;
- var $h2Title;
- var $pSummary;
- var $olLessons;
- var $liLesson;
- $classLinks.each(function(index) {
- $liClass = $('<li></li>');
- $h2Title = $('<a class="title" href="'+$(this).attr('href')+'"><h2>' + $(this).html()+'</h2><span></span></a>');
- $pSummary = $('<p class="description">' + $classDescriptions[index] + '</p>');
-
- $olLessons = $('<ol class="lesson-list"></ol>');
-
- $lessons = $(this).closest('li').find('ul li a');
-
- if ($lessons.length) {
- $imgIcon = $('<img src="'+toRoot+'assets/images/resource-tutorial.png" '
- + ' width="64" height="64" alt=""/>');
- $lessons.each(function(index) {
- $olLessons.append('<li><a href="'+$(this).attr('href')+'">' + $(this).html()+'</a></li>');
- });
- } else {
- $imgIcon = $('<img src="'+toRoot+'assets/images/resource-article.png" '
- + ' width="64" height="64" alt=""/>');
- $pSummary.addClass('article');
- }
-
- $liClass.append($h2Title).append($imgIcon).append($pSummary).append($olLessons);
- $olClasses.append($liClass);
- });
- $('.jd-descr').append($olClasses);
- }
-
- // Set up expand/collapse behavior
- initExpandableNavItems("#nav");
-
-
- $(".scroll-pane").scroll(function(event) {
- event.preventDefault();
- return false;
- });
-
- /* Resize nav height when window height changes */
- $(window).resize(function() {
- if ($('#side-nav').length == 0) return;
- var stylesheet = $('link[rel="stylesheet"][class="fullscreen"]');
- setNavBarLeftPos(); // do this even if sidenav isn't fixed because it could become fixed
- // make sidenav behave when resizing the window and side-scolling is a concern
- if (sticky) {
- if ((stylesheet.attr("disabled") == "disabled") || stylesheet.length == 0) {
- updateSideNavPosition();
- } else {
- updateSidenavFullscreenWidth();
- }
- }
- resizeNav();
- });
-
-
- var navBarLeftPos;
- if ($('#devdoc-nav').length) {
- setNavBarLeftPos();
- }
-
-
- // Set up play-on-hover <video> tags.
- $('video.play-on-hover').bind('click', function(){
- $(this).get(0).load(); // in case the video isn't seekable
- $(this).get(0).play();
- });
-
- // Set up tooltips
- var TOOLTIP_MARGIN = 10;
- $('acronym,.tooltip-link').each(function() {
- var $target = $(this);
- var $tooltip = $('<div>')
- .addClass('tooltip-box')
- .append($target.attr('title'))
- .hide()
- .appendTo('body');
- $target.removeAttr('title');
-
- $target.hover(function() {
- // in
- var targetRect = $target.offset();
- targetRect.width = $target.width();
- targetRect.height = $target.height();
-
- $tooltip.css({
- left: targetRect.left,
- top: targetRect.top + targetRect.height + TOOLTIP_MARGIN
- });
- $tooltip.addClass('below');
- $tooltip.show();
- }, function() {
- // out
- $tooltip.hide();
- });
- });
-
- // Set up <h2> deeplinks
- $('h2').click(function() {
- var id = $(this).attr('id');
- if (id) {
- document.location.hash = id;
- }
- });
-
- //Loads the +1 button
- var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
- po.src = 'https://apis.google.com/js/plusone.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
-
-
- // Revise the sidenav widths to make room for the scrollbar
- // which avoids the visible width from changing each time the bar appears
- var $sidenav = $("#side-nav");
- var sidenav_width = parseInt($sidenav.innerWidth());
-
- $("#devdoc-nav #nav").css("width", sidenav_width - 4 + "px"); // 4px is scrollbar width
-
-
- $(".scroll-pane").removeAttr("tabindex"); // get rid of tabindex added by jscroller
-
- if ($(".scroll-pane").length > 1) {
- // Check if there's a user preference for the panel heights
- var cookieHeight = readCookie("reference_height");
- if (cookieHeight) {
- restoreHeight(cookieHeight);
- }
- }
-
- // Resize once loading is finished
- resizeNav();
- // Check if there's an anchor that we need to scroll into view.
- // A delay is needed, because some browsers do not immediately scroll down to the anchor
- window.setTimeout(offsetScrollForSticky, 100);
-
- /* init the language selector based on user cookie for lang */
- loadLangPref();
- changeNavLang(getLangPref());
-
- /* setup event handlers to ensure the overflow menu is visible while picking lang */
- $("#language select")
- .mousedown(function() {
- $("div.morehover").addClass("hover"); })
- .blur(function() {
- $("div.morehover").removeClass("hover"); });
-
- /* some global variable setup */
- resizePackagesNav = $("#resize-packages-nav");
- classesNav = $("#classes-nav");
- devdocNav = $("#devdoc-nav");
-
- var cookiePath = "";
- if (location.href.indexOf("/reference/") != -1) {
- cookiePath = "reference_";
- } else if (location.href.indexOf("/guide/") != -1) {
- cookiePath = "guide_";
- } else if (location.href.indexOf("/tools/") != -1) {
- cookiePath = "tools_";
- } else if (location.href.indexOf("/training/") != -1) {
- cookiePath = "training_";
- } else if (location.href.indexOf("/design/") != -1) {
- cookiePath = "design_";
- } else if (location.href.indexOf("/distribute/") != -1) {
- cookiePath = "distribute_";
- }
-
-
- /* setup shadowbox for any videos that want it */
- var $videoLinks = $("a.video-shadowbox-button, a.notice-developers-video");
- if ($videoLinks.length) {
- // if there's at least one, add the shadowbox HTML to the body
- $('body').prepend(
-'<div id="video-container">'+
- '<div id="video-frame">'+
- '<div class="video-close">'+
- '<span id="icon-video-close" onclick="closeVideo()">&nbsp;</span>'+
- '</div>'+
- '<div id="youTubePlayer"></div>'+
- '</div>'+
-'</div>');
-
- // loads the IFrame Player API code asynchronously.
- $.getScript("https://www.youtube.com/iframe_api");
-
- $videoLinks.each(function() {
- var videoId = $(this).attr('href').split('?v=')[1];
- $(this).click(function(event) {
- event.preventDefault();
- startYouTubePlayer(videoId);
- });
- });
- }
-});
-// END of the onload event
-
-
-var youTubePlayer;
-function onYouTubeIframeAPIReady() {
-}
-
-/* Returns the height the shadowbox video should be. It's based on the current
- height of the "video-frame" element, which is 100% height for the window.
- Then minus the margin so the video isn't actually the full window height. */
-function getVideoHeight() {
- var frameHeight = $("#video-frame").height();
- var marginTop = $("#video-frame").css('margin-top').split('px')[0];
- return frameHeight - (marginTop * 2);
-}
-
-var mPlayerPaused = false;
-
-function startYouTubePlayer(videoId) {
- $("#video-container").show();
- $("#video-frame").show();
- mPlayerPaused = false;
-
- // compute the size of the player so it's centered in window
- var maxWidth = 940; // the width of the web site content
- var videoAspect = .5625; // based on 1280x720 resolution
- var maxHeight = maxWidth * videoAspect;
- var videoHeight = getVideoHeight();
- var videoWidth = videoHeight / videoAspect;
- if (videoWidth > maxWidth) {
- videoWidth = maxWidth;
- videoHeight = maxHeight;
- }
- $("#video-frame").css('width', videoWidth);
-
- // check if we've already created this player
- if (youTubePlayer == null) {
- // check if there's a start time specified
- var idAndHash = videoId.split("#");
- var startTime = 0;
- if (idAndHash.length > 1) {
- startTime = idAndHash[1].split("t=")[1] != undefined ? idAndHash[1].split("t=")[1] : 0;
- }
- // enable localized player
- var lang = getLangPref();
- var captionsOn = lang == 'en' ? 0 : 1;
-
- youTubePlayer = new YT.Player('youTubePlayer', {
- height: videoHeight,
- width: videoWidth,
- videoId: idAndHash[0],
- playerVars: {start: startTime, hl: lang, cc_load_policy: captionsOn},
- events: {
- 'onReady': onPlayerReady,
- 'onStateChange': onPlayerStateChange
- }
- });
- } else {
- // reset the size in case the user adjusted the window since last play
- youTubePlayer.setSize(videoWidth, videoHeight);
- // if a video different from the one already playing was requested, cue it up
- if (videoId != youTubePlayer.getVideoUrl().split('?v=')[1].split('&')[0].split('%')[0]) {
- youTubePlayer.cueVideoById(videoId);
- }
- youTubePlayer.playVideo();
- }
-}
-
-function onPlayerReady(event) {
- event.target.playVideo();
- mPlayerPaused = false;
-}
-
-function closeVideo() {
- try {
- youTubePlayer.pauseVideo();
- } catch(e) {
- }
- $("#video-container").fadeOut(200);
-}
-
-/* Track youtube playback for analytics */
-function onPlayerStateChange(event) {
- // Video starts, send the video ID
- if (event.data == YT.PlayerState.PLAYING) {
- if (mPlayerPaused) {
- ga('send', 'event', 'Videos', 'Resume',
- youTubePlayer.getVideoUrl().split('?v=')[1].split('&')[0].split('%')[0]);
- } else {
- // track the start playing event so we know from which page the video was selected
- ga('send', 'event', 'Videos', 'Start: ' +
- youTubePlayer.getVideoUrl().split('?v=')[1].split('&')[0].split('%')[0],
- 'on: ' + document.location.href);
- }
- mPlayerPaused = false;
- }
- // Video paused, send video ID and video elapsed time
- if (event.data == YT.PlayerState.PAUSED) {
- ga('send', 'event', 'Videos', 'Paused',
- youTubePlayer.getVideoUrl().split('?v=')[1].split('&')[0].split('%')[0],
- youTubePlayer.getCurrentTime());
- mPlayerPaused = true;
- }
- // Video finished, send video ID and video elapsed time
- if (event.data == YT.PlayerState.ENDED) {
- ga('send', 'event', 'Videos', 'Finished',
- youTubePlayer.getVideoUrl().split('?v=')[1].split('&')[0].split('%')[0],
- youTubePlayer.getCurrentTime());
- mPlayerPaused = true;
- }
-}
-
-
-
-function initExpandableNavItems(rootTag) {
- $(rootTag + ' li.nav-section .nav-section-header').click(function() {
- var section = $(this).closest('li.nav-section');
- if (section.hasClass('expanded')) {
- /* hide me and descendants */
- section.find('ul').slideUp(250, function() {
- // remove 'expanded' class from my section and any children
- section.closest('li').removeClass('expanded');
- $('li.nav-section', section).removeClass('expanded');
- resizeNav();
- });
- } else {
- /* show me */
- // first hide all other siblings
- var $others = $('li.nav-section.expanded', $(this).closest('ul')).not('.sticky');
- $others.removeClass('expanded').children('ul').slideUp(250);
-
- // now expand me
- section.closest('li').addClass('expanded');
- section.children('ul').slideDown(250, function() {
- resizeNav();
- });
- }
- });
-
- // Stop expand/collapse behavior when clicking on nav section links
- // (since we're navigating away from the page)
- // This selector captures the first instance of <a>, but not those with "#" as the href.
- $('.nav-section-header').find('a:eq(0)').not('a[href="#"]').click(function(evt) {
- window.location.href = $(this).attr('href');
- return false;
- });
-}
-
-
-/** Create the list of breadcrumb links in the sticky header */
-function buildBreadcrumbs() {
- var $breadcrumbUl = $("#sticky-header ul.breadcrumb");
- // Add the secondary horizontal nav item, if provided
- var $selectedSecondNav = $("div#nav-x ul.nav-x a.selected").clone().removeClass("selected");
- if ($selectedSecondNav.length) {
- $breadcrumbUl.prepend($("<li>").append($selectedSecondNav))
- }
- // Add the primary horizontal nav
- var $selectedFirstNav = $("div#header-wrap ul.nav-x a.selected").clone().removeClass("selected");
- // If there's no header nav item, use the logo link and title from alt text
- if ($selectedFirstNav.length < 1) {
- $selectedFirstNav = $("<a>")
- .attr('href', $("div#header .logo a").attr('href'))
- .text($("div#header .logo img").attr('alt'));
- }
- $breadcrumbUl.prepend($("<li>").append($selectedFirstNav));
-}
-
-
-
-/** Highlight the current page in sidenav, expanding children as appropriate */
-function highlightSidenav() {
- // if something is already highlighted, undo it. This is for dynamic navigation (Samples index)
- if ($("ul#nav li.selected").length) {
- unHighlightSidenav();
- }
- // look for URL in sidenav, including the hash
- var $selNavLink = $('#nav').find('a[href="' + mPagePath + location.hash + '"]');
-
- // If the selNavLink is still empty, look for it without the hash
- if ($selNavLink.length == 0) {
- $selNavLink = $('#nav').find('a[href="' + mPagePath + '"]');
- }
-
- var $selListItem;
- if ($selNavLink.length) {
- // Find this page's <li> in sidenav and set selected
- $selListItem = $selNavLink.closest('li');
- $selListItem.addClass('selected');
-
- // Traverse up the tree and expand all parent nav-sections
- $selNavLink.parents('li.nav-section').each(function() {
- $(this).addClass('expanded');
- $(this).children('ul').show();
- });
- }
-}
-
-function unHighlightSidenav() {
- $("ul#nav li.selected").removeClass("selected");
- $('ul#nav li.nav-section.expanded').removeClass('expanded').children('ul').hide();
-}
-
-function toggleFullscreen(enable) {
- var delay = 20;
- var enabled = true;
- var stylesheet = $('link[rel="stylesheet"][class="fullscreen"]');
- if (enable) {
- // Currently NOT USING fullscreen; enable fullscreen
- stylesheet.removeAttr('disabled');
- $('#nav-swap .fullscreen').removeClass('disabled');
- $('#devdoc-nav').css({left:''});
- setTimeout(updateSidenavFullscreenWidth,delay); // need to wait a moment for css to switch
- enabled = true;
- } else {
- // Currently USING fullscreen; disable fullscreen
- stylesheet.attr('disabled', 'disabled');
- $('#nav-swap .fullscreen').addClass('disabled');
- setTimeout(updateSidenavFixedWidth,delay); // need to wait a moment for css to switch
- enabled = false;
- }
- writeCookie("fullscreen", enabled, null);
- setNavBarLeftPos();
- resizeNav(delay);
- updateSideNavPosition();
- setTimeout(initSidenavHeightResize,delay);
-}
-
-
-function setNavBarLeftPos() {
- navBarLeftPos = $('#body-content').offset().left;
-}
-
-
-function updateSideNavPosition() {
- var newLeft = $(window).scrollLeft() - navBarLeftPos;
- $('#devdoc-nav').css({left: -newLeft});
- $('#devdoc-nav .totop').css({left: -(newLeft - parseInt($('#side-nav').css('margin-left')))});
-}
-
-// TODO: use $(document).ready instead
-function addLoadEvent(newfun) {
- var current = window.onload;
- if (typeof window.onload != 'function') {
- window.onload = newfun;
- } else {
- window.onload = function() {
- current();
- newfun();
- }
- }
-}
-
-var agent = navigator['userAgent'].toLowerCase();
-// If a mobile phone, set flag and do mobile setup
-if ((agent.indexOf("mobile") != -1) || // android, iphone, ipod
- (agent.indexOf("blackberry") != -1) ||
- (agent.indexOf("webos") != -1) ||
- (agent.indexOf("mini") != -1)) { // opera mini browsers
- isMobile = true;
-}
-
-
-$(document).ready(function() {
- $("pre:not(.no-pretty-print)").addClass("prettyprint");
- prettyPrint();
-});
-
-
-
-
-/* ######### RESIZE THE SIDENAV HEIGHT ########## */
-
-function resizeNav(delay) {
- var $nav = $("#devdoc-nav");
- var $window = $(window);
- var navHeight;
-
- // Get the height of entire window and the total header height.
- // Then figure out based on scroll position whether the header is visible
- var windowHeight = $window.height();
- var scrollTop = $window.scrollTop();
- var headerHeight = $('#header-wrapper').outerHeight();
- var headerVisible = scrollTop < stickyTop;
-
- // get the height of space between nav and top of window.
- // Could be either margin or top position, depending on whether the nav is fixed.
- var topMargin = (parseInt($nav.css('margin-top')) || parseInt($nav.css('top'))) + 1;
- // add 1 for the #side-nav bottom margin
-
- // Depending on whether the header is visible, set the side nav's height.
- if (headerVisible) {
- // The sidenav height grows as the header goes off screen
- navHeight = windowHeight - (headerHeight - scrollTop) - topMargin;
- } else {
- // Once header is off screen, the nav height is almost full window height
- navHeight = windowHeight - topMargin;
- }
-
-
-
- $scrollPanes = $(".scroll-pane");
- if ($scrollPanes.length > 1) {
- // subtract the height of the api level widget and nav swapper from the available nav height
- navHeight -= ($('#api-nav-header').outerHeight(true) + $('#nav-swap').outerHeight(true));
-
- $("#swapper").css({height:navHeight + "px"});
- if ($("#nav-tree").is(":visible")) {
- $("#nav-tree").css({height:navHeight});
- }
-
- var classesHeight = navHeight - parseInt($("#resize-packages-nav").css("height")) - 10 + "px";
- //subtract 10px to account for drag bar
-
- // if the window becomes small enough to make the class panel height 0,
- // then the package panel should begin to shrink
- if (parseInt(classesHeight) <= 0) {
- $("#resize-packages-nav").css({height:navHeight - 10}); //subtract 10px for drag bar
- $("#packages-nav").css({height:navHeight - 10});
- }
-
- $("#classes-nav").css({'height':classesHeight, 'margin-top':'10px'});
- $("#classes-nav .jspContainer").css({height:classesHeight});
-
-
- } else {
- $nav.height(navHeight);
- }
-
- if (delay) {
- updateFromResize = true;
- delayedReInitScrollbars(delay);
- } else {
- reInitScrollbars();
- }
-
-}
-
-var updateScrollbars = false;
-var updateFromResize = false;
-
-/* Re-initialize the scrollbars to account for changed nav size.
- * This method postpones the actual update by a 1/4 second in order to optimize the
- * scroll performance while the header is still visible, because re-initializing the
- * scroll panes is an intensive process.
- */
-function delayedReInitScrollbars(delay) {
- // If we're scheduled for an update, but have received another resize request
- // before the scheduled resize has occured, just ignore the new request
- // (and wait for the scheduled one).
- if (updateScrollbars && updateFromResize) {
- updateFromResize = false;
- return;
- }
-
- // We're scheduled for an update and the update request came from this method's setTimeout
- if (updateScrollbars && !updateFromResize) {
- reInitScrollbars();
- updateScrollbars = false;
- } else {
- updateScrollbars = true;
- updateFromResize = false;
- setTimeout('delayedReInitScrollbars()',delay);
- }
-}
-
-/* Re-initialize the scrollbars to account for changed nav size. */
-function reInitScrollbars() {
- var pane = $(".scroll-pane").each(function(){
- var api = $(this).data('jsp');
- if (!api) { setTimeout(reInitScrollbars,300); return;}
- api.reinitialise( {verticalGutter:0} );
- });
- $(".scroll-pane").removeAttr("tabindex"); // get rid of tabindex added by jscroller
-}
-
-
-/* Resize the height of the nav panels in the reference,
- * and save the new size to a cookie */
-function saveNavPanels() {
- var basePath = getBaseUri(location.pathname);
- var section = basePath.substring(1,basePath.indexOf("/",1));
- writeCookie("height", resizePackagesNav.css("height"), section);
-}
-
-
-
-function restoreHeight(packageHeight) {
- $("#resize-packages-nav").height(packageHeight);
- $("#packages-nav").height(packageHeight);
- // var classesHeight = navHeight - packageHeight;
- // $("#classes-nav").css({height:classesHeight});
- // $("#classes-nav .jspContainer").css({height:classesHeight});
-}
-
-
-
-/* ######### END RESIZE THE SIDENAV HEIGHT ########## */
-
-
-
-
-
-/** Scroll the jScrollPane to make the currently selected item visible
- This is called when the page finished loading. */
-function scrollIntoView(nav) {
- var $nav = $("#"+nav);
- var element = $nav.jScrollPane({/* ...settings... */});
- var api = element.data('jsp');
-
- if ($nav.is(':visible')) {
- var $selected = $(".selected", $nav);
- if ($selected.length == 0) {
- // If no selected item found, exit
- return;
- }
- // get the selected item's offset from its container nav by measuring the item's offset
- // relative to the document then subtract the container nav's offset relative to the document
- var selectedOffset = $selected.offset().top - $nav.offset().top;
- if (selectedOffset > $nav.height() * .8) { // multiply nav height by .8 so we move up the item
- // if it's more than 80% down the nav
- // scroll the item up by an amount equal to 80% the container nav's height
- api.scrollTo(0, selectedOffset - ($nav.height() * .8), false);
- }
- }
-}
-
-
-
-
-
-
-/* Show popup dialogs */
-function showDialog(id) {
- $dialog = $("#"+id);
- $dialog.prepend('<div class="box-border"><div class="top"> <div class="left"></div> <div class="right"></div></div><div class="bottom"> <div class="left"></div> <div class="right"></div> </div> </div>');
- $dialog.wrapInner('<div/>');
- $dialog.removeClass("hide");
-}
-
-
-
-
-
-/* ######### COOKIES! ########## */
-
-function readCookie(cookie) {
- var myCookie = cookie_namespace+"_"+cookie+"=";
- if (document.cookie) {
- var index = document.cookie.indexOf(myCookie);
- if (index != -1) {
- var valStart = index + myCookie.length;
- var valEnd = document.cookie.indexOf(";", valStart);
- if (valEnd == -1) {
- valEnd = document.cookie.length;
- }
- var val = document.cookie.substring(valStart, valEnd);
- return val;
- }
- }
- return 0;
-}
-
-function writeCookie(cookie, val, section) {
- if (val==undefined) return;
- section = section == null ? "_" : "_"+section+"_";
- var age = 2*365*24*60*60; // set max-age to 2 years
- var cookieValue = cookie_namespace + section + cookie + "=" + val
- + "; max-age=" + age +"; path=/";
- document.cookie = cookieValue;
-}
-
-/* ######### END COOKIES! ########## */
-
-
-var sticky = false;
-var stickyTop;
-var prevScrollLeft = 0; // used to compare current position to previous position of horiz scroll
-/* Sets the vertical scoll position at which the sticky bar should appear.
- This method is called to reset the position when search results appear or hide */
-function setStickyTop() {
- stickyTop = $('#header-wrapper').outerHeight() - $('#sticky-header').outerHeight();
-}
-
-/*
- * Displays sticky nav bar on pages when dac header scrolls out of view
- */
-$(window).scroll(function(event) {
-
- setStickyTop();
- var hiding = false;
- var $stickyEl = $('#sticky-header');
- var $menuEl = $('.menu-container');
- // Exit if there's no sidenav
- if ($('#side-nav').length == 0) return;
- // Exit if the mouse target is a DIV, because that means the event is coming
- // from a scrollable div and so there's no need to make adjustments to our layout
- if ($(event.target).nodeName == "DIV") {
- return;
- }
-
- var top = $(window).scrollTop();
- // we set the navbar fixed when the scroll position is beyond the height of the site header...
- var shouldBeSticky = top >= stickyTop;
- // ... except if the document content is shorter than the sidenav height.
- // (this is necessary to avoid crazy behavior on OSX Lion due to overscroll bouncing)
- if ($("#doc-col").height() < $("#side-nav").height()) {
- shouldBeSticky = false;
- }
- // Account for horizontal scroll
- var scrollLeft = $(window).scrollLeft();
- // When the sidenav is fixed and user scrolls horizontally, reposition the sidenav to match
- if (sticky && (scrollLeft != prevScrollLeft)) {
- updateSideNavPosition();
- prevScrollLeft = scrollLeft;
- }
-
- // Don't continue if the header is sufficently far away
- // (to avoid intensive resizing that slows scrolling)
- if (sticky == shouldBeSticky) {
- return;
- }
-
- // If sticky header visible and position is now near top, hide sticky
- if (sticky && !shouldBeSticky) {
- sticky = false;
- hiding = true;
- // make the sidenav static again
- $('#devdoc-nav')
- .removeClass('fixed')
- .css({'width':'auto','margin':''})
- .prependTo('#side-nav');
- // delay hide the sticky
- $menuEl.removeClass('sticky-menu');
- $stickyEl.fadeOut(250);
- hiding = false;
-
- // update the sidenaav position for side scrolling
- updateSideNavPosition();
- } else if (!sticky && shouldBeSticky) {
- sticky = true;
- $stickyEl.fadeIn(10);
- $menuEl.addClass('sticky-menu');
-
- // make the sidenav fixed
- var width = $('#devdoc-nav').width();
- $('#devdoc-nav')
- .addClass('fixed')
- .css({'width':width+'px'})
- .prependTo('#body-content');
-
- // update the sidenaav position for side scrolling
- updateSideNavPosition();
-
- } else if (hiding && top < 15) {
- $menuEl.removeClass('sticky-menu');
- $stickyEl.hide();
- hiding = false;
- }
- resizeNav(250); // pass true in order to delay the scrollbar re-initialization for performance
-});
-
-/*
- * Manages secion card states and nav resize to conclude loading
- */
-(function() {
- $(document).ready(function() {
-
- // Stack hover states
- $('.section-card-menu').each(function(index, el) {
- var height = $(el).height();
- $(el).css({height:height+'px', position:'relative'});
- var $cardInfo = $(el).find('.card-info');
-
- $cardInfo.css({position: 'absolute', bottom:'0px', left:'0px', right:'0px', overflow:'visible'});
- });
-
- });
-
-})();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/* MISC LIBRARY FUNCTIONS */
-
-
-
-
-
-function toggle(obj, slide) {
- var ul = $("ul:first", obj);
- var li = ul.parent();
- if (li.hasClass("closed")) {
- if (slide) {
- ul.slideDown("fast");
- } else {
- ul.show();
- }
- li.removeClass("closed");
- li.addClass("open");
- $(".toggle-img", li).attr("title", "hide pages");
- } else {
- ul.slideUp("fast");
- li.removeClass("open");
- li.addClass("closed");
- $(".toggle-img", li).attr("title", "show pages");
- }
-}
-
-
-function buildToggleLists() {
- $(".toggle-list").each(
- function(i) {
- $("div:first", this).append("<a class='toggle-img' href='#' title='show pages' onClick='toggle(this.parentNode.parentNode, true); return false;'></a>");
- $(this).addClass("closed");
- });
-}
-
-
-
-function hideNestedItems(list, toggle) {
- $list = $(list);
- // hide nested lists
- if($list.hasClass('showing')) {
- $("li ol", $list).hide('fast');
- $list.removeClass('showing');
- // show nested lists
- } else {
- $("li ol", $list).show('fast');
- $list.addClass('showing');
- }
- $(".more,.less",$(toggle)).toggle();
-}
-
-
-/* Call this to add listeners to a <select> element for Studio/Eclipse/Other docs */
-function setupIdeDocToggle() {
- $( "select.ide" ).change(function() {
- var selected = $(this).find("option:selected").attr("value");
- $(".select-ide").hide();
- $(".select-ide."+selected).show();
-
- $("select.ide").val(selected);
- });
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/* REFERENCE NAV SWAP */
-
-
-function getNavPref() {
- var v = readCookie('reference_nav');
- if (v != NAV_PREF_TREE) {
- v = NAV_PREF_PANELS;
- }
- return v;
-}
-
-function chooseDefaultNav() {
- nav_pref = getNavPref();
- if (nav_pref == NAV_PREF_TREE) {
- $("#nav-panels").toggle();
- $("#panel-link").toggle();
- $("#nav-tree").toggle();
- $("#tree-link").toggle();
- }
-}
-
-function swapNav() {
- if (nav_pref == NAV_PREF_TREE) {
- nav_pref = NAV_PREF_PANELS;
- } else {
- nav_pref = NAV_PREF_TREE;
- init_default_navtree(toRoot);
- }
- writeCookie("nav", nav_pref, "reference");
-
- $("#nav-panels").toggle();
- $("#panel-link").toggle();
- $("#nav-tree").toggle();
- $("#tree-link").toggle();
-
- resizeNav();
-
- // Gross nasty hack to make tree view show up upon first swap by setting height manually
- $("#nav-tree .jspContainer:visible")
- .css({'height':$("#nav-tree .jspContainer .jspPane").height() +'px'});
- // Another nasty hack to make the scrollbar appear now that we have height
- resizeNav();
-
- if ($("#nav-tree").is(':visible')) {
- scrollIntoView("nav-tree");
- } else {
- scrollIntoView("packages-nav");
- scrollIntoView("classes-nav");
- }
-}
-
-
-
-/* ############################################ */
-/* ########## LOCALIZATION ############ */
-/* ############################################ */
-
-function getBaseUri(uri) {
- var intlUrl = (uri.substring(0,6) == "/intl/");
- if (intlUrl) {
- base = uri.substring(uri.indexOf('intl/')+5,uri.length);
- base = base.substring(base.indexOf('/')+1, base.length);
- //alert("intl, returning base url: /" + base);
- return ("/" + base);
- } else {
- //alert("not intl, returning uri as found.");
- return uri;
- }
-}
-
-function requestAppendHL(uri) {
-//append "?hl=<lang> to an outgoing request (such as to blog)
- var lang = getLangPref();
- if (lang) {
- var q = 'hl=' + lang;
- uri += '?' + q;
- window.location = uri;
- return false;
- } else {
- return true;
- }
-}
-
-
-function changeNavLang(lang) {
- var $links = $("#devdoc-nav,#header,#nav-x,.training-nav-top,.content-footer").find("a["+lang+"-lang]");
- $links.each(function(i){ // for each link with a translation
- var $link = $(this);
- if (lang != "en") { // No need to worry about English, because a language change invokes new request
- // put the desired language from the attribute as the text
- $link.text($link.attr(lang+"-lang"))
- }
- });
-}
-
-function changeLangPref(lang, submit) {
- writeCookie("pref_lang", lang, null);
-
- // ####### TODO: Remove this condition once we're stable on devsite #######
- // This condition is only needed if we still need to support legacy GAE server
- if (devsite) {
- // Switch language when on Devsite server
- if (submit) {
- $("#setlang").submit();
- }
- } else {
- // Switch language when on legacy GAE server
- if (submit) {
- window.location = getBaseUri(location.pathname);
- }
- }
-}
-
-function loadLangPref() {
- var lang = readCookie("pref_lang");
- if (lang != 0) {
- $("#language").find("option[value='"+lang+"']").attr("selected",true);
- }
-}
-
-function getLangPref() {
- var lang = $("#language").find(":selected").attr("value");
- if (!lang) {
- lang = readCookie("pref_lang");
- }
- return (lang != 0) ? lang : 'en';
-}
-
-/* ########## END LOCALIZATION ############ */
-
-
-
-
-
-
-/* Used to hide and reveal supplemental content, such as long code samples.
- See the companion CSS in android-developer-docs.css */
-function toggleContent(obj) {
- var div = $(obj).closest(".toggle-content");
- var toggleMe = $(".toggle-content-toggleme:eq(0)",div);
- if (div.hasClass("closed")) { // if it's closed, open it
- toggleMe.slideDown();
- $(".toggle-content-text:eq(0)", obj).toggle();
- div.removeClass("closed").addClass("open");
- $(".toggle-content-img:eq(0)", div).attr("title", "hide").attr("src", toRoot
- + "assets/images/triangle-opened.png");
- } else { // if it's open, close it
- toggleMe.slideUp('fast', function() { // Wait until the animation is done before closing arrow
- $(".toggle-content-text:eq(0)", obj).toggle();
- div.removeClass("open").addClass("closed");
- div.find(".toggle-content").removeClass("open").addClass("closed")
- .find(".toggle-content-toggleme").hide();
- $(".toggle-content-img", div).attr("title", "show").attr("src", toRoot
- + "assets/images/triangle-closed.png");
- });
- }
- return false;
-}
-
-
-/* New version of expandable content */
-function toggleExpandable(link,id) {
- if($(id).is(':visible')) {
- $(id).slideUp();
- $(link).removeClass('expanded');
- } else {
- $(id).slideDown();
- $(link).addClass('expanded');
- }
-}
-
-function hideExpandable(ids) {
- $(ids).slideUp();
- $(ids).prev('h4').find('a.expandable').removeClass('expanded');
-}
-
-
-
-
-
-/*
- * Slideshow 1.0
- * Used on /index.html and /develop/index.html for carousel
- *
- * Sample usage:
- * HTML -
- * <div class="slideshow-container">
- * <a href="" class="slideshow-prev">Prev</a>
- * <a href="" class="slideshow-next">Next</a>
- * <ul>
- * <li class="item"><img src="images/marquee1.jpg"></li>
- * <li class="item"><img src="images/marquee2.jpg"></li>
- * <li class="item"><img src="images/marquee3.jpg"></li>
- * <li class="item"><img src="images/marquee4.jpg"></li>
- * </ul>
- * </div>
- *
- * <script type="text/javascript">
- * $('.slideshow-container').dacSlideshow({
- * auto: true,
- * btnPrev: '.slideshow-prev',
- * btnNext: '.slideshow-next'
- * });
- * </script>
- *
- * Options:
- * btnPrev: optional identifier for previous button
- * btnNext: optional identifier for next button
- * btnPause: optional identifier for pause button
- * auto: whether or not to auto-proceed
- * speed: animation speed
- * autoTime: time between auto-rotation
- * easing: easing function for transition
- * start: item to select by default
- * scroll: direction to scroll in
- * pagination: whether or not to include dotted pagination
- *
- */
-
- (function($) {
- $.fn.dacSlideshow = function(o) {
-
- //Options - see above
- o = $.extend({
- btnPrev: null,
- btnNext: null,
- btnPause: null,
- auto: true,
- speed: 500,
- autoTime: 12000,
- easing: null,
- start: 0,
- scroll: 1,
- pagination: true
-
- }, o || {});
-
- //Set up a carousel for each
- return this.each(function() {
-
- var running = false;
- var animCss = o.vertical ? "top" : "left";
- var sizeCss = o.vertical ? "height" : "width";
- var div = $(this);
- var ul = $("ul", div);
- var tLi = $("li", ul);
- var tl = tLi.size();
- var timer = null;
-
- var li = $("li", ul);
- var itemLength = li.size();
- var curr = o.start;
-
- li.css({float: o.vertical ? "none" : "left"});
- ul.css({margin: "0", padding: "0", position: "relative", "list-style-type": "none", "z-index": "1"});
- div.css({position: "relative", "z-index": "2", left: "0px"});
-
- var liSize = o.vertical ? height(li) : width(li);
- var ulSize = liSize * itemLength;
- var divSize = liSize;
-
- li.css({width: li.width(), height: li.height()});
- ul.css(sizeCss, ulSize+"px").css(animCss, -(curr*liSize));
-
- div.css(sizeCss, divSize+"px");
-
- //Pagination
- if (o.pagination) {
- var pagination = $("<div class='pagination'></div>");
- var pag_ul = $("<ul></ul>");
- if (tl > 1) {
- for (var i=0;i<tl;i++) {
- var li = $("<li>"+i+"</li>");
- pag_ul.append(li);
- if (i==o.start) li.addClass('active');
- li.click(function() {
- go(parseInt($(this).text()));
- })
- }
- pagination.append(pag_ul);
- div.append(pagination);
- }
- }
-
- //Previous button
- if(o.btnPrev)
- $(o.btnPrev).click(function(e) {
- e.preventDefault();
- return go(curr-o.scroll);
- });
-
- //Next button
- if(o.btnNext)
- $(o.btnNext).click(function(e) {
- e.preventDefault();
- return go(curr+o.scroll);
- });
-
- //Pause button
- if(o.btnPause)
- $(o.btnPause).click(function(e) {
- e.preventDefault();
- if ($(this).hasClass('paused')) {
- startRotateTimer();
- } else {
- pauseRotateTimer();
- }
- });
-
- //Auto rotation
- if(o.auto) startRotateTimer();
-
- function startRotateTimer() {
- clearInterval(timer);
- timer = setInterval(function() {
- if (curr == tl-1) {
- go(0);
- } else {
- go(curr+o.scroll);
- }
- }, o.autoTime);
- $(o.btnPause).removeClass('paused');
- }
-
- function pauseRotateTimer() {
- clearInterval(timer);
- $(o.btnPause).addClass('paused');
- }
-
- //Go to an item
- function go(to) {
- if(!running) {
-
- if(to<0) {
- to = itemLength-1;
- } else if (to>itemLength-1) {
- to = 0;
- }
- curr = to;
-
- running = true;
-
- ul.animate(
- animCss == "left" ? { left: -(curr*liSize) } : { top: -(curr*liSize) } , o.speed, o.easing,
- function() {
- running = false;
- }
- );
-
- $(o.btnPrev + "," + o.btnNext).removeClass("disabled");
- $( (curr-o.scroll<0 && o.btnPrev)
- ||
- (curr+o.scroll > itemLength && o.btnNext)
- ||
- []
- ).addClass("disabled");
-
-
- var nav_items = $('li', pagination);
- nav_items.removeClass('active');
- nav_items.eq(to).addClass('active');
-
-
- }
- if(o.auto) startRotateTimer();
- return false;
- };
- });
- };
-
- function css(el, prop) {
- return parseInt($.css(el[0], prop)) || 0;
- };
- function width(el) {
- return el[0].offsetWidth + css(el, 'marginLeft') + css(el, 'marginRight');
- };
- function height(el) {
- return el[0].offsetHeight + css(el, 'marginTop') + css(el, 'marginBottom');
- };
-
- })(jQuery);
-
-
-/*
- * dacSlideshow 1.0
- * Used on develop/index.html for side-sliding tabs
- *
- * Sample usage:
- * HTML -
- * <div class="slideshow-container">
- * <a href="" class="slideshow-prev">Prev</a>
- * <a href="" class="slideshow-next">Next</a>
- * <ul>
- * <li class="item"><img src="images/marquee1.jpg"></li>
- * <li class="item"><img src="images/marquee2.jpg"></li>
- * <li class="item"><img src="images/marquee3.jpg"></li>
- * <li class="item"><img src="images/marquee4.jpg"></li>
- * </ul>
- * </div>
- *
- * <script type="text/javascript">
- * $('.slideshow-container').dacSlideshow({
- * auto: true,
- * btnPrev: '.slideshow-prev',
- * btnNext: '.slideshow-next'
- * });
- * </script>
- *
- * Options:
- * btnPrev: optional identifier for previous button
- * btnNext: optional identifier for next button
- * auto: whether or not to auto-proceed
- * speed: animation speed
- * autoTime: time between auto-rotation
- * easing: easing function for transition
- * start: item to select by default
- * scroll: direction to scroll in
- * pagination: whether or not to include dotted pagination
- *
- */
- (function($) {
- $.fn.dacTabbedList = function(o) {
-
- //Options - see above
- o = $.extend({
- speed : 250,
- easing: null,
- nav_id: null,
- frame_id: null
- }, o || {});
-
- //Set up a carousel for each
- return this.each(function() {
-
- var curr = 0;
- var running = false;
- var animCss = "margin-left";
- var sizeCss = "width";
- var div = $(this);
-
- var nav = $(o.nav_id, div);
- var nav_li = $("li", nav);
- var nav_size = nav_li.size();
- var frame = div.find(o.frame_id);
- var content_width = $(frame).find('ul').width();
- //Buttons
- $(nav_li).click(function(e) {
- go($(nav_li).index($(this)));
- })
-
- //Go to an item
- function go(to) {
- if(!running) {
- curr = to;
- running = true;
-
- frame.animate({ 'margin-left' : -(curr*content_width) }, o.speed, o.easing,
- function() {
- running = false;
- }
- );
-
-
- nav_li.removeClass('active');
- nav_li.eq(to).addClass('active');
-
-
- }
- return false;
- };
- });
- };
-
- function css(el, prop) {
- return parseInt($.css(el[0], prop)) || 0;
- };
- function width(el) {
- return el[0].offsetWidth + css(el, 'marginLeft') + css(el, 'marginRight');
- };
- function height(el) {
- return el[0].offsetHeight + css(el, 'marginTop') + css(el, 'marginBottom');
- };
-
- })(jQuery);
-
-
-
-
-
-/* ######################################################## */
-/* ################ SEARCH SUGGESTIONS ################## */
-/* ######################################################## */
-
-
-
-var gSelectedIndex = -1; // the index position of currently highlighted suggestion
-var gSelectedColumn = -1; // which column of suggestion lists is currently focused
-
-var gMatches = new Array();
-var gLastText = "";
-var gInitialized = false;
-var ROW_COUNT_FRAMEWORK = 20; // max number of results in list
-var gListLength = 0;
-
-
-var gGoogleMatches = new Array();
-var ROW_COUNT_GOOGLE = 15; // max number of results in list
-var gGoogleListLength = 0;
-
-var gDocsMatches = new Array();
-var ROW_COUNT_DOCS = 100; // max number of results in list
-var gDocsListLength = 0;
-
-function onSuggestionClick(link) {
- // When user clicks a suggested document, track it
- ga('send', 'event', 'Suggestion Click', 'clicked: ' + $(link).attr('href'),
- 'query: ' + $("#search_autocomplete").val().toLowerCase());
-}
-
-function set_item_selected($li, selected)
-{
- if (selected) {
- $li.attr('class','jd-autocomplete jd-selected');
- } else {
- $li.attr('class','jd-autocomplete');
- }
-}
-
-function set_item_values(toroot, $li, match)
-{
- var $link = $('a',$li);
- $link.html(match.__hilabel || match.label);
- $link.attr('href',toroot + match.link);
-}
-
-function set_item_values_jd(toroot, $li, match)
-{
- var $link = $('a',$li);
- $link.html(match.title);
- $link.attr('href',toroot + match.url);
-}
-
-function new_suggestion($list) {
- var $li = $("<li class='jd-autocomplete'></li>");
- $list.append($li);
-
- $li.mousedown(function() {
- window.location = this.firstChild.getAttribute("href");
- });
- $li.mouseover(function() {
- $('.search_filtered_wrapper li').removeClass('jd-selected');
- $(this).addClass('jd-selected');
- gSelectedColumn = $(".search_filtered:visible").index($(this).closest('.search_filtered'));
- gSelectedIndex = $("li", $(".search_filtered:visible")[gSelectedColumn]).index(this);
- });
- $li.append("<a onclick='onSuggestionClick(this)'></a>");
- $li.attr('class','show-item');
- return $li;
-}
-
-function sync_selection_table(toroot)
-{
- var $li; //list item jquery object
- var i; //list item iterator
-
- // if there are NO results at all, hide all columns
- if (!(gMatches.length > 0) && !(gGoogleMatches.length > 0) && !(gDocsMatches.length > 0)) {
- $('.suggest-card').hide(300);
- return;
- }
-
- // if there are api results
- if ((gMatches.length > 0) || (gGoogleMatches.length > 0)) {
- // reveal suggestion list
- $('.suggest-card.dummy').show();
- $('.suggest-card.reference').show();
- var listIndex = 0; // list index position
-
- // reset the lists
- $(".search_filtered_wrapper.reference li").remove();
-
- // ########### ANDROID RESULTS #############
- if (gMatches.length > 0) {
-
- // determine android results to show
- gListLength = gMatches.length < ROW_COUNT_FRAMEWORK ?
- gMatches.length : ROW_COUNT_FRAMEWORK;
- for (i=0; i<gListLength; i++) {
- var $li = new_suggestion($(".suggest-card.reference ul"));
- set_item_values(toroot, $li, gMatches[i]);
- set_item_selected($li, i == gSelectedIndex);
- }
- }
-
- // ########### GOOGLE RESULTS #############
- if (gGoogleMatches.length > 0) {
- // show header for list
- $(".suggest-card.reference ul").append("<li class='header'>in Google Services:</li>");
-
- // determine google results to show
- gGoogleListLength = gGoogleMatches.length < ROW_COUNT_GOOGLE ? gGoogleMatches.length : ROW_COUNT_GOOGLE;
- for (i=0; i<gGoogleListLength; i++) {
- var $li = new_suggestion($(".suggest-card.reference ul"));
- set_item_values(toroot, $li, gGoogleMatches[i]);
- set_item_selected($li, i == gSelectedIndex);
- }
- }
- } else {
- $('.suggest-card.reference').hide();
- $('.suggest-card.dummy').hide();
- }
-
- // ########### JD DOC RESULTS #############
- if (gDocsMatches.length > 0) {
- // reset the lists
- $(".search_filtered_wrapper.docs li").remove();
-
- // determine google results to show
- // NOTE: The order of the conditions below for the sugg.type MUST BE SPECIFIC:
- // The order must match the reverse order that each section appears as a card in
- // the suggestion UI... this may be only for the "develop" grouped items though.
- gDocsListLength = gDocsMatches.length < ROW_COUNT_DOCS ? gDocsMatches.length : ROW_COUNT_DOCS;
- for (i=0; i<gDocsListLength; i++) {
- var sugg = gDocsMatches[i];
- var $li;
- if (sugg.type == "design") {
- $li = new_suggestion($(".suggest-card.design ul"));
- } else
- if (sugg.type == "distribute") {
- $li = new_suggestion($(".suggest-card.distribute ul"));
- } else
- if (sugg.type == "samples") {
- $li = new_suggestion($(".suggest-card.develop .child-card.samples"));
- } else
- if (sugg.type == "training") {
- $li = new_suggestion($(".suggest-card.develop .child-card.training"));
- } else
- if (sugg.type == "about"||"guide"||"tools"||"google") {
- $li = new_suggestion($(".suggest-card.develop .child-card.guides"));
- } else {
- continue;
- }
-
- set_item_values_jd(toroot, $li, sugg);
- set_item_selected($li, i == gSelectedIndex);
- }
-
- // add heading and show or hide card
- if ($(".suggest-card.design li").length > 0) {
- $(".suggest-card.design ul").prepend("<li class='header'>Design:</li>");
- $(".suggest-card.design").show(300);
- } else {
- $('.suggest-card.design').hide(300);
- }
- if ($(".suggest-card.distribute li").length > 0) {
- $(".suggest-card.distribute ul").prepend("<li class='header'>Distribute:</li>");
- $(".suggest-card.distribute").show(300);
- } else {
- $('.suggest-card.distribute').hide(300);
- }
- if ($(".child-card.guides li").length > 0) {
- $(".child-card.guides").prepend("<li class='header'>Guides:</li>");
- $(".child-card.guides li").appendTo(".suggest-card.develop ul");
- }
- if ($(".child-card.training li").length > 0) {
- $(".child-card.training").prepend("<li class='header'>Training:</li>");
- $(".child-card.training li").appendTo(".suggest-card.develop ul");
- }
- if ($(".child-card.samples li").length > 0) {
- $(".child-card.samples").prepend("<li class='header'>Samples:</li>");
- $(".child-card.samples li").appendTo(".suggest-card.develop ul");
- }
-
- if ($(".suggest-card.develop li").length > 0) {
- $(".suggest-card.develop").show(300);
- } else {
- $('.suggest-card.develop').hide(300);
- }
-
- } else {
- $('.search_filtered_wrapper.docs .suggest-card:not(.dummy)').hide(300);
- }
-}
-
-/** Called by the search input's onkeydown and onkeyup events.
- * Handles navigation with keyboard arrows, Enter key to invoke search,
- * otherwise invokes search suggestions on key-up event.
- * @param e The JS event
- * @param kd True if the event is key-down
- * @param toroot A string for the site's root path
- * @returns True if the event should bubble up
- */
-function search_changed(e, kd, toroot)
-{
- var currentLang = getLangPref();
- var search = document.getElementById("search_autocomplete");
- var text = search.value.replace(/(^ +)|( +$)/g, '');
- // get the ul hosting the currently selected item
- gSelectedColumn = gSelectedColumn >= 0 ? gSelectedColumn : 0;
- var $columns = $(".search_filtered_wrapper").find(".search_filtered:visible");
- var $selectedUl = $columns[gSelectedColumn];
-
- // show/hide the close button
- if (text != '') {
- $(".search .close").removeClass("hide");
- } else {
- $(".search .close").addClass("hide");
- }
- // 27 = esc
- if (e.keyCode == 27) {
- // close all search results
- if (kd) $('.search .close').trigger('click');
- return true;
- }
- // 13 = enter
- else if (e.keyCode == 13) {
- if (gSelectedIndex < 0) {
- $('.suggest-card').hide();
- if ($("#searchResults").is(":hidden") && (search.value != "")) {
- // if results aren't showing (and text not empty), return true to allow search to execute
- $('body,html').animate({scrollTop:0}, '500', 'swing');
- return true;
- } else {
- // otherwise, results are already showing, so allow ajax to auto refresh the results
- // and ignore this Enter press to avoid the reload.
- return false;
- }
- } else if (kd && gSelectedIndex >= 0) {
- // click the link corresponding to selected item
- $("a",$("li",$selectedUl)[gSelectedIndex]).get()[0].click();
- return false;
- }
- }
- // If Google results are showing, return true to allow ajax search to execute
- else if ($("#searchResults").is(":visible")) {
- // Also, if search_results is scrolled out of view, scroll to top to make results visible
- if ((sticky ) && (search.value != "")) {
- $('body,html').animate({scrollTop:0}, '500', 'swing');
- }
- return true;
- }
- // 38 UP ARROW
- else if (kd && (e.keyCode == 38)) {
- // if the next item is a header, skip it
- if ($($("li", $selectedUl)[gSelectedIndex-1]).hasClass("header")) {
- gSelectedIndex--;
- }
- if (gSelectedIndex >= 0) {
- $('li', $selectedUl).removeClass('jd-selected');
- gSelectedIndex--;
- $('li:nth-child('+(gSelectedIndex+1)+')', $selectedUl).addClass('jd-selected');
- // If user reaches top, reset selected column
- if (gSelectedIndex < 0) {
- gSelectedColumn = -1;
- }
- }
- return false;
- }
- // 40 DOWN ARROW
- else if (kd && (e.keyCode == 40)) {
- // if the next item is a header, skip it
- if ($($("li", $selectedUl)[gSelectedIndex+1]).hasClass("header")) {
- gSelectedIndex++;
- }
- if ((gSelectedIndex < $("li", $selectedUl).length-1) ||
- ($($("li", $selectedUl)[gSelectedIndex+1]).hasClass("header"))) {
- $('li', $selectedUl).removeClass('jd-selected');
- gSelectedIndex++;
- $('li:nth-child('+(gSelectedIndex+1)+')', $selectedUl).addClass('jd-selected');
- }
- return false;
- }
- // Consider left/right arrow navigation
- // NOTE: Order of suggest columns are reverse order (index position 0 is on right)
- else if (kd && $columns.length > 1 && gSelectedColumn >= 0) {
- // 37 LEFT ARROW
- // go left only if current column is not left-most column (last column)
- if (e.keyCode == 37 && gSelectedColumn < $columns.length - 1) {
- $('li', $selectedUl).removeClass('jd-selected');
- gSelectedColumn++;
- $selectedUl = $columns[gSelectedColumn];
- // keep or reset the selected item to last item as appropriate
- gSelectedIndex = gSelectedIndex >
- $("li", $selectedUl).length-1 ?
- $("li", $selectedUl).length-1 : gSelectedIndex;
- // if the corresponding item is a header, move down
- if ($($("li", $selectedUl)[gSelectedIndex]).hasClass("header")) {
- gSelectedIndex++;
- }
- // set item selected
- $('li:nth-child('+(gSelectedIndex+1)+')', $selectedUl).addClass('jd-selected');
- return false;
- }
- // 39 RIGHT ARROW
- // go right only if current column is not the right-most column (first column)
- else if (e.keyCode == 39 && gSelectedColumn > 0) {
- $('li', $selectedUl).removeClass('jd-selected');
- gSelectedColumn--;
- $selectedUl = $columns[gSelectedColumn];
- // keep or reset the selected item to last item as appropriate
- gSelectedIndex = gSelectedIndex >
- $("li", $selectedUl).length-1 ?
- $("li", $selectedUl).length-1 : gSelectedIndex;
- // if the corresponding item is a header, move down
- if ($($("li", $selectedUl)[gSelectedIndex]).hasClass("header")) {
- gSelectedIndex++;
- }
- // set item selected
- $('li:nth-child('+(gSelectedIndex+1)+')', $selectedUl).addClass('jd-selected');
- return false;
- }
- }
-
- // if key-up event and not arrow down/up/left/right,
- // read the search query and add suggestions to gMatches
- else if (!kd && (e.keyCode != 40)
- && (e.keyCode != 38)
- && (e.keyCode != 37)
- && (e.keyCode != 39)) {
- gSelectedIndex = -1;
- gMatches = new Array();
- matchedCount = 0;
- gGoogleMatches = new Array();
- matchedCountGoogle = 0;
- gDocsMatches = new Array();
- matchedCountDocs = 0;
-
- // Search for Android matches
- for (var i=0; i<DATA.length; i++) {
- var s = DATA[i];
- if (text.length != 0 &&
- s.label.toLowerCase().indexOf(text.toLowerCase()) != -1) {
- gMatches[matchedCount] = s;
- matchedCount++;
- }
- }
- rank_autocomplete_api_results(text, gMatches);
- for (var i=0; i<gMatches.length; i++) {
- var s = gMatches[i];
- }
-
-
- // Search for Google matches
- for (var i=0; i<GOOGLE_DATA.length; i++) {
- var s = GOOGLE_DATA[i];
- if (text.length != 0 &&
- s.label.toLowerCase().indexOf(text.toLowerCase()) != -1) {
- gGoogleMatches[matchedCountGoogle] = s;
- matchedCountGoogle++;
- }
- }
- rank_autocomplete_api_results(text, gGoogleMatches);
- for (var i=0; i<gGoogleMatches.length; i++) {
- var s = gGoogleMatches[i];
- }
-
- highlight_autocomplete_result_labels(text);
-
-
-
- // Search for matching JD docs
- if (text.length >= 2) {
- // Regex to match only the beginning of a word
- var textRegex = new RegExp("\\b" + text.toLowerCase(), "g");
-
-
- // Search for Training classes
- for (var i=0; i<TRAINING_RESOURCES.length; i++) {
- // current search comparison, with counters for tag and title,
- // used later to improve ranking
- var s = TRAINING_RESOURCES[i];
- s.matched_tag = 0;
- s.matched_title = 0;
- var matched = false;
-
- // Check if query matches any tags; work backwards toward 1 to assist ranking
- for (var j = s.keywords.length - 1; j >= 0; j--) {
- // it matches a tag
- if (s.keywords[j].toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_tag = j + 1; // add 1 to index position
- }
- }
- // Don't consider doc title for lessons (only for class landing pages),
- // unless the lesson has a tag that already matches
- if ((s.lang == currentLang) &&
- (!(s.type == "training" && s.url.indexOf("index.html") == -1) || matched)) {
- // it matches the doc title
- if (s.title.toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_title = 1;
- }
- }
- if (matched) {
- gDocsMatches[matchedCountDocs] = s;
- matchedCountDocs++;
- }
- }
-
-
- // Search for API Guides
- for (var i=0; i<GUIDE_RESOURCES.length; i++) {
- // current search comparison, with counters for tag and title,
- // used later to improve ranking
- var s = GUIDE_RESOURCES[i];
- s.matched_tag = 0;
- s.matched_title = 0;
- var matched = false;
-
- // Check if query matches any tags; work backwards toward 1 to assist ranking
- for (var j = s.keywords.length - 1; j >= 0; j--) {
- // it matches a tag
- if (s.keywords[j].toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_tag = j + 1; // add 1 to index position
- }
- }
- // Check if query matches the doc title, but only for current language
- if (s.lang == currentLang) {
- // if query matches the doc title
- if (s.title.toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_title = 1;
- }
- }
- if (matched) {
- gDocsMatches[matchedCountDocs] = s;
- matchedCountDocs++;
- }
- }
-
-
- // Search for Tools Guides
- for (var i=0; i<TOOLS_RESOURCES.length; i++) {
- // current search comparison, with counters for tag and title,
- // used later to improve ranking
- var s = TOOLS_RESOURCES[i];
- s.matched_tag = 0;
- s.matched_title = 0;
- var matched = false;
-
- // Check if query matches any tags; work backwards toward 1 to assist ranking
- for (var j = s.keywords.length - 1; j >= 0; j--) {
- // it matches a tag
- if (s.keywords[j].toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_tag = j + 1; // add 1 to index position
- }
- }
- // Check if query matches the doc title, but only for current language
- if (s.lang == currentLang) {
- // if query matches the doc title
- if (s.title.toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_title = 1;
- }
- }
- if (matched) {
- gDocsMatches[matchedCountDocs] = s;
- matchedCountDocs++;
- }
- }
-
-
- // Search for About docs
- for (var i=0; i<ABOUT_RESOURCES.length; i++) {
- // current search comparison, with counters for tag and title,
- // used later to improve ranking
- var s = ABOUT_RESOURCES[i];
- s.matched_tag = 0;
- s.matched_title = 0;
- var matched = false;
-
- // Check if query matches any tags; work backwards toward 1 to assist ranking
- for (var j = s.keywords.length - 1; j >= 0; j--) {
- // it matches a tag
- if (s.keywords[j].toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_tag = j + 1; // add 1 to index position
- }
- }
- // Check if query matches the doc title, but only for current language
- if (s.lang == currentLang) {
- // if query matches the doc title
- if (s.title.toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_title = 1;
- }
- }
- if (matched) {
- gDocsMatches[matchedCountDocs] = s;
- matchedCountDocs++;
- }
- }
-
-
- // Search for Design guides
- for (var i=0; i<DESIGN_RESOURCES.length; i++) {
- // current search comparison, with counters for tag and title,
- // used later to improve ranking
- var s = DESIGN_RESOURCES[i];
- s.matched_tag = 0;
- s.matched_title = 0;
- var matched = false;
-
- // Check if query matches any tags; work backwards toward 1 to assist ranking
- for (var j = s.keywords.length - 1; j >= 0; j--) {
- // it matches a tag
- if (s.keywords[j].toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_tag = j + 1; // add 1 to index position
- }
- }
- // Check if query matches the doc title, but only for current language
- if (s.lang == currentLang) {
- // if query matches the doc title
- if (s.title.toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_title = 1;
- }
- }
- if (matched) {
- gDocsMatches[matchedCountDocs] = s;
- matchedCountDocs++;
- }
- }
-
-
- // Search for Distribute guides
- for (var i=0; i<DISTRIBUTE_RESOURCES.length; i++) {
- // current search comparison, with counters for tag and title,
- // used later to improve ranking
- var s = DISTRIBUTE_RESOURCES[i];
- s.matched_tag = 0;
- s.matched_title = 0;
- var matched = false;
-
- // Check if query matches any tags; work backwards toward 1 to assist ranking
- for (var j = s.keywords.length - 1; j >= 0; j--) {
- // it matches a tag
- if (s.keywords[j].toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_tag = j + 1; // add 1 to index position
- }
- }
- // Check if query matches the doc title, but only for current language
- if (s.lang == currentLang) {
- // if query matches the doc title
- if (s.title.toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_title = 1;
- }
- }
- if (matched) {
- gDocsMatches[matchedCountDocs] = s;
- matchedCountDocs++;
- }
- }
-
-
- // Search for Google guides
- for (var i=0; i<GOOGLE_RESOURCES.length; i++) {
- // current search comparison, with counters for tag and title,
- // used later to improve ranking
- var s = GOOGLE_RESOURCES[i];
- s.matched_tag = 0;
- s.matched_title = 0;
- var matched = false;
-
- // Check if query matches any tags; work backwards toward 1 to assist ranking
- for (var j = s.keywords.length - 1; j >= 0; j--) {
- // it matches a tag
- if (s.keywords[j].toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_tag = j + 1; // add 1 to index position
- }
- }
- // Check if query matches the doc title, but only for current language
- if (s.lang == currentLang) {
- // if query matches the doc title
- if (s.title.toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_title = 1;
- }
- }
- if (matched) {
- gDocsMatches[matchedCountDocs] = s;
- matchedCountDocs++;
- }
- }
-
-
- // Search for Samples
- for (var i=0; i<SAMPLES_RESOURCES.length; i++) {
- // current search comparison, with counters for tag and title,
- // used later to improve ranking
- var s = SAMPLES_RESOURCES[i];
- s.matched_tag = 0;
- s.matched_title = 0;
- var matched = false;
- // Check if query matches any tags; work backwards toward 1 to assist ranking
- for (var j = s.keywords.length - 1; j >= 0; j--) {
- // it matches a tag
- if (s.keywords[j].toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_tag = j + 1; // add 1 to index position
- }
- }
- // Check if query matches the doc title, but only for current language
- if (s.lang == currentLang) {
- // if query matches the doc title.t
- if (s.title.toLowerCase().match(textRegex)) {
- matched = true;
- s.matched_title = 1;
- }
- }
- if (matched) {
- gDocsMatches[matchedCountDocs] = s;
- matchedCountDocs++;
- }
- }
-
- // Rank/sort all the matched pages
- rank_autocomplete_doc_results(text, gDocsMatches);
- }
-
- // draw the suggestions
- sync_selection_table(toroot);
- return true; // allow the event to bubble up to the search api
- }
-}
-
-/* Order the jd doc result list based on match quality */
-function rank_autocomplete_doc_results(query, matches) {
- query = query || '';
- if (!matches || !matches.length)
- return;
-
- var _resultScoreFn = function(match) {
- var score = 1.0;
-
- // if the query matched a tag
- if (match.matched_tag > 0) {
- // multiply score by factor relative to position in tags list (max of 3)
- score *= 3 / match.matched_tag;
-
- // if it also matched the title
- if (match.matched_title > 0) {
- score *= 2;
- }
- } else if (match.matched_title > 0) {
- score *= 3;
- }
-
- return score;
- };
-
- for (var i=0; i<matches.length; i++) {
- matches[i].__resultScore = _resultScoreFn(matches[i]);
- }
-
- matches.sort(function(a,b){
- var n = b.__resultScore - a.__resultScore;
- if (n == 0) // lexicographical sort if scores are the same
- n = (a.label < b.label) ? -1 : 1;
- return n;
- });
-}
-
-/* Order the result list based on match quality */
-function rank_autocomplete_api_results(query, matches) {
- query = query || '';
- if (!matches || !matches.length)
- return;
-
- // helper function that gets the last occurence index of the given regex
- // in the given string, or -1 if not found
- var _lastSearch = function(s, re) {
- if (s == '')
- return -1;
- var l = -1;
- var tmp;
- while ((tmp = s.search(re)) >= 0) {
- if (l < 0) l = 0;
- l += tmp;
- s = s.substr(tmp + 1);
- }
- return l;
- };
-
- // helper function that counts the occurrences of a given character in
- // a given string
- var _countChar = function(s, c) {
- var n = 0;
- for (var i=0; i<s.length; i++)
- if (s.charAt(i) == c) ++n;
- return n;
- };
-
- var queryLower = query.toLowerCase();
- var queryAlnum = (queryLower.match(/\w+/) || [''])[0];
- var partPrefixAlnumRE = new RegExp('\\b' + queryAlnum);
- var partExactAlnumRE = new RegExp('\\b' + queryAlnum + '\\b');
-
- var _resultScoreFn = function(result) {
- // scores are calculated based on exact and prefix matches,
- // and then number of path separators (dots) from the last
- // match (i.e. favoring classes and deep package names)
- var score = 1.0;
- var labelLower = result.label.toLowerCase();
- var t;
- t = _lastSearch(labelLower, partExactAlnumRE);
- if (t >= 0) {
- // exact part match
- var partsAfter = _countChar(labelLower.substr(t + 1), '.');
- score *= 200 / (partsAfter + 1);
- } else {
- t = _lastSearch(labelLower, partPrefixAlnumRE);
- if (t >= 0) {
- // part prefix match
- var partsAfter = _countChar(labelLower.substr(t + 1), '.');
- score *= 20 / (partsAfter + 1);
- }
- }
-
- return score;
- };
-
- for (var i=0; i<matches.length; i++) {
- // if the API is deprecated, default score is 0; otherwise, perform scoring
- if (matches[i].deprecated == "true") {
- matches[i].__resultScore = 0;
- } else {
- matches[i].__resultScore = _resultScoreFn(matches[i]);
- }
- }
-
- matches.sort(function(a,b){
- var n = b.__resultScore - a.__resultScore;
- if (n == 0) // lexicographical sort if scores are the same
- n = (a.label < b.label) ? -1 : 1;
- return n;
- });
-}
-
-/* Add emphasis to part of string that matches query */
-function highlight_autocomplete_result_labels(query) {
- query = query || '';
- if ((!gMatches || !gMatches.length) && (!gGoogleMatches || !gGoogleMatches.length))
- return;
-
- var queryLower = query.toLowerCase();
- var queryAlnumDot = (queryLower.match(/[\w\.]+/) || [''])[0];
- var queryRE = new RegExp(
- '(' + queryAlnumDot.replace(/\./g, '\\.') + ')', 'ig');
- for (var i=0; i<gMatches.length; i++) {
- gMatches[i].__hilabel = gMatches[i].label.replace(
- queryRE, '<b>$1</b>');
- }
- for (var i=0; i<gGoogleMatches.length; i++) {
- gGoogleMatches[i].__hilabel = gGoogleMatches[i].label.replace(
- queryRE, '<b>$1</b>');
- }
-}
-
-function search_focus_changed(obj, focused)
-{
- if (!focused) {
- if(obj.value == ""){
- $(".search .close").addClass("hide");
- }
- $(".suggest-card").hide();
- }
-}
-
-function submit_search() {
- var query = document.getElementById('search_autocomplete').value;
- location.hash = 'q=' + query;
- loadSearchResults();
- $("#searchResults").slideDown('slow', setStickyTop);
- return false;
-}
-
-
-function hideResults() {
- $("#searchResults").slideUp('fast', setStickyTop);
- $(".search .close").addClass("hide");
- location.hash = '';
-
- $("#search_autocomplete").val("").blur();
-
- // reset the ajax search callback to nothing, so results don't appear unless ENTER
- searchControl.setSearchStartingCallback(this, function(control, searcher, query) {});
-
- // forcefully regain key-up event control (previously jacked by search api)
- $("#search_autocomplete").keyup(function(event) {
- return search_changed(event, false, toRoot);
- });
-
- return false;
-}
-
-
-
-/* ########################################################## */
-/* ################ CUSTOM SEARCH ENGINE ################## */
-/* ########################################################## */
-
-var searchControl;
-google.load('search', '1', {"callback" : function() {
- searchControl = new google.search.SearchControl();
- } });
-
-function loadSearchResults() {
- document.getElementById("search_autocomplete").style.color = "#000";
-
- searchControl = new google.search.SearchControl();
-
- // use our existing search form and use tabs when multiple searchers are used
- drawOptions = new google.search.DrawOptions();
- drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);
- drawOptions.setInput(document.getElementById("search_autocomplete"));
-
- // configure search result options
- searchOptions = new google.search.SearcherOptions();
- searchOptions.setExpandMode(GSearchControl.EXPAND_MODE_OPEN);
-
- // configure each of the searchers, for each tab
- devSiteSearcher = new google.search.WebSearch();
- devSiteSearcher.setUserDefinedLabel("All");
- devSiteSearcher.setSiteRestriction("001482626316274216503:zu90b7s047u");
-
- designSearcher = new google.search.WebSearch();
- designSearcher.setUserDefinedLabel("Design");
- designSearcher.setSiteRestriction("http://developer.android.com/design/");
-
- trainingSearcher = new google.search.WebSearch();
- trainingSearcher.setUserDefinedLabel("Training");
- trainingSearcher.setSiteRestriction("http://developer.android.com/training/");
-
- guidesSearcher = new google.search.WebSearch();
- guidesSearcher.setUserDefinedLabel("Guides");
- guidesSearcher.setSiteRestriction("http://developer.android.com/guide/");
-
- referenceSearcher = new google.search.WebSearch();
- referenceSearcher.setUserDefinedLabel("Reference");
- referenceSearcher.setSiteRestriction("http://developer.android.com/reference/");
-
- googleSearcher = new google.search.WebSearch();
- googleSearcher.setUserDefinedLabel("Google Services");
- googleSearcher.setSiteRestriction("http://developer.android.com/google/");
-
- blogSearcher = new google.search.WebSearch();
- blogSearcher.setUserDefinedLabel("Blog");
- blogSearcher.setSiteRestriction("http://android-developers.blogspot.com");
-
- // add each searcher to the search control
- searchControl.addSearcher(devSiteSearcher, searchOptions);
- searchControl.addSearcher(designSearcher, searchOptions);
- searchControl.addSearcher(trainingSearcher, searchOptions);
- searchControl.addSearcher(guidesSearcher, searchOptions);
- searchControl.addSearcher(referenceSearcher, searchOptions);
- searchControl.addSearcher(googleSearcher, searchOptions);
- searchControl.addSearcher(blogSearcher, searchOptions);
-
- // configure result options
- searchControl.setResultSetSize(google.search.Search.LARGE_RESULTSET);
- searchControl.setLinkTarget(google.search.Search.LINK_TARGET_SELF);
- searchControl.setTimeoutInterval(google.search.SearchControl.TIMEOUT_SHORT);
- searchControl.setNoResultsString(google.search.SearchControl.NO_RESULTS_DEFAULT_STRING);
-
- // upon ajax search, refresh the url and search title
- searchControl.setSearchStartingCallback(this, function(control, searcher, query) {
- updateResultTitle(query);
- var query = document.getElementById('search_autocomplete').value;
- location.hash = 'q=' + query;
- });
-
- // once search results load, set up click listeners
- searchControl.setSearchCompleteCallback(this, function(control, searcher, query) {
- addResultClickListeners();
- });
-
- // draw the search results box
- searchControl.draw(document.getElementById("leftSearchControl"), drawOptions);
-
- // get query and execute the search
- searchControl.execute(decodeURI(getQuery(location.hash)));
-
- document.getElementById("search_autocomplete").focus();
- addTabListeners();
-}
-// End of loadSearchResults
-
-
-google.setOnLoadCallback(function(){
- if (location.hash.indexOf("q=") == -1) {
- // if there's no query in the url, don't search and make sure results are hidden
- $('#searchResults').hide();
- return;
- } else {
- // first time loading search results for this page
- $('#searchResults').slideDown('slow', setStickyTop);
- $(".search .close").removeClass("hide");
- loadSearchResults();
- }
-}, true);
-
-/* Adjust the scroll position to account for sticky header, only if the hash matches an id.
- This does not handle <a name=""> tags. Some CSS fixes those, but only for reference docs. */
-function offsetScrollForSticky() {
- // Ignore if there's no search bar (some special pages have no header)
- if ($("#search-container").length < 1) return;
-
- var hash = escape(location.hash.substr(1));
- var $matchingElement = $("#"+hash);
- // Sanity check that there's an element with that ID on the page
- if ($matchingElement.length) {
- // If the position of the target element is near the top of the page (<20px, where we expect it
- // to be because we need to move it down 60px to become in view), then move it down 60px
- if (Math.abs($matchingElement.offset().top - $(window).scrollTop()) < 20) {
- $(window).scrollTop($(window).scrollTop() - 60);
- }
- }
-}
-
-// when an event on the browser history occurs (back, forward, load) requery hash and do search
-$(window).hashchange( function(){
- // Ignore if there's no search bar (some special pages have no header)
- if ($("#search-container").length < 1) return;
-
- // If the hash isn't a search query or there's an error in the query,
- // then adjust the scroll position to account for sticky header, then exit.
- if ((location.hash.indexOf("q=") == -1) || (query == "undefined")) {
- // If the results pane is open, close it.
- if (!$("#searchResults").is(":hidden")) {
- hideResults();
- }
- offsetScrollForSticky();
- return;
- }
-
- // Otherwise, we have a search to do
- var query = decodeURI(getQuery(location.hash));
- searchControl.execute(query);
- $('#searchResults').slideDown('slow', setStickyTop);
- $("#search_autocomplete").focus();
- $(".search .close").removeClass("hide");
-
- updateResultTitle(query);
-});
-
-function updateResultTitle(query) {
- $("#searchTitle").html("Results for <em>" + escapeHTML(query) + "</em>");
-}
-
-// forcefully regain key-up event control (previously jacked by search api)
-$("#search_autocomplete").keyup(function(event) {
- return search_changed(event, false, toRoot);
-});
-
-// add event listeners to each tab so we can track the browser history
-function addTabListeners() {
- var tabHeaders = $(".gsc-tabHeader");
- for (var i = 0; i < tabHeaders.length; i++) {
- $(tabHeaders[i]).attr("id",i).click(function() {
- /*
- // make a copy of the page numbers for the search left pane
- setTimeout(function() {
- // remove any residual page numbers
- $('#searchResults .gsc-tabsArea .gsc-cursor-box.gs-bidi-start-align').remove();
- // move the page numbers to the left position; make a clone,
- // because the element is drawn to the DOM only once
- // and because we're going to remove it (previous line),
- // we need it to be available to move again as the user navigates
- $('#searchResults .gsc-webResult .gsc-cursor-box.gs-bidi-start-align:visible')
- .clone().appendTo('#searchResults .gsc-tabsArea');
- }, 200);
- */
- });
- }
- setTimeout(function(){$(tabHeaders[0]).click()},200);
-}
-
-// add analytics tracking events to each result link
-function addResultClickListeners() {
- $("#searchResults a.gs-title").each(function(index, link) {
- // When user clicks enter for Google search results, track it
- $(link).click(function() {
- ga('send', 'event', 'Google Click', 'clicked: ' + $(this).attr('href'),
- 'query: ' + $("#search_autocomplete").val().toLowerCase());
- });
- });
-}
-
-
-function getQuery(hash) {
- var queryParts = hash.split('=');
- return queryParts[1];
-}
-
-/* returns the given string with all HTML brackets converted to entities
- TODO: move this to the site's JS library */
-function escapeHTML(string) {
- return string.replace(/</g,"&lt;")
- .replace(/>/g,"&gt;");
-}
-
-
-
-
-
-
-
-/* ######################################################## */
-/* ################# JAVADOC REFERENCE ################### */
-/* ######################################################## */
-
-/* Initialize some droiddoc stuff, but only if we're in the reference */
-if (location.pathname.indexOf("/reference") == 0) {
- if(!(location.pathname.indexOf("/reference-gms/packages.html") == 0)
- && !(location.pathname.indexOf("/reference-gcm/packages.html") == 0)
- && !(location.pathname.indexOf("/reference/com/google") == 0)) {
- $(document).ready(function() {
- // init available apis based on user pref
- changeApiLevel();
- initSidenavHeightResize()
- });
- }
-}
-
-var API_LEVEL_COOKIE = "api_level";
-var minLevel = 1;
-var maxLevel = 1;
-
-/******* SIDENAV DIMENSIONS ************/
-
- function initSidenavHeightResize() {
- // Change the drag bar size to nicely fit the scrollbar positions
- var $dragBar = $(".ui-resizable-s");
- $dragBar.css({'width': $dragBar.parent().width() - 5 + "px"});
-
- $( "#resize-packages-nav" ).resizable({
- containment: "#nav-panels",
- handles: "s",
- alsoResize: "#packages-nav",
- resize: function(event, ui) { resizeNav(); }, /* resize the nav while dragging */
- stop: function(event, ui) { saveNavPanels(); } /* once stopped, save the sizes to cookie */
- });
-
- }
-
-function updateSidenavFixedWidth() {
- if (!sticky) return;
- $('#devdoc-nav').css({
- 'width' : $('#side-nav').css('width'),
- 'margin' : $('#side-nav').css('margin')
- });
- $('#devdoc-nav a.totop').css({'display':'block','width':$("#nav").innerWidth()+'px'});
-
- initSidenavHeightResize();
-}
-
-function updateSidenavFullscreenWidth() {
- if (!sticky) return;
- $('#devdoc-nav').css({
- 'width' : $('#side-nav').css('width'),
- 'margin' : $('#side-nav').css('margin')
- });
- $('#devdoc-nav .totop').css({'left': 'inherit'});
-
- initSidenavHeightResize();
-}
-
-function buildApiLevelSelector() {
- maxLevel = SINCE_DATA.length;
- var userApiLevel = parseInt(readCookie(API_LEVEL_COOKIE));
- userApiLevel = userApiLevel == 0 ? maxLevel : userApiLevel; // If there's no cookie (zero), use the max by default
-
- minLevel = parseInt($("#doc-api-level").attr("class"));
- // Handle provisional api levels; the provisional level will always be the highest possible level
- // Provisional api levels will also have a length; other stuff that's just missing a level won't,
- // so leave those kinds of entities at the default level of 1 (for example, the R.styleable class)
- if (isNaN(minLevel) && minLevel.length) {
- minLevel = maxLevel;
- }
- var select = $("#apiLevelSelector").html("").change(changeApiLevel);
- for (var i = maxLevel-1; i >= 0; i--) {
- var option = $("<option />").attr("value",""+SINCE_DATA[i]).append(""+SINCE_DATA[i]);
- // if (SINCE_DATA[i] < minLevel) option.addClass("absent"); // always false for strings (codenames)
- select.append(option);
- }
-
- // get the DOM element and use setAttribute cuz IE6 fails when using jquery .attr('selected',true)
- var selectedLevelItem = $("#apiLevelSelector option[value='"+userApiLevel+"']").get(0);
- selectedLevelItem.setAttribute('selected',true);
-}
-
-function changeApiLevel() {
- maxLevel = SINCE_DATA.length;
- var selectedLevel = maxLevel;
-
- selectedLevel = parseInt($("#apiLevelSelector option:selected").val());
- toggleVisisbleApis(selectedLevel, "body");
-
- writeCookie(API_LEVEL_COOKIE, selectedLevel, null);
-
- if (selectedLevel < minLevel) {
- var thing = ($("#jd-header").html().indexOf("package") != -1) ? "package" : "class";
- $("#naMessage").show().html("<div><p><strong>This " + thing
- + " requires API level " + minLevel + " or higher.</strong></p>"
- + "<p>This document is hidden because your selected API level for the documentation is "
- + selectedLevel + ". You can change the documentation API level with the selector "
- + "above the left navigation.</p>"
- + "<p>For more information about specifying the API level your app requires, "
- + "read <a href='" + toRoot + "training/basics/supporting-devices/platforms.html'"
- + ">Supporting Different Platform Versions</a>.</p>"
- + "<input type='button' value='OK, make this page visible' "
- + "title='Change the API level to " + minLevel + "' "
- + "onclick='$(\"#apiLevelSelector\").val(\"" + minLevel + "\");changeApiLevel();' />"
- + "</div>");
- } else {
- $("#naMessage").hide();
- }
-}
-
-function toggleVisisbleApis(selectedLevel, context) {
- var apis = $(".api",context);
- apis.each(function(i) {
- var obj = $(this);
- var className = obj.attr("class");
- var apiLevelIndex = className.lastIndexOf("-")+1;
- var apiLevelEndIndex = className.indexOf(" ", apiLevelIndex);
- apiLevelEndIndex = apiLevelEndIndex != -1 ? apiLevelEndIndex : className.length;
- var apiLevel = className.substring(apiLevelIndex, apiLevelEndIndex);
- if (apiLevel.length == 0) { // for odd cases when the since data is actually missing, just bail
- return;
- }
- apiLevel = parseInt(apiLevel);
-
- // Handle provisional api levels; if this item's level is the provisional one, set it to the max
- var selectedLevelNum = parseInt(selectedLevel)
- var apiLevelNum = parseInt(apiLevel);
- if (isNaN(apiLevelNum)) {
- apiLevelNum = maxLevel;
- }
-
- // Grey things out that aren't available and give a tooltip title
- if (apiLevelNum > selectedLevelNum) {
- obj.addClass("absent").attr("title","Requires API Level \""
- + apiLevel + "\" or higher. To reveal, change the target API level "
- + "above the left navigation.");
- }
- else obj.removeClass("absent").removeAttr("title");
- });
-}
-
-
-
-
-/* ################# SIDENAV TREE VIEW ################### */
-
-function new_node(me, mom, text, link, children_data, api_level)
-{
- var node = new Object();
- node.children = Array();
- node.children_data = children_data;
- node.depth = mom.depth + 1;
-
- node.li = document.createElement("li");
- mom.get_children_ul().appendChild(node.li);
-
- node.label_div = document.createElement("div");
- node.label_div.className = "label";
- if (api_level != null) {
- $(node.label_div).addClass("api");
- $(node.label_div).addClass("api-level-"+api_level);
- }
- node.li.appendChild(node.label_div);
-
- if (children_data != null) {
- node.expand_toggle = document.createElement("a");
- node.expand_toggle.href = "javascript:void(0)";
- node.expand_toggle.onclick = function() {
- if (node.expanded) {
- $(node.get_children_ul()).slideUp("fast");
- node.plus_img.src = me.toroot + "assets/images/triangle-closed-small.png";
- node.expanded = false;
- } else {
- expand_node(me, node);
- }
- };
- node.label_div.appendChild(node.expand_toggle);
-
- node.plus_img = document.createElement("img");
- node.plus_img.src = me.toroot + "assets/images/triangle-closed-small.png";
- node.plus_img.className = "plus";
- node.plus_img.width = "8";
- node.plus_img.border = "0";
- node.expand_toggle.appendChild(node.plus_img);
-
- node.expanded = false;
- }
-
- var a = document.createElement("a");
- node.label_div.appendChild(a);
- node.label = document.createTextNode(text);
- a.appendChild(node.label);
- if (link) {
- a.href = me.toroot + link;
- } else {
- if (children_data != null) {
- a.className = "nolink";
- a.href = "javascript:void(0)";
- a.onclick = node.expand_toggle.onclick;
- // This next line shouldn't be necessary. I'll buy a beer for the first
- // person who figures out how to remove this line and have the link
- // toggle shut on the first try. --joeo@android.com
- node.expanded = false;
- }
- }
-
-
- node.children_ul = null;
- node.get_children_ul = function() {
- if (!node.children_ul) {
- node.children_ul = document.createElement("ul");
- node.children_ul.className = "children_ul";
- node.children_ul.style.display = "none";
- node.li.appendChild(node.children_ul);
- }
- return node.children_ul;
- };
-
- return node;
-}
-
-
-
-
-function expand_node(me, node)
-{
- if (node.children_data && !node.expanded) {
- if (node.children_visited) {
- $(node.get_children_ul()).slideDown("fast");
- } else {
- get_node(me, node);
- if ($(node.label_div).hasClass("absent")) {
- $(node.get_children_ul()).addClass("absent");
- }
- $(node.get_children_ul()).slideDown("fast");
- }
- node.plus_img.src = me.toroot + "assets/images/triangle-opened-small.png";
- node.expanded = true;
-
- // perform api level toggling because new nodes are new to the DOM
- var selectedLevel = $("#apiLevelSelector option:selected").val();
- toggleVisisbleApis(selectedLevel, "#side-nav");
- }
-}
-
-function get_node(me, mom)
-{
- mom.children_visited = true;
- for (var i in mom.children_data) {
- var node_data = mom.children_data[i];
- mom.children[i] = new_node(me, mom, node_data[0], node_data[1],
- node_data[2], node_data[3]);
- }
-}
-
-function this_page_relative(toroot)
-{
- var full = document.location.pathname;
- var file = "";
- if (toroot.substr(0, 1) == "/") {
- if (full.substr(0, toroot.length) == toroot) {
- return full.substr(toroot.length);
- } else {
- // the file isn't under toroot. Fail.
- return null;
- }
- } else {
- if (toroot != "./") {
- toroot = "./" + toroot;
- }
- do {
- if (toroot.substr(toroot.length-3, 3) == "../" || toroot == "./") {
- var pos = full.lastIndexOf("/");
- file = full.substr(pos) + file;
- full = full.substr(0, pos);
- toroot = toroot.substr(0, toroot.length-3);
- }
- } while (toroot != "" && toroot != "/");
- return file.substr(1);
- }
-}
-
-function find_page(url, data)
-{
- var nodes = data;
- var result = null;
- for (var i in nodes) {
- var d = nodes[i];
- if (d[1] == url) {
- return new Array(i);
- }
- else if (d[2] != null) {
- result = find_page(url, d[2]);
- if (result != null) {
- return (new Array(i).concat(result));
- }
- }
- }
- return null;
-}
-
-function init_default_navtree(toroot) {
- // load json file for navtree data
- $.getScript(toRoot + 'navtree_data.js', function(data, textStatus, jqxhr) {
- // when the file is loaded, initialize the tree
- if(jqxhr.status === 200) {
- init_navtree("tree-list", toroot, NAVTREE_DATA);
- }
- });
-
- // perform api level toggling because because the whole tree is new to the DOM
- var selectedLevel = $("#apiLevelSelector option:selected").val();
- toggleVisisbleApis(selectedLevel, "#side-nav");
-}
-
-function init_navtree(navtree_id, toroot, root_nodes)
-{
- var me = new Object();
- me.toroot = toroot;
- me.node = new Object();
-
- me.node.li = document.getElementById(navtree_id);
- me.node.children_data = root_nodes;
- me.node.children = new Array();
- me.node.children_ul = document.createElement("ul");
- me.node.get_children_ul = function() { return me.node.children_ul; };
- //me.node.children_ul.className = "children_ul";
- me.node.li.appendChild(me.node.children_ul);
- me.node.depth = 0;
-
- get_node(me, me.node);
-
- me.this_page = this_page_relative(toroot);
- me.breadcrumbs = find_page(me.this_page, root_nodes);
- if (me.breadcrumbs != null && me.breadcrumbs.length != 0) {
- var mom = me.node;
- for (var i in me.breadcrumbs) {
- var j = me.breadcrumbs[i];
- mom = mom.children[j];
- expand_node(me, mom);
- }
- mom.label_div.className = mom.label_div.className + " selected";
- addLoadEvent(function() {
- scrollIntoView("nav-tree");
- });
- }
-}
-
-
-
-
-
-
-
-
-/* TODO: eliminate redundancy with non-google functions */
-function init_google_navtree(navtree_id, toroot, root_nodes)
-{
- var me = new Object();
- me.toroot = toroot;
- me.node = new Object();
-
- me.node.li = document.getElementById(navtree_id);
- me.node.children_data = root_nodes;
- me.node.children = new Array();
- me.node.children_ul = document.createElement("ul");
- me.node.get_children_ul = function() { return me.node.children_ul; };
- //me.node.children_ul.className = "children_ul";
- me.node.li.appendChild(me.node.children_ul);
- me.node.depth = 0;
-
- get_google_node(me, me.node);
-}
-
-function new_google_node(me, mom, text, link, children_data, api_level)
-{
- var node = new Object();
- var child;
- node.children = Array();
- node.children_data = children_data;
- node.depth = mom.depth + 1;
- node.get_children_ul = function() {
- if (!node.children_ul) {
- node.children_ul = document.createElement("ul");
- node.children_ul.className = "tree-list-children";
- node.li.appendChild(node.children_ul);
- }
- return node.children_ul;
- };
- node.li = document.createElement("li");
-
- mom.get_children_ul().appendChild(node.li);
-
-
- if(link) {
- child = document.createElement("a");
-
- }
- else {
- child = document.createElement("span");
- child.className = "tree-list-subtitle";
-
- }
- if (children_data != null) {
- node.li.className="nav-section";
- node.label_div = document.createElement("div");
- node.label_div.className = "nav-section-header-ref";
- node.li.appendChild(node.label_div);
- get_google_node(me, node);
- node.label_div.appendChild(child);
- }
- else {
- node.li.appendChild(child);
- }
- if(link) {
- child.href = me.toroot + link;
- }
- node.label = document.createTextNode(text);
- child.appendChild(node.label);
-
- node.children_ul = null;
-
- return node;
-}
-
-function get_google_node(me, mom)
-{
- mom.children_visited = true;
- var linkText;
- for (var i in mom.children_data) {
- var node_data = mom.children_data[i];
- linkText = node_data[0];
-
- if(linkText.match("^"+"com.google.android")=="com.google.android"){
- linkText = linkText.substr(19, linkText.length);
- }
- mom.children[i] = new_google_node(me, mom, linkText, node_data[1],
- node_data[2], node_data[3]);
- }
-}
-
-
-
-
-
-
-/****** NEW version of script to build google and sample navs dynamically ******/
-// TODO: update Google reference docs to tolerate this new implementation
-
-var NODE_NAME = 0;
-var NODE_HREF = 1;
-var NODE_GROUP = 2;
-var NODE_TAGS = 3;
-var NODE_CHILDREN = 4;
-
-function init_google_navtree2(navtree_id, data)
-{
- var $containerUl = $("#"+navtree_id);
- for (var i in data) {
- var node_data = data[i];
- $containerUl.append(new_google_node2(node_data));
- }
-
- // Make all third-generation list items 'sticky' to prevent them from collapsing
- $containerUl.find('li li li.nav-section').addClass('sticky');
-
- initExpandableNavItems("#"+navtree_id);
-}
-
-function new_google_node2(node_data)
-{
- var linkText = node_data[NODE_NAME];
- if(linkText.match("^"+"com.google.android")=="com.google.android"){
- linkText = linkText.substr(19, linkText.length);
- }
- var $li = $('<li>');
- var $a;
- if (node_data[NODE_HREF] != null) {
- $a = $('<a href="' + toRoot + node_data[NODE_HREF] + '" title="' + linkText + '" >'
- + linkText + '</a>');
- } else {
- $a = $('<a href="#" onclick="return false;" title="' + linkText + '" >'
- + linkText + '/</a>');
- }
- var $childUl = $('<ul>');
- if (node_data[NODE_CHILDREN] != null) {
- $li.addClass("nav-section");
- $a = $('<div class="nav-section-header">').append($a);
- if (node_data[NODE_HREF] == null) $a.addClass('empty');
-
- for (var i in node_data[NODE_CHILDREN]) {
- var child_node_data = node_data[NODE_CHILDREN][i];
- $childUl.append(new_google_node2(child_node_data));
- }
- $li.append($childUl);
- }
- $li.prepend($a);
-
- return $li;
-}
-
-
-
-
-
-
-
-
-
-
-
-function showGoogleRefTree() {
- init_default_google_navtree(toRoot);
- init_default_gcm_navtree(toRoot);
-}
-
-function init_default_google_navtree(toroot) {
- // load json file for navtree data
- $.getScript(toRoot + 'gms_navtree_data.js', function(data, textStatus, jqxhr) {
- // when the file is loaded, initialize the tree
- if(jqxhr.status === 200) {
- init_google_navtree("gms-tree-list", toroot, GMS_NAVTREE_DATA);
- highlightSidenav();
- resizeNav();
- }
- });
-}
-
-function init_default_gcm_navtree(toroot) {
- // load json file for navtree data
- $.getScript(toRoot + 'gcm_navtree_data.js', function(data, textStatus, jqxhr) {
- // when the file is loaded, initialize the tree
- if(jqxhr.status === 200) {
- init_google_navtree("gcm-tree-list", toroot, GCM_NAVTREE_DATA);
- highlightSidenav();
- resizeNav();
- }
- });
-}
-
-function showSamplesRefTree() {
- init_default_samples_navtree(toRoot);
-}
-
-function init_default_samples_navtree(toroot) {
- // load json file for navtree data
- $.getScript(toRoot + 'samples_navtree_data.js', function(data, textStatus, jqxhr) {
- // when the file is loaded, initialize the tree
- if(jqxhr.status === 200) {
- // hack to remove the "about the samples" link then put it back in
- // after we nuke the list to remove the dummy static list of samples
- var $firstLi = $("#nav.samples-nav > li:first-child").clone();
- $("#nav.samples-nav").empty();
- $("#nav.samples-nav").append($firstLi);
-
- init_google_navtree2("nav.samples-nav", SAMPLES_NAVTREE_DATA);
- highlightSidenav();
- resizeNav();
- if ($("#jd-content #samples").length) {
- showSamples();
- }
- }
- });
-}
-
-/* TOGGLE INHERITED MEMBERS */
-
-/* Toggle an inherited class (arrow toggle)
- * @param linkObj The link that was clicked.
- * @param expand 'true' to ensure it's expanded. 'false' to ensure it's closed.
- * 'null' to simply toggle.
- */
-function toggleInherited(linkObj, expand) {
- var base = linkObj.getAttribute("id");
- var list = document.getElementById(base + "-list");
- var summary = document.getElementById(base + "-summary");
- var trigger = document.getElementById(base + "-trigger");
- var a = $(linkObj);
- if ( (expand == null && a.hasClass("closed")) || expand ) {
- list.style.display = "none";
- summary.style.display = "block";
- trigger.src = toRoot + "assets/images/triangle-opened.png";
- a.removeClass("closed");
- a.addClass("opened");
- } else if ( (expand == null && a.hasClass("opened")) || (expand == false) ) {
- list.style.display = "block";
- summary.style.display = "none";
- trigger.src = toRoot + "assets/images/triangle-closed.png";
- a.removeClass("opened");
- a.addClass("closed");
- }
- return false;
-}
-
-/* Toggle all inherited classes in a single table (e.g. all inherited methods)
- * @param linkObj The link that was clicked.
- * @param expand 'true' to ensure it's expanded. 'false' to ensure it's closed.
- * 'null' to simply toggle.
- */
-function toggleAllInherited(linkObj, expand) {
- var a = $(linkObj);
- var table = $(a.parent().parent().parent()); // ugly way to get table/tbody
- var expandos = $(".jd-expando-trigger", table);
- if ( (expand == null && a.text() == "[Expand]") || expand ) {
- expandos.each(function(i) {
- toggleInherited(this, true);
- });
- a.text("[Collapse]");
- } else if ( (expand == null && a.text() == "[Collapse]") || (expand == false) ) {
- expandos.each(function(i) {
- toggleInherited(this, false);
- });
- a.text("[Expand]");
- }
- return false;
-}
-
-/* Toggle all inherited members in the class (link in the class title)
- */
-function toggleAllClassInherited() {
- var a = $("#toggleAllClassInherited"); // get toggle link from class title
- var toggles = $(".toggle-all", $("#body-content"));
- if (a.text() == "[Expand All]") {
- toggles.each(function(i) {
- toggleAllInherited(this, true);
- });
- a.text("[Collapse All]");
- } else {
- toggles.each(function(i) {
- toggleAllInherited(this, false);
- });
- a.text("[Expand All]");
- }
- return false;
-}
-
-/* Expand all inherited members in the class. Used when initiating page search */
-function ensureAllInheritedExpanded() {
- var toggles = $(".toggle-all", $("#body-content"));
- toggles.each(function(i) {
- toggleAllInherited(this, true);
- });
- $("#toggleAllClassInherited").text("[Collapse All]");
-}
-
-
-/* HANDLE KEY EVENTS
- * - Listen for Ctrl+F (Cmd on Mac) and expand all inherited members (to aid page search)
- */
-var agent = navigator['userAgent'].toLowerCase();
-var mac = agent.indexOf("macintosh") != -1;
-
-$(document).keydown( function(e) {
-var control = mac ? e.metaKey && !e.ctrlKey : e.ctrlKey; // get ctrl key
- if (control && e.which == 70) { // 70 is "F"
- ensureAllInheritedExpanded();
- }
-});
-
-
-
-
-
-
-/* On-demand functions */
-
-/** Move sample code line numbers out of PRE block and into non-copyable column */
-function initCodeLineNumbers() {
- var numbers = $("#codesample-block a.number");
- if (numbers.length) {
- $("#codesample-line-numbers").removeClass("hidden").append(numbers);
- }
-
- $(document).ready(function() {
- // select entire line when clicked
- $("span.code-line").click(function() {
- if (!shifted) {
- selectText(this);
- }
- });
- // invoke line link on double click
- $(".code-line").dblclick(function() {
- document.location.hash = $(this).attr('id');
- });
- // highlight the line when hovering on the number
- $("#codesample-line-numbers a.number").mouseover(function() {
- var id = $(this).attr('href');
- $(id).css('background','#e7e7e7');
- });
- $("#codesample-line-numbers a.number").mouseout(function() {
- var id = $(this).attr('href');
- $(id).css('background','none');
- });
- });
-}
-
-// create SHIFT key binder to avoid the selectText method when selecting multiple lines
-var shifted = false;
-$(document).bind('keyup keydown', function(e){shifted = e.shiftKey; return true;} );
-
-// courtesy of jasonedelman.com
-function selectText(element) {
- var doc = document
- , range, selection
- ;
- if (doc.body.createTextRange) { //ms
- range = doc.body.createTextRange();
- range.moveToElementText(element);
- range.select();
- } else if (window.getSelection) { //all others
- selection = window.getSelection();
- range = doc.createRange();
- range.selectNodeContents(element);
- selection.removeAllRanges();
- selection.addRange(range);
- }
-}
-
-
-
-
-/** Display links and other information about samples that match the
- group specified by the URL */
-function showSamples() {
- var group = $("#samples").attr('class');
- $("#samples").html("<p>Here are some samples for <b>" + group + "</b> apps:</p>");
-
- var $ul = $("<ul>");
- $selectedLi = $("#nav li.selected");
-
- $selectedLi.children("ul").children("li").each(function() {
- var $li = $("<li>").append($(this).find("a").first().clone());
- $ul.append($li);
- });
-
- $("#samples").append($ul);
-
-}
-
-
-
-/* ########################################################## */
-/* ################### RESOURCE CARDS ##################### */
-/* ########################################################## */
-
-/** Handle resource queries, collections, and grids (sections). Requires
- jd_tag_helpers.js and the *_unified_data.js to be loaded. */
-
-(function() {
- // Prevent the same resource from being loaded more than once per page.
- var addedPageResources = {};
-
- $(document).ready(function() {
- $('.resource-widget').each(function() {
- initResourceWidget(this);
- });
-
- /* Pass the line height to ellipsisfade() to adjust the height of the
- text container to show the max number of lines possible, without
- showing lines that are cut off. This works with the css ellipsis
- classes to fade last text line and apply an ellipsis char. */
-
- //card text currently uses 15px line height.
- var lineHeight = 15;
- $('.card-info .text').ellipsisfade(lineHeight);
- });
-
- /*
- Three types of resource layouts:
- Flow - Uses a fixed row-height flow using float left style.
- Carousel - Single card slideshow all same dimension absolute.
- Stack - Uses fixed columns and flexible element height.
- */
- function initResourceWidget(widget) {
- var $widget = $(widget);
- var isFlow = $widget.hasClass('resource-flow-layout'),
- isCarousel = $widget.hasClass('resource-carousel-layout'),
- isStack = $widget.hasClass('resource-stack-layout');
-
- // find size of widget by pulling out its class name
- var sizeCols = 1;
- var m = $widget.get(0).className.match(/\bcol-(\d+)\b/);
- if (m) {
- sizeCols = parseInt(m[1], 10);
- }
-
- var opts = {
- cardSizes: ($widget.data('cardsizes') || '').split(','),
- maxResults: parseInt($widget.data('maxresults') || '100', 10),
- itemsPerPage: $widget.data('itemsperpage'),
- sortOrder: $widget.data('sortorder'),
- query: $widget.data('query'),
- section: $widget.data('section'),
- sizeCols: sizeCols,
- /* Added by LFL 6/6/14 */
- resourceStyle: $widget.data('resourcestyle') || 'card',
- stackSort: $widget.data('stacksort') || 'true'
- };
-
- // run the search for the set of resources to show
-
- var resources = buildResourceList(opts);
-
- if (isFlow) {
- drawResourcesFlowWidget($widget, opts, resources);
- } else if (isCarousel) {
- drawResourcesCarouselWidget($widget, opts, resources);
- } else if (isStack) {
- /* Looks like this got removed and is not used, so repurposing for the
- homepage style layout.
- Modified by LFL 6/6/14
- */
- //var sections = buildSectionList(opts);
- opts['numStacks'] = $widget.data('numstacks');
- drawResourcesStackWidget($widget, opts, resources/*, sections*/);
- }
- }
-
- /* Initializes a Resource Carousel Widget */
- function drawResourcesCarouselWidget($widget, opts, resources) {
- $widget.empty();
- var plusone = true; //always show plusone on carousel
-
- $widget.addClass('resource-card slideshow-container')
- .append($('<a>').addClass('slideshow-prev').text('Prev'))
- .append($('<a>').addClass('slideshow-next').text('Next'));
-
- var css = { 'width': $widget.width() + 'px',
- 'height': $widget.height() + 'px' };
-
- var $ul = $('<ul>');
-
- for (var i = 0; i < resources.length; ++i) {
- var $card = $('<a>')
- .attr('href', cleanUrl(resources[i].url))
- .decorateResourceCard(resources[i],plusone);
-
- $('<li>').css(css)
- .append($card)
- .appendTo($ul);
- }
-
- $('<div>').addClass('frame')
- .append($ul)
- .appendTo($widget);
-
- $widget.dacSlideshow({
- auto: true,
- btnPrev: '.slideshow-prev',
- btnNext: '.slideshow-next'
- });
- };
-
- /* Initializes a Resource Card Stack Widget (column-based layout)
- Modified by LFL 6/6/14
- */
- function drawResourcesStackWidget($widget, opts, resources, sections) {
- // Don't empty widget, grab all items inside since they will be the first
- // items stacked, followed by the resource query
- var plusone = true; //by default show plusone on section cards
- var cards = $widget.find('.resource-card').detach().toArray();
- var numStacks = opts.numStacks || 1;
- var $stacks = [];
- var urlString;
-
- for (var i = 0; i < numStacks; ++i) {
- $stacks[i] = $('<div>').addClass('resource-card-stack')
- .appendTo($widget);
- }
-
- var sectionResources = [];
-
- // Extract any subsections that are actually resource cards
- if (sections) {
- for (var i = 0; i < sections.length; ++i) {
- if (!sections[i].sections || !sections[i].sections.length) {
- // Render it as a resource card
- sectionResources.push(
- $('<a>')
- .addClass('resource-card section-card')
- .attr('href', cleanUrl(sections[i].resource.url))
- .decorateResourceCard(sections[i].resource,plusone)[0]
- );
-
- } else {
- cards.push(
- $('<div>')
- .addClass('resource-card section-card-menu')
- .decorateResourceSection(sections[i],plusone)[0]
- );
- }
- }
- }
-
- cards = cards.concat(sectionResources);
-
- for (var i = 0; i < resources.length; ++i) {
- var $card = createResourceElement(resources[i], opts);
-
- if (opts.resourceStyle.indexOf('related') > -1) {
- $card.addClass('related-card');
- }
-
- cards.push($card[0]);
- }
-
- if (opts.stackSort != 'false') {
- for (var i = 0; i < cards.length; ++i) {
- // Find the stack with the shortest height, but give preference to
- // left to right order.
- var minHeight = $stacks[0].height();
- var minIndex = 0;
-
- for (var j = 1; j < numStacks; ++j) {
- var height = $stacks[j].height();
- if (height < minHeight - 45) {
- minHeight = height;
- minIndex = j;
- }
- }
-
- $stacks[minIndex].append($(cards[i]));
- }
- }
-
- };
-
- /*
- Create a resource card using the given resource object and a list of html
- configured options. Returns a jquery object containing the element.
- */
- function createResourceElement(resource, opts, plusone) {
- var $el;
-
- // The difference here is that generic cards are not entirely clickable
- // so its a div instead of an a tag, also the generic one is not given
- // the resource-card class so it appears with a transparent background
- // and can be styled in whatever way the css setup.
- if (opts.resourceStyle == 'generic') {
- $el = $('<div>')
- .addClass('resource')
- .attr('href', cleanUrl(resource.url))
- .decorateResource(resource, opts);
- } else {
- var cls = 'resource resource-card';
-
- $el = $('<a>')
- .addClass(cls)
- .attr('href', cleanUrl(resource.url))
- .decorateResourceCard(resource, plusone);
- }
-
- return $el;
- }
-
- /* Initializes a flow widget, see distribute.scss for generating accompanying css */
- function drawResourcesFlowWidget($widget, opts, resources) {
- $widget.empty();
- var cardSizes = opts.cardSizes || ['6x6'];
- var i = 0, j = 0;
- var plusone = true; // by default show plusone on resource cards
-
- while (i < resources.length) {
- var cardSize = cardSizes[j++ % cardSizes.length];
- cardSize = cardSize.replace(/^\s+|\s+$/,'');
- // Some card sizes do not get a plusone button, such as where space is constrained
- // or for cards commonly embedded in docs (to improve overall page speed).
- plusone = !((cardSize == "6x2") || (cardSize == "6x3") ||
- (cardSize == "9x2") || (cardSize == "9x3") ||
- (cardSize == "12x2") || (cardSize == "12x3"));
-
- // A stack has a third dimension which is the number of stacked items
- var isStack = cardSize.match(/(\d+)x(\d+)x(\d+)/);
- var stackCount = 0;
- var $stackDiv = null;
-
- if (isStack) {
- // Create a stack container which should have the dimensions defined
- // by the product of the items inside.
- $stackDiv = $('<div>').addClass('resource-card-stack resource-card-' + isStack[1]
- + 'x' + isStack[2] * isStack[3]) .appendTo($widget);
- }
-
- // Build each stack item or just a single item
- do {
- var resource = resources[i];
-
- var $card = createResourceElement(resources[i], opts, plusone);
-
- $card.addClass('resource-card-' + cardSize +
- ' resource-card-' + resource.type);
-
- if (isStack) {
- $card.addClass('resource-card-' + isStack[1] + 'x' + isStack[2]);
- if (++stackCount == parseInt(isStack[3])) {
- $card.addClass('resource-card-row-stack-last');
- stackCount = 0;
- }
- } else {
- stackCount = 0;
- }
-
- $card.appendTo($stackDiv || $widget);
-
- } while (++i < resources.length && stackCount > 0);
- }
- }
-
- /* Build a site map of resources using a section as a root. */
- function buildSectionList(opts) {
- if (opts.section && SECTION_BY_ID[opts.section]) {
- return SECTION_BY_ID[opts.section].sections || [];
- }
- return [];
- }
-
- function buildResourceList(opts) {
- var maxResults = opts.maxResults || 100;
-
- var query = opts.query || '';
- var expressions = parseResourceQuery(query);
- var addedResourceIndices = {};
- var results = [];
-
- for (var i = 0; i < expressions.length; i++) {
- var clauses = expressions[i];
-
- // build initial set of resources from first clause
- var firstClause = clauses[0];
- var resources = [];
- switch (firstClause.attr) {
- case 'type':
- resources = ALL_RESOURCES_BY_TYPE[firstClause.value];
- break;
- case 'lang':
- resources = ALL_RESOURCES_BY_LANG[firstClause.value];
- break;
- case 'tag':
- resources = ALL_RESOURCES_BY_TAG[firstClause.value];
- break;
- case 'collection':
- var urls = RESOURCE_COLLECTIONS[firstClause.value].resources || [];
- resources = urls.map(function(url){ return ALL_RESOURCES_BY_URL[url]; });
- break;
- case 'section':
- var urls = SITE_MAP[firstClause.value].sections || [];
- resources = urls.map(function(url){ return ALL_RESOURCES_BY_URL[url]; });
- break;
- }
- // console.log(firstClause.attr + ':' + firstClause.value);
- resources = resources || [];
-
- // use additional clauses to filter corpus
- if (clauses.length > 1) {
- var otherClauses = clauses.slice(1);
- resources = resources.filter(getResourceMatchesClausesFilter(otherClauses));
- }
-
- // filter out resources already added
- if (i > 1) {
- resources = resources.filter(getResourceNotAlreadyAddedFilter(addedResourceIndices));
- }
-
- // add to list of already added indices
- for (var j = 0; j < resources.length; j++) {
- // console.log(resources[j].title);
- addedResourceIndices[resources[j].index] = 1;
- }
-
- // concat to final results list
- results = results.concat(resources);
- }
-
- if (opts.sortOrder && results.length) {
- var attr = opts.sortOrder;
-
- if (opts.sortOrder == 'random') {
- var i = results.length, j, temp;
- while (--i) {
- j = Math.floor(Math.random() * (i + 1));
- temp = results[i];
- results[i] = results[j];
- results[j] = temp;
- }
- } else {
- var desc = attr.charAt(0) == '-';
- if (desc) {
- attr = attr.substring(1);
- }
- results = results.sort(function(x,y) {
- return (desc ? -1 : 1) * (parseInt(x[attr], 10) - parseInt(y[attr], 10));
- });
- }
- }
-
- results = results.filter(getResourceNotAlreadyAddedFilter(addedPageResources));
- results = results.slice(0, maxResults);
-
- for (var j = 0; j < results.length; ++j) {
- addedPageResources[results[j].index] = 1;
- }
-
- return results;
- }
-
-
- function getResourceNotAlreadyAddedFilter(addedResourceIndices) {
- return function(resource) {
- return !addedResourceIndices[resource.index];
- };
- }
-
-
- function getResourceMatchesClausesFilter(clauses) {
- return function(resource) {
- return doesResourceMatchClauses(resource, clauses);
- };
- }
-
-
- function doesResourceMatchClauses(resource, clauses) {
- for (var i = 0; i < clauses.length; i++) {
- var map;
- switch (clauses[i].attr) {
- case 'type':
- map = IS_RESOURCE_OF_TYPE[clauses[i].value];
- break;
- case 'lang':
- map = IS_RESOURCE_IN_LANG[clauses[i].value];
- break;
- case 'tag':
- map = IS_RESOURCE_TAGGED[clauses[i].value];
- break;
- }
-
- if (!map || (!!clauses[i].negative ? map[resource.index] : !map[resource.index])) {
- return clauses[i].negative;
- }
- }
- return true;
- }
-
- function cleanUrl(url)
- {
- if (url && url.indexOf('//') === -1) {
- url = toRoot + url;
- }
-
- return url;
- }
-
-
- function parseResourceQuery(query) {
- // Parse query into array of expressions (expression e.g. 'tag:foo + type:video')
- var expressions = [];
- var expressionStrs = query.split(',') || [];
- for (var i = 0; i < expressionStrs.length; i++) {
- var expr = expressionStrs[i] || '';
-
- // Break expression into clauses (clause e.g. 'tag:foo')
- var clauses = [];
- var clauseStrs = expr.split(/(?=[\+\-])/);
- for (var j = 0; j < clauseStrs.length; j++) {
- var clauseStr = clauseStrs[j] || '';
-
- // Get attribute and value from clause (e.g. attribute='tag', value='foo')
- var parts = clauseStr.split(':');
- var clause = {};
-
- clause.attr = parts[0].replace(/^\s+|\s+$/g,'');
- if (clause.attr) {
- if (clause.attr.charAt(0) == '+') {
- clause.attr = clause.attr.substring(1);
- } else if (clause.attr.charAt(0) == '-') {
- clause.negative = true;
- clause.attr = clause.attr.substring(1);
- }
- }
-
- if (parts.length > 1) {
- clause.value = parts[1].replace(/^\s+|\s+$/g,'');
- }
-
- clauses.push(clause);
- }
-
- if (!clauses.length) {
- continue;
- }
-
- expressions.push(clauses);
- }
-
- return expressions;
- }
-})();
-
-(function($) {
-
- /*
- Utility method for creating dom for the description area of a card.
- Used in decorateResourceCard and decorateResource.
- */
- function buildResourceCardDescription(resource, plusone) {
- var $description = $('<div>').addClass('description ellipsis');
-
- $description.append($('<div>').addClass('text').html(resource.summary));
-
- if (resource.cta) {
- $description.append($('<a>').addClass('cta').html(resource.cta));
- }
-
- if (plusone) {
- var plusurl = resource.url.indexOf("//") > -1 ? resource.url :
- "//developer.android.com/" + resource.url;
-
- $description.append($('<div>').addClass('util')
- .append($('<div>').addClass('g-plusone')
- .attr('data-size', 'small')
- .attr('data-align', 'right')
- .attr('data-href', plusurl)));
- }
-
- return $description;
- }
-
-
- /* Simple jquery function to create dom for a standard resource card */
- $.fn.decorateResourceCard = function(resource,plusone) {
- var section = resource.group || resource.type;
- var imgUrl = resource.image ||
- 'assets/images/resource-card-default-android.jpg';
-
- if (imgUrl.indexOf('//') === -1) {
- imgUrl = toRoot + imgUrl;
- }
-
- $('<div>').addClass('card-bg')
- .css('background-image', 'url(' + (imgUrl || toRoot +
- 'assets/images/resource-card-default-android.jpg') + ')')
- .appendTo(this);
-
- $('<div>').addClass('card-info' + (!resource.summary ? ' empty-desc' : ''))
- .append($('<div>').addClass('section').text(section))
- .append($('<div>').addClass('title').html(resource.title))
- .append(buildResourceCardDescription(resource, plusone))
- .appendTo(this);
-
- return this;
- };
-
- /* Simple jquery function to create dom for a resource section card (menu) */
- $.fn.decorateResourceSection = function(section,plusone) {
- var resource = section.resource;
- //keep url clean for matching and offline mode handling
- var urlPrefix = resource.image.indexOf("//") > -1 ? "" : toRoot;
- var $base = $('<a>')
- .addClass('card-bg')
- .attr('href', resource.url)
- .append($('<div>').addClass('card-section-icon')
- .append($('<div>').addClass('icon'))
- .append($('<div>').addClass('section').html(resource.title)))
- .appendTo(this);
-
- var $cardInfo = $('<div>').addClass('card-info').appendTo(this);
-
- if (section.sections && section.sections.length) {
- // Recurse the section sub-tree to find a resource image.
- var stack = [section];
-
- while (stack.length) {
- if (stack[0].resource.image) {
- $base.css('background-image', 'url(' + urlPrefix + stack[0].resource.image + ')');
- break;
- }
-
- if (stack[0].sections) {
- stack = stack.concat(stack[0].sections);
- }
-
- stack.shift();
- }
-
- var $ul = $('<ul>')
- .appendTo($cardInfo);
-
- var max = section.sections.length > 3 ? 3 : section.sections.length;
-
- for (var i = 0; i < max; ++i) {
-
- var subResource = section.sections[i];
- if (!plusone) {
- $('<li>')
- .append($('<a>').attr('href', subResource.url)
- .append($('<div>').addClass('title').html(subResource.title))
- .append($('<div>').addClass('description ellipsis')
- .append($('<div>').addClass('text').html(subResource.summary))
- .append($('<div>').addClass('util'))))
- .appendTo($ul);
- } else {
- $('<li>')
- .append($('<a>').attr('href', subResource.url)
- .append($('<div>').addClass('title').html(subResource.title))
- .append($('<div>').addClass('description ellipsis')
- .append($('<div>').addClass('text').html(subResource.summary))
- .append($('<div>').addClass('util')
- .append($('<div>').addClass('g-plusone')
- .attr('data-size', 'small')
- .attr('data-align', 'right')
- .attr('data-href', resource.url)))))
- .appendTo($ul);
- }
- }
-
- // Add a more row
- if (max < section.sections.length) {
- $('<li>')
- .append($('<a>').attr('href', resource.url)
- .append($('<div>')
- .addClass('title')
- .text('More')))
- .appendTo($ul);
- }
- } else {
- // No sub-resources, just render description?
- }
-
- return this;
- };
-
-
-
-
- /* Render other types of resource styles that are not cards. */
- $.fn.decorateResource = function(resource, opts) {
- var imgUrl = resource.image ||
- 'assets/images/resource-card-default-android.jpg';
- var linkUrl = resource.url;
-
- if (imgUrl.indexOf('//') === -1) {
- imgUrl = toRoot + imgUrl;
- }
-
- if (linkUrl && linkUrl.indexOf('//') === -1) {
- linkUrl = toRoot + linkUrl;
- }
-
- $(this).append(
- $('<div>').addClass('image')
- .css('background-image', 'url(' + imgUrl + ')'),
- $('<div>').addClass('info').append(
- $('<h4>').addClass('title').html(resource.title),
- $('<p>').addClass('summary').html(resource.summary),
- $('<a>').attr('href', linkUrl).addClass('cta').html('Learn More')
- )
- );
-
- return this;
- };
-})(jQuery);
-
-
-/* Calculate the vertical area remaining */
-(function($) {
- $.fn.ellipsisfade= function(lineHeight) {
- this.each(function() {
- // get element text
- var $this = $(this);
- var remainingHeight = $this.parent().parent().height();
- $this.parent().siblings().each(function ()
- {
- if ($(this).is(":visible")) {
- var h = $(this).height();
- remainingHeight = remainingHeight - h;
- }
- });
-
- adjustedRemainingHeight = ((remainingHeight)/lineHeight>>0)*lineHeight
- $this.parent().css({'height': adjustedRemainingHeight});
- $this.css({'height': "auto"});
- });
-
- return this;
- };
-}) (jQuery);
-
-/*
- Fullscreen Carousel
-
- The following allows for an area at the top of the page that takes over the
- entire browser height except for its top offset and an optional bottom
- padding specified as a data attribute.
-
- HTML:
-
- <div class="fullscreen-carousel">
- <div class="fullscreen-carousel-content">
- <!-- content here -->
- </div>
- <div class="fullscreen-carousel-content">
- <!-- content here -->
- </div>
-
- etc ...
-
- </div>
-
- Control over how the carousel takes over the screen can mostly be defined in
- a css file. Setting min-height on the .fullscreen-carousel-content elements
- will prevent them from shrinking to far vertically when the browser is very
- short, and setting max-height on the .fullscreen-carousel itself will prevent
- the area from becoming to long in the case that the browser is stretched very
- tall.
-
- There is limited functionality for having multiple sections since that request
- was removed, but it is possible to add .next-arrow and .prev-arrow elements to
- scroll between multiple content areas.
-*/
-
-(function() {
- $(document).ready(function() {
- $('.fullscreen-carousel').each(function() {
- initWidget(this);
- });
- });
-
- function initWidget(widget) {
- var $widget = $(widget);
-
- var topOffset = $widget.offset().top;
- var padBottom = parseInt($widget.data('paddingbottom')) || 0;
- var maxHeight = 0;
- var minHeight = 0;
- var $content = $widget.find('.fullscreen-carousel-content');
- var $nextArrow = $widget.find('.next-arrow');
- var $prevArrow = $widget.find('.prev-arrow');
- var $curSection = $($content[0]);
-
- if ($content.length <= 1) {
- $nextArrow.hide();
- $prevArrow.hide();
- } else {
- $nextArrow.click(function() {
- var index = ($content.index($curSection) + 1);
- $curSection.hide();
- $curSection = $($content[index >= $content.length ? 0 : index]);
- $curSection.show();
- });
-
- $prevArrow.click(function() {
- var index = ($content.index($curSection) - 1);
- $curSection.hide();
- $curSection = $($content[index < 0 ? $content.length - 1 : 0]);
- $curSection.show();
- });
- }
-
- // Just hide all content sections except first.
- $content.each(function(index) {
- if ($(this).height() > minHeight) minHeight = $(this).height();
- $(this).css({position: 'absolute', display: index > 0 ? 'none' : ''});
- });
-
- // Register for changes to window size, and trigger.
- $(window).resize(resizeWidget);
- resizeWidget();
-
- function resizeWidget() {
- var height = $(window).height() - topOffset - padBottom;
- $widget.width($(window).width());
- $widget.height(height < minHeight ? minHeight :
- (maxHeight && height > maxHeight ? maxHeight : height));
- }
- }
-})();
-
-
-
-
-
-/*
- Tab Carousel
-
- The following allows tab widgets to be installed via the html below. Each
- tab content section should have a data-tab attribute matching one of the
- nav items'. Also each tab content section should have a width matching the
- tab carousel.
-
- HTML:
-
- <div class="tab-carousel">
- <ul class="tab-nav">
- <li><a href="#" data-tab="handsets">Handsets</a>
- <li><a href="#" data-tab="wearable">Wearable</a>
- <li><a href="#" data-tab="tv">TV</a>
- </ul>
-
- <div class="tab-carousel-content">
- <div data-tab="handsets">
- <!--Full width content here-->
- </div>
-
- <div data-tab="wearable">
- <!--Full width content here-->
- </div>
-
- <div data-tab="tv">
- <!--Full width content here-->
- </div>
- </div>
- </div>
-
-*/
-(function() {
- $(document).ready(function() {
- $('.tab-carousel').each(function() {
- initWidget(this);
- });
- });
-
- function initWidget(widget) {
- var $widget = $(widget);
- var $nav = $widget.find('.tab-nav');
- var $anchors = $nav.find('[data-tab]');
- var $li = $nav.find('li');
- var $contentContainer = $widget.find('.tab-carousel-content');
- var $tabs = $contentContainer.find('[data-tab]');
- var $curTab = $($tabs[0]); // Current tab is first tab.
- var width = $widget.width();
-
- // Setup nav interactivity.
- $anchors.click(function(evt) {
- evt.preventDefault();
- var query = '[data-tab=' + $(this).data('tab') + ']';
- transitionWidget($tabs.filter(query));
- });
-
- // Add highlight for navigation on first item.
- var $highlight = $('<div>').addClass('highlight')
- .css({left:$li.position().left + 'px', width:$li.outerWidth() + 'px'})
- .appendTo($nav);
-
- // Store height since we will change contents to absolute.
- $contentContainer.height($contentContainer.height());
-
- // Absolutely position tabs so they're ready for transition.
- $tabs.each(function(index) {
- $(this).css({position: 'absolute', left: index > 0 ? width + 'px' : '0'});
- });
-
- function transitionWidget($toTab) {
- if (!$curTab.is($toTab)) {
- var curIndex = $tabs.index($curTab[0]);
- var toIndex = $tabs.index($toTab[0]);
- var dir = toIndex > curIndex ? 1 : -1;
-
- // Animate content sections.
- $toTab.css({left:(width * dir) + 'px'});
- $curTab.animate({left:(width * -dir) + 'px'});
- $toTab.animate({left:'0'});
-
- // Animate navigation highlight.
- $highlight.animate({left:$($li[toIndex]).position().left + 'px',
- width:$($li[toIndex]).outerWidth() + 'px'})
-
- // Store new current section.
- $curTab = $toTab;
- }
- }
- }
-})();
diff --git a/build/tools/droiddoc/templates-lineage-sdk/assets/favicon.ico b/build/tools/droiddoc/templates-lineage-sdk/assets/favicon.ico
deleted file mode 100755
index 35b571ac..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/assets/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/build/tools/droiddoc/templates-lineage-sdk/assets/fullscreen.png b/build/tools/droiddoc/templates-lineage-sdk/assets/fullscreen.png
deleted file mode 100644
index 01f971cd..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/assets/fullscreen.png
+++ /dev/null
Binary files differ
diff --git a/build/tools/droiddoc/templates-lineage-sdk/assets/images/fullscreen.png b/build/tools/droiddoc/templates-lineage-sdk/assets/images/fullscreen.png
deleted file mode 100644
index 01f971cd..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/assets/images/fullscreen.png
+++ /dev/null
Binary files differ
diff --git a/build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_down.png b/build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_down.png
deleted file mode 100644
index 6a0a8eea..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_down.png
+++ /dev/null
Binary files differ
diff --git a/build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_left.png b/build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_left.png
deleted file mode 100644
index e887b2a6..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_left.png
+++ /dev/null
Binary files differ
diff --git a/build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_right.png b/build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_right.png
deleted file mode 100644
index ced7fa48..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_right.png
+++ /dev/null
Binary files differ
diff --git a/build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_up.png b/build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_up.png
deleted file mode 100644
index ddd4ec93..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/assets/images/styles/disclosure_up.png
+++ /dev/null
Binary files differ
diff --git a/build/tools/droiddoc/templates-lineage-sdk/assets/lineage_logo.svg b/build/tools/droiddoc/templates-lineage-sdk/assets/lineage_logo.svg
deleted file mode 100644
index f908c5ee..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/assets/lineage_logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 144 72"><defs><style>.cls-1{fill:#167c80;}</style></defs><title>lineage_logo_mark_ltrbox_teal_144x72</title><g id="mark_-_letterbox" data-name="mark - letterbox"><path class="cls-1" d="M112,36a10,10,0,0,0-7.78,3.72l-.38-.15A73.82,73.82,0,0,0,92,36s0,0,0,0a20,20,0,0,0-40,0v0l-.43.09a73.47,73.47,0,0,0-11.42,3.44l-.38.15a10.1,10.1,0,1,0,1.84,3.57h0A69.34,69.34,0,0,1,52.41,40a20,20,0,0,0,39.18,0,69.32,69.32,0,0,1,10.78,3.24h0A10,10,0,1,0,112,36ZM32,52a6,6,0,1,1,6-6A6,6,0,0,1,32,52Zm40,0A16,16,0,1,1,88,36,16,16,0,0,1,72,52Zm40,0a6,6,0,1,1,6-6A6,6,0,0,1,112,52ZM80,36a8,8,0,1,1-8-8A8,8,0,0,1,80,36Z"/></g></svg> \ No newline at end of file
diff --git a/build/tools/droiddoc/templates-lineage-sdk/class.cs b/build/tools/droiddoc/templates-lineage-sdk/class.cs
deleted file mode 100644
index 7aa99f96..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/class.cs
+++ /dev/null
@@ -1,679 +0,0 @@
-<?cs include:"doctype.cs" ?>
-<?cs include:"macros.cs" ?>
-<?cs include:"macros_override.cs" ?>
-<html<?cs if:devsite ?> devsite<?cs /if ?>>
-<?cs include:"head_tag.cs" ?>
-<body class="gc-documentation <?cs if:(reference.gms || reference.gcm) ?>google<?cs /if ?>
- <?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs
- if:reference ?> reference<?cs
- /if ?><?cs
- elif:design ?>design<?cs
- elif:distribute ?>distribute<?cs
- /if ?>" itemscope itemtype="http://schema.org/Article">
- <div id="doc-api-level" class="<?cs var:class.since ?>" style="display:none"></div>
- <a name="top"></a>
-<?cs include:"header.cs" ?>
-
-<div class="col-12" id="doc-col">
-
-<div id="api-info-block">
-
-<?cs # are there inherited members ?>
-<?cs each:cl=class.inherited ?>
- <?cs if:subcount(cl.methods) ?>
- <?cs set:inhmethods = #1 ?>
- <?cs /if ?>
- <?cs if:subcount(cl.constants) ?>
- <?cs set:inhconstants = #1 ?>
- <?cs /if ?>
- <?cs if:subcount(cl.fields) ?>
- <?cs set:inhfields = #1 ?>
- <?cs /if ?>
- <?cs if:subcount(cl.attrs) ?>
- <?cs set:inhattrs = #1 ?>
- <?cs /if ?>
-<?cs /each ?>
-
-<div class="sum-details-links">
-<?cs if:inhattrs || inhconstants || inhfields || inhmethods || (!class.subclasses.hidden &&
- (subcount(class.subclasses.direct) || subcount(class.subclasses.indirect))) ?>
-Summary:
-<?cs if:subcount(class.inners) ?>
- <a href="#nestedclasses">Nested Classes</a>
- <?cs set:linkcount = #1 ?>
-<?cs /if ?>
-<?cs if:subcount(class.attrs) ?>
- <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#lattrs">XML Attrs</a>
- <?cs set:linkcount = #1 ?>
-<?cs /if ?>
-<?cs if:inhattrs ?>
- <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhattrs">Inherited XML Attrs</a>
- <?cs set:linkcount = #1 ?>
-<?cs /if ?>
-<?cs if:subcount(class.enumConstants) ?>
- <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#enumconstants">Enums</a>
- <?cs set:linkcount = #1 ?>
-<?cs /if ?>
-<?cs if:subcount(class.constants) ?>
- <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#constants">Constants</a>
- <?cs set:linkcount = #1 ?>
-<?cs /if ?>
-<?cs if:inhconstants ?>
- <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhconstants">Inherited Constants</a>
- <?cs set:linkcount = #1 ?>
-<?cs /if ?>
-<?cs if:subcount(class.fields) ?>
- <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#lfields">Fields</a>
- <?cs set:linkcount = #1 ?>
-<?cs /if ?>
-<?cs if:inhfields ?>
- <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhfields">Inherited Fields</a>
- <?cs set:linkcount = #1 ?>
-<?cs /if ?>
-<?cs if:subcount(class.ctors.public) ?>
- <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#pubctors">Ctors</a>
- <?cs set:linkcount = #1 ?>
-<?cs /if ?>
-<?cs if:subcount(class.ctors.protected) ?>
- <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#proctors">Protected Ctors</a>
- <?cs set:linkcount = #1 ?>
-<?cs /if ?>
-<?cs if:subcount(class.methods.public) ?>
- <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#pubmethods">Methods</a>
- <?cs set:linkcount = #1 ?>
-<?cs /if ?>
-<?cs if:subcount(class.methods.protected) ?>
- <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#promethods">Protected Methods</a>
- <?cs set:linkcount = #1 ?>
-<?cs /if ?>
-<?cs if:inhmethods ?>
- <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhmethods">Inherited Methods</a>
-<?cs /if ?>
-&#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
-<?cs /if ?>
-</div><!-- end sum-details-links -->
-<div class="api-level">
- <?cs call:since_tags(class) ?><?cs
- if:class.deprecatedsince
- ?><br>Deprecated since <a href="<?cs var:toroot ?>guide/topics/manifest/uses-sdk-element.html#ApiLevels"
- >API level <?cs var:class.deprecatedsince ?></a><?cs
- /if ?>
- <?cs call:federated_refs(class) ?>
-</div>
-</div><!-- end api-info-block -->
-
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ======== START OF CLASS DATA ======== -->
-
-<div id="jd-header">
- <?cs var:class.scope ?>
- <?cs var:class.static ?>
- <?cs var:class.final ?>
- <?cs var:class.abstract ?>
- <?cs var:class.kind ?>
-<h1 itemprop="name"><?cs var:class.name ?></h1>
-
-<?cs set:colspan = subcount(class.inheritance) ?>
-<?cs each:supr = class.inheritance ?>
- <?cs if:colspan == 2 ?>
- extends <?cs call:type_link(supr.short_class) ?><br/>
- <?cs /if ?>
- <?cs if:last(supr) && subcount(supr.interfaces) ?>
- implements
- <?cs each:t=supr.interfaces ?>
- <?cs call:type_link(t) ?>
- <?cs /each ?>
- <?cs /if ?>
- <?cs set:colspan = colspan-1 ?>
-<?cs /each ?>
-<?cs call:show_annotations_list(class) ?>
-
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-<?cs var:class.since ?>">
-<table class="jd-inheritance-table">
-<?cs set:colspan = subcount(class.inheritance) ?>
-<?cs each:supr = class.inheritance ?>
- <tr>
- <?cs loop:i = 1, (subcount(class.inheritance)-colspan), 1 ?>
- <td class="jd-inheritance-space">&nbsp;<?cs if:(subcount(class.inheritance)-colspan) == i ?>&nbsp;&nbsp;&#x21b3;<?cs /if ?></td>
- <?cs /loop ?>
- <td colspan="<?cs var:colspan ?>" class="jd-inheritance-class-cell"><?cs
- if:colspan == 1
- ?><?cs call:class_name(class.qualifiedType) ?><?cs
- else
- ?><?cs call:type_link(supr.class) ?><?cs
- /if ?></td>
- </tr>
- <?cs set:colspan = colspan-1 ?>
-<?cs /each ?>
-</table>
-
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-
-<?cs if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?>
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-<?cs call:expando_trigger("subclasses-direct", "closed") ?>Known Direct Subclasses
-<?cs call:expandable_class_list("subclasses-direct", class.subclasses.direct, "list") ?>
-</td></tr></table>
-<?cs /if ?>
-
-<?cs if:subcount(class.subclasses.indirect) && !class.subclasses.hidden ?>
-<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
-<?cs call:expando_trigger("subclasses-indirect", "closed") ?>Known Indirect Subclasses
-<?cs call:expandable_class_list("subclasses-indirect", class.subclasses.indirect, "list") ?>
-</td></tr></table>
-<?cs /if ?>
-
-<div class="jd-descr">
-<?cs call:deprecated_warning(class) ?>
-<?cs if:subcount(class.descr) ?>
-<h2>Class Overview</h2>
-<p itemprop="articleBody"><?cs call:tag_list(class.descr) ?></p>
-<?cs /if ?>
-
-<?cs call:see_also_tags(class.seeAlso) ?>
-
-</div><!-- jd-descr -->
-
-
-<?cs # summary macros ?>
-
-<?cs def:write_method_summary(methods, included) ?>
-<?cs set:count = #1 ?>
-<?cs each:method = methods ?>
- <?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
- <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:method.since ?>" >
- <td class="jd-typecol"><nobr>
- <?cs var:method.abstract ?>
- <?cs var:method.synchronized ?>
- <?cs var:method.final ?>
- <?cs var:method.static ?>
- <?cs call:type_link(method.generic) ?>
- <?cs call:type_link(method.returnType) ?></nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><?cs call:cond_link(method.name, toroot, method.href, included) ?></span>(<?cs call:parameter_list(method.params) ?>)</nobr>
- <?cs if:subcount(method.shortDescr) || subcount(method.deprecated) ?>
- <div class="jd-descrdiv">
- <?cs call:short_descr(method) ?>
- <?cs call:show_annotations_list(method) ?>
- </div>
- <?cs /if ?>
- </td></tr>
-<?cs set:count = count + #1 ?>
-<?cs /each ?>
-<?cs /def ?>
-
-<?cs def:write_field_summary(fields, included) ?>
-<?cs set:count = #1 ?>
- <?cs each:field=fields ?>
- <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:field.since ?>" >
- <td class="jd-typecol"><nobr>
- <?cs var:field.scope ?>
- <?cs var:field.static ?>
- <?cs var:field.final ?>
- <?cs call:type_link(field.type) ?></nobr></td>
- <td class="jd-linkcol"><?cs call:cond_link(field.name, toroot, field.href, included) ?></td>
- <td class="jd-descrcol" width="100%">
- <?cs call:short_descr(field) ?>
- <?cs call:show_annotations_list(field) ?>
- </td>
- </tr>
- <?cs set:count = count + #1 ?>
- <?cs /each ?>
-<?cs /def ?>
-
-<?cs def:write_constant_summary(fields, included) ?>
-<?cs set:count = #1 ?>
- <?cs each:field=fields ?>
- <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:field.since ?>" >
- <td class="jd-typecol"><?cs call:type_link(field.type) ?></td>
- <td class="jd-linkcol"><?cs call:cond_link(field.name, toroot, field.href, included) ?></td>
- <td class="jd-descrcol" width="100%">
- <?cs call:short_descr(field) ?>
- <?cs call:show_annotations_list(field) ?>
- </td>
- </tr>
- <?cs set:count = count + #1 ?>
- <?cs /each ?>
-<?cs /def ?>
-
-<?cs def:write_attr_summary(attrs, included) ?>
-<?cs set:count = #1 ?>
- <tr>
- <td><nobr><em>Attribute Name</em></nobr></td>
- <td><nobr><em>Related Method</em></nobr></td>
- <td><nobr><em>Description</em></nobr></td>
- </tr>
- <?cs each:attr=attrs ?>
- <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:attr.since ?>" >
- <td class="jd-linkcol"><?cs if:included ?><a href="<?cs var:toroot ?><?cs var:attr.href ?>"><?cs /if ?><?cs var:attr.name ?><?cs if:included ?></a><?cs /if ?></td>
- <td class="jd-linkcol"><?cs each:m=attr.methods ?>
- <?cs call:cond_link(m.name, toroot, m.href, included) ?>
- <?cs /each ?>
- </td>
- <td class="jd-descrcol" width="100%">
- <?cs call:short_descr(attr) ?>&nbsp;
- <?cs call:show_annotations_list(attr) ?>
- </td>
- </tr>
- <?cs set:count = count + #1 ?>
- <?cs /each ?>
-<?cs /def ?>
-
-<?cs def:write_inners_summary(classes) ?>
-<?cs set:count = #1 ?>
- <?cs each:cl=class.inners ?>
- <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:cl.since ?>" >
- <td class="jd-typecol"><nobr>
- <?cs var:cl.scope ?>
- <?cs var:cl.static ?>
- <?cs var:cl.final ?>
- <?cs var:cl.abstract ?>
- <?cs var:cl.kind ?></nobr></td>
- <td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
- <td class="jd-descrcol" width="100%">
- <?cs call:short_descr(cl) ?>&nbsp;
- <?cs call:show_annotations_list(cl) ?>
- </td>
- </tr>
- <?cs set:count = count + #1 ?>
- <?cs /each ?>
-<?cs /def ?>
-
-<?cs # end macros ?>
-
-<div class="jd-descr">
-<?cs # make sure there's a summary view to display ?>
-<?cs if:subcount(class.inners)
- || subcount(class.attrs)
- || inhattrs
- || subcount(class.enumConstants)
- || subcount(class.constants)
- || inhconstants
- || subcount(class.fields)
- || inhfields
- || subcount(class.ctors.public)
- || subcount(class.ctors.protected)
- || subcount(class.methods.public)
- || subcount(class.methods.protected)
- || inhmethods ?>
-<h2>Summary</h2>
-
-<?cs if:subcount(class.inners) ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-<?cs call:write_inners_summary(class.inners) ?>
-<?cs /if ?>
-
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<?cs if:subcount(class.attrs) ?>
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lattrs" class="jd-sumtable"><tr><th colspan="12">XML Attributes</th></tr>
-<?cs call:write_attr_summary(class.attrs, 1) ?>
-<?cs /if ?>
-
-<?cs # if there are inherited attrs, write the table ?>
-<?cs if:inhattrs ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="inhattrs" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited XML Attributes</div></th></tr>
-<?cs each:cl=class.inherited ?>
-<?cs if:subcount(cl.attrs) ?>
-<tr class="api apilevel-<?cs var:cl.since ?>" >
-<td colspan="12">
-<?cs call:expando_trigger("inherited-attrs-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
-<?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?>
-<div id="inherited-attrs-<?cs var:cl.qualified ?>">
- <div id="inherited-attrs-<?cs var:cl.qualified ?>-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-attrs-<?cs var:cl.qualified ?>-summary" style="display: none;">
- <table class="jd-sumtable-expando">
- <?cs call:write_attr_summary(cl.attrs, cl.included) ?></table>
- </div>
-</div>
-</td></tr>
-<?cs /if ?>
-<?cs /each ?>
-</table>
-<?cs /if ?>
-
-<?cs if:subcount(class.enumConstants) ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
-<?cs set:count = #1 ?>
- <?cs each:field=class.enumConstants ?>
- <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:field.since ?>" >
- <td class="jd-descrcol"><?cs call:type_link(field.type) ?>&nbsp;</td>
- <td class="jd-linkcol"><?cs call:cond_link(field.name, toroot, field.href, cl.included) ?>&nbsp;</td>
- <td class="jd-descrcol" width="100%">
- <?cs call:short_descr(field) ?>&nbsp;
- <?cs call:show_annotations_list(field) ?>
- </td>
- </tr>
- <?cs set:count = count + #1 ?>
- <?cs /each ?>
-<?cs /if ?>
-
-<?cs if:subcount(class.constants) ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-<?cs call:write_constant_summary(class.constants, 1) ?>
-</table>
-<?cs /if ?>
-
-<?cs # if there are inherited constants, write the table ?>
-<?cs if:inhconstants ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-<?cs each:cl=class.inherited ?>
-<?cs if:subcount(cl.constants) ?>
-<tr class="api apilevel-<?cs var:cl.since ?>" >
-<td colspan="12">
-<?cs call:expando_trigger("inherited-constants-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
-<?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?>
-<div id="inherited-constants-<?cs var:cl.qualified ?>">
- <div id="inherited-constants-<?cs var:cl.qualified ?>-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-<?cs var:cl.qualified ?>-summary" style="display: none;">
- <table class="jd-sumtable-expando">
- <?cs call:write_constant_summary(cl.constants, cl.included) ?></table>
- </div>
-</div>
-</td></tr>
-<?cs /if ?>
-<?cs /each ?>
-</table>
-<?cs /if ?>
-
-<?cs if:subcount(class.fields) ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-<?cs call:write_field_summary(class.fields, 1) ?>
-</table>
-<?cs /if ?>
-
-<?cs # if there are inherited fields, write the table ?>
-<?cs if:inhfields ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="inhfields" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Fields</div></th></tr>
-<?cs each:cl=class.inherited ?>
-<?cs if:subcount(cl.fields) ?>
-<tr class="api apilevel-<?cs var:cl.since ?>" >
-<td colspan="12">
-<?cs call:expando_trigger("inherited-fields-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
-<?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?>
-<div id="inherited-fields-<?cs var:cl.qualified ?>">
- <div id="inherited-fields-<?cs var:cl.qualified ?>-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-fields-<?cs var:cl.qualified ?>-summary" style="display: none;">
- <table class="jd-sumtable-expando">
- <?cs call:write_field_summary(cl.fields, cl.included) ?></table>
- </div>
-</div>
-</td></tr>
-<?cs /if ?>
-<?cs /each ?>
-</table>
-<?cs /if ?>
-
-<?cs if:subcount(class.ctors.public) ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-<?cs call:write_method_summary(class.ctors.public, 1) ?>
-</table>
-<?cs /if ?>
-
-<?cs if:subcount(class.ctors.protected) ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="proctors" class="jd-sumtable"><tr><th colspan="12">Protected Constructors</th></tr>
-<?cs call:write_method_summary(class.ctors.protected, 1) ?>
-</table>
-<?cs /if ?>
-
-<?cs if:subcount(class.methods.public) ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-<?cs call:write_method_summary(class.methods.public, 1) ?>
-</table>
-<?cs /if ?>
-
-<?cs if:subcount(class.methods.protected) ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
-<?cs call:write_method_summary(class.methods.protected, 1) ?>
-</table>
-<?cs /if ?>
-
-<?cs # if there are inherited methods, write the table ?>
-<?cs if:inhmethods ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="inhmethods" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Methods</div></th></tr>
-<?cs each:cl=class.inherited ?>
-<?cs if:subcount(cl.methods) ?>
-<tr class="api apilevel-<?cs var:cl.since ?>" >
-<td colspan="12"><?cs call:expando_trigger("inherited-methods-"+cl.qualified, "closed") ?>
-From <?cs var:cl.kind ?>
-<?cs if:cl.included ?>
- <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
-<?cs elif:cl.federated ?>
- <a href="<?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
-<?cs else ?>
- <?cs var:cl.qualified ?>
-<?cs /if ?>
-<div id="inherited-methods-<?cs var:cl.qualified ?>">
- <div id="inherited-methods-<?cs var:cl.qualified ?>-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-<?cs var:cl.qualified ?>-summary" style="display: none;">
- <table class="jd-sumtable-expando">
- <?cs call:write_method_summary(cl.methods, cl.included) ?></table>
- </div>
-</div>
-</td></tr>
-<?cs /if ?>
-<?cs /each ?>
-</table>
-<?cs /if ?>
-<?cs /if ?>
-</div><!-- jd-descr (summary) -->
-
-<!-- Details -->
-
-<?cs def:write_field_details(fields) ?>
-<?cs each:field=fields ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
-<A NAME="<?cs var:field.anchor ?>"></A>
-<?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
-<div class="jd-details api apilevel-<?cs var:field.since ?>">
- <h4 class="jd-details-title">
- <span class="normal">
- <?cs var:field.scope ?>
- <?cs var:field.static ?>
- <?cs var:field.final ?>
- <?cs call:type_link(field.type) ?>
- </span>
- <?cs var:field.name ?>
- </h4>
- <div class="api-level">
- <?cs call:since_tags(field) ?>
- <?cs call:federated_refs(field) ?>
- </div>
- <div class="jd-details-descr">
- <?cs call:show_annotations_list(field) ?>
- <?cs call:description(field) ?>
- <?cs if:subcount(field.constantValue) ?>
- <div class="jd-tagdata">
- <span class="jd-tagtitle">Constant Value: </span>
- <span>
- <?cs if:field.constantValue.isString ?>
- <?cs var:field.constantValue.str ?>
- <?cs else ?>
- <?cs var:field.constantValue.dec ?>
- (<?cs var:field.constantValue.hex ?>)
- <?cs /if ?>
- </span>
- </div>
- <?cs /if ?>
- </div>
-</div>
-<?cs /each ?>
-<?cs /def ?>
-
-<?cs def:write_method_details(methods) ?>
-<?cs each:method=methods ?>
-<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
-<A NAME="<?cs var:method.anchor ?>"></A>
-<?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
-<div class="jd-details api apilevel-<?cs var:method.since ?>">
- <h4 class="jd-details-title">
- <span class="normal">
- <?cs var:method.scope ?>
- <?cs var:method.static ?>
- <?cs var:method.final ?>
- <?cs var:method.abstract ?>
- <?cs var:method.synchronized ?>
- <?cs call:type_link(method.returnType) ?>
- </span>
- <span class="sympad"><?cs var:method.name ?></span>
- <span class="normal">(<?cs call:parameter_list(method.params) ?>)</span>
- </h4>
- <div class="api-level">
- <div><?cs call:since_tags(method) ?></div>
- <?cs call:federated_refs(method) ?>
- </div>
- <div class="jd-details-descr">
- <?cs call:show_annotations_list(method) ?>
- <?cs call:description(method) ?>
- </div>
-</div>
-<?cs /each ?>
-<?cs /def ?>
-
-<?cs def:write_attr_details(attrs) ?>
-<?cs each:attr=attrs ?>
-<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
-<A NAME="<?cs var:attr.anchor ?>"></A>
-<div class="jd-details">
- <h4 class="jd-details-title"><?cs var:attr.name ?>
- </h4>
- <div class="jd-details-descr">
- <?cs call:show_annotations_list(attr) ?>
- <?cs call:description(attr) ?>
-
- <div class="jd-tagdata">
- <h5 class="jd-tagtitle">Related Methods</h5>
- <ul class="nolist">
- <?cs each:m=attr.methods ?>
- <li><a href="<?cs var:toroot ?><?cs var:m.href ?>"><?cs var:m.name ?></a></li>
- <?cs /each ?>
- </ul>
- </div>
- </div>
-</div>
-<?cs /each ?>
-<?cs /def ?>
-
-
-<!-- XML Attributes -->
-<?cs if:subcount(class.attrs) ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ========= FIELD DETAIL ======== -->
-<h2>XML Attributes</h2>
-<?cs call:write_attr_details(class.attrs) ?>
-<?cs /if ?>
-
-<!-- Enum Values -->
-<?cs if:subcount(class.enumConstants) ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Enum Values</h2>
-<?cs call:write_field_details(class.enumConstants) ?>
-<?cs /if ?>
-
-<!-- Constants -->
-<?cs if:subcount(class.constants) ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ========= ENUM CONSTANTS DETAIL ======== -->
-<h2>Constants</h2>
-<?cs call:write_field_details(class.constants) ?>
-<?cs /if ?>
-
-<!-- Fields -->
-<?cs if:subcount(class.fields) ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-<?cs call:write_field_details(class.fields) ?>
-<?cs /if ?>
-
-<!-- Public ctors -->
-<?cs if:subcount(class.ctors.public) ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-<?cs call:write_method_details(class.ctors.public) ?>
-<?cs /if ?>
-
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<!-- Protected ctors -->
-<?cs if:subcount(class.ctors.protected) ?>
-<h2>Protected Constructors</h2>
-<?cs call:write_method_details(class.ctors.protected) ?>
-<?cs /if ?>
-
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ========= METHOD DETAIL ======== -->
-<!-- Public methdos -->
-<?cs if:subcount(class.methods.public) ?>
-<h2>Public Methods</h2>
-<?cs call:write_method_details(class.methods.public) ?>
-<?cs /if ?>
-
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ========= METHOD DETAIL ======== -->
-<?cs if:subcount(class.methods.protected) ?>
-<h2>Protected Methods</h2>
-<?cs call:write_method_details(class.methods.protected) ?>
-<?cs /if ?>
-
-<?cs # the next two lines must be exactly like this to be parsed by eclipse ?>
-<!-- ========= END OF CLASS DATA ========= -->
-<A NAME="navbar_top"></A>
-
-<?cs include:"footer.cs" ?>
-</div> <!-- jd-content -->
-
-</div><!-- end doc-content -->
-
-<?cs include:"trailer.cs" ?>
-
-</body>
-</html>
diff --git a/build/tools/droiddoc/templates-lineage-sdk/classes.cs b/build/tools/droiddoc/templates-lineage-sdk/classes.cs
deleted file mode 100644
index 0928d7c0..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/classes.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-<?cs include:"doctype.cs" ?>
-<?cs include:"macros.cs" ?>
-<?cs include:"macros_override.cs" ?>
-<html<?cs if:devsite ?> devsite<?cs /if ?>>
-<?cs include:"head_tag.cs" ?>
-<body class="gc-documentation <?cs if:(reference.gms || reference.gcm) ?>google<?cs /if ?>
- <?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs
- if:reference ?> reference<?cs
- /if ?><?cs
- elif:design ?>design<?cs
- elif:distribute ?>distribute<?cs
- /if ?>" itemscope itemtype="http://schema.org/Article">
- <a name="top"></a>
-<?cs include:"header.cs" ?>
-
-<div class="col-12" id="doc-col">
-
-<div id="jd-header">
-<h1><?cs var:page.title ?></h1>
-</div>
-
-<div id="jd-content">
-<p>These are the LineageOS Platform API classes. See all <a href="packages.html">API packages</a>.</p>
-<div class="jd-letterlist"><?cs each:letter=docs.classes ?>
- <a href="#letter_<?cs name:letter ?>"><?cs name:letter ?></a>&nbsp;&nbsp;<?cs /each?>
-</div>
-
-<?cs each:letter=docs.classes ?>
-<?cs set:count = #1 ?>
-<h2 id="letter_<?cs name:letter ?>"><?cs name:letter ?></h2>
-<table class="jd-sumtable">
- <?cs set:cur_row = #0 ?>
- <?cs each:cl = letter ?>
- <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:cl.since ?>" >
- <td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
- <td class="jd-descrcol" width="100%">
- <?cs call:short_descr(cl) ?>&nbsp;
- <?cs call:show_annotations_list(cl) ?>
- </td>
- </tr>
- <?cs set:count = count + #1 ?>
- <?cs /each ?>
-</table>
-<?cs /each ?>
-
-<?cs include:"footer.cs" ?>
-</div><!-- end jd-content -->
-</div><!-- end doc-content -->
-
-<?cs include:"trailer.cs" ?>
-
-</body>
-</html>
diff --git a/build/tools/droiddoc/templates-lineage-sdk/components/masthead.cs b/build/tools/droiddoc/templates-lineage-sdk/components/masthead.cs
deleted file mode 100755
index f583642b..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/components/masthead.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-<?cs def:custom_masthead() ?>
- <div id="header">
- <div id="headerLeft">
- <a href="<?cs var:toroot ?>reference/packages.html" tabindex="-1"><img
- src="<?cs var:toroot ?>assets/lineage_logo.svg" alt="CID" width="144" height="72"/>
- <span id="masthead-title" style="font-size: 28px;">LineageOS Platform SDK</span></a>
- </div>
- </div><!-- header --><?cs
-/def ?>
-
diff --git a/build/tools/droiddoc/templates-lineage-sdk/customizations.cs b/build/tools/droiddoc/templates-lineage-sdk/customizations.cs
deleted file mode 100644
index e302e0c2..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/customizations.cs
+++ /dev/null
@@ -1,516 +0,0 @@
-<?cs
-def:fullpage() ?>
- <div id="body-content">
-<?cs /def ?>
-<?cs
-def:sdk_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-
-<?cs
- include:"../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
-
-
- </div>
- </div> <!-- end side-nav -->
-<?cs /def ?><?cs
-
-def:no_nav() ?>
- <div class="wrap clearfix" id="body-content">
-<?cs /def ?><?cs
-
-def:tools_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-<?cs
- include:"../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
-
-
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?>
-<?cs
-def:training_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-
-
-<?cs
- include:"../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
-
-
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?><?cs
-
-def:googleplay_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/googleplay/googleplay_toc.cs" ?>
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?><?cs
-
-def:essentials_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/essentials/essentials_toc.cs" ?>
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?><?cs
-
-def:users_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/users/users_toc.cs" ?>
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?><?cs
-
-def:engage_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/engage/engage_toc.cs" ?>
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?><?cs
-
-def:analyze_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/analyze/analyze_toc.cs" ?>
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?><?cs
-
-def:monetize_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/monetize/monetize_toc.cs" ?>
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?><?cs
-
-def:disttools_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/tools/disttools_toc.cs" ?>
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?><?cs
-
-def:stories_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-<?cs include:"../../../../frameworks/base/docs/html/distribute/stories/stories_toc.cs" ?>
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?><?cs
-
-def:guide_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-
-<?cs
- include:"../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
-
-
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?>
-<?cs
-def:design_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-
-
-<?cs
- include:"../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
-
-
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?>
-<?cs
-def:distribute_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-
-<?cs
- include:"../../../../frameworks/base/docs/html/distribute/distribute_toc.cs" ?>
-
-
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?>
-
-<?cs
-def:samples_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-
-<?cs
- include:"../../../../frameworks/base/docs/html/samples/samples_toc.cs" ?>
-
- </div>
-
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?>
-
-<?cs
-def:google_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-
-<?cs
- include:"../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
-
-
- </div>
- <script type="text/javascript">
- showGoogleRefTree();
-
- </script>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?>
-
-<?cs
-def:about_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-
-<?cs
- include:"../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
-
-
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?>
-
-
-<?cs
-def:wear_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
-
-<?cs
- include:"../../../../frameworks/base/docs/html/wear/wear_toc.cs" ?>
-
-
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?>
-
-<?cs
-def:preview_nav() ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav" class="scroll-pane">
- <?cs
- include:"../../../../frameworks/base/docs/html/preview/preview_toc.cs" ?>
- </div>
- </div> <!-- end side-nav -->
- <script>
- $(document).ready(function() {
- scrollIntoView("devdoc-nav");
- });
- </script>
-<?cs /def ?>
-
-<?cs # The default side navigation for the reference docs ?><?cs
-def:default_left_nav() ?>
-<?cs if:reference.gcm || reference.gms ?>
- <?cs call:google_nav() ?>
-<?cs else ?>
- <div class="wrap clearfix" id="body-content">
- <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
- <div id="devdoc-nav">
- <div id="api-nav-header">
- <div id="api-level-toggle">
- <label for="apiLevelCheckbox" class="disabled"
- title="Select your target API level to dim unavailable APIs">API level: </label>
- <div class="select-wrapper">
- <select id="apiLevelSelector">
- <!-- option elements added by buildApiLevelSelector() -->
- </select>
- </div>
- </div><!-- end toggle -->
- <div id="api-nav-title">LineageOS APIs</div>
- </div><!-- end nav header -->
- <script>
- var SINCE_DATA = [ <?cs
- each:since = since ?>'<?cs
- var:since.name ?>'<?cs
- if:!last(since) ?>, <?cs /if ?><?cs
- /each
- ?> ];
- buildApiLevelSelector();
- </script>
-
- <div id="swapper">
- <div id="nav-panels">
- <div id="resize-packages-nav">
- <div id="packages-nav" class="scroll-pane">
-
- <ul>
- <?cs call:package_link_list(docs.packages) ?>
- </ul><br/>
-
- </div> <!-- end packages-nav -->
- </div> <!-- end resize-packages -->
- <div id="classes-nav" class="scroll-pane">
-
-
-<?cs
- if:subcount(class.package) ?>
- <ul>
- <?cs call:list("Annotations", class.package.annotations) ?>
- <?cs call:list("Interfaces", class.package.interfaces) ?>
- <?cs call:list("Classes", class.package.classes) ?>
- <?cs call:list("Enums", class.package.enums) ?>
- <?cs call:list("Exceptions", class.package.exceptions) ?>
- <?cs call:list("Errors", class.package.errors) ?>
- </ul><?cs
- elif:subcount(package) ?>
- <ul>
- <?cs call:class_link_list("Annotations", package.annotations) ?>
- <?cs call:class_link_list("Interfaces", package.interfaces) ?>
- <?cs call:class_link_list("Classes", package.classes) ?>
- <?cs call:class_link_list("Enums", package.enums) ?>
- <?cs call:class_link_list("Exceptions", package.exceptions) ?>
- <?cs call:class_link_list("Errors", package.errors) ?>
- </ul><?cs
- else ?>
- <p style="padding:10px">Select a package to view its members</p><?cs
- /if ?><br/>
-
-
- </div><!-- end classes -->
- </div><!-- end nav-panels -->
- <div id="nav-tree" style="display:none" class="scroll-pane">
- <div id="tree-list"></div>
- </div><!-- end nav-tree -->
- </div><!-- end swapper -->
- <div id="nav-swap">
- <a class="fullscreen">fullscreen</a>
- <a href='#' onclick='swapNav();return false;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>
- </div>
- </div> <!-- end devdoc-nav -->
- </div> <!-- end side-nav -->
- <script type="text/javascript">
- // init fullscreen based on user pref
- var fullscreen = readCookie("fullscreen");
- if (fullscreen != 0) {
- if (fullscreen == "false") {
- toggleFullscreen(false);
- } else {
- toggleFullscreen(true);
- }
- }
- // init nav version for mobile
- if (isMobile) {
- swapNav(); // tree view should be used on mobile
- $('#nav-swap').hide();
- } else {
- chooseDefaultNav();
- if ($("#nav-tree").is(':visible')) {
- init_default_navtree("<?cs var:toroot ?>");
- }
- }
- // scroll the selected page into view
- $(document).ready(function() {
- scrollIntoView("packages-nav");
- scrollIntoView("classes-nav");
- });
- </script>
-<?cs /if ?>
- <?cs
-/def ?>
-
-<?cs
-def:custom_left_nav() ?><?cs
- if:fullpage ?><?cs
- call:fullpage() ?><?cs
- elif:nonavpage ?><?cs
- call:no_nav() ?><?cs
- elif:guide ?><?cs
- call:guide_nav() ?><?cs
- elif:design ?><?cs
- call:design_nav() ?><?cs
- elif:training ?><?cs
- call:training_nav() ?><?cs
- elif:tools ?><?cs
- call:tools_nav() ?><?cs
- elif:google ?><?cs
- call:google_nav() ?><?cs
- elif:samples ?><?cs
- call:samples_nav() ?><?cs
- elif:distribute ?><?cs
- if:googleplay ?><?cs
- call:googleplay_nav() ?><?cs
- elif:essentials ?><?cs
- call:essentials_nav() ?><?cs
- elif:users ?><?cs
- call:users_nav() ?><?cs
- elif:engage ?><?cs
- call:engage_nav() ?><?cs
- elif:monetize ?><?cs
- call:monetize_nav() ?><?cs
- elif:analyze ?><?cs
- call:analyze_nav() ?><?cs
- elif:disttools ?><?cs
- call:disttools_nav() ?><?cs
- elif:stories ?><?cs
- call:stories_nav() ?><?cs
- /if ?><?cs
- elif:about ?><?cs
- call:about_nav() ?><?cs
- elif:distribute ?><?cs
- call:distribute_nav() ?><?cs
- elif:wear ?><?cs
- call:wear_nav() ?><?cs
- elif:preview ?><?cs
- call:preview_nav() ?><?cs
- else ?><?cs
- call:default_left_nav() ?> <?cs
- /if ?><?cs
-/def ?>
-
-<?cs # appears at the bottom of every page ?><?cs
-def:custom_cc_copyright() ?>
- Except as noted, this content is
- licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
- Creative Commons Attribution 2.5</a>. For details and
- restrictions, see the <a href="<?cs var:toroot ?>license.html">Content
- License</a>.<?cs
-/def ?>
-
-<?cs
-def:custom_copyright() ?>
- Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
- For details and restrictions, see the <a href="<?cs var:toroot ?>license.html">
- Content License</a>.<?cs
-/def ?>
-
-<?cs
-def:custom_footerlinks() ?>
- <p>
- <a href="<?cs var:toroot ?>about/index.html">About Android</a>&nbsp;&nbsp;|&nbsp;
- <a href="<?cs var:toroot ?>legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
- <a href="<?cs var:toroot ?>support.html">Support</a>
- </p><?cs
-/def ?>
-
-<?cs # appears on the right side of the blue bar at the bottom off every page ?><?cs
-def:custom_buildinfo() ?><?cs
- if:!google && !reference.gcm && !reference.gms ?>
- Android <?cs var:sdk.version ?>&nbsp;r<?cs var:sdk.rel.id ?> &mdash; <?cs
- /if ?>
-<script src="<?cs var:toroot ?>timestamp.js" type="text/javascript"></script>
-<script>document.write(BUILD_TIMESTAMP)</script>
-<?cs /def ?>
-
diff --git a/build/tools/droiddoc/templates-lineage-sdk/head_tag.cs b/build/tools/droiddoc/templates-lineage-sdk/head_tag.cs
deleted file mode 100644
index 74621aa3..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/head_tag.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-<head>
-<?cs
- ####### If building devsite, add some meta data needed for when generating the top nav ######### ?>
-<?cs
- if:devsite ?><?cs
- if:guide||develop||training||reference||tools||sdk||google||samples
- ?><meta name="top_category" value="develop" /><?cs
- elif:google
- ?><meta name="top_category" value="google" /><?cs
- elif:reference && !(reference.gms || reference.gcm)
- ?><meta name="top_category" value="css-fullscreen" /><?cs
- /if ?>
- <?cs
- /if
-?><?cs
- # END if/else devsite ?>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=<?cs
- if:page.viewport_width ?><?cs
- var:page.viewport_width ?><?cs
- else ?>device-width<?cs /if ?>" />
-<?cs
- if:page.metaDescription ?>
-<meta name="Description" content="<?cs var:page.metaDescription ?>"><?cs
- /if ?>
-<link rel="shortcut icon" type="image/x-icon" href="<?cs var:toroot ?>assets/favicon.ico" />
-<title><?cs
- if:page.title ?><?cs
- var:page.title ?> | <?cs
- /if ?>Android Developers</title>
-
-<!-- STYLESHEETS -->
-<link rel="stylesheet"
-href="<?cs
-if:android.whichdoc != 'online' ?>http:<?cs
-/if ?>//fonts.googleapis.com/css?family=Roboto+Condensed">
-<link rel="stylesheet" href="<?cs
-if:android.whichdoc != 'online' ?>http:<?cs
-/if ?>//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold"
- title="roboto">
-<link href="<?cs var:toroot ?>assets/css/default.css?v=5" rel="stylesheet" type="text/css">
-
-<?cs if:reference && !(reference.gms || reference.gcm || preview) ?>
-<!-- FULLSCREEN STYLESHEET -->
-<link href="<?cs var:toroot ?>assets/css/fullscreen.css" rel="stylesheet" class="fullscreen"
-type="text/css">
-<?cs /if ?>
-
-<!-- JAVASCRIPT -->
-<script src="<?cs if:android.whichdoc != 'online' ?>http:<?cs /if ?>//www.google.com/jsapi" type="text/javascript"></script>
-<?cs
-if:devsite
- ?><script src="<?cs var:toroot ?>_static/js/android_3p-bundle.js" type="text/javascript"></script><?cs
-else
- ?><script src="<?cs var:toroot ?>assets/js/android_3p-bundle.js" type="text/javascript"></script><?cs
-/if ?><?cs
- if:page.customHeadTag ?>
-<?cs var:page.customHeadTag ?><?cs
- /if ?>
-<script type="text/javascript">
- var toRoot = "<?cs var:toroot ?>";
- var metaTags = [<?cs var:meta.tags ?>];
- var devsite = <?cs if:devsite ?>true<?cs else ?>false<?cs /if ?>;
-</script>
-
-<?cs if:helpoutsWidget ?>
-<script type="text/javascript" src="https://helpouts.google.com/ps/res/embed.js" defer async
- data-helpouts-embed data-helpouts-vertical="programming"
- data-helpouts-tags="<?cs var:page.tags ?>" data-helpouts-prefix="android"
- data-helpouts-standalone="true"></script>
-<?cs /if ?>
-
-<script>
- (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
- (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
- m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
- })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
-
- ga('create', 'UA-5831155-1', 'android.com');
- ga('create', 'UA-49880327-2', 'android.com', {'name': 'universal'}); // New tracker);
- ga('send', 'pageview');
- ga('universal.send', 'pageview'); // Send page view for new tracker.
-</script>
-
-<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
-<script src="<?cs var:toroot ?>assets/docs.js?v=3" type="text/javascript"></script>
-</head>
diff --git a/build/tools/droiddoc/templates-lineage-sdk/macros_override.cs b/build/tools/droiddoc/templates-lineage-sdk/macros_override.cs
deleted file mode 100644
index 0a945986..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/macros_override.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-<?cs # Create a comma separated list of annotations on obj that were in showAnnotations in Doclava ?>
-<?cs # pre is an HTML string to start the list, post is an HTML string to close the list ?>
-<?cs # for example call:show_annotations_list(cl, "<td>Annotations: ", "</td>") ?>
-<?cs # if obj has nothing on obj.showAnnotations, nothing will be output ?>
-<?cs def:show_annotations_list(obj) ?>
- <?cs each:anno = obj.showAnnotations ?>
- <?cs if:first(anno) ?>
- <span class='annotation-message'>
- Included in documentation by the annotations:
- <?cs /if ?>
- @<?cs var:anno.type.label ?>
- <?cs if:last(anno) == 0 ?>
- , &nbsp;
- <?cs /if ?>
- <?cs if:last(anno)?>
- </span>
- <?cs /if ?>
- <?cs /each ?>
-<?cs /def ?>
-
-<?cs # Override default class_link_table to display annotations ?>
-<?cs def:class_link_table(classes) ?>
- <?cs set:count = #1 ?>
- <table class="jd-sumtable-expando">
- <?cs each:cl=classes ?>
- <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:cl.type.since ?>" >
- <td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
- <td class="jd-descrcol" width="100%">
- <?cs call:short_descr(cl) ?>&nbsp;
- <?cs call:show_annotations_list(cl) ?>
- </td>
- </tr>
- <?cs set:count = count + #1 ?>
- <?cs /each ?>
- </table>
-<?cs /def ?> \ No newline at end of file
diff --git a/build/tools/droiddoc/templates-lineage-sdk/package.cs b/build/tools/droiddoc/templates-lineage-sdk/package.cs
deleted file mode 100644
index 22255650..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/package.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-<?cs include:"doctype.cs" ?>
-<?cs include:"macros.cs" ?>
-<?cs include:"macros_override.cs" ?>
-<html<?cs if:devsite ?> devsite<?cs /if ?>>
-<?cs include:"head_tag.cs" ?>
-
-<body class="gc-documentation <?cs if:(reference.gms || reference.gcm) ?>google<?cs /if ?>
- <?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs
- if:reference ?> reference<?cs
- /if ?><?cs
- elif:design ?>design<?cs
- elif:distribute ?>distribute<?cs
- /if ?>">
- <div id="doc-api-level" class="<?cs var:package.since ?>" style="display:none"></div>
- <a name="top"></a>
-<?cs include:"header.cs" ?>
-
-<div class="col-12" id="doc-col">
-
-<div id="api-info-block">
-<div class="api-level">
- <?cs call:since_tags(package) ?>
- <?cs call:federated_refs(package) ?>
-</div>
-</div>
-
-<div id="jd-header">
- package
- <h1><?cs var:package.name ?></h1>
-</div><!-- end header -->
-
-<div id="naMessage"></div>
-
-<div id="jd-content" class="api apilevel-<?cs var:package.since ?>">
-
-<?cs if:subcount(package.descr) ?>
- <div class="jd-descr">
- <?cs call:tag_list(package.descr) ?>
- </div>
-<?cs /if ?>
-
-<?cs def:class_table(label, classes) ?>
- <?cs if:subcount(classes) ?>
- <h2><?cs var:label ?></h2>
- <div class="jd-sumtable">
- <?cs call:class_link_table(classes) ?>
- </div>
- <?cs /if ?>
-<?cs /def ?>
-
-<?cs call:class_table("Annotations", package.annotations) ?>
-<?cs call:class_table("Interfaces", package.interfaces) ?>
-<?cs call:class_table("Classes", package.classes) ?>
-<?cs call:class_table("Enums", package.enums) ?>
-<?cs call:class_table("Exceptions", package.exceptions) ?>
-<?cs call:class_table("Errors", package.errors) ?>
-
-<?cs include:"footer.cs" ?>
-</div><!-- end jd-content -->
-</div><!-- doc-content -->
-
-<?cs include:"trailer.cs" ?>
-
-</body>
-</html>
diff --git a/build/tools/droiddoc/templates-lineage-sdk/packages.cs b/build/tools/droiddoc/templates-lineage-sdk/packages.cs
deleted file mode 100644
index 5056d3a5..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/packages.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-<?cs include:"doctype.cs" ?>
-<?cs include:"macros.cs" ?>
-<html<?cs if:devsite ?> devsite<?cs /if ?>>
-<?cs include:"head_tag.cs" ?>
-<body class="gc-documentation <?cs if:(reference.gms || reference.gcm) ?>google<?cs /if ?>
- <?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs
- if:reference ?> reference<?cs
- /if ?><?cs
- elif:design ?>design<?cs
- elif:distribute ?>distribute<?cs
- /if ?>">
- <a name="top"></a>
-<?cs include:"header.cs" ?>
-
-<div class="col-12" id="doc-col">
-
-<div id="jd-header">
-<h1><?cs var:page.title ?></h1>
-</div>
-
-<div id="jd-content">
-
-<div class="jd-descr">
-<p><?cs call:tag_list(root.descr) ?></p>
-</div>
-
-<?cs set:count = #1 ?>
-<table class="jd-sumtable">
-<?cs each:pkg = docs.packages ?>
- <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:pkg.since ?>" >
- <td class="jd-linkcol"><?cs call:package_link(pkg) ?></td>
- <td class="jd-descrcol" width="100%"><?cs call:tag_list(pkg.shortDescr) ?></td>
- </tr>
-<?cs set:count = count + #1 ?>
-<?cs /each ?>
-</table>
-
-<?cs include:"footer.cs" ?>
-</div><!-- end jd-content -->
-</div> <!-- end doc-content -->
-
-<?cs include:"trailer.cs" ?>
-
-</body>
-</html>
diff --git a/build/tools/droiddoc/templates-lineage-sdk/timestamp.cs b/build/tools/droiddoc/templates-lineage-sdk/timestamp.cs
deleted file mode 100644
index 4bf502a0..00000000
--- a/build/tools/droiddoc/templates-lineage-sdk/timestamp.cs
+++ /dev/null
@@ -1 +0,0 @@
-var BUILD_TIMESTAMP = "<?cs var:page.now ?>";
diff --git a/build/tools/extract_utils.sh b/build/tools/extract_utils.sh
deleted file mode 100644
index 19820ba4..00000000
--- a/build/tools/extract_utils.sh
+++ /dev/null
@@ -1,1433 +0,0 @@
-#!/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_COPY_FILES_FIXUP_HASHES=()
-PRODUCT_PACKAGES_LIST=()
-PRODUCT_PACKAGES_HASHES=()
-PRODUCT_PACKAGES_FIXUP_HASHES=()
-PACKAGE_LIST=()
-VENDOR_STATE=-1
-VENDOR_RADIO_STATE=-1
-COMMON=-1
-ARCHES=
-FULLY_DEODEXED=-1
-
-TMPDIR=$(mktemp -d)
-
-#
-# cleanup
-#
-# kill our tmpfiles with fire on exit
-#
-function cleanup() {
- rm -rf "${TMPDIR:?}"
-}
-
-trap cleanup 0
-
-#
-# setup_vendor
-#
-# $1: device name
-# $2: vendor name
-# $3: Lineage root directory
-# $4: is common device - optional, default to false
-# $5: cleanup - optional, default to true
-# $6: custom vendor makefile name - optional, default to false
-#
-# 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 LINEAGE_ROOT="$3"
- if [ ! -d "$LINEAGE_ROOT" ]; then
- echo "\$LINEAGE_ROOT must be set and valid before including this script!"
- exit 1
- fi
-
- export OUTDIR=vendor/"$VENDOR"/"$DEVICE"
- if [ ! -d "$LINEAGE_ROOT/$OUTDIR" ]; then
- mkdir -p "$LINEAGE_ROOT/$OUTDIR"
- fi
-
- VNDNAME="$6"
- if [ -z "$VNDNAME" ]; then
- VNDNAME="$DEVICE"
- fi
-
- export PRODUCTMK="$LINEAGE_ROOT"/"$OUTDIR"/"$VNDNAME"-vendor.mk
- export ANDROIDMK="$LINEAGE_ROOT"/"$OUTDIR"/Android.mk
- export BOARDMK="$LINEAGE_ROOT"/"$OUTDIR"/BoardConfigVendor.mk
-
- if [ "$4" == "true" ] || [ "$4" == "1" ]; then
- COMMON=1
- else
- COMMON=0
- fi
-
- if [ "$5" == "false" ] || [ "$5" == "0" ]; then
- VENDOR_STATE=1
- VENDOR_RADIO_STATE=1
- else
- VENDOR_STATE=0
- VENDOR_RADIO_STATE=0
- fi
-}
-
-# Helper functions for parsing a spec.
-# notes: an optional "|SHA1" that may appear in the format is stripped
-# early from the spec in the parse_file_list function, and
-# should not be present inside the input parameter passed
-# to these functions.
-
-#
-# input: spec in the form of "src[:dst][;args]"
-# output: "src"
-#
-function src_file() {
- local SPEC="$1"
- local SPLIT=(${SPEC//:/ })
- local ARGS="$(target_args ${SPEC})"
- # Regardless of there being a ":" delimiter or not in the spec,
- # the source file is always either the first, or the only entry.
- local SRC="${SPLIT[0]}"
- # Remove target_args suffix, if present
- echo "${SRC%;${ARGS}}"
-}
-
-#
-# input: spec in the form of "src[:dst][;args]"
-# output: "dst" if present, "src" otherwise.
-#
-function target_file() {
- local SPEC="$1"
- local SPLIT=(${SPEC//:/ })
- local ARGS="$(target_args ${SPEC})"
- local DST=
- case ${#SPLIT[@]} in
- 1)
- # The spec doesn't have a : delimiter
- DST="${SPLIT[0]}"
- ;;
- *)
- # The spec actually has a src:dst format
- DST="${SPLIT[1]}"
- ;;
- esac
- # Remove target_args suffix, if present
- echo "${DST%;${ARGS}}"
-}
-
-#
-# input: spec in the form of "src[:dst][;args]"
-# output: "args" if present, "" otherwise.
-#
-function target_args() {
- local SPEC="$1"
- local SPLIT=(${SPEC//;/ })
- local ARGS=
- case ${#SPLIT[@]} in
- 1)
- # No ";" delimiter in the spec.
- ;;
- *)
- # The "args" are whatever comes after the ";" character.
- # Basically the spec stripped of whatever is to the left of ";".
- ARGS="${SPEC#${SPLIT[0]};}"
- ;;
- esac
- echo "${ARGS}"
-}
-
-#
-# prefix_match:
-#
-# input:
-# - $1: prefix
-# - (global variable) PRODUCT_PACKAGES_LIST: array of [src:]dst[;args] specs.
-# output:
-# - new array consisting of dst[;args] entries where $1 is a prefix of ${dst}.
-#
-function prefix_match() {
- local PREFIX="$1"
- for LINE in "${PRODUCT_PACKAGES_LIST[@]}"; do
- local FILE=$(target_file "$LINE")
- if [[ "$FILE" =~ ^"$PREFIX" ]]; then
- local ARGS=$(target_args "$LINE")
- if [ -z "${ARGS}" ]; then
- echo "${FILE#$PREFIX}"
- else
- echo "${FILE#$PREFIX};${ARGS}"
- fi
- fi
- done
-}
-
-#
-# prefix_match_file:
-#
-# $1: the prefix to match on
-# $2: the file to match the prefix for
-#
-# Internal function which returns true if a filename contains the
-# specified prefix.
-#
-function prefix_match_file() {
- local PREFIX="$1"
- local FILE="$2"
- if [[ "$FILE" =~ ^"$PREFIX" ]]; then
- return 0
- else
- return 1
- fi
-}
-
-#
-# suffix_match_file:
-#
-# $1: the suffix to match on
-# $2: the file to match the suffix for
-#
-# Internal function which returns true if a filename contains the
-# specified suffix.
-#
-function suffix_match_file() {
- local SUFFIX="$1"
- local FILE="$2"
- if [[ "$FILE" = *"$SUFFIX" ]]; then
- return 0
- else
- return 1
- fi
-}
-
-#
-# truncate_file
-#
-# $1: the filename to truncate
-# $2: the argument to output the truncated filename to
-#
-# Internal function which truncates a filename by removing the first dir
-# in the path. ex. vendor/lib/libsdmextension.so -> lib/libsdmextension.so
-#
-function truncate_file() {
- local FILE="$1"
- RETURN_FILE="$2"
- local FIND="${FILE%%/*}"
- local LOCATION="${#FIND}+1"
- echo ${FILE:$LOCATION}
-}
-
-#
-# write_product_copy_files:
-#
-# $1: make treble compatible makefile - optional, default to false
-#
-# 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=
- local TREBLE_COMPAT=$1
-
- 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")
- if [ "$TREBLE_COMPAT" == "true" ] || [ "$TREBLE_COMPAT" == "1" ]; then
- if prefix_match_file "vendor/" $TARGET ; then
- local OUTTARGET=$(truncate_file $TARGET)
- printf ' %s/proprietary/%s:$(TARGET_COPY_OUT_VENDOR)/%s%s\n' \
- "$OUTDIR" "$TARGET" "$OUTTARGET" "$LINEEND" >> "$PRODUCTMK"
- elif prefix_match_file "product/" $TARGET ; then
- local OUTTARGET=$(truncate_file $TARGET)
- printf ' %s/proprietary/%s:$(TARGET_COPY_OUT_PRODUCT)/%s%s\n' \
- "$OUTDIR" "$TARGET" "$OUTTARGET" "$LINEEND" >> "$PRODUCTMK"
- else
- printf ' %s/proprietary/%s:system/%s%s\n' \
- "$OUTDIR" "$TARGET" "$TARGET" "$LINEEND" >> "$PRODUCTMK"
- fi
- else
- printf ' %s/proprietary/%s:system/%s%s\n' \
- "$OUTDIR" "$TARGET" "$TARGET" "$LINEEND" >> "$PRODUCTMK"
- fi
- done
- return 0
-}
-
-#
-# write_packages:
-#
-# $1: The LOCAL_MODULE_CLASS for the given module list
-# $2: /product or /vendor partition
-# $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 PARTITION="$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")
- DIRNAME=$(dirname "$FILE")
- EXTENSION=${BASENAME##*.}
- PKGNAME=${BASENAME%.*}
-
- # Add to final package list
- PACKAGE_LIST+=("$PKGNAME")
-
- SRC="proprietary"
- if [ "$PARTITION" = "vendor" ]; then
- SRC+="/vendor"
- elif [ "$PARTITION" = "product" ]; then
- SRC+="/product"
- 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 [ "$EXTRA" = "priv-app" ]; then
- SRC="$SRC/priv-app"
- else
- SRC="$SRC/app"
- 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 [ "$CLASS" = "APPS" ]; then
- printf 'LOCAL_DEX_PREOPT := false\n'
- fi
- if [ ! -z "$EXTENSION" ]; then
- printf 'LOCAL_MODULE_SUFFIX := .%s\n' "$EXTENSION"
- fi
- if [ "$CLASS" = "SHARED_LIBRARIES" ] || [ "$CLASS" = "EXECUTABLES" ]; then
- if [ "$DIRNAME" != "." ]; then
- printf 'LOCAL_MODULE_RELATIVE_PATH := %s\n' "$DIRNAME"
- fi
- fi
- if [ "$EXTRA" = "priv-app" ]; then
- printf 'LOCAL_PRIVILEGED_MODULE := true\n'
- fi
- if [ "$PARTITION" = "vendor" ]; then
- printf 'LOCAL_VENDOR_MODULE := true\n'
- elif [ "$PARTITION" = "product" ]; then
- printf 'LOCAL_PRODUCT_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" "" "both" "MULTILIBS" >> "$ANDROIDMK"
- fi
- if [ "${#LIB32[@]}" -gt "0" ]; then
- write_packages "SHARED_LIBRARIES" "" "32" "LIB32" >> "$ANDROIDMK"
- fi
- if [ "${#LIB64[@]}" -gt "0" ]; then
- write_packages "SHARED_LIBRARIES" "" "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" "vendor" "both" "V_MULTILIBS" >> "$ANDROIDMK"
- fi
- if [ "${#V_LIB32[@]}" -gt "0" ]; then
- write_packages "SHARED_LIBRARIES" "vendor" "32" "V_LIB32" >> "$ANDROIDMK"
- fi
- if [ "${#V_LIB64[@]}" -gt "0" ]; then
- write_packages "SHARED_LIBRARIES" "vendor" "64" "V_LIB64" >> "$ANDROIDMK"
- fi
-
- local T_P_LIB32=( $(prefix_match "product/lib/") )
- local T_P_LIB64=( $(prefix_match "product/lib64/") )
- local P_MULTILIBS=( $(comm -12 <(printf '%s\n' "${T_P_LIB32[@]}") <(printf '%s\n' "${T_P_LIB64[@]}")) )
- local P_LIB32=( $(comm -23 <(printf '%s\n' "${T_P_LIB32[@]}") <(printf '%s\n' "${P_MULTILIBS[@]}")) )
- local P_LIB64=( $(comm -23 <(printf '%s\n' "${T_P_LIB64[@]}") <(printf '%s\n' "${P_MULTILIBS[@]}")) )
-
- if [ "${#P_MULTILIBS[@]}" -gt "0" ]; then
- write_packages "SHARED_LIBRARIES" "product" "both" "P_MULTILIBS" >> "$ANDROIDMK"
- fi
- if [ "${#P_LIB32[@]}" -gt "0" ]; then
- write_packages "SHARED_LIBRARIES" "product" "32" "P_LIB32" >> "$ANDROIDMK"
- fi
- if [ "${#P_LIB64[@]}" -gt "0" ]; then
- write_packages "SHARED_LIBRARIES" "product" "64" "P_LIB64" >> "$ANDROIDMK"
- fi
-
- # Apps
- local APPS=( $(prefix_match "app/") )
- if [ "${#APPS[@]}" -gt "0" ]; then
- write_packages "APPS" "" "" "APPS" >> "$ANDROIDMK"
- fi
- local PRIV_APPS=( $(prefix_match "priv-app/") )
- if [ "${#PRIV_APPS[@]}" -gt "0" ]; then
- write_packages "APPS" "" "priv-app" "PRIV_APPS" >> "$ANDROIDMK"
- fi
- local V_APPS=( $(prefix_match "vendor/app/") )
- if [ "${#V_APPS[@]}" -gt "0" ]; then
- write_packages "APPS" "vendor" "" "V_APPS" >> "$ANDROIDMK"
- fi
- local V_PRIV_APPS=( $(prefix_match "vendor/priv-app/") )
- if [ "${#V_PRIV_APPS[@]}" -gt "0" ]; then
- write_packages "APPS" "vendor" "priv-app" "V_PRIV_APPS" >> "$ANDROIDMK"
- fi
- local P_APPS=( $(prefix_match "product/app/") )
- if [ "${#P_APPS[@]}" -gt "0" ]; then
- write_packages "APPS" "product" "" "P_APPS" >> "$ANDROIDMK"
- fi
- local P_PRIV_APPS=( $(prefix_match "product/priv-app/") )
- if [ "${#P_PRIV_APPS[@]}" -gt "0" ]; then
- write_packages "APPS" "product" "priv-app" "P_PRIV_APPS" >> "$ANDROIDMK"
- fi
-
- # Framework
- local FRAMEWORK=( $(prefix_match "framework/") )
- if [ "${#FRAMEWORK[@]}" -gt "0" ]; then
- write_packages "JAVA_LIBRARIES" "" "" "FRAMEWORK" >> "$ANDROIDMK"
- fi
- local V_FRAMEWORK=( $(prefix_match "vendor/framework/") )
- if [ "${#V_FRAMEWORK[@]}" -gt "0" ]; then
- write_packages "JAVA_LIBRARIES" "vendor" "" "V_FRAMEWORK" >> "$ANDROIDMK"
- fi
- local P_FRAMEWORK=( $(prefix_match "product/framework/") )
- if [ "${#P_FRAMEWORK[@]}" -gt "0" ]; then
- write_packages "JAVA_LIBRARIES" "product" "" "P_FRAMEWORK" >> "$ANDROIDMK"
- fi
-
- # Etc
- local ETC=( $(prefix_match "etc/") )
- if [ "${#ETC[@]}" -gt "0" ]; then
- write_packages "ETC" "" "" "ETC" >> "$ANDROIDMK"
- fi
- local V_ETC=( $(prefix_match "vendor/etc/") )
- if [ "${#V_ETC[@]}" -gt "0" ]; then
- write_packages "ETC" "vendor" "" "V_ETC" >> "$ANDROIDMK"
- fi
- local P_ETC=( $(prefix_match "product/etc/") )
- if [ "${#P_ETC[@]}" -gt "0" ]; then
- write_packages "ETC" "product" "" "P_ETC" >> "$ANDROIDMK"
- fi
-
- # Executables
- local BIN=( $(prefix_match "bin/") )
- if [ "${#BIN[@]}" -gt "0" ]; then
- write_packages "EXECUTABLES" "" "" "BIN" >> "$ANDROIDMK"
- fi
- local V_BIN=( $(prefix_match "vendor/bin/") )
- if [ "${#V_BIN[@]}" -gt "0" ]; then
- write_packages "EXECUTABLES" "vendor" "" "V_BIN" >> "$ANDROIDMK"
- fi
- local P_BIN=( $(prefix_match "product/bin/") )
- if [ "${#P_BIN[@]}" -gt "0" ]; then
- write_packages "EXECUTABLES" "product" "" "P_BIN" >> "$ANDROIDMK"
- fi
- local SBIN=( $(prefix_match "sbin/") )
- if [ "${#SBIN[@]}" -gt "0" ]; then
- write_packages "EXECUTABLES" "" "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() {
- if [ -f $1 ]; then
- rm $1
- fi
-
- YEAR=$(date +"%Y")
-
- [ "$COMMON" -eq 1 ] && local DEVICE="$DEVICE_COMMON"
-
- NUM_REGEX='^[0-9]+$'
- if [[ $INITIAL_COPYRIGHT_YEAR =~ $NUM_REGEX ]] && [ $INITIAL_COPYRIGHT_YEAR -le $YEAR ]; then
- if [ $INITIAL_COPYRIGHT_YEAR -lt 2016 ]; then
- printf "# Copyright (C) $INITIAL_COPYRIGHT_YEAR-2016 The CyanogenMod Project\n" > $1
- elif [ $INITIAL_COPYRIGHT_YEAR -eq 2016 ]; then
- printf "# Copyright (C) 2016 The CyanogenMod Project\n" > $1
- fi
- if [ $YEAR -eq 2017 ]; then
- printf "# Copyright (C) 2017 The LineageOS Project\n" >> $1
- elif [ $INITIAL_COPYRIGHT_YEAR -eq $YEAR ]; then
- printf "# Copyright (C) $YEAR The LineageOS Project\n" >> $1
- elif [ $INITIAL_COPYRIGHT_YEAR -le 2017 ]; then
- printf "# Copyright (C) 2017-$YEAR The LineageOS Project\n" >> $1
- else
- printf "# Copyright (C) $INITIAL_COPYRIGHT_YEAR-$YEAR The LineageOS Project\n" >> $1
- fi
- else
- printf "# Copyright (C) $YEAR The LineageOS Project\n" > $1
- fi
-
- cat << EOF >> $1
-#
-# 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
-# $2: custom 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"
-
- GUARD="$2"
- if [ -z "$GUARD" ]; then
- GUARD="TARGET_DEVICE"
- fi
-
- cat << EOF >> "$ANDROIDMK"
-LOCAL_PATH := \$(call my-dir)
-
-EOF
- if [ "$COMMON" -ne 1 ]; then
- cat << EOF >> "$ANDROIDMK"
-ifeq (\$($GUARD),$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,\$($GUARD)),)
-
-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 ]]
- then
- return 0
- fi
- } 2>/dev/null
-
- return 1
-};
-
-#
-# parse_file_list:
-#
-# $1: input file
-# $2: blob section in file - optional
-#
-# 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
-
- if [ -n "$2" ]; then
- echo "Using section \"$2\""
- LIST=$TMPDIR/files.txt
- # Match all lines starting with first line found to start* with '#'
- # comment and contain** $2, and ending with first line to be empty*.
- # *whitespaces (tabs, spaces) at the beginning of lines are discarded
- # **the $2 match is case-insensitive
- cat $1 | sed -n '/^[[:space:]]*#.*'"$2"'/I,/^[[:space:]]*$/ p' > $LIST
- else
- LIST=$1
- fi
-
-
- PRODUCT_PACKAGES_LIST=()
- PRODUCT_PACKAGES_HASHES=()
- PRODUCT_PACKAGES_FIXUP_HASHES=()
- PRODUCT_COPY_FILES_LIST=()
- PRODUCT_COPY_FILES_HASHES=()
- PRODUCT_COPY_FILES_FIXUP_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"
- local FIXUP_HASH="x"
- if [ "$COUNT" -gt "1" ]; then
- HASH=${SPLIT[1]}
- fi
- if [ "$COUNT" -gt "2" ]; then
- FIXUP_HASH=${SPLIT[2]}
- fi
-
- # if line starts with a dash, it needs to be packaged
- if [[ "$SPEC" =~ ^- ]]; then
- PRODUCT_PACKAGES_LIST+=("${SPEC#-}")
- PRODUCT_PACKAGES_HASHES+=("$HASH")
- PRODUCT_PACKAGES_FIXUP_HASHES+=("$FIXUP_HASH")
- else
- PRODUCT_COPY_FILES_LIST+=("$SPEC")
- PRODUCT_COPY_FILES_HASHES+=("$HASH")
- PRODUCT_COPY_FILES_FIXUP_HASHES+=("$FIXUP_HASH")
- fi
-
- done < <(egrep -v '(^#|^[[:space:]]*$)' "$LIST" | LC_ALL=C sort | uniq)
-}
-
-#
-# write_makefiles:
-#
-# $1: file containing the list of items to extract
-# $2: make treble compatible makefile - optional
-#
-# 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 "$2"
- 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 -r "$SRC/$1" "$2" 2>/dev/null && return 0
- cp -r "$SRC/${1#/system}" "$2" 2>/dev/null && return 0
- cp -r "$SRC/system/$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 LINEAGE_TARGET="$1"
- local OEM_TARGET="$2"
- local SRC="$3"
- local TARGET=
- local OAT=
- local HOST="$(uname)"
-
- if [ -z "$BAKSMALIJAR" ] || [ -z "$SMALIJAR" ]; then
- export BAKSMALIJAR="$LINEAGE_ROOT"/vendor/lineage/build/tools/smali/baksmali.jar
- export SMALIJAR="$LINEAGE_ROOT"/vendor/lineage/build/tools/smali/smali.jar
- fi
-
- if [ -z "$VDEXEXTRACTOR" ]; then
- export VDEXEXTRACTOR="$LINEAGE_ROOT"/vendor/lineage/build/tools/"$HOST"/vdexExtractor
- fi
-
- if [ -z "$CDEXCONVERTER" ]; then
- export CDEXCONVERTER="$LINEAGE_ROOT"/vendor/lineage/build/tools/"$HOST"/compact_dex_converter
- fi
-
- # Extract existing boot.oats to the temp folder
- if [ -z "$ARCHES" ]; then
- echo "Checking if system is odexed and locating boot.oats..."
- for ARCH in "arm64" "arm" "x86_64" "x86"; do
- mkdir -p "$TMPDIR/system/framework/$ARCH"
- if get_file "/system/framework/$ARCH" "$TMPDIR/system/framework/" "$SRC"; then
- ARCHES+="$ARCH "
- else
- rmdir "$TMPDIR/system/framework/$ARCH"
- fi
- done
- fi
-
- if [ -z "$ARCHES" ]; then
- FULLY_DEODEXED=1 && return 0 # system is fully deodexed, return
- fi
-
- if [ ! -f "$LINEAGE_TARGET" ]; then
- return;
- fi
-
- if grep "classes.dex" "$LINEAGE_TARGET" >/dev/null; then
- return 0 # target apk|jar is already odexed, return
- fi
-
- for ARCH in $ARCHES; do
- BOOTOAT="$TMPDIR/system/framework/$ARCH/boot.oat"
-
- local OAT="$(dirname "$OEM_TARGET")/oat/$ARCH/$(basename "$OEM_TARGET" ."${OEM_TARGET##*.}").odex"
- local VDEX="$(dirname "$OEM_TARGET")/oat/$ARCH/$(basename "$OEM_TARGET" ."${OEM_TARGET##*.}").vdex"
-
- if get_file "$OAT" "$TMPDIR" "$SRC"; then
- if get_file "$VDEX" "$TMPDIR" "$SRC"; then
- "$VDEXEXTRACTOR" -o "$TMPDIR/" -i "$TMPDIR/$(basename "$VDEX")" > /dev/null
- CLASSES=$(ls "$TMPDIR/$(basename "${OEM_TARGET%.*}")_classes"*)
- for CLASS in $CLASSES; do
- NEWCLASS=$(echo "$CLASS" | sed 's/.*_//;s/cdex/dex/')
- # Check if we have to deal with CompactDex
- if [[ "$CLASS" == *.cdex ]]; then
- "$CDEXCONVERTER" "$CLASS" &>/dev/null
- mv "$CLASS.new" "$TMPDIR/$NEWCLASS"
- else
- mv "$CLASS" "$TMPDIR/$NEWCLASS"
- fi
- done
- else
- java -jar "$BAKSMALIJAR" deodex -o "$TMPDIR/dexout" -b "$BOOTOAT" -d "$TMPDIR" "$TMPDIR/$(basename "$OAT")"
- java -jar "$SMALIJAR" assemble "$TMPDIR/dexout" -o "$TMPDIR/classes.dex"
- fi
- elif [[ "$LINEAGE_TARGET" =~ .jar$ ]]; then
- JAROAT="$TMPDIR/system/framework/$ARCH/boot-$(basename ${OEM_TARGET%.*}).oat"
- JARVDEX="/system/framework/boot-$(basename ${OEM_TARGET%.*}).vdex"
- if [ ! -f "$JAROAT" ]; then
- JAROAT=$BOOTOAT
- fi
- # try to extract classes.dex from boot.vdex for frameworks jars
- # fallback to boot.oat if vdex is not available
- if get_file "$JARVDEX" "$TMPDIR" "$SRC"; then
- "$VDEXEXTRACTOR" -o "$TMPDIR/" -i "$TMPDIR/$(basename "$JARVDEX")" > /dev/null
- CLASSES=$(ls "$TMPDIR/$(basename "${JARVDEX%.*}")_classes"*)
- for CLASS in $CLASSES; do
- NEWCLASS=$(echo "$CLASS" | sed 's/.*_//;s/cdex/dex/')
- # Check if we have to deal with CompactDex
- if [[ "$CLASS" == *.cdex ]]; then
- "$CDEXCONVERTER" "$CLASS" &>/dev/null
- mv "$CLASS.new" "$TMPDIR/$NEWCLASS"
- else
- mv "$CLASS" "$TMPDIR/$NEWCLASS"
- fi
- done
- else
- java -jar "$BAKSMALIJAR" deodex -o "$TMPDIR/dexout" -b "$BOOTOAT" -d "$TMPDIR" "$JAROAT/$OEM_TARGET"
- java -jar "$SMALIJAR" assemble "$TMPDIR/dexout" -o "$TMPDIR/classes.dex"
- fi
- else
- continue
- fi
-
- 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 -a '^<?xml version' "$XML" > "$TEMP_XML"
- grep -av '^<?xml version' "$XML" >> "$TEMP_XML"
-
- mv "$TEMP_XML" "$XML"
-}
-
-function get_hash() {
- local FILE="$1"
-
- if [ "$(uname)" == "Darwin" ]; then
- shasum "${FILE}" | awk '{print $1}'
- else
- sha1sum "${FILE}" | awk '{print $1}'
- fi
-}
-
-function print_spec() {
- local SPEC_PRODUCT_PACKAGE="$1"
- local SPEC_SRC_FILE="$2"
- local SPEC_DST_FILE="$3"
- local SPEC_ARGS="$4"
- local SPEC_HASH="$5"
- local SPEC_FIXUP_HASH="$6"
-
- local PRODUCT_PACKAGE=""
- if [ ${SPEC_PRODUCT_PACKAGE} = true ]; then
- PRODUCT_PACKAGE="-"
- fi
- local SRC=""
- if [ ! -z "${SPEC_SRC_FILE}" ] && [ "${SPEC_SRC_FILE}" != "${SPEC_DST_FILE}" ]; then
- SRC="${SPEC_SRC_FILE}:"
- fi
- local DST=""
- if [ ! -z "${SPEC_DST_FILE}" ]; then
- DST="${SPEC_DST_FILE}"
- fi
- local ARGS=""
- if [ ! -z "${SPEC_ARGS}" ]; then
- ARGS=";${SPEC_ARGS}"
- fi
- local HASH=""
- if [ ! -z "${SPEC_HASH}" ] && [ "${SPEC_HASH}" != "x" ]; then
- HASH="|${SPEC_HASH}"
- fi
- local FIXUP_HASH=""
- if [ ! -z "${SPEC_FIXUP_HASH}" ] && [ "${SPEC_FIXUP_HASH}" != "x" ] && [ "${SPEC_FIXUP_HASH}" != "${SPEC_HASH}" ]; then
- FIXUP_HASH="|${SPEC_FIXUP_HASH}"
- fi
- printf '%s%s%s%s%s%s\n' "${PRODUCT_PACKAGE}" "${SRC}" "${DST}" "${ARGS}" "${HASH}" "${FIXUP_HASH}"
-}
-
-# To be overridden by device-level extract-files.sh
-# Parameters:
-# $1: spec name of a blob. Can be used for filtering.
-# If the spec is "src:dest", then $1 is "dest".
-# If the spec is "src", then $1 is "src".
-# $2: path to blob file. Can be used for fixups.
-#
-function blob_fixup() {
- :
-}
-
-#
-# extract:
-#
-# Positional parameters:
-# $1: file containing the list of items to extract (aka proprietary-files.txt)
-# $2: path to extracted system folder, an ota zip file, or "adb" to extract from device
-# $3: section in list file to extract - optional. Setting section via $3 is deprecated.
-#
-# Non-positional parameters (coming after $2):
-# --section: preferred way of selecting the portion to parse and extract from
-# proprietary-files.txt
-# --kang: if present, this option will activate the printing of hashes for the
-# extracted blobs. Useful with --section for subsequent pinning of
-# blobs taken from other origins.
-#
-function extract() {
- # Consume positional parameters
- local PROPRIETARY_FILES_TXT="$1"; shift
- local SRC="$1"; shift
- local SECTION=""
- local KANG=false
-
- # Consume optional, non-positional parameters
- while [ "$#" -gt 0 ]; do
- case "$1" in
- -s|--section)
- SECTION="$2"; shift
- ;;
- -k|--kang)
- KANG=true
- DISABLE_PINNING=1
- ;;
- *)
- # Backwards-compatibility with the old behavior, where $3, if
- # present, denoted an optional positional ${SECTION} argument.
- # Users of ${SECTION} are encouraged to migrate from setting it as
- # positional $3, to non-positional --section ${SECTION}, the
- # reason being that it doesn't scale to have more than 1 optional
- # positional argument.
- SECTION="$1"
- ;;
- esac
- shift
- done
-
- if [ -z "$OUTDIR" ]; then
- echo "Output dir not set!"
- exit 1
- fi
-
- parse_file_list "${PROPRIETARY_FILES_TXT}" "${SECTION}"
-
- # 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 FIXUP_HASHLIST=( ${PRODUCT_COPY_FILES_FIXUP_HASHES[@]} ${PRODUCT_PACKAGES_FIXUP_HASHES[@]} )
- local PRODUCT_COPY_FILES_COUNT=${#PRODUCT_COPY_FILES_LIST[@]}
- local COUNT=${#FILELIST[@]}
- local OUTPUT_ROOT="$LINEAGE_ROOT"/"$OUTDIR"/proprietary
- local OUTPUT_TMP="$TMPDIR"/"$OUTDIR"/proprietary
-
- if [ "$SRC" = "adb" ]; then
- init_adb_connection
- fi
-
- if [ -f "$SRC" ] && [ "${SRC##*.}" == "zip" ]; then
- DUMPDIR="$TMPDIR"/system_dump
-
- # Check if we're working with the same zip that was passed last time.
- # If so, let's just use what's already extracted.
- MD5=`md5sum "$SRC"| awk '{print $1}'`
- OLDMD5=`cat "$DUMPDIR"/zipmd5.txt`
-
- if [ "$MD5" != "$OLDMD5" ]; then
- rm -rf "$DUMPDIR"
- mkdir "$DUMPDIR"
- unzip "$SRC" -d "$DUMPDIR"
- echo "$MD5" > "$DUMPDIR"/zipmd5.txt
-
- # Stop if an A/B OTA zip is detected. We cannot extract these.
- if [ -a "$DUMPDIR"/payload.bin ]; then
- echo "A/B style OTA zip detected. This is not supported at this time. Stopping..."
- exit 1
- # If OTA is block based, extract it.
- elif [ -a "$DUMPDIR"/system.new.dat ]; then
- echo "Converting system.new.dat to system.img"
- python "$LINEAGE_ROOT"/vendor/lineage/build/tools/sdat2img.py "$DUMPDIR"/system.transfer.list "$DUMPDIR"/system.new.dat "$DUMPDIR"/system.img 2>&1
- rm -rf "$DUMPDIR"/system.new.dat "$DUMPDIR"/system
- mkdir "$DUMPDIR"/system "$DUMPDIR"/tmp
- echo "Requesting sudo access to mount the system.img"
- sudo mount -o loop "$DUMPDIR"/system.img "$DUMPDIR"/tmp
- cp -r "$DUMPDIR"/tmp/* "$DUMPDIR"/system/
- sudo umount "$DUMPDIR"/tmp
- rm -rf "$DUMPDIR"/tmp "$DUMPDIR"/system.img
- fi
- fi
-
- SRC="$DUMPDIR"
- fi
-
- if [ "$VENDOR_STATE" -eq "0" ]; then
- echo "Cleaning output directory ($OUTPUT_ROOT).."
- rm -rf "${OUTPUT_TMP:?}"
- mkdir -p "${OUTPUT_TMP:?}"
- if [ -d "$OUTPUT_ROOT" ]; then
- mv "${OUTPUT_ROOT:?}/"* "${OUTPUT_TMP:?}/"
- fi
- VENDOR_STATE=1
- fi
-
- echo "Extracting ${COUNT} files in ${PROPRIETARY_FILES_TXT} from ${SRC}:"
-
- for (( i=1; i<COUNT+1; i++ )); do
-
- local SPEC_SRC_FILE=$(src_file "${FILELIST[$i-1]}")
- local SPEC_DST_FILE=$(target_file "${FILELIST[$i-1]}")
- local SPEC_ARGS=$(target_args "${FILELIST[$i-1]}")
- local OUTPUT_DIR=
- local TMP_DIR=
- local SRC_FILE=
- local DST_FILE=
- local IS_PRODUCT_PACKAGE=false
-
- # Note: this relies on the fact that the ${FILELIST[@]} array
- # contains first ${PRODUCT_COPY_FILES_LIST[@]}, then ${PRODUCT_PACKAGES_LIST[@]}.
- if [ "${i}" -gt "${PRODUCT_COPY_FILES_COUNT}" ]; then
- IS_PRODUCT_PACKAGE=true
- fi
-
- if [ "${SPEC_ARGS}" = "rootfs" ]; then
- OUTPUT_DIR="${OUTPUT_ROOT}/rootfs"
- TMP_DIR="${OUTPUT_TMP}/rootfs"
- SRC_FILE="/${SPEC_SRC_FILE}"
- DST_FILE="/${SPEC_DST_FILE}"
- else
- OUTPUT_DIR="${OUTPUT_ROOT}"
- TMP_DIR="${OUTPUT_TMP}"
- SRC_FILE="/system/${SPEC_SRC_FILE}"
- DST_FILE="/system/${SPEC_DST_FILE}"
- fi
-
- # Strip the file path in the vendor repo of "system", if present
- local VENDOR_REPO_FILE="$OUTPUT_DIR/${DST_FILE#/system}"
- local BLOB_DISPLAY_NAME="${DST_FILE#/system/}"
- mkdir -p $(dirname "${VENDOR_REPO_FILE}")
-
- # Check pinned files
- local HASH="$(echo ${HASHLIST[$i-1]} | awk '{ print tolower($0); }')"
- local FIXUP_HASH="$(echo ${FIXUP_HASHLIST[$i-1]} | awk '{ print tolower($0); }')"
- local KEEP=""
- if [ "$DISABLE_PINNING" != "1" ] && [ "$HASH" != "x" ]; then
- if [ -f "${VENDOR_REPO_FILE}" ]; then
- local PINNED="${VENDOR_REPO_FILE}"
- else
- local PINNED="${TMP_DIR}${DST_FILE#/system}"
- fi
- if [ -f "$PINNED" ]; then
- local TMP_HASH=$(get_hash "${PINNED}")
- if [ "${TMP_HASH}" = "${HASH}" ] || [ "${TMP_HASH}" = "${FIXUP_HASH}" ]; then
- KEEP="1"
- if [ ! -f "${VENDOR_REPO_FILE}" ]; then
- cp -p "$PINNED" "${VENDOR_REPO_FILE}"
- fi
- fi
- fi
- fi
-
- if [ "${KANG}" = false ]; then
- printf ' - %s\n' "${BLOB_DISPLAY_NAME}"
- fi
-
- if [ "$KEEP" = "1" ]; then
- printf ' + keeping pinned file with hash %s\n' "${HASH}"
- else
- FOUND=false
- # Try Lineage target first.
- # Also try to search for files stripped of
- # the "/system" prefix, if we're actually extracting
- # from a system image.
- for CANDIDATE in "${DST_FILE}" "${SRC_FILE}"; do
- get_file ${CANDIDATE} ${VENDOR_REPO_FILE} ${SRC} && {
- FOUND=true
- break
- }
- done
-
- if [ "${FOUND}" = false ]; then
- printf ' !! %s: file not found in source\n' "${BLOB_DISPLAY_NAME}"
- continue
- fi
- fi
-
- # Blob fixup pipeline has 2 parts: one that is fixed and
- # one that is user-configurable
- local PRE_FIXUP_HASH=$(get_hash ${VENDOR_REPO_FILE})
- # Deodex apk|jar if that's the case
- if [[ "$FULLY_DEODEXED" -ne "1" && "${VENDOR_REPO_FILE}" =~ .(apk|jar)$ ]]; then
- oat2dex "${VENDOR_REPO_FILE}" "${SRC_FILE}" "$SRC"
- if [ -f "$TMPDIR/classes.dex" ]; then
- touch -t 200901010000 "$TMPDIR/classes"*
- zip -gjq "${VENDOR_REPO_FILE}" "$TMPDIR/classes"*
- rm "$TMPDIR/classes"*
- printf ' (updated %s from odex files)\n' "${SRC_FILE}"
- fi
- elif [[ "${VENDOR_REPO_FILE}" =~ .xml$ ]]; then
- fix_xml "${VENDOR_REPO_FILE}"
- fi
- # Now run user-supplied fixup function
- blob_fixup "${BLOB_DISPLAY_NAME}" "${VENDOR_REPO_FILE}"
- local POST_FIXUP_HASH=$(get_hash ${VENDOR_REPO_FILE})
-
- if [ -f "${VENDOR_REPO_FILE}" ]; then
- local DIR=$(dirname "${VENDOR_REPO_FILE}")
- local TYPE="${DIR##*/}"
- if [ "$TYPE" = "bin" -o "$TYPE" = "sbin" ]; then
- chmod 755 "${VENDOR_REPO_FILE}"
- else
- chmod 644 "${VENDOR_REPO_FILE}"
- fi
- fi
-
- if [ "${KANG}" = true ]; then
- print_spec "${IS_PRODUCT_PACKAGE}" "${SPEC_SRC_FILE}" "${SPEC_DST_FILE}" "${SPEC_ARGS}" "${PRE_FIXUP_HASH}" "${POST_FIXUP_HASH}"
- fi
-
- # Check and print whether the fixup pipeline actually did anything.
- # This isn't done right after the fixup pipeline because we want this print
- # to come after print_spec above, when in kang mode.
- if [ "${PRE_FIXUP_HASH}" != "${POST_FIXUP_HASH}" ]; then
- printf " + Fixed up %s\n" "${BLOB_DISPLAY_NAME}"
- # Now sanity-check the spec for this blob.
- if [ "${KANG}" = false ] && [ "${FIXUP_HASH}" = "x" ] && [ "${HASH}" != "x" ]; then
- printf "WARNING: The %s file was fixed up, but it is pinned.\n" ${BLOB_DISPLAY_NAME}
- printf "This is a mistake and you want to either remove the hash completely, or add an extra one.\n"
- 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="$LINEAGE_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
-}
-
-function extract_img_data() {
- local image_file="$1"
- local out_dir="$2"
- local logFile="$TMPDIR/debugfs.log"
-
- if [ ! -d "$out_dir" ]; then
- mkdir -p "$out_dir"
- fi
-
- if [[ "$HOST_OS" == "Darwin" ]]; then
- debugfs -R "rdump / \"$out_dir\"" "$image_file" &> "$logFile" || {
- echo "[-] Failed to extract data from '$image_file'"
- abort 1
- }
- else
- debugfs -R 'ls -p' "$image_file" 2>/dev/null | cut -d '/' -f6 | while read -r entry
- do
- debugfs -R "rdump \"$entry\" \"$out_dir\"" "$image_file" >> "$logFile" 2>&1 || {
- echo "[-] Failed to extract data from '$image_file'"
- abort 1
- }
- done
- fi
-
- local symlink_err="rdump: Attempt to read block from filesystem resulted in short read while reading symlink"
- if grep -Fq "$symlink_err" "$logFile"; then
- echo "[-] Symlinks have not been properly processed from $image_file"
- echo "[!] If you don't have a compatible debugfs version, modify 'execute-all.sh' to disable 'USE_DEBUGFS' flag"
- abort 1
- fi
-}
-
-declare -ra VENDOR_SKIP_FILES=(
- "bin/toybox_vendor"
- "bin/toolbox"
- "bin/grep"
- "build.prop"
- "compatibility_matrix.xml"
- "default.prop"
- "etc/NOTICE.xml.gz"
- "etc/vintf/compatibility_matrix.xml"
- "etc/vintf/manifest.xml"
- "etc/wifi/wpa_supplicant.conf"
- "manifest.xml"
- "overlay/DisplayCutoutEmulationCorner/DisplayCutoutEmulationCornerOverlay.apk"
- "overlay/DisplayCutoutEmulationDouble/DisplayCutoutEmulationDoubleOverlay.apk"
- "overlay/DisplayCutoutEmulationTall/DisplayCutoutEmulationTallOverlay.apk"
- "overlay/DisplayCutoutNoCutout/NoCutoutOverlay.apk"
- "overlay/framework-res__auto_generated_rro.apk"
- "overlay/SysuiDarkTheme/SysuiDarkThemeOverlay.apk"
-)
-
-function array_contains() {
- local element
- for element in "${@:2}"; do [[ "$element" == "$1" ]] && return 0; done
- return 1
-}
-
-function generate_prop_list_from_image() {
- local image_file="$1"
- local image_dir="$TMPDIR/image-temp"
- local output_list="$2"
- local output_list_tmp="$TMPDIR/_proprietary-blobs.txt"
- local -n skipped_vendor_files="$3"
-
- extract_img_data "$image_file" "$image_dir"
-
- find "$image_dir" -not -type d | sed "s#^$image_dir/##" | while read -r FILE
- do
- # Skip VENDOR_SKIP_FILES since it will be re-generated at build time
- if array_contains "$FILE" "${VENDOR_SKIP_FILES[@]}"; then
- continue
- fi
- # Skip device defined skipped files since they will be re-generated at build time
- if array_contains "$FILE" "${skipped_vendor_files[@]}"; then
- continue
- fi
- if suffix_match_file ".apk" "$FILE" ; then
- echo "-vendor/$FILE" >> "$output_list_tmp"
- else
- echo "vendor/$FILE" >> "$output_list_tmp"
- fi
- done
-
- # Sort merged file with all lists
- sort -u "$output_list_tmp" > "$output_list"
-
- # Clean-up
- rm -f "$output_list_tmp"
-}
diff --git a/build/tools/getb64key.py b/build/tools/getb64key.py
deleted file mode 100755
index 976a1576..00000000
--- a/build/tools/getb64key.py
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python
-
-from __future__ import print_function
-
-import base64
-import sys
-
-pkFile = open(sys.argv[1], 'rb').readlines()
-base64Key = ""
-inCert = False
-for line in pkFile:
- if line.startswith(b"-"):
- inCert = not inCert
- continue
-
- base64Key += line.strip()
-
-print(base64.b16encode(base64.b64decode(base64Key)).lower())
diff --git a/build/tools/repopick.py b/build/tools/repopick.py
deleted file mode 100755
index 7025dc67..00000000
--- a/build/tools/repopick.py
+++ /dev/null
@@ -1,480 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2013-15 The CyanogenMod Project
-# (C) 2017 The LineageOS 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.
-#
-
-#
-# Run repopick.py -h for a description of this utility.
-#
-
-from __future__ import print_function
-
-import sys
-import json
-import os
-import subprocess
-import re
-import argparse
-import textwrap
-from functools import cmp_to_key
-from xml.etree import ElementTree
-
-try:
- import requests
-except ImportError:
- try:
- # For python3
- import urllib.error
- import urllib.request
- except ImportError:
- # For python2
- import imp
- import urllib2
- urllib = imp.new_module('urllib')
- urllib.error = urllib2
- urllib.request = urllib2
-
-
-# cmp() is not available in Python 3, define it manually
-# See https://docs.python.org/3.0/whatsnew/3.0.html#ordering-comparisons
-def cmp(a, b):
- return (a > b) - (a < b)
-
-
-# Verifies whether pathA is a subdirectory (or the same) as pathB
-def is_subdir(a, b):
- a = os.path.realpath(a) + '/'
- b = os.path.realpath(b) + '/'
- return b == a[:len(b)]
-
-
-def fetch_query_via_ssh(remote_url, query):
- """Given a remote_url and a query, return the list of changes that fit it
- This function is slightly messy - the ssh api does not return data in the same structure as the HTTP REST API
- We have to get the data, then transform it to match what we're expecting from the HTTP RESET API"""
- if remote_url.count(':') == 2:
- (uri, userhost, port) = remote_url.split(':')
- userhost = userhost[2:]
- elif remote_url.count(':') == 1:
- (uri, userhost) = remote_url.split(':')
- userhost = userhost[2:]
- port = 29418
- else:
- raise Exception('Malformed URI: Expecting ssh://[user@]host[:port]')
-
-
- out = subprocess.check_output(['ssh', '-x', '-p{0}'.format(port), userhost, 'gerrit', 'query', '--format=JSON --patch-sets --current-patch-set', query])
- if not hasattr(out, 'encode'):
- out = out.decode()
- reviews = []
- for line in out.split('\n'):
- try:
- data = json.loads(line)
- # make our data look like the http rest api data
- review = {
- 'branch': data['branch'],
- 'change_id': data['id'],
- 'current_revision': data['currentPatchSet']['revision'],
- 'number': int(data['number']),
- 'revisions': {patch_set['revision']: {
- '_number': int(patch_set['number']),
- 'fetch': {
- 'ssh': {
- 'ref': patch_set['ref'],
- 'url': 'ssh://{0}:{1}/{2}'.format(userhost, port, data['project'])
- }
- },
- 'commit': {
- 'parents': [{ 'commit': parent } for parent in patch_set['parents']]
- },
- } for patch_set in data['patchSets']},
- 'subject': data['subject'],
- 'project': data['project'],
- 'status': data['status']
- }
- reviews.append(review)
- except:
- pass
- args.quiet or print('Found {0} reviews'.format(len(reviews)))
- return reviews
-
-
-def fetch_query_via_http(remote_url, query):
- if "requests" in sys.modules:
- auth = None
- if os.path.isfile(os.getenv("HOME") + "/.gerritrc"):
- f = open(os.getenv("HOME") + "/.gerritrc", "r")
- for line in f:
- parts = line.rstrip().split("|")
- if parts[0] in remote_url:
- auth = requests.auth.HTTPBasicAuth(username=parts[1], password=parts[2])
- statusCode = '-1'
- if auth:
- url = '{0}/a/changes/?q={1}&o=CURRENT_REVISION&o=ALL_REVISIONS&o=ALL_COMMITS'.format(remote_url, query)
- data = requests.get(url, auth=auth)
- statusCode = str(data.status_code)
- if statusCode != '200':
- #They didn't get good authorization or data, Let's try the old way
- url = '{0}/changes/?q={1}&o=CURRENT_REVISION&o=ALL_REVISIONS&o=ALL_COMMITS'.format(remote_url, query)
- data = requests.get(url)
- reviews = json.loads(data.text[5:])
- else:
- """Given a query, fetch the change numbers via http"""
- url = '{0}/changes/?q={1}&o=CURRENT_REVISION&o=ALL_REVISIONS&o=ALL_COMMITS'.format(remote_url, query)
- data = urllib.request.urlopen(url).read().decode('utf-8')
- reviews = json.loads(data[5:])
-
- for review in reviews:
- review['number'] = review.pop('_number')
-
- return reviews
-
-
-def fetch_query(remote_url, query):
- """Wrapper for fetch_query_via_proto functions"""
- if remote_url[0:3] == 'ssh':
- return fetch_query_via_ssh(remote_url, query)
- elif remote_url[0:4] == 'http':
- return fetch_query_via_http(remote_url, query.replace(' ', '+'))
- else:
- raise Exception('Gerrit URL should be in the form http[s]://hostname/ or ssh://[user@]host[:port]')
-
-if __name__ == '__main__':
- # Default to LineageOS Gerrit
- default_gerrit = 'https://review.lineageos.org'
-
- parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, description=textwrap.dedent('''\
- repopick.py is a utility to simplify the process of cherry picking
- patches from LineageOS's Gerrit instance (or any gerrit instance of your choosing)
-
- Given a list of change numbers, repopick will cd into the project path
- and cherry pick the latest patch available.
-
- With the --start-branch argument, the user can specify that a branch
- should be created before cherry picking. This is useful for
- cherry-picking many patches into a common branch which can be easily
- abandoned later (good for testing other's changes.)
-
- The --abandon-first argument, when used in conjunction with the
- --start-branch option, will cause repopick to abandon the specified
- branch in all repos first before performing any cherry picks.'''))
- parser.add_argument('change_number', nargs='*', help='change number to cherry pick. Use {change number}/{patchset number} to get a specific revision.')
- parser.add_argument('-i', '--ignore-missing', action='store_true', help='do not error out if a patch applies to a missing directory')
- parser.add_argument('-s', '--start-branch', nargs=1, help='start the specified branch before cherry picking')
- parser.add_argument('-r', '--reset', action='store_true', help='reset to initial state (abort cherry-pick) if there is a conflict')
- parser.add_argument('-a', '--abandon-first', action='store_true', help='before cherry picking, abandon the branch specified in --start-branch')
- parser.add_argument('-b', '--auto-branch', action='store_true', help='shortcut to "--start-branch auto --abandon-first --ignore-missing"')
- parser.add_argument('-q', '--quiet', action='store_true', help='print as little as possible')
- parser.add_argument('-v', '--verbose', action='store_true', help='print extra information to aid in debug')
- parser.add_argument('-f', '--force', action='store_true', help='force cherry pick even if change is closed')
- parser.add_argument('-p', '--pull', action='store_true', help='execute pull instead of cherry-pick')
- parser.add_argument('-P', '--path', help='use the specified path for the change')
- parser.add_argument('-t', '--topic', help='pick all commits from a specified topic')
- parser.add_argument('-Q', '--query', help='pick all commits using the specified query')
- parser.add_argument('-g', '--gerrit', default=default_gerrit, help='Gerrit Instance to use. Form proto://[user@]host[:port]')
- parser.add_argument('-e', '--exclude', nargs=1, help='exclude a list of commit numbers separated by a ,')
- parser.add_argument('-c', '--check-picked', type=int, default=10, help='pass the amount of commits to check for already picked changes')
- args = parser.parse_args()
- if not args.start_branch and args.abandon_first:
- parser.error('if --abandon-first is set, you must also give the branch name with --start-branch')
- if args.auto_branch:
- args.abandon_first = True
- args.ignore_missing = True
- if not args.start_branch:
- args.start_branch = ['auto']
- if args.quiet and args.verbose:
- parser.error('--quiet and --verbose cannot be specified together')
-
- if (1 << bool(args.change_number) << bool(args.topic) << bool(args.query)) != 2:
- parser.error('One (and only one) of change_number, topic, and query are allowed')
-
- # Change current directory to the top of the tree
- if 'ANDROID_BUILD_TOP' in os.environ:
- top = os.environ['ANDROID_BUILD_TOP']
-
- if not is_subdir(os.getcwd(), top):
- sys.stderr.write('ERROR: You must run this tool from within $ANDROID_BUILD_TOP!\n')
- sys.exit(1)
- os.chdir(os.environ['ANDROID_BUILD_TOP'])
-
- # Sanity check that we are being run from the top level of the tree
- if not os.path.isdir('.repo'):
- sys.stderr.write('ERROR: No .repo directory found. Please run this from the top of your tree.\n')
- sys.exit(1)
-
- # If --abandon-first is given, abandon the branch before starting
- if args.abandon_first:
- # Determine if the branch already exists; skip the abandon if it does not
- plist = subprocess.check_output(['repo', 'info'])
- if not hasattr(plist, 'encode'):
- plist = plist.decode()
- needs_abandon = False
- for pline in plist.splitlines():
- matchObj = re.match(r'Local Branches.*\[(.*)\]', pline)
- if matchObj:
- local_branches = re.split('\s*,\s*', matchObj.group(1))
- if any(args.start_branch[0] in s for s in local_branches):
- needs_abandon = True
-
- if needs_abandon:
- # Perform the abandon only if the branch already exists
- if not args.quiet:
- print('Abandoning branch: %s' % args.start_branch[0])
- subprocess.check_output(['repo', 'abandon', args.start_branch[0]])
- if not args.quiet:
- print('')
-
- # Get the master manifest from repo
- # - convert project name and revision to a path
- project_name_to_data = {}
- manifest = subprocess.check_output(['repo', 'manifest'])
- xml_root = ElementTree.fromstring(manifest)
- projects = xml_root.findall('project')
- remotes = xml_root.findall('remote')
- default_revision = xml_root.findall('default')[0].get('revision')
-
- #dump project data into the a list of dicts with the following data:
- #{project: {path, revision}}
-
- for project in projects:
- name = project.get('name')
- # when name and path are equal, "repo manifest" doesn't return a path at all, so fall back to name
- path = project.get('path', name)
- revision = project.get('upstream')
- if revision is None:
- for remote in remotes:
- if remote.get('name') == project.get('remote'):
- revision = remote.get('revision')
- if revision is None:
- revision = default_revision
-
- if not name in project_name_to_data:
- project_name_to_data[name] = {}
- revision = revision.split('refs/heads/')[-1]
- project_name_to_data[name][revision] = path
-
- # get data on requested changes
- reviews = []
- change_numbers = []
-
- def cmp_reviews(review_a, review_b):
- current_a = review_a['current_revision']
- parents_a = [r['commit'] for r in review_a['revisions'][current_a]['commit']['parents']]
- current_b = review_b['current_revision']
- parents_b = [r['commit'] for r in review_b['revisions'][current_b]['commit']['parents']]
- if current_a in parents_b:
- return -1
- elif current_b in parents_a:
- return 1
- else:
- return cmp(review_a['number'], review_b['number'])
-
- if args.topic:
- reviews = fetch_query(args.gerrit, 'topic:{0}'.format(args.topic))
- change_numbers = [str(r['number']) for r in sorted(reviews, key=cmp_to_key(cmp_reviews))]
- if args.query:
- reviews = fetch_query(args.gerrit, args.query)
- change_numbers = [str(r['number']) for r in sorted(reviews, key=cmp_to_key(cmp_reviews))]
- if args.change_number:
- change_url_re = re.compile('https?://.+?/([0-9]+(?:/[0-9]+)?)/?')
- for c in args.change_number:
- change_number = change_url_re.findall(c)
- if change_number:
- change_numbers.extend(change_number)
- elif '-' in c:
- templist = c.split('-')
- for i in range(int(templist[0]), int(templist[1]) + 1):
- change_numbers.append(str(i))
- else:
- change_numbers.append(c)
- reviews = fetch_query(args.gerrit, ' OR '.join('change:{0}'.format(x.split('/')[0]) for x in change_numbers))
-
- # make list of things to actually merge
- mergables = []
-
- # If --exclude is given, create the list of commits to ignore
- exclude = []
- if args.exclude:
- exclude = args.exclude[0].split(',')
-
- for change in change_numbers:
- patchset = None
- if '/' in change:
- (change, patchset) = change.split('/')
-
- if change in exclude:
- continue
-
- change = int(change)
-
- if patchset:
- patchset = int(patchset)
-
- review = next((x for x in reviews if x['number'] == change), None)
- if review is None:
- print('Change %d not found, skipping' % change)
- continue
-
- mergables.append({
- 'subject': review['subject'],
- 'project': review['project'],
- 'branch': review['branch'],
- 'change_id': review['change_id'],
- 'change_number': review['number'],
- 'status': review['status'],
- 'fetch': None,
- 'patchset': review['revisions'][review['current_revision']]['_number'],
- })
-
- mergables[-1]['fetch'] = review['revisions'][review['current_revision']]['fetch']
- mergables[-1]['id'] = change
- if patchset:
- try:
- mergables[-1]['fetch'] = [review['revisions'][x]['fetch'] for x in review['revisions'] if review['revisions'][x]['_number'] == patchset][0]
- mergables[-1]['id'] = '{0}/{1}'.format(change, patchset)
- mergables[-1]['patchset'] = patchset
- except (IndexError, ValueError):
- args.quiet or print('ERROR: The patch set {0}/{1} could not be found, using CURRENT_REVISION instead.'.format(change, patchset))
-
- for item in mergables:
- args.quiet or print('Applying change number {0}...'.format(item['id']))
- # Check if change is open and exit if it's not, unless -f is specified
- if (item['status'] != 'OPEN' and item['status'] != 'NEW' and item['status'] != 'DRAFT') and not args.query:
- if args.force:
- print('!! Force-picking a closed change !!\n')
- else:
- print('Change status is ' + item['status'] + '. Skipping the cherry pick.\nUse -f to force this pick.')
- continue
-
- # Convert the project name to a project path
- # - check that the project path exists
- project_path = None
-
- if item['project'] in project_name_to_data and item['branch'] in project_name_to_data[item['project']]:
- project_path = project_name_to_data[item['project']][item['branch']]
- elif args.path:
- project_path = args.path
- elif args.ignore_missing:
- print('WARNING: Skipping {0} since there is no project directory for: {1}\n'.format(item['id'], item['project']))
- continue
- else:
- sys.stderr.write('ERROR: For {0}, could not determine the project path for project {1}\n'.format(item['id'], item['project']))
- sys.exit(1)
-
- # If --start-branch is given, create the branch (more than once per path is okay; repo ignores gracefully)
- if args.start_branch:
- subprocess.check_output(['repo', 'start', args.start_branch[0], project_path])
-
- # Determine the maximum commits to check already picked changes
- check_picked_count = args.check_picked
- branch_commits_count = int(subprocess.check_output(['git', 'rev-list', '--count', 'HEAD'], cwd=project_path))
- if branch_commits_count <= check_picked_count:
- check_picked_count = branch_commits_count - 1
-
- # Check if change is already picked to HEAD...HEAD~check_picked_count
- found_change = False
- for i in range(0, check_picked_count):
- if subprocess.call(['git', 'cat-file', '-e', 'HEAD~{0}'.format(i)], cwd=project_path, stderr=open(os.devnull, 'wb')):
- continue
- output = subprocess.check_output(['git', 'show', '-q', 'HEAD~{0}'.format(i)], cwd=project_path).split()
- if 'Change-Id:' in output:
- head_change_id = ''
- for j,t in enumerate(reversed(output)):
- if t == 'Change-Id:':
- head_change_id = output[len(output) - j]
- break
- if head_change_id.strip() == item['change_id']:
- print('Skipping {0} - already picked in {1} as HEAD~{2}'.format(item['id'], project_path, i))
- found_change = True
- break
- if found_change:
- continue
-
- # Print out some useful info
- if not args.quiet:
- print('--> Subject: "{0}"'.format(item['subject'].encode('utf-8')))
- print('--> Project path: {0}'.format(project_path))
- print('--> Change number: {0} (Patch Set {1})'.format(item['id'], item['patchset']))
-
- if 'anonymous http' in item['fetch']:
- method = 'anonymous http'
- else:
- method = 'ssh'
-
- # Try fetching from GitHub first if using default gerrit
- if args.gerrit == default_gerrit:
- if args.verbose:
- print('Trying to fetch the change from GitHub')
-
- if args.pull:
- cmd = ['git pull --no-edit github', item['fetch'][method]['ref']]
- else:
- cmd = ['git fetch github', item['fetch'][method]['ref']]
- if args.quiet:
- cmd.append('--quiet')
- else:
- print(cmd)
- result = subprocess.call([' '.join(cmd)], cwd=project_path, shell=True)
- FETCH_HEAD = '{0}/.git/FETCH_HEAD'.format(project_path)
- if result != 0 and os.stat(FETCH_HEAD).st_size != 0:
- print('ERROR: git command failed')
- sys.exit(result)
- # Check if it worked
- if args.gerrit != default_gerrit or os.stat(FETCH_HEAD).st_size == 0:
- # If not using the default gerrit or github failed, fetch from gerrit.
- if args.verbose:
- if args.gerrit == default_gerrit:
- print('Fetching from GitHub didn\'t work, trying to fetch the change from Gerrit')
- else:
- print('Fetching from {0}'.format(args.gerrit))
-
- if args.pull:
- cmd = ['git pull --no-edit', item['fetch'][method]['url'], item['fetch'][method]['ref']]
- else:
- cmd = ['git fetch', item['fetch'][method]['url'], item['fetch'][method]['ref']]
- if args.quiet:
- cmd.append('--quiet')
- else:
- print(cmd)
- result = subprocess.call([' '.join(cmd)], cwd=project_path, shell=True)
- if result != 0:
- print('ERROR: git command failed')
- sys.exit(result)
- # Perform the cherry-pick
- if not args.pull:
- cmd = ['git cherry-pick --ff FETCH_HEAD']
- if args.quiet:
- cmd_out = open(os.devnull, 'wb')
- else:
- cmd_out = None
- result = subprocess.call(cmd, cwd=project_path, shell=True, stdout=cmd_out, stderr=cmd_out)
- if result != 0:
- cmd = ['git diff-index --quiet HEAD --']
- result = subprocess.call(cmd, cwd=project_path, shell=True, stdout=cmd_out, stderr=cmd_out)
- if result == 0:
- print('WARNING: git command resulted with an empty commit, aborting cherry-pick')
- cmd = ['git cherry-pick --abort']
- subprocess.call(cmd, cwd=project_path, shell=True, stdout=cmd_out, stderr=cmd_out)
- elif args.reset:
- print('ERROR: git command failed, aborting cherry-pick')
- cmd = ['git cherry-pick --abort']
- subprocess.call(cmd, cwd=project_path, shell=True, stdout=cmd_out, stderr=cmd_out)
- sys.exit(result)
- else:
- print('ERROR: git command failed')
- sys.exit(result)
- if not args.quiet:
- print('')
diff --git a/build/tools/roomservice.py b/build/tools/roomservice.py
deleted file mode 100755
index bf502a53..00000000
--- a/build/tools/roomservice.py
+++ /dev/null
@@ -1,315 +0,0 @@
-#!/usr/bin/env python
-# Copyright (C) 2012-2013, The CyanogenMod Project
-# (C) 2017, The LineageOS 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.
-
-from __future__ import print_function
-
-import base64
-import json
-import netrc
-import os
-import re
-import sys
-try:
- # For python3
- import urllib.error
- import urllib.parse
- import urllib.request
-except ImportError:
- # For python2
- import imp
- import urllib2
- import urlparse
- urllib = imp.new_module('urllib')
- urllib.error = urllib2
- urllib.parse = urlparse
- urllib.request = urllib2
-
-from xml.etree import ElementTree
-
-product = sys.argv[1]
-
-if len(sys.argv) > 2:
- depsonly = sys.argv[2]
-else:
- depsonly = None
-
-try:
- device = product[product.index("_") + 1:]
-except:
- device = product
-
-if not depsonly:
- print("Device %s not found. Attempting to retrieve device repository from LineageOS Github (http://github.com/LineageOS)." % device)
-
-repositories = []
-
-try:
- authtuple = netrc.netrc().authenticators("api.github.com")
-
- if authtuple:
- auth_string = ('%s:%s' % (authtuple[0], authtuple[2])).encode()
- githubauth = base64.encodestring(auth_string).decode().replace('\n', '')
- else:
- githubauth = None
-except:
- githubauth = None
-
-def add_auth(githubreq):
- if githubauth:
- githubreq.add_header("Authorization","Basic %s" % githubauth)
-
-if not depsonly:
- githubreq = urllib.request.Request("https://api.github.com/search/repositories?q=%s+user:LineageOS+in:name+fork:true" % device)
- add_auth(githubreq)
- try:
- result = json.loads(urllib.request.urlopen(githubreq).read().decode())
- except urllib.error.URLError:
- print("Failed to search GitHub")
- sys.exit()
- except ValueError:
- print("Failed to parse return data from GitHub")
- sys.exit()
- for res in result.get('items', []):
- repositories.append(res)
-
-local_manifests = r'.repo/local_manifests'
-if not os.path.exists(local_manifests): os.makedirs(local_manifests)
-
-def exists_in_tree(lm, path):
- for child in lm.getchildren():
- if child.attrib['path'] == path:
- return True
- return False
-
-# in-place prettyprint formatter
-def indent(elem, level=0):
- i = "\n" + level*" "
- if len(elem):
- if not elem.text or not elem.text.strip():
- elem.text = i + " "
- if not elem.tail or not elem.tail.strip():
- elem.tail = i
- for elem in elem:
- indent(elem, level+1)
- if not elem.tail or not elem.tail.strip():
- elem.tail = i
- else:
- if level and (not elem.tail or not elem.tail.strip()):
- elem.tail = i
-
-def get_manifest_path():
- '''Find the current manifest path
- In old versions of repo this is at .repo/manifest.xml
- In new versions, .repo/manifest.xml includes an include
- to some arbitrary file in .repo/manifests'''
-
- m = ElementTree.parse(".repo/manifest.xml")
- try:
- m.findall('default')[0]
- return '.repo/manifest.xml'
- except IndexError:
- return ".repo/manifests/{}".format(m.find("include").get("name"))
-
-def get_default_revision():
- m = ElementTree.parse(get_manifest_path())
- d = m.findall('default')[0]
- r = d.get('revision')
- return r.replace('refs/heads/', '').replace('refs/tags/', '')
-
-def get_from_manifest(devicename):
- try:
- lm = ElementTree.parse(".repo/local_manifests/roomservice.xml")
- lm = lm.getroot()
- except:
- lm = ElementTree.Element("manifest")
-
- for localpath in lm.findall("project"):
- if re.search("android_device_.*_%s$" % device, localpath.get("name")):
- return localpath.get("path")
-
- return None
-
-def is_in_manifest(projectpath):
- try:
- lm = ElementTree.parse(".repo/local_manifests/roomservice.xml")
- lm = lm.getroot()
- except:
- lm = ElementTree.Element("manifest")
-
- for localpath in lm.findall("project"):
- if localpath.get("path") == projectpath:
- return True
-
- # Search in main manifest, too
- try:
- lm = ElementTree.parse(get_manifest_path())
- lm = lm.getroot()
- except:
- lm = ElementTree.Element("manifest")
-
- for localpath in lm.findall("project"):
- if localpath.get("path") == projectpath:
- return True
-
- # ... and don't forget the lineage snippet
- try:
- lm = ElementTree.parse(".repo/manifests/snippets/lineage.xml")
- lm = lm.getroot()
- except:
- lm = ElementTree.Element("manifest")
-
- for localpath in lm.findall("project"):
- if localpath.get("path") == projectpath:
- return True
-
- return False
-
-def add_to_manifest(repositories, fallback_branch = None):
- try:
- lm = ElementTree.parse(".repo/local_manifests/roomservice.xml")
- lm = lm.getroot()
- except:
- lm = ElementTree.Element("manifest")
-
- for repository in repositories:
- repo_name = repository['repository']
- repo_target = repository['target_path']
- print('Checking if %s is fetched from %s' % (repo_target, repo_name))
- if is_in_manifest(repo_target):
- print('LineageOS/%s already fetched to %s' % (repo_name, repo_target))
- continue
-
- print('Adding dependency: LineageOS/%s -> %s' % (repo_name, repo_target))
- project = ElementTree.Element("project", attrib = { "path": repo_target,
- "remote": "github", "name": "LineageOS/%s" % repo_name })
-
- if 'branch' in repository:
- project.set('revision',repository['branch'])
- elif fallback_branch:
- print("Using fallback branch %s for %s" % (fallback_branch, repo_name))
- project.set('revision', fallback_branch)
- else:
- print("Using default branch for %s" % repo_name)
-
- lm.append(project)
-
- indent(lm, 0)
- raw_xml = ElementTree.tostring(lm).decode()
- raw_xml = '<?xml version="1.0" encoding="UTF-8"?>\n' + raw_xml
-
- f = open('.repo/local_manifests/roomservice.xml', 'w')
- f.write(raw_xml)
- f.close()
-
-def fetch_dependencies(repo_path, fallback_branch = None):
- print('Looking for dependencies in %s' % repo_path)
- dependencies_path = repo_path + '/lineage.dependencies'
- syncable_repos = []
- verify_repos = []
-
- if os.path.exists(dependencies_path):
- dependencies_file = open(dependencies_path, 'r')
- dependencies = json.loads(dependencies_file.read())
- fetch_list = []
-
- for dependency in dependencies:
- if not is_in_manifest(dependency['target_path']):
- fetch_list.append(dependency)
- syncable_repos.append(dependency['target_path'])
- verify_repos.append(dependency['target_path'])
- else:
- verify_repos.append(dependency['target_path'])
-
- dependencies_file.close()
-
- if len(fetch_list) > 0:
- print('Adding dependencies to manifest')
- add_to_manifest(fetch_list, fallback_branch)
- else:
- print('%s has no additional dependencies.' % repo_path)
-
- if len(syncable_repos) > 0:
- print('Syncing dependencies')
- os.system('repo sync --force-sync %s' % ' '.join(syncable_repos))
-
- for deprepo in verify_repos:
- fetch_dependencies(deprepo)
-
-def has_branch(branches, revision):
- return revision in [branch['name'] for branch in branches]
-
-if depsonly:
- repo_path = get_from_manifest(device)
- if repo_path:
- fetch_dependencies(repo_path)
- else:
- print("Trying dependencies-only mode on a non-existing device tree?")
-
- sys.exit()
-
-else:
- for repository in repositories:
- repo_name = repository['name']
- if re.match(r"^android_device_[^_]*_" + device + "$", repo_name):
- print("Found repository: %s" % repository['name'])
-
- manufacturer = repo_name.replace("android_device_", "").replace("_" + device, "")
-
- default_revision = get_default_revision()
- print("Default revision: %s" % default_revision)
- print("Checking branch info")
- githubreq = urllib.request.Request(repository['branches_url'].replace('{/branch}', ''))
- add_auth(githubreq)
- result = json.loads(urllib.request.urlopen(githubreq).read().decode())
-
- ## Try tags, too, since that's what releases use
- if not has_branch(result, default_revision):
- githubreq = urllib.request.Request(repository['tags_url'].replace('{/tag}', ''))
- add_auth(githubreq)
- result.extend (json.loads(urllib.request.urlopen(githubreq).read().decode()))
-
- repo_path = "device/%s/%s" % (manufacturer, device)
- adding = {'repository':repo_name,'target_path':repo_path}
-
- fallback_branch = None
- if not has_branch(result, default_revision):
- if os.getenv('ROOMSERVICE_BRANCHES'):
- fallbacks = list(filter(bool, os.getenv('ROOMSERVICE_BRANCHES').split(' ')))
- for fallback in fallbacks:
- if has_branch(result, fallback):
- print("Using fallback branch: %s" % fallback)
- fallback_branch = fallback
- break
-
- if not fallback_branch:
- print("Default revision %s not found in %s. Bailing." % (default_revision, repo_name))
- print("Branches found:")
- for branch in [branch['name'] for branch in result]:
- print(branch)
- print("Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.")
- sys.exit()
-
- add_to_manifest([adding], fallback_branch)
-
- print("Syncing repository to retrieve project.")
- os.system('repo sync --force-sync %s' % repo_path)
- print("Repository synced!")
-
- fetch_dependencies(repo_path, fallback_branch)
- print("Done")
- sys.exit()
-
-print("Repository for %s not found in the LineageOS Github repository list. If this is in error, you may need to manually add it to your local_manifests/roomservice.xml." % device)
diff --git a/build/tools/sdat2img.py b/build/tools/sdat2img.py
deleted file mode 100755
index 3efb2f78..00000000
--- a/build/tools/sdat2img.py
+++ /dev/null
@@ -1,142 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#====================================================
-# FILE: sdat2img.py
-# AUTHORS: xpirt - luxi78 - howellzhu
-# DATE: 2016-11-23 16:20:11 CST
-#====================================================
-
-import sys, os, errno
-
-__version__ = '1.0'
-
-if sys.hexversion < 0x02070000:
- print >> sys.stderr, "Python 2.7 or newer is required."
- try:
- input = raw_input
- except NameError: pass
- input('Press ENTER to exit...')
- sys.exit(1)
-else:
- print('sdat2img binary - version: %s\n' % __version__)
-
-try:
- TRANSFER_LIST_FILE = str(sys.argv[1])
- NEW_DATA_FILE = str(sys.argv[2])
-except IndexError:
- print('\nUsage: sdat2img.py <transfer_list> <system_new_file> [system_img]\n')
- print(' <transfer_list>: transfer list file')
- print(' <system_new_file>: system new dat file')
- print(' [system_img]: output system image\n\n')
- print('Visit xda thread for more information.\n')
- try:
- input = raw_input
- except NameError: pass
- input('Press ENTER to exit...')
- sys.exit()
-
-try:
- OUTPUT_IMAGE_FILE = str(sys.argv[3])
-except IndexError:
- OUTPUT_IMAGE_FILE = 'system.img'
-
-BLOCK_SIZE = 4096
-
-def rangeset(src):
- src_set = src.split(',')
- num_set = [int(item) for item in src_set]
- if len(num_set) != num_set[0]+1:
- print('Error on parsing following data to rangeset:\n%s' % src)
- sys.exit(1)
-
- return tuple ([ (num_set[i], num_set[i+1]) for i in range(1, len(num_set), 2) ])
-
-def parse_transfer_list_file(path):
- trans_list = open(TRANSFER_LIST_FILE, 'r')
-
- # First line in transfer list is the version number
- version = int(trans_list.readline())
-
- # Second line in transfer list is the total number of blocks we expect to write
- new_blocks = int(trans_list.readline())
-
- if version >= 2:
- # Third line is how many stash entries are needed simultaneously
- trans_list.readline()
- # Fourth line is the maximum number of blocks that will be stashed simultaneously
- trans_list.readline()
-
- # Subsequent lines are all individual transfer commands
- commands = []
- for line in trans_list:
- line = line.split(' ')
- cmd = line[0]
- if cmd in ['erase', 'new', 'zero']:
- commands.append([cmd, rangeset(line[1])])
- else:
- # Skip lines starting with numbers, they are not commands anyway
- if not cmd[0].isdigit():
- print('Command "%s" is not valid.' % cmd)
- trans_list.close()
- sys.exit(1)
-
- trans_list.close()
- return version, new_blocks, commands
-
-def main(argv):
- version, new_blocks, commands = parse_transfer_list_file(TRANSFER_LIST_FILE)
-
- if version == 1:
- print('Android Lollipop 5.0 detected!\n')
- elif version == 2:
- print('Android Lollipop 5.1 detected!\n')
- elif version == 3:
- print('Android Marshmallow 6.0 detected!\n')
- elif version == 4:
- print('Android Nougat 7.0 detected!\n')
- else:
- print('Unknown Android version!\n')
-
- # Don't clobber existing files to avoid accidental data loss
- try:
- output_img = open(OUTPUT_IMAGE_FILE, 'wb')
- except IOError as e:
- if e.errno == errno.EEXIST:
- print('Error: the output file "{}" already exists'.format(e.filename))
- print('Remove it, rename it, or choose a different file name.')
- sys.exit(e.errno)
- else:
- raise
-
- new_data_file = open(NEW_DATA_FILE, 'rb')
- all_block_sets = [i for command in commands for i in command[1]]
- max_file_size = max(pair[1] for pair in all_block_sets)*BLOCK_SIZE
-
- for command in commands:
- if command[0] == 'new':
- for block in command[1]:
- begin = block[0]
- end = block[1]
- block_count = end - begin
- print('Copying {} blocks into position {}...'.format(block_count, begin))
-
- # Position output file
- output_img.seek(begin*BLOCK_SIZE)
-
- # Copy one block at a time
- while(block_count > 0):
- output_img.write(new_data_file.read(BLOCK_SIZE))
- block_count -= 1
- else:
- print('Skipping command %s...' % command[0])
-
- # Make file larger if necessary
- if(output_img.tell() < max_file_size):
- output_img.truncate(max_file_size)
-
- output_img.close()
- new_data_file.close()
- print('Done! Output image: %s' % os.path.realpath(output_img.name))
-
-if __name__ == '__main__':
- main(sys.argv)
diff --git a/build/tools/smali/NOTICE b/build/tools/smali/NOTICE
deleted file mode 100644
index 76ad9aa7..00000000
--- a/build/tools/smali/NOTICE
+++ /dev/null
@@ -1,105 +0,0 @@
-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 or wkal@google.com is copyrighted by
-Google Inc. and released under the following license:
-
-*******************************************************************************
-Copyright 2011, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*******************************************************************************
-
-
-Various portions of the code are taken from the Android Open Source Project,
-and are used in accordance with the following license:
-
-*******************************************************************************
-Copyright (C) 2007 The Android Open Source Project
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*******************************************************************************
-
-
-Some parts of the smalidea plugin are based on code from the IDEA project, per the
-following license
-
-*******************************************************************************
-Copyright 2000-2014 JetBrains s.r.o.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*******************************************************************************
diff --git a/build/tools/smali/baksmali.jar b/build/tools/smali/baksmali.jar
deleted file mode 100644
index e800842d..00000000
--- a/build/tools/smali/baksmali.jar
+++ /dev/null
Binary files differ
diff --git a/build/tools/smali/smali.jar b/build/tools/smali/smali.jar
deleted file mode 100644
index 88e00256..00000000
--- a/build/tools/smali/smali.jar
+++ /dev/null
Binary files differ
diff --git a/charger/Android.mk b/charger/Android.mk
deleted file mode 100644
index 5d42e6a0..00000000
--- a/charger/Android.mk
+++ /dev/null
@@ -1,71 +0,0 @@
-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_lineage.cpp
-LOCAL_MODULE := libhealthd.lineage
-LOCAL_CFLAGS := -Werror
-LOCAL_C_INCLUDES := \
- system/core/healthd/include \
- system/core/base/include \
- bootable/recovery/minui/include
-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_lineage_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 := lineage_charger_res_images
-LOCAL_MODULE_TAGS := optional
-LOCAL_REQUIRED_MODULES := $(_img_modules)
-LOCAL_OVERRIDES_PACKAGES := charger_res_images
-include $(BUILD_PHONY_PACKAGE)
-
-_add-charger-image :=
-_img_modules :=
diff --git a/charger/fonts/560dpi b/charger/fonts/560dpi
deleted file mode 120000
index 17ef829d..00000000
--- a/charger/fonts/560dpi
+++ /dev/null
@@ -1 +0,0 @@
-xxhdpi \ No newline at end of file
diff --git a/charger/fonts/640dpi b/charger/fonts/640dpi
deleted file mode 120000
index af2d1fe7..00000000
--- a/charger/fonts/640dpi
+++ /dev/null
@@ -1 +0,0 @@
-xxxhdpi \ No newline at end of file
diff --git a/charger/fonts/hdpi/font_log.png b/charger/fonts/hdpi/font_log.png
deleted file mode 100644
index ddf9bc7a..00000000
--- a/charger/fonts/hdpi/font_log.png
+++ /dev/null
Binary files differ
diff --git a/charger/fonts/ldpi/font_log.png b/charger/fonts/ldpi/font_log.png
deleted file mode 100644
index 72fa8cb5..00000000
--- a/charger/fonts/ldpi/font_log.png
+++ /dev/null
Binary files differ
diff --git a/charger/fonts/mdpi/font_log.png b/charger/fonts/mdpi/font_log.png
deleted file mode 100644
index d727fa1f..00000000
--- a/charger/fonts/mdpi/font_log.png
+++ /dev/null
Binary files differ
diff --git a/charger/fonts/xhdpi/font_log.png b/charger/fonts/xhdpi/font_log.png
deleted file mode 100644
index 9c16b772..00000000
--- a/charger/fonts/xhdpi/font_log.png
+++ /dev/null
Binary files differ
diff --git a/charger/fonts/xxhdpi/font_log.png b/charger/fonts/xxhdpi/font_log.png
deleted file mode 100644
index 5d122b72..00000000
--- a/charger/fonts/xxhdpi/font_log.png
+++ /dev/null
Binary files differ
diff --git a/charger/fonts/xxxhdpi/font_log.png b/charger/fonts/xxxhdpi/font_log.png
deleted file mode 100644
index 60dacec1..00000000
--- a/charger/fonts/xxxhdpi/font_log.png
+++ /dev/null
Binary files differ
diff --git a/charger/healthd_board_lineage.cpp b/charger/healthd_board_lineage.cpp
deleted file mode 100644
index dcfbc4a6..00000000
--- a/charger/healthd_board_lineage.cpp
+++ /dev/null
@@ -1,418 +0,0 @@
-/*
- * Copyright (C) 2016 The CyanogenMod Project
- * 2017 The LineageOS 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/rtc.h>
-#include <linux/time.h>
-#include <sys/epoll.h>
-#include <sys/timerfd.h>
-
-#include "healthd/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)
-
-static const GRFont* gr_font = NULL;
-
-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 const GRFont* get_font()
-{
- return gr_font;
-}
-
-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(get_font(), &font_x, &font_y);
- int w = gr_measure(get_font(), 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(get_font(), x, y + font_y / 2, cap_str, 0);
-}
-
-#ifdef QCOM_HARDWARE
-enum alarm_time_type {
- ALARM_TIME,
- RTC_TIME,
-};
-
-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;
-}
-
-static void alarm_reboot(void)
-{
- LOGI("alarm time is up, reboot the phone!\n");
- syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2,
- LINUX_REBOOT_CMD_RESTART2, "rtc");
-}
-
-static int alarm_set_reboot_time_and_wait(time_t secs)
-{
- int rc, epollfd, nevents;
- int fd = 0;
- struct timespec ts;
- epoll_event event, events[1];
- struct itimerspec itval;
-
- epollfd = epoll_create(1);
- if (epollfd < 0) {
- LOGE("epoll_create failed\n");
- goto err;
- }
-
- fd = timerfd_create(CLOCK_REALTIME_ALARM, 0);
- if (fd < 0) {
- LOGE("timerfd_create failed\n");
- goto err;
- }
-
- event.events = EPOLLIN | EPOLLWAKEUP;
- event.data.ptr = (void *)alarm_reboot;
- rc = epoll_ctl(epollfd, EPOLL_CTL_ADD, fd, &event);
- if (rc < 0) {
- LOGE("epoll_ctl(EPOLL_CTL_ADD) failed \n");
- goto err;
- }
-
- itval.it_value.tv_sec = secs;
- itval.it_value.tv_nsec = 0;
-
- itval.it_interval.tv_sec = 0;
- itval.it_interval.tv_nsec = 0;
-
- rc = timerfd_settime(fd, TFD_TIMER_ABSTIME, &itval, NULL);
- if (rc < 0) {
- LOGE("timerfd_settime failed %d\n",rc);
- goto err;
- }
-
- nevents = epoll_wait(epollfd, events, 1, -1);
-
- if (nevents <= 0) {
- LOGE("Unable to wait on alarm\n");
- goto err;
- } else {
- (*(void (*)())events[0].data.ptr)();
- }
-
- close(epollfd);
- close(fd);
- return 0;
-
-err:
- if (epollfd > 0)
- close(epollfd);
-
- if (fd >= 0)
- close(fd);
- return -1;
-}
-
-/*
- * 10s the estimated time from timestamp of alarm thread start
- * to timestamp of android boot completed.
- */
-#define TIME_DELTA 10
-
-/* seconds of 1 minute*/
-#define ONE_MINUTE 60
-static void *alarm_thread(void *)
-{
- time_t rtc_secs, alarm_secs;
- int rc;
- timespec ts;
-
- /*
- * 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, &alarm_secs);
- if (rc < 0 || !alarm_secs)
- goto err;
-
- rc = alarm_get_time(RTC_TIME, &rtc_secs);
- if (rc < 0 || !rtc_secs)
- goto err;
- LOGI("alarm time in rtc is %ld, rtc time is %ld\n", alarm_secs, rtc_secs);
-
- if (alarm_secs <= rtc_secs) {
- clock_gettime(CLOCK_BOOTTIME, &ts);
-
- /*
- * It is possible that last power off alarm time is up at this point.
- * (alarm_secs + ONE_MINUTE) is the final alarm time to fire.
- * (rtc_secs + ts.tv_sec + TIME_DELTA) is the estimated time of next
- * boot completed to fire alarm.
- * If the final alarm time is less than the estimated time of next boot
- * completed to fire, that means it is not able to fire the last power
- * off alarm at the right time, so just miss it.
- */
- if (alarm_secs + ONE_MINUTE < rtc_secs + ts.tv_sec + TIME_DELTA) {
- LOGE("alarm is missed\n");
- goto err;
- }
-
- alarm_reboot();
- }
-
- rc = alarm_set_reboot_time_and_wait(alarm_secs);
- if (rc < 0)
- goto err;
-
-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;
- int scale_fps; // Not in use (charger/lineage_battery_scale doesn't have FPS text
- // chunk). We are using hard-coded frame.disp_time instead.
-
- rc = res_create_multi_display_surface("charger/lineage_battery_scale",
- &scale_count, &scale_fps, &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 (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)
-{
- GRFont* tmp_font;
- int res = gr_init_font("font_log", &tmp_font);
- if (res == 0) {
- gr_font = tmp_font;
- } else {
- LOGW("Couldn't open font, falling back to default!\n");
- gr_font = gr_sys_font();
- }
-
-}
diff --git a/charger/images/400dpi b/charger/images/400dpi
deleted file mode 120000
index 17ef829d..00000000
--- a/charger/images/400dpi
+++ /dev/null
@@ -1 +0,0 @@
-xxhdpi \ No newline at end of file
diff --git a/charger/images/420dpi b/charger/images/420dpi
deleted file mode 120000
index 17ef829d..00000000
--- a/charger/images/420dpi
+++ /dev/null
@@ -1 +0,0 @@
-xxhdpi \ No newline at end of file
diff --git a/charger/images/560dpi b/charger/images/560dpi
deleted file mode 120000
index af2d1fe7..00000000
--- a/charger/images/560dpi
+++ /dev/null
@@ -1 +0,0 @@
-xxxhdpi \ No newline at end of file
diff --git a/charger/images/640dpi b/charger/images/640dpi
deleted file mode 120000
index af2d1fe7..00000000
--- a/charger/images/640dpi
+++ /dev/null
@@ -1 +0,0 @@
-xxxhdpi \ No newline at end of file
diff --git a/charger/images/hdpi/lineage_battery_scale.png b/charger/images/hdpi/lineage_battery_scale.png
deleted file mode 100644
index 0052c0ae..00000000
--- a/charger/images/hdpi/lineage_battery_scale.png
+++ /dev/null
Binary files differ
diff --git a/charger/images/ldpi/lineage_battery_scale.png b/charger/images/ldpi/lineage_battery_scale.png
deleted file mode 100644
index b93c3af9..00000000
--- a/charger/images/ldpi/lineage_battery_scale.png
+++ /dev/null
Binary files differ
diff --git a/charger/images/mdpi/lineage_battery_scale.png b/charger/images/mdpi/lineage_battery_scale.png
deleted file mode 100644
index eb16a292..00000000
--- a/charger/images/mdpi/lineage_battery_scale.png
+++ /dev/null
Binary files differ
diff --git a/charger/images/xhdpi/lineage_battery_scale.png b/charger/images/xhdpi/lineage_battery_scale.png
deleted file mode 100644
index 078b2a66..00000000
--- a/charger/images/xhdpi/lineage_battery_scale.png
+++ /dev/null
Binary files differ
diff --git a/charger/images/xxhdpi/lineage_battery_scale.png b/charger/images/xxhdpi/lineage_battery_scale.png
deleted file mode 100644
index 2e6553ed..00000000
--- a/charger/images/xxhdpi/lineage_battery_scale.png
+++ /dev/null
Binary files differ
diff --git a/charger/images/xxxhdpi/lineage_battery_scale.png b/charger/images/xxxhdpi/lineage_battery_scale.png
deleted file mode 100644
index 90c627d4..00000000
--- a/charger/images/xxxhdpi/lineage_battery_scale.png
+++ /dev/null
Binary files differ
diff --git a/config/BoardConfigKernel.mk b/config/BoardConfigKernel.mk
deleted file mode 100644
index 9246da5f..00000000
--- a/config/BoardConfigKernel.mk
+++ /dev/null
@@ -1,128 +0,0 @@
-# Copyright (C) 2018 The LineageOS 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.
-#
-#
-# Kernel build configuration variables
-# ====================================
-#
-# These config vars are usually set in BoardConfig.mk:
-#
-# TARGET_KERNEL_SOURCE = Kernel source dir, optional, defaults
-# to kernel/$(TARGET_DEVICE_DIR)
-# TARGET_KERNEL_ADDITIONAL_FLAGS = Additional make flags, optional
-# TARGET_KERNEL_ARCH = Kernel Arch
-# TARGET_KERNEL_CROSS_COMPILE_PREFIX = Compiler prefix (e.g. arm-eabi-)
-# defaults to arm-linux-androidkernel- for arm
-# aarch64-linux-androidkernel- for arm64
-# x86_64-linux-androidkernel- for x86
-#
-# TARGET_KERNEL_CLANG_COMPILE = Compile kernel with clang, defaults to false
-#
-# KERNEL_TOOLCHAIN_PREFIX = Overrides TARGET_KERNEL_CROSS_COMPILE_PREFIX,
-# Set this var in shell to override
-# toolchain specified in BoardConfig.mk
-# KERNEL_TOOLCHAIN = Path to toolchain, if unset, assumes
-# TARGET_KERNEL_CROSS_COMPILE_PREFIX
-# is in PATH
-# USE_CCACHE = Enable ccache (global Android flag)
-
-BUILD_TOP := $(shell pwd)
-
-TARGET_AUTO_KDIR := $(shell echo $(TARGET_DEVICE_DIR) | sed -e 's/^device/kernel/g')
-TARGET_KERNEL_SOURCE ?= $(TARGET_AUTO_KDIR)
-ifneq ($(TARGET_PREBUILT_KERNEL),)
-TARGET_KERNEL_SOURCE :=
-endif
-
-TARGET_KERNEL_ARCH := $(strip $(TARGET_KERNEL_ARCH))
-ifeq ($(TARGET_KERNEL_ARCH),)
-KERNEL_ARCH := $(TARGET_ARCH)
-else
-KERNEL_ARCH := $(TARGET_KERNEL_ARCH)
-endif
-
-TARGET_KERNEL_CROSS_COMPILE_PREFIX := $(strip $(TARGET_KERNEL_CROSS_COMPILE_PREFIX))
-ifneq ($(TARGET_KERNEL_CROSS_COMPILE_PREFIX),)
-KERNEL_TOOLCHAIN_PREFIX ?= $(TARGET_KERNEL_CROSS_COMPILE_PREFIX)
-else ifeq ($(KERNEL_ARCH),arm64)
-ifeq ($(TARGET_KERNEL_CLANG_COMPILE),true)
- KERNEL_TOOLCHAIN_PREFIX ?= aarch64-linux-android-
-else
- KERNEL_TOOLCHAIN_PREFIX ?= aarch64-linux-androidkernel-
-endif
-else ifeq ($(KERNEL_ARCH),arm)
-KERNEL_TOOLCHAIN_PREFIX ?= arm-linux-androidkernel-
-else ifeq ($(KERNEL_ARCH),x86)
-KERNEL_TOOLCHAIN_PREFIX ?= x86_64-linux-androidkernel-
-endif
-
-ifeq ($(KERNEL_TOOLCHAIN),)
-KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN_PREFIX)
-else ifneq ($(KERNEL_TOOLCHAIN_PREFIX),)
-KERNEL_TOOLCHAIN_PATH := $(KERNEL_TOOLCHAIN)/$(KERNEL_TOOLCHAIN_PREFIX)
-endif
-
-ifneq ($(USE_CCACHE),)
- # Detect if the system already has ccache installed to use instead of the prebuilt
- CCACHE_BIN := $(shell which ccache)
-
- ifeq ($(CCACHE_BIN),)
- CCACHE_BIN := $(BUILD_TOP)/prebuilts/misc/$(HOST_PREBUILT_TAG)/ccache/ccache
- # Check that the executable is here.
- CCACHE_BIN := $(strip $(wildcard $(CCACHE_BIN)))
- endif
-endif
-
-ifeq ($(TARGET_KERNEL_CLANG_COMPILE),true)
- KERNEL_CROSS_COMPILE := CROSS_COMPILE="$(KERNEL_TOOLCHAIN_PATH)"
-else
- KERNEL_CROSS_COMPILE := CROSS_COMPILE="$(CCACHE_BIN) $(KERNEL_TOOLCHAIN_PATH)"
-endif
-
-# Needed for CONFIG_COMPAT_VDSO, safe to set for all arm64 builds
-ifeq ($(KERNEL_ARCH),arm64)
- KERNEL_CROSS_COMPILE += CROSS_COMPILE_ARM32="arm-linux-androideabi-"
-endif
-
-# Clear this first to prevent accidental poisoning from env
-KERNEL_MAKE_FLAGS :=
-
-# Add back threads, ninja cuts this to $(nproc)/2
-KERNEL_MAKE_FLAGS += -j$$(nproc)
-
-ifeq ($(KERNEL_ARCH),arm)
- # Avoid "Unknown symbol _GLOBAL_OFFSET_TABLE_" errors
- KERNEL_MAKE_FLAGS += CFLAGS_MODULE="-fno-pic"
-endif
-
-ifeq ($(KERNEL_ARCH),arm64)
- # Avoid "unsupported RELA relocation: 311" errors (R_AARCH64_ADR_GOT_PAGE)
- KERNEL_MAKE_FLAGS += CFLAGS_MODULE="-fno-pic"
-endif
-
-ifeq ($(HOST_OS),darwin)
- KERNEL_MAKE_FLAGS += C_INCLUDE_PATH=$(BUILD_TOP)/external/elfutils/libelf:/usr/local/opt/openssl/include
- KERNEL_MAKE_FLAGS += LIBRARY_PATH=/usr/local/opt/openssl/lib
-endif
-
-ifneq ($(TARGET_KERNEL_ADDITIONAL_FLAGS),)
- KERNEL_MAKE_FLAGS += $(TARGET_KERNEL_ADDITIONAL_FLAGS)
-endif
-
-# Set DTBO image locations so the build system knows to build them
-ifeq ($(TARGET_NEEDS_DTBOIMAGE),true)
-BOARD_PREBUILT_DTBOIMAGE ?= $(PRODUCT_OUT)/dtbo/arch/$(KERNEL_ARCH)/boot/dtbo.img
-else ifeq ($(BOARD_KERNEL_SEPARATED_DTBO),true)
-BOARD_PREBUILT_DTBOIMAGE ?= $(PRODUCT_OUT)/dtbo-pre.img
-endif
diff --git a/config/BoardConfigLineage.mk b/config/BoardConfigLineage.mk
deleted file mode 100644
index 547792fd..00000000
--- a/config/BoardConfigLineage.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# Charger
-ifeq ($(WITH_LINEAGE_CHARGER),true)
- BOARD_HAL_STATIC_LIBRARIES := libhealthd.lineage
-endif
-
-include vendor/lineage/config/BoardConfigKernel.mk
-
-ifeq ($(BOARD_USES_QCOM_HARDWARE),true)
-include vendor/lineage/config/BoardConfigQcom.mk
-endif
-
-include vendor/lineage/config/BoardConfigSoong.mk
diff --git a/config/BoardConfigQcom.mk b/config/BoardConfigQcom.mk
deleted file mode 100644
index d699edd8..00000000
--- a/config/BoardConfigQcom.mk
+++ /dev/null
@@ -1,98 +0,0 @@
-# Platform names
-MSMNILE := msmnile #SM8150
-MSMSTEPPE := sm6150
-TRINKET := trinket #SM6125
-
-B_FAMILY := msm8226 msm8610 msm8974
-B64_FAMILY := msm8992 msm8994
-BR_FAMILY := msm8909 msm8916
-UM_3_18_FAMILY := msm8937 msm8953 msm8996
-UM_4_4_FAMILY := msm8998 sdm660
-UM_4_9_FAMILY := sdm845 sdm710
-UM_4_14_FAMILY := $(MSMNILE) $(MSMSTEPPE) $(TRINKET)
-UM_PLATFORMS := $(UM_3_18_FAMILY) $(UM_4_4_FAMILY) $(UM_4_9_FAMILY) $(UM_4_14_FAMILY)
-
-BOARD_USES_ADRENO := true
-
-# UM platforms no longer need this set on O+
-ifneq ($(filter $(B_FAMILY) $(B64_FAMILY) $(BR_FAMILY),$(TARGET_BOARD_PLATFORM)),)
- TARGET_USES_QCOM_BSP := true
-endif
-
-# Tell HALs that we're compiling an AOSP build with an in-line kernel
-TARGET_COMPILE_WITH_MSM_KERNEL := true
-
-ifneq ($(filter msm7x27a msm7x30 msm8660 msm8960,$(TARGET_BOARD_PLATFORM)),)
- TARGET_USES_QCOM_BSP_LEGACY := true
- # Enable legacy audio functions
- ifeq ($(BOARD_USES_LEGACY_ALSA_AUDIO),true)
- USE_CUSTOM_AUDIO_POLICY := 1
- endif
-endif
-
-# Enable media extensions
-TARGET_USES_MEDIA_EXTENSIONS := true
-
-# Allow building audio encoders
-TARGET_USES_QCOM_MM_AUDIO := true
-
-# Enable color metadata for every UM platform
-ifneq ($(filter $(UM_PLATFORMS),$(TARGET_BOARD_PLATFORM)),)
- TARGET_USES_COLOR_METADATA := true
-endif
-
-# Enable DRM PP driver on UM platforms that support it
-ifneq ($(filter $(UM_4_9_FAMILY) $(UM_4_14_FAMILY),$(TARGET_BOARD_PLATFORM)),)
- TARGET_USES_DRM_PP := true
-endif
-
-# Mark GRALLOC_USAGE_PRIVATE_WFD as valid gralloc bits
-TARGET_ADDITIONAL_GRALLOC_10_USAGE_BITS ?= 0
-TARGET_ADDITIONAL_GRALLOC_10_USAGE_BITS += | (1 << 21)
-
-# Mark GRALLOC_USAGE_PRIVATE_10BIT_TP as valid gralloc bits on UM platforms that support it
-ifneq ($(filter $(UM_4_9_FAMILY) $(UM_4_14_FAMILY),$(TARGET_BOARD_PLATFORM)),)
- TARGET_ADDITIONAL_GRALLOC_10_USAGE_BITS += | (1 << 27)
-endif
-
-# List of targets that use master side content protection
-MASTER_SIDE_CP_TARGET_LIST := msm8996 $(UM_4_4_FAMILY) $(UM_4_9_FAMILY) $(UM_4_14_FAMILY)
-
-ifneq ($(filter $(B_FAMILY),$(TARGET_BOARD_PLATFORM)),)
- MSM_VIDC_TARGET_LIST := $(B_FAMILY)
- QCOM_HARDWARE_VARIANT := msm8974
-else ifneq ($(filter $(B64_FAMILY),$(TARGET_BOARD_PLATFORM)),)
- MSM_VIDC_TARGET_LIST := $(B64_FAMILY)
- QCOM_HARDWARE_VARIANT := msm8994
-else ifneq ($(filter $(BR_FAMILY),$(TARGET_BOARD_PLATFORM)),)
- MSM_VIDC_TARGET_LIST := $(BR_FAMILY)
- QCOM_HARDWARE_VARIANT := msm8916
-else ifneq ($(filter $(UM_3_18_FAMILY),$(TARGET_BOARD_PLATFORM)),)
- MSM_VIDC_TARGET_LIST := $(UM_3_18_FAMILY)
- QCOM_HARDWARE_VARIANT := msm8996
- TARGET_USES_QCOM_UM_FAMILY := true
- TARGET_USES_QCOM_UM_3_18_FAMILY := true
-else ifneq ($(filter $(UM_4_4_FAMILY),$(TARGET_BOARD_PLATFORM)),)
- MSM_VIDC_TARGET_LIST := $(UM_4_4_FAMILY)
- QCOM_HARDWARE_VARIANT := msm8998
- TARGET_USES_QCOM_UM_FAMILY := true
- TARGET_USES_QCOM_UM_4_4_FAMILY := true
-else ifneq ($(filter $(UM_4_9_FAMILY),$(TARGET_BOARD_PLATFORM)),)
- MSM_VIDC_TARGET_LIST := $(UM_4_9_FAMILY)
- QCOM_HARDWARE_VARIANT := sdm845
- TARGET_USES_QCOM_UM_FAMILY := true
- TARGET_USES_QCOM_UM_4_9_FAMILY := true
-else ifneq ($(filter $(UM_4_14_FAMILY),$(TARGET_BOARD_PLATFORM)),)
- MSM_VIDC_TARGET_LIST := $(UM_4_14_FAMILY)
- QCOM_HARDWARE_VARIANT := sm8150
- TARGET_USES_QCOM_UM_FAMILY := true
- TARGET_USES_QCOM_UM_4_14_FAMILY := true
-else
- MSM_VIDC_TARGET_LIST := $(TARGET_BOARD_PLATFORM)
- QCOM_HARDWARE_VARIANT := $(TARGET_BOARD_PLATFORM)
-endif
-
-PRODUCT_SOONG_NAMESPACES += \
- hardware/qcom/audio-caf/$(QCOM_HARDWARE_VARIANT) \
- hardware/qcom/display-caf/$(QCOM_HARDWARE_VARIANT) \
- hardware/qcom/media-caf/$(QCOM_HARDWARE_VARIANT)
diff --git a/config/BoardConfigSoong.mk b/config/BoardConfigSoong.mk
deleted file mode 100644
index 82dedad4..00000000
--- a/config/BoardConfigSoong.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-# Add variables that we wish to make available to soong here.
-EXPORT_TO_SOONG := \
- KERNEL_ARCH \
- KERNEL_CROSS_COMPILE \
- KERNEL_MAKE_FLAGS \
- TARGET_KERNEL_CONFIG \
- TARGET_KERNEL_SOURCE
-
-# Setup SOONG_CONFIG_* vars to export the vars listed above.
-# Documentation here:
-# https://github.com/LineageOS/android_build_soong/commit/8328367c44085b948c003116c0ed74a047237a69
-
-SOONG_CONFIG_NAMESPACES += lineageVarsPlugin
-
-SOONG_CONFIG_lineageVarsPlugin :=
-
-define addVar
- SOONG_CONFIG_lineageVarsPlugin += $(1)
- SOONG_CONFIG_lineageVarsPlugin_$(1) := $$(subst ",\",$$($1))
-endef
-
-$(foreach v,$(EXPORT_TO_SOONG),$(eval $(call addVar,$(v))))
diff --git a/config/aosp_audio.mk b/config/aosp_audio.mk
deleted file mode 100644
index e458f7d9..00000000
--- a/config/aosp_audio.mk
+++ /dev/null
@@ -1,201 +0,0 @@
-# Copyright 2013 The Android Open Source Project
-# Copyright 2019 The LineageOS 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 := frameworks/base/data/sounds
-
-PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/Alarm_Beep_01.ogg:system/media/audio/alarms/Alarm_Beep_01.ogg \
- $(LOCAL_PATH)/Alarm_Beep_02.ogg:system/media/audio/alarms/Alarm_Beep_02.ogg \
- $(LOCAL_PATH)/Alarm_Beep_03.ogg:system/media/audio/alarms/Alarm_Beep_03.ogg \
- $(LOCAL_PATH)/Alarm_Buzzer.ogg:system/media/audio/alarms/Alarm_Buzzer.ogg \
- $(LOCAL_PATH)/Alarm_Rooster_02.ogg:system/media/audio/alarms/Alarm_Rooster_02.ogg \
- $(LOCAL_PATH)/alarms/ogg/Argon.ogg:system/media/audio/alarms/Argon-old.ogg \
- $(LOCAL_PATH)/alarms/ogg/Barium.ogg:system/media/audio/alarms/Barium.ogg \
- $(LOCAL_PATH)/alarms/ogg/Carbon.ogg:system/media/audio/alarms/Carbon-old.ogg \
- $(LOCAL_PATH)/alarms/ogg/Hassium.ogg:system/media/audio/alarms/Hassium.ogg \
- $(LOCAL_PATH)/alarms/ogg/Krypton.ogg:system/media/audio/alarms/Krypton-old.ogg \
- $(LOCAL_PATH)/alarms/ogg/Neon.ogg:system/media/audio/alarms/Neon-old.ogg \
- $(LOCAL_PATH)/alarms/ogg/Osmium.ogg:system/media/audio/alarms/Osmium-old.ogg \
- $(LOCAL_PATH)/alarms/ogg/Oxygen.ogg:system/media/audio/alarms/Oxygen-old.ogg \
- $(LOCAL_PATH)/alarms/ogg/Platinum.ogg:system/media/audio/alarms/Platinum-old.ogg \
- $(LOCAL_PATH)/alarms/ogg/Scandium.ogg:system/media/audio/alarms/Scandium.ogg
-
-PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/F1_New_SMS.ogg:system/media/audio/notifications/F1_New_SMS.ogg \
- $(LOCAL_PATH)/newwavelabs/CaffeineSnake.ogg:system/media/audio/notifications/CaffeineSnake.ogg \
- $(LOCAL_PATH)/newwavelabs/DearDeer.ogg:system/media/audio/notifications/DearDeer.ogg \
- $(LOCAL_PATH)/newwavelabs/DontPanic.ogg:system/media/audio/notifications/DontPanic.ogg \
- $(LOCAL_PATH)/newwavelabs/Highwire.ogg:system/media/audio/notifications/Highwire.ogg \
- $(LOCAL_PATH)/newwavelabs/KzurbSonar.ogg:system/media/audio/notifications/KzurbSonar.ogg \
- $(LOCAL_PATH)/newwavelabs/OnTheHunt.ogg:system/media/audio/notifications/OnTheHunt.ogg \
- $(LOCAL_PATH)/newwavelabs/Voila.ogg:system/media/audio/notifications/Voila.ogg \
- $(LOCAL_PATH)/notifications/Aldebaran.ogg:system/media/audio/notifications/Aldebaran.ogg \
- $(LOCAL_PATH)/notifications/Altair.ogg:system/media/audio/notifications/Altair.ogg \
- $(LOCAL_PATH)/notifications/Antares.ogg:system/media/audio/notifications/Antares.ogg \
- $(LOCAL_PATH)/notifications/Beat_Box_Android.ogg:system/media/audio/notifications/Beat_Box_Android.ogg \
- $(LOCAL_PATH)/notifications/Betelgeuse.ogg:system/media/audio/notifications/Betelgeuse.ogg \
- $(LOCAL_PATH)/notifications/Canopus.ogg:system/media/audio/notifications/Canopus.ogg \
- $(LOCAL_PATH)/notifications/Castor.ogg:system/media/audio/notifications/Castor.ogg \
- $(LOCAL_PATH)/notifications/Cricket.ogg:system/media/audio/notifications/Cricket.ogg \
- $(LOCAL_PATH)/notifications/Deneb.ogg:system/media/audio/notifications/Deneb.ogg \
- $(LOCAL_PATH)/notifications/Doink.ogg:system/media/audio/notifications/Doink.ogg \
- $(LOCAL_PATH)/notifications/Drip.ogg:system/media/audio/notifications/Drip.ogg \
- $(LOCAL_PATH)/notifications/Electra.ogg:system/media/audio/notifications/Electra.ogg \
- $(LOCAL_PATH)/notifications/Fomalhaut.ogg:system/media/audio/notifications/Fomalhaut.ogg \
- $(LOCAL_PATH)/notifications/Heaven.ogg:system/media/audio/notifications/Heaven.ogg \
- $(LOCAL_PATH)/notifications/Merope.ogg:system/media/audio/notifications/Merope.ogg \
- $(LOCAL_PATH)/notifications/moonbeam.ogg:system/media/audio/notifications/moonbeam.ogg \
- $(LOCAL_PATH)/notifications/ogg/Adara.ogg:system/media/audio/notifications/Adara.ogg \
- $(LOCAL_PATH)/notifications/ogg/Alya.ogg:system/media/audio/notifications/Alya.ogg \
- $(LOCAL_PATH)/notifications/ogg/Antimony.ogg:system/media/audio/notifications/Antimony.ogg \
- $(LOCAL_PATH)/notifications/ogg/Arcturus.ogg:system/media/audio/notifications/Arcturus.ogg \
- $(LOCAL_PATH)/notifications/ogg/Argon.ogg:system/media/audio/notifications/Argon.ogg \
- $(LOCAL_PATH)/notifications/ogg/Bellatrix.ogg:system/media/audio/notifications/Bellatrix.ogg \
- $(LOCAL_PATH)/notifications/ogg/Beryllium.ogg:system/media/audio/notifications/Beryllium.ogg \
- $(LOCAL_PATH)/notifications/ogg/Capella.ogg:system/media/audio/notifications/Capella.ogg \
- $(LOCAL_PATH)/notifications/ogg/CetiAlpha.ogg:system/media/audio/notifications/CetiAlpha.ogg \
- $(LOCAL_PATH)/notifications/ogg/Cobalt.ogg:system/media/audio/notifications/Cobalt.ogg \
- $(LOCAL_PATH)/notifications/ogg/Fluorine.ogg:system/media/audio/notifications/Fluorine.ogg \
- $(LOCAL_PATH)/notifications/ogg/Gallium.ogg:system/media/audio/notifications/Gallium.ogg \
- $(LOCAL_PATH)/notifications/ogg/Helium.ogg:system/media/audio/notifications/Helium.ogg \
- $(LOCAL_PATH)/notifications/ogg/Hojus.ogg:system/media/audio/notifications/Hojus.ogg \
- $(LOCAL_PATH)/notifications/ogg/Iridium.ogg:system/media/audio/notifications/Iridium.ogg \
- $(LOCAL_PATH)/notifications/ogg/Krypton.ogg:system/media/audio/notifications/Krypton.ogg \
- $(LOCAL_PATH)/notifications/ogg/Mira.ogg:system/media/audio/notifications/Mira.ogg \
- $(LOCAL_PATH)/notifications/ogg/Palladium.ogg:system/media/audio/notifications/Palladium.ogg \
- $(LOCAL_PATH)/notifications/ogg/Polaris.ogg:system/media/audio/notifications/Polaris.ogg \
- $(LOCAL_PATH)/notifications/ogg/Pollux.ogg:system/media/audio/notifications/Pollux.ogg \
- $(LOCAL_PATH)/notifications/ogg/Procyon.ogg:system/media/audio/notifications/Procyon.ogg \
- $(LOCAL_PATH)/notifications/ogg/Proxima.ogg:system/media/audio/notifications/Proxima.ogg \
- $(LOCAL_PATH)/notifications/ogg/Radon.ogg:system/media/audio/notifications/Radon.ogg \
- $(LOCAL_PATH)/notifications/ogg/Rubidium.ogg:system/media/audio/notifications/Rubidium.ogg \
- $(LOCAL_PATH)/notifications/ogg/Selenium.ogg:system/media/audio/notifications/Selenium.ogg \
- $(LOCAL_PATH)/notifications/ogg/Shaula.ogg:system/media/audio/notifications/Shaula.ogg \
- $(LOCAL_PATH)/notifications/ogg/Spica.ogg:system/media/audio/notifications/Spica.ogg \
- $(LOCAL_PATH)/notifications/ogg/Strontium.ogg:system/media/audio/notifications/Strontium.ogg \
- $(LOCAL_PATH)/notifications/ogg/Syrma.ogg:system/media/audio/notifications/Syrma.ogg \
- $(LOCAL_PATH)/notifications/ogg/Talitha.ogg:system/media/audio/notifications/Talitha.ogg \
- $(LOCAL_PATH)/notifications/ogg/Thallium.ogg:system/media/audio/notifications/Thallium.ogg \
- $(LOCAL_PATH)/notifications/ogg/Upsilon.ogg:system/media/audio/notifications/Upsilon.ogg \
- $(LOCAL_PATH)/notifications/ogg/Vega.ogg:system/media/audio/notifications/Vega.ogg \
- $(LOCAL_PATH)/notifications/ogg/Xenon.ogg:system/media/audio/notifications/Xenon.ogg \
- $(LOCAL_PATH)/notifications/ogg/Zirconium.ogg:system/media/audio/notifications/Zirconium.ogg \
- $(LOCAL_PATH)/notifications/pixiedust.ogg:system/media/audio/notifications/pixiedust.ogg \
- $(LOCAL_PATH)/notifications/pizzicato.ogg:system/media/audio/notifications/pizzicato.ogg \
- $(LOCAL_PATH)/notifications/Plastic_Pipe.ogg:system/media/audio/notifications/Plastic_Pipe.ogg \
- $(LOCAL_PATH)/notifications/regulus.ogg:system/media/audio/notifications/regulus.ogg \
- $(LOCAL_PATH)/notifications/sirius.ogg:system/media/audio/notifications/sirius.ogg \
- $(LOCAL_PATH)/notifications/Sirrah.ogg:system/media/audio/notifications/Sirrah.ogg \
- $(LOCAL_PATH)/notifications/TaDa.ogg:system/media/audio/notifications/TaDa.ogg \
- $(LOCAL_PATH)/notifications/tweeters.ogg:system/media/audio/notifications/tweeters.ogg
-
-PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/Ring_Classic_02.ogg:system/media/audio/ringtones/Ring_Classic_02.ogg \
- $(LOCAL_PATH)/Ring_Digital_02.ogg:system/media/audio/ringtones/Ring_Digital_02.ogg \
- $(LOCAL_PATH)/Ring_Synth_02.ogg:system/media/audio/ringtones/Ring_Synth_02.ogg \
- $(LOCAL_PATH)/Ring_Synth_04.ogg:system/media/audio/ringtones/Ring_Synth_04.ogg \
- $(LOCAL_PATH)/newwavelabs/Backroad.ogg:system/media/audio/ringtones/Backroad.ogg \
- $(LOCAL_PATH)/newwavelabs/BeatPlucker.ogg:system/media/audio/ringtones/BeatPlucker.ogg \
- $(LOCAL_PATH)/newwavelabs/BentleyDubs.ogg:system/media/audio/ringtones/BentleyDubs.ogg \
- $(LOCAL_PATH)/newwavelabs/Big_Easy.ogg:system/media/audio/ringtones/Big_Easy.ogg \
- $(LOCAL_PATH)/newwavelabs/BirdLoop.ogg:system/media/audio/ringtones/BirdLoop.ogg \
- $(LOCAL_PATH)/newwavelabs/Bollywood.ogg:system/media/audio/ringtones/Bollywood.ogg \
- $(LOCAL_PATH)/newwavelabs/BussaMove.ogg:system/media/audio/ringtones/BussaMove.ogg \
- $(LOCAL_PATH)/newwavelabs/Cairo.ogg:system/media/audio/ringtones/Cairo.ogg \
- $(LOCAL_PATH)/newwavelabs/Calypso_Steel.ogg:system/media/audio/ringtones/Calypso_Steel.ogg \
- $(LOCAL_PATH)/newwavelabs/CaribbeanIce.ogg:system/media/audio/ringtones/CaribbeanIce.ogg \
- $(LOCAL_PATH)/newwavelabs/Champagne_Edition.ogg:system/media/audio/ringtones/Champagne_Edition.ogg \
- $(LOCAL_PATH)/newwavelabs/Club_Cubano.ogg:system/media/audio/ringtones/Club_Cubano.ogg \
- $(LOCAL_PATH)/newwavelabs/CrayonRock.ogg:system/media/audio/ringtones/CrayonRock.ogg \
- $(LOCAL_PATH)/newwavelabs/CrazyDream.ogg:system/media/audio/ringtones/CrazyDream.ogg \
- $(LOCAL_PATH)/newwavelabs/CurveBall.ogg:system/media/audio/ringtones/CurveBall.ogg \
- $(LOCAL_PATH)/newwavelabs/DancinFool.ogg:system/media/audio/ringtones/DancinFool.ogg \
- $(LOCAL_PATH)/newwavelabs/DonMessWivIt.ogg:system/media/audio/ringtones/DonMessWivIt.ogg \
- $(LOCAL_PATH)/newwavelabs/DreamTheme.ogg:system/media/audio/ringtones/DreamTheme.ogg \
- $(LOCAL_PATH)/newwavelabs/Eastern_Sky.ogg:system/media/audio/ringtones/Eastern_Sky.ogg \
- $(LOCAL_PATH)/newwavelabs/Enter_the_Nexus.ogg:system/media/audio/ringtones/Enter_the_Nexus.ogg \
- $(LOCAL_PATH)/newwavelabs/EtherShake.ogg:system/media/audio/ringtones/EtherShake.ogg \
- $(LOCAL_PATH)/newwavelabs/FriendlyGhost.ogg:system/media/audio/ringtones/FriendlyGhost.ogg \
- $(LOCAL_PATH)/newwavelabs/Funk_Yall.ogg:system/media/audio/ringtones/Funk_Yall.ogg \
- $(LOCAL_PATH)/newwavelabs/GameOverGuitar.ogg:system/media/audio/ringtones/GameOverGuitar.ogg \
- $(LOCAL_PATH)/newwavelabs/Gimme_Mo_Town.ogg:system/media/audio/ringtones/Gimme_Mo_Town.ogg \
- $(LOCAL_PATH)/newwavelabs/Glacial_Groove.ogg:system/media/audio/ringtones/Glacial_Groove.ogg \
- $(LOCAL_PATH)/newwavelabs/Growl.ogg:system/media/audio/ringtones/Growl.ogg \
- $(LOCAL_PATH)/newwavelabs/HalfwayHome.ogg:system/media/audio/ringtones/HalfwayHome.ogg \
- $(LOCAL_PATH)/newwavelabs/InsertCoin.ogg:system/media/audio/ringtones/InsertCoin.ogg \
- $(LOCAL_PATH)/newwavelabs/LoopyLounge.ogg:system/media/audio/ringtones/LoopyLounge.ogg \
- $(LOCAL_PATH)/newwavelabs/LoveFlute.ogg:system/media/audio/ringtones/LoveFlute.ogg \
- $(LOCAL_PATH)/newwavelabs/MidEvilJaunt.ogg:system/media/audio/ringtones/MidEvilJaunt.ogg \
- $(LOCAL_PATH)/newwavelabs/Nairobi.ogg:system/media/audio/ringtones/Nairobi.ogg \
- $(LOCAL_PATH)/newwavelabs/Nassau.ogg:system/media/audio/ringtones/Nassau.ogg \
- $(LOCAL_PATH)/newwavelabs/NewPlayer.ogg:system/media/audio/ringtones/NewPlayer.ogg \
- $(LOCAL_PATH)/newwavelabs/Noises2.ogg:system/media/audio/ringtones/Noises2.ogg \
- $(LOCAL_PATH)/newwavelabs/Noises3.ogg:system/media/audio/ringtones/Noises3.ogg \
- $(LOCAL_PATH)/newwavelabs/No_Limits.ogg:system/media/audio/ringtones/No_Limits.ogg \
- $(LOCAL_PATH)/newwavelabs/OrganDub.ogg:system/media/audio/ringtones/OrganDub.ogg \
- $(LOCAL_PATH)/newwavelabs/Paradise_Island.ogg:system/media/audio/ringtones/Paradise_Island.ogg \
- $(LOCAL_PATH)/newwavelabs/Playa.ogg:system/media/audio/ringtones/Playa.ogg \
- $(LOCAL_PATH)/newwavelabs/Revelation.ogg:system/media/audio/ringtones/Revelation.ogg \
- $(LOCAL_PATH)/newwavelabs/Road_Trip.ogg:system/media/audio/ringtones/Road_Trip.ogg \
- $(LOCAL_PATH)/newwavelabs/RomancingTheTone.ogg:system/media/audio/ringtones/RomancingTheTone.ogg \
- $(LOCAL_PATH)/newwavelabs/Safari.ogg:system/media/audio/ringtones/Safari.ogg \
- $(LOCAL_PATH)/newwavelabs/Savannah.ogg:system/media/audio/ringtones/Savannah.ogg \
- $(LOCAL_PATH)/newwavelabs/Seville.ogg:system/media/audio/ringtones/Seville.ogg \
- $(LOCAL_PATH)/newwavelabs/Shes_All_That.ogg:system/media/audio/ringtones/Shes_All_That.ogg \
- $(LOCAL_PATH)/newwavelabs/SilkyWay.ogg:system/media/audio/ringtones/SilkyWay.ogg \
- $(LOCAL_PATH)/newwavelabs/SitarVsSitar.ogg:system/media/audio/ringtones/SitarVsSitar.ogg \
- $(LOCAL_PATH)/newwavelabs/SpringyJalopy.ogg:system/media/audio/ringtones/SpringyJalopy.ogg \
- $(LOCAL_PATH)/newwavelabs/Steppin_Out.ogg:system/media/audio/ringtones/Steppin_Out.ogg \
- $(LOCAL_PATH)/newwavelabs/Terminated.ogg:system/media/audio/ringtones/Terminated.ogg \
- $(LOCAL_PATH)/newwavelabs/Third_Eye.ogg:system/media/audio/ringtones/Third_Eye.ogg \
- $(LOCAL_PATH)/newwavelabs/Thunderfoot.ogg:system/media/audio/ringtones/Thunderfoot.ogg \
- $(LOCAL_PATH)/newwavelabs/TwirlAway.ogg:system/media/audio/ringtones/TwirlAway.ogg \
- $(LOCAL_PATH)/newwavelabs/VeryAlarmed.ogg:system/media/audio/ringtones/VeryAlarmed.ogg \
- $(LOCAL_PATH)/newwavelabs/World.ogg:system/media/audio/ringtones/World.ogg \
- $(LOCAL_PATH)/ringtones/BOOTES.ogg:system/media/audio/ringtones/BOOTES.ogg \
- $(LOCAL_PATH)/ringtones/CASSIOPEIA.ogg:system/media/audio/ringtones/CASSIOPEIA.ogg \
- $(LOCAL_PATH)/ringtones/Eridani.ogg:system/media/audio/ringtones/Eridani.ogg \
- $(LOCAL_PATH)/ringtones/FreeFlight.ogg:system/media/audio/ringtones/FreeFlight.ogg \
- $(LOCAL_PATH)/ringtones/Lyra.ogg:system/media/audio/ringtones/Lyra.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Andromeda.ogg:system/media/audio/ringtones/Andromeda.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Aquila.ogg:system/media/audio/ringtones/Aquila.ogg \
- $(LOCAL_PATH)/ringtones/ogg/ArgoNavis.ogg:system/media/audio/ringtones/ArgoNavis.ogg \
- $(LOCAL_PATH)/ringtones/ogg/CanisMajor.ogg:system/media/audio/ringtones/CanisMajor.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Carina.ogg:system/media/audio/ringtones/Carina.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Centaurus.ogg:system/media/audio/ringtones/Centaurus.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Cygnus.ogg:system/media/audio/ringtones/Cygnus.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Draco.ogg:system/media/audio/ringtones/Draco.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Girtab.ogg:system/media/audio/ringtones/Girtab.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Hydra.ogg:system/media/audio/ringtones/Hydra.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Kuma.ogg:system/media/audio/ringtones/Kuma.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Machina.ogg:system/media/audio/ringtones/Machina.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Orion.ogg:system/media/audio/ringtones/Orion.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Pegasus.ogg:system/media/audio/ringtones/Pegasus.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Perseus.ogg:system/media/audio/ringtones/Perseus.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Pyxis.ogg:system/media/audio/ringtones/Pyxis.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Rasalas.ogg:system/media/audio/ringtones/Rasalas.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Rigel.ogg:system/media/audio/ringtones/Rigel.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Scarabaeus.ogg:system/media/audio/ringtones/Scarabaeus.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Sceptrum.ogg:system/media/audio/ringtones/Sceptrum.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Solarium.ogg:system/media/audio/ringtones/Solarium.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Themos.ogg:system/media/audio/ringtones/Themos.ogg \
- $(LOCAL_PATH)/ringtones/ogg/UrsaMinor.ogg:system/media/audio/ringtones/UrsaMinor.ogg \
- $(LOCAL_PATH)/ringtones/ogg/Zeta.ogg:system/media/audio/ringtones/Zeta.ogg \
- $(LOCAL_PATH)/ringtones/Testudo.ogg:system/media/audio/ringtones/Testudo.ogg \
- $(LOCAL_PATH)/ringtones/Vespa.ogg:system/media/audio/ringtones/Vespa.ogg
-
-PRODUCT_COPY_FILES += \
- $(LOCAL_PATH)/effects/ogg/ChargingStarted.ogg:system/media/audio/notifications/ChargingStarted.ogg \
- $(LOCAL_PATH)/effects/material/ogg/WirelessChargingStarted.ogg:system/media/audio/notifications/WirelessChargingStarted.ogg
diff --git a/config/common.mk b/config/common.mk
deleted file mode 100644
index 1e649082..00000000
--- a/config/common.mk
+++ /dev/null
@@ -1,321 +0,0 @@
-# Allow vendor/extra to override any property by setting it first
-$(call inherit-product-if-exists, vendor/extra/product.mk)
-
-PRODUCT_BRAND ?= LineageOS
-
-PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0
-
-ifeq ($(PRODUCT_GMS_CLIENTID_BASE),)
-PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
- ro.com.google.clientidbase=android-google
-else
-PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
- ro.com.google.clientidbase=$(PRODUCT_GMS_CLIENTID_BASE)
-endif
-
-PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
- ro.build.selinux=1
-
-ifeq ($(TARGET_BUILD_VARIANT),eng)
-# Disable ADB authentication
-PRODUCT_SYSTEM_DEFAULT_PROPERTIES += ro.adb.secure=0
-else
-# Enable ADB authentication
-PRODUCT_SYSTEM_DEFAULT_PROPERTIES += ro.adb.secure=1
-endif
-
-# Backup Tool
-PRODUCT_COPY_FILES += \
- vendor/lineage/prebuilt/common/bin/backuptool.sh:install/bin/backuptool.sh \
- vendor/lineage/prebuilt/common/bin/backuptool.functions:install/bin/backuptool.functions \
- vendor/lineage/prebuilt/common/bin/50-lineage.sh:system/addon.d/50-lineage.sh
-
-ifeq ($(AB_OTA_UPDATER),true)
-PRODUCT_COPY_FILES += \
- vendor/lineage/prebuilt/common/bin/backuptool_ab.sh:system/bin/backuptool_ab.sh \
- vendor/lineage/prebuilt/common/bin/backuptool_ab.functions:system/bin/backuptool_ab.functions \
- vendor/lineage/prebuilt/common/bin/backuptool_postinstall.sh:system/bin/backuptool_postinstall.sh
-endif
-
-# Backup Services whitelist
-PRODUCT_COPY_FILES += \
- vendor/lineage/config/permissions/backup.xml:system/etc/sysconfig/backup.xml
-
-# Lineage-specific broadcast actions whitelist
-PRODUCT_COPY_FILES += \
- vendor/lineage/config/permissions/lineage-sysconfig.xml:system/etc/sysconfig/lineage-sysconfig.xml
-
-# init.d support
-PRODUCT_COPY_FILES += \
- vendor/lineage/prebuilt/common/etc/init.d/00banner:system/etc/init.d/00banner \
- vendor/lineage/prebuilt/common/bin/sysinit:system/bin/sysinit
-
-ifneq ($(TARGET_BUILD_VARIANT),user)
-# userinit support
-PRODUCT_COPY_FILES += \
- vendor/lineage/prebuilt/common/etc/init.d/90userinit:system/etc/init.d/90userinit
-endif
-
-# Copy all Lineage-specific init rc files
-$(foreach f,$(wildcard vendor/lineage/prebuilt/common/etc/init/*.rc),\
- $(eval PRODUCT_COPY_FILES += $(f):system/etc/init/$(notdir $f)))
-
-# Copy over added mimetype supported in libcore.net.MimeUtils
-PRODUCT_COPY_FILES += \
- vendor/lineage/prebuilt/common/lib/content-types.properties:system/lib/content-types.properties
-
-# Enable SIP+VoIP on all targets
-PRODUCT_COPY_FILES += \
- frameworks/native/data/etc/android.software.sip.voip.xml:system/etc/permissions/android.software.sip.voip.xml
-
-# Enable wireless Xbox 360 controller support
-PRODUCT_COPY_FILES += \
- frameworks/base/data/keyboards/Vendor_045e_Product_028e.kl:system/usr/keylayout/Vendor_045e_Product_0719.kl
-
-# This is Lineage!
-PRODUCT_COPY_FILES += \
- vendor/lineage/config/permissions/org.lineageos.android.xml:system/etc/permissions/org.lineageos.android.xml \
- vendor/lineage/config/permissions/privapp-permissions-lineage.xml:system/etc/permissions/privapp-permissions-lineage.xml \
- vendor/lineage/config/permissions/privapp-permissions-cm-legacy.xml:system/etc/permissions/privapp-permissions-cm-legacy.xml
-
-# Enforce privapp-permissions whitelist
-PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
- ro.control_privapp_permissions=enforce
-
-# Hidden API whitelist
-PRODUCT_COPY_FILES += \
- vendor/lineage/config/permissions/lineage-hiddenapi-package-whitelist.xml:system/etc/permissions/lineage-hiddenapi-package-whitelist.xml
-
-# Power whitelist
-PRODUCT_COPY_FILES += \
- vendor/lineage/config/permissions/lineage-power-whitelist.xml:system/etc/sysconfig/lineage-power-whitelist.xml
-
-# Include AOSP audio files
-include vendor/lineage/config/aosp_audio.mk
-
-# Include Lineage audio files
-include vendor/lineage/config/lineage_audio.mk
-
-ifneq ($(TARGET_DISABLE_LINEAGE_SDK), true)
-# Lineage SDK
-include vendor/lineage/config/lineage_sdk_common.mk
-endif
-
-# TWRP
-ifeq ($(WITH_TWRP),true)
-include vendor/lineage/config/twrp.mk
-endif
-
-# Do not include art debug targets
-PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD := false
-
-# Strip the local variable table and the local variable type table to reduce
-# the size of the system image. This has no bearing on stack traces, but will
-# leave less information available via JDWP.
-PRODUCT_MINIMIZE_JAVA_DEBUG_INFO := true
-
-# Bootanimation
-PRODUCT_PACKAGES += \
- bootanimation.zip
-
-# Required Lineage packages
-PRODUCT_PACKAGES += \
- LineageParts \
- Development \
- Profiles
-
-# Optional packages
-PRODUCT_PACKAGES += \
- Terminal
-
-# Custom Lineage packages
-PRODUCT_PACKAGES += \
- LineageSettingsProvider \
- LineageSetupWizard \
- Updater
-
-# Extra tools in Lineage
-PRODUCT_PACKAGES += \
- 7z \
- awk \
- bash \
- bzip2 \
- curl \
- getcap \
- htop \
- lib7z \
- libsepol \
- pigz \
- powertop \
- setcap \
- unrar \
- unzip \
- vim \
- wget \
- zip
-
-# Filesystems tools
-PRODUCT_PACKAGES += \
- fsck.exfat \
- fsck.ntfs \
- mke2fs \
- mkfs.exfat \
- mkfs.ntfs \
- mount.ntfs
-
-# Openssh
-PRODUCT_PACKAGES += \
- scp \
- sftp \
- ssh \
- sshd \
- sshd_config \
- ssh-keygen \
- start-ssh
-
-# rsync
-PRODUCT_PACKAGES += \
- rsync
-
-# Storage manager
-PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
- ro.storage_manager.enabled=true
-
-# These packages are excluded from user builds
-PRODUCT_PACKAGES_DEBUG += \
- micro_bench \
- procmem \
- procrank \
- strace
-
-# Conditionally build in su
-ifneq ($(TARGET_BUILD_VARIANT),user)
-ifeq ($(WITH_SU),true)
-PRODUCT_PACKAGES += \
- su
-endif
-endif
-
-PRODUCT_ENFORCE_RRO_EXCLUDED_OVERLAYS += vendor/lineage/overlay
-DEVICE_PACKAGE_OVERLAYS += vendor/lineage/overlay/common
-
-PRODUCT_VERSION_MAJOR = 16
-PRODUCT_VERSION_MINOR = 0
-PRODUCT_VERSION_MAINTENANCE := 0
-
-ifeq ($(TARGET_VENDOR_SHOW_MAINTENANCE_VERSION),true)
- LINEAGE_VERSION_MAINTENANCE := $(PRODUCT_VERSION_MAINTENANCE)
-else
- LINEAGE_VERSION_MAINTENANCE := 0
-endif
-
-# Set LINEAGE_BUILDTYPE from the env RELEASE_TYPE, for jenkins compat
-
-ifndef LINEAGE_BUILDTYPE
- ifdef RELEASE_TYPE
- # Starting with "LINEAGE_" is optional
- RELEASE_TYPE := $(shell echo $(RELEASE_TYPE) | sed -e 's|^LINEAGE_||g')
- LINEAGE_BUILDTYPE := $(RELEASE_TYPE)
- endif
-endif
-
-# Filter out random types, so it'll reset to UNOFFICIAL
-ifeq ($(filter RELEASE NIGHTLY SNAPSHOT EXPERIMENTAL,$(LINEAGE_BUILDTYPE)),)
- LINEAGE_BUILDTYPE :=
-endif
-
-ifdef LINEAGE_BUILDTYPE
- ifneq ($(LINEAGE_BUILDTYPE), SNAPSHOT)
- ifdef LINEAGE_EXTRAVERSION
- # Force build type to EXPERIMENTAL
- LINEAGE_BUILDTYPE := EXPERIMENTAL
- # Remove leading dash from LINEAGE_EXTRAVERSION
- LINEAGE_EXTRAVERSION := $(shell echo $(LINEAGE_EXTRAVERSION) | sed 's/-//')
- # Add leading dash to LINEAGE_EXTRAVERSION
- LINEAGE_EXTRAVERSION := -$(LINEAGE_EXTRAVERSION)
- endif
- else
- ifndef LINEAGE_EXTRAVERSION
- # Force build type to EXPERIMENTAL, SNAPSHOT mandates a tag
- LINEAGE_BUILDTYPE := EXPERIMENTAL
- else
- # Remove leading dash from LINEAGE_EXTRAVERSION
- LINEAGE_EXTRAVERSION := $(shell echo $(LINEAGE_EXTRAVERSION) | sed 's/-//')
- # Add leading dash to LINEAGE_EXTRAVERSION
- LINEAGE_EXTRAVERSION := -$(LINEAGE_EXTRAVERSION)
- endif
- endif
-else
- # If LINEAGE_BUILDTYPE is not defined, set to UNOFFICIAL
- LINEAGE_BUILDTYPE := UNOFFICIAL
- LINEAGE_EXTRAVERSION :=
-endif
-
-ifeq ($(LINEAGE_BUILDTYPE), UNOFFICIAL)
- ifneq ($(TARGET_UNOFFICIAL_BUILD_ID),)
- LINEAGE_EXTRAVERSION := -$(TARGET_UNOFFICIAL_BUILD_ID)
- endif
-endif
-
-ifeq ($(LINEAGE_BUILDTYPE), RELEASE)
- ifndef TARGET_VENDOR_RELEASE_BUILD_ID
- LINEAGE_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(PRODUCT_VERSION_MAINTENANCE)$(PRODUCT_VERSION_DEVICE_SPECIFIC)-$(LINEAGE_BUILD)
- else
- ifeq ($(TARGET_BUILD_VARIANT),user)
- ifeq ($(LINEAGE_VERSION_MAINTENANCE),0)
- LINEAGE_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(TARGET_VENDOR_RELEASE_BUILD_ID)-$(LINEAGE_BUILD)
- else
- LINEAGE_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(LINEAGE_VERSION_MAINTENANCE)-$(TARGET_VENDOR_RELEASE_BUILD_ID)-$(LINEAGE_BUILD)
- endif
- else
- LINEAGE_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(PRODUCT_VERSION_MAINTENANCE)$(PRODUCT_VERSION_DEVICE_SPECIFIC)-$(LINEAGE_BUILD)
- endif
- endif
-else
- ifeq ($(LINEAGE_VERSION_MAINTENANCE),0)
- ifeq ($(LINEAGE_VERSION_APPEND_TIME_OF_DAY),true)
- LINEAGE_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(shell date -u +%Y%m%d_%H%M%S)-$(LINEAGE_BUILDTYPE)$(LINEAGE_EXTRAVERSION)-$(LINEAGE_BUILD)
- else
- LINEAGE_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(shell date -u +%Y%m%d)-$(LINEAGE_BUILDTYPE)$(LINEAGE_EXTRAVERSION)-$(LINEAGE_BUILD)
- endif
- else
- ifeq ($(LINEAGE_VERSION_APPEND_TIME_OF_DAY),true)
- LINEAGE_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(LINEAGE_VERSION_MAINTENANCE)-$(shell date -u +%Y%m%d_%H%M%S)-$(LINEAGE_BUILDTYPE)$(LINEAGE_EXTRAVERSION)-$(LINEAGE_BUILD)
- else
- LINEAGE_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(LINEAGE_VERSION_MAINTENANCE)-$(shell date -u +%Y%m%d)-$(LINEAGE_BUILDTYPE)$(LINEAGE_EXTRAVERSION)-$(LINEAGE_BUILD)
- endif
- endif
-endif
-
-PRODUCT_EXTRA_RECOVERY_KEYS += \
- vendor/lineage/build/target/product/security/lineage
-
--include vendor/lineage-priv/keys/keys.mk
-
-LINEAGE_DISPLAY_VERSION := $(LINEAGE_VERSION)
-
-ifneq ($(PRODUCT_DEFAULT_DEV_CERTIFICATE),)
-ifneq ($(PRODUCT_DEFAULT_DEV_CERTIFICATE),build/target/product/security/testkey)
- ifneq ($(LINEAGE_BUILDTYPE), UNOFFICIAL)
- ifndef TARGET_VENDOR_RELEASE_BUILD_ID
- ifneq ($(LINEAGE_EXTRAVERSION),)
- # Remove leading dash from LINEAGE_EXTRAVERSION
- LINEAGE_EXTRAVERSION := $(shell echo $(LINEAGE_EXTRAVERSION) | sed 's/-//')
- TARGET_VENDOR_RELEASE_BUILD_ID := $(LINEAGE_EXTRAVERSION)
- else
- TARGET_VENDOR_RELEASE_BUILD_ID := $(shell date -u +%Y%m%d)
- endif
- else
- TARGET_VENDOR_RELEASE_BUILD_ID := $(TARGET_VENDOR_RELEASE_BUILD_ID)
- endif
- ifeq ($(LINEAGE_VERSION_MAINTENANCE),0)
- LINEAGE_DISPLAY_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR)-$(TARGET_VENDOR_RELEASE_BUILD_ID)-$(LINEAGE_BUILD)
- else
- LINEAGE_DISPLAY_VERSION := $(PRODUCT_VERSION_MAJOR).$(PRODUCT_VERSION_MINOR).$(LINEAGE_VERSION_MAINTENANCE)-$(TARGET_VENDOR_RELEASE_BUILD_ID)-$(LINEAGE_BUILD)
- endif
- endif
-endif
-endif
-
--include $(WORKSPACE)/build_env/image-auto-bits.mk
--include vendor/lineage/config/partner_gms.mk
diff --git a/config/common_full.mk b/config/common_full.mk
deleted file mode 100644
index 67bfa73c..00000000
--- a/config/common_full.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-# Inherit common Lineage stuff
-$(call inherit-product, vendor/lineage/config/common_mobile.mk)
-
-PRODUCT_SIZE := full
-
-# Recorder
-PRODUCT_PACKAGES += \
- Recorder
diff --git a/config/common_full_phone.mk b/config/common_full_phone.mk
deleted file mode 100644
index 224e454e..00000000
--- a/config/common_full_phone.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-# Inherit full common Lineage stuff
-$(call inherit-product, vendor/lineage/config/common_full.mk)
-
-# Required packages
-PRODUCT_PACKAGES += \
- LatinIME
-
-# Include Lineage LatinIME dictionaries
-PRODUCT_PACKAGE_OVERLAYS += vendor/lineage/overlay/dictionaries
-
-$(call inherit-product, vendor/lineage/config/telephony.mk)
diff --git a/config/common_full_tablet_wifionly.mk b/config/common_full_tablet_wifionly.mk
deleted file mode 100644
index f75d42a4..00000000
--- a/config/common_full_tablet_wifionly.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-# Inherit full common Lineage stuff
-$(call inherit-product, vendor/lineage/config/common_full.mk)
-
-# Required packages
-PRODUCT_PACKAGES += \
- LatinIME
-
-# Include Lineage LatinIME dictionaries
-PRODUCT_PACKAGE_OVERLAYS += vendor/lineage/overlay/dictionaries
diff --git a/config/common_full_tv.mk b/config/common_full_tv.mk
deleted file mode 100644
index 416fed01..00000000
--- a/config/common_full_tv.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# This config is for legacy purposes, there are no atv product size variants
-
-# Inherit common atv Lineage stuff
-$(call inherit-product, vendor/lineage/config/common_tv.mk)
diff --git a/config/common_mini.mk b/config/common_mini.mk
deleted file mode 100644
index 8e8f88f2..00000000
--- a/config/common_mini.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# Inherit mini common Lineage stuff
-$(call inherit-product, vendor/lineage/config/common_mobile.mk)
-
-PRODUCT_SIZE := mini
diff --git a/config/common_mini_phone.mk b/config/common_mini_phone.mk
deleted file mode 100644
index 6b2c57ad..00000000
--- a/config/common_mini_phone.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-# Inherit mini common Lineage stuff
-$(call inherit-product, vendor/lineage/config/common_mini.mk)
-
-# Required packages
-PRODUCT_PACKAGES += \
- LatinIME
-
-$(call inherit-product, vendor/lineage/config/telephony.mk)
diff --git a/config/common_mini_tablet_wifionly.mk b/config/common_mini_tablet_wifionly.mk
deleted file mode 100644
index 9d803d2d..00000000
--- a/config/common_mini_tablet_wifionly.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-# Inherit mini common Lineage stuff
-$(call inherit-product, vendor/lineage/config/common_mini.mk)
-
-# Required packages
-PRODUCT_PACKAGES += \
- LatinIME
diff --git a/config/common_mini_tv.mk b/config/common_mini_tv.mk
deleted file mode 100644
index 416fed01..00000000
--- a/config/common_mini_tv.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# This config is for legacy purposes, there are no atv product size variants
-
-# Inherit common atv Lineage stuff
-$(call inherit-product, vendor/lineage/config/common_tv.mk)
diff --git a/config/common_mobile.mk b/config/common_mobile.mk
deleted file mode 100644
index 8424a1cd..00000000
--- a/config/common_mobile.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-# Inherit common mobile Lineage stuff
-$(call inherit-product, vendor/lineage/config/common.mk)
-
-# Default notification/alarm sounds
-PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
- ro.config.notification_sound=Argon.ogg \
- ro.config.alarm_alert=Hassium.ogg
-
-ifneq ($(TARGET_BUILD_VARIANT),user)
-# Thank you, please drive thru!
-PRODUCT_SYSTEM_DEFAULT_PROPERTIES += persist.sys.dun.override=0
-endif
-
-# Optional packages
-PRODUCT_PACKAGES += \
- LiveWallpapersPicker \
- PhotoTable
-
-# Custom Lineage packages
-PRODUCT_PACKAGES += \
- AudioFX \
- Backgrounds \
- Eleven \
- ExactCalculator \
- Jelly \
- LockClock \
- TrebuchetQuickStep \
- WeatherProvider
-
-# Exchange support
-PRODUCT_PACKAGES += \
- Exchange2
-
-# Berry styles
-PRODUCT_PACKAGES += \
- LineageBlackTheme \
- LineageDarkTheme \
- LineageBlackAccent \
- LineageBlueAccent \
- LineageBrownAccent \
- LineageCyanAccent \
- LineageGreenAccent \
- LineageOrangeAccent \
- LineagePinkAccent \
- LineagePurpleAccent \
- LineageRedAccent \
- LineageYellowAccent
-
-# Charger
-PRODUCT_PACKAGES += \
- charger_res_images
-
-# Custom off-mode charger
-ifeq ($(WITH_LINEAGE_CHARGER),true)
-PRODUCT_PACKAGES += \
- lineage_charger_res_images \
- font_log.png \
- libhealthd.lineage
-endif
-
-# Media
-PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
- media.recorder.show_manufacturer_and_model=true
diff --git a/config/common_tv.mk b/config/common_tv.mk
deleted file mode 100644
index 2a431681..00000000
--- a/config/common_tv.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# Inherit common Lineage stuff
-$(call inherit-product, vendor/lineage/config/common.mk)
-
-# Inherit Lineage atv device tree
-$(call inherit-product, device/lineage/atv/lineage_atv.mk)
-
-# Google source built packages
-PRODUCT_PACKAGES += \
- LeanbackIME
-
-# Custom Lineage packages
-PRODUCT_PACKAGES += \
- AppDrawer \
- LineageCustomizer
-
-DEVICE_PACKAGE_OVERLAYS += vendor/lineage/overlay/tv
diff --git a/config/data_only.mk b/config/data_only.mk
deleted file mode 100644
index e45a2d5c..00000000
--- a/config/data_only.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-# World APN list
-PRODUCT_PACKAGES += \
- apns-conf.xml
-
-# Telephony packages
-PRODUCT_PACKAGES += \
- Stk \
- CellBroadcastReceiver
diff --git a/config/lineage_audio.mk b/config/lineage_audio.mk
deleted file mode 100644
index 5d97102e..00000000
--- a/config/lineage_audio.mk
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# Lineage Audio Files
-#
-
-ALARM_PATH := vendor/lineage/prebuilt/common/media/audio/alarms
-NOTIFICATION_PATH := vendor/lineage/prebuilt/common/media/audio/notifications
-RINGTONE_PATH := vendor/lineage/prebuilt/common/media/audio/ringtones
-
-# Alarms
-PRODUCT_COPY_FILES += \
- $(ALARM_PATH)/CyanAlarm.ogg:system/media/audio/alarms/CyanAlarm.ogg \
- $(ALARM_PATH)/NuclearLaunch.ogg:system/media/audio/alarms/NuclearLaunch.ogg
-
-# Notifications
-PRODUCT_COPY_FILES += \
- $(NOTIFICATION_PATH)/CyanDoink.ogg:system/media/audio/notifications/CyanDoink.ogg \
- $(NOTIFICATION_PATH)/CyanMail.ogg:system/media/audio/notifications/CyanMail.ogg \
- $(NOTIFICATION_PATH)/CyanMessage.ogg:system/media/audio/notifications/CyanMessage.ogg \
- $(NOTIFICATION_PATH)/Laser.ogg:system/media/audio/notifications/Laser.ogg \
- $(NOTIFICATION_PATH)/Naughty.ogg:system/media/audio/notifications/Naughty.ogg \
- $(NOTIFICATION_PATH)/Pong.ogg:system/media/audio/notifications/Pong.ogg \
- $(NOTIFICATION_PATH)/Rang.ogg:system/media/audio/notifications/Rang.ogg \
- $(NOTIFICATION_PATH)/Stone.ogg:system/media/audio/notifications/Stone.ogg
-
-# Ringtones
-ifeq ($(TARGET_NEEDS_BOOSTED_SOUNDS),true)
-PRODUCT_COPY_FILES += \
- $(RINGTONE_PATH)/boosted/Boxbeat.ogg:system/media/audio/ringtones/Boxbeat.ogg \
- $(RINGTONE_PATH)/boosted/CyanTone.ogg:system/media/audio/ringtones/CyanTone.ogg \
- $(RINGTONE_PATH)/boosted/Highscore.ogg:system/media/audio/ringtones/Highscore.ogg \
- $(RINGTONE_PATH)/boosted/Lyon.ogg:system/media/audio/ringtones/Lyon.ogg \
- $(RINGTONE_PATH)/boosted/Rockin.ogg:system/media/audio/ringtones/Rockin.ogg
-else
-PRODUCT_COPY_FILES += \
- $(RINGTONE_PATH)/Boxbeat.ogg:system/media/audio/ringtones/Boxbeat.ogg \
- $(RINGTONE_PATH)/CyanTone.ogg:system/media/audio/ringtones/CyanTone.ogg \
- $(RINGTONE_PATH)/Highscore.ogg:system/media/audio/ringtones/Highscore.ogg \
- $(RINGTONE_PATH)/Lyon.ogg:system/media/audio/ringtones/Lyon.ogg \
- $(RINGTONE_PATH)/Rockin.ogg:system/media/audio/ringtones/Rockin.ogg \
- $(RINGTONE_PATH)/Sheep.mp3:system/media/audio/ringtones/Sheep.mp3 \
- $(RINGTONE_PATH)/Yukaay.ogg:system/media/audio/ringtones/Yukaay.ogg
-endif
diff --git a/config/lineage_sdk_common.mk b/config/lineage_sdk_common.mk
deleted file mode 100644
index cce8d931..00000000
--- a/config/lineage_sdk_common.mk
+++ /dev/null
@@ -1,42 +0,0 @@
-# Permissions for lineage sdk services
-PRODUCT_COPY_FILES += \
- vendor/lineage/config/permissions/org.lineageos.audio.xml:system/etc/permissions/org.lineageos.audio.xml \
- vendor/lineage/config/permissions/org.lineageos.livedisplay.xml:system/etc/permissions/org.lineageos.livedisplay.xml \
- vendor/lineage/config/permissions/org.lineageos.performance.xml:system/etc/permissions/org.lineageos.performance.xml \
- vendor/lineage/config/permissions/org.lineageos.profiles.xml:system/etc/permissions/org.lineageos.profiles.xml \
- vendor/lineage/config/permissions/org.lineageos.settings.xml:system/etc/permissions/org.lineageos.settings.xml \
- vendor/lineage/config/permissions/org.lineageos.style.xml:system/etc/permissions/org.lineageos.style.xml \
- vendor/lineage/config/permissions/org.lineageos.trust.xml:system/etc/permissions/org.lineageos.trust.xml \
- vendor/lineage/config/permissions/org.lineageos.weather.xml:system/etc/permissions/org.lineageos.weather.xml
-
-# Lineage Platform Library
-PRODUCT_PACKAGES += \
- org.lineageos.platform-res \
- org.lineageos.platform \
- org.lineageos.platform.xml
-
-# Lineage Hardware Abstraction Framework
-PRODUCT_PACKAGES += \
- org.lineageos.hardware \
- org.lineageos.hardware.xml
-
-# JNI Libraries
-PRODUCT_PACKAGES += \
- liblineage-sdk_platform_jni
-
-ifndef LINEAGE_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
- # is a single integer that increases monotonically as updates to
- # 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).
- LINEAGE_PLATFORM_SDK_VERSION := 9
-endif
-
-ifndef LINEAGE_PLATFORM_REV
- # For internal SDK revisions that are hotfixed/patched
- # Reset after each LINEAGE_PLATFORM_SDK_VERSION release
- # If you are doing a release and this is NOT 0, you are almost certainly doing it wrong
- LINEAGE_PLATFORM_REV := 0
-endif
diff --git a/config/partner_gms.mk b/config/partner_gms.mk
deleted file mode 100644
index 273aaa68..00000000
--- a/config/partner_gms.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-ifeq ($(WITH_GMS),true)
-ifeq ($(PRODUCT_IS_ATV),true)
-$(call inherit-product-if-exists, vendor/partner_gms-tv/products/gms.mk)
-else
-ifeq ($(WITH_GMS_FI),true)
-$(call inherit-product-if-exists, vendor/partner_gms/products/fi.mk)
-else
-ifeq ($(WITH_GMS_MINIMAL),true)
-$(call inherit-product-if-exists, vendor/partner_gms/products/gms_minimal.mk)
-else
-$(call inherit-product-if-exists, vendor/partner_gms/products/gms.mk)
-endif
-endif
-endif
-endif
diff --git a/config/permissions/backup.xml b/config/permissions/backup.xml
deleted file mode 100644
index c335b298..00000000
--- a/config/permissions/backup.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2016 The CyanogenMod Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<config>
- <!-- Whitelist of what components are permitted as backup data transports. The
- 'service' attribute here is a flattened ComponentName string. -->
- <backup-transport-whitelisted-service
- service="android/com.android.internal.backup.LocalTransportService" />
- <backup-transport-whitelisted-service
- service="com.google.android.gms/.backup.BackupTransportService" />
- <backup-transport-whitelisted-service
- service="com.google.android.gms/.backup.component.D2dTransportService" />
-</config> \ No newline at end of file
diff --git a/config/permissions/lineage-hiddenapi-package-whitelist.xml b/config/permissions/lineage-hiddenapi-package-whitelist.xml
deleted file mode 100644
index f1cd1fa1..00000000
--- a/config/permissions/lineage-hiddenapi-package-whitelist.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2018 The LineageOS 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 XML file declares which system apps should be exempted from the hidden API blacklisting, i.e.
-which apps should be allowed to access the entire private API. Only apps NOT signed with the
-platform cert need to be included, as apps signed with the platform cert are exempted by default.
--->
-
-<config>
- <hidden-api-whitelisted-app package="org.lineageos.jelly" />
-</config>
diff --git a/config/permissions/lineage-power-whitelist.xml b/config/permissions/lineage-power-whitelist.xml
deleted file mode 100644
index b6545ba0..00000000
--- a/config/permissions/lineage-power-whitelist.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2019 The LineageOS 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>
- <allow-in-power-save package="com.android.deskclock" />
- <allow-in-power-save package="com.android.messaging" />
-</config>
diff --git a/config/permissions/lineage-sysconfig.xml b/config/permissions/lineage-sysconfig.xml
deleted file mode 100644
index 3330b1b8..00000000
--- a/config/permissions/lineage-sysconfig.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017-2018 The LineageOS 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>
-
- <!-- Broadcast actions that are currently exempted from O+ background
- delivery restrictions. -->
- <allow-implicit-broadcast action="android.intent.action.CAMERA_BUTTON" />
- <allow-implicit-broadcast action="lineageos.intent.action.INITIALIZE_LINEAGE_HARDWARE" />
- <allow-implicit-broadcast action="lineageos.intent.action.LID_STATE_CHANGED" />
-
-</config>
diff --git a/config/permissions/org.lineageos.android.xml b/config/permissions/org.lineageos.android.xml
deleted file mode 100644
index 970658d3..00000000
--- a/config/permissions/org.lineageos.android.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 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 feature shows that this is LineageOS -->
-<permissions>
- <feature name="org.lineageos.android" />
-</permissions>
-
diff --git a/config/permissions/org.lineageos.audio.xml b/config/permissions/org.lineageos.audio.xml
deleted file mode 100644
index f5f5f4db..00000000
--- a/config/permissions/org.lineageos.audio.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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 lineage 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.lineageos.audio" />
-</permissions>
diff --git a/config/permissions/org.lineageos.livedisplay.xml b/config/permissions/org.lineageos.livedisplay.xml
deleted file mode 100644
index 22adee51..00000000
--- a/config/permissions/org.lineageos.livedisplay.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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 lineage 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.lineageos.livedisplay" />
-</permissions>
diff --git a/config/permissions/org.lineageos.performance.xml b/config/permissions/org.lineageos.performance.xml
deleted file mode 100644
index 9468b6d3..00000000
--- a/config/permissions/org.lineageos.performance.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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 lineage 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.lineageos.performance" />
-</permissions>
diff --git a/config/permissions/org.lineageos.profiles.xml b/config/permissions/org.lineageos.profiles.xml
deleted file mode 100644
index 2e55912f..00000000
--- a/config/permissions/org.lineageos.profiles.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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 lineage 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.lineageos.profiles" />
-</permissions>
diff --git a/config/permissions/org.lineageos.settings.xml b/config/permissions/org.lineageos.settings.xml
deleted file mode 100644
index f9dc00fc..00000000
--- a/config/permissions/org.lineageos.settings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 The LineageOS 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.lineageos.settings" />
-</permissions>
diff --git a/config/permissions/org.lineageos.style.xml b/config/permissions/org.lineageos.style.xml
deleted file mode 100644
index d039fce0..00000000
--- a/config/permissions/org.lineageos.style.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 The LineageOS 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 StyleInterfaceService declared as
- part of the external lineage 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.lineageos.style" />
-</permissions>
diff --git a/config/permissions/org.lineageos.trust.xml b/config/permissions/org.lineageos.trust.xml
deleted file mode 100644
index 12b5b766..00000000
--- a/config/permissions/org.lineageos.trust.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 The LineageOS 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 TrustInterfaceService declared as
- part of the external lineage 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.lineageos.trust" />
-</permissions>
diff --git a/config/permissions/org.lineageos.weather.xml b/config/permissions/org.lineageos.weather.xml
deleted file mode 100644
index d8d012a5..00000000
--- a/config/permissions/org.lineageos.weather.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?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.lineageos.weather" />
-</permissions>
diff --git a/config/permissions/privapp-permissions-cm-legacy.xml b/config/permissions/privapp-permissions-cm-legacy.xml
deleted file mode 100644
index e1157cac..00000000
--- a/config/permissions/privapp-permissions-cm-legacy.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2019 The LineageOS 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>
- <privapp-permissions package="org.cyanogenmod.cmsettings">
- <permission name="android.permission.MANAGE_USERS"/>
- </privapp-permissions>
-
- <privapp-permissions package="com.cyanogenmod.eleven">
- <permission name="android.permission.WRITE_MEDIA_STORAGE"/>
- </privapp-permissions>
-
- <privapp-permissions package="org.cyanogenmod.snap">
- <permission name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
- <permission name="android.permission.PREVENT_POWER_KEY"/>
- <permission name="android.permission.WRITE_MEDIA_STORAGE"/>
- </privapp-permissions>
-
-</permissions>
diff --git a/config/permissions/privapp-permissions-lineage.xml b/config/permissions/privapp-permissions-lineage.xml
deleted file mode 100644
index a53eb30d..00000000
--- a/config/permissions/privapp-permissions-lineage.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017-2019 The LineageOS 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>
- <privapp-permissions package="com.android.camera2">
- <permission name="android.permission.BIND_WALLPAPER"/>
- <permission name="android.permission.PREVENT_POWER_KEY"/>
- </privapp-permissions>
-
- <!-- Additional permissions on top of privapp-permissions-platform.xml -->
- <privapp-permissions package="com.android.dialer">
- <permission name="android.permission.CAPTURE_AUDIO_OUTPUT"/>
- </privapp-permissions>
-
- <privapp-permissions package="com.android.fmradio">
- <permission name="android.permission.ACCESS_FM_RADIO"/>
- <permission name="android.permission.MODIFY_AUDIO_ROUTING"/>
- <permission name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
- </privapp-permissions>
-
- <!-- Additional permissions on top of privapp-permissions-platform.xml -->
- <privapp-permissions package="com.android.launcher3">
- <permission name="android.permission.MANAGE_ACTIVITY_STACKS"/>
- <permission name="android.permission.STATUS_BAR"/>
- </privapp-permissions>
-
- <!-- Additional permissions on top of privapp-permissions-platform.xml -->
- <privapp-permissions package="com.android.systemui">
- <permission name="android.permission.MODIFY_DAY_NIGHT_MODE"/>
- </privapp-permissions>
-
- <privapp-permissions package="org.lineageos.audiofx">
- <permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
- <permission name="android.permission.MEDIA_CONTENT_CONTROL"/>
- <permission name="android.permission.MODIFY_AUDIO_ROUTING"/>
- </privapp-permissions>
-
- <privapp-permissions package="org.lineageos.eleven">
- <permission name="android.permission.WRITE_MEDIA_STORAGE"/>
- </privapp-permissions>
-
- <privapp-permissions package="org.lineageos.flipflap">
- <permission name="android.permission.ACCESS_NOTIFICATIONS"/>
- <permission name="android.permission.MODIFY_PHONE_STATE"/>
- <permission name="android.permission.WRITE_SECURE_SETTINGS"/>
- </privapp-permissions>
-
- <privapp-permissions package="org.lineageos.lineageparts">
- <permission name="android.permission.CHANGE_CONFIGURATION"/>
- <permission name="android.permission.CHANGE_OVERLAY_PACKAGES"/>
- <permission name="android.permission.READ_SEARCH_INDEXABLES"/>
- <permission name="android.permission.WRITE_MEDIA_STORAGE"/>
- <permission name="android.permission.WRITE_SECURE_SETTINGS"/>
- </privapp-permissions>
-
- <privapp-permissions package="org.lineageos.lineagesettings">
- <permission name="android.permission.MANAGE_USERS"/>
- </privapp-permissions>
-
- <privapp-permissions package="org.lineageos.recorder">
- <permission name="android.permission.CAPTURE_SECURE_VIDEO_OUTPUT"/>
- <permission name="android.permission.CAPTURE_VIDEO_OUTPUT"/>
- </privapp-permissions>
-
- <privapp-permissions package="org.lineageos.setupwizard">
- <permission name="android.permission.BACKUP"/>
- <permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
- <permission name="android.permission.CHANGE_CONFIGURATION"/>
- <permission name="android.permission.GET_ACCOUNTS_PRIVILEGED"/>
- <permission name="android.permission.INTERACT_ACROSS_USERS"/>
- <permission name="android.permission.MANAGE_USERS"/>
- <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
- <permission name="android.permission.SET_TIME"/>
- <permission name="android.permission.SET_TIME_ZONE"/>
- <permission name="android.permission.STATUS_BAR"/>
- <permission name="android.permission.WRITE_SECURE_SETTINGS"/>
- </privapp-permissions>
-
- <privapp-permissions package="org.lineageos.snap">
- <permission name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
- <permission name="android.permission.PREVENT_POWER_KEY"/>
- <permission name="android.permission.WRITE_MEDIA_STORAGE"/>
- </privapp-permissions>
-
- <privapp-permissions package="org.lineageos.updater">
- <permission name="android.permission.ACCESS_CACHE_FILESYSTEM"/>
- <permission name="android.permission.REBOOT"/>
- <permission name="android.permission.RECOVERY"/>
- </privapp-permissions>
-
-</permissions>
diff --git a/config/permissions/vendor.lineage.biometrics.fingerprint.inscreen.xml b/config/permissions/vendor.lineage.biometrics.fingerprint.inscreen.xml
deleted file mode 100644
index 2728e39a..00000000
--- a/config/permissions/vendor.lineage.biometrics.fingerprint.inscreen.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2019 The LineageOS 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="vendor.lineage.biometrics.fingerprint.inscreen" />
-</permissions>
diff --git a/config/telephony.mk b/config/telephony.mk
deleted file mode 100644
index 069e82a1..00000000
--- a/config/telephony.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-# Sensitive Phone Numbers list
-PRODUCT_COPY_FILES += \
- vendor/lineage/prebuilt/common/etc/sensitive_pn.xml:system/etc/sensitive_pn.xml
-
-# World APN list
-PRODUCT_PACKAGES += \
- apns-conf.xml
-
-# Telephony packages
-PRODUCT_PACKAGES += \
- messaging \
- Stk \
- CellBroadcastReceiver
-
-# Default ringtone
-PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
- ro.config.ringtone=Orion.ogg
-
-# Tethering - allow without requiring a provisioning app
-# (for devices that check this)
-PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
- net.tethering.noprovisioning=true
diff --git a/config/twrp.mk b/config/twrp.mk
deleted file mode 100644
index 6f755401..00000000
--- a/config/twrp.mk
+++ /dev/null
@@ -1 +0,0 @@
-RECOVERY_VARIANT := twrp
diff --git a/libbfqio/Android.bp b/libbfqio/Android.bp
deleted file mode 100644
index d9a7edbe..00000000
--- a/libbfqio/Android.bp
+++ /dev/null
@@ -1,44 +0,0 @@
-//
-// Copyright (C) 2017-2019 The LineageOS 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.
-//
-
-cc_library_headers {
- name: "libbfqio_headers",
- vendor_available: true,
- export_include_dirs: ["include"],
-}
-
-cc_library {
- name: "libbfqio",
- vendor_available: true,
- srcs: [
- "bfqio.c",
- ],
-
- shared_libs: [
- "libcutils",
- "liblog",
- ],
- header_libs: [
- "libbfqio_headers",
- ],
- export_header_lib_headers: ["libbfqio_headers"],
-
- cflags: [
- "-Werror",
- "-Wall",
- "-Wextra",
- ],
-}
diff --git a/libbfqio/bfqio.c b/libbfqio/bfqio.c
deleted file mode 100644
index 0a4a21d3..00000000
--- a/libbfqio/bfqio.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2017 The LineageOS 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.
- */
-
-#define LOG_TAG "bfqio"
-
-#include <errno.h>
-#include <fcntl.h>
-#include <cutils/iosched_policy.h>
-#include <log/log.h>
-#include <pthread.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-static int __rtio_cgroup_supported = -1;
-static pthread_once_t __rtio_init_once = PTHREAD_ONCE_INIT;
-
-static void __initialize_rtio(void) {
- if (!access("/dev/bfqio/tasks", W_OK) || !access("/dev/bfqio/rt-display/tasks", W_OK)) {
- __rtio_cgroup_supported = 1;
- } else {
- __rtio_cgroup_supported = 0;
- }
-}
-
-int android_set_rt_ioprio(int tid, int rt) {
- int fd = -1, rc = -1;
-
- pthread_once(&__rtio_init_once, __initialize_rtio);
- if (__rtio_cgroup_supported != 1) {
- return -1;
- }
-
- if (rt) {
- fd = open("/dev/bfqio/rt-display/tasks", O_WRONLY | O_CLOEXEC);
- } else {
- fd = open("/dev/bfqio/tasks", O_WRONLY | O_CLOEXEC);
- }
-
- if (fd < 0) {
- return -1;
- }
-
-#ifdef HAVE_GETTID
- if (tid == 0) {
- tid = gettid();
- }
-#endif
-
- // specialized itoa -- works for tid > 0
- char text[22];
- char *end = text + sizeof(text) - 1;
- char *ptr = end;
- *ptr = '\0';
- while (tid > 0) {
- *--ptr = '0' + (tid % 10);
- tid = tid / 10;
- }
-
- rc = write(fd, ptr, end - ptr);
- if (rc < 0) {
- /*
- * If the thread is in the process of exiting,
- * don't flag an error
- */
- if (errno == ESRCH) {
- rc = 0;
- } else {
- SLOGV("android_set_rt_ioprio failed to write '%s' (%s); fd=%d\n",
- ptr, strerror(errno), fd);
- }
- }
-
- close(fd);
- return rc;
-}
diff --git a/libbfqio/include/bfqio/bfqio.h b/libbfqio/include/bfqio/bfqio.h
deleted file mode 100644
index 14392d94..00000000
--- a/libbfqio/include/bfqio/bfqio.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2017 The LineageOS 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.
- */
-
-#pragma once
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int android_set_rt_ioprio(int pid, int rt);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/overlay/common/frameworks/base/core/res/res/drawable-hdpi/default_wallpaper.png b/overlay/common/frameworks/base/core/res/res/drawable-hdpi/default_wallpaper.png
deleted file mode 100644
index 7d034789..00000000
--- a/overlay/common/frameworks/base/core/res/res/drawable-hdpi/default_wallpaper.png
+++ /dev/null
Binary files differ
diff --git a/overlay/common/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.png b/overlay/common/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.png
deleted file mode 100644
index 7259cc4b..00000000
--- a/overlay/common/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.png
+++ /dev/null
Binary files differ
diff --git a/overlay/common/frameworks/base/core/res/res/drawable-nodpi/stat_sys_adb.xml b/overlay/common/frameworks/base/core/res/res/drawable-nodpi/stat_sys_adb.xml
deleted file mode 100644
index 549d42f3..00000000
--- a/overlay/common/frameworks/base/core/res/res/drawable-nodpi/stat_sys_adb.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--
- Copyright (C) 2017 The LineageOS 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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="24dp"
- android:height="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path
- android:fillColor="#FFFFFFFF"
- android:pathData="M12,6 C15.3,6,18,8.7,18,12 S15.3,18,12,18 S6,15.3,6,12 S8.7,6,12,6 M12,4
-C7.6,4,4,7.6,4,12 S7.6,20,12,20 S20,16.4,20,12 S16.4,4,12,4 Z M12,9
-C10.3,9,9,10.3,9,12 S10.3,15,12,15 S15,13.7,15,12 S13.7,9,12,9 Z" />
-</vector>
diff --git a/overlay/common/frameworks/base/core/res/res/drawable-sw600dp-nodpi/default_wallpaper.png b/overlay/common/frameworks/base/core/res/res/drawable-sw600dp-nodpi/default_wallpaper.png
deleted file mode 100644
index b37f4379..00000000
--- a/overlay/common/frameworks/base/core/res/res/drawable-sw600dp-nodpi/default_wallpaper.png
+++ /dev/null
Binary files differ
diff --git a/overlay/common/frameworks/base/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.png b/overlay/common/frameworks/base/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.png
deleted file mode 100644
index b37f4379..00000000
--- a/overlay/common/frameworks/base/core/res/res/drawable-sw720dp-nodpi/default_wallpaper.png
+++ /dev/null
Binary files differ
diff --git a/overlay/common/frameworks/base/core/res/res/drawable-xhdpi/default_wallpaper.png b/overlay/common/frameworks/base/core/res/res/drawable-xhdpi/default_wallpaper.png
deleted file mode 100644
index e09990d7..00000000
--- a/overlay/common/frameworks/base/core/res/res/drawable-xhdpi/default_wallpaper.png
+++ /dev/null
Binary files differ
diff --git a/overlay/common/frameworks/base/core/res/res/drawable-xxhdpi/default_wallpaper.png b/overlay/common/frameworks/base/core/res/res/drawable-xxhdpi/default_wallpaper.png
deleted file mode 100644
index b37f4379..00000000
--- a/overlay/common/frameworks/base/core/res/res/drawable-xxhdpi/default_wallpaper.png
+++ /dev/null
Binary files differ
diff --git a/overlay/common/frameworks/base/core/res/res/drawable-xxxhdpi/default_wallpaper.png b/overlay/common/frameworks/base/core/res/res/drawable-xxxhdpi/default_wallpaper.png
deleted file mode 100644
index 734bfa65..00000000
--- a/overlay/common/frameworks/base/core/res/res/drawable-xxxhdpi/default_wallpaper.png
+++ /dev/null
Binary files differ
diff --git a/overlay/common/frameworks/base/core/res/res/values-mcc234-mnc02/config.xml b/overlay/common/frameworks/base/core/res/res/values-mcc234-mnc02/config.xml
deleted file mode 100644
index e729cf4d..00000000
--- a/overlay/common/frameworks/base/core/res/res/values-mcc234-mnc02/config.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 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>
- <!-- Configures the voicemail number for this MCC/MNC pair //-->
- <string-array translatable="false" name="config_default_vm_number">
- <item>901</item>
- </string-array>
-</resources>
diff --git a/overlay/common/frameworks/base/core/res/res/values-mcc234-mnc10/config.xml b/overlay/common/frameworks/base/core/res/res/values-mcc234-mnc10/config.xml
deleted file mode 100644
index e729cf4d..00000000
--- a/overlay/common/frameworks/base/core/res/res/values-mcc234-mnc10/config.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 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>
- <!-- Configures the voicemail number for this MCC/MNC pair //-->
- <string-array translatable="false" name="config_default_vm_number">
- <item>901</item>
- </string-array>
-</resources>
diff --git a/overlay/common/frameworks/base/core/res/res/values-mcc234-mnc11/config.xml b/overlay/common/frameworks/base/core/res/res/values-mcc234-mnc11/config.xml
deleted file mode 100644
index e729cf4d..00000000
--- a/overlay/common/frameworks/base/core/res/res/values-mcc234-mnc11/config.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 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>
- <!-- Configures the voicemail number for this MCC/MNC pair //-->
- <string-array translatable="false" name="config_default_vm_number">
- <item>901</item>
- </string-array>
-</resources>
diff --git a/overlay/common/frameworks/base/core/res/res/values-mcc268-mnc06/config.xml b/overlay/common/frameworks/base/core/res/res/values-mcc268-mnc06/config.xml
deleted file mode 100644
index 238599c1..00000000
--- a/overlay/common/frameworks/base/core/res/res/values-mcc268-mnc06/config.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 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>
- <!-- Configures the voicemail number for this MCC/MNC pair //-->
- <string-array translatable="false" name="config_default_vm_number">
- <item>200</item>
- </string-array>
-</resources>
diff --git a/overlay/common/frameworks/base/core/res/res/values-mcc440-mnc20/config.xml b/overlay/common/frameworks/base/core/res/res/values-mcc440-mnc20/config.xml
deleted file mode 100644
index 4eb38e41..00000000
--- a/overlay/common/frameworks/base/core/res/res/values-mcc440-mnc20/config.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2013 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.
--->
-
-<!-- These resources are around just to allow their values to be customized
- for different hardware and product builds. -->
-<resources>
- <!-- SoftBank maintains a MMS UserAgent whitelist, we must use one of the white-listed strings to be able to send/receive -->
- <string name="config_mms_user_agent">Nexus5</string>
- <string name="config_mms_user_agent_profile_url">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
-</resources>
diff --git a/overlay/common/frameworks/base/core/res/res/values-mcc460/config.xml b/overlay/common/frameworks/base/core/res/res/values-mcc460/config.xml
deleted file mode 100644
index 6a9b2088..00000000
--- a/overlay/common/frameworks/base/core/res/res/values-mcc460/config.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2018, The LineageOS Project
-** Copyright 2018-2019, The MoKee 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.
-*/
--->
-
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- Remote server that can provide NTP responses. -->
- <string translatable="false" name="config_ntpServer">ntp.ntsc.ac.cn</string>
-</resources>
diff --git a/overlay/common/frameworks/base/core/res/res/values/colors.xml b/overlay/common/frameworks/base/core/res/res/values/colors.xml
deleted file mode 100644
index 27fd690c..00000000
--- a/overlay/common/frameworks/base/core/res/res/values/colors.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (c) 2018, The LineageOS 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>
- <color name="accent_device_default_700">#167C80</color>
- <color name="accent_device_default_dark">#167C80</color>
- <color name="accent_device_default_light">#167C80</color>
- <color name="material_deep_teal_200">#167C80</color>
- <color name="material_deep_teal_500">#167C80</color>
-</resources>
diff --git a/overlay/common/frameworks/base/core/res/res/values/config.xml b/overlay/common/frameworks/base/core/res/res/values/config.xml
deleted file mode 100644
index 51237257..00000000
--- a/overlay/common/frameworks/base/core/res/res/values/config.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2013 The CyanogenMod Project
- (C) 2017 The LineageOS 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_locationProviderPackageNames" translatable="false">
- <!-- The Google provider -->
- <item>com.google.android.gms</item>
- <!-- The standard AOSP fused location provider -->
- <item>com.android.location.fused</item>
- </string-array>
-
- <bool name="config_cellBroadcastAppLinks">true</bool>
-
- <!-- Disable stock OTA components if installed -->
- <string-array name="config_globallyDisabledComponents" translatable="false">
- <item>com.google.android.gsf/com.google.android.gsf.update.SystemUpdateActivity</item>
- <item>com.google.android.gsf/com.google.android.gsf.update.SystemUpdateService$Receiver</item>
- <item>com.google.android.gsf/com.google.android.gsf.update.SystemUpdateService$SecretCodeReceiver</item>
- <item>com.google.android.gsf/com.google.android.gsf.update.SystemUpdateServiceReceiver</item>
- <item>com.google.android.gms/com.google.android.gms.update.SystemUpdateActivity</item>
- <item>com.google.android.gms/com.google.android.gms.update.SystemUpdateService$Receiver</item>
- <item>com.google.android.gms/com.google.android.gms.update.SystemUpdateService$ActiveReceiver</item>
- <item>com.google.android.gms/com.google.android.gms.update.SystemUpdateService$SecretCodeReceiver</item>
- <item>com.google.android.gms/com.google.android.gms.update.SystemUpdateServiceReceiver</item>
- <item>com.google.android.setupwizard/com.google.android.setupwizard.time.DateTimeCheck</item>
- </string-array>
-
- <!-- Force enabling of some services that could have been previously disabled -->
- <string-array name="config_forceEnabledComponents" translatable="false">
- <item>com.google.android.gsf/com.google.android.gsf.update.SystemUpdateService</item>
- <item>com.google.android.gms/com.google.android.gms.update.SystemUpdateService</item>
- </string-array>
-
- <string name="config_mms_user_agent">LineageOS</string>
- <string name="config_mms_user_agent_profile_url">http://www.google.com/oha/rdf/ua-profile-kila.xml</string>
-
- <!-- Enable lockscreen rotation by default -->
- <bool name="config_enableLockScreenRotation">true</bool>
-
- <!-- Set this to true to enable the platform's auto-power-save modes like doze and
- app standby. These are not enabled by default because they require a standard
- cloud-to-device messaging service for apps to interact correctly with the modes
- (such as to be able to deliver an instant message to the device even when it is
- dozing). This should be enabled if you have such services and expect apps to
- correctly use them when installed on your device. Otherwise, keep this disabled
- so that applications can still use their own mechanisms. -->
- <bool name="config_enableAutoPowerModes">true</bool>
-
- <!-- If this is true, long press on power button will be available from a
- non-interactive state. -->
- <bool name="config_supportLongPressPowerWhenNonInteractive">true</bool>
-
- <!-- Whether Multiuser UI should be shown -->
- <bool name="config_enableMultiUserUI">true</bool>
-
- <!-- Maximum number of supported users -->
- <integer name="config_multiuserMaximumUsers">4</integer>
-
- <!-- Flag indicating which package name can access the persistent data partition -->
- <string name="config_persistentDataPackageName" translatable="false">com.google.android.gms</string>
-
- <!-- Set icon mask to circle -->
- <string name="config_icon_mask" translatable="false">"M50 0A50 50,0,1,1,50 100A50 50,0,1,1,50 0"</string>
-
- <!-- Whether action menu items should be displayed in ALLCAPS or not.
- Defaults to true. If this is not appropriate for specific locales
- it should be disabled in that locale's resources. -->
- <bool name="config_buttonTextAllCaps">false</bool>
-
- <!-- Flag indicating whether round icons should be parsed from the application manifest. -->
- <bool name="config_useRoundIcon">true</bool>
-
- <!-- Whether or not swipe up gesture's opt-in setting is available on this device -->
- <bool name="config_swipe_up_gesture_setting_available">true</bool>
-
- <!-- Whether or not we should show the option to show battery percentage -->
- <bool name="config_battery_percentage_setting_available">false</bool>
-
- <!-- When true, the tethering upstream network follows the current default
- Internet network (except when the current default network is mobile,
- in which case a DUN network will be used if required). -->
- <bool name="config_tether_upstream_automatic">true</bool>
-</resources>
diff --git a/overlay/common/frameworks/base/core/res/res/values/dimens.xml b/overlay/common/frameworks/base/core/res/res/values/dimens.xml
deleted file mode 100644
index fe1baca5..00000000
--- a/overlay/common/frameworks/base/core/res/res/values/dimens.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- * Copyright (c) 2006, 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.
-*/
--->
-<resources>
- <dimen name="config_dialogCornerRadius">8.0dip</dimen>
- <dimen name="config_buttonCornerRadius">4.0dip</dimen>
- <dimen name="config_progressBarCornerRadius">1000.0dip</dimen>
-</resources>
diff --git a/overlay/common/frameworks/base/core/res/res/values/vendor_required_apps_managed_device.xml b/overlay/common/frameworks/base/core/res/res/values/vendor_required_apps_managed_device.xml
deleted file mode 100644
index 37c5f13e..00000000
--- a/overlay/common/frameworks/base/core/res/res/values/vendor_required_apps_managed_device.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/**
- * Copyright (C) 2017 The Android Open Source Project
- * 2019 The LineageOS 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>
- <!-- A list of apps to be retained on the managed device by a particular vendor.
- Takes precedence over the disallowed apps lists. -->
- <string-array translatable="false" name="vendor_required_apps_managed_device">
- <item>com.android.vending</item> <!--­ Google Play -->
- <item>com.google.android.gms</item> <!--­ Required by Play -->
- <item>com.google.android.contacts</item> <!--­ Google Contacts­ -->
- <item>com.android.contacts</item> <!-- AOSP Contacts -->
- <item>com.google.android.googlequicksearchbox</item> <!--­ Google Launcher -->
- <item>com.google.android.launcher</item> <!--­ Google Launcher -->
- <item>com.android.launcher3</item> <!-- AOSP Launcher -->
- <item>com.google.android.dialer</item> <!--­ Google dialer to enable making phone calls -->
- <item>com.android.dialer</item> <!-- AOSP dialer -->
- <item>com.google.android.apps.messaging</item> <!-- Google messaging to enable text messaging -->
- <item>com.android.messaging</item> <!-- AOSP messaging -->
- <item>com.google.android.setupwizard</item> <!-- Google SetupWizard -->
- <item>org.lineageos.setupwizard</item> <!-- LineageOS SetupWizard -->
- </string-array>
-</resources>
diff --git a/overlay/common/frameworks/base/core/res/res/values/vendor_required_apps_managed_profile.xml b/overlay/common/frameworks/base/core/res/res/values/vendor_required_apps_managed_profile.xml
deleted file mode 100644
index a27d4bfd..00000000
--- a/overlay/common/frameworks/base/core/res/res/values/vendor_required_apps_managed_profile.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/**
- * Copyright (C) 2017 The Android Open Source Project
- * 2019 The LineageOS 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>
- <!-- A list of apps to be retained in the managed profile by a particular vendor.
- Takes precedence over the disallowed apps lists. -->
- <string-array translatable="false" name="vendor_required_apps_managed_profile">
- <item>com.android.vending</item> <!-- Google Play -->
- <item>com.google.android.gms</item> <!-- Required by Play -->
- <item>com.google.android.contacts</item> <!-- Google Contacts -->
- <item>com.android.contacts</item> <!-- AOSP Contacts -->
- </string-array>
-</resources>
diff --git a/overlay/common/frameworks/base/core/res/res/values/vendor_required_apps_managed_user.xml b/overlay/common/frameworks/base/core/res/res/values/vendor_required_apps_managed_user.xml
deleted file mode 100644
index 0099c83b..00000000
--- a/overlay/common/frameworks/base/core/res/res/values/vendor_required_apps_managed_user.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/**
- * Copyright (C) 2017 The Android Open Source Project
- * 2019 The LineageOS 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>
- <!-- A list of apps to be retained on the managed user by a particular vendor.
- Takes precedence over the disallowed apps lists. -->
- <string-array translatable="false" name="vendor_required_apps_managed_user">
- <item>com.android.vending</item> <!--­ Google Play -->
- <item>com.google.android.gms</item> <!--­ Required by Play -->
- <item>com.google.android.contacts</item> <!--­ Google Contacts­ -->
- <item>com.android.contacts</item> <!-- AOSP Contacts -->
- <item>com.google.android.googlequicksearchbox</item> <!--­ Google Launcher -->
- <item>com.google.android.launcher</item> <!--­ Google Launcher -->
- <item>com.android.launcher3</item> <!-- AOSP Launcher -->
- <item>com.google.android.dialer</item> <!--­ Google dialer to enable making phone calls -->
- <item>com.android.dialer</item> <!-- AOSP dialer -->
- <item>com.google.android.apps.messaging</item> <!-- Google messaging to enable text messaging -->
- <item>com.android.messaging</item> <!-- AOSP messaging -->
- </string-array>
-</resources>
diff --git a/overlay/common/frameworks/base/core/res/res/xml/config_webview_packages.xml b/overlay/common/frameworks/base/core/res/res/xml/config_webview_packages.xml
deleted file mode 100644
index e05f4aa6..00000000
--- a/overlay/common/frameworks/base/core/res/res/xml/config_webview_packages.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?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.
--->
-
-<webviewproviders>
-
- <webviewprovider description="Chrome Stable" packageName="com.android.chrome" availableByDefault="true">
- <signature>MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEzMzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtWLgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKkedxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjAsb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/CxURaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJEqO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/Tgt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/yzKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCEyj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1SKMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifKZ0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3WfMBEmh/9iFBDAaTCK</signature>
- </webviewprovider>
- <webviewprovider description="Chrome Beta" packageName="com.chrome.beta">
- <signature>MIIDwzCCAqugAwIBAgIJAOoj9MXoVhH6MA0GCSqGSIb3DQEBBQUAMHgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEUMBIGA1UEAwwLY2hyb21lX2JldGEwHhcNMTYwMjI5MTUxNTIzWhcNNDMwNzE3MTUxNTIzWjB4MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEUMBIGA1UECgwLR29vZ2xlIEluYy4xEDAOBgNVBAsMB0FuZHJvaWQxFDASBgNVBAMMC2Nocm9tZV9iZXRhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo/wW27nRxVqGbFOyXr8jtv2pc2Ke8XMr6Sfs+3JK2licVaAljGFpLtWH4wUdb50w/QQSPALNLSSyuK/94rtp5Jjs4RSJI+whuewV/R6El+mFXBO3Ek5/op4UrOsR91IM4emvS67Ji2u8gp5EmttVgJtllFZCbtZLPmKuTaOkOB+EdWIxrYiHVEEaAcQpEHa9UgWUZ0bMfPj8j3F0w+Ak2ttmTjoFGLaZjuBAYwfdctN1b0sdLT9Lif45kMCb8QwPp0F9/ozs0rrTc+I6vnTS8kfFQfk7GIE4Hgm+cYQEHkIA6gLJxUVWvPZGdulAZw7wPt/neOkazHNZPcV4pYuNLQIDAQABo1AwTjAdBgNVHQ4EFgQU5t7dhcZfOSixRsiJ1E46JhzPlwowHwYDVR0jBBgwFoAU5t7dhcZfOSixRsiJ1E46JhzPlwowDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAZO2jB8P1d8ki3KZILvp27a2VM3DInlp8I8UgG3gh7nBQfTrnZr5M1PL8eFHqX7MEvAiGCMTcrPklEhjtcHK/c7BcdeCWq6oL56UK3JTl33RxJcjmjrz3e3VI6ehRSm1feNAkMD0Nr2RWr2LCYheAEmwTPtluLOJS+i7WhnXJzBtg5UpUFEbdFYenqUbDzya+cUVp0197k7hUTs8/Hxs0wf79o/TZXzTBq9eYQkiITonRN8+5QCBl1XmZKV0IHkzGFES1RP+fTiZpIjZT+W4tasHgs9QTTks4CCpyHBAy+uy7tApe1AxCzihgecCfUN1hWIltKwGZS6EE0bu0OXPzaQ==</signature>
- </webviewprovider>
- <webviewprovider description="Chrome Dev" packageName="com.chrome.dev">
- <signature>MIIDwTCCAqmgAwIBAgIJAOSN+O0cdii5MA0GCSqGSIb3DQEBBQUAMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDETMBEGA1UEAwwKY2hyb21lX2RldjAeFw0xNjAyMjkxNzUwMDdaFw00MzA3MTcxNzUwMDdaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDETMBEGA1UEAwwKY2hyb21lX2RldjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOYPj6Y9rVt8xizSHDYjDEkDfFZAgSiZ9T6tevkQXsFyfaq3Gk3h2qssi29G6cTPJ2VXFKlVB71wSXv5p9/LEcDQPWQiO3Q2cLmgUXxyhJWXI3g96tPAhZQX2q6SC37ZQdiBR/raMO70DAkvCyBGtNplsvutzSE3oZ7LYfzB8vTbe7zCh3fDYSS/7xb3ZVvFqydHS40uVq1qqg1S80Pge7tW3pDGsPMZN7yA4yfmsvA1rbHm9N8t3Rc9hqzh6OxNAAgRB535YcsWL7iF+mpdFILXk3jLYT0nMvMnB83rsdgnRREjlGQYHl2mh8+6CqujsW/eICDq/LR6BYDyqHhk0ECAwEAAaNQME4wHQYDVR0OBBYEFKzsl07JglgpbeYDYGqsgqRDo+01MB8GA1UdIwQYMBaAFKzsl07JglgpbeYDYGqsgqRDo+01MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBACka6SFF6xAcj8L8O6R36++E09DTiGZEjvKT8eIycgcQQ+p1WUmPb6M2EJpN6zvvSE62ussmXdzf8rIyc0JXA8jbViZt62Y39epNENFxPTLN9QzXlT+w8AW73Ka3cnbOuL5EgoDl8fM79WVlARY3X+wB/jGNrkiGIdRm2IZIeAodWgC2mtXMiferyYBKz2/F2bhnU6DwgCbegS8trFjEWviijWdJ+lBdobn7LRc3orZCtHl8UyvRDi7cye3sK9y3BM39k0g20F21wTNHAonnvL6zbuNgpd+UEsVxDpOeWrEdBFN7Md0CI2wnu8eA8ljJD45v0WWMEoxsIi131g5piNM=</signature>
- </webviewprovider>
- <webviewprovider description="Chrome Canary" packageName="com.chrome.canary">
- <signature>MIIDxzCCAq+gAwIBAgIJAML7APITsgV7MA0GCSqGSIb3DQEBBQUAMHoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEWMBQGA1UEAwwNY2hyb21lX2NhbmFyeTAeFw0xNjAyMjkxOTA5MDdaFw00MzA3MTcxOTA5MDdaMHoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEWMBQGA1UEAwwNY2hyb21lX2NhbmFyeTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANXfeAoZlr0ya1HBzIfAz/nLLjpPJeAPvuX5dueaxmiQgv2hNG22acriFuiiJI6TU0t8AIVJD5Ifbc4OOuA0zeFhdzWWGnmTRH6x27WI7bzOKnAqOvv21ZBmE9i8Vo++K13xWdTs3qVn1bn9oUONxFu0wKDzXYZhoj1Jom0RZGjXm16xuPlEuOzMcjiNBDoYuxPAXkMcK/G1gP4P4nAV8Rd/GGIjKRS/SUtcShhoAMOQhs4WIEkUrvEVRwhBDIbpM87oFbCVdBH38r0XS6F6CdhPJsKFhoEfq4c01HZqNmDpCPA8AAcCuSWqmXoTIqs7OqkWgduE2bInbWU7WMaTl+kCAwEAAaNQME4wHQYDVR0OBBYEFB/AsC4iPAqaLoNytNSx29qByI7+MB8GA1UdIwQYMBaAFB/AsC4iPAqaLoNytNSx29qByI7+MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAMb2Td3ro/+MGVnCPAbwBSOZMVLUKGqt6zr8CShW9mtFHnmy29EaWSYYAj1M4+6Vpkq85NsgBEck7rnUjV8A3Q0NKdTys1KRKJqVvQRBN6SwqQenSf/abxQCa8Z+69rh+3BkIU1HLtu5lrMDZwon5H91L5mpORn6vItd20uW132lwSDeUEW2CHslTrodoFuTUcSUlRiq/URfUH3baO1QHXkxpQwrBPKL5deJfcZnxh5MAtAGSQL7gHvayEFlDppETXdDO7vgGTH2dEK2TjKWALbGiKkxSqjRyTNt4/FOj10TqNRdUamj+ydVJgzGQ8bki4Vc6NnKm/r4asusxapkVR4=</signature>
- </webviewprovider>
- <webviewprovider description="Google WebView" packageName="com.google.android.webview" availableByDefault="true">
- <signature>MIIDuzCCAqOgAwIBAgIJANi6DgBQG4ZTMA0GCSqGSIb3DQEBBQUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEQMA4GA1UEAwwHd2VidmlldzAeFw0xNDA4MDgyMzIwMjBaFw00MTEyMjQyMzIwMjBaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEQMA4GA1UEAwwHd2VidmlldzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbtaFX0r5aZJMAbPVMAgK1ZZ29dTn91VsGxXv2hqrQo7IpqEy2JmPvPnoMsSiuTAe+UcQy8oKDQ2aYVSAd1DGIy+nSRyFTt3LSIAdwSBkB1qT4a+OqkpsR6bSNXQXQ18lCQu9gREY3h3QlYBQAyzRxw4hRGlrXAzuSz1Ec4W+6x4nLG5DG61MAMR8ClF9XSqbmGB3kyZ70A0X9OPYYxiMWP1ExaYvpaVqjyZZcrPwr+vtW8oCuGBUtHpBUH3OoG+9s2YMcgLG7vCK9awKDqlPcJSpIAAj6uGs4gORmkqxZRMskLSTWbhP4p+3Ap8jYzTVB6Y1/DMVmYTWRMcPW0macCAwEAAaNQME4wHQYDVR0OBBYEFJ6bAR6/QVm4w9LRSGQiaR5Rhp3TMB8GA1UdIwQYMBaAFJ6bAR6/QVm4w9LRSGQiaR5Rhp3TMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAEQu8QiVxax7/diEiJrgKE1LwdXsIygJK/KnaKdnYEkAQpeu/QmrLiycm+OFbL1qHJIB7OuI/PQBUtcaNSiJSCVgtwtEbZWWIdsynqG/Nf4aGOndXegSQNRH54M05sRHLoeRycPrY7xQlEwGikNFR76+5UdwFBQI3Gn22g6puJnVukQm/wXQ+ajoiS4QclrNlixoDQsZ4STLH4+Wju2wIWKFFArIhVEIlbamq+p6BghuzH3aIz/Fy0YTQKi7SA+0fuNeCaqlSm5pYSt6p5CH89y1Fr+wFc5r3iLRnUwRcy08ESC7bZJnxV3d/YQ5valTxBbzku/dQbXVj/xg69H8l8M</signature>
- </webviewprovider>
-
- <!-- The default WebView implementation -->
- <webviewprovider description="AOSP WebView" packageName="com.android.webview" availableByDefault="true" />
-
-</webviewproviders>
diff --git a/overlay/common/frameworks/base/packages/Keyguard/res/values/config.xml b/overlay/common/frameworks/base/packages/Keyguard/res/values/config.xml
deleted file mode 100644
index 1e69bdaf..00000000
--- a/overlay/common/frameworks/base/packages/Keyguard/res/values/config.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2013 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">
- <!-- default to disabling the menu key. The Lineage setting to
- do this is a no-op unless the below item is true -->
- <bool name="config_disableMenuKeyInLockScreen">true</bool>
-
- <!-- config for showing AM/PM on lock screen in 12hour format -->
- <bool name="config_showAmpm">false</bool>
-</resources>
diff --git a/overlay/common/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/overlay/common/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
deleted file mode 100644
index fd15ab86..00000000
--- a/overlay/common/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/**
- * Copyright (c) 2009, 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.
- */
--->
-<resources>
- <bool name="def_wifi_on">true</bool>
-
- <string name="def_backup_transport">com.google.android.gms/.backup.BackupTransportService</string>
-</resources>
diff --git a/overlay/common/frameworks/base/packages/SystemUI/res/values-sw600dp/config.xml b/overlay/common/frameworks/base/packages/SystemUI/res/values-sw600dp/config.xml
deleted file mode 100644
index eb509505..00000000
--- a/overlay/common/frameworks/base/packages/SystemUI/res/values-sw600dp/config.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2019 The LineageOS 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.
--->
-
-<!-- These resources are around just to allow their values to be customized
- for different hardware and product builds. -->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- Set to true to enable the user switcher on the keyguard. -->
- <bool name="config_keyguardUserSwitcher">false</bool>
-</resources>
diff --git a/overlay/common/frameworks/base/packages/SystemUI/res/values/config.xml b/overlay/common/frameworks/base/packages/SystemUI/res/values/config.xml
deleted file mode 100644
index 363e254b..00000000
--- a/overlay/common/frameworks/base/packages/SystemUI/res/values/config.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2014 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.
--->
-
-<!-- These resources are around just to allow their values to be customized
- for different hardware and product builds. -->
-<resources>
- <!-- Control whether status bar should distinguish HSPA data icon
- from UMTS data icon on devices -->
- <bool name="config_hspa_data_distinguishable">true</bool>
-
- <!-- Should "4G" be shown instead of "LTE" when the network is NETWORK_TYPE_LTE? -->
- <bool name="config_show4GForLTE">false</bool>
-
- <bool name="quick_settings_show_full_alarm">true</bool>
-
- <!-- If true, enable the advance anti-falsing classifier on the lockscreen. On some devices it
- does not work well, particularly with noisy touchscreens. Note that disabling it may
- increase the rate of unintentional unlocks. -->
- <bool name="config_lockscreenAntiFalsingClassifierEnabled">false</bool>
-</resources>
diff --git a/overlay/common/frameworks/base/packages/SystemUI/res/values/dimens.xml b/overlay/common/frameworks/base/packages/SystemUI/res/values/dimens.xml
deleted file mode 100644
index f380aad4..00000000
--- a/overlay/common/frameworks/base/packages/SystemUI/res/values/dimens.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- * Copyright (c) 2006, 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.
-*/
--->
-<resources>
- <dimen name="rounded_corner_content_padding">8dp</dimen>
-</resources>
diff --git a/overlay/common/lineage-sdk/packages/LineageSettingsProvider/res/values/defaults.xml b/overlay/common/lineage-sdk/packages/LineageSettingsProvider/res/values/defaults.xml
deleted file mode 100644
index 56031b7f..00000000
--- a/overlay/common/lineage-sdk/packages/LineageSettingsProvider/res/values/defaults.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2014-2015 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>
- <!-- Defaults for Secure -->
-
- <!-- Default for LineageSettings.Secure.STATS_COLLECTION -->
- <bool name="def_stats_collection">true</bool>
-</resources>
diff --git a/overlay/common/packages/apps/DocumentsUI/res/values/config.xml b/overlay/common/packages/apps/DocumentsUI/res/values/config.xml
deleted file mode 100644
index 3d40342e..00000000
--- a/overlay/common/packages/apps/DocumentsUI/res/values/config.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 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.
--->
-
-<resources>
-
- <!-- Flags setup as productivity oriented in which case Downloads app will be presented
- as Files app. Including showing of the Documents and "advanced" roots. -->
- <bool name="show_documents_root">true</bool>
-
- <!-- Indicates if internal storage is shown as default or not. -->
- <bool name="config_default_show_device_root">true</bool>
-
- <string name="default_root_uri" translatable="false">content://com.android.externalstorage.documents/root/primary</string>
-</resources>
diff --git a/overlay/common/packages/apps/Settings/res/values/bools.xml b/overlay/common/packages/apps/Settings/res/values/bools.xml
deleted file mode 100644
index 2060de12..00000000
--- a/overlay/common/packages/apps/Settings/res/values/bools.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2017 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.
--->
-
-<resources>
- <!-- Whether to show a preference item for mobile plan -->
- <bool name="config_show_mobile_plan">false</bool>
-
- <!-- Whether wallpaper attribution should be shown or not. -->
- <bool name="config_show_wallpaper_attribution">false</bool>
-</resources>
diff --git a/overlay/common/packages/apps/Settings/res/values/config.xml b/overlay/common/packages/apps/Settings/res/values/config.xml
deleted file mode 100644
index 79be7c5d..00000000
--- a/overlay/common/packages/apps/Settings/res/values/config.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright 2016 The ??? 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>
- <!-- When true enable gesture setting. -->
- <bool name="config_gesture_settings_enabled">true</bool>
-
- <!-- If the Storage Manager settings are enabled. -->
- <bool name="config_storage_manager_settings_enabled">true</bool>
-
- <!-- Does the device allow updating the recovery. -->
- <bool name="config_enableRecoveryUpdater">false</bool>
-</resources>
diff --git a/overlay/common/packages/apps/Settings/res/values/dimens.xml b/overlay/common/packages/apps/Settings/res/values/dimens.xml
deleted file mode 100644
index 5c0b800e..00000000
--- a/overlay/common/packages/apps/Settings/res/values/dimens.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2018 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.
--->
-
-<resources>
- <dimen name="search_bar_corner_radius">24.0dip</dimen>
- <dimen name="suggestion_card_corner_radius">8.0dip</dimen>
-</resources>
diff --git a/overlay/common/packages/apps/Settings/res/values/strings.xml b/overlay/common/packages/apps/Settings/res/values/strings.xml
deleted file mode 100644
index 93758ea3..00000000
--- a/overlay/common/packages/apps/Settings/res/values/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2015 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>
- <!-- Help URL, Tap & pay [DO NOT TRANSLATE] -->
- <string name="help_url_nfc_payment" translatable="false">https://support.google.com/wallet/answer/1347934</string>
-
- <!-- Help URL, Fingerprint [DO NOT TRANSLATE] -->
- <string name="help_url_fingerprint" translatable="false">https://support.google.com</string>
-</resources>
-
diff --git a/overlay/common/packages/apps/Trebuchet/res/values/config.xml b/overlay/common/packages/apps/Trebuchet/res/values/config.xml
deleted file mode 100644
index ba160aef..00000000
--- a/overlay/common/packages/apps/Trebuchet/res/values/config.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2013 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.
--->
-<resources>
-
- <!-- Enable backups -->
- <bool name="enable_backup">true</bool>
- <string name="backup_api_key">AEdPqrEAAAAIDoOx_2qXwj5RZmKa0fpkv1aqEldrwBp-pnv6Sg</string>
-
-</resources>
diff --git a/overlay/common/packages/inputmethods/LatinIME/java/res/values/gesture-input.xml b/overlay/common/packages/inputmethods/LatinIME/java/res/values/gesture-input.xml
deleted file mode 100644
index 445a389b..00000000
--- a/overlay/common/packages/inputmethods/LatinIME/java/res/values/gesture-input.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, 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.
-*/
--->
-<resources>
- <bool name="config_gesture_input_enabled_by_build_config">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc204-mnc04/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc204-mnc04/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc204-mnc04/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc00/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc310-mnc00/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc00/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc002/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc310-mnc002/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc002/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc003/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc310-mnc003/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc003/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc004/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc310-mnc004/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc004/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc005/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc310-mnc005/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc005/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc006/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc310-mnc006/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc006/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc012/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc310-mnc012/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc012/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc480/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc310-mnc480/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc480/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc481/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc310-mnc481/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc481/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc483/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc310-mnc483/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc483/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc486/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc310-mnc486/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc486/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc489/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc310-mnc489/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc489/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc99/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc310-mnc99/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc310-mnc99/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc311-mnc480/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc311-mnc480/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc311-mnc480/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc311-mnc482/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc311-mnc482/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc311-mnc482/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/common/packages/services/Telephony/res/values-mcc311-mnc485/config.xml b/overlay/common/packages/services/Telephony/res/values-mcc311-mnc485/config.xml
deleted file mode 100644
index 31cacc4a..00000000
--- a/overlay/common/packages/services/Telephony/res/values-mcc311-mnc485/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The LineageOS 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>
- <!-- Flag to enable VVM3 visual voicemail. VVM3 is used by Verizon Wireless. -->
- <bool name="vvm3_enabled">true</bool>
-</resources>
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_bg.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_bg.dict
deleted file mode 100644
index 322186b5..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_bg.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_cs.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_cs.dict
deleted file mode 100644
index 475bcd94..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_cs.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_da.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_da.dict
deleted file mode 100644
index bed1e0a3..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_da.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_el.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_el.dict
deleted file mode 100644
index 89c479a5..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_el.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_au.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_au.dict
deleted file mode 100644
index 644e7ff4..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_au.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_gb.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_gb.dict
deleted file mode 100644
index 77145c7d..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_gb.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_us.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_us.dict
deleted file mode 100644
index 21be6e24..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_en_us.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_fi.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_fi.dict
deleted file mode 100644
index ca63abba..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_fi.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_hr.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_hr.dict
deleted file mode 100644
index fb799ce6..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_hr.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_hu.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_hu.dict
deleted file mode 100644
index 0b05b265..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_hu.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_iw.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_iw.dict
deleted file mode 100644
index 448135f6..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_iw.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_ka.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_ka.dict
deleted file mode 100644
index 86c49f5f..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_ka.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lb.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lb.dict
deleted file mode 100644
index 99cc4080..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lb.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lt.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lt.dict
deleted file mode 100644
index 72849931..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lt.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lv.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lv.dict
deleted file mode 100644
index 73bb20da..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_lv.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_nb.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_nb.dict
deleted file mode 100644
index e99b5134..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_nb.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_nl.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_nl.dict
deleted file mode 100644
index 2be0fabc..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_nl.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_pl.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_pl.dict
deleted file mode 100644
index f55af662..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_pl.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_pt_pt.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_pt_pt.dict
deleted file mode 100644
index f66c9d64..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_pt_pt.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_ro.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_ro.dict
deleted file mode 100644
index 0c950bd0..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_ro.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_sl.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_sl.dict
deleted file mode 100644
index 573231e2..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_sl.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_sr.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_sr.dict
deleted file mode 100644
index 0accc33b..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_sr.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_sv.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_sv.dict
deleted file mode 100644
index abad6b4a..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_sv.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_tr.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_tr.dict
deleted file mode 100644
index 3951fa23..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_tr.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_uk.dict b/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_uk.dict
deleted file mode 100644
index 15715cf6..00000000
--- a/overlay/dictionaries/packages/inputmethods/LatinIME/java/res/raw/main_uk.dict
+++ /dev/null
Binary files differ
diff --git a/overlay/tv/frameworks/base/packages/SettingsProvider/res/values/lineage_defaults.xml b/overlay/tv/frameworks/base/packages/SettingsProvider/res/values/lineage_defaults.xml
deleted file mode 100644
index 27b61919..00000000
--- a/overlay/tv/frameworks/base/packages/SettingsProvider/res/values/lineage_defaults.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/**
- * Copyright (c) 2018, The LineageOS 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>
- <string name="def_tv_user_setup_complete" translatable="false">false</string>
-</resources>
diff --git a/overlay/tv/lineage-sdk/lineage/res/res/values/config.xml b/overlay/tv/lineage-sdk/lineage/res/res/values/config.xml
deleted file mode 100644
index 6daf7b13..00000000
--- a/overlay/tv/lineage-sdk/lineage/res/res/values/config.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2017 The LineageOS 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">
-
- <!-- Disable LiveDisplay on ATV -->
- <integer name="config_defaultLiveDisplayMode">0</integer>
-
- <!-- Control the behavior when the user double-taps the home button.
- 0 - Nothing
- 1 - Menu key
- 2 - Recent apps view in SystemUI
- 3 - Launch assist intent
- 4 - Voice Search
- 5 - In-app Search
- 6 - Launch camera
- 7 - Sleep
- 8 - Last app
- 9 - Toggle split screen
- This needs to match the enums in
- sdk/src/java/org/lineageos/internal/util/DeviceKeysConstants.java.
- -->
- <integer name="config_doubleTapOnHomeBehavior">2</integer>
-
-</resources>
diff --git a/prebuilt/common/Android.mk b/prebuilt/common/Android.mk
deleted file mode 100644
index 83eecee9..00000000
--- a/prebuilt/common/Android.mk
+++ /dev/null
@@ -1,38 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-# a wrapper for curl which provides wget syntax, for compatibility
-include $(CLEAR_VARS)
-LOCAL_MODULE := wget
-LOCAL_SRC_FILES := bin/wget
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := EXECUTABLES
-LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
-include $(BUILD_PREBUILT)
-
-################################
-# Copies the APN list file into system/etc for the product as apns-conf.xml.
-# In the case where $(CUSTOM_APNS_FILE) is defined, the content of $(CUSTOM_APNS_FILE)
-# is added or replaced to the $(DEFAULT_APNS_FILE).
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := apns-conf.xml
-LOCAL_MODULE_CLASS := ETC
-
-DEFAULT_APNS_FILE := vendor/lineage/prebuilt/common/etc/apns-conf.xml
-
-ifdef CUSTOM_APNS_FILE
-CUSTOM_APNS_SCRIPT := vendor/lineage/tools/custom_apns.py
-FINAL_APNS_FILE := $(local-generated-sources-dir)/apns-conf.xml
-
-$(FINAL_APNS_FILE): PRIVATE_SCRIPT := $(CUSTOM_APNS_SCRIPT)
-$(FINAL_APNS_FILE): PRIVATE_CUSTOM_APNS_FILE := $(CUSTOM_APNS_FILE)
-$(FINAL_APNS_FILE): $(CUSTOM_APNS_SCRIPT) $(DEFAULT_APNS_FILE)
- rm -f $@
- python $(PRIVATE_SCRIPT) $@ $(PRIVATE_CUSTOM_APNS_FILE)
-else
-FINAL_APNS_FILE := $(DEFAULT_APNS_FILE)
-endif
-
-LOCAL_PREBUILT_MODULE_FILE := $(FINAL_APNS_FILE)
-
-include $(BUILD_PREBUILT)
diff --git a/prebuilt/common/bin/50-lineage.sh b/prebuilt/common/bin/50-lineage.sh
deleted file mode 100755
index 0158744d..00000000
--- a/prebuilt/common/bin/50-lineage.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/sbin/sh
-#
-# ADDOND_VERSION=2
-#
-# /system/addon.d/50-lineage.sh
-# During a LineageOS 16.0 upgrade, this script backs up /system/etc/hosts,
-# /system is formatted and reinstalled, then the file is restored.
-#
-
-. /tmp/backuptool.functions
-
-list_files() {
-cat <<EOF
-etc/hosts
-EOF
-}
-
-case "$1" in
- backup)
- list_files | while read FILE DUMMY; do
- backup_file $S/"$FILE"
- done
- ;;
- restore)
- list_files | while read FILE REPLACEMENT; do
- R=""
- [ -n "$REPLACEMENT" ] && R="$S/$REPLACEMENT"
- [ -f "$C/$S/$FILE" ] && restore_file $S/"$FILE" "$R"
- done
- ;;
- pre-backup)
- # Stub
- ;;
- post-backup)
- # Stub
- ;;
- pre-restore)
- # Stub
- ;;
- post-restore)
- # Stub
- ;;
-esac
diff --git a/prebuilt/common/bin/backuptool.functions b/prebuilt/common/bin/backuptool.functions
deleted file mode 100644
index 4319b783..00000000
--- a/prebuilt/common/bin/backuptool.functions
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/sbin/sh
-#
-# Functions for backuptool.sh
-#
-
-copy_file() {
- cp -dp "$1" "$2"
- # symlinks don't have a context
- if [ ! -L "$1" ]; then
- # it is assumed that every label starts with 'u:object_r' and has no white-spaces
- local context=`ls -Z "$1" | grep -o 'u:object_r:[^ ]*' | head -1`
- chcon "$context" "$2"
- fi
-}
-
-backup_file() {
- if [ -e "$1" -o -L "$1" ]; then
- local F=`basename "$1"`
- local D=`dirname "$1"`
- # dont backup any apps that have odex files, they are useless
- if ( echo "$F" | grep -q "\.apk$" ) && [ -e `echo "$1" | sed -e 's/\.apk$/\.odex/'` ]; then
- echo "Skipping odexed apk $1";
- else
- mkdir -p "$C/$D"
- copy_file "$1" "$C/$D/$F"
- fi
- fi
-}
-
-restore_file() {
- local FILE=`basename "$1"`
- local DIR=`dirname "$1"`
- if [ -e "$C/$DIR/$FILE" -o -L "$C/$DIR/$FILE" ]; then
- if [ ! -d "$DIR" ]; then
- mkdir -p "$DIR";
- fi
- copy_file "$C/$DIR/$FILE" "$1";
- if [ -n "$2" ]; then
- echo "Deleting obsolete file $2"
- rm "$2";
- fi
- fi
-}
diff --git a/prebuilt/common/bin/backuptool.sh b/prebuilt/common/bin/backuptool.sh
deleted file mode 100755
index 7ab703ee..00000000
--- a/prebuilt/common/bin/backuptool.sh
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/sbin/sh
-#
-# Backup and restore addon /system files
-#
-
-export C=/tmp/backupdir
-export SYSDEV="$(readlink -nf "$2")"
-export SYSFS="$3"
-export V=16.0
-
-export ADDOND_VERSION=1
-
-# Scripts in /system/addon.d expect to find backuptool.functions in /tmp
-cp -f /tmp/install/bin/backuptool.functions /tmp
-
-# Preserve /system/addon.d in /tmp/addon.d
-preserve_addon_d() {
- if [ -d $S/addon.d/ ]; then
- mkdir -p /tmp/addon.d/
- cp -a $S/addon.d/* /tmp/addon.d/
-
- # Discard any scripts that aren't at least our version level
- for f in /postinstall/tmp/addon.d/*sh; do
- SCRIPT_VERSION=$(grep "^# ADDOND_VERSION=" $f | cut -d= -f2)
- if [ -z "$SCRIPT_VERSION" ]; then
- SCRIPT_VERSION=1
- fi
- if [ $SCRIPT_VERSION -lt $ADDOND_VERSION ]; then
- rm $f
- fi
- done
-
- chmod 755 /tmp/addon.d/*.sh
- fi
-}
-
-# Restore /system/addon.d from /tmp/addon.d
-restore_addon_d() {
- if [ -d /tmp/addon.d/ ]; then
- mkdir -p $S/addon.d/
- cp -a /tmp/addon.d/* $S/addon.d/
- rm -rf /tmp/addon.d/
- fi
-}
-
-# Proceed only if /system is the expected major and minor version
-check_prereq() {
-# If there is no build.prop file the partition is probably empty.
-if [ ! -r $S/build.prop ]; then
- return 1
-fi
-if ! grep -q "^ro.lineage.version=$V.*" $S/build.prop; then
- echo "Not backing up files from incompatible version: $V"
- return 2
-fi
-return 0
-}
-
-# Execute /system/addon.d/*.sh scripts with $1 parameter
-run_stage() {
-if [ -d /tmp/addon.d/ ]; then
- for script in $(find /tmp/addon.d/ -name '*.sh' |sort -n); do
- $script $1
- done
-fi
-}
-
-determine_system_mount() {
- if grep -q -e"^$SYSDEV" /proc/mounts; then
- umount $(grep -e"^$SYSDEV" /proc/mounts | cut -d" " -f2)
- fi
-
- if [ -d /system_root ]; then
- SYSMOUNT="/system_root"
- export S=/system_root/system
- else
- SYSMOUNT="/system"
- export S=/system
- fi
-
-}
-
-mount_system() {
- mount -t $SYSFS $SYSDEV $SYSMOUNT -o rw,discard
-}
-
-unmount_system() {
- umount $SYSMOUNT
-}
-
-determine_system_mount
-
-case "$1" in
- backup)
- mount_system
- if check_prereq; then
- mkdir -p $C
- preserve_addon_d
- run_stage pre-backup
- run_stage backup
- run_stage post-backup
- fi
- unmount_system
- ;;
- restore)
- mount_system
- if check_prereq; then
- run_stage pre-restore
- run_stage restore
- run_stage post-restore
- restore_addon_d
- rm -rf $C
- sync
- fi
- unmount_system
- ;;
- *)
- echo "Usage: $0 {backup|restore}"
- exit 1
-esac
-
-exit 0
diff --git a/prebuilt/common/bin/backuptool_ab.functions b/prebuilt/common/bin/backuptool_ab.functions
deleted file mode 100644
index be42261f..00000000
--- a/prebuilt/common/bin/backuptool_ab.functions
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/system/bin/sh
-#
-# Functions for backuptool_ab.sh
-#
-
-export S=/system
-export C=/postinstall/tmp/backupdir
-export V=16.0
-export backuptool_ab=true
-
-copy_file() {
- old=`umask`
- umask 0322
- mkdir -m755 -p `dirname $2`
- umask "$old"
-
- cp -dp --preserve=a "$1" "$2"
-}
-
-move_file() {
- old=`umask`
- umask 0322
- mkdir -m755 -p `dirname $2`
- umask "$old"
-
- mv "$1" "$2"
-}
-
-backup_file() {
- if [ -e "$1" -o -L "$1" ]; then
- # dont backup any apps that have odex files, they are useless
- if ( echo "$1" | grep -q "\.apk$" ) && [ -e `echo "$1" | sed -e 's/\.apk$/\.odex/'` ]; then
- echo "Skipping odexed apk $1";
- else
- copy_file "$1" "$C/$1"
- fi
- fi
-}
-
-restore_file() {
- if [ -e "$C/$1" -o -L "$C/$1" ]; then
- move_file "$C/$1" "/postinstall/$1";
- if [ -n "$2" ]; then
- echo "Deleting obsolete file $2"
- rm "$2";
- fi
- fi
-}
diff --git a/prebuilt/common/bin/backuptool_ab.sh b/prebuilt/common/bin/backuptool_ab.sh
deleted file mode 100755
index 5b0dc08e..00000000
--- a/prebuilt/common/bin/backuptool_ab.sh
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/system/bin/sh
-#
-# Backup and restore addon /system files
-#
-
-export S=/system
-export C=/postinstall/tmp/backupdir
-export V=16.0
-
-export ADDOND_VERSION=2
-
-# Scripts in /system/addon.d expect to find backuptool.functions in /tmp
-mkdir -p /postinstall/tmp/
-cp -f /postinstall/system/bin/backuptool_ab.functions /postinstall/tmp/backuptool.functions
-
-# Preserve /system/addon.d in /tmp/addon.d
-preserve_addon_d() {
- if [ -d /system/addon.d/ ]; then
- mkdir -p /postinstall/tmp/addon.d/
- cp -a /system/addon.d/* /postinstall/tmp/addon.d/
-
- # Discard any scripts that aren't at least our version level
- for f in /postinstall/tmp/addon.d/*sh; do
- SCRIPT_VERSION=$(grep "^# ADDOND_VERSION=" $f | cut -d= -f2)
- if [ -z "$SCRIPT_VERSION" ]; then
- SCRIPT_VERSION=1
- fi
- if [ $SCRIPT_VERSION -lt $ADDOND_VERSION ]; then
- rm $f
- fi
- done
-
- chmod 755 /postinstall/tmp/addon.d/*.sh
- fi
-}
-
-# Restore /postinstall/system/addon.d from /postinstall/tmp/addon.d
-restore_addon_d() {
- if [ -d /postinstall/tmp/addon.d/ ]; then
- mkdir -p /postinstall/system/addon.d/
- cp -a /postinstall/tmp/addon.d/* /postinstall/system/addon.d/
- rm -rf /postinstall/tmp/addon.d/
- fi
-}
-
-# Proceed only if /system is the expected major and minor version
-check_prereq() {
-# If there is no build.prop file the partition is probably empty.
-if [ ! -r /system/build.prop ]; then
- exit 127
-fi
-
-grep -q "^ro.lineage.version=$V.*" /system/build.prop && return 1
-
-echo "Not backing up files from incompatible version: $V"
-exit 127
-}
-
-# Execute /system/addon.d/*.sh scripts with $1 parameter
-run_stage() {
-if [ -d /postinstall/tmp/addon.d/ ]; then
- for script in $(find /postinstall/tmp/addon.d/ -name '*.sh' |sort -n); do
- # we have no /sbin/sh in android, only recovery
- # use /system/bin/sh here instead
- sed -i '0,/#!\/sbin\/sh/{s|#!/sbin/sh|#!/system/bin/sh|}' $script
- # we can't count on /tmp existing on an A/B device, so utilize /postinstall/tmp
- # as a pseudo-/tmp dir
- sed -i 's|. /tmp/backuptool.functions|. /postinstall/tmp/backuptool.functions|g' $script
- $script $1
- done
-fi
-}
-
-case "$1" in
- backup)
- mkdir -p $C
- check_prereq
- preserve_addon_d
- run_stage pre-backup
- run_stage backup
- run_stage post-backup
- ;;
- restore)
- check_prereq
- run_stage pre-restore
- run_stage restore
- run_stage post-restore
- restore_addon_d
- rm -rf $C
- rm -rf /postinstall/tmp
- sync
- ;;
- *)
- echo "Usage: $0 {backup|restore}"
- exit 1
-esac
-
-exit 0
diff --git a/prebuilt/common/bin/backuptool_postinstall.sh b/prebuilt/common/bin/backuptool_postinstall.sh
deleted file mode 100755
index eef04098..00000000
--- a/prebuilt/common/bin/backuptool_postinstall.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/system/bin/sh
-#
-# LineageOS A/B OTA Postinstall Script
-#
-
-/postinstall/system/bin/backuptool_ab.sh backup
-/postinstall/system/bin/backuptool_ab.sh restore
-
-sync
-
-exit 0
diff --git a/prebuilt/common/bin/sysinit b/prebuilt/common/bin/sysinit
deleted file mode 100644
index 431afbc1..00000000
--- a/prebuilt/common/bin/sysinit
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/system/bin/sh
-
-export PATH=/sbin:/system/sbin:/system/bin:/system/xbin
-for i in /system/etc/init.d/*; do
- if [ -x $i ]; then
- /system/bin/log -t sysinit Running $i
- $i
- fi
-done
diff --git a/prebuilt/common/etc/apns-conf.xml b/prebuilt/common/etc/apns-conf.xml
deleted file mode 100644
index 6072cfca..00000000
--- a/prebuilt/common/etc/apns-conf.xml
+++ /dev/null
@@ -1,3822 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-** Copyright 2006, Google Inc.
-**
-** 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.
-*/
--->
-
-<!-- use empty string to specify no proxy or port -->
-<!-- This version must agree with that in apps/common/res/apns.xml -->
-<apns version="8">
- <apn carrier="Test Internet" mcc="001" mnc="01" apn="VZWINTERNET" type="default,dun,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Test FOTA" mcc="001" mnc="01" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Test IMS" mcc="001" mnc="01" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Test CBS" mcc="001" mnc="01" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="SPRINT test ISP" mcc="001" mnc="01" apn="n.ispsn" type="default,mms" mmsc="http://mms.sprintpcs.com" mmsproxy="68.28.31.7" mmsport="80" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="SPRINT test OTA" mcc="001" mnc="01" apn="otasn" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="SPRINT test PAM" mcc="001" mnc="01" apn="pamsn" type="dun" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="VZW Test Internet" mcc="001" mnc="010" apn="VZWINTERNET" type="default,dun,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="VZW Test FOTA" mcc="001" mnc="010" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="VZW Test IMS" mcc="001" mnc="010" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="VZW Test CBS" mcc="001" mnc="010" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Virgin Mobile US" mcc="200" mnc="053" apn="0" port="" mmsproxy="205.239.233.136" mmsport="81" mmsc="http://mmsc.vmobl.com:8088/mms?" type="mms" />
- <apn carrier="Cosmote Internet" mcc="202" mnc="01" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Cosmote MMS" mcc="202" mnc="01" apn="mms" proxy="" port="" user="" password="" mmsc="http://mmsc.cosmote.gr:8002" mmsproxy="10.10.10.20" mmsport="8080" type="mms" />
- <apn carrier="Vodafone Web" mcc="202" mnc="05" apn="internet.vodafone.gr" user="user" password="pass" authtype="3" type="default,supl" />
- <apn carrier="Vf live!" mcc="202" mnc="05" apn="wap.vodafone.gr" proxy="213.249.19.49" port="5080" mmsc="" user="user" password="pass" authtype="3" type="default,supl" />
- <apn carrier="Vf live! Prepay" mcc="202" mnc="05" apn="wapkarta.vodafone.gr" proxy="213.249.19.49" port="5080" mmsc="" user="user" password="pass" authtype="3" type="default,supl" />
- <apn carrier="Vf Mobile Broadband" mcc="202" mnc="05" apn="internet" user="" password="" type="default,supl" />
- <apn carrier="Vf Mobile Internet" mcc="202" mnc="05" apn="webonly.vodafone.gr" user="" password="" type="default,supl" />
- <apn carrier="Vf kartointernet" mcc="202" mnc="05" apn="websession" user="" password="" type="default,supl" />
- <apn carrier="Vf MMS" mcc="202" mnc="05" apn="mms.vodafone.net" proxy="" port="" mmsproxy="213.249.19.49" mmsport="5080" mmsc="http://mms.vodafone.gr" user="user" password="pass" authtype="1" type="mms" />
- <apn carrier="Vf Internet Corporate" mcc="202" mnc="05" apn="internet" user="user" password="pass" type="default,supl" />
- <apn carrier="Vodafone GR" mcc="202" mnc="05" apn="surfonly.vodafone.gr" type="default,supl" />
- <apn carrier="Vodafone GR Prepaid" mcc="202" mnc="05" apn="webkarta.vodafone.gr" type="default,supl" />
- <apn carrier="Q-Telecom Internet" mcc="202" mnc="09" apn="myq" type="default,supl" />
- <apn carrier="Q-Telecom MMS" mcc="202" mnc="09" apn="q-mms.myq.gr" mmsc="http://mms.myq.gr" mmsproxy="192.168.80.134" mmsport="8080" type="mms" />
- <apn carrier="WIND Internet" mcc="202" mnc="10" apn="gint.b-online.gr" user="" password="" type="default,supl" />
- <apn carrier="WIND MMS" mcc="202" mnc="10" apn="mnet.b-online.gr" proxy="" port="" mmsproxy="192.168.200.11" mmsport="9401" mmsc="http://192.168.200.95/servlets/mms" user="" password="" type="mms" />
- <apn carrier="Cyta GR" mcc="202" mnc="14" apn="internet.cyta.gr" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Tele2 NL" mcc="204" mnc="02" apn="internet.tele2.nl" mmsc="http://mmsc.tele2.nl" mmsproxy="193.12.40.64" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Tele2 GPRS" mcc="204" mnc="02" apn="Tele2 GPRS" proxy="130.244.196.090" port="8080" mmsproxy="193.012.040.064" mmsport="8080" mmsc="" user="" password="" type="default,supl,mms" />
- <apn carrier="MVNO NL" mcc="204" mnc="03" apn="internet.mvno.mobi" user="mvno" password="mvno" authtype="1" type="default,supl" mvno_match_data="20403" mvno_type="imsi" />
- <apn carrier="Sphone Pelephone" mcc="204" mnc="04" apn="sphone.pelephone.net.il" user="pcl@3g" password="pcl" type="default,supl" />
- <apn carrier="Multimedia Pelephone" mcc="204" mnc="04" apn="mms.pelephone.net.il" user="pcl@3g" password="pcl" mmsproxy="10.170.252.104" mmsport="9093" mmsc="http://mmsu.pelephone.net.il/" type="mms" />
- <apn carrier="Vodafone NL" mcc="204" mnc="04" apn="live.vodafone.com" proxy="192.168.251.150" port="8799" user="vodafone" password="vodafone" mmsc="http://mmsc.mms.vodafone.nl" mmsproxy="192.168.251.150" mmsport="8799" type="default,supl,mms" />
- <apn carrier="EHRPD - VZW Roaming Internet" mcc="204" mnc="04" apn="VZWINTERNET" type="default,dun" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer_bitmask="13" mvno_type="gid" mvno_match_data="BAE0000000000000" profile_id="0" modem_cognitive="true" max_conns="1023" max_conns_time="300" />
- <apn carrier="LTE - VZW Roaming Internet" mcc="204" mnc="04" apn="VZWINTERNET" type="default,dun" protocol="IPV4V6" roaming_protocol="IPV4V6" mvno_type="gid" mvno_match_data="BAE0000000000000" profile_id="0" modem_cognitive="true" max_conns="1023" max_conns_time="300" />
- <apn carrier="EHRPD - VZW Roaming FOTA" mcc="204" mnc="04" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer_bitmask="13" mvno_type="gid" mvno_match_data="BAE0000000000000" profile_id="3" modem_cognitive="true" max_conns="1023" max_conns_time="300" />
- <apn carrier="LTE - VZW Roaming FOTA" mcc="204" mnc="04" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" mvno_type="gid" mvno_match_data="BAE0000000000000" profile_id="3" modem_cognitive="true" max_conns="1023" max_conns_time="300" />
- <apn carrier="LTE - VZW Roaming IMS" mcc="204" mnc="04" apn="VZWIMS" type="ims,ia" protocol="IPV4V6" roaming_protocol="IPV4V6" mvno_type="gid" mvno_match_data="BAE0000000000000" profile_id="2" modem_cognitive="true" max_conns="1023" max_conns_time="300" />
- <apn carrier="EHRPD - VZW Roaming IMS" mcc="204" mnc="04" apn="VZWIMS" type="ims,ia" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer_bitmask="13" mvno_type="gid" mvno_match_data="BAE0000000000000" profile_id="2" modem_cognitive="true" max_conns="1023" max_conns_time="300" />
- <apn carrier="LTE - VZW Roaming CBS" mcc="204" mnc="04" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vzwreseller.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" mvno_type="gid" mvno_match_data="BAE0000000000000" profile_id="4" modem_cognitive="true" max_conns="1023" max_conns_time="300" />
- <apn carrier="EHRPD - VZW Roaming CBS" mcc="204" mnc="04" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vzwreseller.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer_bitmask="13" mvno_type="gid" mvno_match_data="BAE0000000000000" profile_id="4" modem_cognitive="true" max_conns="1023" max_conns_time="300" />
- <apn carrier="Vodafone MMS Business" mcc="204" mnc="04" apn="office.vodafone.nl" user="vodafone" password="vodafone" mmsc="http://mmsc.mms.vodafone.nl" mmsproxy="192.168.251.150" mmsport="8799" type="mms" />
- <apn carrier="中国电信NET设置" mcc="204" mnc="04" apn="ctnet" user="ctnet@mycdma.cn" password="vnet.mobi" authtype="3" type="default,supl,dun" />
- <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 (type 1)" mcc="204" mnc="04" apn="data.dataxs.mobi" proxy="" port="" user="hollandsnieuwe" password="hollandsnieuwe" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="hollandsnieuwe (type 2)" mcc="204" mnc="04" apn="live.vodafone.com" user="vodafone" password="vodafone" 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="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" />
- <apn carrier="Telfort Internet" mcc="204" mnc="08" apn="internet" mmsc="http://mms" mmsproxy="" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Lycamobile NL" mcc="204" mnc="09" apn="data.lycamobile.nl" user="lmnl" password="plus" type="default,supl" />
- <apn carrier="Telfort Internet" mcc="204" mnc="12" apn="internet" proxy="" port="" user="" password="" mmsc="http://mms" mmsproxy="193.113.200.195" mmsport="8080" spn="Telfort" authtype="1" type="default,supl,mms" />
- <apn carrier="AH Mobiel Internet" mcc="204" mnc="12" apn="multimedia.ah.nl" proxy="" port="" user="" password="" mmsc="http://mms" mmsproxy="193.113.200.195" mmsport="8080" type="default,supl,mms" spn="AH Mobiel" />
- <apn carrier="T-Mobile Internet" mcc="204" mnc="16" apn="internet" proxy="" port="" user="" password="" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="T-Mobile NL" mcc="204" mnc="16" apn="smartsites.t-mobile" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="T-Mobile MMS" mcc="204" mnc="16" apn="mms" proxy="" port="" user="tmobilemms" password="tmobilemms" mmsc="http://t-mobilemms" mmsproxy="010.010.010.011" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Ben" mcc="204" mnc="16" apn="internet.ben" authtype="1" type="default,supl" />
- <apn carrier="Ben MMS" mcc="204" mnc="16" apn="mms.ben" proxy="" port="" user="" password="" mmsc="http://benmms" mmsproxy="10.10.10.11" mmsport="8080" type="mms" />
- <apn carrier="Orange NL" mcc="204" mnc="20" apn="internet" proxy="" port="" user="" password="" mmsc="http://mms.orange.nl:8002" mmsproxy="10.250.255.183" mmsport="5080" authtype="3" type="default,supl" />
- <apn carrier="Orange NL MMS" mcc="204" mnc="20" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms.orange.nl:8002" mmsproxy="10.250.255.183" mmsport="5080" authtype="3" type="mms" />
- <apn carrier="Proximus MMS" mcc="206" mnc="01" apn="event.proximus.be" user="mms" password="mms" mmsc="http://mmsc.proximus.be/mms" mmsproxy="10.55.14.75" mmsport="8080" type="mms" />
- <apn carrier="Proximus Internet" mcc="206" mnc="01" apn="internet.proximus.be" type="default,supl" />
- <apn carrier="Eastlink Internet" mcc="206" mnc="01" apn="wisp.mobi.eastlink.ca" type="default,supl" />
- <apn carrier="Eastlink MMS" mcc="206" mnc="01" apn="mms.mobi.eastlink.ca" mmsc="http://mmss.mobi.eastlink.ca" mmsproxy="10.232.12.49" mmsport="8080" type="mms" />
- <apn carrier="Telenet Intl Roam" mcc="206" mnc="01" apn="telenetwap.be" type="default,supl" />
- <apn carrier="Telenet MMS Intl Roam" mcc="206" mnc="01" apn="mms.be" mmsc="http://mmsc.telenet.be" mmsproxy="195.130.149.100" mmsport="80" type="mms" />
- <apn carrier="Iusacell Internet" mcc="206" mnc="01" apn="web.iusacellgsm.mx" authtype="0" user="iusacellgsm" password="iusacellgsm" type="default,supl" />
- <apn carrier="Iusacell MMS" mcc="206" mnc="01" apn="mms.iusacellgsm.mx" authtype="0" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Modem" mcc="206" mnc="01" apn="modem.iusacellgsm.mx" authtype="0" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Scarlet Internet" mcc="206" mnc="01" apn="internet.bmbpartner.be" type="default,supl" />
- <apn carrier="Scarlet MMS" mcc="206" mnc="01" apn="event.proximus.be" proxy="" port="" user="mms" password="mms" mmsc="http://mmsc.proximus.be/mms" mmsproxy="10.55.14.75" mmsport="8080" type="mms" />
- <apn carrier="Telenet" mcc="206" mnc="05" apn="telenetwap.be" type="default,supl" />
- <apn carrier="Telenet MMS" mcc="206" mnc="05" apn="mms.be" mmsc="http://mmsc.telenet.be" mmsproxy="195.130.149.100" mmsport="80" type="mms" />
- <apn carrier="Voo Mobile" mcc="206" mnc="05" apn="telenetwap.be" user="" password="" type="default,supl" />
- <apn carrier="Voo MMS" mcc="206" mnc="05" apn="mms.be" proxy="" port="" user="mms" password="mms" mmsc="http://mmsc.telenet.be" mmsproxy="195.130.149.100" mmsport="80" authtype="1" type="mms" />
- <apn carrier="Lycamobile BE" mcc="206" mnc="06" apn="data.lycamobile.be" user="lmbe" password="plus" type="default,supl" />
- <apn carrier="Mobistar" mcc="206" mnc="10" apn="mworld.be" proxy="212.65.63.143" port="8080" user="mobistar" password="mobistar" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="Mobistar MMS" mcc="206" mnc="10" apn="mms.be" proxy="" port="" user="mobistar" password="mobistar" mmsc="http://mmsc.mobistar.be" mmsproxy="212.65.63.143" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Telenet" mcc="206" mnc="10" apn="telenetwap.be" proxy="" port="" user="" password="" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="BASE Belgium" mcc="206" mnc="20" apn="gprs.base.be" proxy="" port="" user="base" password="base" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="BASE MMS Belgium" mcc="206" mnc="20" apn="mms.base.be" proxy="" port="" user="base" password="base" mmsc="http://mmsc.base.be" mmsproxy="217.72.235.1" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Carrefour Belgium" mcc="206" mnc="20" apn="carrefourdata.be" user="carrefour" password="carrefour" type="default,supl" />
- <apn carrier="Carrefour Belgium MMS" mcc="206" mnc="20" apn="carrefourmms.be" user="carrefour" password="carrefour" mmsc="http://mmsc.base.be/" mmsproxy="217.72.235.1" mmsport="8080" type="mms" />
- <apn carrier="Mobile Vikings" mcc="206" mnc="20" apn="web.be" proxy="" port="" user="web" password="web" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="Mobile Vikings MMS" mcc="206" mnc="20" apn="mms.be" proxy="" port="" user="mms" password="mms" mmsc="http://mmsc.be" mmsproxy="217.72.235.1" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="JIM Mobile Internet" mcc="206" mnc="20" apn="gprs.base.be" proxy="" port="" user="base" password="base" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="JIM Mobile MMS" mcc="206" mnc="20" apn="mms.base.be" proxy="" port="" user="base" password="base" mmsc="http://mmsc.base.be" mmsproxy="217.72.235.1" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Orange Internet" mcc="208" mnc="01" apn="orange.fr" proxy="" port="" user="orange" password="orange" mmsc="" type="default,supl,dun" />
- <apn carrier="Orange MMS" mcc="208" mnc="01" apn="orange.acte" proxy="" port="" mmsproxy="192.168.010.200" mmsport="8080" mmsc="http://mms.orange.fr" user="orange" password="orange" type="mms" />
- <apn carrier="Orange World" mcc="208" mnc="01" apn="orange" user="orange" password="orange" authtype="2" type="default,supl" />
- <apn carrier="Orange Entreprise" mcc="208" mnc="01" apn="orange-mib" proxy="172.16.2.8" port="8000" user="orange" password="orange" authtype="2" type="default,supl" />
- <apn carrier="Orange France" mcc="208" mnc="01" apn="orange" proxy="" port="" user="orange" password="orange" mmsc="" type="default,supl" />
- <apn carrier="Orange FR-MMS" mcc="208" mnc="01" apn="orange.acte" proxy="" port="" user="orange" password="orange" server="*" mmsc="http://mms.orange.fr" mmsproxy="192.168.10.200" mmsport="8080" type="mms" />
- <apn carrier="Orange MMS" mcc="208" mnc="01" apn="Orange.acte" proxy="" port="" user="Orange" password="orange" mmsc="http://mms.orange.fr" mmsproxy="192.168.10.200" mmsport="8080" type="mms" />
- <apn carrier="Orange Internet" mcc="208" mnc="01" apn="ofnew.fr" proxy="192.168.10.100" port="8080" user="orange" password="orange" mmsc="" type="tethering" />
- <apn carrier="Carrefour WAP" mcc="208" mnc="01" apn="ofnew.fr" proxy="192.168.10.100" port="8080" mmsc="" user="orange" password="orange" spn="Carrefour" type="default,supl" />
- <apn carrier="Carrefour MMS" mcc="208" mnc="01" apn="orange.acte" proxy="" port="" mmsproxy="192.168.10.200" mmsport="8080" mmsc="http://mms.orange.fr" user="orange" password="orange" spn="Carrefour" type="mms" />
- <apn carrier="NRJ WAP" mcc="208" mnc="01" apn="ofnew.fr" proxy="192.168.10.100" port="8080" mmsc="" user="orange" password="orange" spn="NRJ (ORANGE)" type="default,supl" />
- <apn carrier="NRJ MMS" mcc="208" mnc="01" apn="orange.acte" proxy="" port="" mmsproxy="192.168.10.200" mmsport="8080" mmsc="http://mms.orange.fr" user="orange" password="orange" spn="NRJ (ORANGE)" type="mms" />
- <apn carrier="Tele2 WAP" mcc="208" mnc="01" apn="ofnew.fr" proxy="192.168.10.100" port="8080" user="orange" password="orange" spn="Tele 2" type="default,supl" />
- <apn carrier="Tele2 MMS" mcc="208" mnc="01" apn="orange.acte" proxy="" port="" mmsproxy="192.168.10.200" mmsport="8080" mmsc="http://mms.orange.fr" user="orange" password="orange" spn="Tele 2" type="mms" />
- <apn carrier="Virgin Mobile" mcc="208" mnc="01" apn="ofnew.fr" proxy="192.168.10.100" port="8080" user="orange" password="orange" spn="Virgin" type="default,supl" />
- <apn carrier="Virgin" mcc="208" mnc="01" apn="ofnew.fr" proxy="" port="" user="orange" password="orange" mmsc="" mvno_type="spn" mvno_match_data="Virgin" authtype="1" type="default,supl" />
- <apn carrier="Virgin Mobile MMS" mcc="208" mnc="01" apn="orange.acte" proxy="" port="" mmsproxy="192.168.10.200" mmsport="8080" mmsc="http://mms.orange.fr" user="orange" password="orange" spn="Virgin" type="mms" />
- <apn carrier="Internet Entreprise" mcc="208" mnc="01" apn="internet-entreprise" proxy="" port="" user="orange" password="orange" mmsc="" type="tethering" />
- <apn carrier="NRJ WEB" mcc="208" mnc="01" apn="ofnew.fr" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="NRJ Mobile" authtype="1" type="default,supl" />
- <apn carrier="NRJ MMS" mcc="208" mnc="01" apn="orange.acte" proxy="" port="" user="orange" password="orange" mmsc="http://mms.orange.fr/" mmsproxy="192.168.10.200" mmsport="8080" mvno_type="spn" mvno_match_data="NRJ Mobile" authtype="1" type="mms" />
- <apn carrier="C le WEB" mcc="208" mnc="01" apn="ofnew.fr" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="C le mobile" authtype="1" type="default,supl" />
- <apn carrier="C le MMS" mcc="208" mnc="01" apn="orange.acte" proxy="" port="" user="orange" password="orange" mmsc="http://mms.orange.fr/" mmsproxy="192.168.10.200" mmsport="8080" mvno_type="spn" mvno_match_data="C le mobile" authtype="1" type="mms" />
- <apn carrier="M6Mobile" mcc="208" mnc="01" apn="ofnew.fr" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="M6Mobile" mcc="208" mnc="01" apn="orange.acte" proxy="" port="" user="orange" password="orange" mmsc="http://mms.orange.fr/" mmsproxy="192.168.10.200" mmsport="8080" type="mms" />
- <apn carrier="Web Carrefour" mcc="208" mnc="01" apn="wap mms" proxy="192.168.10.100" port="8080" user="orange" password="orange" mmsc="" type="default,supl" />
- <apn carrier="Web Carrefour" mcc="208" mnc="01" apn="orange.acte" proxy="" port="" user="orange" password="orange" mmsc="http://mms.orange.fr/" mmsproxy="192.168.10.200" mmsport="8080" type="mms" />
- <apn carrier="internet68" mcc="208" mnc="01" apn="internet68" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="mms68" mcc="208" mnc="01" apn="mms68" proxy="" port="" user="" password="" mmsc="http://mms68/" mmsproxy="10.143.156.11" mmsport="8080" type="mms" />
- <apn carrier="Breizh Mobile" mcc="208" mnc="01" apn="orange" proxy="192.168.10.100" port="8080" user="orange" password="orange" mmsc="" mvno_type="spn" mvno_match_data="Breizh Mobile" type="default,supl" />
- <apn carrier="C MMS" mcc="208" mnc="01" apn="orange.acte" proxy="" port="" user="orange" password="orange" mmsc="http://mms.orange.fr" mmsproxy="192.168.10.200" mmsport="8080" type="mms" />
- <apn carrier="Syma" mcc="208" mnc="01" apn="symamobile.com" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Syma" type="default,supl" />
- <apn carrier="Lebara internet" mcc="208" mnc="01" apn="fr.lebara.mobi" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="NRJ WEB" mcc="208" mnc="01" apn="ofnew.fr" proxy="" port="" user="orange" password="orange" mmsc="" mvno_type="spn" mvno_match_data="NRJ Mobile" authtype="1" type="default,supl" />
- <apn carrier="NRJ MMS" mcc="208" mnc="01" apn="orange.acte" proxy="" port="" user="orange" password="orange" mmsc="http://mms.orange.fr/" mmsproxy="192.168.10.200" mmsport="8080" mvno_type="spn" mvno_match_data="NRJ Mobile" spn="NRJ Mobile" authtype="1" type="mms" />
- <apn carrier="C le MMS" mcc="208" mnc="01" apn="orange.acte" proxy="" port="" user="orange" password="orange" mmsc="http://mms.orange.fr" mmsproxy="192.168.10.200" mmsport="8080" mvno_type="spn" mvno_match_data="NRJ Mobile" authtype="1" type="mms" />
- <apn carrier="Orange GPRS ISP" mcc="208" mnc="02" apn="orange.fr" type="default,supl" />
- <apn carrier="MMS Orange GPRS" mcc="208" mnc="02" apn="orange.acte" proxy="" port="" user="orange" password="orange" mmsc="http://mms.orange.fr/" mmsproxy="192.168.10.200" mmsport="8080" type="mms" />
- <apn carrier="Orange GPRS" mcc="208" mnc="02" apn="orange.fr" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="NRJWEB" mcc="208" mnc="02" apn="ofnew.fr" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Orange GPRS ISP" mcc="208" mnc="02" apn="orange.fr" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Simyo Web" mcc="208" mnc="02" apn="gprs-service-fr.net" proxy="195.230.105.25" port="8080" user="" password="" mmsc="" authtype="3" type="default,supl" />
- <apn carrier="SFR MMS" mcc="208" mnc="09" apn="mmssfr" mmsc="http://mms1" mmsproxy="10.151.0.1" mmsport="8080" type="mms" />
- <apn carrier="SFR" mcc="208" mnc="09" apn="sl2sfr" server="*" type="default,supl" />
- <apn carrier="SFR WAP" mcc="208" mnc="09" apn="wapsfr" user="none" password="none" server="*" proxy="195.115.25.129" port="8080" type="default,supl" />
- <apn carrier="SFR ACCESS DATA" mcc="208" mnc="09" apn="websfr" type="default,supl" />
- <apn carrier="Auchan WAP" mcc="208" mnc="10" apn="wap65" proxy="192.168.21.8" port="8080" spn="Auchan" type="default,supl" />
- <apn carrier="Auchan MMS" mcc="208" mnc="10" apn="mms65" proxy="" port="" mmsproxy="10.143.156.8" mmsport="8080" mmsc="http://mms65" spn="Auchan" type="mms" />
- <apn carrier="WAP simplicime" mcc="208" mnc="10" apn="wapdebitel" proxy="192.168.21.3" port="8080" spn="Debitel" type="default,supl" />
- <apn carrier="MMS simplicime" mcc="208" mnc="10" apn="mmsdebitel" proxy="" port="" mmsproxy="10.143.156.3" mmsport="8080" mmsc="http://mmsdebitel" spn="Debitel" type="mms" />
- <apn carrier="WEB simplicime" mcc="208" mnc="10" apn="internetdebitel" spn="Debitel" type="default,supl" />
- <apn carrier="WAP LeclercMobile" mcc="208" mnc="10" apn="wap66" proxy="192.168.21.9" port="8080" spn="Leclerc" type="default,supl" />
- <apn carrier="MMS LeclercMobile" mcc="208" mnc="10" apn="mms66" proxy="" port="" mmsproxy="10.143.156.9" mmsport="8080" mmsc="http://mms65" spn="Leclerc" type="mms" />
- <apn carrier="NRJ WAP" mcc="208" mnc="10" apn="wapnrj" proxy="192.168.21.5" port="8080" spn="NRJ (SFR)" type="default,supl" />
- <apn carrier="NRJ MMS" mcc="208" mnc="10" apn="mmsnrj" proxy="" port="" mmsproxy="10.143.156.5" mmsport="8080" mmsc="http://mmsnrj" user="" password="" spn="NRJ (SFR)" type="mms" />
- <apn carrier="NRJ WEB" mcc="208" mnc="10" apn="fnetnrj" proxy="" port="" user="" password="" mmsc="" spn="NRJ (SFR)" type="default,supl" />
- <apn carrier="NRJ Mobile FR Internet" mcc="208" mnc="10" apn="internetnrj" proxy="" port="" user="" password="" mmsc="" type="dun" />
- <apn carrier="SFR Internet Mobile" mcc="208" mnc="10" apn="sl2sfr" user="" password="" spn="F SFR" type="default,supl" />
- <apn carrier="SFR MMS" mcc="208" mnc="10" apn="mmssfr" proxy="" port="" mmsproxy="10.151.0.1" mmsport="8080" mmsc="http://mms1" user="" password="" spn="F SFR" type="mms" />
- <apn carrier="SFR WEB" mcc="208" mnc="10" apn="websfr" user="" password="" spn="F SFR" type="default,dun" />
- <apn carrier="SFR WAP" mcc="208" mnc="10" apn="wapsfr" proxy="195.115.25.129" port="8080" user="none" password="none" server="*" mmsc="" type="default,supl" />
- <apn carrier="SFR MMS" mcc="208" mnc="10" apn="mmssfr" proxy="" port="" user="" password="" mmsc="http://mms1" mmsproxy="10.151.0.1" mmsport="8080" type="mms" />
- <apn carrier="SFR" mcc="208" mnc="10" apn="sl2sfr" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="SFR Option Modem" mcc="208" mnc="10" apn="sl2sfr" proxy="" port="" user="" password="" mmsc="" type="default,dun" />
- <apn carrier="SFR MMS" mcc="208" mnc="10" apn="sl2sfr" proxy="" port="" user="" password="" mmsc="http://mms1" mmsproxy="10.151.0.1" mmsport="8080" type="mms" />
- <apn carrier="ACCESS DATA" mcc="208" mnc="10" apn="websfr" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="ACCESS DATA" type="supl" />
- <apn carrier="Internet Joe" mcc="208" mnc="10" apn="sl2sfr" authtype="0" type="default,supl,fota" />
- <apn carrier="Web La Poste" mcc="208" mnc="10" apn="wapdebitel" proxy="192.168.21.3" port="8080" type="default,supl" />
- <apn carrier="Coriolis WEB" mcc="208" mnc="10" apn="internetcoriolis" authtype="0" type="default,supl,fota,dun" />
- <apn carrier="RegloMobile WAP" mcc="208" mnc="10" apn="wap66" proxy="192.168.21.9" port="8080" authtype="0" type="default,supl,fota,dun" />
- <apn carrier="RegloMobile MMS" mcc="208" mnc="10" apn="mms66" authtype="0" mmsc="http://mms66" mmsproxy="10.143.156.9" mmsport="8080" type="mms" />
- <apn carrier="Keyyo Mobile Internet" mcc="208" mnc="10" apn="internet68" authtype="0" type="default,supl,fota,dun" />
- <apn carrier="Keyyo Mobile MMS" mcc="208" mnc="10" apn="mms68" authtype="0" mmsc="http://mms68" mmsproxy="10.143.156.11" mmsport="8080" type="mms" />
- <apn carrier="Keyyo Mobile Wap" mcc="208" mnc="10" apn="wap68" proxy="192.168.21.11" port="8080" authtype="0" type="default,supl,fota" />
- <apn carrier="internet68" mcc="208" mnc="10" apn="internet68" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="wap68" mcc="208" mnc="10" apn="wap68" proxy="192.168.21.11" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="mms68" mcc="208" mnc="10" apn="mms68" proxy="" port="" user="" password="" mmsc="http://mms68/" mmsproxy="10.143.156.11" mmsport="8080" type="mms" />
- <apn carrier="wap65" mcc="208" mnc="10" apn="wap65" proxy="192.168.21.8" port="8080" user="" password="" mmsc="http://wap.auchantelecom.fr" type="default,supl" />
- <apn carrier="mms65" mcc="208" mnc="10" apn="mms65" proxy="" port="" user="" password="" mmsc="http://mms65/" mmsproxy="10.143.156.8" mmsport="8080" type="mms" />
- <apn carrier="internet69" mcc="208" mnc="10" apn="internet69" proxy="10.143.156.12" port="8080" user="" password="" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="mms69" mcc="208" mnc="10" apn="mms69" proxy="10.143.156.12" port="8080" user="" password="" mmsc="http://mms69" authtype="1" type="mms" />
- <apn carrier="Internet Joe" mcc="208" mnc="10" apn="sl2sfr" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Joe" type="default,supl" />
- <apn carrier="MMS Joe" mcc="208" mnc="10" apn="mmssfr" proxy="" port="" user="" password="" mmsc="http://mms1" mmsproxy="10.151.0.1" mmsport="8080" mvno_type="spn" mvno_match_data="Joe" authtype="1" type="mms" />
- <apn carrier="ACCESS DATA" mcc="208" mnc="10" apn="websfr" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="WEB La Poste Mobile" mcc="208" mnc="10" apn="wapdebitel" proxy="192.168.21.3" port="8080" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="La Poste Mobile" type="default,supl" />
- <apn carrier="MMS La Poste Mobile" mcc="208" mnc="10" apn="mmsdebitel" proxy="" port="" user="" password="" mmsc="http://mmsdebitel" mmsproxy="10.143.156.3" mmsport="8080" mvno_type="spn" mvno_match_data="La Poste Mobile" type="mms" />
- <apn carrier="WEB Leclerc Mobile" mcc="208" mnc="10" apn="wap66" proxy="192.168.21.9" port="8080" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="E.Leclerc Mobile" type="default,supl" />
- <apn carrier="MMS Leclerc Mobile" mcc="208" mnc="10" apn="mms66" proxy="" port="" user="" password="" mmsc="http://mms66" mmsproxy="10.143.156.9" mmsport="8080" mvno_type="spn" mvno_match_data="E.Leclerc Mobile" type="mms" />
- <apn carrier="WAP Mobisud" mcc="208" mnc="10" apn="wap62" proxy="192.168.21.7" port="8080" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Mobisud" type="default,supl" />
- <apn carrier="MMS Mobisud" mcc="208" mnc="10" apn="mms62" proxy="10.143.156.7" port="8080" user="" password="" mmsc="http://mms62" mvno_type="spn" mvno_match_data="Mobisud" type="mms" />
- <apn carrier="Web La Poste" mcc="208" mnc="10" apn="wapdebitel" proxy="192.168.21.3" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Coriolis Web" mcc="208" mnc="10" apn="fnetcoriolis" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="CORIOLIS" type="default,supl" />
- <apn carrier="Coriolis MMS" mcc="208" mnc="10" apn="mmscoriolis" proxy="" port="" user="" password="" mmsc="http://mmscoriolis" mmsproxy="10.143.156.6" mmsport="8080" mvno_type="spn" mvno_match_data="CORIOLIS" type="mms" />
- <apn carrier="MMS" mcc="208" mnc="11" apn="mmssfr" proxy="" port="" user="" password="" mmsc="http://mms1" mmsproxy="10.151.0.1" mmsport="8080" type="mms" />
- <apn carrier="ACCESS DATA" mcc="208" mnc="11" apn="websfr" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="ACCESS DATA" mcc="208" mnc="13" apn="websfr" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="MMS" mcc="208" mnc="13" apn="mmssfr" proxy="" port="" user="" password="" mmsc="http://mms1" mmsproxy="10.151.0.1" mmsport="8080" type="mms" />
- <apn carrier="Free Mobile" mcc="208" mnc="15" apn="free" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Free Mobile MMS" mcc="208" mnc="15" apn="mmsfree" proxy="" port="" user="" password="" mmsc="http://mms.free.fr" type="mms" />
- <apn carrier="Iliad Int" mcc="208" mnc="15" apn="iliad" mmsc="http://mms.iliad-italia.it" type="default,supl,mms" mvno_match_data="F003" mvno_type="gid" />
- <apn carrier="Legos" mcc="208" mnc="17" apn="bornsip" type="default,supl" />
- <apn carrier="Legos MMS" mcc="208" mnc="17" apn="bornsipmms" mmsc="http://mms.bornsip.fr:8191" type="mms" />
- <apn carrier="Bouygues Telecom" mcc="208" mnc="20" apn="mmsbouygtel.com" proxy="" port="" user="" password="" mmsc="http://mms.bouyguestelecom.fr/mms/wapenc" mmsproxy="62.201.129.226" mmsport="8080" mvno_type="spn" mvno_match_data="Bouygues Telecom" type="default,supl,mms" />
- <apn carrier="Bouygues Pro" mcc="208" mnc="20" apn="a2bouygtel.com" user="a2b" password="acces" type="default,supl" />
- <apn carrier="Bouygues WAP" mcc="208" mnc="20" apn="mmsbouygtel.com" type="default,supl" />
- <apn carrier="Bouygues MMS" mcc="208" mnc="20" apn="mmsbouygtel.com" proxy="" port="" user="" password="" mmsc="http://mms.bouyguestelecom.fr/mms/wapenc" mmsproxy="62.201.129.226" mmsport="8080" mvno_type="spn" mvno_match_data="Bouygues Telecom" type="default,supl,mms" />
- <apn carrier="Web" mcc="208" mnc="20" apn="mmsbouygtel.com" proxy="" port="" user="" password="" mmsc="http://wap.bouygtel.fr/" type="default,supl" />
- <apn carrier="Lebara internet" mcc="208" mnc="20" apn="fr.lebara.mobi" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Lebara" type="default,supl" />
- <apn carrier="Numericable 3G" mcc="208" mnc="20" apn="numericable.fr" proxy="" port="" user="" password="" mmsc="http://m.numericable.fr" mvno_type="spn" mvno_match_data="Numericable" type="default,supl" />
- <apn carrier="Simyo Web" mcc="208" mnc="20" apn="gprs-service-fr.net" proxy="195.230.105.25" port="8080" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Simyo" authtype="3" type="default,supl" />
- <apn carrier="BouyguesGPRS ISP" mcc="208" mnc="21" apn="ebouygtel.com" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="MMS Bouygues" mcc="208" mnc="21" apn="mmsbouygtel.com" proxy="" port="" user="" password="" mmsc="http://mms.bouyguestelecom.fr/mms/wapenc" mmsproxy="62.201.129.226" mmsport="8080" type="mms" />
- <apn carrier="Virgin FR" mcc="208" mnc="23" apn="virgin-mobile.fr" mmsc="http://virginmms.fr" mmsproxy="10.6.10.1" mmsport="8080" type="default,mms" />
- <apn carrier="Virgin Mobile" mcc="208" mnc="23" apn="virgin-mobile.fr" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Virgin" type="default,supl" />
- <apn carrier="Virgin MMS" mcc="208" mnc="23" apn="virgin-mobile.fr" proxy="" port="" user="" password="" mmsc="http://virginmms.fr" mmsproxy="10.6.10.1" mmsport="8080" mvno_type="spn" mvno_match_data="Virgin" type="mms" />
- <apn carrier="VM WAP" mcc="208" mnc="23" apn="virgin-mobile.fr" proxy="10.6.10.1" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="VM MMS" mcc="208" mnc="23" apn="virgin-mobile.fr" proxy="" port="" user="" password="" mmsc="http://virginmms.fr" mmsproxy="10.6.10.1" mmsport="8080" type="mms" />
- <apn carrier="Lycamobile FR" mcc="208" mnc="25" apn="data.lycamobile.fr" user="lmfr" password="plus" type="default,supl" />
- <apn carrier="Lyca FR" mcc="208" mnc="25" apn="data.lycamobile.fr" proxy="" port="" user="Imfr" password="plus" mmsc="" type="Internet" />
- <apn carrier="NRJ WEB" mcc="208" mnc="26" apn="fnetnrj" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="NRJ MMS" mcc="208" mnc="26" apn="mmsnrj" proxy="" port="" user="" password="" mmsc="http://mmsnrj" mmsproxy="10.143.156.5" mmsport="8080" type="mms" />
- <apn carrier="EI Telecom" mcc="208" mnc="26" apn="fnetnrj" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="EI Telecom" type="default,supl" />
- <apn carrier="EI Telecom MMS" mcc="208" mnc="26" apn="mmsnrj" proxy="" port="" user="" password="" mmsc="http://mmsnrj" mmsproxy="10.143.156.5" mmsport="8080" mvno_type="spn" mvno_match_data="EI Telecom" type="mms" />
- <apn carrier="Syma" mcc="208" mnc="30" apn="symacom.fr" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="BouyguesGPRS ISP" mcc="208" mnc="88" apn="ebouygtel.com" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="MMS Bouygues" mcc="208" mnc="88" apn="mmsbouygtel.com" proxy="" port="" user="" password="" mmsc="http://mms.bouyguestelecom.fr/mms/wapenc" mmsproxy="62.201.129.226" mmsport="8080" type="mms" />
- <apn carrier="NRJ WEB" mcc="209" mnc="01" apn="ofnew.fr" user="orange" password="orange" spn="NRJ (ORANGE)" type="default,supl" />
- <apn carrier="Vodafone ES" mcc="214" mnc="01" apn="airtelwap.es" proxy="" port="" mmsc="" user="wap@wap" password="wap125" authtype="0" type="default,supl" />
- <apn carrier="Vodafone ES MMS" mcc="214" mnc="01" apn="mms.vodafone.net" proxy="" port="" mmsproxy="212.73.32.10" mmsport="80" mmsc="http://mmsc.vodafone.es/servlets/mms" user="wap@wap" password="wap125" authtype="0" type="mms" />
- <apn carrier="Vodafone ES IMS" mcc="214" mnc="01" apn="ims" type="ims" protocol="IPV4V6" />
- <apn carrier="Movistar" mcc="214" mnc="02" apn="telefonica.es" proxy="10.138.255.133" port="8080" mmsc="" user="telefonica" password="telefonica" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="214" mnc="02" apn="telefonica.es" proxy="" port="" mmsproxy="10.138.255.5" mmsport="8080" mmsc="http://mms.movistar.com" user="telefonica" password="telefonica" type="mms" />
- <apn carrier="Movistar" mcc="214" mnc="02" apn="movistar.es" user="MOVISTAR" password="MOVISTAR" type="dun,default" />
- <apn carrier="Orange Internet Móvil" mcc="214" mnc="03" apn="orangeworld" mmsc="" user="orange" password="orange" authtype="1" type="default,supl" />
- <apn carrier="Orange Internet PC" mcc="214" mnc="03" apn="internet" user="orange" password="orange" authtype="1" type="dun" />
- <apn carrier="Orange MMS" mcc="214" mnc="03" apn="orangemms" proxy="" port="" user="orange" password="orange" mmsc="http://mms.orange.es" mmsproxy="172.22.188.25" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Suop" mcc="214" mnc="03" apn="inet.es" type="default,supl" />
- <apn carrier="Carrefour Internet" mcc="214" mnc="03" apn="CARREFOURINTERNET" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Carrefour" type="default,supl" />
- <apn carrier="Carrefour MMS" mcc="214" mnc="03" apn="carrefourmms" proxy="" port="" user="carrefour" password="carrefour" mmsc="http://mms.orange.es" mmsproxy="172.22.188.25" mmsport="8080" mvno_type="spn" mvno_match_data="Carrefour" type="mms" />
- <apn carrier="Llamaya Internet" mcc="214" mnc="03" apn="moreinternet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Llamaya MMS" mcc="214" mnc="03" apn="moremms" proxy="" port="" user="" password="" mmsc="http://mms.orange.es" mmsproxy="172.022.188.25" mmsport="8080" type="mms" />
- <apn carrier="MasMovil Internet" mcc="214" mnc="03" apn="internetmas" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="MasMovil" type="default,supl" />
- <apn carrier="MasMovil 30MB" mcc="214" mnc="03" apn="int.socialmas" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="MasMovil" type="default,supl" />
- <apn carrier="MasMovil MMS" mcc="214" mnc="03" apn="masvidamms" proxy="" port="" user="masvidamms" password="MMSmasvida" mmsc="http://mms.orange.es" mmsproxy="172.22.188.25" mmsport="8080" mvno_type="spn" mvno_match_data="MasMovil" type="mms" />
- <apn carrier="Jazztel MMS" mcc="214" mnc="03" 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="03" apn="jazzinternet" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="JAZZTEL" type="default,supl" />
- <apn carrier="Yoigo Internet" mcc="214" mnc="04" apn="internet" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="Yoigo MMS" mcc="214" mnc="04" apn="mms" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.141" mmsport="80" type="mms" />
- <apn carrier="Tuenti" mcc="214" mnc="05" apn="tuenti.com" user="tuenti" password="tuenti" mmsc="http://tuenti.com" mmsproxy="10.138.255.43" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Tuenti Internet" mcc="214" mnc="05" apn="tuenti.com" proxy="" port="" user="tuenti" password="tuenti" mmsc="" mvno_type="spn" mvno_match_data="Tuenti" type="default,supl" />
- <apn carrier="Tuenti MMS" mcc="214" mnc="05" apn="tuenti.com" proxy="" port="" user="tuenti" password="tuenti" mmsc="http://tuenti.com" mmsproxy="10.138.255.43" mmsport="8080" mvno_type="spn" mvno_match_data="Tuenti" authtype="1" type="mms" />
- <apn carrier="Pepephone 4G Internet" mcc="214" mnc="05" apn="gprs.pepephone.com" type="default,supl" />
- <apn carrier="Pepephone 4G MMS" mcc="214" mnc="05" apn="gprs.pepephone.com" mmsc="http://www.pepephone.com" mmsproxy="10.138.255.43" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="INET Roaming" mcc="214" mnc="05" apn="inet.es" user="" password="" port="" proxy="" type="default,supl,foat,hipri" roaming_protocol="IPV4V6" mvno_type="imsi" mvno_match_data="214050104xxxxxx" />
- <apn carrier="Pepephone Internet" mcc="214" mnc="06" apn="gprsmov.pepephone.com" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Pepephone" type="default,supl" />
- <apn carrier="Pepephone MMS" mcc="214" mnc="06" apn="mms.pepephone.com" proxy="" port="" user="wap@wap" password="wap125" mmsc="http://mms.pepephone.com/servlets/mms" mmsproxy="212.73.32.10" mmsport="80" mvno_type="spn" mvno_match_data="Pepephone" type="mms" />
- <apn carrier="Lowi" mcc="214" mnc="06" apn="lowi.private.omv.es" type="default,supl" />
- <apn carrier="Lowi MMS" mcc="214" mnc="06" apn="mms.lowi.omv.es" proxy="" port="" user="wap@wap" password="wap125" mmsc="http://mms.lowi.omv.es/servlets/mms" mmsproxy="212.73.32.10" mmsport="80" type="mms" />
- <apn carrier="Vodafone GPRS" mcc="214" mnc="06" apn="airtelnet.es" user="vodafone" password="vodafone" type="default,supl" />
- <apn carrier="Vodafone MMS" mcc="214" mnc="06" apn="mms.vodafone.net" proxy="" port="" user="wap@wap" password="wap125" mmsc="http://mmsc.vodafone.es/servlets/mms" mmsproxy="212.73.32.10" mmsport="80" type="mms" />
- <apn carrier="Lebara Internet" mcc="214" mnc="06" apn="gprsmov.lebaramobile.es" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Lebara" type="default,supl" />
- <apn carrier="Lebara MMS" mcc="214" mnc="06" apn="mms.lebaramobile.es" proxy="" port="" user="wap@wap" password="wap125" mmsc="http://mms.lebaramobile.es/servlets/mms" mmsproxy="212.73.32.10" mmsport="80" mvno_type="spn" mvno_match_data="Lebara" type="mms" />
- <apn carrier="Eroski Movil MMS" mcc="214" mnc="06" apn="mms.eroskimovil.es" proxy="" port="" user="wap@wap" password="wap124" mmsc="http://mms.eroskimovil.es/servlets/mms" mmsproxy="212.73.32.10" mmsport="80" mvno_type="spn" mvno_match_data="Eroski Movil" type="mms" />
- <apn carrier="Eroski Internet" mcc="214" mnc="06" apn="gprs.eroskimovil.es" proxy="" port="" user="wap@wap" password="wap125" mmsc="" type="default,supl" />
- <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="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" />
- <apn carrier="Euskaltel MMS" mcc="214" mnc="08" apn="euskaltelmms.euskaltel.mobi" user="MMS" password="EUSKALTEL" mmsc="http://mms.euskaltel.mobi" mmsproxy="172.16.18.74" mmsport="8080" type="mms" />
- <apn carrier="Lebara Internet" mcc="214" mnc="08" apn="gprsmov.lebaramobile.es" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Lebara" type="default,supl" />
- <apn carrier="Lebara MMS" mcc="214" mnc="08" apn="mms.lebaramobile.es" proxy="" port="" user="wap@wap" password="wap125" mmsc="http://mms.lebaramobile.es/servlets/mms" mmsproxy="212.73.32.10" mmsport="80" mvno_type="spn" mvno_match_data="Lebara" type="mms" />
- <apn carrier="Euskaltel Internet" mcc="214" mnc="08" apn="internet.euskaltel.mobi" proxy="" port="" user="CLIENTE" password="EUSKALTEL" mmsc="" type="default,supl" />
- <apn carrier="Euskaltel MMS" mcc="214" mnc="08" apn="euskaltelmms.euskaltel.mobi" proxy="" port="" user="MMS" password="EUSKALTEL" mmsc="http://mms.euskaltel.mobi" mmsproxy="172.16.18.74" mmsport="8080" type="mms" />
- <apn carrier="TeleCable Internet" mcc="214" mnc="16" apn="internet.telecable.es" user="telecable" password="telecable" type="default,supl" />
- <apn carrier="TeleCable MMS" mcc="214" mnc="16" apn="mms.telecable.es" user="telecable" password="telecable" mmsc="http://mms.telecable.es/mms/" mmsproxy="212.89.0.84" mmsport="8080" type="mms" />
- <apn carrier="ONO Internet" mcc="214" mnc="18" apn="internet.ono.com" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="ONO MMS" mcc="214" mnc="18" apn="mms.ono.com" proxy="" port="" user="" password="" mmsc="http://mms.ono.com" mmsproxy="10.126.0.50" mmsport="8080" type="mms" />
- <apn carrier="Simyo ES" mcc="214" mnc="19" apn="gprs-service.com" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="simyo" type="default,supl" />
- <apn carrier="Simyo ES MMS" mcc="214" mnc="19" apn="gprs-service.com" proxy="" port="" user="" password="" mmsc="http://mms-services.eu" mmsproxy="217.12.32.180" mmsport="8080" mvno_type="spn" mvno_match_data="simyo" type="mms" />
- <apn carrier="Blau ES" mcc="214" mnc="19" apn="gprs-service.com" proxy="" port="" user="" password="" mmsc="http://217.18.32.180:8080" mmsproxy="217.18.32.181" mmsport="8080" mvno_type="spn" mvno_match_data="Blau" type="default,supl,mms" />
- <apn carrier="Jazztel" mcc="214" mnc="21" apn="jazzinternet" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="JAZZTEL" type="default,supl" />
- <apn carrier="Jazztel MMS" mcc="214" mnc="21" 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 MMS" mcc="214" mnc="21" apn="jazzmms" mmsc="http://jazztelmms.com:8081" mmsproxy="217.18.32.183" mmsport="8081" type="mms" />
- <apn carrier="Digimobil Internet" mcc="214" mnc="22" apn="internet.digimobil.es" proxy="" port="" user="digi" password="digi" mmsc="" mvno_type="spn" mvno_match_data="DigiMobil" type="default,supl" />
- <apn carrier="Lycamobile" mcc="214" mnc="25" apn="data.lycamobile.es" proxy="" port="" user="lmes" password="plus" mmsc="" mvno_type="spn" mvno_match_data="Lycamobile" type="default,supl,mms" />
- <apn carrier="Truphone" mcc="214" mnc="27" apn="truphone.com" proxy="" port="" user="" password="" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="Tuenti" mcc="214" mnc="32" apn="tuenti.com" proxy="" port="" user="tuenti" password="tuenti" mmsc="" mvno_type="spn" mvno_match_data="Tuenti" type="default,supl,mms" />
- <apn carrier="Masmovil" mcc="214" mnc="32" apn="internetmas" type="default,supl" />
- <apn carrier="INET Internet" mcc="214" mnc="34" apn="inet.es" user="" password="" port="" proxy="" type="default,supl,foat,hipri" protocol="IPV4V6" />
- <apn carrier="Telenor Net" mcc="216" mnc="01" apn="net" type="default,supl" />
- <apn carrier="Telenor online" mcc="216" mnc="01" apn="online" user="" password="" type="default,supl" />
- <apn carrier="Telenor MMS" mcc="216" mnc="01" apn="mms" proxy="" port="" mmsproxy="84.225.255.1" mmsport="8080" mmsc="http://mmsc.telenor.hu/" user="" password="" type="mms" />
- <apn carrier="Pannon" mcc="216" mnc="01" apn="net" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Pannon MMS" mcc="216" mnc="01" apn="mms" proxy="" port="" user="" password="" mmsc="http://mmsc.pgsm.hu/" mmsproxy="193.225.154.22" mmsport="8080" type="mms" />
- <apn carrier="Telenor Net" mcc="216" mnc="01" apn="net" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="T-Mobile HU" mcc="216" mnc="30" apn="wnw" proxy="" port="" user="" password="" mmsc="http://mms.t-mobile.hu/servlets/mms" mmsproxy="212.51.126.10" mmsport="8080" type="default,supl" />
- <apn carrier="T-Mobile NET GPRS" mcc="216" mnc="30" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="T-Mobile MMS" mcc="216" mnc="30" apn="mms" proxy="" port="" mmsproxy="212.051.126.010" mmsport="8080" mmsc="http://mms.t-mobile.hu/servlets/mms" user="mms" password="mms" authtype="1" type="mms" />
- <apn carrier="Telekom HU NET" mcc="216" mnc="30" apn="internet.telekom" type="default,supl" />
- <apn carrier="Telekom HU MMS" mcc="216" mnc="30" apn="internet.telekom" mmsc="http://mms.t-mobile.hu/servlets/mms" mmsproxy="212.51.126.10" mmsport="8080" type="mms" />
- <apn carrier="Vodafone HU" mcc="216" mnc="70" apn="internet.vodafone.net" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="VF Internet VitaMax" mcc="216" mnc="70" apn="vitamax.internet.vodafone.net" user="" password="" type="default,supl" />
- <apn carrier="Vodafone HU MMS" mcc="216" mnc="70" apn="mms.vodafone.net" proxy="" port="" user="" password="" mmsc="http://mms.vodafone.hu/servlets/mms" mmsproxy="80.244.97.2" mmsport="8080" type="mms" />
- <apn carrier="ERONET START" mcc="218" mnc="03" apn="gprs.eronet.ba" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="ERONET MI 50" mcc="218" mnc="03" apn="web.eronet.ba" proxy="" port="" user="" password="" mmsc="" type="supl" />
- <apn carrier="ERONET MI 200" mcc="218" mnc="03" apn="web.eronet.ba" proxy="" port="" user="" password="" mmsc="" type="supl" />
- <apn carrier="ERONET 512" mcc="218" mnc="03" apn="data1.eronet.ba" proxy="" port="" user="" password="" mmsc="" type="supl" />
- <apn carrier="ERONET 1GB" mcc="218" mnc="03" apn="data4.eronet.ba" proxy="" port="" user="" password="" mmsc="" type="supl" />
- <apn carrier="ERONET 4GB" mcc="218" mnc="03" apn="data2.eronet.ba" proxy="" port="" user="" password="" mmsc="" type="supl" />
- <apn carrier="ERONET FLAT" mcc="218" mnc="03" apn="data3.eronet.ba" proxy="" port="" user="" password="" mmsc="" type="supl" />
- <apn carrier="ERONET MMS" mcc="218" mnc="03" apn="mms.eronet.ba" proxy="" port="" user="" password="" mmsc="http://mms.gprs.eronet.ba/mms/wapenc" mmsproxy="10.12.3.11" mmsport="8080" type="mms" />
- <apn carrier="M-tel" mcc="218" mnc="05" apn="3g1" proxy="192.168.61.10" port="80" type="default,supl" />
- <apn carrier="M-tel Frend" mcc="218" mnc="05" apn="mtelfrend" proxy="" port="" user="" password="" mmsc="" type="default,supl" protocol="IPV4" roaming_protocol="IPV4" />
- <apn carrier="M-tel mms" mcc="218" mnc="05" apn="mtelmms" mmsc="http://mmsc.mtel.ba/mms/wapenc" mmsproxy="192.168.61.11" mmsport="8080" type="mms" />
- <apn carrier="BH Mobile" mcc="218" mnc="90" apn="active.bhmobile.ba" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="BH Mobile MMS" mcc="218" mnc="90" apn="mms.bhmobile.ba" proxy="" port="" user="" password="" mmsc="http://mms.bhmobile.ba/cmmsc/post" mmsproxy="195.222.56.41" mmsport="8080" type="mms" />
- <apn carrier="T-Mobile HR" mcc="219" mnc="01" apn="web.htgprs" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="TM HR WAP" apn="www.htgprs.hr" proxy="10.12.0.3" port="8080" user="" password="" mmsc="" mcc="219" mnc="01" authtype="1" type="default,supl" />
- <apn carrier="T-Mobile HR MMS" mcc="219" mnc="01" apn="mms.htgprs" proxy="" port="" user="" password="" mmsc="http://mms.t-mobile.hr/servlets/mms" mmsproxy="10.12.0.4" mmsport="8080" type="mms" />
- <apn carrier="T-Mobile HR" mcc="219" mnc="01" apn="internet.ht.hr" type="default,supl" />
- <apn carrier="Tele2 HR" mcc="219" mnc="02" apn="wap.tele2.hr" mmsc="http://mmsc.tele2.hr" mmsproxy="193.12.40.66" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Tele2 HR" mcc="219" mnc="02" apn="wap.tele2.hr" proxy="" port="" user="" password="" mmsc="http://mmsc.tele2.hr" mmsproxy="193.12.40.66" mmsport="8080" type="default,supl,mms" />
- <apn carrier="VIPnet" mcc="219" mnc="10" apn="gprs0.vipnet.hr" type="default,supl" />
- <apn carrier="VIPnet" mcc="219" mnc="10" apn="data.vip.hr" user="38591" password="38591" server="219.91.99.91" type="default,supl" />
- <apn carrier="VIPnet MMS" mcc="219" mnc="10" apn="mms.vipnet.hr" mmsc="http://mms.vipnet.hr/servlets/mms" mmsproxy="212.91.99.91" mmsport="8080" type="mms" />
- <apn carrier="Telenor RS" mcc="220" mnc="01" apn="internet" user="telenor" password="gprs" proxy="217.65.192.33" port="8080" type="default,supl" />
- <apn carrier="Telenor RS MMS" mcc="220" mnc="01" apn="mms" mmsc="http://mms.telenor.rs/servlets/mms" mmsproxy="217.65.192.33" mmsport="8080" type="mms" />
- <apn carrier="Telenor MNE internet" mcc="220" mnc="02" apn="internet" proxy="192.168.246.005" port="8080" mmsc="" user="gprs" password="gprs" type="default,supl" />
- <apn carrier="Telenor MNE mms" mcc="220" mnc="02" apn="mms" proxy="" port="" mmsproxy="192.168.246.005" mmsport="8080" mmsc="http://mm.vor.telenor.me" user="mms" password="mms" type="mms" />
- <apn carrier="MTS RS INTERNET" mcc="220" mnc="03" apn="gprsinternet" user="mts" password="064" proxy="" port="" type="default,supl" />
- <apn carrier="MTS RS" mcc="220" mnc="03" apn="gprswap" proxy="172.17.88.198" port="8080" user="mts" password="064" mmsc="" type="default,supl" />
- <apn carrier="MTS RS MMS" mcc="220" mnc="03" apn="mms" proxy="" port="" user="mts" password="064" mmsc="http://mms.mts064.telekom.rs/mms/wapenc" mmsproxy="172.17.85.131" mmsport="8080" type="mms" />
- <apn carrier="T-Mobile Internet" mcc="220" mnc="04" apn="tmcg-wnw" proxy="010.000.005.019" port="8080" user="38267" password="38267" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="T-Mobile MMS" mcc="220" mnc="04" apn="mms" proxy="" port="" user="38267" password="38267" mmsc="http://192.168.180.100/servlets/mms" mmsproxy="010.000.005.019" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Vip MMS" mcc="220" mnc="05" apn="vipmobile.mms" proxy="" port="" mmsproxy="212.15.182.82" mmsport="8080" mmsc="http://mmsc.vipmobile.rs" user="vipmobile" password="vipmobile" type="mms" />
- <apn carrier="Vip GPRS" mcc="220" mnc="05" apn="vipmobile" proxy="212.15.182.82" port="8080" mmsc="" user="vipmobile" password="vipmobile" authtype="1" type="default,supl" />
- <apn carrier="Vip MMS" mcc="220" mnc="05" apn="vipmobile.mms" proxy="" port="" mmsproxy="212.15.182.82" mmsport="8080" mmsc="http://mmsc.vipmobile.rs" user="vipmobile" password="vipmobile" authtype="1" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="01" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" mvno_type="spn" mvno_match_data="IUSACELL" />
- <apn carrier="Internet Modem" mcc="222" mnc="01" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" mvno_type="spn" mvno_match_data="IUSACELL" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="01" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" mvno_type="spn" mvno_match_data="IUSACELL" />
- <apn carrier="Unefon Internet" mcc="222" mnc="01" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" mvno_type="spn" mvno_match_data="UNEFON" />
- <apn carrier="Unefon Modem" mcc="222" mnc="01" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" mvno_type="spn" mvno_match_data="UNEFON" />
- <apn carrier="Unefon MMS" mcc="222" mnc="01" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" mvno_type="spn" mvno_match_data="UNEFON" />
- <apn carrier="TIM IT" mcc="222" mnc="01" apn="ibox.tim.it" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="TIM IT WAP" mcc="222" mnc="01" apn="wap.tim.it" proxy="" port="" user="WAPTIM" password="WAPTIM" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="TIM MMS" mcc="222" mnc="01" apn="mms.tim.it" proxy="" port="" user="" password="" mmsc="http://mms.tim.it/servlets/mms" mmsproxy="213.230.130.89" mmsport="80" type="mms" />
- <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="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="Fastweb 4G" mcc="222" mnc="08" apn="apn.fastweb.it" proxy="" port="" user="" password="" mmsc="http://mms.fastweb.it/mms/wapenc" mmsproxy="85.18.189.217" mmsport="8080" mvno_type="spn" mvno_match_data="FASTWEB" authtype="2" type="default,supl,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" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="011" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Internet Modem" mcc="222" mnc="011" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="011" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="012" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Internet Modem" mcc="222" mnc="012" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="012" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="013" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Internet Modem" mcc="222" mnc="013" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="013" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="014" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Internet Modem" mcc="222" mnc="014" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="014" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="015" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Internet Modem" mcc="222" mnc="015" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="015" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="016" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Internet Modem" mcc="222" mnc="016" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="016" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="017" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Internet Modem" mcc="222" mnc="017" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="017" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="018" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Internet Modem" mcc="222" mnc="018" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="018" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="019" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Internet Modem" mcc="222" mnc="019" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="019" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Vodafone Tethering" mcc="222" mnc="10" apn="web.omnitel.it" type="dun" />
- <apn carrier="Vodafone IT" mcc="222" mnc="10" apn="mobile.vodafone.it" type="default,supl" />
- <apn carrier="Vodafone IT MMS" mcc="222" mnc="10" apn="mms.vodafone.it" mmsproxy="10.128.224.10" mmsport="80" mmsc="http://mms.vodafone.it/servlets/mms" type="mms" />
- <apn carrier="Vodafone IT IMS" mcc="222" mnc="10" apn="ims" type="ims" protocol="IPV4V6" />
- <apn carrier="Internet da cellulare" mcc="222" mnc="10" apn="wap.omnitel.it" proxy="10.128.201.76" port="80" type="default,supl" />
- <apn carrier="PosteMobile" mcc="222" mnc="10" apn="internet.postemobile.it" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="PosteMobile" type="default,supl" />
- <apn carrier="PosteMobile WAP" mcc="222" mnc="10" apn="wap.postemobile.it" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="PosteMobile" spn="Post mobile" type="default,supl" />
- <apn carrier="PosteMobile MMS" mcc="222" mnc="10" apn="mms.postemobile.it" proxy="" port="" user="" password="" mmsc="http://mms.postemobile.it/servlets/mms" mmsproxy="10.128.224.10" mmsport="80" mvno_type="spn" mvno_match_data="PosteMobile" spn="Post mobile" type="mms" />
- <apn carrier="Lycamobile" mcc="222" mnc="10" apn="data.lycamobile.it" user="lmit" password="plus" type="default,supl" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="11" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Iusacell Modem" mcc="222" mnc="11" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="11" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="12" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Iusacell Modem" mcc="222" mnc="12" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="12" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="13" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Iusacell Modem" mcc="222" mnc="13" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="13" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="14" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Iusacell Modem" mcc="222" mnc="14" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="14" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="15" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Iusacell Modem" mcc="222" mnc="15" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="15" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="16" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Iusacell Modem" mcc="222" mnc="16" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="16" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="17" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Iusacell Modem" mcc="222" mnc="17" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="17" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="18" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Iusacell Modem" mcc="222" mnc="18" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="18" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="222" mnc="19" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Iusacell Modem" mcc="222" mnc="19" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="222" mnc="19" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Lycamobile IT" mcc="222" mnc="35" apn="data.lycamobile.it" proxy="" port="" user="lmit" password="plus" mmsc="" mvno_type="spn" mvno_match_data="Lycamobile" type="default,supl" />
- <apn carrier="Iliad" mcc="222" mnc="50" apn="iliad" mmsc="http://mms.iliad-italia.it" type="default,supl,mms" />
- <apn carrier="Wind IT WEB" mcc="222" mnc="88" apn="internet.wind" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Wind IT MMS" mcc="222" mnc="88" apn="mms.wind" proxy="" port="" user="" password="" mmsc="http://mms.wind.it" mmsproxy="212.245.244.11" mmsport="8080" type="mms" />
- <apn carrier="3" mcc="222" mnc="99" apn="tre.it" proxy="" port="" user="" password="" mmsc="http://10.216.59.240:10021/mmsc" mmsproxy="62.13.171.3" mmsport="8799" type="default,supl,mms" />
- <apn carrier="3 IT" mcc="222" mnc="99" apn="tre.it" proxy="" port="" user="" password="" mmsc="http://10.216.59.240:10021/mmsc" mmsproxy="wsb.treumts.it" mmsport="8799" type="default,supl,mms" />
- <apn carrier="Fastweb 3G" mcc="222" mnc="99" apn="apn.fastweb.it" proxy="" port="" user="" password="" mmsc="http://mms.fastweb.it/mms/wapenc" mmsproxy="10.0.65.9" mmsport="8080" mvno_type="spn" mvno_match_data="FASTWEB" authtype="2" type="default,supl,mms" />
- <apn carrier="Vodafone Internet" mcc="226" mnc="01" apn="internet.vodafone.ro" proxy="" port="" user="internet.vodafone.ro" password="vodafone" mmsc="" type="default,supl" />
- <apn carrier="Vodafone RO" mcc="226" mnc="01" apn="internet.vodafone.ro" proxy="" port="" user="internet.vodafone.ro" password="vodafone" mmsc="" type="default,supl" />
- <apn carrier="Vodafone RO live! PRE" mcc="226" mnc="01" apn="live.pre.vodafone.com" proxy="193.230.161.231" port="8080" user="live" password="vodafone" mmsc="" type="default,supl" />
- <apn carrier="Vodafone RO live!" mcc="226" mnc="01" apn="live.vodafone.com" proxy="193.230.161.231" port="8080" user="live" password="vodafone" mmsc="" type="default,supl" />
- <apn carrier="Vodafone RO MMS PRE" mcc="226" mnc="01" apn="mms.pre.vodafone.ro" proxy="" port="" user="mms" password="vodafone" mmsc="http://multimedia/servlets/mms" mmsproxy="193.230.161.231" mmsport="8080" type="mms" />
- <apn carrier="Vodafone RO MMS" mcc="226" mnc="01" apn="mms.vodafone.ro" proxy="" port="" user="mms" password="vodafone" mmsc="http://multimedia/servlets/mms" mmsproxy="193.230.161.231" mmsport="8080" type="mms" />
- <apn carrier="Cosmote Internet" mcc="226" mnc="03" apn="internet" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="Cosmote Broadband RO" mcc="226" mnc="03" apn="broadband" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Cosmote RO MMS" mcc="226" mnc="03" apn="mms" proxy="" port="" user="mms" password="mms" mmsc="http://mmsc1.mms.cosmote.ro:8002" mmsproxy="10.252.1.62" mmsport="8080" type="mms" />
- <apn carrier="Cosmote WNW RO" mcc="226" mnc="03" apn="wnw" proxy="10.252.1.62" port="8080" user="wnw" password="wnw" mmsc="" type="default,supl" />
- <apn carrier="Telekom Romania Broadband" mcc="226" mnc="03" apn="broadband" type="default,supl" />
- <apn carrier="Digi Mobil" mcc="226" mnc="05" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="DIGI Proxy" mcc="226" mnc="05" apn="internet" proxy="10.10.3.130" port="8080" mmsc="" user="" password="" authtype="1" type="default,supl" />
- <apn carrier="MMS" mcc="226" mnc="05" apn="mms" proxy="" port="" mmsc="http://10.10.3.133:8002" user="" password="" type="mms" />
- <apn carrier="Cosmote Internet" mcc="226" mnc="06" apn="internet" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="Cosmote MMS" mcc="226" mnc="06" apn="mms" proxy="" port="" mmsproxy="10.252.1.62" mmsport="8080" mmsc="http://mmsc1.mms.cosmote.ro:8002" user="" password="" authtype="3" type="mms" />
- <apn carrier="web'n'walk" mcc="226" mnc="06" apn="wnw" user="wnw" password="wnw" type="default,supl" />
- <apn carrier="Orange MMS" mcc="226" mnc="10" apn="mms" proxy="" port="" mmsproxy="62.217.247.252" mmsport="8799" mmsc="http://wap.mms.orange.ro:8002" user="" password="" type="mms" />
- <apn carrier="Orange Internet" mcc="226" mnc="10" apn="net" user="" password="" type="default,supl" />
- <apn carrier="Swisscom" mcc="228" mnc="01" apn="gprs.swisscom.ch" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="Swisscom-MMS" mcc="228" mnc="01" apn="event.swisscom.ch" proxy="" port="" mmsproxy="192.168.210.2" mmsport="8080" mmsc="http://mms.natel.ch:8079" user="" password="" authtype="3" type="mms" />
- <apn carrier="Sunrise Internet" mcc="228" mnc="02" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Sunrise MMS" mcc="228" mnc="02" apn="mms.sunrise.ch" proxy="" port="" user="" password="" mmsc="http://mmsc.sunrise.ch" mmsproxy="212.35.34.75" mmsport="8080" type="mms" />
- <apn carrier="Salt Internet" mcc="228" mnc="03" apn="internet" type="default,supl" />
- <apn carrier="Salt MMS" mcc="228" mnc="03" apn="mms" mmsc="http://192.168.151.3:8002" mmsproxy="192.168.151.2" mmsport="8080" type="mms" />
- <apn carrier="Salt Prepay" mcc="228" mnc="03" apn="click" type="default,supl" />
- <apn carrier="Lycamobile CH" mcc="228" mnc="54" apn="data.lycamobile.ch" user="lmch" password="plus" type="default,supl" />
- <apn carrier="T-Mobile CZ IMS" mcc="230" mnc="01" apn="IMS" type="ims" protocol="IPV4V6" />
- <apn carrier="T-Mobile CZ" mcc="230" mnc="01" apn="internet.t-mobile.cz" user="wap" password="wap" server="*" mmsc="http://mms" mmsproxy="010.000.000.010" mmsport="80" type="default,supl" />
- <apn carrier="T-Mobile MMS" mcc="230" mnc="01" apn="mms.t-mobile.cz" proxy="" port="" mmsproxy="010.000.000.010" mmsport="80" mmsc="http://mms" user="mms" password="mms" authtype="1" type="mms" />
- <apn carrier="O2 CZ" mcc="230" mnc="02" apn="internet" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="O2 CZ" mcc="230" mnc="02" apn="wap" proxy="160.218.160.218" port="9201" mmsc="" user="O2" password="wap" type="default,supl" />
- <apn carrier="O2 CZ MMS" mcc="230" mnc="02" apn="mms" proxy="" port="" mmsproxy="160.218.160.218" mmsport="8080" mmsc="http://mms.o2active.cz:8002" user="" password="" authtype="3" type="mms" />
- <apn carrier="Vodafone CZ" mcc="230" mnc="03" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Vodafone CZ MMS" mcc="230" mnc="03" apn="mms" proxy="" port="" user="mms" password="mms" server="mms" mmsc="http://mms" mmsproxy="10.11.10.111" mmsport="80" type="mms" />
- <apn carrier="GPRS Web" mcc="230" mnc="99" apn="Internet" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="MMS" mcc="230" mnc="99" apn="MMS" proxy="" port="" mmsproxy="10.011.010.111" mmsport="80" mmsc="http://mms" user="mms" password="mms" authtype="1" type="mms" />
- <apn carrier="Orange Internet" mcc="231" mnc="01" apn="internet" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="Orange World" mcc="231" mnc="01" apn="orangewap" proxy="213.151.208.156" port="8799" mmsc="" user="wap" password="wap" type="default,supl" authtype="3" />
- <apn carrier="Orange MMS" mcc="231" mnc="01" apn="mms" proxy="" port="" mmsproxy="213.151.208.145" mmsport="8799" mmsc="http://imms.orange.sk" user="wap" password="wap" authtype="3" type="mms" />
- <apn carrier="Orange World" mcc="231" mnc="01" apn="orangewap" user="wap" password="wap" proxy="213.151.208.156" port="8799" type="default,supl" />
- <apn carrier="T-Mobile Internet" mcc="231" mnc="02" apn="internet" user="" password="" authtype="1" type="default,supl" />
- <apn carrier="T-Mobile MMS" mcc="231" mnc="02" apn="mms" proxy="" port="" mmsproxy="192.168.001.001" mmsport="8080" mmsc="http://mms" user="mms" password="mms" authtype="1" type="mms" />
- <apn carrier="Telekom SK" mcc="231" mnc="02" apn="internet" type="default,supl" />
- <apn carrier="Telekom SK MMS" mcc="231" mnc="02" apn="mms" user="mms" password="mms" mmsc="http://mms" mmsproxy="192.168.1.1" mmsport="8080" type="mms" />
- <apn carrier="Telekom SK" mcc="231" mnc="04" apn="internet" type="default,supl" />
- <apn carrier="Telekom SK MMS" mcc="231" mnc="04" apn="mms" user="mms" password="mms" mmsc="http://mms" mmsproxy="192.168.1.1" mmsport="8080" type="mms" />
- <apn carrier="T-Mobile SK" mcc="231" mnc="04" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="T-Mobile SK MMS" mcc="231" mnc="04" apn="mms" proxy="" port="" user="mms" password="mms" mmsc="http://mms" mmsproxy="192.168.1.1" mmsport="8080" type="mms" />
- <apn carrier="Orange Internet" mcc="231" mnc="05" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Orange MMS" mcc="231" mnc="05" apn="mms" proxy="" port="" user="wap" password="wap" mmsc="http://imms.orange.sk" mmsproxy="213.151.208.145" mmsport="8799" type="mms" />
- <apn carrier="Internet" mcc="231" mnc="06" apn="O2 internet" user="" password="" type="default,supl" />
- <apn carrier="mms" mcc="231" mnc="06" apn="o2 mms" proxy="" port="" mmsproxy="10.97.1.11" mmsport="8080" mmsc="http://mms.o2world.sk:8002" user="" password="" type="mms" />
- <apn carrier="O2 SK" mcc="231" mnc="06" apn="o2internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="O2 SK MMS" mcc="231" mnc="06" apn="o2mms" proxy="" port="" user="" password="" mmsc="http://mms.o2world.sk:8002" mmsproxy="10.97.1.11" mmsport="8080" type="mms" />
- <apn carrier="live!" mcc="232" mnc="01" apn="A1.net" proxy="194.48.124.71" port="8001" mmsc="" user="ppp@A1plus.at" password="ppp" authtype="1" type="default,supl" />
- <apn carrier="A1 MMS" mcc="232" mnc="01" apn="free.A1.net" proxy="" port="" mmsproxy="194.48.124.71" mmsport="8001" mmsc="http://mmsc.A1.net" user="ppp@A1plus.at" password="ppp" authtype="1" type="mms" />
- <apn carrier="Mobilkom" mcc="232" mnc="01" apn="a1.net" user="ppp@a1plus.at" password="ppp" type="default,supl" />
- <apn carrier="A1" mcc="232" mnc="01" apn="a1.net" proxy="" port="" user="ppp@A1plus.at" password="ppp" server="*" mmsc="http://mmsc.A1.net" mmsproxy="194.48.124.71" mmsport="8001" type="default,supl,mms" />
- <apn carrier="Mobilkom MMS" mcc="232" mnc="01" apn="free.a1.net" proxy="" port="" user="ppp@a1plus.at" password="ppp" mmsc="http://mmsc.a1.net" mmsproxy="194.48.124.71" mmsport="8001" type="mms" />
- <apn carrier="T-Mobile Internet" mcc="232" mnc="03" apn="gprsinternet" proxy="" port="" user="t-mobile" password="tm" mmsc="http://mmsc.t-mobile.at/servlets/mms" mmsproxy="010.012.000.020" mmsport="80" authtype="1" type="default,supl" />
- <apn carrier="T-Mobile MMS" mcc="232" mnc="03" apn="gprsmms" proxy="" port="" user="t-mobile" password="tm" mmsc="http://mmsc.t-mobile.at/servlets/mms" mmsproxy="010.012.000.020" mmsport="80" authtype="1" type="mms" />
- <apn carrier="3 AT" mcc="232" mnc="05" apn="drei.at" server="http://mobile.drei.at" mmsc="http://mmsc" mmsproxy="213.094.078.133" mmsport="8799" type="default,supl,mms" />
- <apn carrier="Orange AT-MMS" mcc="232" mnc="05" apn="orange.mms" proxy="" port="" user="mms" password="mms" server="*" mmsc="http://mmsc.orange.at/mms/wapenc" mmsproxy="194.24.128.118" mmsport="8080" type="mms" />
- <apn carrier="Orange Web" mcc="232" mnc="05" apn="orange.smartphone" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="tele.ring web" mcc="232" mnc="07" apn="web" proxy="" port="" user="web@telering.at" password="web" mmsc="http://relay.mms.telering.at" mmsproxy="212.095.031.050" mmsport="80" authtype="1" type="default,supl" />
- <apn carrier="telering mms" mcc="232" mnc="07" apn="mms" proxy="" port="" user="web@telering.at" password="web" mmsc="http://relay.mms.telering.at" mmsproxy="212.095.031.050" mmsport="80" authtype="1" type="mms" />
- <apn carrier="HoT Internet" mcc="232" mnc="07" apn="webaut" type="default,supl" />
- <apn carrier="HoT MMS" mcc="232" mnc="07" apn="mmsaut" user="" password="" mmsc="http://mmsaut.at/send" mmsproxy="212.95.31.50" mmsport="80" type="mms" />
- <apn carrier="tele.ring MMS" mcc="232" mnc="07" apn="mms" proxy="" port="" user="wap@telering.at" password="wap" mmsc="http://relay.mms.telering.at" mmsproxy="212.95.31.50" mmsport="8080" type="mms" />
- <apn carrier="tele.ring WEB" mcc="232" mnc="07" apn="web" proxy="" port="" user="web@telering.at" password="web" mmsc="" type="default,supl" />
- <apn carrier="Planet 3" mcc="232" mnc="10" apn="drei.at" user="" password="" type="default,supl" />
- <apn carrier="3MMS" mcc="232" mnc="10" apn="drei.at" proxy="" port="" mmsproxy="213.94.78.133" mmsport="8799" mmsc="http://mmsc" user="" password="" type="mms" />
- <apn carrier="3 AT" mcc="232" mnc="10" apn="drei.at" server="http://mobile.drei.at" mmsc="http://mmsc" mmsproxy="213.094.078.133" mmsport="8799" type="default,supl,mms" />
- <apn carrier="Drei A" mcc="232" mnc="10" apn="drei.at" proxy="" port="" user="drei" password="" server="http://mobile.drei.at" mmsc="http://mmsc" mmsproxy="213.94.78.133" mmsport="8799" type="default,supl,mms" />
- <apn carrier="Bob" mcc="232" mnc="11" apn="bob.at" proxy="" port="" user="data@bob.at" password="ppp" server="http://start.bob.at/" mmsc="" type="default,supl" />
- <apn carrier="Bob MMS" mcc="232" mnc="11" apn="mms.bob.at" proxy="194.48.124.7" port="8001" user="data@bob.at" password="web" server="http://start.bob.at/" mmsc="http://mmsc.bob.at" mmsproxy="194.48.124.7" mmsport="8001" type="mms" />
- <apn carrier="Orange World" mcc="232" mnc="12" apn="orange.world" proxy="194.24.128.118" port="80" mmsc="" user="wap" password="wap" authtype="3" type="default,supl" />
- <apn carrier="Orange Web" mcc="232" mnc="12" apn="orange.web" user="web" password="web" authtype="3" type="default,supl" />
- <apn carrier="Orange MMS" mcc="232" mnc="12" apn="orange.mms" proxy="" port="" mmsproxy="194.24.128.118" mmsport="8080" mmsc="http://mmsc.orange.at/mms/wapenc" user="mms" password="mms" authtype="3" type="mms" />
- <apn carrier="Orange Video" mcc="232" mnc="12" apn="orange.video" user="video" password="" authtype="3" type="default,supl" />
- <apn carrier="Yesss" mcc="232" mnc="12" apn="webapn.at" type="default,supl" />
- <apn carrier="UPC Mobile" mcc="232" mnc="13" apn="internet.at.upcmobile.com" type="default,supl" />
- <apn carrier="spusu" mcc="232" mnc="17" apn="mass.at" type="default,supl" />
- <apn carrier="UBIQUISYS" mcc="234" mnc="01" apn="internet" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Vectone Mobile" type="default,supl,mms" />
- <apn carrier="Tesco Prepay" mcc="234" mnc="01" apn="prepay.tesco-mobile.com" user="tescowap" password="password" server="http://wap.tesco-mobile.com/" proxy="193.113.200.195" port="9201" type="default,supl,mms" />
- <apn carrier="Vectone Mobile" mcc="234" mnc="01" apn="webuk.mundio.com" type="default,supl" />
- <apn carrier="O2 Internet(pre)" mcc="234" mnc="02" apn="payandgo.o2.co.uk" user="payandgo" password="password" type="default,supl" />
- <apn carrier="O2 Internet(post)" mcc="234" mnc="02" apn="mobile.o2.co.uk" user="O2web" password="password" type="default,supl" />
- <apn carrier="O2 WAP(pre)" mcc="234" mnc="02" apn="payandgo.o2.co.uk" proxy="193.113.200.195" port="8080" user="payandgo" password="password" type="default,supl" />
- <apn carrier="O2 WAP(post)" mcc="234" mnc="02" apn="wap.o2.co.uk" proxy="193.113.200.195" port="8080" user="payandgo" password="password" type="default,supl" />
- <apn carrier="O2 MMS(pre)" mcc="234" mnc="02" apn="payandgo.o2.co.uk" mmsproxy="193.113.200.195" mmsport="8080" mmsc="http://mmsc.mms.o2.co.uk:8002" user="payandgo" password="password" type="mms" />
- <apn carrier="O2 MMS(post)" mcc="234" mnc="02" apn="wap.o2.co.uk" proxy="" port="" mmsproxy="193.113.200.195" mmsport="8080" mmsc="http://mmsc.mms.o2.co.uk:8002" user="o2wap" password="password" type="mms" />
- <apn carrier="BT One Phone Internet" mcc="234" mnc="08" apn="btmobile.bt.com" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="BT" type="default,supl" />
- <apn carrier="BT MMS" mcc="234" mnc="08" apn="mms.btonephone.com" proxy="" port="" user="" password="" mmsc="http://mmsc" mmsproxy="proxy.btonephone.com" mmsport="8080" mvno_type="spn" mvno_match_data="BT" type="mms" />
- <apn carrier="Sure Internet" mcc="234" mnc="09" apn="internet" type="default,supl" />
- <apn carrier="Sure WAP" mcc="234" mnc="09" apn="wap" proxy="10.0.3.101" port="80" type="default,supl" />
- <apn carrier="Sure MMS" mcc="234" mnc="09" apn="mms" mmsproxy="10.0.3.101" mmsport="80" mmsc="http://mmsc.gprs.cw.com/" type="mms" />
- <apn carrier="TelecomDefault" mcc="234" mnc="10" apn="wap.telecom.co.nz" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="TelecomMMS" mcc="234" mnc="10" apn="wap.telecom.co.nz" proxy="" port="" mmsproxy="210.55.11.73" mmsport="8080" mmsc="http://lsmmsc.xtra.co.nz" user="" password="" authtype="3" type="mms" />
- <apn carrier="o2 Mobile Web" mcc="234" mnc="10" apn="mobile.o2.co.uk" user="mobileweb" password="password" type="default,supl" />
- <apn carrier="o2 MMS" mcc="234" mnc="10" apn="payandgo.o2.co.uk" proxy="" port="" mmsproxy="193.113.200.195" mmsport="8080" mmsc="http://mmsc.mms.o2.co.uk:8002" user="payandgo" password="password" type="mms" />
- <apn carrier="O2 UK" mcc="234" mnc="10" apn="mobile.o2.co.uk" user="o2web" password="password" mmsc="http://mmsc.mms.o2.co.uk:8002" mmsproxy="193.113.200.195" mmsport="8080" authtype="1" type="default,supl,mms" />
- <apn carrier="O2 Contract" mcc="234" mnc="10" apn="wap.o2.co.uk" proxy="193.113.200.195" port="8080" user="o2wap" password="password" mmsc="http://mmsc.mms.o2.co.uk:8002/" mmsproxy="193.113.200.195" mmsport="8080" type="default,hipri,supl,mms" />
- <apn carrier="O2 PAYG" mcc="234" mnc="10" apn="payandgo.o2.co.uk" proxy="193.113.200.195" port="8080" user="payandgo" password="password" mmsc="http://mmsc.mms.o2.co.uk:8002/" mmsproxy="193.113.200.195" mmsport="8080" type="default,hipri,supl,mms" />
- <apn carrier="O2 WEB" mcc="234" mnc="10" apn="mobile.o2.co.uk" proxy="" port="" user="O2web" password="O2web" mmsc="" type="default,supl" />
- <apn carrier="giffgaff" mcc="234" mnc="10" apn="giffgaff.com" user="giffgaff" password="password" mmsc="http://mmsc.mediamessaging.co.uk:8002" mmsproxy="82.132.254.1" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Tesco Mobile" mcc="234" mnc="10" apn="prepay.tesco-mobile.com" proxy="193.113.200.195" port="8080" user="tescowap" password="password" mmsc="http://mmsc.mms.o2.co.uk:10021/mmsc" mmsproxy="193.113.200.195" mmsport="8080" mvno_type="spn" mvno_match_data="TESCO" authtype="1" type="default,supl,mms" />
- <apn carrier="giffgaff GPRS" mcc="234" mnc="10" apn="giffgaff.com" proxy="193.113.200.195" port="8080" user="giffgaff" password="password" mmsc="" mvno_type="spn" mvno_match_data="giffgaff" authtype="1" type="default,supl" />
- <apn carrier="giffgaff MMS" mcc="234" mnc="10" apn="giffgaff.com" proxy="" port="" user="giffgaff" password="password" mmsc="http://mmsc.mediamessaging.co.uk:8002" mmsproxy="193.113.200.195" mmsport="8080" mvno_type="spn" mvno_match_data="giffgaff" authtype="1" type="mms" />
- <apn carrier="Tesco UK" mcc="234" mnc="10" apn="prepay.tesco-mobile.com" proxy="193.113.200.195" port="8080" user="tescowap" password="password" mmsc="http://mmsc.mms.02.co.uk:8002" mmsproxy="193.113.200.195" mmsport="8080" mvno_type="spn" mvno_match_data="TESCO" type="default,supl,mms,wap" />
- <apn carrier="O2 Internet(pre)" mcc="234" mnc="11" apn="payandgo.o2.co.uk" user="payandgo" password="password" type="default,supl" />
- <apn carrier="O2 Internet(post)" mcc="234" mnc="11" apn="mobile.o2.co.uk" user="O2web" password="password" type="default,supl" />
- <apn carrier="O2 WAP(pre)" mcc="234" mnc="11" apn="payandgo.o2.co.uk" proxy="193.113.200.195" port="8080" user="payandgo" password="password" type="default,supl" />
- <apn carrier="O2 WAP(post)" mcc="234" mnc="11" apn="wap.o2.co.uk" proxy="193.113.200.195" port="8080" user="payandgo" password="password" type="default,supl" />
- <apn carrier="O2 MMS(pre)" mcc="234" mnc="11" apn="payandgo.o2.co.uk" mmsproxy="193.113.200.195" mmsport="8080" mmsc="http://mmsc.mms.o2.co.uk:8002" user="payandgo" password="password" type="mms" />
- <apn carrier="O2 MMS(post)" mcc="234" mnc="11" apn="wap.o2.co.uk" proxy="193.113.200.195" port="8080" mmsc="http://mmsc.mms.o2.co.uk:8002" user="o2wap" password="password" type="mms" />
- <apn carrier="Vodafone Internet(Pre)" mcc="234" mnc="15" apn="pp.vodafone.co.uk" proxy="" port="" user="web" password="web" mmsc="" type="default,supl" />
- <apn carrier="Vodafone Internet(Post)" mcc="234" mnc="15" apn="internet" proxy="" port="" user="web" password="web" mmsc="" type="default,supl" />
- <apn carrier="Vodafone WAP(Pre)" mcc="234" mnc="15" apn="pp.vodafone.co.uk" proxy="212.183.137.12" port="8799" user="wap" password="wap" mmsc="" type="default,supl" />
- <apn carrier="Vodafone WAP(Post)" mcc="234" mnc="15" apn="wap.vodafone.co.uk" proxy="212.183.137.12" port="8799" user="wap" password="wap" mmsc="" type="default,supl" />
- <apn carrier="Vodafone MMS(Pre)" mcc="234" mnc="15" apn="pp.vodafone.co.uk" proxy="" port="" user="wap" password="wap" mmsc="http://mms.vodafone.co.uk/servlets/mms" mmsproxy="212.183.137.12" mmsport="8799" type="mms" />
- <apn carrier="Vodafone MMS(Post)" mcc="234" mnc="15" apn="wap.vodafone.co.uk" proxy="" port="" user="wap" password="wap" mmsc="http://mms.vodafone.co.uk/servlets/mms" mmsproxy="212.183.137.12" mmsport="8799" type="mms" />
- <apn carrier="Vodafone UK Contract Internet" mcc="234" mnc="15" apn="Internet" user="web" password="web" server="*" mmsc="http://mms.vodafone.co.uk/servlets/mms" mmsproxy="212.183.137.012" mmsport="8799" type="default,supl,mms" />
- <apn carrier="Vodafone Post-pay ISP" mcc="234" mnc="15" apn="internet" user="web" password="web" type="default,supl" />
- <apn carrier="Talkmobile" mcc="234" mnc="15" apn="payg.talkmobile.co.uk" type="default,supl" />
- <apn carrier="Talkmobile MMS" mcc="234" mnc="15" apn="payg.talkmobile.co.uk" user="wap" password="password" mmsc="http://mms.talkmobile.co.uk/servlets/mms" mmsproxy="212.183.137.12" mmsport="8799" type="mms" />
- <apn carrier="Vodafone Prepay" mcc="234" mnc="15" apn="pp.vodafone.co.uk" user="wap" password="wap" mmsc="http://mms.vodafone.co.uk/servlets/mms" mmsproxy="212.183.137.12" mmsport="8799" type="default,supl,mms" />
- <apn carrier="Vodafone UK Contract WAP" mcc="234" mnc="15" apn="wap.vodafone.co.uk" user="wap" password="wap" server="*" mmsc="http://mms.vodafone.co.uk/servlets/mms" mmsproxy="212.183.137.012" mmsport="8799" type="default,supl,mms" />
- <apn carrier="Lebara UK" mcc="234" mnc="15" apn="uk.lebara.mobi" user="web" password="web" type="default,supl" />
- <apn carrier="Lebara UK MMS" mcc="234" mnc="15" apn="uk.lebara.mobi" user="web" password="web" server="*" mmsc="http://mms.lebara.co.uk/servlets/mms" mmsproxy="212.183.137.012" mmsport="8799" type="mms" />
- <apn carrier="Talkmobile" mcc="234" mnc="15" apn="talkmobile.co.uk" user="wap" password="wap" mmsc="http://mms.talkmobile.co.uk/servlets/mms" mmsproxy="212.183.137.12" mmsport="8799" type="default,supl,mms" />
- <apn carrier="OVIVO" mcc="234" mnc="15" apn="ovivomobile.com" type="default,supl" />
- <apn carrier="OVIVO MMS" mcc="234" mnc="15" apn="gprsconnect.com" mmsc="http://mms.gprsconnect.com/servlets/mms" mmsproxy="212.183.137.12" mmsport="8799" type="mms" />
- <apn carrier="TalkTalk" mcc="234" mnc="15" apn="mobile.talktalk.co.uk" mmsc="http://mms.talktalk.co.uk/servlets/mms" port="8799" mmsproxy="212.183.137.12" mmsport="8799" authtype="1" type="default" />
- <apn carrier="Sainsburys" mcc="234" mnc="15" apn="payg.mobilebysainsburys.co.uk" proxy="" port="" user="" password="" mmsc="http://mms.mobilesainsburys.co.uk/servltes/mms" mmsproxy="212.183.137.12" mmsport="8799" authtype="1" type="default,supl,mms" />
- <apn carrier="Sainsbury's Internet" mcc="234" mnc="15" apn="payg.mobilebysainsburys.co.uk" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Sainsbury's" type="default,supl" />
- <apn carrier="UK - Lebara Web" mcc="234" mnc="15" apn="uk.lebara.mobi" proxy="" port="" user="web" password="web" mmsc="" mvno_type="spn" mvno_match_data="Lebara" authtype="1" type="default,supl" />
- <apn carrier="UK - Lebara MMS" mcc="234" mnc="15" apn="" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Lebara" authtype="1" type="mms" />
- <apn carrier="UK - Lebara GPRS" mcc="234" mnc="15" apn="uk.lebara.mobi" proxy="" port="" user="wap" password="wap" mmsc="http://mms.lebara.co.uk/servlets/mms" mmsproxy="212.183.137.12" mmsport="8799" mvno_type="spn" mvno_match_data="Lebara" authtype="1" type="default,supl,mms,wap" />
- <apn carrier="Sainsbury's MMS" mcc="234" mnc="15" apn="Sainsburys MMS" proxy="" port="" user="" password="" mmsc="http://mms.mobilebysainsburys.co.uk/servlets/mms" mmsproxy="212.183.137.12" mmsport="8799" mvno_type="spn" mvno_match_data="Sainsbury's" type="mms" />
- <apn carrier="Talkmobile Payg" mcc="234" mnc="15" apn="payg.talkmobile.co.uk" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Talkmobile" type="default,supl" />
- <apn carrier="Talkmobile MMS Payg" mcc="234" mnc="15" apn="payg.talkmobile.co.uk" proxy="" port="" user="wap" password="password" mmsc="http://mms.talkmobile.co.uk/servlets/mms" mmsproxy="212.183.137.12" mmsport="8799" mvno_type="spn" mvno_match_data="Talkmobile" type="mms" />
- <apn carrier="Talkmobile" mcc="234" mnc="15" apn="talkmobile.co.uk" proxy="" port="" user="wap" password="wap" mmsc="http://mms.talkmobile.co.uk/servlets/mms" mmsproxy="212.183.137.12" mmsport="8799" mvno_type="spn" mvno_match_data="Talkmobile" type="default,supl,mms" />
- <apn carrier="Contract WAP" mcc="234" mnc="15" apn="wap.vodafone.co.uk" proxy="" port="" user="wap" password="wap" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="Contract WAP MMS" mcc="234" mnc="15" apn="wap.vodafone.co.uk" proxy="" port="" user="wap" password="wap" mmsc="http://mms.vodafone.co.uk/servlets/mms" mmsproxy="212.183.137.12" mmsport="8799" authtype="1" type="mms" />
- <apn carrier="Vodafone Pre Pay" mcc="234" mnc="15" apn="pp.vodafone.co.uk" proxy="" port="" user="wap" password="wap" mmsc="" type="default,supl" />
- <apn carrier="Vodafone Pre Pay MMS" mcc="234" mnc="15" apn="pp.vodafone.co.uk" proxy="" port="" user="wap" password="wap" mmsc="http://mms.vodafone.co.uk/servlets/mms" mmsproxy="212.183.137.12" mmsport="8799" type="mms" />
- <apn carrier="OVIVO" mcc="234" mnc="15" apn="ovivomobile.com" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Ovivo" type="default,supl,dun,fota" />
- <apn carrier="BT Mobile" mcc="234" mnc="15" apn="btmobile.bt.com" proxy="" port="" user="bt" password="bt" mmsc="" mvno_type="spn" mvno_match_data="BT" authtype="1" type="default,supl" />
- <apn carrier="BT Mobile" mcc="234" mnc="15" apn="btmobile.bt.com" proxy="" port="" user="bt" password="bt" mmsc="http://mms.bt.com/servlets/mms" mmsproxy="212.183.137.12" mmsport="8799" mvno_type="spn" mvno_match_data="BT" authtype="1" type="mms" />
- <apn carrier="3 Internet" mcc="234" mnc="20" apn="three.co.uk" type="default,supl" />
- <apn carrier="3 Modem" mcc="234" mnc="20" apn="3internet" type="default,supl" />
- <apn carrier="3 MMS" mcc="234" mnc="20" apn="three.co.uk" proxy="" port="" user="" password="" mmsc="http://mms.um.three.co.uk:10021/mmsc" mmsproxy="217.171.129.2" mmsport="8799" type="mms" />
- <apn carrier="3 UK" mcc="234" mnc="20" apn="three.co.uk" proxy="" port="" user="" password="" mmsc="http://mms.um.three.co.uk:10021/mmsc" mmsproxy="217.171.129.2" mmsport="8799" type="default,supl,mms" />
- <apn carrier="FreedomPop" mcc="234" mnc="20" apn="freedompop.foggmobile.com" type="" />
- <apn carrier="Giffgaff" mcc="234" mnc="20" apn="giffgaff.com" proxy="" port="" user="giffgaff" password="user" mmsc="http://mmsc.mediamessaging.co.uk:8002" mmsproxy="193.113.200.195" mmsport="8080" mvno_type="spn" mvno_match_data="giffgaff" type="default,supl,mms" />
- <apn carrier="iD Mobile (UK)" mcc="234" mnc="20" apn="id" proxy="" port="" user="" password="" mmsc="http://mms.um.idmobile.co.uk:10021/mmsc" mmsproxy="mms.idmobile.co.uk" mmsport="8799" type="default,mms" />
- <apn carrier="BT Business" mcc="234" mnc="230" apn="btmobile.bt.com" user="bt" password="bt" mmsc="http://mms/" mmsproxy="149.254.201.135" mmsport="8080" authtype="1" type="default,supl,mms" />
- <apn carrier="Truphone UK" mcc="234" mnc="25" apn="truphone.com" type="default,supl" />
- <apn carrier="UK - Lycamobile Web" mcc="234" mnc="26" apn="data.lycamobile.co.uk" proxy="" port="" user="lmuk" password="plus" mmsc="" mvno_type="spn" mvno_match_data="Lycamobile" authtype="1" type="default,supl" />
- <apn carrier="UK - Lycamobile MMS" mcc="234" mnc="26" apn="" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Lycamobile" authtype="1" type="mms" />
- <apn carrier="T-Mobile Internet" mcc="234" mnc="30" apn="general.t-mobile.uk" proxy="" port="" user="t-mobile" password="tm" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="T-Mobile Broadband" mcc="234" mnc="30" apn="broadband.t-mobile.uk" user="T-Mobile" password="TM" type="default,dun" />
- <apn carrier="T-Mobile PictureMessage" mcc="234" mnc="30" apn="general.t-mobile.uk" proxy="" port="" user="t-mobile" password="tm" mmsc="http://mmsc.t-mobile.co.uk:8002" mmsproxy="149.254.201.135" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="EE Internet" mcc="234" mnc="30" apn="everywhere" proxy="" port="" user="eesecure" password="secure" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="EE MMS" mcc="234" mnc="30" apn="eezone" proxy="" port="" user="eesecure" password="secure" mmsc="http://mms/" mmsproxy="149.254.201.135" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="EE Internet" mcc="234" mnc="30" apn="everywhere" proxy="" port="" user="eesecure" password="secure" mmsc="" mvno_type="pnn" mvno_match_data="EE" authtype="1" type="default,supl" />
- <apn carrier="EE MMS" mcc="234" mnc="30" apn="eezone" proxy="" port="" user="eesecure" password="secure" mmsc="http://mms/" mmsproxy="149.254.201.135" mmsport="8080" mvno_type="pnn" mvno_match_data="EE" authtype="1" type="mms" />
- <apn carrier="virgin Mobile" mcc="234" mnc="30" apn="goto.virginmobile.uk" proxy="" port="" user="user" password="" mmsc="http://mms.virginmobile.co.uk:8002" mmsproxy="193.30.166.2" mmsport="8080" mvno_type="pnn" mvno_match_data="Virgin" authtype="1" type="default,mms,supl" />
- <apn carrier="Virgin Internet" mcc="234" mnc="30" apn="goto.virginmobile.uk" proxy="" port="" user="user" password="" mmsc="" mvno_type="pnn" mvno_match_data="Virgin" authtype="1" type="default,supl" />
- <apn carrier="Virgin MMS" mcc="234" mnc="30" apn="goto.virginmobile.uk" proxy="" port="" user="user" password="" mmsc="http://mms.virginmobile.co.uk:8002" mmsproxy="193.30.166.2" mmsport="8080" mvno_type="pnn" mvno_match_data="Virgin" authtype="1" type="mms" />
- <apn carrier="Asda Mobile" mcc="234" mnc="30" apn="everywhere" user="eesecure" password="secure" mmsc="http://mms/" mmsproxy="149.254.201.135" mmsport="8080" authtype="1" type="default,supl,mms" />
- <apn carrier="LIFE MMS" mcc="234" mnc="30" apn="tslpaygnet" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="LIFE" authtype="1" type="default,supl" />
- <apn carrier="LIFE" mcc="234" mnc="30" apn="tslpaygoanet" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="LIFE" authtype="1" type="default,supl" />
- <apn carrier="ASDA Internet" mcc="234" mnc="30" apn="everywhere" proxy="" port="" user="eesecure" password="secure" mmsc="" mvno_type="pnn" mvno_match_data="ASDA Mobile" authtype="1" type="default,supl" />
- <apn carrier="ASDA MMS" mcc="234" mnc="30" apn="eezone" proxy="" port="" user="eesecure" password="secure" mmsc="http://mms" mmsproxy="149.254.201.135" mmsport="8080" mvno_type="pnn" mvno_match_data="ASDA Mobile" authtype="1" type="mms" />
- <apn carrier="BT Internet" mcc="234" mnc="30" apn="btmobile.bt.com" proxy="" port="" user="bt" password="bt" mmsc="" mvno_type="spn" mvno_match_data="BT" authtype="1" type="default,supl" />
- <apn carrier="BT MMS" mcc="234" mnc="30" apn="mms.bt.com" proxy="" port="" user="bt" password="bt" mmsc="http://mms" mmsproxy="149.254.201.135" mmsport="8080" mvno_type="spn" mvno_match_data="BT" authtype="1" type="mms" />
- <apn carrier="BT One Phone Internet" mcc="234" mnc="30" apn="btmobile.bt.com" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="BT" type="default,supl" />
- <apn carrier="BT MMS" mcc="234" mnc="30" apn="mms.btonephone.com" proxy="" port="" user="" password="" mmsc="http://mmsc" mmsproxy="proxy.btonephone.com" mmsport="8080" mvno_type="spn" mvno_match_data="BT" type="mms" />
- <apn carrier="T-Mobile Internet" mcc="234" mnc="31" apn="general.t-mobile.uk" proxy="" port="" user="t-mobile" password="tm" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="T-Mobile Broadband" mcc="234" mnc="31" apn="broadband.t-mobile.uk" user="T-Mobile" password="TM" type="default,dun" />
- <apn carrier="T-Mobile PictureMessage" mcc="234" mnc="31" apn="general.t-mobile.uk" proxy="" port="" user="t-mobile" password="tm" mmsc="http://mmsc.t-mobile.co.uk:8002" mmsproxy="149.254.201.135" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Virgin UK" mcc="234" mnc="31" apn="goto.virginmobile.uk" user="user" type="default,supl" />
- <apn carrier="Virgin UK MMS" mcc="234" mnc="31" apn="goto.virginmobile.uk" user="" password="" mmsc="http://mms.virginmobile.co.uk:8002" mmsproxy="193.30.166.2" mmsport="8080" type="mms" />
- <apn carrier="EE Internet" mcc="234" mnc="31" apn="everywhere" proxy="" port="" user="eesecure" password="secure" mmsc="" authtype="1" type="default,supl,dun" />
- <apn carrier="EE MMS" mcc="234" mnc="31" apn="eezone" proxy="" port="" user="eesecure" password="secure" mmsc="http://mms/" mmsproxy="149.254.201.135" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="T-Mobile Internet" mcc="234" mnc="32" apn="general.t-mobile.uk" proxy="" port="" user="t-mobile" password="tm" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="T-Mobile Broadband" mcc="234" mnc="32" apn="broadband.t-mobile.uk" user="T-Mobile" password="TM" type="default,dun" />
- <apn carrier="T-Mobile PictureMessage" mcc="234" mnc="32" apn="general.t-mobile.uk" proxy="" port="" user="t-mobile" password="tm" mmsc="http://mmsc.t-mobile.co.uk:8002" mmsproxy="149.254.201.135" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Virgin UK" mcc="234" mnc="32" apn="goto.virginmobile.uk" user="user" type="default,supl" />
- <apn carrier="Virgin UK MMS" mcc="234" mnc="32" apn="goto.virginmobile.uk" user="" password="" mmsc="http://mms.virginmobile.co.uk:8002" mmsproxy="193.30.166.2" mmsport="8080" type="mms" />
- <apn carrier="EE Internet" mcc="234" mnc="32" apn="everywhere" proxy="" port="" user="eesecure" password="secure" mmsc="" authtype="1" type="default,supl,dun" />
- <apn carrier="EE MMS" mcc="234" mnc="32" apn="eezone" proxy="" port="" user="eesecure" password="secure" mmsc="http://mms/" mmsproxy="149.254.201.135" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Orange internet" mcc="234" mnc="33" apn="orangeinternet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Orange Broadband" mcc="234" mnc="33" apn="consumerbroadband" type="default,dun" />
- <apn carrier="Orange MMS" mcc="234" mnc="33" apn="orangemms" mmsproxy="192.168.224.10" mmsport="8081" mmsc="http://mms.orange.co.uk/" type="mms" />
- <apn carrier="EE Internet" mcc="234" mnc="33" apn="everywhere" proxy="" port="" user="eesecure" password="secure" mmsc="" mvno_type="spn" mvno_match_data="EE" authtype="1" type="default,supl,dun" />
- <apn carrier="EE MMS" mcc="234" mnc="33" apn="eezone" proxy="" port="" user="eesecure" password="secure" mmsc="http://mms/" mmsproxy="149.254.201.135" mmsport="8080" mvno_type="spn" mvno_match_data="EE" authtype="1" type="mms" />
- <apn carrier="EE Internet" mcc="234" mnc="33" apn="everywhere" proxy="" port="" user="eesecure" password="secure" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="EE MMS" mcc="234" mnc="33" apn="eezone" proxy="" port="" user="eesecure" password="secure" mmsc="http://mms/" mmsproxy="149.254.201.135" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="UK - Lycamobile Web" mcc="234" mnc="33" apn="data.lycamobile.co.uk" proxy="" port="" user="lmuk" password="plus" mmsc="" mvno_type="spn" mvno_match_data="Lycamobile" authtype="1" type="default,supl" />
- <apn carrier="UK - Lycamobile MMS" mcc="234" mnc="33" apn="" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Lycamobile" authtype="1" type="mms" />
- <apn carrier="Life Mobile" mcc="234" mnc="33" apn="tslpaymnet" proxy="" port="" user="" password="" mmsc="http://mms/" mmsproxy="193.35.133.194" mmsport="8080" authtype="1" type="default,supl,mms" />
- <apn carrier="LIFE MMS" mcc="234" mnc="33" apn="tslmms" proxy="" port="" user="wap" password="wap" mmsc="http://mms" mmsproxy="193.35.133.194" mmsport="8080" mvno_type="spn" mvno_match_data="LIFE" authtype="1" type="mms" />
- <apn carrier="LIFE" mcc="234" mnc="33" apn="tslpaygnet" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="LIFE" authtype="1" type="default,supl" />
- <apn carrier="Now Mobile" mcc="234" mnc="33" apn="nowmobilenet" proxy="" port="" user="" password="" mmsc="http://mms/" mmsproxy="193.35.133.194" mmsport="8080" authtype="1" type="default,supl,mms" />
- <apn carrier="Now PAYG" mcc="234" mnc="33" apn="NowMobileNet" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Now PAYG" type="default,supl" />
- <apn carrier="Now PAYG MMS" mcc="234" mnc="33" apn="NowMobileMMS" proxy="" port="" user="" password="" mmsc="http://mms" mmsproxy="193.35.133.194" mmsport="8080" mvno_type="spn" mvno_match_data="Now PAYG" type="mms" />
- <apn carrier="Orange Internet" mcc="234" mnc="34" apn="orangeinternet" type="default,supl" />
- <apn carrier="Orange WAP" mcc="234" mnc="34" apn="paygwap" proxy="192.168.71.35" port="8080" user="Orange" password="Multimedia" type="default,supl" />
- <apn carrier="Orange WAP" mcc="234" mnc="34" apn="orangewap" proxy="192.168.71.35" port="8080" user="Orange" password="Multimedia" type="default,supl" />
- <apn carrier="Orange MMS" mcc="234" mnc="34" apn="orangemms" mmsproxy="192.168.224.10" mmsport="8080" mmsc="http://mms.orange.co.uk/" user="Orange" password="Multimedia" type="mms" />
- <apn carrier="EE Internet" mcc="234" mnc="34" apn="everywhere" user="eesecure" password="secure" authtype="1" type="default,supl,dun" />
- <apn carrier="EE MMS" mcc="234" mnc="34" apn="eezone" user="eesecure" password="secure" mmsc="http://mms/" mmsproxy="149.254.201.135" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Truphone Internet" mcc="234" mnc="35" apn="truphone.com" type="default,supl" />
- <apn carrier="Virgin Mobile" mcc="234" mnc="38" apn="goto.virginmobile.uk" user="" password="" mmsc="http://mms.virginmobile.co.uk:8002" mmsproxy="193.30.166.2" mmsport="8080" authtype="2" type="default,supl,mms" />
- <apn carrier="Jersey Internet" mcc="234" mnc="50" apn="pepper" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Jersey WAP" mcc="234" mnc="50" apn="pepper" proxy="212.9.19.199" port="3130" user="wap" password="wap" mmsc="" type="default,supl" />
- <apn carrier="Jersey MMS" mcc="234" mnc="50" apn="mms" proxy="" port="" user="mms" password="mms" mmsc="http://mms.surfmail.com/mmsc" mmsproxy="212.9.19.199" mmsport="3130" type="mms" />
- <apn carrier="Sure Internet" mcc="234" mnc="55" apn="internet" type="default,supl" />
- <apn carrier="Sure WAP" mcc="234" mnc="55" apn="wap" proxy="10.0.3.101" port="80" type="default,supl" />
- <apn carrier="Sure MMS" mcc="234" mnc="55" apn="mms" mmsproxy="10.0.3.101" mmsport="80" mmsc="http://mmsc.gprs.cw.com/" type="mms" />
- <apn carrier="Sure Mobile MMS" mcc="234" mnc="55" apn="MMS" mmsc="http://mmsc.gprs.cw.com/" mmsproxy="10.0.3.101" mmsport="80" type="mms" />
- <apn carrier="Lifestyle GPRS" mcc="234" mnc="55" apn="mobilefunemail" proxy="10.0.3.101" port="80" user="" password="" server="http://lifestyle.cw.com" mmsc="" type="default,supl,hipri" />
- <apn carrier="Lifestyle MMS" mcc="234" mnc="55" apn="mms" proxy="" port="" user="" password="" mmsc="http://mmsc.gprs.cw.com/" mmsproxy="10.0.3.101" mmsport="80" type="mms" />
- <apn carrier="Manx Internet(Pre)" mcc="234" mnc="58" apn="web.prontogo.net" proxy="195.10.99.51" port="8080" user="webgo" password="webgo" mmsc="" type="default,supl" />
- <apn carrier="Manx WAP(Pre)" mcc="234" mnc="58" apn="wap.prontogo.net" proxy="195.10.99.41" port="8080" user="wapgo" password="wapgo" mmsc="" type="default,supl" />
- <apn carrier="Manx Internet(Post)" mcc="234" mnc="58" apn="3gpronto" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Manx Internet(Post)" mcc="234" mnc="58" apn="web.manxpronto.net" proxy="" port="" user="gprs" password="gprs" mmsc="" type="default,supl" />
- <apn carrier="Manx MMS(Pre)" mcc="234" mnc="58" apn="mms.prontogo.net" proxy="" port="" user="mmsgo" password="mmsgo" mmsc="http://mms.manxpronto.net:8002" mmsproxy="195.10.99.41" mmsport="8080" type="mms" />
- <apn carrier="Manx MMS(Post)" mcc="234" mnc="58" apn="mms.manxpronto.net" proxy="" port="" user="mms" password="mms" mmsc="http://mms.manxpronto.net:8002" mmsproxy="195.10.99.46" mmsport="8080" type="mms" />
- <apn carrier="Manx Telecom" mcc="234" mnc="58" apn="3gpronto" proxy="195.010.099.046" port="8080" mmsc="http://mms.manxpronto.net:8002" type="default,supl,mms" />
- <apn carrier="Manx Telecom Contract MMS" mcc="234" mnc="58" apn="mms.manxpronto.net" user="mms" password="mms" mmsc="http://mms.manxpronto.net:8002" mmsproxy="195.10.99.46" mmsport="8080" type="mms" />
- <apn carrier="Manx Telecom Prepay MMS" mcc="234" mnc="58" apn="mms.prontogo.net" user="mmsgo" password="mmsgo" mmsc="http://mms.manxpronto.net:8002" mmsproxy="195.10.99.41" mmsport="8080" type="mms" />
- <apn carrier="Manx Telecom Contract WEB" mcc="234" mnc="58" apn="web.manxpronto.net" user="gprs" password="gprs" type="default,supl" />
- <apn carrier="EE Internet" mcc="234" mnc="86" apn="everywhere" user="eesecure" password="secure" authtype="1" type="default,supl,dun" />
- <apn carrier="EE MMS" mcc="234" mnc="86" apn="eezone" user="eesecure" password="secure" mmsc="http://mms/" mmsproxy="149.254.201.135" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="OVIVO MMS" mcc="235" mnc="15" apn="ovivomvno.com" proxy="" port="" user="" password="" mmsc="http://mms.gprsconnect.com/servlets/mms" mmsproxy="212.183.137.12" mmsport="8799" mvno_type="spn" mvno_match_data="Ovivo" type="mms" />
- <apn carrier="TDC" mcc="238" mnc="01" apn="internet" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="TDC MMS" mcc="238" mnc="01" apn="MMS" proxy="" port="" mmsproxy="inetproxy.tdc.dk" mmsport="8080" mmsc="http://mmsc.tdc.dk:8002" user="" password="" authtype="3" type="mms" />
- <apn carrier="TDC Internet" mcc="238" mnc="01" apn="internet" proxy="62.135.173.214" authtype="1" mvno_match_data="2380101xxxxxxxx" mvno_type="imsi" type="default,supl" />
- <apn carrier="TDC MMS" mcc="238" mnc="01" apn="mms" mmsc="http://mmsc.tdc.dk:8002" mmsproxy="194.182.251.15" mmsport="8080" authtype="1" mvno_match_data="2380101xxxxxxxx" mvno_type="imsi" type="mms" />
- <apn carrier="TDC SE" mcc="238" mnc="01" apn="internet.se" proxy="" port="" user="" password="" mmsc="" type="" />
- <apn carrier="TDC NO" mcc="238" mnc="01" apn="internet.no" proxy="" port="" user="" password="" mmsc="" type="" />
- <apn carrier="coop mobil MMS" mcc="238" mnc="01" apn="mms" mmsc="http://192.168.241.114:8002" mmsproxy="194.182.251.15" mmsport="8080" type="mms" />
- <apn carrier="DLG Tele" mcc="238" mnc="01" apn="websp" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="DLG Tele MMS" mcc="238" mnc="01" apn="mmssp" proxy="" port="" mmsproxy="193.209.134.131" mmsport="8080" mmsc="http://mms.telia.dk" user="" password="" authtype="3" type="mms" />
- <apn carrier="Fullrate" mcc="238" mnc="01" apn="internet" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="Fullrate MMS" mcc="238" mnc="01" apn="mms" proxy="" port="" mmsproxy="194.182.251.15" mmsport="8080" mmsc="http://mmsc.tdc.dk:8002" user="" password="" authtype="3" type="mms" />
- <apn carrier="Lycamobile" mcc="238" mnc="01" apn="data.lycamobile.dk" user="lmdk" password="plus" type="default,supl" />
- <apn carrier="Telmore" mcc="238" mnc="01" apn="internet" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="Telmore MMS" mcc="238" mnc="01" apn="mms" proxy="" port="" mmsproxy="194.182.251.15" mmsport="8080" mmsc="http://192.168.241.114:8002" user="" password="" type="mms" />
- <apn carrier="Telmore WAP" mcc="238" mnc="01" apn="wap" proxy="194.182.251.15" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Telmore MMS" mcc="238" mnc="01" apn="telenor" proxy="" port="" user="" password="" mmsc="http://192.168.241.114:8002" mmsproxy="194.182.251.15" mmsport="8080" type="mms" />
- <apn carrier="Telenor Internet" mcc="238" mnc="02" apn="internet" user="" password="" type="default,supl" />
- <apn carrier="Telenor MMS" mcc="238" mnc="02" apn="telenor" proxy="" port="" mmsproxy="212.88.64.8" mmsport="8080" mmsc="http://mms.telenor.dk" user="" password="" type="mms" />
- <apn carrier="Onfone" mcc="238" mnc="02" apn="Internet" type="default,supl" />
- <apn carrier="Onfone MMS" mcc="238" mnc="02" apn="telenor" proxy="" port="" mmsproxy="212.88.64.8" mmsport="8080" mmsc="http://mms.telenor.dk" user="" password="" type="mms" />
- <apn carrier="DLG Internet" mcc="238" mnc="02" apn="websp" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="DLG MMS" mcc="238" mnc="02" apn="mmssp" proxy="" port="" user="" password="" mmsc="http://mms.telia.dk" mmsproxy="193.209.134.131" mmsport="8080" type="mms" />
- <apn carrier="CBB GPRS" mcc="238" mnc="02" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="CBB WAP" mcc="238" mnc="02" apn="internet" proxy="212.88.64.8" port="8080" user="sonofon" password="" mmsc="" type="default,supl" />
- <apn carrier="CBB MMS" mcc="238" mnc="02" apn="sonofon" proxy="" port="" user="" password="" mmsc="http://mms.telenor.dk" mmsproxy="212.88.64.8" mmsport="8080" type="mms" />
- <apn carrier="Tele2 GRPS" mcc="238" mnc="02" apn="internet.tele2.dk" proxy="130.244.196.90" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Tele2 MMS" mcc="238" mnc="02" apn="internet.tele2.dk" proxy="" port="" user="" password="" mmsc="http://mmsc.tele2.dk/" mmsproxy="193.12.40.54" mmsport="8080" type="mms" />
- <apn carrier="BiBoB Internet" mcc="238" mnc="02" apn="internet.bibob.dk" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="BiBoB MMS" mcc="238" mnc="02" apn="mms.bibob.dk" proxy="" port="" user="" password="" mmsc="http://mms.sonofon.dk" mmsproxy="212.88.64.8" mmsport="8080" type="mms" />
- <apn carrier="BiBoB WAP" mcc="238" mnc="02" apn="internet.bibob.dk" proxy="212.88.64.8" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Lebara Internet" mcc="238" mnc="02" apn="internet.lebara.dk" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Lebara MMS" mcc="238" mnc="02" apn="mms.lebara.dk" proxy="" port="" user="" password="" mmsc="http://mms.sonofon.dk" mmsproxy="212.88.64.8" mmsport="8080" type="mms" />
- <apn carrier="3" mcc="238" mnc="06" apn="data.tre.dk" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="3MMS" mcc="238" mnc="06" apn="data.tre.dk" proxy="" port="" mmsproxy="172.016.001.025" mmsport="8799" mmsc="http://mms" user="" password="" authtype="3" type="mms" />
- <apn carrier="3 DK" mcc="238" mnc="06" apn="data.tre.dk" mmsc="http://mms.3.dk" mmsproxy="mmsproxy.3.dk" mmsport="8799" type="default,supl,mms" />
- <apn carrier="Oister" mcc="238" mnc="06" apn="data.dk" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Oister MMS" mcc="238" mnc="06" apn="data.dk" proxy="" port="" user="" password="" mmsc="http://mms.oister.dk" mmsproxy="mmsproxy.oister.dk" mmsport="8799" type="mms" />
- <apn carrier="Telmore WAP" mcc="238" mnc="10" apn="wap" proxy="194.182.251.15" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Telmore MMS" mcc="238" mnc="10" apn="mms" proxy="" port="" user="" password="" mmsc="http://192.168.241.114:8002" mmsproxy="194.182.251.15" mmsport="8080" type="mms" />
- <apn carrier="M1 Internet GPRS" mcc="238" mnc="10" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="M1 MMS GPRS" mcc="238" mnc="10" apn="mms" proxy="" port="" user="" password="" mmsc="http://192.168.241.114:8002" mmsproxy="194.182.251.15" mmsport="8080" type="mms" />
- <apn carrier="M1 WAP GPRS" mcc="238" mnc="10" apn="wap" proxy="194.182.251.15" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Lycamobile DK" mcc="238" mnc="12" apn="data.lycamobile.dk" user="lmdk" password="plus" type="default,supl" />
- <apn carrier="Call me Internet" mcc="238" mnc="20" apn="websp" user="" password="" spn="Callme" type="default,supl" />
- <apn carrier="CallMe MMS" mcc="238" mnc="20" apn="mmssp" proxy="" port="" mmsproxy="193.209.134.131" mmsport="80" mmsc="http://mms.telia.dk" user="" password="" type="mms" />
- <apn carrier="Call me Internet" mcc="238" mnc="20" apn="websp" authtype="2" mvno_match_data="Call me" mvno_type="spn" type="default,supl" />
- <apn carrier="Call me MMS" mcc="238" mnc="20" apn="mmssp" mmsc="http://mms.telia.dk" mmsproxy="193.209.134.131" mmsport="8080" authtype="2" mvno_match_data="Call me" mvno_type="spn" type="mms" />
- <apn carrier="Telia DK" mcc="238" mnc="20" apn="www.internet.mtelia.dk" mvno_match_data="2382010x" mvno_type="imsi" type="default,supl" />
- <apn carrier="Telia DK MMS" mcc="238" mnc="20" apn="www.mms.mtelia.dk" mmsc="http://mms.telia.dk" mmsproxy="193.209.134.131" mmsport="8080" mvno_match_data="2382010x" mvno_type="imsi" type="mms" />
- <apn carrier="DLG Tele" mcc="238" mnc="20" apn="websp" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="DLG Tele MMS" mcc="238" mnc="20" apn="mmssp" proxy="" port="" mmsproxy="193.209.134.131" mmsport="8080" mmsc="http://mms.telia.dk" user="" password="" authtype="3" type="mms" />
- <apn carrier="Waoo Mobil" mcc="238" mnc="20" apn="websp" user="" password="" type="default,supl" />
- <apn carrier="Waoo Mobil MMS" mcc="238" mnc="20" apn="mmssp" proxy="" port="" mmsproxy="193.209.134.131" mmsport="8080" mmsc="http://mms.telia.dk" user="" password="" type="mms" />
- <apn carrier="Siminn Internet" mcc="238" mnc="20" apn="websp" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Siminn WAP" mcc="238" mnc="20" apn="websp" proxy="62.44.158.29" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Siminn MMS" mcc="238" mnc="20" apn="mmssp" proxy="" port="" user="" password="" mmsc="http://mms.telia.dk" mmsproxy="193.209.134.131" mmsport="8080" type="mms" />
- <apn carrier="Telia SuifPort" mcc="238" mnc="30" apn="www.internet.mtelia.dk" user="" password="" type="default,supl" />
- <apn carrier="Telia MMS" mcc="238" mnc="30" apn="www.mms.mtelia.dk" proxy="" port="" mmsproxy="193.209.134.131" mmsport="80" mmsc="http://mms.telia.dk" user="" password="" type="mms" />
- <apn carrier="Siminn Internet" mcc="238" mnc="30" apn="websp" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Siminn WAP" mcc="238" mnc="30" apn="websp" proxy="62.44.158.29" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Siminn MMS" mcc="238" mnc="30" apn="mmssp" proxy="" port="" user="" password="" mmsc="http://mms.telia.dk" mmsproxy="193.209.134.131" mmsport="8080" type="mms" />
- <apn carrier="Telenor Internet" mcc="238" mnc="77" apn="Internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Telenor MMS" mcc="238" mnc="77" apn="telenor" proxy="" port="" user="" password="" mmsc="http://mms.telenor.dk" mmsproxy="212.88.64.8" mmsport="8080" type="mms" />
- <apn carrier="Telia Internet" mcc="240" mnc="01" apn="online.telia.se" proxy="10.254.254.254" port="8080" mmsc="" user="" password="" type="default,supl" spn="Telia" />
- <apn carrier="Telia MMS" mcc="240" mnc="01" apn="mms.telia.se" proxy="" port="" mmsproxy="193.209.134.132" mmsport="80" mmsc="http://mmss" user="" password="" type="mms" spn="Telia" />
- <apn carrier="Halebop Internet" mcc="240" mnc="01" apn="halebop.telia.se" proxy="10.254.254.254" port="8080" mmsc="" user="" password="" type="default,supl" spn="Halebop" />
- <apn carrier="Halebop MMS" mcc="240" mnc="01" apn="mms.telia.se" proxy="" port="" mmsproxy="193.209.134.132" mmsport="80" mmsc="http://mmss" user="" password="" type="mms" spn="Halebop" />
- <apn carrier="Halebop Internet" mcc="240" mnc="01" apn="halebop.telia.se" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="halebop" type="default,supl" />
- <apn carrier="Halebop MMS" mcc="240" mnc="01" apn="mms.telia.se" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" mvno_type="spn" mvno_match_data="halebop" type="mms" />
- <apn carrier="Telia MMS" mcc="240" mnc="01" apn="mms.telia.se" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="Telia Internet" mcc="240" mnc="01" apn="online.telia.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="TDC Internet" mcc="240" mnc="01" apn="internet.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="TDC WAP" mcc="240" mnc="01" apn="internet.se" proxy="194.182.251.15" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="TDC MMS" mcc="240" mnc="01" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms.tdc.se:8002" mmsproxy="194.182.251.15" mmsport="8080" type="mms" />
- <apn carrier="Alltele Internet" mcc="240" mnc="01" apn="alltele.tmh-gprs.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Alltele MMS" mcc="240" mnc="01" apn="alltele.tmh-mms.se" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="Bahnhof AB Internet" mcc="240" mnc="01" apn="bahnhofab.tmhgprs" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Bahnhof AB MMS" mcc="240" mnc="01" apn="bahnhofab.tmhmms" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="Bahnhof LDA Internet" mcc="240" mnc="01" apn="bahnhoflda.tmhgprs" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Bahnhof LDA MMS" mcc="240" mnc="01" apn="bahnhoflda.tmhmms" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="Bixia internet" mcc="240" mnc="01" apn="abbla.telia.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Bixia MMS" mcc="240" mnc="01" apn="abblamms.telia.se" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="DGC internet" mcc="240" mnc="01" apn="dgc.tmhgprs" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="DGC MMS" mcc="240" mnc="01" apn="dgc.tmhmms" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="Mobil2 internet" mcc="240" mnc="01" apn="mobil2.tmhgprs" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Mobil2 MMS" mcc="240" mnc="01" apn="mobil2.tmhmms" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="Phonera internet" mcc="240" mnc="01" apn="phoneweb.tmh-gprs.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Phonera MMS" mcc="240" mnc="01" apn="phoneweb.tmh-mms.se" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="SKOMO internet" mcc="240" mnc="01" apn="scomo.tmh-gprs.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="SKOMO MMS" mcc="240" mnc="01" apn="scomo.tmh-mms.se" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="Spinbox internet" mcc="240" mnc="01" apn="spinbox.telia.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Spinbox MMS" mcc="240" mnc="01" apn="spinboxmms.telia.se" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="Svea Billing internet" mcc="240" mnc="01" apn="inap2.telia.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Svea Billing MMS" mcc="240" mnc="01" apn="inapmms.telia.se" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="SveaCom internet" mcc="240" mnc="01" apn="ct.tmh-gprs.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="SveaCom MMS" mcc="240" mnc="01" apn="ct.tmh-mms.se" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="Telavox internet" mcc="240" mnc="01" apn="telavox.tmhgprs.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Telavox MMS" mcc="240" mnc="01" apn="tel.tmhmms" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="Telogic internet" mcc="240" mnc="01" apn="telogic.telia.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Telogic MMS" mcc="240" mnc="01" apn="telogicmms.telia.se" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="Ventelo internet" mcc="240" mnc="01" apn="ventelo.telia.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Ventelo MMS" mcc="240" mnc="01" apn="ventelomms.telia.se" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="WMG internet" mcc="240" mnc="01" apn="maingate.telia.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="WMG MMS" mcc="240" mnc="01" apn="wmgmms.telia.se" proxy="" port="" user="" password="" mmsc="http://mmss/" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="Halebop MMS" mcc="240" mnc="017" apn="mms.telia.se" proxy="" port="" user="" password="" mmsc="http://mmss" mmsproxy="193.209.134.132" mmsport="80" type="mms" />
- <apn carrier="3" mcc="240" mnc="02" apn="data.tre.se" proxy="" port="" user="" password="" mmsc="http://mms.tre.se" mmsproxy="mmsproxy.tre.se" mmsport="8799" type="default,supl,mms" />
- <apn carrier="3 SE" mcc="240" mnc="02" apn="data.tre.se" type="default,supl,mms" />
- <apn carrier="3 SE MMS" mcc="240" mnc="02" apn="data.tre.se" mmsc="http://mms.tre.se" mmsproxy="mmsproxy.tre.se" mmsport="8799" type="mms" />
- <apn carrier="Telenor Mobilsurf" mcc="240" mnc="04" apn="services.telenor.se" proxy="172.30.253.241" port="8799" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Telenor MMS" mcc="240" mnc="04" apn="services.telenor.se" proxy="" port="" user="" password="" mmsc="http://mms" mmsproxy="172.30.253.241" mmsport="8799" type="mms" />
- <apn carrier="Telenor MMS" mcc="240" mnc="06" apn="services.telenor.se" proxy="" port="" user="" password="" mmsc="http://mms" mmsproxy="173.30.253.241" mmsport="8799" type="mms" />
- <apn carrier="Telenor Mobilsurf" mcc="240" mnc="06" apn="services.telenor.se" proxy="173.30.253.241" port="8799" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Glocalnet Internet" mcc="240" mnc="06" apn="internet.glocalnet.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Glocalnet MMS" mcc="240" mnc="06" apn="services.glocalnet.se" proxy="" port="" user="" password="" mmsc="http://mms" mmsproxy="172.30.253.241" mmsport="8799" type="mms" />
- <apn carrier="Glocalnet WAP GPRS" mcc="240" mnc="06" apn="services.glocalnet.se" proxy="172.30.253.241" port="8799" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Tele2 Internet" mcc="240" mnc="07" apn="4g.tele2.se" type="default,supl" />
- <apn carrier="Tele2 MMS" mcc="240" mnc="07" apn="4g.tele2.se" mmsc="http://mmsc.tele2.se" mmsproxy="130.244.202.30" mmsport="8080" type="mms" />
- <apn carrier="Tele2 Internet" mcc="240" mnc="07" apn="internet.tele2.no" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Tele2 MMS" mcc="240" mnc="07" apn="internet.tele2.no" proxy="" port="" user="" password="" mmsc="http://mmsc.tele2.no" mmsproxy="193.12.40.14" mmsport="8080" type="mms" />
- <apn carrier="Spring data" mcc="240" mnc="07" apn="data.springmobil.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Spring MMS" mcc="240" mnc="07" apn="mms.springmobil.se" proxy="" port="" user="" password="" mmsc="http://mms.springmobil.se" mmsproxy="213.88.184.37" mmsport="8080" type="mms" />
- <apn carrier="Glocalnet Mobilsurf" mcc="240" mnc="08" apn="services.glocalnet.se" proxy="172.30.253.241" port="8799" mmsc="" user="" password="" authtype="3" type="default,supl" spn="Glocalnet" />
- <apn carrier="Glocalnet MMS" mcc="240" mnc="08" apn="services.glocalnet.se" proxy="" port="" mmsproxy="172.30.253.241" mmsport="8799" mmsc="http://mms" user="" password="" authtype="3" type="mms" spn="Glocalnet" />
- <apn carrier="Telenor Mobilsurf" mcc="240" mnc="08" apn="services.telenor.se" proxy="172.30.253.241" port="8799" mmsc="" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="Telenor MMS" mcc="240" mnc="08" apn="services.telenor.se" proxy="" port="" mmsproxy="172.30.253.241" mmsport="8799" mmsc="http://mms" user="" password="" authtype="3" type="mms" />
- <apn carrier="Telenor SE" mcc="240" mnc="08" apn="internet.telenor.se" type="default,supl" />
- <apn carrier="Universal" mcc="240" mnc="08" apn="sp-services" proxy="172.030.253.241" port="8799" mmsc="http://mms" mmsproxy="172.30.253.241" mmsport="8799" type="default,supl,mms" />
- <apn carrier="Cellip" mcc="240" mnc="08" apn="services.telenor.se" proxy="172.30.253.241" port="8799" mmsproxy="172.030.253.241" mmsport="8799" mmsc="http://mms/" user="" password="" type="default,supl,mms" />
- <apn carrier="Telenor Mobilsurf" mcc="240" mnc="08" apn="services.telenor.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Telenor MMS" mcc="240" mnc="08" apn="services.telenor.se" proxy="" port="" user="" password="" mmsc="http://mms" mmsproxy="172.30.253.241" mmsport="8799" type="mms" />
- <apn carrier="Glocalnet Internet" mcc="240" mnc="08" apn="internet.glocalnet.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Glocalnet MMS" mcc="240" mnc="08" apn="services.glocalnet.se" proxy="" port="" user="" password="" mmsc="http://mms" mmsproxy="172.30.253.241" mmsport="8799" type="mms" />
- <apn carrier="Telenor MMS" mcc="240" mnc="09" apn="services.telenor.se" proxy="" port="" user="" password="" mmsc="http://mms" mmsproxy="173.30.253.241" mmsport="8799" type="mms" />
- <apn carrier="Telenor Mobilsurf" mcc="240" mnc="09" apn="services.telenor.se" proxy="173.30.253.241" port="8799" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Glocalnet Internet" mcc="240" mnc="09" apn="internet.glocalnet.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Glocalnet MMS" mcc="240" mnc="09" apn="services.glocalnet.se" proxy="" port="" user="" password="" mmsc="http://mms" mmsproxy="172.30.253.241" mmsport="8799" type="mms" />
- <apn carrier="Spring data" mcc="240" mnc="10" apn="data.springmobil.se" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Spring MMS" mcc="240" mnc="10" apn="mms.springmobil.se" proxy="" port="" user="" password="" mmsc="http://mmsc.tele2.se" mmsproxy="130.244.202.30" mmsport="8080" type="mms" />
- <apn carrier="Spring data" mcc="240" mnc="10" apn="data.springmobil.se" type="default,supl" />
- <apn carrier="Spring MMS" mcc="240" mnc="10" apn="mms.springmobil.se" mmsc="http://mms.springmobil.se" mmsproxy="213.88.184.37" mmsport="8080" type="mms" />
- <apn carrier="Lycamobile SE" mcc="240" mnc="12" apn="data.lycamobile.se" user="lmse" password="plus" type="default,supl" />
- <apn carrier="Telenor MMS" mcc="240" mnc="24" apn="services.telenor.se" proxy="" port="" user="" password="" mmsc="http://mms" mmsproxy="173.30.253.241" mmsport="8799" type="mms" />
- <apn carrier="Telenor Mobilsurf" mcc="240" mnc="24" apn="services.telenor.se" proxy="173.30.253.241" port="8799" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Telenor" mcc="242" mnc="01" apn="telenor.smart" mmsc="http://mmsc/" mmsproxy="mms-proxy.telenor.no" mmsport="8080" type="default,supl,mms" protocol="IPV4V6" roaming_protocol="IP" />
- <apn carrier="Mobitalk" mcc="242" mnc="01" apn="telenor" user="dj" password="dj" proxy="10.10.10.10" port="8080" mmsc="http://mmsc/" mmsproxy="10.10.10.11" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Phonero Internet" mcc="242" mnc="01" apn="internet.phonero.no" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Phonero MMS" mcc="242" mnc="01" apn="mms.phonero.no" proxy="" port="" user="phonero" password="1111" mmsc="http://mmsc" mmsproxy="10.10.10.11" mmsport="8080" type="mms" />
- <apn carrier="NetCom" mcc="242" mnc="02" apn="netcom" proxy="10.254.254.10" port="8080" mmsc="http://mm/" mmsproxy="212.169.66.4" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Tele2 Internet" mcc="242" mnc="04" apn="internet.tele2.no" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Tele2 MMS" mcc="242" mnc="04" apn="internet.tele2.no" proxy="" port="" user="" password="" mmsc="http://mmsc.tele2.no" mmsproxy="193.12.40.14" mmsport="8080" type="mms" />
- <apn carrier="NwN Internet" mcc="242" mnc="05" apn="internet" type="default,supl" />
- <apn carrier="NwN MMS" mcc="242" mnc="05" apn="mms" mmsc="http://mms.nwn.no" mmsproxy="188.149.250.10" mmsport="80" type="mms" />
- <apn carrier="TDC Internet" mcc="242" mnc="08" apn="internet" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="TDC MMS" mcc="242" mnc="08" apn="mms" proxy="" port="" mmsproxy="inetproxy.tdc.dk" mmsport="8080" mmsc="http://mmsc.tdc.dk:8002" user="" password="" authtype="3" type="mms" />
- <apn carrier="DNA Internet" mcc="244" mnc="03" apn="internet" type="default,supl" />
- <apn carrier="DNA WAP" mcc="244" mnc="03" apn="wap" proxy="10.1.1.1" port="80" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="DNA MMS" mcc="244" mnc="03" apn="mms" user="dna" password="mms" mmsc="http://mmsc.dnafinland.fi/" mmsproxy="10.1.1.2" mmsport="8080" type="mms" />
- <apn carrier="DNA MMS" mcc="244" mnc="03" apn="mms" proxy="" port="" user="dna" password="mms" mmsc="http://mmsc.dnafinland.fi/" mmsproxy="10.1.10.2" mmsport="8080" type="mms" />
- <apn carrier="GSM Suomi Internet" mcc="244" mnc="03" apn="internet.gsm-suomi.fi" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="GSM Suomi MMS" mcc="244" mnc="03" apn="mms.gsm-suomi.fi" proxy="" port="" user="" password="" mmsc="http://mmsc.gsm-suomi.fi" mmsproxy="" mmsport="8080" type="mms" />
- <apn carrier="Telia ISP GPRS" mcc="244" mnc="03" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Telia MMS" mcc="244" mnc="03" apn="mms" proxy="" port="" user="" password="" mmsc="http://mmsc:8002" mmsproxy="62.113.190.142" mmsport="9201" type="mms" />
- <apn carrier="OP WAP GPRS" mcc="244" mnc="03" apn="internet" proxy="157.124.248.60" port="9201" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Telia WAP GPRS" mcc="244" mnc="03" apn="internet" proxy="195.10.130.8" port="9201" user="wap" password="wap" mmsc="" type="default,supl" />
- <apn carrier="Telia Online GPRS" mcc="244" mnc="03" apn="wap" proxy="62.113.190.132" port="9201" user="wap" password="wap" mmsc="" type="default,supl" />
- <apn carrier="Aina Internet" mcc="244" mnc="03" apn="internet.aina.fi" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Aina MMS" mcc="244" mnc="03" apn="mms.aina.fi" proxy="" port="" user="" password="" mmsc="http://mmsc.aina.fi" mmsproxy="10.1.10.2" mmsport="8080" type="mms" />
- <apn carrier="DNA Internet" mcc="244" mnc="04" apn="internet" type="default,supl" />
- <apn carrier="DNA MMS" mcc="244" mnc="04" apn="mms" user="dna" password="mms" mmsc="http://mmsc.dnafinland.fi/" mmsproxy="10.1.1.2" mmsport="8080" type="mms" />
- <apn carrier="GSM Suomi Internet" mcc="244" mnc="04" apn="internet.gsm-suomi.fi" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="GSM Suomi MMS" mcc="244" mnc="04" apn="mms.gsm-suomi.fi" proxy="" port="" user="" password="" mmsc="http://mmsc.gsm-suomi.fi" mmsproxy="" mmsport="8080" type="mms" />
- <apn carrier="Elisa Internet" mcc="244" mnc="05" apn="internet" user="" password="" authtype="1" type="default,supl" />
- <apn carrier="Elisa MMS" mcc="244" mnc="05" apn="mms" proxy="" port="" mmsproxy="213.161.41.57" mmsport="80" mmsc="http://mms.elisa.fi" user="" password="" authtype="1" type="mms" />
- <apn carrier="Saunalahti Internet" mcc="244" mnc="05" apn="internet" proxy="" port="" user="" password="" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="Saunalahti MMS" mcc="244" mnc="05" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms.elisa.fi" mmsproxy="213.161.41.57" mmsport="80" authtype="1" type="mms" />
- <apn carrier="TDC Internet" mcc="244" mnc="10" apn="internet.song.fi" proxy="" port="" user="song@internet" password="songnet" mmsc="" type="default,supl" />
- <apn carrier="TDC MMS" mcc="244" mnc="10" apn="mms.song.fi" proxy="" port="" user="" password="" mmsc="http://mms.song.fi" mmsproxy="213.161.41.58" mmsport="80" type="mms" />
- <apn carrier="DNA Internet" mcc="244" mnc="12" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="DNA WAP" mcc="244" mnc="12" apn="wap" proxy="10.1.1.1" port="80" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="DNA MMS" mcc="244" mnc="12" apn="mms" user="dna" password="mms" mmsc="http://mmsc.dnafinland.fi" mmsproxy="10.1.1.2" mmsport="8080" type="mms" />
- <apn carrier="DNA MMS" mcc="244" mnc="12" apn="mms" proxy="" port="" user="" password="" mmsc="http://mmsc.dna.fi/" mmsproxy="10.1.1.2" mmsport="8080" type="mms" />
- <apn carrier="DNA Pro Internet" mcc="244" mnc="12" apn="dnapro.fi" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="DNA Pro MMS" mcc="244" mnc="12" apn="mms.dnapro.fi" proxy="" port="" user="" password="" mmsc="http://mmsc.dnapro.fi" mmsproxy="10.1.1.21" mmsport="8080" type="mms" />
- <apn carrier="GSM Suomi Internet" mcc="244" mnc="12" apn="internet.gsm-suomi.fi" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="GSM Suomi MMS" mcc="244" mnc="12" apn="mms.gsm-suomi.fi" proxy="" port="" user="" password="" mmsc="http://mmsc.gsm-suomi.fi" mmsproxy="" mmsport="8080" type="mms" />
- <apn carrier="Aina Internet" mcc="244" mnc="12" apn="internet.aina.fi" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Aina MMS" mcc="244" mnc="12" apn="mms.aina.fi" proxy="" port="" user="" password="" mmsc="http://mmsc.aina.fi" mmsproxy="10.1.10.2" mmsport="8080" type="mms" />
- <apn carrier="Go Mobile WAP" mcc="244" mnc="12" apn="wap.gomobile.fi" proxy="10.1.1.10" port="80" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Go Mobile MMS" mcc="244" mnc="12" apn="mms.gomobile.fi" proxy="" port="" user="" password="" mmsc="http://mmsc.gomobile.fi" mmsproxy="10.1.1.11" mmsport="8080" type="mms" />
- <apn carrier="Go Mobile Internet" mcc="244" mnc="12" apn="internet.gomobile.fi" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="TDC Internet" mcc="244" mnc="12" apn="inet.tdc.fi" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="TDC MMS" mcc="244" mnc="12" apn="mms.tdc.fi" proxy="" port="" user="" password="" mmsc="http://mmsc.tdc.fi" mmsproxy="10.1.12.2" mmsport="8080" type="mms" />
- <apn carrier="KYMP Internet" mcc="244" mnc="12" apn="internet.kymp.net" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="KYMP MMS" mcc="244" mnc="12" apn="mms.kymp.net" proxy="" port="" user="" password="" mmsc="http://mmsc.kymp.net" mmsproxy="10.1.1.17" mmsport="8080" type="mms" />
- <apn carrier="Concept.10 Internet" mcc="244" mnc="12" apn="internet.c10.fi" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Concept.10 MMS" mcc="244" mnc="12" apn="mms.c10.fi" proxy="" port="" user="" password="" mmsc="http://mmsc.c10.fi" mmsproxy="10.1.1.19" mmsport="8080" type="mms" />
- <apn carrier="Setera Internet" mcc="244" mnc="12" apn="internet.setera.fi" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Setera MMS" mcc="244" mnc="12" apn="mms.setera.fi" proxy="" port="" user="" password="" mmsc="http://mmsc.setera.fi" mmsproxy="10.1.11.2" mmsport="8080" type="mms" />
- <apn carrier="Fujitsu Internet" mcc="244" mnc="12" apn="internet.invianet.com" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Fujitsu MMS" mcc="244" mnc="12" apn="mms.invianet.com" proxy="" port="" user="" password="" mmsc="http://mmsc.invianet.com" mmsproxy="10.1.2.3" mmsport="8080" type="mms" />
- <apn carrier="dicame Internet" mcc="244" mnc="12" apn="internet.dicame.fi" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="dicame MMS" mcc="244" mnc="12" apn="mms.dicame.fi" proxy="" port="" user="" password="" mmsc="http://mmsc.dicame.fi" mmsproxy="10.1.1.15" mmsport="8080" type="mms" />
- <apn carrier="Optimi Internet" mcc="244" mnc="12" apn="internet.dicame.fi" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Optimi MMS" mcc="244" mnc="12" apn="mms.dicame.fi" proxy="" port="" user="" password="" mmsc="http://mmsc.dicame.fi" mmsproxy="10.1.1.15" mmsport="8080" type="mms" />
- <apn carrier="Finora Internet" mcc="244" mnc="12" apn="internet.setera.fi" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Finora MMS" mcc="244" mnc="12" apn="mms.setera.fi" proxy="" port="" user="" password="" mmsc="http://mmsc.setera.fi" mmsproxy="10.1.11.2" mmsport="8080" type="mms" />
- <apn carrier="DNA Internet" mcc="244" mnc="13" apn="internet" type="default,supl" />
- <apn carrier="DNA MMS" mcc="244" mnc="13" apn="mms" user="dna" password="mms" mmsc="http://mmsc.dnafinland.fi/" mmsproxy="10.1.1.2" mmsport="8080" type="mms" />
- <apn carrier="GSMAland internet" mcc="244" mnc="14" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <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" 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" />
- <apn carrier="Tele Finland Internet" mcc="244" mnc="91" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Tele Finland 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" />
- <apn carrier="Omnitel MMS" mcc="246" mnc="01" apn="gprs.mms.lt" proxy="" port="" user="mms" password="mms" mmsc="http://mms.omnitel.net:8002/" mmsproxy="194.176.32.149" mmsport="8080" type="mms" />
- <apn carrier="Omnitel" mcc="246" mnc="01" apn="gprs.startas.lt" proxy="" port="" user="omni" password="omni" mmsc="" type="default,supl" />
- <apn carrier="Omnitel Internet" mcc="246" mnc="01" apn="omnitel" proxy="" port="" user="omni" password="omni" mmsc="" type="default,supl" />
- <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="" 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" />
- <apn carrier="VZW Test Internet" mcc="246" mnc="081" apn="VZWINTERNET" type="default,dun,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="VZW Test FOTA" mcc="246" mnc="081" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="VZW Test IMS" mcc="246" mnc="081" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="VZW Test CBS" mcc="246" mnc="081" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="VZW Test Internet" mcc="246" mnc="81" apn="VZWINTERNET" type="default,dun,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="VZW Test FOTA" mcc="246" mnc="81" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="VZW Test IMS" mcc="246" mnc="81" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="VZW Test CBS" mcc="246" mnc="81" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="LMT" mcc="247" mnc="01" apn="internet.lmt.lv" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="LMT MMS" mcc="247" mnc="01" apn="internet.lmt.lv" proxy="" port="" user="" password="" mmsc="http://mmsc.lmt.lv/mmsc" mmsproxy="212.93.97.201" mmsport="8080" type="mms" />
- <apn carrier="Tele2 Internet LV" mcc="247" mnc="02" apn="internet.tele2.lv" user="wap" password="wap" proxy="" port="" type="default,supl" />
- <apn carrier="Tele2 MMS LV" mcc="247" mnc="02" apn="mms.tele2.lv" proxy="" port="" user="wap" password="wap" mmsc="http://mmsc.tele2.lv/" mmsproxy="193.12.40.38" mmsport="8080" type="mms" />
- <apn carrier="Bite LV Internet" mcc="247" mnc="05" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Bite MMS" mcc="247" mnc="05" apn="mms" proxy="" port="" user="mms@mms" password="" mmsc="http://mmsc/servlets/mms" mmsproxy="192.168.150.2" mmsport="8080" type="mms" />
- <apn carrier="EMT" mcc="248" mnc="01" apn="internet.emt.ee" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="EMT MMS" mcc="248" mnc="01" apn="mms.emt.ee" proxy="" port="" user="" password="" mmsc="http://mms.emt.ee/servlets/mms" type="mms" />
- <apn carrier="Elisa EE" mcc="248" mnc="02" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Elisa EE MMS" mcc="248" mnc="02" apn="mms" proxy="" port="" user="" password="" mmsc="http://194.204.2.10" mmsproxy="194.204.2.6" mmsport="8080" type="mms" />
- <apn carrier="Tele2 EE" mcc="248" mnc="03" apn="internet.tele2.ee" proxy="" port="" user="wap" password="wap" mmsc="" type="default,supl" />
- <apn carrier="Tele2 EE MMS" mcc="248" mnc="03" apn="mms.emt.ee" proxy="" port="" user="" password="" mmsc="http://mms.emt.ee/servlets/mms" mmsproxy="217.71.32.82" mmsport="8080" type="mms" />
- <apn carrier="Tele2 MMS" mcc="248" mnc="03" apn="mms.tele2.ee" proxy="" port="" user="" password="" mmsc="http://mmsc.tele2.ee" mmsproxy="193.12.40.6" mmsport="8080" type="mms" />
- <apn carrier="MTS RU" mcc="250" mnc="01" apn="internet.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="ETK" mcc="250" mnc="01" apn="mms.etk.ru" proxy="" port="" user="mms" password="mms" mmsc="http://mmsc" mmsproxy="10.10.30.60" mmsport="8080" type="default,supl,mms" />
- <apn carrier="MTS RU MMS" mcc="250" mnc="01" apn="mms.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="http://mmsc" mmsproxy="192.168.192.192" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Megafon Internet" mcc="250" mnc="02" apn="internet" proxy="" port="" user="" password="" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="Megafon MMS" mcc="250" mnc="02" apn="mms" proxy="" port="" user="mms" password="mms" mmsc="http://mmsc:8002" mmsproxy="10.10.10.10" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="NCC" mcc="250" mnc="03" apn="mms" proxy="" port="" user="" password="" mmsc="http://10.0.3.50" mmsproxy="10.0.3.20" mmsport="8080" type="mms" />
- <apn carrier="МТС-интернет" mcc="250" mnc="04" apn="internet.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="МТС Центр MMS" mcc="250" mnc="04" apn="mms.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="http://mmsc" mmsproxy="192.168.192.192" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="ETK" mcc="250" mnc="05" apn="internet.etk.ru" proxy="" port="" user="" password="" mmsc="" type="default,supl,mms" />
- <apn carrier="МТС-интернет" mcc="250" mnc="05" apn="internet.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="МТС Центр MMS" mcc="250" mnc="05" apn="mms.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="http://mmsc" mmsproxy="192.168.192.192" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Smarts RU internet" mcc="250" mnc="07" apn="internet.smarts.ru" type="default,supl" />
- <apn carrier="Smarts RU mms" mcc="250" mnc="07" apn="mms.smarts.ru" user="n@k" password="nok" mmsc="http://mmsc:8002" mmsproxy="172.24.121.5" mmsport="8080" type="mms" />
- <apn carrier="internet" mcc="250" mnc="07" apn="internet.smarts.ru" proxy="" port="" user="any" password="any" mmsc="" type="default,supl" />
- <apn carrier="mms" mcc="250" mnc="07" apn="mms.smarts.ru" proxy="" port="" user="wap" password="wap" mmsc="http://172.24.120.135/mms/wapenc" mmsproxy="172.24.128.5" mmsport="8080" type="mms" />
- <apn carrier="МТС-интернет" mcc="250" mnc="10" apn="internet.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="МТС Центр MMS" mcc="250" mnc="10" apn="mms.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="http://mmsc" mmsproxy="192.168.192.192" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Beeline internet" mcc="250" mnc="11" apn="internet.beeline.ru" proxy="" port="" user="beeline" password="beeline" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="Beeline MMS" mcc="250" mnc="11" apn="mms.beeline.ru" proxy="" port="" user="beeline" password="beeline" mmsc="http://mms/" mmsproxy="192.168.94.23" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Yota" mcc="250" mnc="11" apn="internet.yota" authtype="1" type="default,supl" />
- <apn carrier="Yota MMS" mcc="250" mnc="11" apn="mms.yota" mmsc="http://mmsc:8002" mmsproxy="10.10.10.10" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="GPRS-Internet" mcc="250" mnc="12" apn="inet.bwc.ru" proxy="" port="" user="bwc" password="bwc" mmsc="" type="default,supl" />
- <apn carrier="BWC MMS" mcc="250" mnc="12" apn="mms.bwc.ru" proxy="" port="" user="bwc" password="bwc" mmsc="http://mmsc/mms" mmsproxy="10.10.17.2" mmsport="8080" type="mms" />
- <apn carrier="МТС-интернет" mcc="250" mnc="13" apn="internet.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="МТС Центр MMS" mcc="250" mnc="13" apn="mms.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="http://mmsc" mmsproxy="192.168.192.192" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="MMS" mcc="250" mnc="16" apn="mms.ntc" proxy="" port="" user="" password="" mmsc="http://mmsc.vntc.ru/was" mmsproxy="80.243.64.68" mmsport="8080" type="mms" />
- <apn carrier="Internet" mcc="250" mnc="17" apn="internet.usi.ru" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="MMS" mcc="250" mnc="17" apn="mms.usi.ru" proxy="" port="" user="" password="" mmsc="http://mms" mmsproxy="192.168.168.192" mmsport="8080" type="mms" />
- <apn carrier="Tele2 RU" mcc="250" mnc="20" apn="internet.tele2.ru" proxy="" port="" user="" password="" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="Tele2 RU MMS" mcc="250" mnc="20" apn="mms.tele2.ru" proxy="" port="" user="" password="" mmsc="http://mmsc.tele2.ru" mmsproxy="193.12.40.65" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="MegaFon Internet" mcc="250" mnc="30" apn="Internet" user="gdata" password="gdata" authtype="1" type="default,supl" />
- <apn carrier="MegaFon MMS" mcc="250" mnc="30" apn="mms" mmsproxy="10.10.10.10" mmsport="8080" mmsc="http://mmsc:8002" user="mms" password="mms" authtype="1" type="mms" />
- <apn carrier="USI GPRS" mcc="250" mnc="39" apn="internet.usi.ru" type="default,supl" />
- <apn carrier="Utel MMS" mcc="250" mnc="39" apn="mms.usi.ru" mmsproxy="192.168.168.192" mmsport="8080" mmsc="http://mms" type="mms" />
- <apn carrier="МТС-интернет" mcc="250" mnc="39" apn="internet.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="МТС Центр MMS" mcc="250" mnc="39" apn="mms.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="http://mmsc" mmsproxy="192.168.192.192" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Beeline internet" mcc="250" mnc="44" apn="internet.beeline.ru" proxy="" port="" user="beeline" password="beeline" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="Beeline MMS" mcc="250" mnc="44" apn="mms.beeline.ru" proxy="" port="" user="beeline" password="beeline" mmsc="http://mms/" mmsproxy="192.168.94.23" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="МТС-интернет" mcc="250" mnc="92" apn="internet.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="МТС Центр MMS" mcc="250" mnc="92" apn="mms.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="http://mmsc" mmsproxy="192.168.192.192" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="МТС-интернет" mcc="250" mnc="93" apn="internet.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="МТС Центр MMS" mcc="250" mnc="93" apn="mms.mts.ru" proxy="" port="" user="mts" password="mts" mmsc="http://mmsc" mmsproxy="192.168.192.192" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="BeeLine RU" mcc="250" mnc="99" apn="internet.beeline.ru" proxy="" port="" user="beeline" password="beeline" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="BeeLine RU MMS" mcc="250" mnc="99" apn="mms.beeline.ru" proxy="" port="" user="beeline" password="beeline" mmsc="http://mms/" mmsproxy="192.168.94.23" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Beeline Home" mcc="250" mnc="99" apn="home.beeline.ru" user="beeline" password="beeline" authtype="1" type="default,supl" />
- <apn carrier="Vodafone UA" mcc="255" mnc="01" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Vodafone UA MMS" mcc="255" mnc="01" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms" mmsproxy="192.168.10.10" mmsport="8080" type="mms" />
- <apn carrier="Beeline UA" mcc="255" mnc="02" apn="www.ab.kyivstar.net" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Beeline UA MMS" mcc="255" mnc="02" apn="mms.kyivstar.net" proxy="" port="" user="" password="" mmsc="http://mms.kyivstar.net/" mmsproxy="10.10.10.10" mmsport="8080" type="mms" />
- <apn carrier="Kyivstar" mcc="255" mnc="03" apn="www.kyivstar.net" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Kyivstar Prepaid" mcc="255" mnc="03" apn="www.ab.kyivstar.net" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Kyivstar MMS" mcc="255" mnc="03" apn="mms.kyivstar.net" proxy="" port="" user="" password="" mmsc="http://mms.kyivstar.net" mmsproxy="10.10.10.10" mmsport="8080" type="mms" />
- <apn carrier="lifecell" mcc="255" mnc="06" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="lifecell MMS" mcc="255" mnc="06" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms.life" mmsproxy="10.10.10.10" mmsport="8080" type="mms" />
- <apn carrier="TriMob" mcc="255" mnc="07" apn="3g.utel.ua" proxy="" port="" user="" password="" mmsc="http://10.212.1.4/mms/wapenc" mmsproxy="10.212.3.148" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Velcom MMS" mcc="257" mnc="01" apn="mms.velcom.by" proxy="" port="" user="mms" password="mms" server="mms.velcom.by" mmsc="http://mms.velcom.by/servlets/mms" mmsproxy="10.200.15.15" mmsport="8080" type="mms" />
- <apn carrier="Velcom BY // Web Plus" mcc="257" mnc="01" apn="plus.velcom.by" proxy="" port="" user="plus" password="plus" mmsc="" type="default,supl" />
- <apn carrier="Velcom BY // Web 500" mcc="257" mnc="01" apn="vmi.velcom.by" proxy="" port="" user="vmi" password="vmi" mmsc="" type="default,supl" />
- <apn carrier="Velcom Web" mcc="257" mnc="01" apn="web.velcom.by" proxy="" port="" user="web" password="web" mmsc="" type="default,supl" />
- <apn carrier="Velcom BY // Web Basic" mcc="257" mnc="01" apn="web1.velcom.by" proxy="" port="" user="web1" password="web1" mmsc="" type="default,supl" />
- <apn carrier="Velcom BY // Web 25" mcc="257" mnc="01" apn="web2.velcom.by" proxy="" port="" user="web2" password="web2" mmsc="" type="default,supl" />
- <apn carrier="Velcom BY // Web 250" mcc="257" mnc="01" apn="web3.velcom.by" proxy="" port="" user="web3" password="web3" mmsc="" type="default,supl" />
- <apn carrier="MTS BY" mcc="257" mnc="02" apn="mts" proxy="" port="" user="mts" password="mts" mmsc="" type="default,supl" />
- <apn carrier="MTS BY MMS" mcc="257" mnc="02" apn="mts" proxy="" port="" user="mts" password="mts" mmsc="http://mmsc" mmsproxy="192.168.192.168" mmsport="8080" type="mms" />
- <apn carrier="life Internet" mcc="257" mnc="04" apn="internet.life.com.by" type="default,supl" />
- <apn carrier="life MMS" mcc="257" mnc="04" apn="mms.life.com.by" proxy="" port="" mmsproxy="10.10.10.20" mmsport="8080" mmsc="http://mms.life.com.by/mmsc" type="mms" />
- <apn carrier="Life:) // Internet" mcc="257" mnc="04" apn="mms.life.com.by" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Life:) // MMS" mcc="257" mnc="04" apn="mms.life.com.by" proxy="" port="" user="" password="" mmsc="http://mms.life.com.by/mmsc/" mmsproxy="10.10.10.20" mmsport="8080" type="mms" />
- <apn carrier="Orange IMO" mcc="259" mnc="01" apn="wap.orange.md" proxy="" port="" user="" password="" mmsc="http://wap.orange.md/" mmsproxy="9201" mmsport="8799" type="*" />
- <apn carrier="Orange MMS" mcc="259" mnc="01" apn="mms.orange.md" mmsc="http://mms/mms" mmsproxy="192.168.127.125" mmsport="3128" type="mms" />
- <apn carrier="Orange IMO" mcc="259" mnc="01" apn="wap.orange.md" proxy="192.168.127.124" mmsport="3128" type="default,supl" />
- <apn carrier="MD MOLDCELL" mcc="259" mnc="02" apn="internet" type="default,supl" />
- <apn carrier="MD MOLDCELL" mcc="259" mnc="02" apn="mms" mmsproxy="10.0.10.10" mmsport="9401" mmsc="http://mms.moldcell.md/cmmsc/post" type="mms" />
- <apn carrier="Unite Internet PrePay" mcc="259" mnc="05" apn="internet3g.unite.md" type="default,supl" />
- <apn carrier="Unite Internet PostPay" mcc="259" mnc="05" apn="internet.unite.md" type="default,supl" />
- <apn carrier="Unite MMS" mcc="259" mnc="05" apn="mms.unite.md" mmsc="http://10.32.15.68:38090/was" mmsproxy="10.32.15.164" mmsport="8080" type="mms" />
- <apn carrier="Carrefour Mova" mcc="260" mnc="01" apn="www.mova.pl" type="default,supl" />
- <apn carrier="Carrefour Mova MMS" mcc="260" mnc="01" apn="mms.mova.pl" mmsc="http://mms.mova.pl:8002/" mmsproxy="212.2.96.16" mmsport="8080" type="mms" />
- <apn carrier="FM Group Mobile" mcc="260" mnc="01" apn="www.fmgmobie.pl" type="default,supl" />
- <apn carrier="FM Group Mobile MMS" mcc="260" mnc="01" apn="mms.fmgmobile.pl" mmsc="http://mms.fmgmobile.pl:8002/" mmsproxy="212.2.96.16" mmsport="8080" type="mms" />
- <apn carrier="GaduAIR" mcc="260" mnc="01" apn="internet.gadu-gadu.pl" type="default,supl" />
- <apn carrier="GaduAIR MMS" mcc="260" mnc="01" apn="mms.gadu-gadu.pl" mmsc="http://mms.gadu-gadu.pl:8002/" mmsproxy="212.2.96.16" mmsport="8080" type="mms" />
- <apn carrier="mBank mobile" mcc="260" mnc="01" apn="www.mobile.pl" type="default,supl" />
- <apn carrier="mBank mobile MMS" mcc="260" mnc="01" apn="mms.mobile.pl" mmsc="http://mms.mobile.pl:8080" mmsproxy="212.2.96.16" mmsport="8080" type="mms" />
- <apn carrier="Plus INTERNET" mcc="260" mnc="01" apn="plus" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Plus MMS" mcc="260" mnc="01" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms.plusgsm.pl:8002" mmsproxy="212.2.96.16" mmsport="8080" type="mms" />
- <apn carrier="PlusWAP" mcc="260" mnc="01" apn="wap" user="plusgsm" password="plusgsm" proxy="212.2.96.16" mmsport="8080" type="default,supl" />
- <apn carrier="Era Internet" mcc="260" mnc="02" apn="erainternet" proxy="" port="" user="erainternet" password="erainternet" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="Era MMS" mcc="260" mnc="02" apn="eramms" proxy="" port="" user="eramms" password="eramms" mmsc="http://mms.era.pl/servlets/mms" mmsproxy="213.158.194.226" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Era MMS" mcc="260" mnc="02" apn="eramms" user="eramms" password="eramms" server="*" mmsc="http://mms.era.pl/servlets/mms" mmsproxy="213.158.194.226" mmsport="8080" type="mms" />
- <apn carrier="Era Internet" mcc="260" mnc="02" apn="erainternet" user="erainternet" password="erainternet" type="default,supl" />
- <apn carrier="Tak-Tak" mcc="260" mnc="02" apn="erainternettt" user="erainternet" password="erainternet" type="default,supl" />
- <apn carrier="Heyah" mcc="260" mnc="02" apn="heyah.pl" user="heyah" password="heyah" type="default,supl" />
- <apn carrier="Heyah MMS" mcc="260" mnc="02" apn="heyahmms" user="heyah" password="heyah" mmsc="http:/mms.heyah.pl/servlets/mms" mmsproxy="213.158.194.057" mmsport="8080" type="mms" />
- <apn carrier="Mobilking MMS" mcc="260" mnc="02" apn="mmsMOBILKING" user="mobilking" password="mobilking" mmsc="http://mms.mobilking.pl/servlets/mms" mmsproxy="213.158.194.226" mmsport="8080" type="mms" />
- <apn carrier="Mobilking" mcc="260" mnc="02" apn="wapMOBILKING" user="mobilking" password="mobilking" type="default,supl" />
- <apn carrier="tuBiedronka" mcc="260" mnc="02" apn="internet" user="internet" password="internet" type="default,supl" />
- <apn carrier="tuBiedronka MMS" mcc="260" mnc="02" apn="tubiedronkamms" user="tubiedronka" password="tubiedronka" mmsc="http://mms.tubiedronka.pl/servlets.mmsl" mmsproxy="213.158.194.226" mmsport="8080" type="mms" />
- <apn carrier="T-Mobile.pl INTERNET" mcc="260" mnc="02" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="T-Mobile.pl MMS" mcc="260" mnc="02" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms/servlets/mms" mmsproxy="213.158.194.226" mmsport="8080" type="mms" />
- <apn carrier="Heyah INTERNET" mcc="260" mnc="02" apn="heyah.pl" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Heyah MMS" mcc="260" mnc="02" apn="heyahmms" proxy="" port="" user="" password="" mmsc="http://mms.heyah.pl/servlets/mms" mmsproxy="213.158.194.57" mmsport="8080" type="mms" />
- <apn carrier="Internet Orange" mcc="260" mnc="03" apn="internet" user="internet" password="internet" authtype="3" type="default,supl" />
- <apn carrier="MMS Orange" mcc="260" mnc="03" apn="mms" proxy="" port="" mmsproxy="192.168.006.104" mmsport="8080" mmsc="http://mms.orange.pl" user="mms" password="mms" authtype="3" type="mms" />
- <apn carrier="ASTER" mcc="260" mnc="03" apn="aster.internet" user="internet" password="internet" type="default,supl" />
- <apn carrier="ASTER MMS" mcc="260" mnc="03" apn="aster.mms" user="mms" password="mms" mmsc="http://mms.aster.pl" mmsproxy="192.168.006.138" mmsport="8080" type="mms" />
- <apn carrier="Orange PL" mcc="260" mnc="03" apn="internet" user="internet" password="internet" type="default,supl" />
- <apn carrier="MMS Orange" mcc="260" mnc="03" apn="mms" user="mms" password="mms" mmsc="http://mms.orange.pl" mmsproxy="192.168.6.104" mmsport="8080" type="mms" />
- <apn carrier="MNI" mcc="260" mnc="03" apn="mni.internet" user="mni.internet" password="mni.internet" type="default,supl" />
- <apn carrier="MNI MMS" mcc="260" mnc="03" apn="mni.mms" user="mni.mms" password="mni.mms" mmsc="http://mms.mni.pl/" mmsproxy="192.168.006.135" mmsport="8080" type="mms" />
- <apn carrier="Internet" mcc="260" mnc="06" apn="Internet" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="MMS" mcc="260" mnc="06" apn="mms" proxy="" port="" mmsproxy="10.10.25.5" mmsport="8080" mmsc="http://10.10.28.164/mms/wapenc" user="" password="" authtype="3" type="mms" />
- <apn carrier="Play INTERNET" mcc="260" mnc="06" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Play MMS" mcc="260" mnc="06" apn="mms" proxy="" port="" user="" password="" mmsc="http://10.10.28.164/mms/wapenc" mmsproxy="10.10.25.5" mmsport="8080" type="mms" />
- <apn carrier="Lycamobile PL" mcc="260" mnc="09" apn="data.lycamobile.pl" user="lmpl" password="plus" type="default,supl" />
- <apn carrier="Cyfrowy Polsat INTERNET" mcc="260" mnc="12" apn="internet.cp" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Cyfrowy Polsat MMS" mcc="260" mnc="12" apn="mms.cyfrowypolsat.pl" proxy="" port="" user="" password="" mmsc="http://mms.cyfrowypolsat.pl:8002" mmsproxy="79.171.2.33" mmsport="8080" type="mms" />
- <apn carrier="Aero2" mcc="260" mnc="17" apn="darmowy" type="default,supl" />
- <apn carrier="Truphone PL" mcc="260" mnc="33" apn="truphone.com" type="default,supl" />
- <apn carrier="Telekom IMS" mcc="262" mnc="01" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Telekom Internet" mcc="262" mnc="01" apn="internet.telekom" user="telekom" password="telekom" mmsc="http://mms.t-mobile.de/servlets/mms" mmsproxy="109.237.176.193" mmsport="8008" bearer_bitmask="1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17" authtype="1" type="mms,default,supl,ia" protocol="IPV4V6" />
- <apn carrier="Telekom Internet" mcc="262" mnc="01" apn="hos" user="telekom" password="telekom" mmsc="http://mms.t-mobile.de/servlets/mms" mmsproxy="109.237.176.193" mmsport="8008" bearer_bitmask="18" authtype="1" type="mms,supl" protocol="IPV4V6" user_visible="false" />
- <apn carrier="Telekom Internet" mcc="262" mnc="01" apn="internet.telekom" user="telekom" password="telekom" authtype="1" mmsproxy="172.28.23.131" mmsc="http://mms.t-mobile.de/servlets/mms" mmsport="8008" mvno_match_data="debitel" mvno_type="spn" protocol="IP" />
- <apn carrier="Vodafone DE" mcc="262" mnc="02" apn="" type="ia" protocol="IPV4V6" />
- <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="E-Plus Internet" mcc="262" mnc="03" apn="internet.eplus.de" user="eplus" password="internet" authtype="1" type="default,supl" />
- <apn carrier="E-Plus MMS" mcc="262" mnc="03" apn="mms.eplus.de" user="mms" password="eplus" mmsc="http://mms/eplus/" mmsproxy="212.23.97.153" mmsport="5080" authtype="1" type="mms" />
- <apn carrier="O2 Internet" mcc="262" mnc="07" apn="internet" mmsc="http://10.81.0.7:8002" mmsproxy="82.113.100.5" mmsport="8080" authtype="1" type="default,supl,mms" protocol="IP" roaming_protocol="IP" />
- <apn carrier="O2 DE IMS" mcc="262" mnc="07" apn="ims" type="ims" protocol="IP" roaming_protocol="IP" />
- <apn carrier="O2 Internet Prepaid" mcc="262" mnc="07" apn="pinternet.interkom.de" mmsc="http://10.81.0.7:8002" mmsproxy="82.113.100.6" mmsport="8080" type="default,supl,mms" mvno_match_data="2620749" mvno_type="imsi" />
- <apn carrier="Alice" mcc="262" mnc="07" apn="internet.partner1" authtype="0" mmsc="http://10.81.0.7:8002" mmsproxy="82.113.100.41" mmsport="8080" mvno_type="spn" mvno_match_data="Alice" />
- <apn carrier="Fonic Prepaid" mcc="262" mnc="07" apn="pinternet.interkom.de" mmsc="http://10.81.0.7:8002" mmsproxy="82.113.100.6" mmsport="8080" type="default,supl,mms" mvno_match_data="26207515" mvno_type="imsi" />
- <apn carrier="Lidl Mobile" mcc="262" mnc="07" apn="pinternet.interkom.de" mmsc="http://10.81.0.7:8002" mmsproxy="82.113.100.6" mmsport="8080" type="default,supl,mms" mvno_match_data="26207520" mvno_type="imsi" />
- <apn carrier="Tchibo Internet" mcc="262" mnc="07" apn="webmobil1" mmsc="http://10.81.0.7:8002" mmsproxy="82.113.100.8" mmsport="8080" type="default,supl,mms" mvno_match_data="26207500" mvno_type="imsi" />
- <apn carrier="O2 DE IMS" mcc="262" mnc="08" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" mvno_match_data="2620739" mvno_type="imsi" />
- <apn carrier="Lebara" 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="Lebara" type="default,supl,mms" />
- <apn carrier="Lebara Internet" mcc="262" mnc="01" apn="internet.t-d1.de" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <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" />
- <apn carrier="Vodafone PT WAP MMS" mcc="268" mnc="01" apn="vas.vodafone.pt" user="vas" password="vas" mmsc="http://mms/servlets/mms" mmsproxy="213.30.27.63" mmsport="8799" type="mms" />
- <apn carrier="Vodafone PT WAP" mcc="268" mnc="01" apn="wap.vodafone.pt" user="wap" password="wap" proxy="172.16.19.50" port="8799" type="default,supl" />
- <apn carrier="NOS/WTF Internet" mcc="268" mnc="03" apn="umts" type="default,supl,dun" />
- <apn carrier="NOS MMS" mcc="268" mnc="03" apn="mms" mmsc="http://mmsc:10021/mmsc" mmsproxy="62.169.66.5" mmsport="8799" authtype="1" type="mms" />
- <apn carrier="WTF MMS" mcc="268" mnc="03" apn="umts" mmsc="http://mmsc:10021/mmsc" mmsproxy="62.169.66.5" mmsport="8799" authtype="1" type="mms" />
- <apn carrier="Lycamobile PT" mcc="268" mnc="04" apn="data.lycamobile.pt" user="lmpt" password="plus" type="default,supl"/>
- <apn carrier="Lycamobile" mcc="268" mnc="04" apn="data.lycamobile.pt" proxy="" port="" user="lmpt" password="plus" mmsc="" mvno_type="spn" mvno_match_data="Lycamobile" type="default,supl" />
- <apn carrier="MEO Internet" mcc="268" mnc="06" apn="internet" type="default,supl" />
- <apn carrier="MEO MMS" mcc="268" mnc="06" apn="mmsc.tmn.pt" user="tmn" password="tmnnet" mmsc="http://mmsc" mmsproxy="10.111.2.16" mmsport="8080" type="mms" />
- <apn carrier="Vectone Mobile" mcc="268" mnc="07" apn="webpt.mundio.com" proxy="" port="" user="" password="" mmsc="" mvno_type="spn" mvno_match_data="Vectone Mobile" type="default,supl" />
- <apn carrier="Luxgsm Internet" mcc="270" mnc="01" apn="web.pt.lu" type="default,supl,mms" />
- <apn carrier="Post Internet" mcc="270" mnc="01" apn="web.pt.lu" proxy="194.154.192.88" port="8080" user="" password="" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="Post MMS" mcc="270" mnc="01" apn="mms.pt.lu" proxy="194.154.192.88" port="8080" user="" password="" mmsc="http://mmsc.pt.lu" authtype="1" type="mms" />
- <apn carrier="Tango" mcc="270" mnc="77" apn="internet" proxy="" port="" user="" password="" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="Tango MMS" mcc="270" mnc="77" apn="mms" proxy="" port="" user="tango" password="tango" mmsc="http://mms.tango.lu" mmsproxy="212.66.75.3" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Orange LU" mcc="270" mnc="99" apn="orange.lu" proxy="" port="" user="" password="" mmsc="http://mms.orange.lu" mmsproxy="212.88.139.44" mmsport="8080" authtype="1" type="default,supl,mms" />
- <apn carrier="Tesco" mcc="272" mnc="01" apn="tescomobile.liffeytelecom.com" mmsc="http://mmc1/servlets/mms" mmsproxy="10.1.11.19" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Vodafone WAP" mcc="272" mnc="01" apn="live.vodafone.com" proxy="10.24.59.100" port="80" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Vodafone Internet" mcc="272" mnc="01" apn="isp.vodafone.ie" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Vodafone MMS" mcc="272" mnc="01" apn="mms.vodafone.net" proxy="" port="" user="" password="" mmsc="http://www.vodafone.ie/mms" mmsproxy="10.24.59.200" mmsport="80" type="mms" />
- <apn carrier="Vodafone IE-ISP" mcc="272" mnc="01" apn="isp.vodafone.ie" proxy="" port="" user="vodafone" password="vodafone" mmsc="" type="default,supl" />
- <apn carrier="Vodafone IE" mcc="272" mnc="01" apn="live.vodafone.com" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Vodafone IE-MMS" mcc="272" mnc="01" apn="mms.vodafone.net" proxy="" port="" user="" password="" mmsc="http://www.vodafone.ie/mms" mmsproxy="10.24.59.200" mmsport="80" type="mms" />
- <apn carrier="O2 Internet" mcc="272" mnc="02" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="O2 WAP" mcc="272" mnc="02" apn="internet" proxy="62.40.32.40" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="O2 MMS" mcc="272" mnc="02" apn="internet" proxy="" port="" user="" password="" mmsc="http://mmsc.mms.o2.ie:8002" mmsproxy="62.40.32.40" mmsport="8080" type="mms" />
- <apn carrier="O2 Ireland" mcc="272" mnc="02" apn="internet" proxy="" port="" user="" password="" mmsc="http://mmsc.mms.o2.ie:8002" mmsproxy="62.40.32.40" mmsport="8080" type="default,supl,mms" />
- <apn carrier="O2 IE" mcc="272" mnc="02" apn="wap.dol.ie" proxy="62.40.32.40" port="8080" user="user" password="user" server="www.o2.ie" mmsc="http://mmsc.mms.o2.ie:8002" mmsproxy="62.40.32.40" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Meteor Internet" mcc="272" mnc="03" apn="data.mymeteor.ie" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Meteor WAP" mcc="272" mnc="03" apn="wap.mymeteor.ie" proxy="10.85.85.85" port="8799" user="my" password="wap" mmsc="" type="default,supl" />
- <apn carrier="Meteor MMS" mcc="272" mnc="03" apn="mms.mymeteor.ie" proxy="" port="" user="my" password="meteor" mmsc="http://mms.mymeteor.ie" mmsproxy="10.85.85.85" mmsport="8799" type="mms" />
- <apn carrier="Eircom/Meteor" mcc="272" mnc="03" apn="wap.mymeteor.ie" user="my" password="meteor" server="http://wap.mymeteor.ie" proxy="10.85.85.85" port="8799" mmsc="mms.mymeteor.ie" mmsproxy="10.85.85.85" mmsport="8799" type="default,supl" />
- <apn carrier="Eircom/Meteor MMS" mcc="272" mnc="03" apn="wap.mymeteor.ie" user="my" password="meteor" server="http://wap.mymeteor.ie" proxy="10.85.85.85" port="8799" mmsc="http://mms.mymeteor.ie" mmsproxy="10.85.85.85" mmsport="8799" type="mms" />
- <apn carrier="3 Internet" mcc="272" mnc="05" apn="3ireland.ie" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="3 MMS" mcc="272" mnc="05" apn="3ireland.ie" proxy="" port="" user="" password="" mmsc="http://mms.um.3ireland.ie:10021/mmsc" mmsproxy="mms.3ireland.ie" mmsport="8799" type="mms" />
- <apn carrier="3 IE MMS" mcc="272" mnc="05" apn="3ireland.ie" proxy="" port="" user="" password="" server="3ireland.ie" mmsc="http://mms.um.3ireland.ie:10021/mmsc" mmsproxy="mms.3ireland.ie" mmsport="8799" type="default,supl,mms" />
- <apn carrier="3 Ireland" mcc="272" mnc="05" apn="3ireland.ie" proxy="" port="" user="" password="" mmsc="http://mms.um.3ireland.ie:10021/mmsc" mmsproxy="mms.3ireland.ie" mmsport="8799" type="default,supl,mms" />
- <apn carrier="Tesco" mcc="272" mnc="10" apn="tescomobile.liffeytelecom.com" mmsc="http://mmc1/servlets/mms" mmsproxy="10.1.11.19" mmsport="8080" type="default,supl,mms" />
- <apn carrier="TMI APN" mcc="272" mnc="11" apn="tescomobile.liffeytelecom.com" mmsc="http://mmc1/servlets/mms" mmsproxy="10.1.11.19" mmsport="8080" type="default,supl,mms" />
- <apn carrier="48months" mcc="272" mnc="11" apn="48months.liffeytelecom.com" mmsc="http://mmc1/servlets/mms" mmsproxy="10.1.11.19" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Lycamobile IE" mcc="272" mnc="13" apn="data.lycamobile.ie" user="lmie" password="plus" type="default,supl" />
- <apn carrier="Virgin Media Ireland" mcc="272" mnc="15" apn="internet" proxy="" port="" user="" password="" mmsc="" mmsproxy="" mmsport="" type="default,supl,mms" />
- <apn carrier="Siminn Internet" mcc="274" mnc="01" apn="internet" proxy="213.167.138.200" port="8080" mmsc="" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="Siminn MMS" mcc="274" mnc="01" apn="mms.simi.is" proxy="" port="" mmsproxy="213.167.138.200" mmsport="8080" mmsc="http://mms.simi.is/servlets/mms" user="" password="" authtype="3" type="mms" />
- <apn carrier="Siminn Internet" mcc="274" mnc="01" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Vodafone Internet" mcc="274" mnc="02" apn="gprs.is" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Vodafone MMS" mcc="274" mnc="02" apn="mms.gprs.is" proxy="" port="" user="" password="" mmsc="http://mmsc.vodafone.is" mmsproxy="10.22.0.10" mmsport="8080" type="mms" />
- <apn carrier="MMS Nova" mcc="274" mnc="11" apn="mms.nova.is" proxy="" port="" user="" password="" mmsc="http://mmsc.nova.is" mmsproxy="10.10.2.60" mmsport="8080" type="mms" />
- <apn carrier="Net Nova" mcc="274" mnc="11" apn="net.nova.is" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Tal" mcc="274" mnc="12" apn="internet.tal.is" mmsc="http://mms.tal.is/servlets/mms" mmsproxy="213.167.138.210" mmsport="8080" type="default,supl,mms" />
- <apn carrier="AMC" mcc="276" mnc="01" apn="internet.amc" type="default,supl" />
- <apn carrier="AMC MMS" mcc="276" mnc="01" apn="mms" mmsc="http://195.167.65.220:8002" mmsproxy="10.10.10.20" mmsport="8080" type="mms" />
- <apn carrier="Vodafone AL" mcc="276" mnc="02" apn="vodafoneweb" type="default,supl" />
- <apn carrier="Vodafone AL" mcc="276" mnc="02" apn="Twa" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Vodafone AL MMS" mcc="276" mnc="02" apn="vfalmms" proxy="" port="" user="" password="" mmsc="http://mmsc.vodafone.al" mmsproxy="10.0.9.2" mmsport="8080" type="mms" />
- <apn carrier="Eagle Mobile" mcc="276" mnc="03" apn="internet" type="default,supl" />
- <apn carrier="Eagle Mobile MMS" mcc="276" mnc="03" apn="mms" mmsc="http://192.168.140.164:38090" mmsproxy="192.168.141.25" mmsport="80" type="mms" />
- <apn carrier="Plus" mcc="276" mnc="04" apn="plusweb" type="default,supl" />
- <apn carrier="CYTA" mcc="280" mnc="01" apn="cytamobile" mmsc="http://mmsc.cyta.com.cy" mmsproxy="212.31.96.161" mmsport="8080" type="default,supl,mms"/>
- <apn carrier="MTN MMS" mcc="280" mnc="10" apn="mms" user="mms" password="mms" mmsc="http://mms.mtn.com.cy/mmsc" mmsproxy="172.24.97.1" mmsport="3130" type="mms"/>
- <apn carrier="MTN Internet" mcc="280" mnc="10" apn="internet" type="default,supl"/>
- <apn carrier="PrimeTel" mcc="280" mnc="20" apn="ip.primetel" mmsc="http://mms.primetel" type="default,supl,mms"/>
- <apn carrier="Geocell" mcc="282" mnc="01" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl,mms" />
- <apn carrier="Geocell Mms" mcc="282" mnc="01" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms.geocell.com.ge/cmmsc/post" mmsproxy="10.11.240.7" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Beeline AM" mcc="283" mnc="01" apn="internet.beeline.am" proxy="" port="" user="internet" password="internet" mmsc="" type="default,supl" />
- <apn carrier="BeeLine AM MMS" mcc="283" mnc="01" apn="mms.beeline.am" proxy="" port="" user="" password="" mmsc="http://mms/" mmsproxy="10.3.2.205" mmsport="8080" type="mms" />
- <apn carrier="VivaCell-MTS Internet" mcc="283" mnc="05" apn="inet.vivacell.am" user="" password="" authtype="1" type="default,supl" />
- <apn carrier="VivaCell-MTS MMS" mcc="283" mnc="05" apn="mms.vivacell.am" proxy="" port="" mmsproxy="83.217.226.72" mmsport="8080" mmsc="http://mms.vivacell.am/mmsc" user="" password="" authtype="1" type="mms" />
- <apn carrier="VivaCell" mcc="283" mnc="05" apn="connect.vivacell.am" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="VivaCell MMS" mcc="283" mnc="05" apn="mms.vivacell.am" proxy="" port="" user="" password="" mmsc="http://mms.vivacell.am/mmsc" mmsproxy="83.217.226.72" mmsport="8080" type="mms" />
- <apn carrier="Orange AM" mcc="283" mnc="10" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Orange AM MMS" mcc="283" mnc="10" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms/" mmsproxy="192.168.220.251" mmsport="3128" type="mms" />
- <apn carrier="A1" mcc="284" mnc="01" apn="internet.a1.bg" authtype="0" type="default,supl" />
- <apn carrier="A1 MMS" mcc="284" mnc="01" apn="mms.a1.bg" mmsc="http://mmsc/" mmsproxy="10.150.0.33" mmsport="8080" authtype="0" type="mms" />
- <apn carrier="VIVACOM INTERNET GPRS" mcc="284" mnc="03" apn="internet.vivacom.bg" user="VIVACOM" password="VIVACOM" authtype="0" type="default,supl" />
- <apn carrier="VIVACOM MMS GPRS" mcc="284" mnc="03" apn="mms.vivacom.bg" user="mms" password="mms" mmsc="http://mmsc.vivacom.bg" mmsproxy="192.168.123.123" mmsport="8080" authtype="0" type="mms" />
- <apn carrier="Telenor Internet" mcc="284" mnc="05" apn="telenorbg" user="telenor" authtype="0" type="default,supl" />
- <apn carrier="Telenor MMS" mcc="284" mnc="05" apn="mms" user="mms" mmsc="http://mmsc" mmsproxy="192.168.87.11" mmsport="8004" authtype="0" type="mms" />
- <apn carrier="Bulsatcom" mcc="284" mnc="11" apn="bulsat.com" type="default,supl" />
- <apn carrier="Turkcell Internet" mcc="286" mnc="01" apn="Internet" user="" password="" type="default,supl" />
- <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="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" />
- <apn carrier="Tele GPRS" mcc="290" mnc="01" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Si.mobil Internet" mcc="293" mnc="40" apn="internet.simobil.si" proxy="" port="" user="simobil" password="internet" mmsc="" type="default,supl" />
- <apn carrier="Si.mobil MMS" mcc="293" mnc="40" apn="mms.simobil.si" proxy="" port="" user="simobil" password="internet" mmsc="http://mmc" mmsproxy="80.95.224.46" mmsport="9201" type="mms" />
- <apn carrier="Mobitel Internet" mcc="293" mnc="41" apn="internet" proxy="213.229.249.40" port="8080" user="mobitel" password="internet" mmsc="" type="default,supl,mms" />
- <apn carrier="Mobitel MMS" mcc="293" mnc="41" apn="internet" proxy="" port="" user="mobitel" password="internet" mmsc="http://mms.mobitel.si/servlets/mms" mmsproxy="213.229.249.40" mmsport="8080" type="mms" />
- <apn carrier="T-2 Internet" mcc="293" mnc="64" apn="internet.t-2.net" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <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="" 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" />
- <apn carrier="Telenor MNE mms" mcc="297" mnc="01" apn="mms" proxy="" port="" mmsproxy="192.168.246.005" mmsport="8080" mmsc="http://mm.vor.telenor.me" user="mms" password="mms" type="mms" />
- <apn carrier="ProMonte" mcc="297" mnc="01" apn="gprs.promonte.com" proxy="" port="" user="gprs" password="gprs" mmsc="" type="default,supl" />
- <apn carrier="ProMonte MMS" mcc="297" mnc="01" apn="mms.promonte.com" proxy="" port="" user="mms" password="mms" mmsc="http://mm.vor.promonte.com" mmsproxy="192.168.246.5" mmsport="8080" type="mms" />
- <apn carrier="T-Mobile CG MMS" mcc="297" mnc="02" apn="mms" proxy="" port="" user="38267" password="38267" mmsc="http://192.168.180.100/servlets/mms" mmsproxy="10.0.5.19" mmsport="8080" type="mms" />
- <apn carrier="T-Mobile CG" mcc="297" mnc="02" apn="tmcg-wnw" proxy="" port="" user="38267" password="38267" mmsc="" type="default,supl" />
- <apn carrier="Telus SP" mcc="302" mnc="220" apn="sp.telus.com" mmsc="http://aliasredirect.net/proxy/mmsc" mmsproxy="74.49.0.18" mmsport="80" mvno_match_data="54" mvno_type="gid" type="default,supl,mms" />
- <apn carrier="TELUS ISP" mcc="302" mnc="220" apn="isp.telus.com" type="dun" mvno_type="gid" mvno_match_data="54" />
- <apn carrier="Telus SP Tether" mcc="302" mnc="220" apn="isp.telus.com" mmsc="http://aliasredirect.net/proxy/mmsc" mmsproxy="74.49.0.18" mmsport="80" type="default,supl,mms" />
- <apn carrier="Koodo SP" mcc="302" mnc="220" apn="sp.koodo.com" proxy="" port="" mmsc="http://aliasredirect.net/proxy/koodo/mmsc" mmsproxy="74.49.0.18" mmsport="80" mvno_match_data="4B" mvno_type="gid" type="default,supl,mms,dun" />
- <apn carrier="Mobile Internet" mcc="302" mnc="220" apn="sp.mb.com" type="default,mms,supl" mmsc="http://aliasredirect.net/proxy/mb/mmsc" mmsproxy="74.49.0.18" mmsport="80" mvno_match_data="50" mvno_type="gid" />
- <apn carrier="Tethered Mobile Internet" mcc="302" mnc="220" apn="isp.mb.com" type="dun" mvno_type="gid" mvno_match_data="50" />
- <apn carrier="Mobile Internet" mcc="302" mnc="220" apn="sp.mb.com" type="default,mms,agps,supl,fota,hipri" mmsc="http://aliasredirect.net/proxy/mb/mmsc" mmsproxy="74.49.0.18" mmsport="80" mvno_type="gid" mvno_match_data="4D4F" />
- <apn carrier="Tethered Mobile Internet" mcc="302" mnc="220" apn="isp.mb.com" type="dun" mvno_type="gid" mvno_match_data="4D4F" />
- <apn carrier="Public Mobile" mcc="302" mnc="220" apn="sp.mb.com" mmsc="http://aliasredirect.net/proxy/mb/mmsc" mmsproxy="74.49.0.18" mmsport="80" mvno_match_data="50" mvno_type="gid" type="default,supl,mms" />
- <apn carrier="Koodo SP" mcc="302" mnc="220" apn="sp.koodo.com" proxy="" port="" user="" password="" mmsc="http://aliasredirect.net/proxy/koodo/mmsc" mmsproxy="74.49.0.18" mmsport="80" type="default,supl,mms" />
- <apn carrier="TELUS" mcc="302" mnc="221" apn="sp.telus.com" type="default,mms,supl" mmsc="http://aliasredirect.net/proxy/mmsc" mmsproxy="74.49.0.18" mmsport="80" mvno_match_data="54" mvno_type="gid" />
- <apn carrier="Koodo" mcc="302" mnc="221" apn="sp.koodo.com" type="default,mms,supl" mmsc="http://aliasredirect.net/proxy/koodo/mmsc" mmsproxy="74.49.0.18" mmsport="80" mvno_match_data="4B" mvno_type="gid" />
- <apn carrier="PC mobile" mcc="302" mnc="221" apn="sp.mb.com" type="default,mms,supl" mmsc="http://aliasredirect.net/proxy/mb/mmsc" mmsproxy="74.49.0.18" mmsport="80" mvno_match_data="50" mvno_type="gid" />
- <apn carrier="MMS" mcc="302" mnc="270" apn="mms.mobi.eastlink.ca" mmsc="http://mmss.mobi.eastlink.ca" mmsproxy="10.232.12.49" mmsport="8080" type="mms" />
- <apn carrier="Internet" mcc="302" mnc="270" apn="wisp.mobi.eastlink.ca" type="default,supl" />
- <apn carrier="Eastlink Internet" mcc="302" mnc="270" apn="wisp.mobi.eastlink.ca" type="default,supl" />
- <apn carrier="Eastlink MMS" mcc="302" mnc="270" apn="mms.mobi.eastlink.ca" mmsc="http://mmss.mobi.eastlink.ca" mmsproxy="10.232.12.49" mmsport="8080" type="mms" />
- <apn carrier="MOWAP" mcc="302" mnc="320" apn="wap.davewireless.com" proxy="10.100.3.4" port="8080" type="default,supl" />
- <apn carrier="MOMMS" mcc="302" mnc="320" apn="mms.davewireless.com" mmsc="http://mms.mobilicity.net" mmsproxy="10.100.3.4" mmsport="8080" type="mms" />
- <apn carrier="Mobilicity MMS" mcc="302" mnc="320" apn="mms.davewireless.com" proxy="" port="" user="" password="" mmsc="http://mms.mobilicity.net" mmsproxy="10.100.3.4" mmsport="8080" type="mms" />
- <apn carrier="Mobilicity" mcc="302" mnc="320" apn="wap.davewireless.com" proxy="" port="" user="dave" password="password" mmsc="" type="default,supl" />
- <apn carrier="Fido Tethering" mcc="302" mnc="370" apn="ltedata.apn" type="dun" mvno_match_data="DD" mvno_type="gid" protocol="IPV4V6" roaming_protocol="IP" />
- <apn carrier="Fido Internet" mcc="302" mnc="370" apn="ltemobile.apn" type="default,mms,agps,supl,fota,hipri" mmsproxy="mmsproxy.fido.ca" mmsc="http://mms.fido.ca" mmsport="80" mvno_match_data="DD" mvno_type="gid" protocol="IPV4V6" roaming_protocol="IP" />
- <apn carrier="MTS" mcc="302" mnc="370" apn="sp.mts" type="default,mms,supl" mmsc="http://mmsc2.mts.net/" mmsproxy="wapgw1.mts.net" mmsport="9201" protocol="IPV4V6" roaming_protocol="IPV4V6" mvno_match_data="2C" mvno_type="gid" />
- <apn carrier="MTS Tethering S" mcc="302" mnc="370" apn="internet.mts" type="dun" protocol="IPV4V6" roaming_protocol="IP" mvno_type="gid" mvno_match_data="2C" />
- <apn carrier="Fido LTE" mcc="302" mnc="370" apn="ltemobile.apn" mmsc="http://mms.fido.ca" mmsproxy="205.151.11.13" mmsport="80" type="default,supl,mms" protocol="IPV4V6" roaming_protocol="IP" />
- <apn carrier="Fido Default" mcc="302" mnc="370" apn="fido-core-appl1.apn" proxy="" port="" user="" password="" mmsc="http://mms.fido.ca" mmsproxy="205.151.11.13" mmsport="80" type="default,supl,mms" />
- <apn carrier="Fido Internet" mcc="302" mnc="370" apn="internet.fido.ca" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Fido Tethering" mcc="302" mnc="370" apn="isp.fido.apn" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Internet" mcc="302" mnc="490" apn="internet.windmobile.ca" user="" password="" type="default,supl" />
- <apn carrier="MMS" mcc="302" mnc="490" apn="mms.windmobile.ca" proxy="" port="" mmsproxy="74.115.197.70" mmsport="8080" mmsc="http://mms.windmobile.ca" user="" password="" type="mms" />
- <apn carrier="Wind CA" mcc="302" mnc="490" apn="internet.windmobile.ca" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Wind CA MMS" mcc="302" mnc="490" apn="mms.windmobile.ca" proxy="" port="" user="" password="" mmsc="http://mms.windmobile.ca" mmsproxy="74.115.197.70" mmsport="8080" type="mms" />
- <apn carrier="Videotron" mcc="302" mnc="500" apn="media.videotron" proxy="" port="" user="" password="" mmsc="http://media.videotron.com/" mmsproxy="10.208.89.17" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Media" mcc="302" mnc="500" apn="media.ng" mmsc="http://media.videotron.com" type="default,supl,mms" />
- <apn carrier="Media" mcc="302" mnc="510" apn="media.ng" mmsc="http://media.videotron.com" type="default,supl,mms" />
- <apn carrier="Media" mcc="302" mnc="520" apn="media.ng" mmsc="http://media.videotron.com" type="default,supl,mms" />
- <apn carrier="Virgin Mobile" mcc="302" mnc="610" apn="pda.stm.sk.ca" proxy="web.wireless.bell.ca" port="80" type="default,mms,supl" mmsc="http://mms.bell.ca/mms/wapenc" mmsproxy="web.wireless.bell.ca" mmsport="80" />
- <apn carrier="Bell" mcc="302" mnc="610" apn="pda.bell.ca" proxy="web.wireless.bell.ca" port="80" user="" password="" mmsc="http://mms.bell.ca/mms/wapenc" mmsproxy="web.wireless.bell.ca" mmsport="80" type="" />
- <apn carrier="Bell Flex" mcc="302" mnc="610" apn="inet.bell.ca" proxy="" port="" user="" password="" mmsc="http://mms.bell.ca/mms/wapenc" type="default,supl,mms" />
- <apn carrier="MTS" mcc="302" mnc="660" apn="sp.mts" type="default,mms,supl" mmsc="http://mmsc2.mts.net/" mmsproxy="wapgw1.mts.net" mmsport="9201" protocol="IPV4V6" roaming_protocol="IPV4V6" mvno_match_data="2C" mvno_type="gid" />
- <apn carrier="MTS Tethering" mcc="302" mnc="660" apn="internet.mts" type="dun" protocol="IPV4V6" roaming_protocol="IP" mvno_type="gid" mvno_match_data="2C" />
- <apn carrier="Rogers LTE" mcc="302" mnc="720" apn="ltemobile.apn" mmsc="http://mms.gprs.rogers.com" mmsproxy="10.128.1.69" mmsport="80" mvno_type="spn" mvno_match_data="ROGERS" type="default,supl,mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Rogers Tethering" mcc="302" mnc="720" apn="ltedata.apn" type="dun" mvno_match_data="ROGERS" mvno_type="spn" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Rogers" mcc="302" mnc="720" apn="rogers-core-appl1.apn" proxy="" port="" user="" password="" mmsc="http://mms.gprs.rogers.com" mmsproxy="10.128.1.69" mmsport="80" type="default,supl,mms" />
- <apn carrier="Rogers Tethering" mcc="302" mnc="720" apn="isp.apn" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Rogers WAP" mcc="302" mnc="720" apn="internet.com" proxy="" port="" user="" password="wap" mmsc="" type="default,supl,mms" />
- <apn carrier="chatr" mcc="302" mnc="720" apn="chatrweb.apn" type="default,mms,supl" mmsc="http://mms.chatrwireless.com" mmsproxy="205.151.11.11" mmsport="80" proxy="205.151.11.11" port="80" protocol="IPV4V6" roaming_protocol="IPV4V6" mvno_match_data="302720x94" mvno_type="imsi" />
- <apn carrier="Chatr Tethering" mcc="302" mnc="720" apn="chatrisp.apn" type="dun" mvno_type="imsi" mvno_match_data="302720x94" protocol="IPV4V6" roaming_protocol="IP" />
- <apn carrier="Tbaytel Tethering" mcc="302" mnc="720" apn="ltedata.apn" type="dun" protocol="IPV4V6" roaming_protocol="IP" mvno_type="gid" mvno_match_data="BA" />
- <apn carrier="Tbaytel Internet" mcc="302" mnc="720" apn="ltemobile.apn" type="default,mms,agps,supl,fota,hipri" protocol="IPV4V6" roaming_protocol="IP" mmsc="http://mms.gprs.rogers.com" mmsproxy="mmsproxy.rogers.com" mmsport="80" mvno_type="gid" mvno_match_data="BA" />
- <apn carrier="Cityfone Tethering" mcc="302" mnc="720" apn="ltedata.apn" type="dun" protocol="IPV4V6" roaming_protocol="IP" mvno_type="spn" mvno_match_data="CITYFONE" />
- <apn carrier="Cityfone Internet" mcc="302" mnc="720" apn="ltemobile.apn" type="default,mms,agps,supl,fota,hipri" protocol="IPV4V6" roaming_protocol="IP" mmsc="http://mms.gprs.rogers.com" mmsproxy="mmsproxy.rogers.com" mmsport="80" mvno_type="spn" mvno_match_data="CITYFONE" />
- <apn carrier="Petro-Canada Mobility" mcc="302" mnc="720" apn="rogers-core-appl1.apn" type="default,mms,supl" mmsproxy="mmsproxy.rogers.com" mmsc="http://mms.gprs.rogers.com" mmsport="80" protocol="IPV4V6" />
- <apn carrier="SaskTel" mcc="302" mnc="780" apn="pda.stm.sk.ca" type="default,mms,supl" mmsc="http://mms.sasktel.com/" mmsproxy="mig.sasktel.com" mmsport="80" />
- <apn carrier="Sasktel 3G" mcc="302" mnc="780" apn="inet.stm.sk.ca" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Sasktel MMS" mcc="302" mnc="780" apn="proxy.stm.sk.ca" proxy="" port="80" user="" password="" mmsc="http://mms.sasktel.com" mmsproxy="mig.sasktel.com" mmsport="80" type="mms" />
- <apn carrier="Verizon Internet" mcc="310" mnc="00" apn="VZWINTERNET" type="default,dun,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6"/>
- <apn carrier="Verizon FOTA" mcc="310" mnc="00" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6"/>
- <apn carrier="Verizon IMS" mcc="310" mnc="00" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6"/>
- <apn carrier="Verizon CBS" mcc="310" mnc="00" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6"/>
- <apn carrier="Verizon Internet" mcc="310" mnc="002" apn="VZWINTERNET" type="default,dun,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon FOTA" mcc="310" mnc="002" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon IMS" mcc="310" mnc="002" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon CBS" mcc="310" mnc="002" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon Internet" mcc="310" mnc="003" apn="VZWINTERNET" type="default,dun,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon FOTA" mcc="310" mnc="003" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon IMS" mcc="310" mnc="003" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon CBS" mcc="310" mnc="003" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon Internet" mcc="310" mnc="004" apn="VZWINTERNET" type="default,dun,supl,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon FOTA" mcc="310" mnc="004" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon IMS" mcc="310" mnc="004" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer_bitmask="13|14" profile_id="2" modem_cognitive="true" max_conns="1023" max_conns_time="300" />
- <apn carrier="Verizon CBS" mcc="310" mnc="004" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon" mcc="310" mnc="004" apn="internet" proxy="" port="" user="*" password="*" server="*" mmsc="http://mms.vtext.com/servlets/mms" type="default,supl,mms" />
- <apn carrier="Verizon Internet" mcc="310" mnc="005" apn="VZWINTERNET" type="default,dun,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon FOTA" mcc="310" mnc="005" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon IMS" mcc="310" mnc="005" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon CBS" mcc="310" mnc="005" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon Internet" mcc="310" mnc="006" apn="VZWINTERNET" type="default,dun,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon FOTA" mcc="310" mnc="006" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon IMS" mcc="310" mnc="006" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon CBS" mcc="310" mnc="006" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon Internet" mcc="310" mnc="012" apn="VZWINTERNET" type="default,dun,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon FOTA" mcc="310" mnc="012" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon IMS" mcc="310" mnc="012" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon CBS" mcc="310" mnc="012" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="UNIONINTERNET" mcc="310" mnc="020" apn="SMART.COM" user="" password="" authtype="0" type="default,supl" />
- <apn carrier="UNIONMMS" mcc="310" mnc="020" apn="union.mms.com" proxy="" port="" mmsc="http://mms.unionwireless.com" user="" password="" authtype="0" type="mms" />
- <apn carrier="Cellular South" mcc="310" mnc="023" apn="internet" proxy="" port="" user="" password="" mmsc="http://pix.cellularsouth.com/servlets/mms" authtype="3" type="mms" />
- <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" />
- <apn carrier="Edge MMS Prepay" mcc="310" mnc="090" apn="ppmms" mmsc="http://mms.edgemobile.net/mmsc" mmsproxy="12.108.12.13" mmsport="3128" type="mms" />
- <apn carrier="LTE INTERNET" mcc="310" mnc="090" apn="4g.mycricket.com" user="" password="" type="default,dun,mms" authtype="0" mmsc="http://mms.mycricket.com/servlets/mms" protocol="IP" roaming_protocol="IP" bearer="14"/>
- <apn carrier="LTE ADMIN" mcc="310" mnc="090" apn="Apnota.4g.mycricket.com" user="" password="" type="fota" authtype="0" mmsc="http://mms.mycricket.com/servlets/mms" protocol="IP" roaming_protocol="IP" bearer="14"/>
- <apn carrier="LTE DNSADMIN" mcc="310" mnc="090" apn="apndnsota.4g.mycricket.com" user="" password="" type="fota" authtype="0" mmsc="http://mms.mycricket.com/servlets/mms" protocol="IP" roaming_protocol="IP" bearer="14"/>
- <apn carrier="Internet" mcc="310" mnc="090" apn="isp" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="MMS" mcc="310" mnc="090" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms.edgemobile.net/mmsc" mmsproxy="12.108.12.13" mmsport="3128" type="mms" />
- <apn carrier="Edge MMS Prepay" mcc="310" mnc="090" apn="ppmms" proxy="" port="" user="" password="" mmsc="http://mms.edgemobile.net/mmsc" mmsproxy="12.108.12.13" mmsport="3128" type="mms" />
- <apn carrier="ATT WAP" mcc="310" mnc="70" 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="70" apn="Broadband" type="default,supl" />
- <apn carrier="ATT WAP" mcc="310" mnc="90" 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="90" apn="Broadband" type="default,supl" />
- <apn carrier="Verizon Internet" mcc="310" mnc="99" apn="VZWINTERNET" type="default,dun,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon FOTA" mcc="310" mnc="99" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon IMS" mcc="310" mnc="99" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon CBS" mcc="310" mnc="99" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="PLATWEB" mcc="310" mnc="100" apn="plateauweb" type="default,supl" />
- <apn carrier="PLAT-OTA-MMS" mcc="310" mnc="100" apn="plateaumms" proxy="" port="" user="" password="mmsc" mmsc="208.254.124.11:8514" mmsproxy="208.254.124.11" mmsport="8080" type="mms" />
- <apn carrier="PLATWEB" mcc="310" mnc="100" apn="plateauweb" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Sprint MMS" mcc="310" mnc="120" apn="Sprint" user="Sprint" server="*" type="mms" password="*" mmsc="http://oap7.sprintpcs.com" mmsproxy="68.28.31.7" mmsport="80" authtype="3" />
- <apn carrier="Sprint LTE ota" mcc="310" mnc="120" apn="otasn" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Sprint EHRPD ota" mcc="310" mnc="120" apn="otasn" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Sprint LTE internet" mcc="310" mnc="120" apn="n.ispsn" type="default,mms,supl,hipri,dun" mmsc="http://mms.sprintpcs.com" mmsproxy="68.28.31.7" mmsport="80" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="Sprint EHRPD internet" mcc="310" mnc="120" apn="n.ispsn" type="default,mms,supl,hipri" mmsc="http://mms.sprintpcs.com" mmsproxy="68.28.31.7" mmsport="80" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="Sprint internet" mcc="310" mnc="120" apn="n.ispsn" type="mms,supl,hipri" mmsc="http://mms.sprintpcs.com" mmsproxy="68.28.31.7" mmsport="80" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Boost" mcc="310" mnc="120" apn="cinet.spcs" type="supl,mms,dun,fota" mmsc="http://mm.myboostmobile.com" mmsproxy="68.28.31.7" mmsport="80" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Credo Mobile" mcc="310" mnc="120" apn="n.w1.ispsn" type="mms" mmsc="http://mms.plspictures.com" mmsproxy="68.28.31.7" mmsport="80" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Ting" mcc="310" mnc="120" apn="n.t8.ispsn" type="supl,mms" mmsc="http://mms.plspictures.com" mmsproxy="68.28.31.7" mmsport="80" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Ringplus" mcc="310" mnc="120" apn="n.r5.ispsn" type="supl,mms" mmsc="http://mms.plspictures.com" mmsproxy="68.28.31.7" mmsport="80" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Virgin Mobile" mcc="310" mnc="120" apn="n.vmu.ispsn" user="Sprint" password="*" mmsproxy="68.28.31.7" mmsport="80" mmsc="http://mmsc.vmobl.com:8088/mms?" type="supl,mms,fota,dun" />
- <apn carrier="FreedomPop LTE" mcc="310" mnc="120" apn="n.f6.ispsn" mmsproxy="68.28.31.7" mmsport="80" mmsc="http://mms.sprintpcs.com" type="supl,mms" bearer="14" />
- <apn carrier="FreedomPop EHRPD" mcc="310" mnc="120" apn="n.f6.ispsn" mmsproxy="68.28.31.7" mmsport="80" mmsc="http://mms.sprintpcs.com" type="supl,mms" bearer="13" />
- <apn carrier="Tello" mcc="310" mnc="120" apn="n.mi.ispsn" user="MDN@MVNO337.SPRINTPCS.COM" mmsproxy="68.28.31.7" mmsport="80" mmsc="http://mms.sprintpcs.com" type="default,mms" bearer_bitmask="13|14" />
- <apn carrier="Sprint" mcc="310" mnc="120" apn="sprint" type="default,supl,mms,ims,cbs" mmsc="http://mms.sprintpcs.com" mmsproxy="68.28.31.7" mmsport="80" bearer_bitmask="4|5|6|7|8|12" />
- <apn carrier="Sprint" mcc="310" mnc="120" apn="sprint" type="default,supl,mms,ims,cbs,dun" mmsc="http://mms.sprintpcs.com" mmsproxy="68.28.31.7" mmsport="80" bearer_bitmask="4|5|6|7|8|12" profile_id="1" />
- <apn carrier="USCC" mcc="310" mnc="120" apn="internet" proxy="" port="80" user="" password="" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsproxy="" mmsport="80" authtype="3" type="mms" />
- <apn carrier="SPCS Global" mcc="310" mnc="120" apn="cinet.spcs" mmsc="http://mms.sprintpcs.com" mmsproxy="68.28.31.7" mmsport="80" type="default,supl,mms,dun" bearer_bitmask="1|2|3|9|10|11|15|16" />
- <apn carrier="My Multi Media" mcc="310" mnc="130" apn="mms.c1.ama" proxy="" port="" user="cell1mms" password="cell1" mmsc="http://mms.iot1.com/amarillo/mms.php" type="mms" />
- <apn carrier="Cricket" mcc="310" mnc="16" apn="wap.mycricket.com" user="@mycricket.com" password="cricket" mmsc="http://mms.mycricket.com/servlets/mms" proxy="wap.mycricket.com" port="8080" authtype="2" type="*" />
- <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="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="FreedomPop" mcc="310" mnc="170" apn="fp.com.attz" type="" />
- <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" />
- <apn carrier="ATT Broadband" mcc="310" mnc="180" apn="Broadband" type="default,supl" />
- <apn carrier="WCW Internet" mcc="310" mnc="180" apn="internet.wcc.net" user="3257630000" password="mmsc" type="default,supl" authtype="0" />
- <apn carrier="WCW-MMS" mcc="310" mnc="180" apn="mms.wcc.net" proxy="209.55.70.246" port="80" mmsc="http://mms.wcc.net" mmsproxy="209.55.70.246" mmsport="80" user="13257630000" password="mmsc" type="mms" authtype="3" />
- <apn carrier="WCW-MMS only" mcc="310" mnc="180" apn="mms.wcc.net" proxy="209.55.70.244" port="80" mmsc="http://mms.wcc.net" mmsproxy="209.55.70.246" mmsport="80" user="3257630000" password="mmsc" type="default,mms" authtype="3" />
- <apn carrier="T-Mobile US LTE" mcc="310" mnc="260" apn="fast.t-mobile.com" mmsc="http://mms.msg.eng.t-mobile.com/mms/wapenc" type="default,supl,mms,ia" protocol="IPV6" roaming_protocol="IPV4V6" mtu="1440" />
- <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" modem_cognitive="true" protocol="IPV6" />
- <apn carrier="MetroPCS 260" mcc="310" mnc="260" apn="fast.metropcs.com" protocol="IPV6" roaming_protocol="IPV4V6" mvno_match_data="6D" mvno_type="gid" type="ia" mtu="1440" />
- <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,dun" mtu="1440" />
- <apn carrier="MetroPCS 260 IMS" mcc="310" mnc="260" apn="ims" type="ims" mvno_match_data="6D" mvno_type="gid" protocol="IPV6" roaming_protocol="IPV6" mtu="1440" />
- <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" />
- <apn carrier="Ultra" mcc="310" mnc="260" apn="Wholesale" port="8080" mmsc="http://wholesale.mmsmvno.com/mms/wapenc" mvno_type="gid" mvno_match_data="6132" type="default,mms,supl,dun" />
- <apn carrier="GIV Mobile" mcc="310" mnc="260" apn="wholesale" port="" mmsc="http://wholesale.mmsmvno.com/mms/wapenc" type="default,mms,supl" />
- <apn carrier="ROK mobile" mcc="310" mnc="260" apn="wholesale" port="" mmsc="http://wholesale.mmsmvno.com/mms/wapenc" type="default,mms,supl,admin" />
- <apn carrier="UVA Wireless" mcc="310" mnc="260" apn="wholesale" port="" mmsc="http://wholesale.mmsmvno.com/mms/wapenc" type="default,mms,supl,admin" />
- <apn carrier="PTel" mcc="310" mnc="260" apn="wholesale" port="" mmsc="http://mms.wholesale.mmsmvno.com/mms/wapenc" type="default,mms,supl" />
- <apn carrier="Ready SIM" mcc="310" mnc="260" apn="wholesale" port="" mmsc="http://mms.wholesale.mmsmvno.com/mms/wapenc" type="default,mms,supl" />
- <apn carrier="Red Pocket" mcc="310" mnc="260" apn="wholesale" port="" mmsc="http://mms.wholesale.mmsmvno.com/mms/wapenc" mmsproxy="216.155.165.50" mmsport="8080" type="default,mms,supl" />
- <apn carrier="Univision Mobile" mcc="310" mnc="260" apn="multibrand" port="" mmsc="http://uvm.mmsmvno.com/mms/wapenc" mvno_type="gid" mvno_match_data="554d" type="default,mms,supl" />
- <apn carrier="Brightspot" mcc="310" mnc="260" apn="multibrand" port="" mmsc="http://brtspt.mmsmvno.com/mms/wapenc" type="default,mms,supl" />
- <apn carrier="GoSmart" mcc="310" mnc="260" apn="multibrand" port="" mmsc="http://gsmt.mmsmvno.com/mms/wapenc" type="default,mms,supl" />
- <apn carrier="Straight Talk" mcc="310" mnc="260" apn="wap.tracfone" port="8080" mmsc="http://mms.tracfone.com" mvno_type="gid" mvno_match_data="deff" type="default,mms,supl" />
- <apn carrier="Telcel America" mcc="310" mnc="260" apn="wap.tracfone" port="" mmsc="http://mms.tracfone.com" mmsproxy="216.155.165.40" mmsport="8080" type="default,mms,supl" />
- <apn carrier="Tracfone" mcc="310" mnc="260" apn="wap.tracfone" port="" mmsc="http://mms.tracfone.com" type="default,mms,supl" />
- <apn carrier="Solavei" mcc="310" mnc="260" apn="solavei" port="" mmsc="http://solavei.mmsmvno.com/mms/wapenc" type="default,mms,supl" />
- <apn carrier="CellOne WAP" mcc="310" mnc="260" apn="wap.cellular1.net" proxy="10.10.0.97" port="9201" mmsc="http://mms.cellular1.net/ecit/mms.php" mmsproxy="10.10.0.97" mmsport="9201" type="default,supl,mms" authtype="0" />
- <apn carrier="Simple" mcc="310" mnc="260" apn="simple" port="" mmsc="http://smpl.mms.msg.eng.t-mobile.com/mms/wapenc" mvno_type="gid" mvno_match_data="534d" type="default,mms,supl" />
- <apn carrier="Simple" mcc="310" mnc="260" apn="simple" proxy="216.155.165.50" port="8080" user="" password="" mmsc="http://smpl.mms.msg.eng.t-mobile.com/mms/wapenc" mmsproxy="216.155.165.50" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Walmart Family Mobile" mcc="310" mnc="260" apn="web.omwtoday.com" mmsproxy="216.155.165.50" mmsport="8080" mmsc="http://wirelessfour.mmsmvno.com/mms/wapenc" type="default,supl,mms" />
- <apn carrier="Ting Data" mcc="310" mnc="260" apn="wholesale" type="default,admin,fota,mms,supl,hipri,internet,dun" protocol="IPV6" roaming_protocol="IPV6" />
- <apn carrier="Ting Data" mcc="310" mnc="260" apn="wholesale" type="default,admin,fota,mms,supl,hipri,internet,dun" protocol="IPV6" roaming_protocol="IPV6" />
- <apn carrier="Ting MMS" mcc="310" mnc="260" apn="wholesale" mmsc="http://wholesale.mmsmvno.com/mms/wapenc" type="mms" protocol="IP" roaming_protocol="IP" />
- <apn carrier="US Mobile" mcc="310" mnc="260" apn="pwg" mmsc="http://pwg.mmsmvno.com/mms/wapenc" type="default,supl,mms" />
- <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" />
- <apn carrier="Westlink MMS" mcc="310" mnc="340" apn="mms.westlink" mmsc="http://mms2.westlinkcom.com/mms/" mmsproxy="199.221.134.43" mmsport="8080" type="mms" authtype="0" />
- <apn carrier="ATT WAP" mcc="310" mnc="380" 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="380" apn="Broadband" type="default,supl" />
- <apn carrier="Cingular 380 ATT" mcc="310" mnc="380" apn="proxy" proxy="wireless.cingular.com" port="80" user="" password="" mmsc="http://mmsc.cingular.com/" mmsproxy="wireless.cingular.com" mmsport="" type="default,supl,mms" />
- <apn carrier="AWS MMS" mcc="310" mnc="380" apn="proxy" proxy="" port="" user="" password="" mmsc="http://mmsc.mymmode.com" mmsproxy="10.250.250.55" mmsport="8080" type="mms" />
- <apn carrier="COET Web" name="COET Web" apn="web.celloneet.com" user="user1@web.celloneet.com" password="celloneet" server="http://192.168.100.14" mmsc="http://192.168.100.14" mmsproxy="209.4.229.81" mmsport="9201" mcc="310" mnc="390" type="default,supl,mms" authtype="1" />
- <apn carrier="Celloneet MMS" mcc="310" mnc="390" apn="mms.celloneet.com" proxy="" port="" user="user1@mms.celloneet.com" password="celloneet" mmsc="http://mms.celloneet.com/servlets/mms" mmsproxy="63.99.231.135" mmsport="8080" type="mms" />
- <apn carrier="ATT" mcc="310" mnc="410" apn="phone" mmsc="http://mmsc.mobile.att.net/" mmsproxy="proxy.mobile.att.net" mmsport="80" type="default,mms,supl" />
- <apn carrier="Net10" mcc="310" mnc="410" apn="tfdata" mmsc="http://mms-tf.net" mmsproxy="mms3.tracfone.com" mmsport="80" type="default,mms,supl" />
- <apn carrier="Straight Talk" mcc="310" mnc="410" apn="tfdata" port="80" mmsc="http://mms-tf.net" mmsproxy="mms3.tracfone.com" mmsport="80" mvno_type="gid" mvno_match_data="deff" type="default,mms,supl" />
- <apn carrier="Red Pocket" mcc="310" mnc="410" apn="PRODATA" port="" mmsc="http://mmsc.mobile.att.net" mmsproxy="proxy.mobile.att.net" mmsport="80" mvno_type="gid" mvno_match_data="4201" type="default,mms,supl" />
- <apn carrier="Black Wireless" mcc="310" mnc="410" apn="att.mvno" proxy="66.209.11.33" port="80" mmsc="http://mmsc.cingular.com" mmsproxy="66.209.11.33" mmsport="80" type="default,mms,supl,agps,fota" authtype="1" />
- <apn carrier="H2O Wireless" mcc="310" mnc="410" apn="PRODATA" mmsc="http://mmsc.mobile.att.net" mmsproxy="proxy.mobile.att.net" mmsport="80" type="default,mms,supl" />
- <apn carrier="Pure Talk USA" mcc="310" mnc="410" apn="att.mvno" proxy="" port="" mmsc="http://mmsc.cingular.com" mmsproxy="proxy.mvno.telrite.com" mmsport="80" type="default,mms,supl" />
- <apn carrier="AirVoice Wireless" mcc="310" mnc="410" apn="att.mvno" proxy="66.209.11.33" port="80" mmsc="http://mmsc.cingular.com" mmsproxy="66.209.11.33" mmsport="80" type="default,mms,supl" />
- <apn carrier="Jolt Mobile" mcc="310" mnc="410" apn="att.mvno" proxy="66.209.11.33" port="80" mmsc="http://mmsc.cingular.com" mmsproxy="66.209.11.33" mmsport="80" type="default,mms,supl" />
- <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 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" />
- <apn carrier="StraightTalk ATT.mvno" mcc="310" mnc="410" apn="att.mvno" port="80" mmsc="http://mmsc.cingular.com" mmsproxy="66.209.11.33" mmsport="80" type="default,supl,mms" />
- <apn carrier="StraightTalk ATT" mcc="310" mnc="410" apn="att.mvno" proxy="" port="" user="" password="" mmsc="http://mmsc.cingular.com" mmsproxy="66.209.11.33" mmsport="80" type="default,supl,mms" />
- <apn carrier="ATT GoPhone" mcc="310" mnc="410" apn="pta" port="" mmsc="http://mmsc.mobile.att.net" mmsproxy="proxy.mobile.att.net" mmsport="80" type="default,mms,supl" />
- <apn carrier="CBW Wap" mcc="310" mnc="420" apn="wap.gocbw.com" user="cbw" server="*" password="*" mmsc="http://mms.gocbw.com:8088/mms" mmsproxy="216.68.79.202" mmsport="80" proxy="216.68.79.202" port="80" type="default,supl,mms" />
- <apn carrier="CBW Internet" mcc="310" mnc="420" apn="wap.gocbw.com" proxy="" port="" user="cbw" password="" server="216.68.79.199" mmsc="http://mms.gocbw.com:8088/mms" mmsproxy="216.68.79.202" mmsport="80" type="default,supl,mms" />
- <apn carrier="Viero" mcc="310" mnc="450" apn="internet.vedge.com" proxy="10.168.3.23" port="9401" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Viero MMS" mcc="310" mnc="450" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms.viero.com" mmsproxy="10.168.3.23" mmsport="9401" type="mms" />
- <apn carrier="WAP" mcc="310" mnc="460" apn="wap" proxy="10.1.20.10" port="8080" type="default,supl" authtype="0" />
- <apn carrier="MMS" mmsc="http://10.1.20.11:8514" mmsproxy="10.1.20.10" mmsport="8080" mcc="310" mnc="460" apn="mms" type="mms" authtype="0" />
- <apn carrier="Docomo Pacific" mcc="310" mnc="470" apn="internet" user="" password="" />
- <apn carrier="Docomo Pacific MMS" mcc="310" mnc="470" apn="gcpos" mmsc="http://mmsc.guamcell.csky.us:6672/" user="" password="" proxy="209.004.229.082" port="9201" type="mms" />
- <apn carrier="DataConnect" mcc="310" mnc="470" apn="isp.cingular" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="MediaNet" mcc="310" mnc="470" apn="wap.cingular" proxy="" port="" user="WAP@CINGULARGPRS.COM" password="CINGULAR1" mmsc="http://mmsc.cingular.com" mmsproxy="66.209.11.32" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Verizon Internet" mcc="310" mnc="480" apn="VZWINTERNET" type="default,dun,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon FOTA" mcc="310" mnc="480" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon IMS" mcc="310" mnc="480" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon CBS" mcc="310" mnc="480" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="DataConnect" mcc="310" mnc="480" apn="isp.cingular" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="MediaNet" mcc="310" mnc="480" apn="wap.cingular" proxy="" port="" user="WAP@CINGULARGPRS.COM" password="CINGULAR1" mmsc="http://mmsc.cingular.com" mmsproxy="66.209.11.32" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Verizon Internet" mcc="310" mnc="481" apn="VZWINTERNET" type="default,dun,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon FOTA" mcc="310" mnc="481" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon IMS" mcc="310" mnc="481" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon CBS" mcc="310" mnc="481" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon Internet" mcc="310" mnc="483" apn="VZWINTERNET" type="default,dun,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon FOTA" mcc="310" mnc="483" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon IMS" mcc="310" mnc="483" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon CBS" mcc="310" mnc="483" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon Internet" mcc="310" mnc="486" apn="VZWINTERNET" type="default,dun,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon FOTA" mcc="310" mnc="486" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon IMS" mcc="310" mnc="486" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon CBS" mcc="310" mnc="486" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon Internet" mcc="310" mnc="489" apn="VZWINTERNET" type="default,dun,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon FOTA" mcc="310" mnc="489" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon IMS" mcc="310" mnc="489" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon CBS" mcc="310" mnc="489" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="GoodCall Picture Message" mcc="310" mnc="490" apn="good.call" proxy="" port="" user="" password="" mmsc="http://mms.suncom.net:8088/mms" mmsproxy="66.150.33.125" mmsport="8080" type="mms" />
- <apn carrier="Suncom MMS" mcc="310" mnc="490" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms.suncom.net:8088/mms" mmsproxy="66.150.33.125" mmsport="8080" type="mms" />
- <apn carrier="ATT WAP" mcc="310" mnc="560" 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="560" apn="Broadband" type="default,supl" />
- <apn carrier="DobsonMMS" mcc="310" mnc="560" apn="dobsoncellularwap" proxy="" port="" user="" password="" mmsc="http://mmsc" mmsproxy="172.23.1.252" mmsport="8799" type="mms" />
- <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" />
- <apn carrier="Epic Internet" mcc="310" mnc="610" apn="internet.epictouch" type="default,supl" authtype="0" />
- <apn carrier="Epic Mms" mcc="310" mnc="610" apn="mms.epictouch" proxy="199.221.134.46" port="8080" mmsc="http://mms.epicpcs.com/mms/" mmsproxy="199.221.134.46" mmsport="8080" type="mms" authtype="0" />
- <apn carrier="Airfire GPRS" mcc="310" mnc="640" apn="internet.air.net" type="default,supl" authtype="0" />
- <apn carrier="Airfire MMS" mcc="310" mnc="640" apn="internet.air.net" mmsc="http://mms.airfiremobile.com/+1" type="mms" authtype="0" />
- <apn carrier="ATT Broadband" mcc="310" mnc="680" apn="Broadband" type="default,supl" />
- <apn carrier="ATT WAP" mcc="310" mnc="680" 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="ADAT" mcc="310" mnc="690" apn="biz.immix.com" proxy="209.4.229.79" port="9401" mmsc="http://mms.immix.csky.us:6672/" mmsproxy="209.4.229.79" mmsport="9401" type="default,supl,mms" authtype="0" />
- <apn carrier="ASTAC" mcc="310" mnc="710" apn="ningiq" type="default,supl" authtype="0" />
- <apn carrier="Internet" mcc="310" mnc="770" apn="i2.iwireless.com" type="default,supl" authtype="0" />
- <apn carrier="MMS" proxy="209.4.229.31" port="9201" mmsc="http://mmsc.iwireless.dataonair.net:6672" mmsproxy="209.4.229.31" mmsport="9201" mcc="310" mnc="770" apn="wap1.iwireless.com" type="mms" authtype="0" />
- <apn carrier="iWireless" mcc="310" mnc="770" apn="i2.iwireless.com" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="iWireless MMS" mcc="310" mnc="770" apn="wap1.iwireless.com" proxy="" port="" user="" password="" mmsc="http://mmsc.iwireless.dataonair.net:6672" mmsproxy="209.4.229.32" mmsport="9201" type="mms" />
- <apn carrier="IWS WAP" mcc="310" mnc="770" apn="wap1.iwireless.com" mmsc="http://mmsc.iwireless.dataonair.net:6672" mmsproxy="209.4.229.31" mmsport="9401" type="default,supl" />
- <apn carrier="PIAPicture Messaging" mcc="310" mnc="770" apn="wap9.iwireless.com" proxy="" port="" user="" password="" mmsc="http://mmsc.iwireless.dataonair.net:6672" mmsproxy="209.4.229.32" mmsport="9401" type="mms" />
- <apn carrier="Internet" mcc="310" mnc="840" apn="isp" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="MMS" mcc="310" mnc="840" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms.edgemobile.net/mmsc" mmsproxy="12.108.12.13" mmsport="3128" type="mms" />
- <apn carrier="Edge MMS Prepay" mcc="310" mnc="840" apn="ppmms" proxy="" port="" user="" password="" mmsc="http://mms.edgemobile.net/mmsc" mmsproxy="12.108.12.13" mmsport="3128" type="mms" />
- <apn carrier="Pace Net" mcc="310" mnc="870" apn="data.kaplan" type="default,supl" authtype="0" />
- <apn carrier="Pace Pic" mcc="310" mnc="870" apn="mms.kaplan" mmsc="http://mms.iot1.com/kaplan/mms.php" mmsproxy="10.10.0.97" mmsport="9201" type="mms" authtype="0" />
- <apn carrier="DTC WAP" mcc="310" mnc="880" apn="wapdtcw.com" proxy="204.181.155.218" port="8080" type="default,supl" authtype="0" />
- <apn carrier="DTC MMS" mcc="310" mnc="880" apn="mmsdtcw.com" mmsc="http://mmsdtcw.com" proxy="192.168.20.42" port="80" mmsproxy="192.168.20.42" mmsport="80" type="mms" authtype="0" />
- <apn carrier="DTC MMS" mcc="310" mnc="880" apn="mms.adv.com" proxy="" port="" user="" password="" mmsc="http://mms.iot1.com/advantage/mms.php" type="mms" />
- <apn carrier="WOW_WAP" mcc="310" mnc="910" apn="wap.firstcellular.com" proxy="" port="" user="" password="" mmsc="mms.firstcellular.net/mmsc" mmsproxy="10.101.1.5" mmsport="3128" type="default,supl,mms" />
- <apn carrier="ATT WAP" mcc="310" mnc="980" 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="980" apn="Broadband" type="default,supl" />
- <apn carrier="Chariton_WAP" mcc="311" mnc="020" apn="wap.cv" type="default,supl" authtype="0" />
- <apn carrier="Chariton_MMS" mcc="311" mnc="020" apn="mms.cv" mmsc="http://mms.cvalley.net/mms/" mmsproxy="199.221.134.36" mmsport="8080" type="mms" authtype="0" />
- <apn carrier="Indigo" mcc="311" mnc="030" apn="internet.indigoip" mmsc="http://mmsgprs.com" mmsproxy="10.213.2.68" mmsport="80" type="default,supl" authtype="0" />
- <apn carrier="Indigo MMS" mcc="311" mnc="030" apn="mms.indigo" mmsc="http://mmsgprs.com" mmsproxy="10.213.2.68" mmsport="80" user="mms" password="mms@indigo" type="mms" authtype="1" />
- <apn carrier="Pine WAP" mcc="311" mnc="080" apn="pine" proxy="69.8.34.146" port="9401" type="default,supl" authtype="0" />
- <apn carrier="Pine MMS" mcc="311" mnc="080" apn="pine" mmsc="http://69.8.34.146/mms/" mmsproxy="69.8.34.146" mmsport="9401" user="" password="" type="mms" authtype="0" />
- <apn carrier="ATT WAP" mcc="311" mnc="70" 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="311" mnc="70" apn="Broadband" type="default,supl" />
- <apn carrier="ATT WAP" mcc="311" mnc="90" 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="311" mnc="90" apn="Broadband" type="default,supl" />
- <apn carrier="Lyca Mobile" mcc="311" mnc="96" apn="data.lycamobile.com" proxy="" port="" user="lmus" password="plus" mmsc="http://lyca.mmsmvno.com/mms/wapenc" type="default,supl,admin,dun" />
- <apn carrier="Lycamobile US" mcc="311" mnc="96" apn="data.lycamobile.us" user="lmus" password="plus" type="default,supl" />
- <apn carrier="ATT WAP" mcc="311" mnc="150" 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="311" mnc="150" apn="Broadband" type="default,supl" />
- <apn carrier="ATT WAP" mcc="311" 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="311" mnc="170" apn="Broadband" type="default,supl" />
- <apn carrier="ATT WAP" mcc="311" 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" />
- <apn carrier="ATT Broadband" mcc="311" mnc="180" apn="Broadband" type="default,supl" />
- <apn carrier="MMS" mcc="311" mnc="190" apn="wap.cellular1.net" proxy="" port="" user="" password="" mmsc="http://mms.cellular1.net/ecit/mms.php" type="mms" />
- <apn carrier="Farmers" mcc="311" mnc="210" apn="internet.farmerswireless.com" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Farmers MMS" mcc="311" mnc="210" apn="mms.farmers.com" proxy="" port="" user="" password="" mmsc="172.16.0.37:8514" type="mms" />
- <apn carrier="USCC" mcc="311" mnc="220" apn="internet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" authtype="3" port="80" mmsport="80" type="mms" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="220" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="220" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="220" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="221" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="221" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="221" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="222" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="222" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="222" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="223" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="223" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="223" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="224" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="224" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="224" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="225" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="225" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="LTE - USCC INTERNET 2" mcc="311" mnc="225" apn="usccinternet" type="default,dun,mms,fota" mmsc="http://mmsc1.uscc.net/mmsc/MMS" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="226" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="226" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="226" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="227" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="227" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="227" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="228" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="228" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="228" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="229" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="229" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="229" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="LTE INTERNET" mcc="311" mnc="230" apn="Internet.cs4glte.com" user="" password="" type="default,dun,mms" authtype="0" mmsc="http://pix.cspire.com/servlets/mms" mmsproxy="66.175.144.91" mmsport="80" protocol="IP" roaming_protocol="IP" bearer="14" />
- <apn carrier="LTE IMS" mcc="311" mnc="230" apn="ims.cs4glte.com" type="ims" user="" password="" mmsc="http://pix.cspire.com/servlets/mms" mmsproxy="66.175.144.91" mmsport="80" protocol="IP" roaming_protocol="IP" bearer="14" />
- <apn carrier="LTE ADMIN" mcc="311" mnc="230" apn="admin.cs4glte.com" type="fota" user="" password="" mmsc="http://pix.cspire.com/servlets/mms" mmsproxy="66.175.144.91" mmsport="80" protocol="IP" roaming_protocol="IP" bearer="14" />
- <apn carrier="LTE Tethering" mcc="311" mnc="230" apn="tethering.cs4glte.com" type="tethering" user="" password="" mmsc="http://pix.cspire.com/servlets/mms" mmsproxy="66.175.144.91" mmsport="80" protocol="IP" roaming_protocol="IP" bearer="14" />
- <apn carrier="EHRPD INTERNET" mcc="311" mnc="230" apn="Internet.cs4glte.com" user="" password="" type="default,dun,mms" authtype="0" mmsc="http://pix.cspire.com/servlets/mms" mmsproxy="66.175.144.91" mmsport="80" protocol="IP" roaming_protocol="IP" bearer="13" />
- <apn carrier="EHRPD IMS" mcc="311" mnc="230" apn="ims.cs4glte.com" type="ims" user="" password="" mmsc="http://pix.cspire.com/servlets/mms" mmsproxy="66.175.144.91" mmsport="80" protocol="IP" roaming_protocol="IP" bearer="13" />
- <apn carrier="EHRPD ADMIN" mcc="311" mnc="230" apn="admin.cs4glte.com" type="fota" user="" password="" mmsc="http://pix.cspire.com/servlets/mms" mmsproxy="66.175.144.91" mmsport="80" protocol="IP" roaming_protocol="IP" bearer="13" />
- <apn carrier="EHRPD Tethering" mcc="311" mnc="230" apn="tethering.cs4glte.com" type="tethering" user="" password="" mmsc="http://pix.cspire.com/servlets/mms" mmsproxy="66.175.144.91" mmsport="80" protocol="IP" roaming_protocol="IP" bearer="13" />
- <apn carrier="AirFire" mcc="311" mnc="330" apn="internet.air.net" user="" password="" />
- <apn carrier="AirFire MMS" mcc="311" mnc="330" mmsc="http://mms.airfiremobile.com/+1" apn="internet.air.net" user="" password="" type="mms" />
- <apn carrier="GCI Web" mcc="311" mnc="370" apn="web.gci" type="default,supl" authtype="0" />
- <apn carrier="GCI MMS" mcc="311" mnc="370" apn="mms.gci" mmsc="http://mmsc.gci.csky.us:6672/" mmsproxy="209.4.229.92" mmsport="9201" type="mms" authtype="0" />
- <apn carrier="GCI Data" mcc="311" mnc="370" apn="web.gci" type="default,supl" />
- <apn carrier="GCI MMS" mcc="311" mnc="370" apn="mms.gci" mmsproxy="209.4.229.92" mmsport="9201" mmsc="http://mmsc.gci.csky.us:6672" type="mms" />
- <apn carrier="GCI Data" mcc="311" mnc="370" apn="web.gci" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="GCI MMS" mcc="311" mnc="370" apn="mms.gci" proxy="" port="" user="" password="" mmsc="http://mmsc.gci.csky.us:6672" mmsproxy="209.4.229.92" mmsport="9201" type="mms" />
- <apn carrier="ATT WAP" mcc="311" mnc="380" 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="311" mnc="380" apn="Broadband" type="default,supl" />
- <!-- bearer 4, 5, 6, 7, 8, 12 -->
- <apn carrier="Verizon" mcc="311" mnc="480" apn="internet" authtype="3" type="default,mms,supl,fota,cbs,dun" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" bearer_bitmask="4|5|6|7|8|12" user_visible="false" />
- <!-- bearer 1, 2, 3, 9, 10, 11, 13, 14, 15, 18 -->
- <apn carrier="Verizon" mcc="311" mnc="480" apn="VZWINTERNET" type="default,dun,supl" authtype="0" protocol="IPV4V6" roaming_protocol="IP" bearer_bitmask="1|2|3|9|10|11|13|14|15|18" profile_id="0" modem_cognitive="true" max_conns="20" max_conns_time="300" />
- <!-- bearer 1, 2, 3, 9, 10, 11, 13, 14, 15, 18 -->
- <apn carrier="Verizon" mcc="311" mnc="480" apn="VZWADMIN" type="fota" authtype="0" protocol="IPV4V6" roaming_protocol="IP" bearer_bitmask="1|2|3|9|10|11|13|14|15|18" profile_id="3" modem_cognitive="true" max_conns="20" max_conns_time="300" user_visible="false" />
- <!-- bearer 1, 2, 3, 9, 10, 11, 13, 14, 15, 18 -->
- <apn carrier="Verizon" mcc="311" mnc="480" apn="IMS" type="ims,ia" authtype="0" protocol="IPV4V6" roaming_protocol="IPV6" bearer_bitmask="1|2|3|9|10|11|13|14|15|18" profile_id="2" modem_cognitive="true" max_conns="20" max_conns_time="300" user_visible="false" />
- <!-- bearer 1, 2, 3, 9, 10, 11, 13, 14, 15, 18 -->
- <apn carrier="Verizon" mcc="311" mnc="480" apn="VZWAPP" type="cbs,mms" authtype="0" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IP" bearer_bitmask="1|2|3|9|10|11|13|14|15|18" profile_id="4" modem_cognitive="true" max_conns="20" max_conns_time="300" user_visible="false" />
- <apn carrier="StraightTalk Verizon" mcc="311" mnc="480" apn="TRACFONE.VZWENTP" type="default,dun,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="XFINITY Mobile" mcc="311" mnc="480" apn="COMCAST.RSLR.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" />
- <apn carrier="Verizon CBS" mcc="311" mnc="482" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon Internet" mcc="311" mnc="485" 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="485" apn="VZWADMIN" type="fota" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon IMS" mcc="311" mnc="485" apn="VZWIMS" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Verizon CBS" mcc="311" mnc="485" apn="VZWAPP" type="cbs,mms" mmsc="http://mms.vtext.com/servlets/mms" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Virgin Mobile US" mcc="311" mnc="490" apn="0" mmsproxy="205.239.233.136" mmsport="81" mmsc="http://mmsc.vmobl.com:8088/mms?" port="" type="mms" />
- <apn carrier="Virgin Mobile CdmaNai" mcc="311" mnc="490" apn="CdmaNai" mmsproxy="68.28.31.2" mmsport="80" mmsc="http://mmsc.vmobl.com:8088" type="mms" carrier_enabled="false" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="Mosiac WAP" mcc="311" mnc="500" apn="WAP" mmsc="http://mmsc.ctc.csky.us:6672" mmsproxy="209.4.229.46" mmsport="9201" type="default,supl,mms" />
- <apn carrier="Internet" mcc="311" mnc="530" apn="wap.mymobiletxt.com" mmsc="http://172.16.16.103/mms/" mmsproxy="172.16.16.102" mmsport="8080" type="" authtype="0" />
- <apn carrier="Internet" mcc="311" mnc="530" apn="mms.mymobiletxt.com" mmsc="http://mms2.mymobiletxt.net" type="default,supl,mms" authtype="0" />
- <apn carrier="ATT WAP" mcc="311" mnc="560" 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="311" mnc="560" tapn="Broadband" ype="default" />
- <apn carrier="LTE - USCC INTERNET" mcc="311" mnc="580" apn="usccinternet" type="default,dun,mms,fota" mmsc="http://mmsc1.uscc.net/mmsc/MMS" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="580" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="580" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="8" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="580" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="580" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="581" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="581" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="581" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="582" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="582" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="582" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="583" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="583" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="583" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="584" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="584" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="584" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="585" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="585" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="585" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="586" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="586" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="586" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="587" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="587" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="587" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="588" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="588" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="588" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="589" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="13" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="589" apn="usccinternet" mmsc="http://mmsc1.uscc.net/mmsc/MMS" mmsc2="http://mmsc2.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="14" />
- <apn carrier="U.S. Cellular" mcc="311" mnc="589" apn="CdmaNai" mmsc="http://mmsc1.uscc.net/mmsc/MMS" type="default,mms,dun,hipri,fota" inactivetimer="-1" carrier_enabled="true" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="MetroPCS DEFAULT" mcc="311" mnc="660" apn="internet.metropcs" user="" password="" type="default,hipri,admin,mms" authtype="0" mmsc="http://mms.metropcs.net:3128/mmsc" protocol="IP" roaming_protocol="IP" bearer="14" />
- <apn carrier="MetroPCS IMS" mcc="311" mnc="660" apn="ims.metropcs" user="" password="" type="ims" authtype="0" mmsc="http://mms.metropcs.net:3128/mmsc" protocol="IP" roaming_protocol="IP" bearer="14" />
- <apn carrier="ATT WAP" mcc="311" mnc="680" 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="311" mnc="680" apn="Broadband" type="default,supl" />
- <apn carrier="Boost Mobile CdmaNai" mcc="311" mnc="870" apn="CdmaNai" mmsproxy="68.28.31.7" mmsport="80" mmsc="http://mm.myboostmobile.com" type="mms" carrier_enabled="false" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="ATT WAP" mcc="311" mnc="980" 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="311" mnc="980" apn="Broadband" type="default,supl" />
- <apn carrier="Sprint CdmaNai" mcc="312" mnc="530" apn="CdmaNai" mmsproxy="68.28.31.7" mmsport="80" mmsc="http://mms.sprintpcs.com" type="mms" carrier_enabled="false" protocol="IPV4V6" roaming_protocol="IPV4V6" bearer="6" />
- <apn carrier="LTE CLARO" mcc="330" mnc="110" apn="lte.claropr.com" authtype="1" type="default,supl" />
- <apn carrier="MMS CLARO" mcc="330" mnc="110" apn="mmslte.claropr.com" mmsc="http://mmsg.claropr.com:10021/mmsc" mmsproxy="10.50.38.3" mmsport="8799" authtype="1" type="mms" />
- <apn carrier="Claro PR" mcc="330" mnc="11" apn="internet.claropr.com" proxy="" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Claro PR MMS" mcc="330" mnc="11" apn="mms.claropr.com" proxy="" port="" user="" password="" mmsc="http://mmsg.claropr.com:1021/mmsc" mmsproxy="10.50.38.3" mmsport="8799" type="mms" />
- <apn carrier="Telcel Internet" mcc="334" mnc="02" apn="internet.itelcel.com" proxy="" port="" user="webgprs" password="webgprs2002" mmsc="" type="default,supl" />
- <apn carrier="Mensajas Multimedia" mcc="334" mnc="02" apn="mms.itelcel.com" proxy="" port="" user="mmsgprs" password="mmsgprs2003" mmsc="http://mms.itelcel.com/servlets/mms" mmsproxy="148.233.151.240" mmsport="8080" type="mms" />
- <apn carrier="Telcel EDGE" mcc="334" mnc="020" apn="internet.itelcel.com" proxy="" port="" user="webgprs" password="webgprs2002" mmsc="" type="default,supl" />
- <apn carrier="Telcel MMS" mcc="334" mnc="020" apn="mms.itelcel.com" proxy="" port="" user="mmsgprs" password="mmsgprs2003" mmsc="http://mms.itelcel.com/servlets/mms" mmsproxy="148.233.151.240" mmsport="8080" type="mms" />
- <apn carrier="Movistar MX" mcc="334" mnc="03" apn="internet.movistar.mx" proxy="" port="" user="movistar" password="movistar" mmsc="" type="default,supl" />
- <apn carrier="Movistar MX MMS" mcc="334" mnc="03" apn="mms.movistar.mx" proxy="" port="" user="movistar" password="movistar" mmsc="http://mms.movistar.mx" mmsproxy="10.2.20.1" mmsport="9201" type="mms" />
- <apn carrier="Iusacell Internet" mcc="334" mnc="05" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Internet Modem" mcc="334" mnc="05" apn="modem.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" type="dun" />
- <apn carrier="Iusacell MMS" mcc="334" mnc="05" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Iusacell Internet" mcc="334" mnc="050" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Iusacell MMS" mcc="334" mnc="050" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Unefon Internet" mcc="334" mnc="050" apn="web.iusacellgsm.mx" user="iusacellgsm" password="iusacellgsm" authtype="0" type="default,supl" />
- <apn carrier="Unefon MMS" mcc="334" mnc="050" apn="mms.iusacellgsm.mx" mmsc="http://mms.iusacell3g.com/" user="mmsiusacellgsm" password="mmsiusacellgsm" type="mms" />
- <apn carrier="Nextel Navegación" mcc="334" mnc="090" apn="wap.nexteldata.com.mx" user="" password="" authtype="0" type="default,supl" />
- <apn carrier="Nextel MMS" mcc="334" mnc="090" apn="mms.nexteldata.com.mx" mmsproxy="129.192.129.104" mmsport="8080" mmsc="http://3gmms.nexteldata.com.mx" user="" password="" type="mms" />
- <apn carrier="Nextel Internet" mcc="334" mnc="090" apn="modem.nexteldata.com.mx" user="" password="" type="dun,tethering" />
- <apn carrier="Nextel Localización" mcc="334" mnc="090" apn="location.nexteldata.com.mx" server="supl.nexteldata.com.mx" port="7275" type="supl" />
- <apn carrier="Movistar INTERNET" mcc="334" mnc="30" apn="internet.movistar.mx" user="movistar" password="movistar" authtype="1" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="334" mnc="30" apn="mms.movistar.mx" proxy="" port="" mmsproxy="10.2.20.1" mmsport="80" mmsc="http://mms.movistar.mx" user="movistar" password="movistar" authtype="1" type="mms" />
- <apn carrier="LIME Prepaid Internet" mcc="338" mnc="180" apn="ppinternet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Postpaid Internet" mcc="338" mnc="180" apn="internet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Prepaid MMS" mcc="338" mnc="180" apn="ppmms" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Postpaid MMS" mcc="338" mnc="180" apn="multimedia" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="Digicel Web" mcc="338" mnc="05" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="338" mnc="05" mmsc="http://mms.digicelgroup.com" apn="wap" user="" password="" mmsproxy="172.16.7.12" mmsport="8080" type="mms" />
- <apn carrier="Digicel Haiti Web" mcc="338" mnc="05" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel Haiti MMS" mcc="338" mnc="05" mmsc="http://mmc.digicelhaiti.com/servlets/mms" apn="wap" user="" password="" mmsproxy="172.20.134.12" mmsport="8080" type="mms" />
- <apn carrier="Digicel BVI Web" mcc="338" mnc="05" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel BVI MMS" mcc="338" mnc="05" mmsc="http://mmc.digiceljamaica.com/servlets/mms" apn="wap" user="" password="" mmsproxy="172.16.7.12" mmsport="8080" type="mms" />
- <apn carrier="Digicel Cayman Web" mcc="338" mnc="05" apn="internet" user="" password="" type="default,supl" />
- <apn carrier="Digicel Cayman MMS" mcc="338" mnc="05" mmsc="http://mms.digicelgroup.com" apn="wap" user="" password="" mmsproxy="172.16.7.12" mmsport="8080" type="mms" />
- <apn carrier="Digicel LTE ANTIGUA" mcc="338" mnc="05" apn="internet" user="" password="" type="default,supl" />
- <apn carrier="Digicel Antigua MMS" mcc="338" mnc="05" mmsc="http://mms.digicelgroup.com" apn="wap" user="" password="" mmsproxy="172.16.7.12" mmsport="8080" type="mms" />
- <apn carrier="Digicel Web" mcc="338" mnc="050" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="338" mnc="050" mmsc="http://mms.digicelgroup.com" apn="wap" user="" password="" mmsproxy="172.16.7.12" mmsport="8080" type="mms" />
- <apn carrier="Digicel Haiti Web" mcc="338" mnc="050" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel Haiti MMS" mcc="338" mnc="050" mmsc="http://mmc.digicelhaiti.com/servlets/mms" apn="wap" user="" password="" mmsproxy="172.20.134.12" mmsport="8080" type="mms" />
- <apn carrier="Digicel BVI Web" mcc="338" mnc="050" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel BVI MMS" mcc="338" mnc="050" mmsc="http://mmc.digiceljamaica.com/servlets/mms" apn="wap" user="" password="" mmsproxy="172.16.7.12" mmsport="8080" type="mms" />
- <apn carrier="Digicel Cayman Web" mcc="338" mnc="050" apn="internet" user="" password="" type="default,supl" />
- <apn carrier="Digicel Cayman MMS" mcc="338" mnc="050" mmsc="http://mms.digicelgroup.com" apn="wap" user="" password="" mmsproxy="172.16.7.12" mmsport="8080" type="mms" />
- <apn carrier="Digicel LTE ANTIGUA" mcc="338" mnc="050" apn="internet" user="" password="" type="default,supl" />
- <apn carrier="Digicel ANTIGUA MMS" mcc="338" mnc="050" mmsc="http://mms.digicelgroup.com" apn="wap" user="" password="" mmsproxy="172.16.7.12" mmsport="8080" type="mms" />
- <apn carrier="Digicel JM" mcc="338" mnc="50" apn="wap.digiceljamaica.com" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Digicel JM MMS" mcc="338" mnc="50" apn="wap.digiceljamaica.com" proxy="" port="" user="wapuser" password="wap03jam" mmsc="http://mms.digicelgroup.com" mmsproxy="172.16.7.12" mmsport="8080" type="mms" />
- <apn carrier="Digicel BM" mcc="338" mnc="50" apn="web.digicelbermuda.com" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Claro JM" mcc="338" mnc="70" apn="internet.ideasclaro.com.jm" proxy="" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Orange World" mcc="340" mnc="01" apn="orangeweb" user="orange" password="orange" type="default,supl" />
- <apn carrier="Orange World" mcc="340" mnc="01" apn="Orange MMS" proxy="" port="" mmsproxy="10.0.0.10" mmsport="8082" mmsc="http://193.251.160.246/servlets/mms" user="orange" password="orange" type="mms" />
- <apn carrier="Orange web" mcc="340" mnc="01" apn="orangeweb" user="orange" password="orange" type="default,supl" />
- <apn carrier="Orange World Caraïbe" mcc="340" mnc="01" apn="orangewap" user="orange" password="wap" proxy="10.0.0.10" port="8082" type="default,supl" />
- <apn carrier="Orange MMS Caraïbe" mcc="340" mnc="01" apn="orangewap" user="orange" password="orange" mmsc="http://193.251.160.246/servlets/mms" mmsproxy="10.0.0.10" mmsport="8082" type="mms" />
- <apn carrier="Orangeweb" mcc="340" mnc="01" apn="orangeweb" user="orange" password="orange" type="default,supl" />
- <apn carrier="Onlyplanet" mcc="340" mnc="02" apn="onlywap" proxy="10.4.85.50" port="8080" user="only" password="only" type="default,supl" />
- <apn carrier="onlymms" mcc="340" mnc="02" apn="onlymms" proxy="" port="" mmsproxy="10.4.85.50" mmsport="8080" mmsc="http://10.4.85.50:8514" user="only" password="only" type="mms" />
- <apn carrier="Digicel FR Web" mcc="340" mnc="20" apn="web.digicelfr.com" user="" password="" type="default,supl" />
- <apn carrier="Digicel FR MMS" mcc="340" mnc="20" apn="wap" proxy="" port="" mmsproxy="172.24.2.101" mmsport="8080" mmsc="http://mmc.digicelfr.com/servlets/mms" user="wap" password="wap" type="mms" />
- <apn carrier="LIME Prepaid Internet" mcc="342" mnc="600" apn="ppinternet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Postpaid Internet" mcc="342" mnc="600" apn="internet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Prepaid MMS" mcc="342" mnc="600" apn="ppmms" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Postpaid MMS" mcc="342" mnc="600" apn="multimedia" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="Digicel BB MMS" mcc="342" mnc="750" apn="wap.digicelbarbados.com" proxy="" port="" user="wapbarb" password="wap03barb" mmsc="http://mme.digiceljamaica.com/servlets/mms" mmsproxy="172.16.7.12" mmsport="8080" type="mms" />
- <apn carrier="Digicel BB" mcc="342" mnc="750" apn="web.digicelbarbados.com" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Imobile" mcc="344" mnc="03" apn="ppnet.apuapcs.ag" mmsc="" server="http://208.083.080.131:40007" user="" password="" proxy="208.83.80.131" port="9090" type="default,supl" />
- <apn carrier="Imobile" mcc="344" mnc="03" apn="net.apuapcs.ag" mmsc="" server="http://208.083.080.131:40007" user="" password="" proxy="208.83.80.131" port="9090" type="default,supl" />
- <apn carrier="LIME Prepaid Internet" mcc="344" mnc="920" apn="ppinternet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Postpaid Internet" mcc="344" mnc="920" apn="internet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Prepaid MMS" mcc="344" mnc="920" apn="ppmms" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Postpaid MMS" mcc="344" mnc="920" apn="multimedia" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME" mcc="344" mnc="920" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="LIME Prepaid Internet" mcc="346" mnc="140" apn="ppinternet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Postpaid Internet" mcc="346" mnc="140" apn="internet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Prepaid MMS" mcc="346" mnc="140" apn="ppmms" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Postpaid MMS" mcc="346" mnc="140" apn="multimedia" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Prepaid Internet" mcc="348" mnc="170" apn="ppinternet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Postpaid Internet" mcc="348" mnc="170" apn="internet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Prepaid MMS" mcc="348" mnc="170" apn="ppmms" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Postpaid MMS" mcc="348" mnc="170" apn="multimedia" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Prepaid Internet" mcc="352" mnc="110" apn="ppinternet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Postpaid Internet" mcc="352" mnc="110" apn="internet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Prepaid MMS" mcc="352" mnc="110" apn="ppmms" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Postpaid MMS" mcc="352" mnc="110" apn="multimedia" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="Digicel Web" mcc="348" mnc="770" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="348" mnc="770" apn="wap" proxy="" port="" mmsproxy="172.16.7.12" mmsport="8080" mmsc="http://mmc.digiceljamaica.com/servlets/mms" user="" password="" type="mms" />
- <apn carrier="LIME Prepaid Internet" mcc="354" mnc="860" apn="ppinternet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Postpaid Internet" mcc="354" mnc="860" apn="internet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Prepaid MMS" mcc="354" mnc="860" apn="ppmms" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Postpaid MMS" mcc="354" mnc="860" apn="multimedia" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Prepaid Internet" mcc="356" mnc="110" apn="ppinternet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Postpaid Internet" mcc="356" mnc="110" apn="internet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Prepaid MMS" mcc="356" mnc="110" apn="ppmms" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Postpaid MMS" mcc="356" mnc="110" apn="multimedia" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Prepaid Internet" mcc="358" mnc="110" apn="ppinternet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Postpaid Internet" mcc="358" mnc="110" apn="internet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Prepaid MMS" mcc="358" mnc="110" apn="ppmms" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Postpaid MMS" mcc="358" mnc="110" apn="multimedia" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Prepaid Internet" mcc="360" mnc="110" apn="ppinternet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Postpaid Internet" mcc="360" mnc="110" apn="internet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Prepaid MMS" mcc="360" mnc="110" apn="ppmms" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Postpaid MMS" mcc="360" mnc="110" apn="multimedia" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="Digicel VC" mcc="360" mnc="070" apn="wap.digiceloecs.com" user="wapoecs" password="wap03oecs" type="default,supl" />
- <apn carrier="Digicel VC" mcc="360" mnc="070" apn="wap.digiceloecs.com" proxy="" port="" user="wapoecs" password="wap03oecs" mmsc="" type="default,supl" />
- <apn carrier="Digicel Web" mcc="362" mnc="69" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="362" mnc="69" apn="wap" proxy="" port="" mmsproxy="172.16.7.12" mmsport="8080" mmsc="http://mms.digicelgroup.com" user="wapcu" password="wap03cur" type="mms" />
- <apn carrier="Setar MMS" mcc="363" mnc="01" apn="mms.setar.aw" proxy="" port="" user="" password="" mmsc="http://mms.setar.aw" mmsproxy="209.88.130.210" mmsport="8081" type="mms" />
- <apn carrier="Setar" mcc="363" mnc="01" apn="wap.setar.aw" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Digicel Web" mcc="363" mnc="02" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="363" mnc="02" apn="wap" proxy="" port="" mmsproxy="172.16.7.12" mmsport="8080" mmsc="http://mms.digicelgroup.com" user="waparuba" password="wap03aruba" type="mms" />
- <apn carrier="Postpaid Internet" mcc="364" mnc="390" apn="internet1.btcbahamas.com" user="" password="" proxy="" port="" />
- <apn carrier="Postpaid MMS" mcc="364" mnc="390" apn="ppmms1.btcbahamas.com" user="" password="" mmsproxy="172.16.220.44" mmsport="8080" />
- <apn carrier="BATELCO BS" mcc="364" mnc="390" apn="internet.btcbahamas.com" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Postpaid Internet" mcc="364" mnc="39" apn="internet1.btcbahamas.com" user="" password="" proxy="" port="" type="supl" />
- <apn carrier="Postpaid MMS" mcc="364" mnc="39" apn="ppmms1.btcbahamas.com" user="" password="" mmsproxy="172.16.220.44" mmsport="8080" type="mms" />
- <apn carrier="LIME Prepaid Internet" mcc="365" mnc="840" apn="ppinternet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Postpaid Internet" mcc="365" mnc="840" apn="internet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Prepaid MMS" mcc="365" mnc="840" apn="ppmms" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Postpaid MMS" mcc="365" mnc="840" apn="multimedia" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Prepaid Internet" mcc="366" mnc="110" apn="ppinternet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Postpaid Internet" mcc="366" mnc="110" apn="internet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Prepaid MMS" mcc="366" mnc="110" apn="ppmms" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Postpaid MMS" mcc="366" mnc="110" apn="multimedia" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="Orange DO" mcc="370" mnc="01" apn="orangenet.com.do" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Orange DO MMS" mcc="370" mnc="01" apn="orangeworld" proxy="" port="" user="" password="" mmsc="http://mmr.orangewi.com/servlets/mms" mmsproxy="172.16.126.70" mmsport="8080" type="mms" />
- <apn carrier="Orange Net" mcc="370" mnc="010" apn="orangenet.com.do" user="orange" password="orange" type="default,supl" />
- <apn carrier="Orange MMS" mcc="370" mnc="010" apn="orangeworld" proxy="" port="" mmsproxy="172.16.126.70" mmsport="8080" mmsc="http://mms.orange.com.do/servlets/mms" user="orange" password="orange" type="mms" />
- <apn carrier="Ideas CLARO" mcc="370" mnc="02" apn="internet.ideasclaro.com.do" user="" password="" type="default,supl" authtype="3" />
- <apn carrier="MMS CLARO" mcc="370" mnc="02" apn="internet.ideasclaro.com.do" proxy="" port="" mmsc="http://mms.ideasclaro.com.do/mms/wapenc" user="" password="" type="mms" authtype="3" />
- <apn carrier="Viva Edge" mcc="370" mnc="04" apn="edge.viva.net.do" user="viva" password="viva" mmsc="http://wap.viva.net.do/WapDeck/" proxy="192.168.016.010" port="9401" type="default,supl" />
- <apn carrier="Viva MMS" mcc="370" mnc="04" apn="mms.viva.net.do" user="viva" password="viva" mmsproxy="192.168.016.010" mmsport="9401" mmsc="http://10.200.16.4/mms/wapenc" type="mms" />
- <apn carrier="Trilogy Dominicana" mcc="370" mnc="04" apn="edge.viva.net.do" mmsproxy="192.168.16.10" mmsport="9401" user="viva" password="viva" type="default,supl,mms" />
- <apn carrier="Digicel Web" mcc="372" mnc="01" apn="web" user="" password="" mmsc="" proxy="" port="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="372" mnc="01" apn="wap" user="" password="" mmsproxy="172.20.134.12" mmsport="8080" mmsc="http://mmc.digicelhaiti.com/servlets/mms" type="mms" />
- <apn carrier="Prepaid Data" mcc="374" mnc="12" apn="bconnected" server="http://www.google.com" user="" password="" type="default,supl" />
- <apn carrier="Bmobile BUZZ" mcc="374" mnc="12" apn="buzz" proxy="192.168.210.104" port="8080" server="http://192.168.210.103/operator/wap" user="" password="" type="default,supl" />
- <apn carrier="Bmobile MMS" mcc="374" mnc="12" apn="mms" mmsproxy="192.168.210.104" mmsport="8080" mmsc="http://192.168.210.104/mmrelay.app" user="" password="" type="mms" />
- <apn carrier="BMobile Postpaid" mcc="374" mnc="12" apn="internet" type="default,supl" port="8080" />
- <apn carrier="BMobile Prepaid" mcc="374" mnc="12" apn="bconnected" type="default,supl" port="8080" />
- <apn carrier="BMobile MMS" mcc="374" mnc="12" apn="mms" type="mms" mmsc="http://192.168.210.104/mmrelay.app" mmsproxy="192.168.210.104" mmsport="8080"/>
- <apn carrier="BMobile Buzz" mcc="374" mnc="12" apn="buzz" type="default,mms" proxy="192.168.210.104" port="8080" mmsc="http://192.168.210.103/operator/wap"/>
- <apn carrier="Digicel Web" mcc="374" mnc="13" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="374" mnc="13" apn="wap" proxy="" port="" mmsproxy="172.20.6.12" mmsport="8080" mmsc="http://mmc.digiceltt.com/servlets/mms" user="wap" password="wap" type="mms" />
- <apn carrier="Digicel TT" mcc="374" mnc="13" apn="web.digiceltt.com" type="default,supl" />
- <apn carrier="Prepaid Data" mcc="374" mnc="120" apn="bconnected" server="http://www.google.com" user="" password="" type="default,supl" />
- <apn carrier="Bmobile BUZZ" mcc="374" mnc="120" apn="buzz" proxy="192.168.210.104" port="8080" server="http://192.168.210.103/operator/wap" user="" password="" type="default,supl" />
- <apn carrier="Bmobile MMS" mcc="374" mnc="120" apn="mms" mmsproxy="192.168.210.104" mmsport="8080" mmsc="http://192.168.210.104/mmrelay.app" user="" password="" type="mms" />
- <apn carrier="Prepaid Data" mcc="374" mnc="121" apn="bconnected" server="http://www.google.com" user="" password="" type="default,supl" />
- <apn carrier="Bmobile BUZZ" mcc="374" mnc="121" apn="buzz" proxy="192.168.210.104" port="8080" server="http://192.168.210.103/operator/wap" user="" password="" type="default,supl" />
- <apn carrier="Bmobile MMS" mcc="374" mnc="121" apn="mms" mmsproxy="192.168.210.104" mmsport="8080" mmsc="http://192.168.210.104/mmrelay.app" user="" password="" type="mms" />
- <apn carrier="Prepaid Data" mcc="374" mnc="122" apn="bconnected" server="http://www.google.com" user="" password="" type="default,supl" />
- <apn carrier="Bmobile BUZZ" mcc="374" mnc="122" apn="buzz" proxy="192.168.210.104" port="8080" server="http://192.168.210.103/operator/wap" user="" password="" type="default,supl" />
- <apn carrier="Bmobile MMS" mcc="374" mnc="122" apn="mms" mmsproxy="192.168.210.104" mmsport="8080" mmsc="http://192.168.210.104/mmrelay.app" user="" password="" type="mms" />
- <apn carrier="Prepaid Data" mcc="374" mnc="123" apn="bconnected" server="http://www.google.com" user="" password="" type="default,supl" />
- <apn carrier="Bmobile BUZZ" mcc="374" mnc="123" apn="buzz" proxy="192.168.210.104" port="8080" server="http://192.168.210.103/operator/wap" user="" password="" type="default,supl" />
- <apn carrier="Bmobile MMS" mcc="374" mnc="123" apn="mms" mmsproxy="192.168.210.104" mmsport="8080" mmsc="http://192.168.210.104/mmrelay.app" user="" password="" type="mms" />
- <apn carrier="Prepaid Data" mcc="374" mnc="124" apn="bconnected" server="http://www.google.com" user="" password="" type="default,supl" />
- <apn carrier="Bmobile BUZZ" mcc="374" mnc="124" apn="buzz" proxy="192.168.210.104" port="8080" server="http://192.168.210.103/operator/wap" user="" password="" type="default,supl" />
- <apn carrier="Bmobile MMS" mcc="374" mnc="124" apn="mms" mmsproxy="192.168.210.104" mmsport="8080" mmsc="http://192.168.210.104/mmrelay.app" user="" password="" type="mms" />
- <apn carrier="Prepaid Data" mcc="374" mnc="125" apn="bconnected" server="http://www.google.com" user="" password="" type="default,supl" />
- <apn carrier="Bmobile BUZZ" mcc="374" mnc="125" apn="buzz" proxy="192.168.210.104" port="8080" server="http://192.168.210.103/operator/wap" user="" password="" type="default,supl" />
- <apn carrier="Bmobile MMS" mcc="374" mnc="125" apn="mms" mmsproxy="192.168.210.104" mmsport="8080" mmsc="http://192.168.210.104/mmrelay.app" user="" password="" type="mms" />
- <apn carrier="Prepaid Data" mcc="374" mnc="126" apn="bconnected" server="http://www.google.com" user="" password="" type="default,supl" />
- <apn carrier="Bmobile BUZZ" mcc="374" mnc="126" apn="buzz" proxy="192.168.210.104" port="8080" server="http://192.168.210.103/operator/wap" user="" password="" type="default,supl" />
- <apn carrier="Bmobile MMS" mcc="374" mnc="126" apn="mms" mmsproxy="192.168.210.104" mmsport="8080" mmsc="http://192.168.210.104/mmrelay.app" user="" password="" type="mms" />
- <apn carrier="Prepaid Data" mcc="374" mnc="127" apn="bconnected" server="http://www.google.com" user="" password="" type="default,supl" />
- <apn carrier="Bmobile BUZZ" mcc="374" mnc="127" apn="buzz" proxy="192.168.210.104" port="8080" server="http://192.168.210.103/operator/wap" user="" password="" type="default,supl" />
- <apn carrier="Bmobile MMS" mcc="374" mnc="127" apn="mms" mmsproxy="192.168.210.104" mmsport="8080" mmsc="http://192.168.210.104/mmrelay.app" user="" password="" type="mms" />
- <apn carrier="Prepaid Data" mcc="374" mnc="128" apn="bconnected" server="http://www.google.com" user="" password="" type="default,supl" />
- <apn carrier="Bmobile BUZZ" mcc="374" mnc="128" apn="buzz" proxy="192.168.210.104" port="8080" server="http://192.168.210.103/operator/wap" user="" password="" type="default,supl" />
- <apn carrier="Bmobile MMS" mcc="374" mnc="128" apn="mms" mmsproxy="192.168.210.104" mmsport="8080" mmsc="http://192.168.210.104/mmrelay.app" user="" password="" type="mms" />
- <apn carrier="Prepaid Data" mcc="374" mnc="129" apn="bconnected" server="http://www.google.com" user="" password="" type="default,supl" />
- <apn carrier="Bmobile BUZZ" mcc="374" mnc="129" apn="buzz" proxy="192.168.210.104" port="8080" server="http://192.168.210.103/operator/wap" user="" password="" type="default,supl" />
- <apn carrier="Bmobile MMS" mcc="374" mnc="129" apn="mms" mmsproxy="192.168.210.104" mmsport="8080" mmsc="http://192.168.210.104/mmrelay.app" user="" password="" type="mms" />
- <apn carrier="Digicel Web" mcc="374" mnc="130" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="374" mnc="130" apn="wap" proxy="" port="" mmsproxy="172.20.6.12" mmsport="8080" mmsc="http://mmc.digiceltt.com/servlets/mms" user="wap" password="wap" type="mms" />
- <apn carrier="LIME Prepaid Internet" mcc="376" mnc="350" apn="ppinternet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Postpaid Internet" mcc="376" mnc="350" apn="internet" mmsc="" user="" password="" proxy="" port="8799" type="default,supl" />
- <apn carrier="LIME Prepaid MMS" mcc="376" mnc="350" apn="ppmms" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="LIME Postpaid MMS" mcc="376" mnc="350" apn="multimedia" mmsc="http://mmsc" user="" password="" proxy="10.20.5.34" port="8799" type="mms" />
- <apn carrier="Azercell" mcc="400" mnc="01" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Azercell MMS" mcc="400" mnc="01" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms.azercell.com/cMMSC/post" mmsproxy="10.0.154.101" mmsport="8080" type="mms" />
- <apn carrier="Bakcell" mcc="400" mnc="02" apn="mms" proxy="" port="" user="" password="" mmsc="http://mms.bakcell.com/mms/wapenc" mmsproxy="213.172.91.46" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Nar" mcc="400" mnc="04" apn="nar" proxy="" port="" user="nar" password="nar" mmsc="http://mmsc" mmsproxy="10.20.0.40" mmsport="8080" type="default,supl,mms" />
- <apn carrier="BeeLine KZ" mcc="401" mnc="01" apn="internet.beeline.kz" proxy="" port="" user="internet.beeline" password="" mmsc="" type="default,supl" />
- <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="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="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="Jio 4G" apn="jionet" type="default,supl" roaming_protocol="IPV4V6" />
- <apn carrier="Jio 4G" mcc="405" mnc="840" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="840" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="854" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="854" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="855" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="855" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="856" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="856" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="857" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="857" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="858" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="858" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="859" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="859" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="860" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="860" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="861" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="861" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="862" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="862" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="863" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="863" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="864" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="864" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="865" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="865" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="866" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="866" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="867" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="867" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="868" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="868" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="869" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="869" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="870" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="870" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="871" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="871" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="872" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="872" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="873" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="873" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <apn carrier="Jio 4G" mcc="405" mnc="874" apn="jionet" type="default,supl" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="IMS" mcc="405" mnc="874" apn="ims" type="ims" protocol="IPV4V6" roaming_protocol="IPV4V6" user_visible="false" />
- <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" />
- <apn carrier="Vodafone" mcc="404" mnc="11" 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="11" 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="11" apn="www" type="default,supl" />
- <apn carrier="IDEA Internet" mcc="404" mnc="12" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="404" mnc="12" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="404" mnc="12" 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="12" apn="mobile" type="default,supl" />
- <apn carrier="Vodafone" mcc="404" mnc="13" 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="13" 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="13" apn="www" type="default,supl" />
- <apn carrier="IDEA Internet" mcc="404" mnc="14" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="404" mnc="14" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="404" mnc="14" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="SPICE" mcc="404" mnc="14" apn="spicegprs" type="default,supl" />
- <apn carrier="SPICE MMS" mcc="404" mnc="14" apn="spicemms" user="User Mobile number" password="spice" mmsc="http://10.200.200.3:8514" mmsproxy="10.200.200.3" mmsport="8080" type="mms" />
- <apn carrier="Vodafone" mcc="404" mnc="15" 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="15" 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="15" apn="www" type="default,supl" />
- <apn carrier="Airtel GPRS" mcc="404" mnc="16" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="404" mnc="16" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="404" mnc="16" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Aircel Online" mcc="404" mnc="17" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="404" mnc="17" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="404" mnc="17" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="404" mnc="17" apn="aircelwap" type="default,supl" />
- <apn carrier="NetConnect" mcc="404" mnc="18" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="404" mnc="18" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="404" mnc="18" 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="404" mnc="18" 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="IDEA Internet" mcc="404" mnc="19" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="404" mnc="19" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="404" mnc="19" 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="19" apn="mobile" type="default,supl" />
- <apn carrier="Vodafone" mcc="404" mnc="20" 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="20" 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="20" apn="www" type="default,supl" />
- <apn carrier="Loop Internet" mcc="404" mnc="21" apn="www" type="default,supl" />
- <apn carrier="LOOP WAP" mcc="404" mnc="21" 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="404" mnc="21" 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="BPL MMS" mcc="404" mnc="21" apn="mizone" user="MSISDN" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" type="mms" />
- <apn carrier="BPL" mcc="404" mnc="21" apn="www" user="MSISDN" password="bplmmsc" type="default,supl" />
- <apn carrier="IDEA Internet" mcc="404" mnc="22" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="404" mnc="22" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="404" mnc="22" 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="22" apn="mobile" type="default,supl" />
- <apn carrier="IDEA Internet" mcc="404" mnc="24" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="404" mnc="24" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="404" mnc="24" 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="24" apn="mobile" type="default,supl" />
- <apn carrier="Aircel Online" mcc="404" mnc="25" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="404" mnc="25" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="404" mnc="25" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Vodafone" mcc="404" mnc="27" 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="27" 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="27" apn="www" type="default,supl" />
- <apn carrier="Aircel Online" mcc="404" mnc="28" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="404" mnc="28" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="404" mnc="28" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="404" mnc="28" apn="aircelwap" type="default,supl" />
- <apn carrier="Aircel Online" mcc="404" mnc="29" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="404" mnc="29" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="404" mnc="29" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="404" mnc="29" apn="aircelwap" type="default,supl" />
- <apn carrier="Vodafone" mcc="404" mnc="30" 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="30" 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="30" apn="www" type="default,supl" />
- <apn carrier="Airtel GPRS" mcc="404" mnc="31" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="404" mnc="31" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="404" mnc="31" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Aircel" mcc="404" mnc="33" apn="aircelwap" type="default,supl" />
- <apn carrier="Aircel Online" mcc="404" mnc="33" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="404" mnc="33" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="404" mnc="33" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="34" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="34" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="34" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="34" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="34" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="Aircel Online" mcc="404" mnc="35" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="404" mnc="35" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="404" mnc="35" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="404" mnc="35" apn="aircelwap" type="default,supl" />
- <apn carrier="NetConnect" mcc="404" mnc="36" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="404" mnc="36" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="404" mnc="36" 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="404" mnc="36" 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="Aircel Online" mcc="404" mnc="37" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="404" mnc="37" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="404" mnc="37" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="404" mnc="37" apn="aircelwap" type="default,supl" />
- <apn carrier="BSNL NET" mcc="404" mnc="38" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="38" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="38" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="38" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="38" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="Airtel GPRS" mcc="404" mnc="40" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="404" mnc="40" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="404" mnc="40" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Aircel Online" mcc="404" mnc="41" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="404" mnc="41" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="404" mnc="41" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="404" mnc="41" apn="aircelwap" type="default,supl" />
- <apn carrier="Aircel Online" mcc="404" mnc="42" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="404" mnc="42" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="404" mnc="42" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="404" mnc="42" apn="aircelwap" type="default,supl" />
- <apn carrier="Vodafone" mcc="404" mnc="43" 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="43" 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="43" apn="www" type="default,supl" />
- <apn carrier="IDEA Internet" mcc="404" mnc="44" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="404" mnc="44" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="404" mnc="44" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="SPICE" mcc="404" mnc="44" apn="spicegprs" type="default,supl" />
- <apn carrier="SPICE MMS" mcc="404" mnc="44" apn="spicemms" user="User Mobile number" password="spice" mmsc="http://10.200.200.3:8514" mmsproxy="10.200.200.3" mmsport="8080" type="mms" />
- <apn carrier="Airtel GPRS" mcc="404" mnc="45" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="404" mnc="45" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="404" mnc="45" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Vodafone" mcc="404" mnc="46" 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="BPL MMS" mcc="404" mnc="46" apn="mizone" user="MSISDN" password="bplmmsc" mmsc="http://mms.bplmobile.com:8080" mmsproxy="10.0.0.10" mmsport="8080" type="mms" />
- <apn carrier="BPL" mcc="404" mnc="46" apn="www" user="MSISDN" password="bplmmsc" type="default,supl" />
- <apn carrier="Airtel GPRS" mcc="404" mnc="49" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="404" mnc="49" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="404" mnc="49" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="NetConnect" mcc="404" mnc="50" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="404" mnc="50" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="404" mnc="50" 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="404" mnc="50" 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="BSNL NET" mcc="404" mnc="51" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="51" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="51" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="51" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="51" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="NetConnect" mcc="404" mnc="52" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="404" mnc="52" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="404" mnc="52" 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="404" mnc="52" 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="BSNL NET" mcc="404" mnc="53" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="53" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="53" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="53" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="53" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="54" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="54" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="54" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="54" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="54" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="55" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="55" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="55" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="55" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="55" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="IDEA Internet" mcc="404" mnc="56" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="404" mnc="56" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="404" mnc="56" 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="56" apn="mobile" type="default,supl" />
- <apn carrier="BSNL NET" mcc="404" mnc="57" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="57" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="57" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="57" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="57" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="58" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="58" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="58" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="58" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="58" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="59" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="59" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="59" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="59" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="59" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="Vodafone" mcc="404" mnc="60" 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="60" 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="60" apn="www" type="default,supl" />
- <apn carrier="Airtel GPRS" mcc="404" mnc="61" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="404" mnc="61" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="404" mnc="61" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.001.201.172" mmsport="8799" authtype="1" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="62" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="62" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="62" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="62" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="62" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="64" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="64" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="64" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="64" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="64" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="66" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="66" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="66" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="66" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="66" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="Vodafone" mcc="404" mnc="67" 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="NetConnect" mcc="404" mnc="67" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="404" mnc="67" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="404" mnc="67" 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="404" mnc="67" 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="MTNL GPRS" mcc="404" mnc="68" apn="gprsppsmum" proxy="172.16.39.10" port="9401" user="mtnl" password="mtnl123" authtype="1" type="default,supl" />
- <apn carrier="MTNL MMS" mcc="404" mnc="68" apn="gprsppsmum" user="mtnl" password="mtnl123" mmsc="http://172.16.39.140/mms/" mmsproxy="172.16.39.10" mmsport="9401" authtype="1" type="mms" />
- <apn carrier="MTNL MMS" mcc="404" mnc="68" apn="gprsppsdel" user="mtnl" password="mtnl123" mmsc="http://172.16.39.140/mms/" mmsproxy="172.16.39.10" mmsport="9201" authtype="1" type="mms" />
- <apn carrier="MTNL GPRS" mcc="404" mnc="68" apn="gprsppsdel" user="mtnl" password="mtnl123" type="default,supl" />
- <apn carrier="MTNL" mcc="404" mnc="68" apn="mtnl.net" proxy="10.10.10.10" port="9401" user="mtnl" password="mtnl123" type="default,supl" />
- <apn carrier="MTNL MMS" mcc="404" mnc="68" apn="mtnl.net" user="mtnl" password="mtnl123" mmsc="http://mtnlmms/" mmsproxy="10.10.10.10" mmsport="9401" type="mms" />
- <apn carrier="MTNL GPRS" mcc="404" mnc="69" apn="gprsppsmum" proxy="172.16.39.10" port="9401" user="mtnl" password="mtnl123" authtype="1" type="default,supl" />
- <apn carrier="MTNL MMS" mcc="404" mnc="69" apn="gprsppsmum" user="mtnl" password="mtnl123" mmsc="http://172.16.39.140/mms/" mmsproxy="172.16.39.10" mmsport="9401" authtype="1" type="mms" />
- <apn carrier="MTNL MMS" mcc="404" mnc="69" apn="gprsppsdel" user="mtnl" password="mtnl123" mmsc="http://172.16.39.140/mms/" mmsproxy="172.16.39.10" mmsport="9201" authtype="1" type="mms" />
- <apn carrier="MTNL GPRS" mcc="404" mnc="69" apn="gprsppsmum" user="mtnl" password="mtnl123" type="default,supl" />
- <apn carrier="MTNL" mcc="404" mnc="69" apn="mtnl.net" proxy="10.10.10.10" port="9401" user="mtnl" password="mtnl123" type="default,supl" />
- <apn carrier="MTNL MMS" mcc="404" mnc="69" apn="mtnl.net" user="mtnl" password="mtnl123" mmsc="http://mtnlmms/" mmsproxy="10.10.10.10" mmsport="9401" type="mms" />
- <apn carrier="Airtel GPRS" mcc="404" mnc="70" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="404" mnc="70" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="404" mnc="70" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="71" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="71" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="71" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="71" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="71" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="72" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="72" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="72" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="72" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="72" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="73" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="73" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="73" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="73" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="73" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="74" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="74" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="74" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="74" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="74" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="75" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="75" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="75" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="75" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="75" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="76" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="76" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="76" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="76" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="76" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="77" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="77" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="77" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="77" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="77" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="IDEA Internet" mcc="404" mnc="78" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="404" mnc="78" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="404" mnc="78" 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="78" apn="mobile" type="default,supl" />
- <apn carrier="BSNL NET" mcc="404" mnc="79" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="79" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="79" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="80" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="80" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="80" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="80" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="80" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL NET" mcc="404" mnc="81" apn="bsnlnet" type="default,supl" />
- <apn carrier="BSNL WAP" mcc="404" mnc="81" apn="WAPSOUTH.CELLONE.IN" proxy="10.31.54.2" port="9401" user="PPP" password="PPP123" type="default,supl" />
- <apn carrier="BSNL-mms" mcc="404" mnc="81" apn="bsnlmms" proxy="10.210.10.11" port="8080" mmsc="http://bsnlmmsc.in:8514" mmsproxy="10.210.10.11" mmsport="8080" type="mms" />
- <apn carrier="BSNL" mcc="404" mnc="81" apn="bsnlnet" user="MSISDN" password="MSISDN" type="default,supl" />
- <apn carrier="BSNL MMS" mcc="404" mnc="81" apn="mmssouth.cellone.in" user="MSISDN" password="mmsc" mmsc="http://10.7.236.11:8514" mmsproxy="10.7.236.11" mmsport="8080" type="mms" />
- <apn carrier="IDEA Internet" mcc="404" mnc="82" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="404" mnc="82" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="404" mnc="82" 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="82" apn="mobile" type="default,supl" />
- <apn carrier="NetConnect" mcc="404" mnc="83" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="404" mnc="83" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="404" mnc="83" 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="404" mnc="83" 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="Vodafone" mcc="404" mnc="84" 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="84" 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="84" apn="www" type="default,supl" />
- <apn carrier="NetConnect" mcc="404" mnc="85" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="404" mnc="85" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="404" mnc="85" 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="404" mnc="85" 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="Vodafone" mcc="404" mnc="86" 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="86" 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="86" apn="www" type="default,supl" />
- <apn carrier="IDEA Internet" mcc="404" mnc="87" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="404" mnc="87" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="404" mnc="87" 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="87" apn="mobile" type="default,supl" />
- <apn carrier="Vodafone" mcc="404" mnc="88" 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="88" 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="88" apn="www" type="default,supl" />
- <apn carrier="IDEA Internet" mcc="404" mnc="89" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="404" mnc="89" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="404" mnc="89" 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="89" apn="mobile" type="default,supl" />
- <apn carrier="Airtel GPRS" mcc="404" mnc="90" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="404" mnc="90" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="404" mnc="90" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Aircel Online" mcc="404" mnc="91" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="404" mnc="91" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="404" mnc="91" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="404" mnc="91" apn="aircelwap" type="default,supl" />
- <apn carrier="Aircel" mcc="404" mnc="91" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="404" mnc="91" apn="aircelmms" proxy="172.17.83.69" port="8080" mmsc="http://172.17.83.67//servlets/mms" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Airtel GPRS" mcc="404" mnc="92" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="404" mnc="92" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="404" mnc="92" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Airtel GPRS" mcc="404" mnc="93" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="404" mnc="93" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="404" mnc="93" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Airtel GPRS" mcc="404" mnc="94" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="404" mnc="94" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="404" mnc="94" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Airtel GPRS" mcc="404" mnc="95" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="404" mnc="95" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="404" mnc="95" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Airtel GPRS" mcc="404" mnc="96" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="404" mnc="96" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="404" mnc="96" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Airtel Live" mcc="404" mnc="97" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="404" mnc="97" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <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="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" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="25" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="25" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="25" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="26" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="26" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="26" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="26" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="26" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="26" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="27" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="27" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="27" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="27" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="27" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="27" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="28" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="28" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="28" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="28" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="29" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="29" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="29" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <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="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" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="30" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="30" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="30" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="31" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="31" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="31" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="31" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="31" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="31" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="32" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="32" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="32" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="32" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="32" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="32" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="33" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="33" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="33" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="33" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="33" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="33" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="34" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="34" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="34" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="34" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="34" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="34" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="35" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="35" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="35" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="35" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="35" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="35" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="36" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="36" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="36" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="36" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="36" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="36" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="37" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="37" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="37" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="37" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="37" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="37" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="38" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="38" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="38" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="38" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="38" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="38" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="39" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="39" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="39" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <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="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" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="40" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="40" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="40" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="41" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="41" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="41" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="41" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="41" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="41" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="42" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="42" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="42" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="42" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="42" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="42" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="43" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="43" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="43" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="43" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="43" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="43" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="44" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="44" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="44" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="44" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="44" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="44" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="45" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="45" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="45" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="45" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="45" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="45" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="46" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="46" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="46" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="Tata Docomo 3G" mcc="405" mnc="46" apn="tatadocomo3g" type="default,supl" />
- <apn carrier="TA TA DoCoMo" mcc="405" mnc="46" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TA TA DoCoMo MMS" mcc="405" mnc="46" apn="TATA.DOCOMO.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <apn carrier="TATA DOCOMO INTERNET" mcc="405" mnc="47" apn="TATA.DOCOMO.INTERNET" type="default,supl" />
- <apn carrier="TATA GPRS" mcc="405" mnc="47" apn="Tata.Docomo.Dive.in" proxy="10.124.94.7" port="8080" type="default,supl" />
- <apn carrier="Tata MMS" mcc="405" mnc="47" apn="Tata.Docomo.MMS" mmsc="http://mmsc/" mmsproxy="10.124.26.94" mmsport="8799" type="mms" />
- <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="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="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" />
- <apn carrier="Reliance MMS" mcc="405" mnc="10" 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="11" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="405" mnc="11" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="405" mnc="11" 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="11" 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="12" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="405" mnc="12" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="405" mnc="12" 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="12" 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="13" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="405" mnc="13" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="405" mnc="13" 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="13" 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="14" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="405" mnc="14" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="405" mnc="14" 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="14" 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="15" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="405" mnc="15" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="405" mnc="15" 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="15" 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="17" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="405" mnc="17" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="405" mnc="17" 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="17" 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="18" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="405" mnc="18" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="405" mnc="18" 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="18" 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="19" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="405" mnc="19" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="405" mnc="19" 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="19" 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="20" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="405" mnc="20" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="405" mnc="20" 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="20" 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="21" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="405" mnc="21" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="405" mnc="21" 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="21" 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="22" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="405" mnc="22" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="405" mnc="22" 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="22" 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="23" apn="rcomnet" type="default,supl" />
- <apn carrier="Reliance GPRS" mcc="405" mnc="23" apn="rcomwap" proxy="10.239.221.5" port="8080" type="default,supl" />
- <apn carrier="Smart MMS" mcc="405" mnc="23" 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="23" 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="Airtel GPRS" mcc="405" mnc="51" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="405" mnc="51" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="405" mnc="51" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Airtel MMS" mcc="405" mnc="51" 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="405" mnc="52" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="405" mnc="52" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="405" mnc="52" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Airtel MMS" mcc="405" mnc="52" 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="405" mnc="53" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="405" mnc="53" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="405" mnc="53" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Airtel MMS" mcc="405" mnc="53" 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="405" mnc="54" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="405" mnc="54" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="405" mnc="54" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Airtel MMS" mcc="405" mnc="54" 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="405" mnc="55" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="405" mnc="55" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="405" mnc="55" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Airtel MMS" mcc="405" mnc="55" 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="405" mnc="56" apn="airtelgprs.com" type="default,supl" />
- <apn carrier="Airtel Live" mcc="405" mnc="56" apn="airtelfun.com" proxy="100.1.200.99" port="8080" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="405" mnc="56" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" type="mms" />
- <apn carrier="Airtel MMS" mcc="405" mnc="56" apn="airtelmms.com" mmsc="http://100.1.201.171:10021/mmsc" mmsproxy="100.1.201.172" mmsport="8799" authtype="1" type="mms" />
- <apn carrier="Vodafone" mcc="405" mnc="66" 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="405" mnc="66" apn="portalnmms" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="mms" />
- <apn carrier="Vodafone IN" mcc="405" mnc="66" apn="www" type="default,supl" />
- <apn carrier="Vodafone" mcc="405" mnc="67" 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="405" mnc="67" apn="portalnmms" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="mms" />
- <apn carrier="Vodafone IN" mcc="405" mnc="67" apn="www" type="default,supl" />
- <apn carrier="IDEA Internet" mcc="405" mnc="70" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="405" mnc="70" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="70" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Mobile" mcc="405" mnc="70" apn="mobile" type="default,supl" />
- <apn carrier="IDEA" mcc="405" mnc="70" apn="internet" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="70" apn="mmsc" mmsc="http://10.4.42.21:8002/" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="Vodafone" mcc="405" mnc="750" 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="405" mnc="750" apn="portalnmms" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="mms" />
- <apn carrier="Vodafone IN" mcc="405" mnc="750" apn="www" type="default,supl" />
- <apn carrier="Vodafone" mcc="405" mnc="751" 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" mcc="405" mnc="751" apn="www" type="default,supl" />
- <apn carrier="Vodafone" mcc="405" mnc="752" 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="405" mnc="752" apn="portalnmms" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="mms" />
- <apn carrier="Vodafone IN" mcc="405" mnc="752" apn="www" type="default,supl" />
- <apn carrier="Vodafone" mcc="405" mnc="753" 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="405" mnc="753" apn="portalnmms" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="mms" />
- <apn carrier="Vodafone IN" mcc="405" mnc="753" apn="www" type="default,supl" />
- <apn carrier="Vodafone" mcc="405" mnc="754" 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="405" mnc="754" apn="portalnmms" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="mms" />
- <apn carrier="Vodafone IN" mcc="405" mnc="754" apn="www" type="default,supl" />
- <apn carrier="Vodafone" mcc="405" mnc="755" 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="405" mnc="755" apn="portalnmms" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="mms" />
- <apn carrier="Vodafone IN" mcc="405" mnc="755" apn="www" type="default,supl" />
- <apn carrier="Vodafone" mcc="405" mnc="756" 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="405" mnc="756" apn="portalnmms" mmsc="http://mms1.live.vodafone.in/mms/" mmsproxy="10.10.1.100" mmsport="9401" type="mms" />
- <apn carrier="Vodafone IN" mcc="405" mnc="756" apn="www" type="default,supl" />
- <apn carrier="IDEA Internet" mcc="405" mnc="799" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="405" mnc="799" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="799" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Mobile" mcc="405" mnc="799" apn="mobile" type="default,supl" />
- <apn carrier="IDEA" mcc="405" mnc="799" apn="internet" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="799" apn="mmsc" mmsc="http://10.4.42.21:8002/" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="Aircel Online" mcc="405" mnc="800" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="405" mnc="800" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="800" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="405" mnc="800" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="800" apn="aircelmms" proxy="172.17.83.69" port="8080" mmsc="http://172.17.83.67//servlets/mms" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel Online" mcc="405" mnc="801" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="405" mnc="801" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="801" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="405" mnc="801" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="801" apn="aircelmms" proxy="172.17.83.69" port="8080" mmsc="http://172.17.83.67//servlets/mms" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel Online" mcc="405" mnc="802" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="405" mnc="802" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="802" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="405" mnc="802" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="802" apn="aircelmms" proxy="172.17.83.69" port="8080" mmsc="http://172.17.83.67//servlets/mms" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel Online" mcc="405" mnc="803" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="405" mnc="803" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="803" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="405" mnc="803" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="803" apn="aircelmms" proxy="172.17.83.69" port="8080" mmsc="http://172.17.83.67//servlets/mms" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel Online" mcc="405" mnc="804" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="405" mnc="804" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="804" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="405" mnc="804" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="804" apn="aircelmms" proxy="172.17.83.69" port="8080" mmsc="http://172.17.83.67//servlets/mms" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel Online" mcc="405" mnc="805" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="405" mnc="805" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="805" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="405" mnc="805" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="805" apn="aircelmms" proxy="172.17.83.69" port="8080" mmsc="http://172.17.83.67//servlets/mms" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel Online" mcc="405" mnc="806" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="405" mnc="806" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="806" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="405" mnc="806" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="806" apn="aircelmms" proxy="172.17.83.69" port="8080" mmsc="http://172.17.83.67//servlets/mms" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel Online" mcc="405" mnc="807" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="405" mnc="807" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="807" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="405" mnc="807" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="807" apn="aircelmms" proxy="172.17.83.69" port="8080" mmsc="http://172.17.83.67//servlets/mms" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel Online" mcc="405" mnc="808" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="405" mnc="808" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="808" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="405" mnc="808" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="808" apn="aircelmms" proxy="172.17.83.69" port="8080" mmsc="http://172.17.83.67//servlets/mms" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel Online" mcc="405" mnc="809" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="405" mnc="809" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="809" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="405" mnc="809" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="809" apn="aircelmms" proxy="172.17.83.69" port="8080" mmsc="http://172.17.83.67//servlets/mms" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel Online" mcc="405" mnc="810" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="405" mnc="810" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="810" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="405" mnc="810" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="810" apn="aircelmms" proxy="172.17.83.69" port="8080" mmsc="http://172.17.83.67//servlets/mms" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel Online" mcc="405" mnc="811" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="405" mnc="811" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="811" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="405" mnc="811" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="811" apn="aircelmms" proxy="172.17.83.69" port="8080" mmsc="http://172.17.83.67//servlets/mms" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel Online" mcc="405" mnc="812" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel GPRS" mcc="405" mnc="812" apn="aircelwap" proxy="172.17.83.69" port="8080" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="812" apn="aircelmms" mmsc="http://172.17.83.67/servlets/mms/" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Aircel" mcc="405" mnc="812" apn="aircelgprs" type="default,supl" />
- <apn carrier="Aircel MMS" mcc="405" mnc="812" apn="aircelmms" proxy="172.17.83.69" port="8080" mmsc="http://172.17.83.67//servlets/mms" mmsproxy="172.17.83.69" mmsport="8080" type="mms" />
- <apn carrier="Uninor" mcc="405" mnc="813" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="813" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="814" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="814" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="816" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="816" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="817" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="817" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="818" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="818" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="819" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="819" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="820" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="820" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="821" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="821" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="822" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="822" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="844" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="844" apn="Uninor" type="default,supl" />
- <apn carrier="IDEA Internet" mcc="405" mnc="845" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="405" mnc="845" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="845" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Mobile" mcc="405" mnc="845" apn="mobile" type="default,supl" />
- <apn carrier="IDEA" mcc="405" mnc="845" apn="internet" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="845" apn="mmsc" mmsc="http://10.4.42.21:8002/" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Internet" mcc="405" mnc="846" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="405" mnc="846" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="846" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Mobile" mcc="405" mnc="846" apn="mobile" type="default,supl" />
- <apn carrier="IDEA" mcc="405" mnc="846" apn="internet" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="846" apn="mmsc" mmsc="http://10.4.42.21:8002/" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Internet" mcc="405" mnc="847" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="405" mnc="847" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="847" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Mobile" mcc="405" mnc="847" apn="mobile" type="default,supl" />
- <apn carrier="IDEA" mcc="405" mnc="847" apn="internet" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="847" apn="mmsc" mmsc="http://10.4.42.21:8002/" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Internet" mcc="405" mnc="848" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="405" mnc="848" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="848" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Mobile" mcc="405" mnc="848" apn="mobile" type="default,supl" />
- <apn carrier="IDEA" mcc="405" mnc="848" apn="internet" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="848" apn="mmsc" mmsc="http://10.4.42.21:8002/" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Internet" mcc="405" mnc="849" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="405" mnc="849" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="849" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Mobile" mcc="405" mnc="849" apn="mobile" type="default,supl" />
- <apn carrier="IDEA" mcc="405" mnc="849" apn="internet" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="849" apn="mmsc" mmsc="http://10.4.42.21:8002/" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Internet" mcc="405" mnc="850" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="405" mnc="850" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="850" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Mobile" mcc="405" mnc="850" apn="mobile" type="default,supl" />
- <apn carrier="IDEA" mcc="405" mnc="850" apn="internet" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="850" apn="mmsc" mmsc="http://10.4.42.21:8002/" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Internet" mcc="405" mnc="851" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="405" mnc="851" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="851" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Mobile" mcc="405" mnc="851" apn="mobile" type="default,supl" />
- <apn carrier="IDEA" mcc="405" mnc="851" apn="internet" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="851" apn="mmsc" mmsc="http://10.4.42.21:8002/" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Internet" mcc="405" mnc="852" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="405" mnc="852" apn="imis" proxy="10.4.42.15" port="8080" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="852" apn="mmsc" mmsc="http://10.4.42.21:8002" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Mobile" mcc="405" mnc="852" apn="mobile" type="default,supl" />
- <apn carrier="IDEA" mcc="405" mnc="852" apn="internet" type="default,supl" />
- <apn carrier="IDEA MMS" mcc="405" mnc="852" apn="mmsc" mmsc="http://10.4.42.21:8002/" mmsproxy="10.4.42.15" mmsport="8080" type="mms" />
- <apn carrier="IDEA Internet" mcc="405" mnc="853" apn="internet" type="default,supl" />
- <apn carrier="IDEA Wap" mcc="405" mnc="853" apn="imis" proxy="10.4.42.15" port="8080" 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="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="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" />
- <apn carrier="Uninor Internet" mcc="405" mnc="876" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="877" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="877" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="878" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="878" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="879" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="879" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="880" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="880" apn="Uninor" type="default,supl" />
- <apn carrier="SPICE" mcc="405" mnc="908" apn="spicegprs" type="default,supl" />
- <apn carrier="SPICE MMS" mcc="405" mnc="908" apn="spicemms" user="User Mobile number" password="spice" mmsc="http://10.200.200.3:8514" mmsproxy="10.200.200.3" mmsport="8080" type="mms" />
- <apn carrier="SPICE" mcc="405" mnc="909" apn="spicegprs" type="default,supl" />
- <apn carrier="SPICE MMS" mcc="405" mnc="909" apn="spicemms" user="User Mobile number" password="spice" mmsc="http://10.200.200.3:8514" mmsproxy="10.200.200.3" mmsport="8080" type="mms" />
- <apn carrier="SPICE" mcc="405" mnc="910" apn="spicegprs" type="default,supl" />
- <apn carrier="SPICE MMS" mcc="405" mnc="910" apn="spicemms" user="User Mobile number" password="spice" mmsc="http://10.200.200.3:8514" mmsproxy="10.200.200.3" mmsport="8080" type="mms" />
- <apn carrier="SPICE" mcc="405" mnc="911" apn="spicegprs" type="default,supl" />
- <apn carrier="SPICE MMS" mcc="405" mnc="911" apn="spicemms" user="User Mobile number" password="spice" mmsc="http://10.200.200.3:8514" mmsproxy="10.200.200.3" mmsport="8080" type="mms" />
- <apn carrier="Uninor" mcc="405" mnc="925" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="925" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="926" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="926" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="927" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="927" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="928" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="928" apn="Uninor" type="default,supl" />
- <apn carrier="Uninor" mcc="405" mnc="929" apn="Uninor" proxy="10.58.10.58" port="8080" type="default,supl" />
- <apn carrier="Uninor Internet" mcc="405" mnc="929" apn="Uninor" type="default,supl" />
- <apn carrier="Mobilink" mcc="410" mnc="01" apn="connect.mobilinkworld.com" type="default,supl" />
- <apn carrier="Mobilink MMS" mcc="410" mnc="01" apn="mms.mobilinkworld.com" user="mobilink" password="mobilink" mmsc="http://mms" mmsproxy="172.25.20.12" mmsport="8080" type="mms" />
- <apn carrier="Ufone MMS" mcc="410" mnc="03" apn="ufone.mms" mmsc="http://www.ufone.com" mmsproxy="172.16.13.27" mmsport="8080" type="mms" />
- <apn carrier="Ufone" mcc="410" mnc="03" apn="ufone.pinternet" type="default,supl" />
- <apn carrier="Zong" mcc="410" mnc="04" apn="zonginternet" type="default,supl" />
- <apn carrier="Zong MMS" mcc="410" mnc="04" apn="zongmms" mmsc="10.81.6.11" mmsproxy="10.81.6.11" mmsport="8080" type="mms" />
- <apn carrier="Telenor PK" mcc="410" mnc="06" apn="internet" user="Telenor" password="Telenor" type="default,supl" />
- <apn carrier="Telenor PK MMS" mcc="410" mnc="06" apn="mms" user="Telenor" password="Telenor" mmsc="http://mmstelenor" mmsproxy="172.18.19.11" mmsport="8080" type="mms" />
- <apn carrier="Warid PK MMS" mcc="410" mnc="07" apn="mms.warid" mmsc="http://10.4.0.132/servlets/MMS" mmsproxy="10.4.2.1" mmsport="8080" type="mms" />
- <apn carrier="Warid PK" mcc="410" mnc="07" apn="warid" type="default,supl" />
- <apn carrier="Axis" mcc="410" mnc="08" apn="axis" user="axis" password="123456" type="default,supl" />
- <apn carrier="AWCC" mcc="412" mnc="01" apn="internet" type="default,supl" />
- <apn carrier="AWCC MMS" mcc="412" mnc="01" apn="mms1" mmsc="http://172.17.81.2:8002" mmsproxy="172.17.81.2" mmsport="8002" type="mms" />
- <apn carrier="Roshan" mcc="412" mnc="20" apn="internet" user="gprs" password="roshan" type="default,supl" />
- <apn carrier="Roshan MMS" mcc="412" mnc="20" apn="mms" mmsc="http://mms.roshan.af" mmsproxy="172.31.37.16" mmsport="8080" type="mms" />
- <apn carrier="MTN Internet" mcc="412" mnc="40" apn="internet.mtn.com.af" type="default,supl" />
- <apn carrier="MTN MMS" mcc="412" mnc="40" apn="mms.mtn.com.af" mmsc="http://192.168.4.136/servlets/mms" mmsproxy="192.168.4.136" mmsport="8080" type="mms" />
- <apn carrier="Etisalat" mcc="412" mnc="50" apn="etisalat.af.web" type="default,supl" />
- <apn carrier="Etisalat WAP" mcc="412" mnc="50" apn="etisalat.af.wap" proxy="10.0.0.172" port="80" type="default,supl" />
- <apn carrier="Etisalat MMS" mcc="412" mnc="50" apn="etisalat.af.mms" proxy="10.0.0.172" port="80" type="mms" />
- <apn carrier="Mobitel" mcc="413" mnc="01" apn="mobitel3g" type="default,supl" />
- <apn carrier="Mobitel MMS" mcc="413" mnc="01" apn="wapmms" mmsc="http://192.168.50.165" mmsproxy="192.168.50.163" mmsport="8080" type="mms" />
- <apn carrier="Mobitel WAP" mcc="413" mnc="01" apn="mobitel3g" proxy="192.168.050.163" port="8080" type="default,supl" />
- <apn carrier="Dialog Mobile Broadband" mcc="413" mnc="02" apn="dialogbb" server="dialog" mmsc="http://mms.dialog.lk:3130/mmsc" mmsproxy="192.168.122.2" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Dialog WAP Prepaid" mcc="413" mnc="02" apn="ppwap" proxy="192.168.122.2" mmsport="8080" type="default,supl" />
- <apn carrier="Dialog Internet Prepaid" mcc="413" mnc="02" apn="www.dialogsl.com" proxy="192.168.122.2" port="8080" type="default,supl" />
- <apn carrier="Dialog Internet Postpaid" mcc="413" mnc="02" apn="dialogbb" type="default,supl" />
- <apn carrier="Dialog MMS Prepaid" mcc="413" mnc="02" apn="ppwap" mmsc="http://mms.dialog.lk:3130/mmsc" mmsproxy="192.168.122.2" type="mms" />
- <apn carrier="Dialog MMS Postpaid" mcc="413" mnc="02" apn="www.dialogsl.com" mmsc="http://mms.dialog.lk:3130/mmsc" mmsproxy="192.168.122.2" type="mms" />
- <apn carrier="Etisalat" mcc="413" mnc="03" apn="ebb" type="default,supl" />
- <apn carrier="Etisalat MMS" mcc="413" mnc="03" apn="mms" mmsc="http://mms.etisalt.lk:8085" mmsproxy="192.168.104.4" mmsport="9401" type="mms" />
- <apn carrier="Etisalat Internet Prepaid" mcc="413" mnc="03" apn="web" type="default,supl" />
- <apn carrier="Etisalat Internet Postpaid" mcc="413" mnc="03" apn="internet" type="default,supl" />
- <apn carrier="Etisalat WAP" mcc="413" mnc="03" apn="wap" proxy="192.168.104.4" port="9401" type="default,supl" />
- <apn carrier="Airtel Postpaid" mcc="413" mnc="05" apn="airteldata" type="default,supl" />
- <apn carrier="Airtel MMS" mcc="413" mnc="05" apn="airtellive" mmsc="http://mms.airtel.lk" mmsproxy="10.200.184.86" mmsport="8080" type="mms" />
- <apn carrier="Airtel Prepaid" mcc="413" mnc="05" apn="airtellive" type="default,supl" />
- <apn carrier="Airtel" mcc="413" mnc="05" apn="default" type="default,supl" />
- <apn carrier="Hutch3G" mcc="413" mnc="08" apn="hutch3g" type="default,supl" />
- <apn carrier="Hutch WAP" mcc="413" mnc="08" apn="hutch3g" proxy="10.220.135.249" port="8080" type="default,supl" />
- <apn carrier="MPT" mcc="414" mnc="01" apn="mptnet" user="mptnet" password="mptnet" type="default,supl" />
- <apn carrier="ALFA_WAP" mcc="415" mnc="01" apn="wap.mic1.com.lb" proxy="192.168.23.50" port="80" user="mic1" password="mic1" type="default,supl" />
- <apn carrier="ALFA_INTERNET" mcc="415" mnc="01" apn="internet.mic1.com.lb" type="default,supl" />
- <apn carrier="Alfa" mcc="415" mnc="01" apn="internet.mic1.com.lb" user="mic1" password="mic1" type="default,supl" />
- <apn carrier="Alfa MMS" mcc="415" mnc="01" apn="mms.mic1.com.lb" user="mic1" password="mic1" mmsc="http://mms.mic1.com.lb" mmsproxy="192.168.23.51" mmsport="9201" type="mms" />
- <apn carrier="Alfa WAP" mcc="415" mnc="01" apn="wap.mic1.com.lb" user="mic1" password="mic1" proxy="192.168.23.50" port="80" type="default,supl" />
- <apn carrier="mtcgprs" mcc="415" mnc="03" apn="gprs.mtctouch.com.lb" type="default,supl" />
- <apn carrier="mtc touch" mcc="415" mnc="03" apn="gprs.mtctouch.com.lb" type="default,supl" />
- <apn carrier="mtc touch MMS" mcc="415" mnc="03" apn="mms.mtctouch.com.lb" user="mtctouch" mmsc="http://mms:8080/mms/" mmsproxy="192.168.4.103" mmsport="9201" type="mms" />
- <apn carrier="Alfa WAP" mcc="415" mnc="03" apn="wap.mic1.com.lb" user="mic1" password="mic1" proxy="192.168.023.050" port="80" type="default,supl" />
- <apn carrier="Alfa MMS" mcc="415" mnc="03" apn="mms.mic1.com.lb" user="mic1" password="mic1" mmsc="http://mms.mic1.com.lb" mmsproxy="192.168.23.51" mmsport="9201" type="mms" />
- <apn carrier="Zain JO Postpaid" mcc="416" mnc="01" apn="internet" type="default,supl" />
- <apn carrier="Zain JO Prepaid" mcc="416" mnc="01" apn="internetpre" user="zain" password="zain" type="default,supl" />
- <apn carrier="Zain JO WAP" mcc="416" mnc="01" apn="zain" user="zain" password="zain" proxy="192.168.55.10" port="80" type="default,supl" />
- <apn carrier="Zain JO Internet" mcc="416" mnc="01" apn="zain" user="zain" password="zain" type="default,supl" />
- <apn carrier="Zain JO MMS" mcc="416" mnc="01" apn="mms" user="mms" password="mms" mmsc="http://mms.jo.zain.com" mmsproxy="192.168.55.10" mmsport="80" type="mms" />
- <apn carrier="Umniah MMS" mcc="416" mnc="03" apn="mms" mmsc="http://mms.umniah.com/" mmsproxy="10.1.1.10" mmsport="9201" type="mms" />
- <apn carrier="Umniah" mcc="416" mnc="03" apn="net" type="default,supl" />
- <apn carrier="Orange WAP" mcc="416" mnc="77" apn="Wap.orange.jo" proxy="172.16.1.2" port="8080" user="wap" password="wap" authtype="3" type="default,supl" />
- <apn carrier="Orange Internet" mcc="416" mnc="77" apn="net.orange.jo" user="net" password="net" type="default,supl" />
- <apn carrier="Orange MMS" mcc="416" mnc="77" apn="mms.orange.jo" user="mmc" password="mmc" mmsc="http://172.16.1.96/servlets/mms" mmsproxy="172.16.1.2" mmsport="8080" authtype="3" type="mms" />
- <apn carrier="Orange JO MMS" mcc="416" mnc="77" apn="mms.orangemobile.jo" proxy="" port="" user="mmc" password="mmc" mmsc="http://172.16.1.96/servlets/mms" mmsproxy="172.16.1.2" mmsport="8080" type="mms" />
- <apn carrier="Syriatel MMS" mcc="417" mnc="01" apn="mms.syriatel.com" mmsc="http://mymms.syriatel.com/" mmsproxy="172.20.5.6" mmsport="9201" type="mms" />
- <apn carrier="Syriatel" mcc="417" mnc="01" apn="net.syriatel.com" type="default,supl" />
- <apn carrier="MTN Syria" mcc="417" mnc="02" apn="internet" type="default,supl" />
- <apn carrier="MTN SY" mcc="417" mnc="02" apn="internet" type="default,supl" />
- <apn carrier="MTN SY MMS" mcc="417" mnc="02" apn="mms" mmsc="http://10.11.161.138/:10021/mmsc" mmsproxy="10.11.161.131" mmsport="8080" type="mms" />
- <apn carrier="Asiacell" mcc="418" mnc="05" apn="net.asiacell.com" type="default,supl" />
- <apn carrier="Asiacell MMS" mcc="418" mnc="05" apn="wap.asiacell.com" mmsc="http://192.168.107.10:19090/was" mmsproxy="192.168.107.50" mmsport="8080" type="mms" />
- <apn carrier="SanaTel" mcc="418" mnc="08" apn="default" type="default,supl" />
- <apn carrier="Zain-GPRS" mcc="418" mnc="20" apn="internet" user="atheer" password="atheer" type="default,supl" />
- <apn carrier="Zain-MMS" mcc="418" mnc="20" apn="MMS" user="atheer" password="atheer" mmsc="http://mms:8002/" mmsproxy="172.29.11.12" mmsport="8080" type="mms" />
- <apn carrier="Zain-GPRS" mcc="418" mnc="30" apn="internet" user="atheer" password="atheer" type="default,supl" />
- <apn carrier="Zain-MMS" mcc="418" mnc="30" apn="MMS" user="atheer" password="atheer" mmsc="http://mms:8002/" mmsproxy="172.29.11.12" mmsport="8080" type="mms" />
- <apn carrier="net.korek.com" mcc="418" mnc="40" apn="net.korek.com" user="korek" password="korek" type="default,supl" />
- <apn carrier="Korek" mcc="418" mnc="40" apn="internet.korek.com" type="default,supl" />
- <apn carrier="Korek GPRS" mcc="418" mnc="40" apn="net.korek.com" user="korek" password="korek" type="default,supl" />
- <apn carrier="Korek MMS" mcc="418" mnc="40" apn="mms.korek.com" user="korek" password="korek" mmsc="http://mms.korektel.com/mms/wapenc" mmsproxy="192.168.18.187" mmsport="8080" type="mms" />
- <apn carrier="Mobitel IQ" mcc="418" mnc="45" apn="default" type="default,supl" />
- <apn carrier="Itisaluna" mcc="418" mnc="62" apn="default" type="default,supl" />
- <apn carrier="Newroz" mcc="418" mnc="66" apn="Newroz" user="reber" password="reber" type="default,supl" />
- <apn carrier="Omnnea" mcc="418" mnc="92" apn="default" type="default,supl" />
- <apn carrier="MI" mcc="419" mnc="02" apn="pps" user="pps" password="pps" type="default,supl" />
- <apn carrier="MTC Vodafone KW" mcc="419" mnc="02" apn="apn01" type="default,supl" />
- <apn carrier="MTC Vodafone KW MMS" mcc="419" mnc="02" apn="mms" user="annyway" password="online" mmsc="http://176.000.000.021" mmsproxy="176.0.0.65" mmsport="8080" type="mms" />
- <apn carrier="Zain KW" mcc="419" mnc="02" apn="pps" user="pps" password="pps" type="default,supl" />
- <apn carrier="Zain KW MMS" mcc="419" mnc="02" apn="pps" user="mms" password="mms" mmsc="http://mms.zain" mmsproxy="176.0.0.65" mmsport="8080" type="mms" />
- <apn carrier="Wataniya Internet" mcc="419" mnc="03" apn="action.wataniya.com" type="*" />
- <apn carrier="wataniya" mcc="419" mnc="03" apn="action.wataniya.com" type="default,supl" />
- <apn carrier="wataniya MMS" mcc="419" mnc="03" apn="mms.wataniya.com" mmsc="http://action.wataniya.com" mmsproxy="194.126.053.064" mmsport="8080" type="mms" />
- <apn carrier="Viva KW" mcc="419" mnc="04" apn="viva" type="default,supl" />
- <apn carrier="Viva KW MMS" mcc="419" mnc="04" apn="viva" mmsc="http://172.16.128.80:38090/was" mmsproxy="172.16.128.228" mmsport="8080" type="mms" />
- <apn carrier="AL JA WAL" mcc="420" mnc="01" apn="jawalnet.com.sa" type="default,supl" />
- <apn carrier="AL JA WAL MMS" mcc="420" mnc="01" apn="mms.net.sa" mmsc="http://mms.net.sa:8002" mmsproxy="10.1.1.1" mmsport="9201" type="mms" />
- <apn carrier="Mobily MMS" mcc="420" mnc="03" apn="mms1" mmsc="http://10.3.3.133:9090/was" mmsproxy="10.3.2.133" mmsport="9201" type="mms" />
- <apn carrier="Mobily" mcc="420" mnc="03" apn="web1" type="default,supl" />
- <apn carrier="ZAIN-WAP" mcc="420" mnc="04" apn="zain" proxy="10.122.200.10" port="8080" type="default,supl" />
- <apn carrier="ZAIN-MMS" mcc="420" mnc="04" apn="zain" mmsproxy="10.122.200.10" mmsport="8080" mmsc="http:// 10.122.200.12:8002" type="mms" />
- <apn carrier="ZAIN-WEB" mcc="420" mnc="04" apn="zain" type="default,supl" />
- <apn carrier="Zain SA" mcc="420" mnc="04" apn="zain" mmsc="http://10.122.200.12:8002" mmsproxy="10.122.200.10" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Softbank(internet)" mcc="420" mnc="20" apn="andglobal.softbank.ne.jp" proxy="" port="" user="andg001softbank" password="pumbbghkpgyysxa" mmsc="http://mms/" mmsproxy="andmms.softbank.ne.jp" mmsport="8080" type="default,mms" />
- <apn carrier="MTN WAP" mcc="421" mnc="02" apn="fast-wap" proxy="192.168.96.100" port="8080" type="default,supl" />
- <apn carrier="MTN NET" mcc="421" mnc="02" apn="fast-internet" type="default,supl" />
- <apn carrier="MTN MMS" mcc="421" mnc="02" apn="fast-mms" proxy="" port="" mmsproxy="192.168.97.1" mmsport="3130" mmsc="http://192.168.97.1/mmsc" type="mms" />
- <apn carrier="Oman Mobile" mcc="422" mnc="02" apn="taif" user="taif" password="taif" type="default,supl" />
- <apn carrier="MMS" mcc="422" mnc="02" apn="mms" proxy="" port="" mmsproxy="192.168.203.35" mmsport="8080" mmsc="http://mmsc.omanmobile.om:10021/mmsc" user="mms" password="mms" type="mms" />
- <apn carrier="omantel wap" mcc="422" mnc="02" apn="wap" proxy="192.168.203.34" port="8080" mmsc="" user="wap" password="wap" type="default,supl" />
- <apn carrier="Oman Mobile MMS" mcc="422" mnc="02" apn="mms" user="mms" password="mms" mmsc="http://mmsc.omanmobile.com:10021/mmsc" mmsproxy="192.168.203.35" mmsport="9201" type="mms" />
- <apn carrier="Oman Mobile" mcc="422" mnc="02" apn="wap" user="wap" password="wap" type="default,supl" />
- <apn carrier="Nawras" mcc="422" mnc="03" apn="isp.nawras.com.om" user="" password="" type="default,supl" />
- <apn carrier="nawras wap" mcc="422" mnc="03" apn="wap.nawras.com.om" proxy="10.128.240.19" port="8080" mmsc="" user="test" password="test" type="default,supl" />
- <apn carrier="nawras mms" mcc="422" mnc="03" apn="mms.nawras.com.om" proxy="" port="" mmsproxy="10.128.240.19" mmsport="8080" mmsc="http://10.128.240.16/servlets/mms" user="test" password="test" type="mms" />
- <apn carrier="Nawras" mcc="422" mnc="03" apn="isp.nawras.com.om" user="test" password="test" type="default,supl" />
- <apn carrier="Nawras MMS" mcc="422" mnc="03" apn="mms.nawras.com.om" user="test" password="test" proxy="10.128.240.19" port="8080" mmsc="http://10.128.240.16/servlets/mms" mmsproxy="10.128.240.19" mmsport="8080" type="mms" />
- <apn carrier="Etisalat internet" mcc="424" mnc="02" apn="etisalat.ae" user="" password="" type="default,supl" />
- <apn carrier="Etisalat MMS" mcc="424" mnc="02" apn="etisalat" proxy="" port="" mmsproxy="10.12.0.32" mmsport="8080" mmsc="http://mms/servlets/mms" user="" password="" authtype="1" type="mms" />
- <apn carrier="Etisalat WAP" mcc="424" mnc="02" apn="etisalat" proxy="10.12.0.32" port="8080" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="Etisalat UAE" mcc="424" mnc="02" apn="etisalat.ae" type="default,supl" authtype="1" />
- <apn carrier="Etisalat UAE MMS" mcc="424" mnc="02" apn="mms" user="mms" password="mms" mmsc="http://mms/servlets/mms" mmsproxy="10.12.0.32" mmsport="8080" type="mms" authtype="1" />
- <apn carrier="Du internet" mcc="424" mnc="03" apn="du" user="" password="" type="default,supl" />
- <apn carrier="Du MMS" mcc="424" mnc="03" apn="du" proxy="" port="" mmsproxy="10.19.18.4" mmsport="8080" mmsc="http://mms.du.ae:8002" user="" password="" authtype="1" type="mms" />
- <apn carrier="Du WAP" mcc="424" mnc="03" apn="du" proxy="10.19.18.4" port="8080" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="du" mcc="424" mnc="03" apn="du" mmsc="http://mms.du.ae" mmsproxy="10.19.18.4" mmsport="9201" type="default,supl,mms" />
- <apn carrier="3G Portal" mcc="425" mnc="01" apn="uwap.orange.co.il" mmsproxy="192.118.11.55" mmsport="8080" mmsc="http://192.168.220.15/servlets/mms" type="default,mms" />
- <apn carrier="3G Portal" mcc="425" mnc="01" apn="uwap.orange.co.il" port="8080" type="default,supl" />
- <apn carrier="MMS 3G" mcc="425" mnc="01" apn="uwap.orange.co.il" mmsc="http://192.168.220.15/servlets/mms" mmsport="8080" type="mms" />
- <apn carrier="Internet 3G" mcc="425" mnc="01" apn="modem.orange.net.il" type="default,supl" />
- <apn carrier="Orange IL" mcc="425" mnc="01" apn="internet" proxy="" port="" user="orange" password="orange" mmsc="" type="default,supl" />
- <apn carrier="Orange IL MMS" mcc="425" mnc="01" apn="wap.orange.co.il" proxy="" port="" user="" password="" mmsc="http://192.168.220.15/servlets/mms" mmsproxy="" mmsport="8080" type="mms" />
- <apn carrier="Vodafone MT" mcc="425" mnc="01" apn="Internet" proxy="" port="" user="" password="Internet" mmsc="" type="default,supl" />
- <apn carrier="Cellcom 3G" mcc="425" mnc="02" apn="internetg" type="default,supl" />
- <apn carrier="Cellcom MMS" mcc="425" mnc="02" apn="MMS" mmsproxy="172.31.29.38" mmsport="8080" mmsc="http://mms.cellcom.co.il" type="mms" />
- <apn carrier="CellCOM" mcc="425" mnc="02" apn="sphone" type="default,supl" />
- <apn carrier="CellCOM MMS" mcc="425" mnc="02" apn="mms" user="" password="" mmsc="http://mms.cellcom.co.il" mmsproxy="172.31.29.38" mmsport="8080" type="mms" />
- <apn carrier="Sphone Pelephone" mcc="425" mnc="03" apn="sphone.pelephone.net.il" user="pcl@3g" password="pcl" type="default,supl" />
- <apn carrier="Multimedia Pelephone" mcc="425" mnc="03" apn="mms.pelephone.net.il" user="pcl@3g" password="pcl" mmsproxy="10.170.252.104" mmsport="9093" mmsc="http://mmsu.pelephone.net.il/" type="mms" />
- <apn carrier="Pelephone" mcc="425" mnc="03" apn="internet.pelephone.net.il" user="pcl@3g" password="pcl" type="default,supl" />
- <apn carrier="Pelephone MMS" mcc="425" mnc="03" apn="mms.pelephone.net.il" user="pcl@3g" password="pcl" server="pelephone" mmsc="http://mmsu.pelephone.net.il" mmsproxy="10.170.9.54" mmsport="9093" type="mms" />
- <apn carrier="Rami Levy" mcc="425" mnc="03" apn="internet.rl" user="rl@3g" password="rl" type="default,supl" />
- <apn carrier="Rami Levey MMS" mcc="425" mnc="03" apn="internet.rl" user="rl@3g" password="rl" server="pelephone" mmsc="http://mmsu.pelephone.net.il" mmsproxy="10.170.9.54" mmsport="9093" type="mms" />
- <apn carrier="Pelephone Internet Static" mcc="425" mnc="03" apn="org.pelephone.net.il" user="pcl@rsingle" password="pcl" type="default,supl" />
- <apn carrier="Pelephone" mcc="425" mnc="03" apn="internet.pelephone.net.il" proxy="" port="" user="pcl@3g" password="pcl" mmsc="" type="default,supl" />
- <apn carrier="Pelephone MMS" mcc="425" mnc="03" apn="mms.pelephone.net.il" proxy="" port="" user="pcl@3g" password="pcl" server="pelephone" mmsc="http://mmsu.pelephone.net.il" mmsproxy="10.170.9.54" mmsport="9093" type="mms" />
- <apn carrier="Jawwal Internet" mcc="425" mnc="05" apn="internet" type="default,supl" />
- <apn carrier="Jawwal WAP" mcc="425" mnc="05" apn="wap" proxy="213.244.118.129" port="8080" type="default,supl" />
- <apn carrier="Jawwal MMS" mcc="425" mnc="05" apn="mms" mmsc="http://mms.jawwal.ps/servlets/mms" mmsproxy="213.244.118.129" mmsport="8080" type="mms" />
- <apn carrier="Hot Mobile" mcc="425" mnc="07" apn="net.hotm" type="default,supl" />
- <apn carrier="Hot Mobile MMS" mcc="425" mnc="07" apn="mms.hotm" mmsc="http://mms.hotmobile.co.il" mmsport="80" type="mms" />
- <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="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" />
- <apn carrier="VIVA WAP" mcc="426" mnc="04" apn="vivawap.bh" proxy="172.18.142.36" port="8080" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="VIVA MMS" mcc="426" mnc="04" apn="vivawap.bh" proxy="" port="" mmsproxy="172.18.142.36" mmsport="8080" mmsc="http://mms.viva.com.bh:38090 " user="" password="" type="mms" />
- <apn carrier="Viva BH" mcc="426" mnc="04" apn="viva.bh" type="default,supl" />
- <apn carrier="Viva BH MMS" mcc="426" mnc="04" apn="vivawap.bh" mmsc="http://mms.viva.com.bh:38090" mmsproxy="172.18.142.36" mmsport="8080" type="mms" />
- <apn carrier="Qtel gprs" mcc="427" mnc="01" apn="gprs.qtel" proxy="10.23.8.3" port="8080" type="default,supl" />
- <apn carrier="Qtel mms" apn="mms.qtel" mmsc="http://mmsr.qtelmms.qa" mmsproxy="10.23.8.3" mmsport="8080" mcc="427" mnc="01" type="mms" />
- <apn carrier="Q-tel MMS" mcc="427" mnc="01" apn="mms.qtel" user="mms" password="gprs" mmsc="http://mmsr.qtelmma.qa" mmsproxy="10.23.8.3" mmsport="9201" type="mms" />
- <apn carrier="Q-tel" mcc="427" mnc="01" apn="web.qtel" user="gprs" password="gprs" type="default,supl" />
- <apn carrier="VFQ MMS" mcc="427" mnc="02" apn="vodafone.com.qa" proxy="10.101.97.102" port="80" mmsc="http://mms.vodafone.com.qa/mmsc" mmsproxy="10.101.97.102" mmsport="80" authtype="1" type="*" />
- <apn carrier="VFQ Internet" mcc="427" mnc="02" apn="web.vodafone.com.qa" authtype="1" type="default,supl" />
- <apn carrier="WAP" mcc="427" mnc="02" apn="vodafone.com.qa" proxy="10.101.97.102" port="80" type="default,supl" />
- <apn carrier="Vodafone QA MMS" mcc="427" mnc="02" apn="vodafone.com.qa" mmsc="http://mms.vodafone.com.qa/mmsc" mmsproxy="10.101.97.102" mmsport="80" type="mms" />
- <apn carrier="Vodafone QA" mcc="427" mnc="02" apn="web.vodafone.com.qa" type="default,supl" />
- <apn carrier="GPRS APN" mcc="429" mnc="01" apn="ntwap" proxy="192.80.7.133" port="8000" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="WEB" mcc="429" mnc="01" apn="ntnet" user="" password="" type="default,supl" />
- <apn carrier="MMS" mcc="429" mnc="01" apn="ntmms" proxy="" port="" mmsproxy="192.80.7.133" mmsport="8000" mmsc="http://192.80.11.180" user="" password="" type="mms" />
- <apn carrier="Nepal Telecom Internet" mcc="429" mnc="01" apn="ntnet" type="default,supl" />
- <apn carrier="Nepal Telecom MMS" mcc="429" mnc="01" apn="ntmms" mmsc="http://192.80.11.180" mmsproxy="192.80.7.133" mmsport="8000" type="mms" />
- <apn carrier="WEB" mcc="429" mnc="02" apn="web" proxy="192.168.19.15" port="8080" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="MMS" mcc="429" mnc="02" apn="mms" proxy="" port="" mmsproxy="192.168.19.15" mmsport="8080" mmsc="http://192.168.19.15" user="" password="" type="mms" />
- <apn carrier="Nepal Telecom WAP" mcc="429" mnc="02" apn="ntwap" proxy="192.80.7.133" port="8000" type="default,supl" />
- <apn carrier="Ncell Internet" mcc="429" mnc="02" apn="web" type="default,supl" />
- <apn carrier="Ncell MMS" mcc="429" mnc="02" apn="mms" mmsc="http://192.168.19.15" mmsproxy="192.168.19.15" mmsport="8080" type="mms" />
- <apn carrier="Ncell WAP" mcc="429" mnc="02" apn="web" proxy="192.168.19.15" port="8080" type="default,supl" />
- <apn carrier="Rightel" mcc="432" mnc="20" apn="rightel" type="default,supl" />
- <apn carrier="Rightel MMS" mcc="432" mnc="20" apn="RighTel-WAP" mmsc="http://10.200.40.55:38090/was" mmsproxy="10.200.39.10" mmsport="8080" type="mms" />
- <apn carrier="IR-MCI" mcc="432" mnc="11" apn="mcinet" type="default,supl" />
- <apn carrier="IR-MCI MMS" mcc="432" mnc="20" apn="mcinet" mmsc="http://192.168.193.134:38090/was" mmsproxy="192.168.194.73" mmsport="8080" type="mms" />
- <apn carrier="Irancell" mcc="432" mnc="35" apn="irancell" type="default,supl" />
- <apn carrier="Irancell MMS" mcc="432" mnc="35" apn="irancell" mmsc="http://mms:8002" mmsproxy="10.131.26.138" mmsport="8080" 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" />
- <apn carrier="Ucell Internet" mcc="434" mnc="05" apn="internet" proxy="10.64.164.10" port="8080" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="Ucell MMS" mcc="434" mnc="05" apn="mms" proxy="" port="" mmsproxy="10.64.164.10" mmsport="8080" mmsc="http://mmsc:8002/" user="" password="" type="mms" />
- <apn carrier="Perfectum" mcc="434" mnc="06" apn="default" user="perfectum@perfectum.com" password="a" type="default,supl" />
- <apn carrier="MTS Internet" mcc="434" mnc="07" apn="net.mts.uz" user="mts" password="mts" authtype="1" type="default,supl" />
- <apn carrier="MTS MMS" mcc="434" mnc="07" apn="mms.mts.uz" proxy="" port="" mmsproxy="10.10.0.10" mmsport="8080" mmsc="http://mmsc/was" user="mts" password="mts" authtype="1" type="mms" />
- <apn carrier="em.std" mcc="440" mnc="00" apn="em.std" user="em" password="em" type="default,supl" bearer="14"/>
- <apn carrier="@nifty do LTE" mcc="440" mnc="10" apn="lte.fenics.jp" user="nifty@lte.nifty.com" password="nifty" authtype="3" type="default,supl" />
- <apn carrier="AsahiNet 3G" mcc="440" mnc="10" apn="3g.mobac.net" user="d@w3.asahinet.jp" password="0000" authtype="3" type="default,supl" />
- <apn carrier="AsahiNet 3G 128K" mcc="440" mnc="10" apn="3g.mobac.net" user="d@x3.asahinet.jp" password="0000" authtype="3" type="default,supl" />
- <apn carrier="AsahiNet LTE" mcc="440" mnc="10" apn="lte.mobac.net" user="d@w.asahinet.jp" password="0000" authtype="3" type="default,supl" />
- <apn carrier="AsahiNet LTE 128K" mcc="440" mnc="10" apn="lte.mobac.net" user="d@x.asahinet.jp" password="0000" authtype="3" type="default,supl" />
- <apn carrier="BB.excite" mcc="440" mnc="10" apn="vmobile.jp" user="bb@excite.co.jp" password="excite" authtype="3" type="default,supl" />
- <apn carrier="BIGLOBE" mcc="440" mnc="10" apn="biglobe.jp" user="user" password="0000" authtype="2" type="default,supl" />
- <apn carrier="DMM mobile" mcc="440" mnc="10" apn="dmm.com" user="dmm@dmm.com" password="dmm" authtype="3" type="default,supl" />
- <apn carrier="DMM mobile" mcc="440" mnc="10" apn="vmobile.jp" user="dmm@dmm.com" password="dmm" authtype="3" type="default,supl" />
- <apn carrier="DTI" mcc="440" mnc="10" apn="dream.jp" user="user@dream.jp" password="dti" authtype="2" type="default,supl" />
- <apn carrier="FREETEL" mcc="440" mnc="10" apn="freetel.link" user="freetel@freetel.link" password="freetel" authtype="3" type="default,supl" />
- <apn carrier="IIJmio/BIC SIM" mcc="440" mnc="10" apn="iijmio.jp" user="mio@iij" password="iij" authtype="3" type="default,supl" />
- <apn carrier="MosimosiiX" mcc="440" mnc="10" apn="vdm.jp" user="talk@vdm" password="1010" authtype="3" type="default,supl" />
- <apn carrier="NifMo 3G" mcc="440" mnc="10" apn="mdb.nifty.com" user="mdb@nifty" password="nifty" authtype="3" type="default,supl" />
- <apn carrier="NifMo LTE" mcc="440" mnc="10" apn="mda.nifty.com" user="mda@nifty" password="nifty" authtype="3" type="default,supl" />
- <apn carrier="OCN 3G" mcc="440" mnc="10" apn="3g-d-2.ocn.ne.jp" user="mobileid@ocn" password="mobile" authtype="2" type="default,supl" />
- <apn carrier="OCN LTE" mcc="440" mnc="10" apn="lte-d.ocn.ne.jp" user="mobileid@ocn" password="mobile" authtype="2" type="default,supl" />
- <apn carrier="So-net" mcc="440" mnc="10" apn="so-net.jp" user="nuro" password="nuro" authtype="2" type="default,supl" />
- <apn carrier="U-mobile" mcc="440" mnc="10" apn="umobile.jp" user="umobile@umobile.jp" password="umobile" authtype="3" type="default,supl" />
- <apn carrier="U-mobile Max" mcc="440" mnc="10" apn="dm.jplat.net" user="umobile@umobile.jp" password="umobile" authtype="3" type="default,supl" />
- <apn carrier="U-mobile Premium" mcc="440" mnc="10" apn="umob.jp" user="umob" password="umob" authtype="3" type="default,supl" />
- <apn carrier="Wi-Ho!" mcc="440" mnc="10" apn="bbnw.jp" user="user" password="0000" authtype="3" type="default,supl" />
- <apn carrier="WirelessGate 3G" mcc="440" mnc="10" apn="foma01.wi-gate.net" user="wg@sim" password="wg" authtype="3" type="default,supl" />
- <apn carrier="WirelessGate LTE" mcc="440" mnc="10" apn="xi01.wi-gate.net" user="wg@sim" password="wg" authtype="3" type="default,supl" />
- <apn carrier="Wonderlink F" mcc="440" mnc="10" apn="lte.fenics.jp" user="wl@s.lte.fenics.jp" password="p123456w" authtype="1" type="default,supl" />
- <apn carrier="Wonderlink I" mcc="440" mnc="10" apn="vmobile.jp" user="wl@wlte.net" password="p123456w" authtype="2" type="default,supl" />
- <apn carrier="b-mobile 4g" mcc="440" mnc="10" apn="bmobile.ne.jp" user="bmobile@4g" password="bmobile" authtype="3" type="default,supl" />
- <apn carrier="b-mobile aeon" mcc="440" mnc="10" apn="bmobile.ne.jp" user="bmobile@aeon" password="bmobile" authtype="3" type="default,supl" />
- <apn carrier="b-mobile am" mcc="440" mnc="10" apn="bmobile.ne.jp" user="bmobile@am" password="bmobile" authtype="3" type="default,supl" />
- <apn carrier="b-mobile fr" mcc="440" mnc="10" apn="bmobile.ne.jp" user="bmobile@fr" password="bmobile" authtype="3" type="default,supl" />
- <apn carrier="b-mobile spd" mcc="440" mnc="10" apn="bmobile.ne.jp" user="bmobile@spd" password="bmobile" authtype="3" type="default,supl" />
- <apn carrier="b-mobile u300" mcc="440" mnc="10" apn="bmobile.ne.jp" user="bmobile@u300" password="bmobile" authtype="3" type="default,supl" />
- <apn carrier="b-mobile xsim" mcc="440" mnc="10" apn="bmobile.ne.jp" user="bmobile@xsim" password="bmobile" authtype="3" type="default,supl" />
- <apn carrier="b-mobile zsim" mcc="440" mnc="10" apn="bmobile.ne.jp" user="bmobile@zsim" password="bmobile" authtype="3" type="default,supl" />
- <apn carrier="hi-ho" mcc="440" mnc="10" apn="vmobile.jp" user="lte@hi-ho" password="hi-ho" authtype="3" type="default,supl" />
- <apn carrier="mineo D" mcc="440" mnc="10" apn="mineo-d.jp" user="mineo@k-opti.com" password="mineo" authtype="2" type="default,supl" />
- <apn carrier="mopera U" mcc="440" mnc="10" apn="mopera.net" type="default,supl" />
- <apn carrier="mopera U Bizho" mcc="440" mnc="10" apn="mpr2.bizho.net" type="default,supl" />
- <apn carrier="mopera U FF" mcc="440" mnc="10" apn="open.mopera.net" type="default,supl" />
- <apn carrier="mopera U Flat" mcc="440" mnc="10" apn="mopera.flat.foma.ne.jp" type="default,supl" />
- <apn carrier="spモード" mcc="440" mnc="10" apn="spmode.ne.jp" type="default,supl" />
- <apn carrier="楽天ブロードバンドデータSIM エントリー2!" mcc="440" mnc="10" apn="mmtmobile.jp" user="mobile@rakutenbb.jp" password="rakutenbb" authtype="3" type="default,supl" />
- <apn carrier="楽天モバイル" mcc="440" mnc="10" apn="rmobile.jp" user="rm" password="0000" authtype="3" type="default,supl" />
- <apn carrier="楽天モバイル" mcc="440" mnc="10" apn="vdm.jp" user="rakuten@vdm" password="vrkt" authtype="3" type="default,supl" />
- <apn carrier="IMS" mcc="440" mnc="10" apn="ims" type="ims" protocol="IPV6" />
- <apn carrier="Y!mobile" mcc="440" mnc="20" apn="plus.acs.jp" user="ym" password="ym" mmsc="http://mms-s" mmsproxy="andmms.plusacs.ne.jp" mmsport="8080" authtype="2" type="default,supl,mms" />
- <apn carrier="andoworld" mcc="440" mnc="20" apn="andoworld.softbank.ne.jp" mmsc="http://mms/" mmsproxy="andmms.softbank.ne.jp" mmsport="8080" authtype="2" type="default,supl,mms" />
- <apn carrier="fourgsmartphone" mcc="440" mnc="20" apn="fourgsmartphone" user="" password="" mmsc="http://mms/" mmsproxy="andmms.softbank.ne.jp" mmsport="8080" authtype="2" type="default,supl,mms" />
- <apn carrier="jpspir" mcc="440" mnc="20" apn="jpspir" user="sirobit" password="amstkoi" mmsc="http://mms/" mmsproxy="smilemms.softbank.ne.jp" mmsport="8080" type="default,supl,mms" />
- <apn carrier="open" mcc="440" mnc="20" apn="open.softbank.ne.jp" user="opensoftbank" password="ebMNuX1FIHg9d3DA" mmsc="http://mms/" mmsproxy="mmsopen.softbank.ne.jp" mmsport="8080" type="default,supl,mms" />
- <apn carrier="plus.softbank" mcc="440" mnc="20" apn="plus.softbank" user="plus" password="softbank" mmsc="http://mms/" mmsproxy="andmms.softbank.ne.jp" mmsport="8080" authtype="3" type="default,supl,mms" />
- <apn carrier="plus.4g" mcc="440" mnc="20" apn="plus.4g" user="plus" password="4g" mmsc="http://mms/" mmsproxy="andmms.softbank.ne.jp" mmsport="8080" authtype="3" type="default,supl,mms" />
- <apn carrier="sbm" mcc="440" mnc="20" apn="sbm" user="data" password="softbank" type="default,supl" />
- <apn carrier="sbm4glte" mcc="440" mnc="20" apn="sbm4glte" user="data" password="softbank" type="default,supl" />
- <apn carrier="smile.world" mcc="440" mnc="20" apn="smile.world" user="dna1trop" password="so2t3k3m2a" mmsc="http://mms/" mmsproxy="smilemms.softbank.ne.jp" mmsport="8080" authtype="1" type="default,supl,mms" />
- <apn carrier="IMS" mcc="440" mnc="20" apn="IMS" type="ims" protocol="IPV6" />
- <apn carrier="U-mobile Super" mcc="440" mnc="20" apn="plus.acs.jp" user="ym" password="ym" authtype="2" type="default,supl" />
- <apn carrier="LTE NET" mcc="440" mnc="50" apn="uno.au-net.ne.jp" user="685840734641020@uno.au-net.ne.jp" password="KpyrR6BP" authtype="2" type="default,mms,supl,hipri" protocol="IPV4V6" roaming_protocol="IP" />
- <apn carrier="LTE NET for DATA" mcc="440" mnc="50" apn="au.au-net.ne.jp" user="user@au.au-net.ne.jp" password="au" authtype="2" type="default,mms,supl,hipri" protocol="IPV4V6" roaming_protocol="IP" />
- <apn carrier="UQ mobile" mcc="440" mnc="50" apn="uqmobile.jp" user="uq@uqmobile.jp" password="uq" mmsc="http://mms.ezweb.ne.jp/MMS" mmsport="80" authtype="2" type="default,supl,hipri,dun" />
- <apn carrier="mineo A" mcc="440" mnc="50" apn="mineo.jp" user="mineo@k-opti.com" password="mineo" authtype="2" type="default,supl,hipri" />
- <apn carrier="SKT IA" mcc="450" mnc="05" apn="" type="ia" protocol="IPV4V6" roaming_protocol="IP" />
- <apn carrier="SKT IMS" mcc="450" mnc="05" apn="IMS" type="ims" protocol="IPV4V6" />
- <apn carrier="SKT LTE INTERNET" mcc="450" mnc="05" apn="lte.sktelecom.com" type="default,mms,supl,fota,cbs" mmsc="http://omms.nate.com:9082/oma_mms" mmsproxy="smart.nate.com" mmsport="9093" server="*" protocol="IPV4V6" />
- <apn carrier="SKT 3G INTERNET" mcc="450" mnc="05" apn="web.sktelecom.com" type="default,mms,supl,fota,cbs" mmsc="http://omms.nate.com:9082/oma_mms" mmsproxy="smart.nate.com" mmsport="9093" server="*" />
- <apn carrier="SKT LTE Roaming" mcc="450" mnc="05" apn="lte-roaming.sktelecom.com" mmsc="http://omms.nate.com:9082/oma_mms" mmsproxy="smart.nate.com" mmsport="9093" server="*" />
- <apn carrier="SKT 3G Roaming" mcc="450" mnc="05" apn="roaming.sktelecom.com" mmsc="http://omms.nate.com:9082/oma_mms" mmsproxy="smart.nate.com" mmsport="9093" server="*" />
- <apn carrier="LG U+ IA" mcc="450" mnc="06" apn="" type="ia" protocol="IPV4V6" roaming_protocol="IP" />
- <apn carrier="LG U+ IMS" mcc="450" mnc="06" apn="IMS" type="ims" mmsc="http://omammsc.uplus.co.kr:9084" protocol="IPV4V6" />
- <apn carrier="LG U+" mcc="450" mnc="06" apn="internet.lguplus.co.kr" type="default,mms,supl,fota,cbs" mmsc="http://omammsc.uplus.co.kr:9084" protocol="IPV4V6" />
- <apn carrier="LG U+ LTE Roaming" mcc="450" mnc="06" apn="lte-roaming.lguplus.co.kr" mmsc="http://omammsc.uplus.co.kr:9084" authtype="0" />
- <apn carrier="LG U+ Roaming" mcc="450" mnc="06" apn="wroaming.lguplus.co.kr" mmsc="http://omammsc.uplus.co.kr:9084" authtype="0" />
- <apn carrier="KT IA" mcc="450" mnc="08" apn="" type="ia" protocol="IPV4V6" />
- <apn carrier="KT IMS" mcc="450" mnc="08" apn="IMS" type="ims" protocol="IPV4V6" />
- <apn carrier="KT" mcc="450" mnc="08" apn="lte.ktfwing.com" type="default,mms,supl,fota,cbs" mmsc="http://mmsc.ktfwing.com:9082" port="80" server="*" />
- <apn carrier="SKT 3G INTERNET" mcc="450" mnc="11" apn="web.sktelecom.com" type="default,mms,supl,fota,cbs" mmsc="http://omms.nate.com:9082/oma_mms" mmsproxy="smart.nate.com" mmsport="9093" server="*" />
- <apn carrier="SKT LTE Roaming" mcc="450" mnc="11" apn="lte-roaming.sktelecom.com" mmsc="http://omms.nate.com:9082/oma_mms" mmsproxy="smart.nate.com" mmsport="9093" server="*" />
- <apn carrier="SKT 3G Roaming" mcc="450" mnc="11" apn="roaming.sktelecom.com" mmsc="http://omms.nate.com:9082/oma_mms" mmsproxy="smart.nate.com" mmsport="9093" server="*" />
- <apn carrier="Mobifone 3G" mcc="452" mnc="01" apn="m-wap" user="mms" password="mms" authtype="1" type="default,supl" />
- <apn carrier="Mobifone MMS" mcc="452" mnc="01" apn="m-i090" proxy="" port="" mmsproxy="203.162.21.114" mmsport="8080" mmsc="http://203.162.21.114/mmsc" user="mms" password="mms" authtype="1" type="mms" />
- <apn carrier="Vinaphone MMS" mcc="452" mnc="02" apn="m3-mms" user="mms" password="mms" mmsc="http://mms.vinaphone.vnn.vn:8002" mmsproxy="10.1.10.46" mmsport="9201" type="mms" />
- <apn carrier="Vinaphone 3G" mcc="452" mnc="02" apn="m3-world" user="mms" password="mms" type="default,supl" />
- <apn carrier="Viettel 3G" mcc="452" mnc="04" apn="v-internet" type="default,supl" />
- <apn carrier="Viettel MMS" mcc="452" mnc="04" apn="v-mms" mmsc="http://mms.viettelmobile.com.vn/mms" mmsproxy="192.168.233.10" mmsport="9201" type="mms" />
- <apn carrier="Vietnamobile 3G" mcc="452" mnc="05" apn="internet" type="default,supl" />
- <apn carrier="Vietnamobile MMS" mcc="452" mnc="05" apn="mms" proxy="" port="" mmsproxy="10.10.128.44" mmsport="8080" mmsc="http://10.10.128.58/servlets/mms" type="mms" />
- <apn carrier="BeeLine VN 3G" 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="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" />
- <apn carrier="csl Tethering" mcc="454" mnc="00" apn="lte.internet" type="dun" />
- <apn carrier="csl prepaid" mcc="454" mnc="00" apn="cslp1" mmsc="http://mms.hkcsl.com:8002" mmsproxy="192.168.59.51" mmsport="8080" type="default,mms,hipri" authtype="3" mvno_match_data="02020001" mvno_type="gid" />
- <apn carrier="csl prepaid" mcc="454" mnc="00" apn="cslp1" mmsc="http://mms.hkcsl.com:8002" mmsproxy="192.168.59.51" mmsport="8080" type="default,mms,hipri" authtype="3" mvno_match_data="02030001" mvno_type="gid" />
- <apn carrier="csl prepaid" mcc="454" mnc="00" apn="cslp3" mmsc="http://mms.hkcsl.com:8002" mmsproxy="192.168.59.51" mmsport="8080" type="default,mms,hipri" authtype="3" mvno_match_data="02020002" mvno_type="gid" />
- <apn carrier="Global Call" mcc="454" mnc="00" apn="globalcall" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.51" mmsport="8080" type="default,mms,hipri" authtype="3" mvno_match_data="01040000" mvno_type="gid" />
- <apn carrier="1O1O" 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" />
- <apn carrier="SUN Mobile" mcc="454" mnc="00" apn="SUNMobile" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.61" mmsport="8080" authtype="3" type="default,mms" />
- <apn carrier="SUN Mobile" mcc="454" mnc="00" apn="SUNMobile" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.61" mmsport="8080" type="default,mms" authtype="3" mvno_match_data="01030000" mvno_type="gid" />
- <apn carrier="1O1O" 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="01010000" mvno_type="gid" />
- <apn carrier="1O1O Tethering" mcc="454" mnc="00" apn="lte.internet" type="dun" mvno_match_data="01010000" mvno_type="gid" />
- <apn carrier="1O1O" 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" />
- <apn carrier="1O1O Tethering" mcc="454" mnc="00" apn="lte.internet" type="dun" />
- <apn carrier="1O1O" 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="01010000" mvno_type="gid" />
- <apn carrier="1O1O Tethering" mcc="454" mnc="00" apn="lte.internet" type="dun" mvno_match_data="01010000" mvno_type="gid" />
- <apn carrier="SUN Mobile" mcc="454" mnc="00" apn="SUNMobile" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.61" mmsport="8080" authtype="3" type="default,mms" />
- <apn carrier="SUN Mobile" mcc="454" mnc="00" apn="SUNMobile" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.61" mmsport="8080" type="default,mms" authtype="3" mvno_match_data="01030000" mvno_type="gid" />
- <apn carrier="New World internet" mcc="454" mnc="01" apn="internet" type="default" authtype="1" />
- <apn carrier="New World MMS" mcc="454" mnc="01" apn="MMS" mmsc="http://mmsc.nwmobility.com:8002" mmsproxy="192.168.111.1" mmsport="8080" type="mms" authtype="1" />
- <apn carrier="New World" mcc="454" mnc="01" apn="wap" user="wwm" password="wwm" proxy="192.168.111.1" port="8080" type="default" authtype="1" />
- <apn carrier="csl" mcc="454" mnc="02" apn="mobile" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.51" mmsport="8080" authtype="3" type="default,mms,hipri" />
- <apn carrier="csl Tethering" mcc="454" mnc="02" apn="lte.internet" type="dun" />
- <apn carrier="csl Tethering" mcc="454" mnc="02" apn="lte.internet" type="dun" mvno_match_data="01020000" mvno_type="gid" />
- <apn carrier="csl" mcc="454" mnc="02" 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="1O1O" mcc="454" mnc="02" apn="mobile" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.51" mmsport="8080" authtype="3" type="default,mms,hipri" />
- <apn carrier="1O1O" mcc="454" mnc="02" 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="01010000" mvno_type="gid" />
- <apn carrier="1O1O Tethering" mcc="454" mnc="02" apn="lte.internet" type="dun" mvno_match_data="01010000" mvno_type="gid" />
- <apn carrier="1O1O Tethering" mcc="454" mnc="02" apn="lte.internet" type="dun" />
- <apn carrier="SUN Mobile" mcc="454" mnc="02" apn="SUNMobile" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.61" mmsport="8080" authtype="3" type="default,mms" />
- <apn carrier="SUN Mobile" mcc="454" mnc="02" apn="SUNMobile" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.61" mmsport="8080" type="default,mms" authtype="3" mvno_match_data="01030000" mvno_type="gid" />
- <apn carrier="Global Call" mcc="454" mnc="02" apn="globalcall" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.51" mmsport="8080" type="default,mms,hipri" authtype="3" mvno_match_data="01040000" mvno_type="gid" />
- <apn carrier="3" mcc="454" mnc="03" apn="mobile.three.com.hk" mmsc="http://mms.um.three.com.hk:10021/mmsc" mmsproxy="172.20.97.116" mmsport="8799" authtype="1" type="default,mms,supl,dun" />
- <apn carrier="3 LTE" mcc="454" mnc="03" apn="mobile.lte.three.com.hk" mmsc="http://mms.um.three.com.hk:10021/mmsc" mmsproxy="172.20.97.116" mmsport="8799" authtype="1" type="default,mms" />
- <apn carrier="3 Share" mcc="454" mnc="03" apn="share.lte.three.com.hk" authtype="1" type="dun" />
- <apn carrier="3 (2G) MMS" mcc="454" mnc="04" apn="mms-g.three.com.hk" mmsc="http://10.30.15.51:10021/mmsc" mmsproxy="10.30.15.53" mmsport="8080" type="mms" />
- <apn carrier="3-DB-GPRS" mcc="454" mnc="04" apn="web-g.three.com.hk" proxy="10.30.3.151" port="8080" type="default,supl" />
- <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" />
- <apn carrier="csl prepaid" mcc="454" mnc="10" apn="cslp1" mmsc="http://mms.hkcsl.com:8002" mmsproxy="192.168.59.51" mmsport="8080" type="default,mms,hipri" authtype="3" mvno_match_data="02020001" mvno_type="gid" />
- <apn carrier="csl prepaid" mcc="454" mnc="10" apn="cslp1" mmsc="http://mms.hkcsl.com:8002" mmsproxy="192.168.59.51" mmsport="8080" type="default,mms,hipri" authtype="3" mvno_match_data="02030001" mvno_type="gid" />
- <apn carrier="csl prepaid" mcc="454" mnc="10" apn="cslp3" mmsc="http://mms.hkcsl.com:8002" mmsproxy="192.168.59.51" mmsport="8080" type="default,mms,hipri" authtype="3" mvno_match_data="02020002" mvno_type="gid" />
- <apn carrier="CMHK" mcc="454" mnc="12" apn="cmhk" mmsc="http://mms.hk.chinamobile.com/mms" type="default,supl,mms" />
- <apn carrier="CMHK" mcc="454" mnc="13" apn="cmhk" mmsc="http://mms.hk.chinamobile.com/mms" type="default,supl,mms" />
- <apn carrier="3-DB-MMS" mcc="454" mnc="14" apn="mms-g.three.com.hk" mmsc="http://10.30.15.51:10021/mmsc" mmsproxy="10.30.15.53" mmsport="8080" type="mms" />
- <apn carrier="3-DB-GPRS" mcc="454" mnc="14" apn="web-g.three.com.hk" proxy="10.30.15.53" port="8080" type="default,supl" />
- <apn carrier="SmarTone HK" mcc="454" mnc="15" apn="SmarTone" mmsc="http://mms.smartone.com/server" mmsproxy="10.9.9.9" mmsport="8080" type="default,supl,mms" />
- <apn carrier="PCCW-HKT" mcc="454" mnc="16" apn="pccw" mmsc="http://3gmms.pccwmobile.com:8080/was" mmsproxy="10.140.14.10" mmsport="8080" authtype="1" type="default,supl,mms" />
- <apn carrier="PCCW GPRS" mcc="454" mnc="16" apn="pccwdata" proxy="10.131.2.8" port="8080" user="" password="" mmsc="" type="default" />
- <apn carrier="csl" mcc="454" mnc="16" apn="pccw" mmsc="http://mms.hkcsl.com:8080" mmsproxy="10.140.14.10" mmsport="8080" authtype="3" type="default,mms,hipri" />
- <apn carrier="SmarTone HK" mcc="454" mnc="17" apn="SmarTone" mmsc="http://mms.smartone.com/server" mmsproxy="10.9.9.9" mmsport="8080" type="default,supl,mms" />
- <apn carrier="csl" mcc="454" mnc="18" apn="mobile" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.51" mmsport="8080" authtype="3" type="default,mms,hipri" />
- <apn carrier="csl Tethering" mcc="454" mnc="18" apn="lte.internet" type="dun" />
- <apn carrier="csl" mcc="454" mnc="18" 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="18" apn="lte.internet" type="dun" mvno_match_data="01020000" mvno_type="gid" />
- <apn carrier="1O1O Tethering" mcc="454" mnc="18" apn="lte.internet" type="dun" mvno_match_data="01010000" mvno_type="gid" />
- <apn carrier="1O1O" mcc="454" mnc="18" apn="mobile" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.51" mmsport="8080" authtype="3" type="default,mms,hipri" />
- <apn carrier="1O1O Tethering" mcc="454" mnc="18" apn="lte.internet" type="dun" />
- <apn carrier="1O1O" mcc="454" mnc="18" 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="01010000" mvno_type="gid" />
- <apn carrier="SUN Mobile" mcc="454" mnc="18" apn="SUNMobile" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.61" mmsport="8080" authtype="3" type="default,mms" />
- <apn carrier="SUN Mobile" mcc="454" mnc="18" apn="SUNMobile" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.61" mmsport="8080" type="default,mms" authtype="3" mvno_match_data="01030000" mvno_type="gid" />
- <apn carrier="Global Call" mcc="454" mnc="18" apn="globalcall" mmsc="http://192.168.58.171:8002" mmsproxy="192.168.59.51" mmsport="8080" type="default,mms,hipri" authtype="3" mvno_match_data="01040000" mvno_type="gid" />
- <apn carrier="PCCW-HKT" mcc="454" mnc="19" apn="pccw" mmsc="http://3gmms.pccwmobile.com:8080/was" mmsproxy="10.140.14.10" mmsport="8080" authtype="1" type="default,supl,mms" />
- <apn carrier="csl" mcc="454" mnc="19" apn="pccw" mmsc="http://mms.hkcsl.com:8080" mmsproxy="10.140.14.10" mmsport="8080" authtype="3" type="default,mms,hipri" />
- <apn carrier="SmarTone Macau" mcc="455" mnc="00" apn="smartgprs" proxy="10.9.9.29" port="8080" user="" password="" mmsc="http://mms.smartone.com.mo/dmog/mo" mmsproxy="10.9.9.29" mmsport="8080" type="default,supl,mms" />
- <apn carrier="SmarTone MMS" mcc="455" mnc="00" apn="smartgprs" proxy="" port="" user="" password="" mmsc="http://mms.smartone.com.mo/dmog/mo" mmsproxy="10.9.9.29" mmsport="9201" type="mms" />
- <apn carrier="SmarTone" mcc="455" mnc="00" apn="smartweb" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="CTM Data" apn="ctm-mobile" proxy="192.168.99.2" port="8080" mmsc="" mcc="455" mnc="01" authtype="3" type="default,supl" />
- <apn carrier="CTM Data (Prepaid)" apn="ctmprepaid" proxy="192.168.99.2" port="8080" mmsc="http://mms.wap.ctm.net:8002" mmsproxy="192.168.99.3" mmsport="8080" mcc="455" mnc="01" authtype="3" type="default,mms" />
- <apn carrier="CTM MMS" mcc="455" mnc="01" apn="ctmmms" proxy="" port="" mmsc="http://mms.wap.ctm.net:8002" mmsproxy="192.168.99.3" mmsport="8080" authtype="3" type="mms" />
- <apn carrier="CTM" mcc="455" mnc="01" apn="ctm-mobile" type="default,supl" />
- <apn carrier="CTM MMS" mcc="455" mnc="01" apn="ctmmms" mmsc="http://mms.wap.ctm.net:8002" mmsproxy="192.168.99.3" mmsport="8080" type="mms" />
- <apn carrier="中国电信NET设置" mcc="455" mnc="02" apn="ctnet" user="ctnet@mycdma.cn" password="vnet.mobi" authtype="3" type="default,supl,dun" />
- <apn carrier="中国电信WAP设置" mcc="455" mnc="02" 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="3MACAU" mcc="455" mnc="03" apn="mobile.three.com.mo" proxy="" port="" user="" password="" mmsc="http://mms.three.com.mo:10021/mmsc" mmsproxy="172.20.80.80" mmsport="8080" authtype="3" type="default,mms" />
- <apn carrier="Hutchison Macau MMS" mcc="455" mnc="03" apn="mms.hutchisonmacau.com" mmsc="http://10.30.15.51:10021/mmsc" mmsproxy="10.30.15.53" mmsport="8080" type="mms" />
- <apn carrier="Hutchison Macau" mcc="455" mnc="03" apn="web-g.three.com.hk" user="hutchison" password="1234" type="default,supl" />
- <apn carrier="CTM" mcc="455" mnc="04" apn="ctm-mobile" proxy="192.168.99.2" port="8080" type="default,supl" />
- <apn carrier="CTM MMS" mcc="455" mnc="04" apn="ctmmms" mmsc="http://mms.wap.ctm.net:8002" mmsproxy="192.168.99.3" mmsport="8080" type="mms" />
- <apn carrier="澳門電信LTE" mcc="455" mnc="07" apn="ctlte" user="" password="" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="澳門電信NET" mcc="455" mnc="07" apn="ctnet" user="" password="" protocol="IPV4V6" roaming_protocol="IPV4V6" />
- <apn carrier="Mobitel KH" mcc="456" mnc="01" apn="postpaid" user="mobitel" password="mobitel" type="default,supl" />
- <apn carrier="Mobitel Cellcard" mcc="456" mnc="01" apn="cellcard" user="mobitel" password="mobitel" type="default,supl" />
- <apn carrier="Mobitel MMS" mcc="456" mnc="01" apn="mms" user="mobitel" password="mobitel" mmsc="http://mms.mobitel.com.kh/mmsc" mmsproxy="203.144.95.98" mmsport="3130" type="mms" />
- <apn carrier="Smart" mcc="456" mnc="02" apn="smart" type="default,supl" />
- <apn carrier="Smart MMS" mcc="456" mnc="02" apn="mms" mmsc="http://mmsc" mmsproxy="10.12.1.142" mmsport="8080" type="mms" />
- <apn carrier="qbmore" mcc="456" mnc="04" apn="WAP" type="default,supl" />
- <apn carrier="qbmore MMS" mcc="456" mnc="04" apn="mms" mmsc="http://mms.qbmore.mobi" mmsproxy="172.16.96.66" mmsport="8080" type="mms" />
- <apn carrier="Star-Cell" mcc="456" mnc="05" apn="internet" type="default,supl" />
- <apn carrier="Metfone GPRS" mcc="456" mnc="08" apn="Metfone" type="default,supl" />
- <apn carrier="Metfone MMS" mcc="456" mnc="08" apn="mms" proxy="" port="" mmsproxy="192.168.23.85" mmsport="8080" mmsc="http://192.168.24.10:38090" user="" password="" type="mms" />
- <apn carrier="Metfone" mcc="456" mnc="08" apn="Metfone" type="default,supl" />
- <apn carrier="beeline GPRS" mcc="456" mnc="09" apn="wap.beeline.com.kh" proxy="10.18.34.135" port="8080" type="default,supl" />
- <apn carrier="beeline MMS" mcc="456" mnc="09" apn="mms.beeline.com.kh" proxy="" port="" mmsproxy="10.18.34.135" mmsport="8080" mmsc="http://mms" type="mms" />
- <apn carrier="Beeline Internet" mcc="456" mnc="09" apn="gprs.beeline.com.kh" type="default,supl" />
- <apn carrier="Beeline MMS" mcc="456" mnc="09" apn="mms.beeline.com.kh" mmsc="http://mms.qbmore.mobi" mmsproxy="10.18.34.135" mmsport="8080" type="mms" />
- <apn carrier="Camshin" mcc="456" mnc="18" apn="Camshin" mmsc="http://172.16.205.10:38090" mmsproxy="172.16.203.85" mmsport="8080" type="default,mms" />
- <apn carrier="中国移动因特网设置" mcc="460" mnc="00" apn="cmnet" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="中国移动WAP设置" mcc="460" mnc="00" apn="cmwap" proxy="10.0.0.172" port="80" mmsc="" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="中国移动彩信设置" mcc="460" mnc="00" apn="cmwap" proxy="" port="" mmsproxy="10.0.0.172" mmsport="80" mmsc="http://mmsc.monternet.com" user="" password="" authtype="3" type="mms" />
- <apn carrier="中国移动 GPRS (China Mobile)" mcc="460" mnc="00" apn="cmnet" type="default,supl" />
- <apn carrier="中国移动 Wap 网络 (China Mobile)" mcc="460" mnc="00" apn="cmwap" proxy="10.0.0.172" port="80" />
- <apn carrier="中国移动彩信 (China Mobile)" mcc="460" mnc="00" apn="cmwap" proxy="10.0.0.172" port="80" mmsc="http://mmsc.monternet.com" mmsproxy="10.0.0.172" mmsport="80" type="mms" />
- <apn carrier="China Mobile" mcc="460" mnc="00" apn="cmnet" type="default,supl" />
- <apn carrier="China Mobile MMS" mcc="460" mnc="00" apn="cmwap" proxy="10.0.0.172" port="80" mmsc="http://mmsc.monternet.com" mmsproxy="10.0.0.172" mmsport="80" type="mms" />
- <apn carrier="中国联通 3g 网络 (China Unicom)" mcc="460" mnc="01" apn="3gnet" type="default,supl" />
- <apn carrier="中国联通 GPRS (China Unicom)" mcc="460" mnc="01" apn="uninet" type="default,supl" />
- <apn carrier="中国联通 Wap 网络 (China Unicom)" mcc="460" mnc="01" apn="3gwap" proxy="10.0.0.172" port="80" />
- <apn carrier="中国联通 Wap 网络 (China Unicom)" mcc="460" mnc="01" apn="uniwap" proxy="10.0.0.172" port="80" />
- <apn carrier="中国联通 3g 彩信 (China Unicom)" mcc="460" mnc="01" apn="3gwap" mmsc="http://mmsc.myuni.com.cn" mmsproxy="10.0.0.172" mmsport="80" type="mms" />
- <apn carrier="中国联通彩信 (China Unicom)" mcc="460" mnc="01" apn="uniwap" mmsc="http://mmsc.myuni.com.cn" mmsproxy="10.0.0.172" mmsport="80" type="mms" />
- <apn carrier="中国联通3g因特网设置" mcc="460" mnc="01" apn="3gnet" proxy="" port="" mmsc="" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="中国联通3gwap设置" mcc="460" mnc="01" apn="3gwap" proxy="10.0.0.172" port="80" mmsc="" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="中国联通3g彩信设置" mcc="460" mnc="01" apn="3gwap" proxy="" port="" mmsc="http://mmsc.myuni.com.cn" mmsproxy="10.0.0.172" mmsport="80" user="" password="" authtype="3" type="mms" />
- <apn carrier="China Unicom 3G" mcc="460" mnc="01" apn="3gnet" port="80" type="default,supl" />
- <apn carrier="China Unicom MMS" mcc="460" mnc="01" apn="uniwap" mmsc="http://mmsc.myuni.com.cn" mmsproxy="10.0.0.172" mmsport="80" type="mms" />
- <apn carrier="中国移动因特网设置" mcc="460" mnc="02" apn="cmnet" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="中国移动WAP设置" mcc="460" mnc="02" apn="cmwap" proxy="10.0.0.172" port="80" mmsc="" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="中国移动彩信设置" mcc="460" mnc="02" apn="cmwap" proxy="" port="" mmsproxy="10.0.0.172" mmsport="80" mmsc="http://mmsc.monternet.com" user="" password="" authtype="3" type="mms" />
- <apn carrier="中国移动 GPRS (China Mobile)" mcc="460" mnc="02" apn="cmnet" type="default,supl" />
- <apn carrier="中国移动 Wap 网络 (China Mobile)" mcc="460" mnc="02" apn="cmwap" proxy="10.0.0.172" port="80" />
- <apn carrier="中国移动彩信 (China Mobile)" mcc="460" mnc="02" apn="cmwap" proxy="10.0.0.172" port="80" mmsc="http://mmsc.monternet.com" mmsproxy="10.0.0.172" mmsport="80" type="mms" />
- <apn carrier="China Mobile" mcc="460" mnc="02" apn="cmnet" type="default,supl" />
- <apn carrier="China Mobile MMS" mcc="460" mnc="02" apn="cmwap" proxy="10.0.0.172" port="80" mmsc="http://mmsc.monternet.com" mmsproxy="10.0.0.172" mmsport="80" type="mms" />
- <apn carrier="China Mobile" mcc="460" mnc="02" apn="cmnet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="China Mobile MMS" mcc="460" mnc="02" apn="cmwap" proxy="10.0.0.172" port="80" user="" password="" mmsc="http://mmsc.monternet.com" mmsproxy="10.0.0.172" mmsport="80" type="mms" />
- <apn carrier="中国电信互联网设置CTNET" mcc="460" mnc="03" apn="ctnet" proxy="" port="" user="ctnet@mycdma.cn" password="vnet.mobi" mmsc="" authtype="3" type="default,supl" />
- <apn carrier="中国电信WAP设置CTWAP" mcc="460" mnc="03" apn="ctwap" proxy="10.0.0.200" port="80" user="ctwap@mycdma.cn" password="vnet.mobi" mmsc="http://mmsc.vnet.mobi" mmsproxy="10.0.0.200" mmsport="80" authtype="2" type="default,mms,supl" />
- <apn carrier="China Telecom" apn="ctlte" mcc="460" mnc="03" user="" password="" protocol="IPV4V6" roaming_protocol="IPV4V6" type="ia" />
- <apn carrier="中国移动 GPRS (China Mobile)" mcc="460" mnc="07" apn="cmnet" type="default,supl" />
- <apn carrier="中国移动 Wap 网络 (China Mobile)" mcc="460" mnc="07" apn="cmwap" proxy="10.0.0.172" port="80" />
- <apn carrier="中国移动彩信 (China Mobile)" mcc="460" mnc="07" apn="cmwap" proxy="10.0.0.172" port="80" mmsc="http://mmsc.monternet.com" mmsproxy="10.0.0.172" mmsport="80" type="mms" />
- <apn carrier="China-Mobile" mcc="460" mnc="07" apn="cmnet" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="HW-KuiKe" mcc="460" mnc="07" apn="hwmobile" proxy="192.168.111.32" port="8080" mmsproxy="192.168.111.32" mmsport="8080" mmsc="http://192.168.111.12:19090/was" user="" password="" authtype="3" type="" />
- <apn carrier="中国移动 (China Mobile) GPRS" mcc="460" mnc="07" apn="cmnet" type="default,supl" />
- <apn carrier="中国联通 3g 网络 (China Unicom)" mcc="460" mnc="09" apn="3gnet" type="default,net" />
- <apn carrier="中国联通 GPRS (China Unicom)" mcc="460" mnc="09" apn="uninet" type="default,net" />
- <apn carrier="中国联通 Wap 网络 (China Unicom)" mcc="460" mnc="09" apn="3gwap" proxy="10.0.0.172" port="80" />
- <apn carrier="中国联通 Wap 网络 (China Unicom)" mcc="460" mnc="09" apn="uniwap" proxy="10.0.0.172" port="80" />
- <apn carrier="中国联通 3g 彩信 (China Unicom)" mcc="460" mnc="09" apn="3gwap" mmsc="http://mmsc.myuni.com.cn" mmsproxy="10.0.0.172" mmsport="80" type="mms" />
- <apn carrier="中国联通彩信 (China Unicom)" mcc="460" mnc="09" apn="uniwap" mmsc="http://mmsc.myuni.com.cn" mmsproxy="10.0.0.172" mmsport="80" type="mms" />
- <apn carrier="China Unicom 3G" mcc="460" mnc="09" apn="3gnet" port="80" type="default,supl"/>
- <apn carrier="China Unicom wap" mcc="460" mnc="09" apn="3gwap" proxy="10.0.0.172" port="80" mmsproxy="10.0.0.172" mmsport="80" mmsc="http://mmsc.myuni.com.cn" type="default, mms" />
- <apn carrier="中国电信互联网设置CTLTE" mcc="460" mnc="11" apn="ctlte" proxy="" port="" user="ctlte@mycdma.cn" password="vnet.mobi" mmsc="" authtype="3" type="default,supl" />
- <apn carrier="中国电信互联网设置CTNET" mcc="460" mnc="11" apn="ctnet" proxy="" port="" user="ctnet@mycdma.cn" password="vnet.mobi" mmsc="" authtype="3" type="default,supl" />
- <apn carrier="中国电信WAP设置CTWAP" mcc="460" mnc="11" apn="ctwap" proxy="10.0.0.200" port="80" user="ctwap@mycdma.cn" password="vnet.mobi" mmsc="http://mmsc.vnet.mobi" mmsproxy="10.0.0.200" mmsport="80" authtype="2" type="default,mms,supl" />
- <apn carrier="China Telecom" apn="ctlte" mcc="460" mnc="11" user="" password="" protocol="IPV4V6" roaming_protocol="IPV4V6" type="ia" />
- <apn carrier="中国电信互联网设置CTNET" mcc="460" mnc="12" apn="ctnet" proxy="" port="" user="ctnet@mycdma.cn" password="vnet.mobi" mmsc="" authtype="3" type="default,supl" />
- <apn carrier="中国电信WAP设置CTWAP" mcc="460" mnc="12" apn="ctwap" proxy="10.0.0.200" port="80" user="ctwap@mycdma.cn" password="vnet.mobi" mmsc="http://mmsc.vnet.mobi" mmsproxy="10.0.0.200" mmsport="80" authtype="2" type="default,mms,supl" />
- <apn carrier="中国电信互联网设置CTNET" mcc="460" mnc="13" apn="ctnet" user="ctnet@mycdma.cn" password="vnet.mobi" authtype="3" type="default,supl,dun" />
- <apn carrier="中国电信WAP设置CTWAP" mcc="460" mnc="13" 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="中国电信互联网设置CTNET" mcc="460" mnc="99" apn="ctnet" proxy="" port="" user="ctnet@mycdma.cn" password="vnet.mobi" mmsc="" authtype="3" type="default,supl" />
- <apn carrier="中国电信WAP设置CTWAP" mcc="460" mnc="99" apn="ctwap" proxy="10.0.0.200" port="80" user="ctwap@mycdma.cn" password="vnet.mobi" mmsc="http://mmsc.vnet.mobi" mmsproxy="10.0.0.200" mmsport="80" authtype="2" type="default,mms,supl" />
- <apn carrier="遠傳網際網路" mcc="466" mnc="01" apn="internet" user="" password="" type="default,supl" />
- <apn carrier="遠傳影音訊息" mcc="466" mnc="01" apn="fetnet01" proxy="" port="" mmsproxy="210.241.199.199" mmsport="9201" mmsc="http://mms" user="" password="" type="mms" />
- <apn carrier="FarEasTone" mcc="466" mnc="01" apn="internet" type="default,supl" />
- <apn carrier="遠傳電信(Far EasTone) (Fetnet01)" mcc="466" mnc="01" apn="fetnet01" proxy="210.241.199.199" port="80" type="default,supl" />
- <apn carrier="FarEasTone MMS" mcc="466" mnc="01" apn="fetnet01" mmsc="http://mms" mmsproxy="210.241.199.199" mmsport="9201" type="mms" />
- <apn carrier="KGT" mcc="466" mnc="88" apn="internet" type="default,supl" />
- <apn carrier="KGT MMS" mcc="466" mnc="88" apn="kgtmms" mmsc="http://mms.kgtmms.net.tw/mms/wapenc" mmsproxy="172.28.33.5" mmsport="8080" type="mms" />
- <apn carrier="VIBO-vibo" mcc="466" mnc="89" apn="vibo" proxy="172.24.128.36" port="8080" mmsc="" user="" password="" authtype="1" type="default,supl" />
- <apn carrier="VIBO-internet" mcc="466" mnc="89" apn="internet" user="" password="" authtype="1" type="default,supl" />
- <apn carrier="VIBOONE" mcc="466" mnc="89" apn="viboone" user="" password="" authtype="1" type="default,supl" />
- <apn carrier="VIBO-MMS " mcc="466" mnc="89" apn="vibo" proxy="" port="" mmsproxy="172.24.128.36" mmsport="8080" mmsc="http://mms" user="" password="" authtype="1" type="mms" />
- <apn carrier="震旦電信(AURORA) (MMS)" mcc="466" mnc="89" apn="aurorawap" mmsc="http://auroramms" mmsproxy="172.24.128.36" mmsport="8080" type="mms" />
- <apn carrier="震旦電信(AURORA) (Internet)" mcc="466" mnc="89" apn="auroraweb" type="default,supl" />
- <apn carrier="Vibo" mcc="466" mnc="89" apn="internet" type="default,supl" />
- <apn carrier="威寶電信(VIBO)" mcc="466" mnc="89" apn="vibo" mmsc="http://mms" mmsproxy="172.24.128.36" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Vibo" mcc="466" mnc="89" apn="vibo" mmsc="http://mms" mmsproxy="172.24.128.36" mmsport="8080" type="mms" />
- <apn carrier="中華電信 (emome)" mcc="466" mnc="92" apn="emome" user="" password="" type="default,supl" />
- <apn carrier="中華電信 (Internet)" mcc="466" mnc="92" apn="internet" user="" password="" type="default,supl" />
- <apn carrier="中華電信 (MMS)" mcc="466" mnc="92" apn="emome" proxy="" port="" mmsproxy="10.1.1.1" mmsport="8080" mmsc="http://mms.emome.net:8002" user="" password="" type="mms" />
- <apn carrier="中華電信(Chunghwa)" mcc="466" mnc="92" apn="emome" mmsc="http://mms.emome.net:8002" mmsproxy="10.1.1.1" mmsport="8080" type="default,supl,mms" />
- <apn carrier="CHT MMS" mcc="466" mnc="92" apn="emome" mmsc="http://mms.emome.net:8002" mmsproxy="10.1.1.1" mmsport="8080" type="mms" />
- <apn carrier="CHT" mcc="466" mnc="92" apn="internet" type="default,supl" />
- <apn carrier="Mobitai MMS" mcc="466" mnc="93" apn="gprs1" user="gprs" password="gprs" mmsc="http://mms.mobeelife.net/mms/wapenc" mmsproxy="192.168.77.5" mmsport="80" type="mms" />
- <apn carrier="Mobitai" mcc="466" mnc="93" apn="internet" user="gprs" password="gprs" type="default,supl" />
- <apn carrier="台灣大哥大(TW Mobile) (MMS)" mcc="466" mnc="93" apn="mms" mmsc="http://mms.catch.net.tw" mmsproxy="10.1.1.2" mmsport="80" type="mms" />
- <apn carrier="台灣大哥大(TW Mobile) (twm)" mcc="466" mnc="93" apn="twm" type="default,supl" />
- <apn carrier="台灣大哥大TWM" mcc="466" mnc="97" apn="twm" user="" password="" type="default,supl" />
- <apn carrier="Internet" mcc="466" mnc="97" apn="internet" user="" password="" type="default,supl" />
- <apn carrier="台灣大哥大MMS" mcc="466" mnc="97" apn="mms" proxy="10.1.1.2" port="80" mmsproxy="10.1.1.2" mmsport="80" mmsc="http://mms.catch.net.tw" user="" password="" type="mms" />
- <apn carrier="Taiwan Mobile Internet" mcc="466" mnc="97" apn="internet" type="default,supl" />
- <apn carrier="Taiwan Mobile MMS" mcc="466" mnc="97" apn="mms" mmsc="http://mms.catch.net.tw" mmsproxy="10.1.1.2" mmsport="80" type="mms" />
- <apn carrier="Taiwan Mobile" mcc="466" mnc="97" apn="twm" type="default,supl" />
- <apn carrier="TransAsia" mcc="466" mnc="99" apn="internet" type="default,supl" />
- <apn carrier="TransAsia MMS" mcc="466" mnc="99" apn="mms" mmsc="http://mms" mmsproxy="10.1.1.2" mmsport="80" type="mms" />
- <apn carrier="台灣大哥大(TW Mobile) (twm)" mcc="466" mnc="99" apn="twm" type="default,supl" />
- <apn carrier="MMS" mcc="467" mnc="05" apn="KL.M" proxy="" port="" mmsproxy="10.250.155.42" mmsport="8080" mmsc="http://10.250.155.30:38090" user="" password="" type="mms" />
- <apn carrier="KL.M" mcc="467" mnc="06" apn="KL.M" proxy="" port="" mmsproxy="10.250.155.42" mmsport="8080" mmsc="http://10.250.155.30:38090" user="" password="" type="mms" />
- <apn carrier="KL.M" mcc="467" mnc="07" apn="KL.M" proxy="" port="" mmsproxy="10.250.155.42" mmsport="8080" mmsc="http://10.250.155.30:38090" user="" password="" type="mms" />
- <apn carrier="GP-INTERNET" mcc="470" mnc="01" apn="gpinternet" user="" password="" type="default,supl" />
- <apn carrier="GP-MMS" mcc="470" mnc="01" apn="gpmms" proxy="" port="" mmsproxy="10.128.1.2" mmsport="8080" mmsc="http://mms.gpsurf.net/servlets/mms" user="" password="" type="mms" />
- <apn carrier="GP-WAP" mcc="470" mnc="01" apn="gpwap" proxy="10.128.1.2" port="8080" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="Grameenphone" mcc="470" mnc="01" apn="gpinternet" type="default,supl" />
- <apn carrier="Grameenphone MMS" mcc="470" mnc="01" apn="gpmms" mmsc="http://mms.gpsurf.net/servlets/mms" mmsproxy="10.128.1.2" mmsport="8080" type="mms" />
- <apn carrier="Grameenphone WAP" mcc="470" mnc="01" apn="gpinternet" proxy="10.128.1.2" port="8080" type="default,supl" />
- <apn carrier="Grameenphone" mcc="470" mnc="01" apn="gpinterneth" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Robi MMS" mcc="470" mnc="02" apn="wap" mmsc="http://192.168.23.4/was" mmsproxy="192.168.023.007" mmsport="9028" type="mms" />
- <apn carrier="Robi" mcc="470" mnc="02" apn="internet" type="default,supl" />
- <apn carrier="Robi WAP" mcc="470" mnc="02" apn="wap" proxy="10.128.1.2" port="9208" type="default,supl" />
- <apn carrier="Banglalink MMS" mcc="470" mnc="03" apn="blmms" mmsc="http://" mmsproxy="10.10.55.34" mmsport="8799" type="mms" />
- <apn carrier="Banglalink" mcc="470" mnc="03" apn="blweb" type="default,supl" />
- <apn carrier="Banglalink WAP" mcc="470" mnc="03" apn="blwap" proxy="10.10.55.34" port="8799" type="default,supl" />
- <apn carrier="Tele Talk" mcc="470" mnc="04" apn="wap" type="default,supl" />
- <apn carrier="Tele Talk WAP" mcc="470" mnc="04" apn="wap" proxy="192.168.145.101" port="9201" type="default,supl" />
- <apn carrier="Airtel BD" mcc="470" mnc="07" apn="internet" type="default,supl" />
- <apn carrier="Airtel BD MMS" mcc="470" mnc="07" apn="mms" mmsc="http://10.6.0.21/servlets/mms" mmsproxy="10.6.0.2" mmsport="8080" type="mms" />
- <apn carrier="Airtel BD WAP" mcc="470" mnc="07" apn="wap" proxy="10.6.0.2" port="8080" type="default,supl" />
- <apn carrier="Warid BD" mcc="470" mnc="07" apn="internet" type="default,supl" />
- <apn carrier="Warid BD MMS" mcc="470" mnc="07" apn="mms" mmsc="http://mms.waridtel.com.bd/index.jsp" mmsproxy="10.128.5.6" mmsport="8080" type="mms" />
- <apn carrier="Maxis 3g Internet" mcc="502" mnc="12" apn="unet" user="maxis" password="" type="default,supl" />
- <apn carrier="Maxis 3G WAP GPRS" mcc="502" mnc="12" apn="unet" proxy="202.75.133.49" port="80" user="maxis" password="" type="default,supl" />
- <apn carrier="Maxis 3g MMS" mcc="502" mnc="12" apn="unet" proxy="" port="" mmsproxy="202.75.133.49" mmsport="80" mmsc="http://172.16.74.100:10021/mmsc" user="maxis" password="" type="mms" />
- <apn carrier="Maxis Internet" mcc="502" mnc="12" apn="unet" user="maxis" password="wap" mmsc="http://172.16.74.100:10021/mmsc" mmsproxy="202.75.133.49" mmsport="80" authtype="1" type="default,supl,mms" />
- <apn carrier="Maxis 2G Internet" mcc="502" mnc="12" apn="net" user="maxis" password="wap" type="default,supl" />
- <apn carrier="Maxis 2G MMS" mcc="502" mnc="12" apn="net" user="maxis" password="wap" server="202.75.133.49" mmsc="http://172.16.74.100:10021/mmsc" mmsproxy="202.75.133.49" mmsport="80" type="mms" />
- <apn carrier="Maxis 3G Internet" mcc="502" mnc="12" apn="unet" user="maxis" password="wap" type="default,supl" />
- <apn carrier="Maxis 3G MMS" mcc="502" mnc="12" apn="unet" user="maxis" password="wap" server="202.75.133.49" mmsc="http://172.16.74.100:10021/mmsc" mmsproxy="202.75.133.49" mmsport="80" type="mms" />
- <apn carrier="Xpax" mcc="502" mnc="13" apn="celcom" type="default,supl" />
- <apn carrier="Xpax MMS" mcc="502" mnc="13" apn="celcom3g" user="mms" password="mms" mmsc="http://mms.celcom.net.my" mmsproxy="10.128.1.242" mmsport="8080" type="mms" />
- <apn carrier="DiGi Internet" mcc="502" mnc="16" apn="3gdgnet" user="" password="" type="default,supl" />
- <apn carrier="DiGi MMS" mcc="502" mnc="16" apn="digimms" proxy="" port="" mmsproxy="203.92.128.160" mmsport="80" mmsc="http://mms.digi.com.my/servlets/mms" user="mms" password="mms" type="mms" />
- <apn carrier="DiGi GPRS" mcc="502" mnc="16" apn="digiwap" proxy="203.92.128.188" port="80" user="digi" password="" type="default,supl" />
- <apn carrier="Digi MMS" mcc="502" mnc="16" apn="digimms" user="mms" password="mms" mmsc="http://mms.digi.com.my/servlets/mms" mmsproxy="203.92.128.160" mmsport="80" type="mms" />
- <apn carrier="Digi" mcc="502" mnc="16" apn="diginet" user="digi" password="digi" type="default,supl" />
- <apn carrier="U Mobile Internet" mcc="502" mnc="18" apn="my3g" user="" password="" type="default,supl" />
- <apn carrier="U Mobile MMS" mcc="502" mnc="18" apn="my3g" proxy="" port="" mmsproxy="10.30.5.11" mmsport="8080" mmsc="http://10.30.3.11/servlets/mms" user="" password="" type="mms" />
- <apn carrier="U Mobile Internet" mcc="502" mnc="18" apn="my3g" type="default,supl" />
- <apn carrier="U Mobile MMS" mcc="502" mnc="18" apn="my3g" mmsc="http://10.30.3.11/servlets/mms" mmsproxy="10.30.5.11" mmsport="8080" type="mms" />
- <apn carrier="celcom" mcc="502" mnc="19" apn="celcom3g" user="" password="" type="default,supl" />
- <apn carrier="celcom MMS" mcc="502" mnc="19" apn="celcom3G" proxy="" port="" mmsproxy="10.128.1.242" mmsport="8080" mmsc="http://mms.celcom.net.my" user="" password="" type="mms" />
- <apn carrier="Celcom 3G Internet" mcc="502" mnc="19" apn="celcom3g" type="default,supl" />
- <apn carrier="Celcom 3G MMS" mcc="502" mnc="19" apn="celcom3g" mmsc="http://mms.celcom.net.my" mmsproxy="10.128.1.242" mmsport="8080" type="mms" />
- <apn carrier="Celcom 2G Internet" mcc="502" mnc="19" apn="celcom.net.my" type="default,supl" />
- <apn carrier="Celcom 2G MMS" mcc="502" mnc="19" apn="mms.celcom.net.my" mmsc="http://mms.celcom.net.my" mmsproxy="10.128.1.242" mmsport="8080" type="mms" />
- <apn carrier="Telstra Internet" mcc="505" mnc="01" apn="telstra.wap" user="" password="" type="default,supl" />
- <apn carrier="Telstra Broadband" mcc="505" mnc="01" apn="telstra.internet" user="" password="" type="dun" />
- <apn carrier="Telstra MMS" mcc="505" mnc="01" apn="telstra.mms" proxy="" port="" mmsproxy="10.1.1.180" mmsport="80" mmsc="http://mmsc.telstra.com:8002" user="" password="" type="mms" />
- <apn carrier="Telstra MMS" mcc="505" mnc="01" 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="01" apn="Telstra.wap" type="default,supl" />
- <apn carrier="Telstra w/ Portal" mcc="505" mnc="01" apn="telstra.internet" proxy="10.1.1.181" port="80" mmsc="http://mmsc.telstra.com:8002" mmsproxy="10.1.1.181" mmsport="80" type="default,supl,mms" />
- <apn carrier="Telstra 3G Pay by Time" mcc="505" mnc="01" apn="telstra.pcpack" password="telstra" type="default,supl,mms" />
- <apn carrier="Optus Preconnect" mcc="505" mnc="02" apn="preconnect" user="" password="" type="default,supl" />
- <apn carrier="Optus Yesinternet" mcc="505" mnc="02" apn="yesinternet" user="" password="" type="default,supl" />
- <apn carrier="Optus ConnectCap" mcc="505" mnc="02" apn="connectcap" user="" password="" type="default,supl" />
- <apn carrier="Optus Connect" mcc="505" mnc="02" apn="connect" user="" password="" type="default,supl" />
- <apn carrier="Optus Business Mobile Broadband" mcc="505" mnc="02" apn="yesbusiness" user="" password="" type="default,supl" />
- <apn carrier="Optus MMS" mcc="505" mnc="02" apn="mms" proxy="" port="" mmsproxy="61.88.190.10" mmsport="8070" mmsc="http://mmsc.optus.com.au:8002/" user="" password="" type="mms" />
- <apn carrier="Optus Streaming" mcc="505" mnc="02" apn="yesinternet" proxy="172.22.1.3" port="554" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="Exetel" mcc="505" mnc="02" apn="exetel1" type="default,supl" />
- <apn carrier="Optus" mcc="505" mnc="02" apn="internet" type="default,supl" />
- <apn carrier="Optus MMS" mcc="505" mnc="02" apn="mms" user="*" password="*" server="*" proxy="202.139.83.152" port="8070" mmsc="http://mmsc.optus.com.au:8002/" mmsproxy="61.88.190.10" mmsport="8070" type="mms" />
- <apn carrier="Virgin AU" mcc="505" mnc="02" apn="virgininternet" user="*" password="*" server="*" type="default,supl" />
- <apn carrier="Virgin AU MMS" mcc="505" mnc="02" apn="virginmms" user="*" password="*" server="*" proxy="202.139.083.152" port="8070" mmsc="http://mms.virginvibe.com.au:8002/" mmsproxy="202.139.083.152" mmsport="8070" type="mms" />
- <apn carrier="Optus Internet" mcc="505" mnc="02" apn="yesinternet" user="*" password="*" server="*" type="default,supl" />
- <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" />
- <apn carrier="3 AU" mcc="505" mnc="06" apn="3services" mmsc="http://mmsc.three.net.au:10021/mmsc" mmsproxy="10.176.57.25" mmsport="8799" type="default,supl,mms"/>
- <apn carrier="VF AU PXT" mcc="505" mnc="07" apn="live.vodafone.com" mmsc="http://pxt.vodafone.net.au/pxtsend" mmsproxy="10.202.2.60" mmsport="8080" type="mms" />
- <apn carrier="VF Internet" mcc="505" mnc="07" apn="vfinternet.au" type="default,supl" />
- <apn carrier="Telstra MMS" mcc="505" mnc="11" 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="11" apn="Telstra.wap" type="default,supl" />
- <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" />
- <apn carrier="Telstra Internet" mcc="505" mnc="72" apn="Telstra.wap" type="default,supl" />
- <apn carrier="Telstra Internet" mcc="505" mnc="72" apn="Telstra.wap" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="VF AU PXT" mcc="505" mnc="88" apn="live.vodafone.com" mmsc="http://pxt.vodafone.net.au/pxtsend" mmsproxy="10.202.2.60" mmsport="8080" type="mms" />
- <apn carrier="VF Internet" mcc="505" mnc="88" apn="vfinternet.au" type="default,supl" />
- <apn carrier="Optus Internet" mcc="505" mnc="90" apn="internet" type="default,supl" />
- <apn carrier="Optus MMS" mcc="505" mnc="90" apn="mms" mmsc="http://mmsc.optus.com.au:8002/" mmsproxy="61.88.190.10" mmsport="8070" type="mms" />
- <apn carrier="Indosat 3G" mcc="510" mnc="01" apn="indosatgprs" proxy="" port="" user="indosat" password="indosat" authtype="1" type="default,supl" />
- <apn carrier="Indosat 3.5G" mcc="510" mnc="01" apn="indosat3g" proxy="" port="" user="indosat" password="indosat" authtype="1" type="default,supl" />
- <apn carrier="Indosat MMS" mcc="510" mnc="01" apn="indosatmms" mmsproxy="10.19.19.19" mmsport="8080" mmsc="http://mmsc.indosat.com" user="indosat" password="indosat" authtype="1" type="mms" />
- <apn carrier="Indosat GPRS" mcc="510" mnc="01" apn="indosatgprs" user="indosat" password="indosat" type="default,supl" />
- <apn carrier="Indosat MMS" mcc="510" mnc="01" apn="indosatmms" user="indosat" password="indosat" mmsc="http://mmsc.indosat.com" mmsproxy="10.19.19.19" mmsport="8080" type="mms" />
- <apn carrier="AXIS internet" mcc="510" mnc="08" apn="axis" proxy="" port="" user="axis" password="123456" authtype="1" type="default,supl" />
- <apn carrier="AXIS MMS" mcc="510" mnc="08" apn="axismms" mmsproxy="10.8.3.8" mmsport="8080" mmsc="http://mmsc.axis" user="axis" password="123456" authtype="1" type="mms" />
- <apn carrier="AXIS" mcc="510" mnc="08" apn="AXIS" user="axis" password="123456" type="default,supl" />
- <apn carrier="AXIS MMS" mcc="510" mnc="08" apn="AXISmms" user="axis" password="123456" mmsc="http://mmsc.AXIS" mmsproxy="10.8.3.8" mmsport="8080" type="mms" />
- <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="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" />
- <apn carrier="Telkomsel" mcc="510" mnc="10" apn="internet" type="default,supl" />
- <apn carrier="Telkomsel MMS" mcc="510" mnc="10" apn="mms" user="wap" password="wap123" mmsc="http://mms.telkomsel.com" mmsproxy="10.1.89.150" mmsport="9201" type="mms" />
- <apn carrier="XL Unlimited" mcc="510" mnc="11" apn="xlunlimited" proxy="202.152.240.50" port="8080" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="XL-GPRS" mcc="510" mnc="11" apn="www.xlgprs.net" proxy="202.152.240.50" port="8080" mmsc="" user="xlgprs" password="proxl" type="default,supl" />
- <apn carrier="XL-MMS" mcc="510" mnc="11" apn="www.xlmms.net" proxy="" port="" mmsproxy="202.152.240.50" mmsport="8080" mmsc="http://mmc.xl.net.id/servlets/mms" user="xlgprs" password="proxl" type="mms" />
- <apn carrier="XL-INTERNET" mcc="510" mnc="11" apn="internet" type="default,supl" />
- <apn carrier="XL-MMS" mcc="510" mnc="11" apn="www.xlmms.net" user="xlgprs" password="proxl" mmsc="http://mmc.xl.net.id/servlets/mms" mmsproxy="202.152.240.50" mmsport="8080" type="mms" />
- <apn carrier="IM3 MMS" mcc="510" mnc="21" apn="indosatmms" user="indosat" password="indosat" mmsc="http://mmsc.indosat.com" mmsproxy="10.19.19.19" mmsport="8080" type="mms" />
- <apn carrier="IM3 Internet" mcc="510" mnc="21" apn="www.indosat-m3.net" user="gprs" password="im3" type="default,supl" />
- <apn carrier="Smartfren4G" mcc="510" mnc="28" apn="Smartfren4G" user="smartfren" password="smartfren" authtype="3" type="default,supl" protocol="IPV4V6" />
- <apn carrier="Smartfren MMS" mcc="510" mnc="28" 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="28" apn="IMS" type="ims" />
- <apn carrier="3 GPRS" mcc="510" mnc="89" apn="3gprs" user="3gprs" password="3gprs" authtype="1" type="default,supl" />
- <apn carrier="3 Unlimited" mcc="510" mnc="89" apn="3data" user="3data" password="3data" authtype="1" type="default,supl" />
- <apn carrier="3mms" mcc="510" mnc="89" apn="3mms" mmsproxy="10.4.0.10" mmsport="3128" mmsc="http://mms.three.co.id" user="3mms" password="3mms" authtype="2" type="mms" />
- <apn carrier="3 ID" mcc="510" mnc="89" apn="3gprs" user="3gprs" password="3gprs" type="default,supl" />
- <apn carrier="3 ID INTERNET" mcc="510" mnc="89" apn="3data" user="3data" password="3data" type="default,supl" />
- <apn carrier="3 ID MMS" mcc="510" mnc="89" apn="3mms" user="3mms" password="3mms" mmsc="http://mmsthree.co.id" mmsproxy="10.4.0.10" mmsport="3128" type="mms" />
- <apn carrier="myGlobe Prepaid" mcc="515" mnc="02" apn="http.globe.com.ph" type="default,supl" />
- <apn carrier="myGlobe Postpaid" mcc="515" mnc="02" apn="internet.globe.com.ph" type="default,supl" />
- <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 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" />
- <apn carrier="SUN SBW" mcc="515" mnc="05" apn="fbband" type="default,supl" />
- <apn carrier="SUN MMS" mcc="515" mnc="05" apn="mms" mmsc="http://mmscenter.suncellular.com.ph" mmsproxy="202.138.159.78" mmsport="8080" type="mms" />
- <apn carrier="TrueMove-H" mcc="520" mnc="00" apn="internet" user="true" password="true" type="default,supl" />
- <apn carrier="TrueMove-H MMS" mcc="520" mnc="00" apn="hmms" user="true" password="true" mmsc="http://mms.trueh.com:8002" mmsproxy="10.4.7.39" mmsport="8080" type="mms" />
- <apn carrier="AIS GPRS Internet" mcc="520" mnc="01" apn="internet" type="default,supl" />
- <apn carrier="AIS MMS" mcc="520" mnc="01" apn="multimedia" mmsc="http://mms.mobilelife.co.th" mmsproxy="203.170.229.34" mmsport="8080" type="mms" />
- <apn carrier="AIS Internet" mcc="520" mnc="03" apn="internet" type="default,supl" />
- <apn carrier="AIS MMS" mcc="520" mnc="03" apn="mms" mmsc="http://mms.ais.co.th" mmsproxy="203.170.229.34" mmsport="8080" type="mms" />
- <apn carrier="DTAC MMS" mcc="520" mnc="05" apn="mms" mmsc="http://mms2.dtac.co.th:8002" mmsproxy="10.10.10.10" mmsport="8080" type="mms" />
- <apn carrier="DTAC GPRS WEB" mcc="520" mnc="05" apn="www.dtac.co.th" type="default,supl" />
- <apn carrier="TOT 3G" mcc="520" mnc="15" apn="internet" type="default,supl" />
- <apn carrier="TOT 3G MMS" mcc="520" mnc="15" apn="mms" mmsc="http://mms.tot3g.net:8002" mmsproxy="10.218.24.83" mmsport="8080" type="mms" />
- <apn carrier="DTAC MMS" mcc="520" mnc="18" apn="mms" mmsc="http://mms.dtac.co.th:8002" mmsproxy="203.155.200.133" mmsport="8080" type="mms" />
- <apn carrier="DTAC GPRS WEB" mcc="520" mnc="18" apn="www.dtac.co.th" type="default,supl" />
- <apn carrier="True" mcc="520" mnc="99" apn="internet" user="true" password="true" type="default,supl" />
- <apn carrier="True MMS" mcc="520" mnc="99" apn="mms" user="true" password="true" mmsc="http://mms.trueworld.net:8002" mmsproxy="10.4.7.39" mmsport="8080" type="mms" />
- <apn carrier="SingTel (PostPaid)" mcc="525" mnc="01" apn="e-ideas" mmsproxy="165.21.42.84" mmsport="8080" mmsc="http://mms.singtel.com:10021/mmsc" type="default,supl,mms" />
- <apn carrier="SingTel (PrePaid)" mcc="525" mnc="01" apn="hicard" mmsproxy="165.21.42.84" mmsport="8080" mmsc="http://mms.singtel.com:10021/mmsc" type="default,supl,mms" />
- <apn carrier="SingTel (PostPaid)" mcc="525" mnc="02" apn="e-ideas" mmsproxy="165.21.42.84" mmsport="8080" mmsc="http://mms.singtel.com:10021/mmsc" type="default,supl,mms" />
- <apn carrier="SingTel (PrePaid)" mcc="525" mnc="02" apn="hicard" mmsproxy="165.21.42.84" mmsport="8080" mmsc="http://mms.singtel.com:10021/mmsc" type="default,supl,mms" />
- <apn carrier="Sunsurf Mobile" mcc="525" mnc="03" apn="sunsurf" type="default,supl" />
- <apn carrier="M1 MMS(3G)" mcc="525" mnc="03" apn="miworld" user="65" password="user123" mmsc="http://mmsgw:8002" mmsproxy="172.16.14.10" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Sunsurf Mobile" mcc="525" mnc="04" apn="sunsurf" type="default,supl" />
- <apn carrier="M1 MMS(3G)" mcc="525" mnc="04" apn="miworld" user="65" password="user123" authtype="1" mmsc="http://mmsgw:8002" mmsproxy="172.16.14.10" mmsport="8080" type="mms" />
- <apn carrier="SH Data Postpaid" mcc="525" mnc="05" apn="shwap" type="default,supl" />
- <apn carrier="SH Data Prepaid" mcc="525" mnc="05" apn="shppd" type="default,supl" />
- <apn carrier="SH MMS Postpaid" mcc="525" mnc="05" apn="shmms" mmsc="http://mms.starhubgee.com.sg:8002/" mmsproxy="10.12.1.80" mmsport="80" type="mms" />
- <apn carrier="B-Mobile MMS" mcc="528" mnc="02" apn="bmobilemms" mmsc="http://mms.bmobile.com.bn/was" mmsproxy="129.9.10.20" mmsport="6500" type="mms" />
- <apn carrier="B-Mobile" mcc="528" mnc="02" apn="bmobilewap" type="default,supl" />
- <apn carrier="DSTCom" mcc="528" mnc="11" apn="dst.internet" user="internet" password="internet" type="default,supl" />
- <apn carrier="DSTCom MMS" mcc="528" mnc="11" apn="dst.mms" user="mms" password="mms" mmsc="http://mms.dst.com.bn/mmsc" mmsproxy="10.100.6.101" mmsport="9201" type="mms" />
- <apn carrier="Vodafone NZ" mcc="530" mnc="01" apn="www.vodafone.net.nz" user="" password="" type="default,supl" />
- <apn carrier="Vodafone NZ-MMS" mcc="530" mnc="01" apn="live.vodafone.com" proxy="" port="" mmsproxy="172.30.38.3" mmsport="8080" mmsc="http://pxt.vodafone.net.nz/pxtsend" user="" password="" type="mms" />
- <apn carrier="Vodafone NZ MMS" mcc="530" mnc="01" apn="live.vodafone.com" mmsc="http://pxt.vodafone.net.nz/pxtsend" mmsproxy="172.030.038.003" mmsport="8080" type="mms" />
- <apn carrier="Vodafone NZ" mcc="530" mnc="01" apn="www.vodafone.net.nz" type="default,supl" />
- <apn carrier="Telecom NZ" mcc="530" mnc="02" apn="internet.telecom.co.nz" type="default,supl" />
- <apn carrier="VFNZ PXT" mcc="530" mnc="02" apn="live.vodafone.com" mmsc="http://pxt.vodafone.net.nz/pxtsend" mmsproxy="172.30.38.3" mmsport="8080" type="mms" />
- <apn carrier="Telecom NZ MMS" mcc="530" mnc="02" apn="wap.telecom.co.nz" mmsc="http://lsmmsc.xtra.co.nz" mmsproxy="210.55.11.73" mmsport="80" type="mms" />
- <apn carrier="VFNZ Internet" mcc="530" mnc="02" apn="www.vodafone.net.nz" type="default,supl" />
- <apn carrier="Telecom NZ" mcc="530" mnc="03" apn="internet.telecom.co.nz" type="default,supl" />
- <apn carrier="Telecom NZ MMS" mcc="530" mnc="03" apn="wap.telecom.co.nz" mmsc="http://lsmmsc.xtra.co.nz" mmsproxy="210.55.11.73" mmsport="80" type="mms" />
- <apn carrier="TelecomDefault" mcc="530" mnc="05" apn="wap.telecom.co.nz" user="" password="" type="default,supl" />
- <apn carrier="TelecomMMS" mcc="530" mnc="05" apn="wap.telecom.co.nz" proxy="" port="" mmsproxy="210.55.11.73" mmsport="8080" mmsc="http://lsmmsc.xtra.co.nz" user="" password="" type="mms" />
- <apn carrier="XT Mobile" mcc="530" mnc="05" apn="internet.telecom.co.nz" type="default,supl" />
- <apn carrier="XT Mobile MMS" mcc="530" mnc="05" apn="wap.telecom.co.nz" mmsc="http://lsmmsc.xtra.co.nz" mmsproxy="210.55.11.73" mmsport="8080" type="mms" />
- <apn carrier="2degrees Internet" mcc="530" mnc="24" apn="internet" type="default,supl" />
- <apn carrier="2degrees MMS" mcc="530" mnc="24" apn="mms" mmsc="http://mms.2degreesmobile.net.nz:48090" mmsproxy="118.148.1.118" mmsport="8080" type="mms" />
- <apn carrier="2 degrees mobile" mcc="530" mnc="24" apn="2degrees" proxy="118.148.1.118" port="8080" user="" password="" mmsc="" type="default,supl,mms" />
- <apn carrier="Digicel Web" mcc="537" mnc="03" apn="internet.digicelpng.com" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="537" mnc="03" apn="wap.digicelpng.com" proxy="" port="" mmsproxy="10.149.83.116" mmsport="8080" mmsc="http://mms.digicelpng.com:8990" user="" password="" type="mms" />
- <apn carrier="Digicel Web" mcc="539" mnc="88" apn="web.digicelpacific.com" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="539" mnc="88" apn="wap.digicelpacific.com" proxy="" port="" mmsproxy="10.150.122.12" mmsport="8080" mmsc="http://mms.digicelpacific.com:8990" user="" password="" type="mms" />
- <apn carrier="Digicel Web" mcc="541" mnc="05" apn="web.digicelpacific.com" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="541" mnc="05" apn="wap.digicelpacific.com" proxy="" port="" mmsproxy="10.150.122.12" mmsport="8080" mmsc="http://mms.digicelpacific.com:8990" user="" password="" type="mms" />
- <apn carrier="vodafone fj" mcc="542" mnc="01" apn="live.vodafone.com.fj" proxy="10.202.2.40" port="8080" mmsproxy="10.202.2.40" mmsport="8080" mmsc="http://pxt.vodafone.net.fj/pxtsend" authtype="3" user="" password="" type="*" />
- <apn carrier="Vodafone FJ MMS" mcc="542" mnc="01" apn="live.vodafone.com.fj" mmsc="http://pxt.vodafone.net.fj/pxtsend" mmsproxy="010.202.002.040" mmsport="9201" type="mms" />
- <apn carrier="Vodafone FJ" mcc="542" mnc="01" apn="vfinternet.fj" type="default,supl" />
- <apn carrier="Digicel Web" mcc="542" mnc="02" apn="web.digicelpacific.com" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="542" mnc="02" apn="wap.digicelpacific.com" proxy="" port="" mmsproxy="10.150.122.12" mmsport="8080" mmsc="http://mms.digicelpacific.com:8990" user="" password="" type="mms" />
- <apn carrier="Digicel FJ MMS" mcc="542" mnc="02" apn="wap.digicelpacific.com" mmsc="http://mms.digicelpacific.com:8990" mmsproxy="10.150.122.12" mmsport="8080" type="mms" />
- <apn carrier="Digicel FJ" mcc="542" mnc="02" apn="web.digicelpacific.com" type="default,supl" />
- <apn carrier="Wap OPT KNC" mcc="546" mnc="01" apn="wap" user="Wap" password="Wap123" proxy="192.168.39.101" port="3130" type="default,supl" />
- <apn carrier="Internet OPT KNC" mcc="546" mnc="01" apn="internet" user="internet" type="default,supl" />
- <apn carrier="3g OPT KNC" mcc="546" mnc="01" apn="3g" user="3g" type="default,supl" />
- <apn carrier="Mms OPT KNC" mcc="546" mnc="01" apn="mms" user="mms" password="mms123" mmsproxy="192.168.39.201" mmsport="3130" mmsc="http://mms.mobitag.nc/mmsc/" type="mms" />
- <apn carrier="Digicel Web" mcc="549" mnc="00" apn="web.digicelsamoa.ws" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="549" mnc="00" apn="wap.digicelpacific.ws" proxy="" port="" mmsproxy="10.148.122.12" mmsport="8080" mmsc="http://mms.digicelsamoa.net:8990" user="" password="" type="mms" />
- <apn carrier="Mobinil" mcc="602" mnc="01" apn="mobinilweb" authtype="2" type="default,supl" />
- <apn carrier="mobinilmms" apn="mobinilmms" mmsc="http://10.7.13.24:8002/" mmsproxy="62.241.155.45" mmsport="8080" mcc="602" mnc="01" authtype="2" type="mms" />
- <apn carrier="Vodafone live!" mcc="602" mnc="02" apn="wap.Vodafone.com.eg" user="wap" password="wap" proxy="163.121.178.2" port="8080" authtype="1" type="default,supl" />
- <apn carrier="Vodafone GPRS Internet" mcc="602" mnc="02" apn="internet.vodafone.net" user="internet" password="internet" authtype="3" type="default,supl" />
- <apn carrier="Vodafone MMS" mcc="602" mnc="02" apn="mms.vodafone.com.eg" user="mms" password="mms" mmsc="http://mms.vodafone.com.eg/servlets/mms" mmsproxy="163.121.178.2" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Vodafone EG" mcc="602" mnc="02" apn="internet.vodafone.net" user="internet" password="internet" type="default,supl" />
- <apn carrier="Vodafone EG MMS" mcc="602" mnc="02" apn="mms.vodafone.com.eg" user="mms" password="mms" mmsc="http://mms.vodafone.com.eg/servlets/mms" mmsproxy="163.121.178.002" mmsport="8080" type="mms" />
- <apn carrier="Etisalat WAP" apn="etisalat" mmsc="http://10.71.131.7:38090" mmsproxy="10.71.130.29" mmsport="8080" mcc="602" mnc="03" authtype="1" type="*" />
- <apn carrier="Etisalat MMS" apn="etisalat" mmsc="http://10.71.131.7:38090" mmsproxy="10.71.130.29" mmsport="8080" mcc="602" mnc="03" type="mms" />
- <apn carrier="Etisalat internet" mcc="602" mnc="03" apn="Etisalat" mmsc="http://10.71.131.7:38090" mmsproxy="10.71.130.29" mmsport="8080" type="default,supl,mms" />
- <apn carrier="Vodafone GPRS Internet" mcc="602" mnc="12" apn="internet.vodafone.net" proxy="" port="" user="internet" password="internet" authtype="2" type="default,supl" />
- <apn carrier="Mobilis" mcc="603" mnc="01" apn="internet" user="internet" password="internet" type="default,supl" />
- <apn carrier="Mobilis MMS" mcc="603" mnc="01" apn="mms" user="mms" password="mms" mmsc="http://172.025.049.009/servlets/mms" mmsproxy="172.25.49.2" mmsport="8080" type="mms" />
- <apn carrier="Djezzy" mcc="603" mnc="02" apn="djezzy.internet" type="default,supl,mms" />
- <apn carrier="Djezzy MMS" mcc="603" mnc="02" apn="djezzy.mms" mmsc="http://172.024.97.152:10021/mmsc" mmsproxy="172.024.97.158" mmsport="8799" type="mms" />
- <apn carrier="Nedjma" mcc="603" mnc="03" apn="internet" user="nedjma" password="nedjma" type="default,supl" />
- <apn carrier="Nedjma MMS" mcc="603" mnc="03" apn="nedjmaMMS" user="mms" password="mms" mmsc="http://10.10.111.1" mmsproxy="192.168.52.3" mmsport="9201" type="mms" />
- <apn carrier="Imédia" mcc="604" mnc="00" apn="wap.meditel.ma" proxy="10.8.8.8" port="8080" user="MEDIWAP" password="MEDIWAP" authtype="1" type="default,supl" />
- <apn carrier="Meditel Internet" mcc="604" mnc="00" apn="internet1.meditel.ma" user="MEDINET" password="MEDINET" authtype="1" type="default,supl" />
- <apn carrier="Meditel MMS" mcc="604" mnc="00" apn="mms.meditel.ma" user="MEDIMMS" password="MEDIMMS" mmsc="http://mms.meditel.ma:8088/mms" mmsproxy="10.8.8.9" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Mobile Zone" mcc="604" mnc="01" apn="wap.iamgprs.ma" proxy="212.217.54.133" port="8080" mmsc="" authtype="1" user="" password="" type="default,supl" />
- <apn carrier="Mobile Internet" mcc="604" mnc="01" apn="www.iamgprs1.ma" authtype="1" user="" password="" type="default,supl" />
- <apn carrier="MMS IAM" mcc="604" mnc="01" apn="Mmsiam" proxy="" port="" mmsproxy="10.16.35.50" mmsport="8080" mmsc="http://mms:8002/" user="" password="" type="mms" />
- <apn carrier="Mobile TV" mcc="604" mnc="01" apn="wap.iamgprs.ma" user="" password="" type="default,supl" />
- <apn carrier="IAM" mcc="604" mnc="01" apn="www.iamgprs1.ma" type="default,supl" />
- <apn carrier="IAM MMS" mcc="604" mnc="01" apn="mmsiam" mmsc="http://mms:8002" mmsproxy="10.16.35.50" mmsport="8080" type="default,supl,mms"/>
- <apn carrier="weborange" mcc="605" mnc="01" apn="weborange" proxy="10.12.1.52" port="8080" type="default,supl" />
- <apn carrier="MMS Orange" apn="mms.otun" mmsc="https://mms.orange.tn" mmsproxy="10.12.1.52" mmsport="8080" mcc="605" mnc="01" type="mms" />
- <apn carrier="Orange TN" mcc="605" mnc="01" apn="keypro" type="default,supl" />
- <apn carrier="weborange" mcc="605" mnc="01" apn="weborange" type="default,supl" />
- <apn carrier="Orange MMS" mcc="605" mnc="01" apn="mms.otun" mmsc="http://mms.orange.tn" mmsproxy="10.12.1.52" mmsport="8080" type="mms" />
- <apn carrier="Tunisia Telecom MMS" mcc="605" mnc="02" apn="mms.tn" mmsc="http://192.168.0.3:19090/was" mmsproxy="192.168.0.2" mmsport="8080" type="mms" />
- <apn carrier="Tunisia Telecom WAP" mcc="605" mnc="02" apn="wap.tn" proxy="192.168.0.2" port="8080" user="wap@tt1" password="wap" type="default,supl" />
- <apn carrier="Tunisia Telecom Internet" mcc="605" mnc="02" apn="gprs.tn" proxy="" port="" user="mobinet" password="mobinet" type="default,supl" />
- <apn carrier="Tunisie Télécom TN" mcc="605" mnc="02" apn="internet.tn" type="default,supl" />
- <apn carrier="Tunisiana MMS" mcc="605" mnc="03" apn="mms.tunisiana.com" mmsproxy="10.3.2.100" mmsport="9201" mmsc="http://192.168.0.3:19090/was" user="mms" password="mms" type="mms" />
- <apn carrier="Tunisiana Wap" mcc="605" mnc="03" apn="internet.tunisiana.com" proxy="10.3.2.99" port="8080" user="internet" password="internet" type="default,supl" />
- <apn carrier="Ooredoo TN" mcc="605" mnc="03" apn="internet.ooredoo.tn" type="default,supl" />
- <apn carrier="Libyana MMS" mcc="606" mnc="00" apn="mms" mmsc="http://62.240.62.180:80" mmsproxy="192.168.8.148" mmsport="8000" type="mms" />
- <apn carrier="Libyana" mcc="606" mnc="00" apn="wap" proxy="192.168.8.148" port="8000" type="default,supl" />
- <apn carrier="Al-Madar MMS" mcc="606" mnc="01" apn="almadar.mms" mmsc="http://almadar.mms/servlets/mms" mmsproxy="41.208.82.50" mmsport="8080" type="mms" />
- <apn carrier="Al-Madar" mcc="606" mnc="01" apn="almadar.net" type="default,supl" />
- <apn carrier="Africell Gambia" mcc="607" mnc="02" apn="africellnet" type="default,supl" />
- <apn carrier="Orange WAP" apn="wap" proxy="172.16.30.9" port="8080" user="wap" password="wap" mcc="608" mnc="01" type="default,supl" />
- <apn carrier="Orange MMS" apn="mms" user="mms" password="mms" mmsc="http://mmsalize/servlets/mms" mmsproxy="172.16.30.9" mmsport="8080" mcc="608" mnc="01" type="mms" />
- <apn carrier="Orange GPRS" mcc="608" mnc="01" apn="internet" type="default,supl" />
- <apn carrier="Orange MMS SN" mcc="608" mnc="01" apn="mms" user="mms" password="mms" mmsc="http://mmsalize/servlets/mms" mmsproxy="172.16.30.9" mmsport="8080" type="mms" />
- <apn carrier="Orange Wap SN" mcc="608" mnc="01" apn="wap" user="wap" password="wap" proxy="172.16.30.9" port="8080" type="default,supl" />
- <apn carrier="Orange Web SN" mcc="608" mnc="01" apn="internet" user="internet" password="internet" type="default,supl" />
- <apn carrier="Orange Wap" apn="wap" proxy="10.109.4.35" port="8080" user="wap" password="wap" mcc="610" mnc="02" type="default,supl" />
- <apn carrier="Orange MMS" apn="mms" user="mms" password="mms" mmsc="http://10.109.6.2/servlets/mms" mmsproxy="10.109.4.35" mmsport="8080" mcc="610" mnc="02" type="mms" />
- <apn carrier="Orange ML" mcc="610" mnc="02" apn="internet" user="internet" password="internet" type="default,supl" />
- <apn carrier="Orange ML MMS" mcc="610" mnc="02" apn="mms" user="mms" password="mms" mmsc="http://10.109.6.2/servlets/mms" mmsproxy="10.109.4.35" mmsport="8080" type="mms" />
- <apn carrier="Orange Wap ML" mcc="610" mnc="02" apn="wap" user="wap" password="wap" proxy="10.109.4.35" port="8080" type="default,supl" />
- <apn carrier="OWORLD" mcc="612" mnc="03" apn="orangeciwap" proxy="172.20.4.33" port="8080" user="wap" password="wap" type="default,supl" />
- <apn carrier="Omms" mcc="612" mnc="03" apn="orangecimms" user="mms" password="mms" mmsc="http://172.20.6.1/servlets/mms" mmsproxy="172.20.4.33" mmsport="8080" type="mms" />
- <apn carrier="Omms CI" mcc="612" mnc="03" apn="orangecimms" user="mms" password="mms" mmsc="http://172.20.6.1/servlets/mms" mmsproxy="172.20.4.33" mmsport="8080" type="mms" />
- <apn carrier="OWORLD CI" mcc="612" mnc="03" apn="orangeciwap" user="wap" password="wap" proxy="172.20.4.33" port="8080" type="default,supl" />
- <apn carrier="MTN CI MMS" mcc="612" mnc="05" apn="mms.mtn.ci" mmsc="http://mms.mtn.ci/mms/wapenc" mmsproxy="172.16.100.5" mmsport="9201" type="mms" />
- <apn carrier="MTN CI" mcc="612" mnc="05" apn="web.mtn.ci" server="*" type="default,supl" />
- <apn carrier="Orange MMS" mcc="614" mnc="04" apn="orange.mms" user="orange" password="orange" mmsc="http://10.10.10.35:38090/was" mmsproxy="10.10.10.36" mmsport="8080" type="mms" />
- <apn carrier="Orange Internet" mcc="614" mnc="04" apn="orange.ne" type="default,supl" />
- <apn carrier="Orange World" mcc="617" mnc="01" apn="Orangeworld" proxy="10.20.3.9" port="8080" type="default,supl" />
- <apn carrier="Orange MMS" mcc="617" mnc="01" apn="orangemms" user="mmsc" password="mmsc" mmsc="http://10.2.1.20:8514" mmsproxy="10.2.1.20" mmsport="8080" type="mms" />
- <apn carrier="Orange Internet" mcc="617" mnc="01" apn="orange" type="default,supl" />
- <apn carrier="Africell Sierra Leone" mcc="619" mnc="03" apn="africellnet" type="default,supl" />
- <apn carrier="MTN MMS" mcc="620" mnc="01" apn="MMS" mmsproxy="172.17.3.5" mmsport="8080" mmsc="http://172.17.3.7" type="mms" />
- <apn carrier="MTN INTERNET" mcc="620" mnc="01" apn="WAP" proxy="172.17.3.5" port="8080" type="default,supl" />
- <apn carrier="internet" mcc="620" mnc="02" apn="browse" type="default,supl" />
- <apn carrier="MMS" mcc="620" mnc="02" apn="MMS" mmsproxy="172.24.97.1" mmsport="8080" mmsc="http://mms.onetouch.com.gh/mmsc" type="mms" />
- <apn carrier="Tigo MMS" mcc="620" mnc="03" apn="wap.tigo.com.gh" mmsproxy="10.4.1.7" mmsport="8080" mmsc="http://mmsc.tigo.com.gh:19090" type="mms" />
- <apn carrier="Tigo WEB1" mcc="620" mnc="03" apn="web.tigo.com.gh" type="default,supl" />
- <apn carrier="Tigo WEB2" mcc="620" mnc="03" apn="tigo.3G" type="default,supl" />
- <apn carrier="Tigo WAP" mcc="620" mnc="03" apn="wap.tigo.com.gh" type="default,supl" />
- <apn carrier="Zain WAP" mcc="620" mnc="06" apn="wap" proxy="10.93.85.88" port="9401" type="default,supl" />
- <apn carrier="Zain MMS" mcc="620" mnc="06" apn="MMS" mmsproxy="10.93.85.88" mmsport="9401" mmsc="http://zainmms/servlets/mms" type="mms" />
- <apn carrier="Zain NG" mcc="621" mnc="20" apn="internet.ng.zain.com" type="default,supl" />
- <apn carrier="Visafone" mcc="621" mnc="25" apn="#777" proxy="192.168.165.201" port="8080" mmsc="" user="wap@wap.com" password="wap" authtype="3" type="default,supl" />
- <apn carrier="APTWAP" mcc="621" mnc="25" apn="#777" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="MTN NG" mcc="621" mnc="30" apn="web.gprs.mtnnigeria.net" user="web" password="web" proxy="10.199.212.2" type="default,supl" />
- <apn carrier="MTN NG MMS" mcc="621" mnc="30" apn="web.gprs.mtnnigeria.net" user="web" password="web" mmsc="http://10.199.212.8/servlets/mms" mmsproxy="10.199.212.2" mmsport="8080" type="mms" />
- <apn carrier="Glo Mobile Internet" mcc="621" mnc="50" apn="gloflat" user="flat" password="flat" proxy="10.100.98.22" type="default,supl" />
- <apn carrier="Glo PAYU" mcc="621" mnc="50" apn="glosecure" type="default,supl" />
- <apn carrier="Glo MMS" mcc="621" mnc="50" apn="glomms" user="mms" password="mms" mmsc="http://mms.gloworld.com/mmsc" mmsproxy="010.100.082.004" mmsport="3130" type="mms" />
- <apn carrier="Glo" mcc="621" mnc="50" apn="glo3gvideo" proxy="10.100.98.22" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Etisalat Internet" mcc="621" mnc="60" apn="etisalat" user="" password="" authtype="3" type="*" />
- <apn carrier="Etisalat NG" mcc="621" mnc="60" apn="etisalat" type="default,supl" />
- <apn carrier="Etisalat NG MMS" mcc="621" mnc="60" apn="etisalat" mmsc="http://10.71.170.30:38090/was" mmsproxy="10.71.170.5" mmsport="8080" type="mms" />
- <apn carrier="MTN CM" mcc="624" mnc="01" apn="INTERNET" user="guest" password="guest" type="default,supl" />
- <apn carrier="Orange CM WAP" mcc="624" mnc="02" apn="orangecmgprs" proxy="192.168.122.101" port="8080" user="orange" password="orange" type="default,supl" />
- <apn carrier="Orange CM MMS" mcc="624" mnc="02" apn="orangecmgprs" user="orange" password="orange" mmsc="http://mms.orange.cm" mmsproxy="192.168.122.101" mmsport="8080" type="mms" />
- <apn carrier="Orange CM" mcc="624" mnc="02" apn="orangecmgprs" user="orange" password="orange" proxy="192.168.122.101" port="8080" mmsc="http://mms.orange.cm" mmsproxy="192.168.122.101" mmsport="8080" type="default,mms" />
- <apn carrier="CVMóvel Internet" mcc="625" mnc="01" apn="internet-aac" proxy="" user="" password="" type="default" />
- <apn carrier="Orange GQ MMS" mcc="627" mnc="01" apn="orangemms" user="mms" password="mms" mmsc="http://192.168.17.34/servlets/mms" mmsproxy="192.168.17.2" mmsport="8080" type="mms" />
- <apn carrier="Orange GQ" mcc="627" mnc="01" apn="orangenet" user="net" password="net" type="default,supl" />
- <apn carrier="Vodacom CD" mcc="630" mnc="01" apn="vodanet" user="vodalive" type="default,supl" />
- <apn carrier="Vodacom CD" mcc="630" mnc="01" apn="vodanet" proxy="" port="" user="vodalive" password="" mmsc="" type="default,supl" />
- <apn carrier="Unitel Internet" mcc="631" mnc="02" apn="internet.unitel.co.ao" type="default,supl" />
- <apn carrier="Unitel MMS" mcc="631" mnc="02" apn="mms.unitel.co.ao" proxy="" port="" mmsproxy="10.128.2.70" mmsport="8080" mmsc="http://10.128.4.10/wapenc" type="mms" />
- <apn carrier="Movicel Angola" mcc="631" mnc="04" apn="internet.movicel.co.ao" type="default,supl" />
- <apn carrier="Movicel Angola MMS" mcc="631" mnc="04" apn="mms.movicel.co.ao" mmsc="http://10.33.14.180:8080" mmsproxy="10.33.15.133" mmsport="8080" type="mms" />
- <apn carrier="Zain Internet" mcc="634" mnc="01" apn="internet" authtype="1" type="default,supl" />
- <apn carrier="Zain MMS" mcc="634" mnc="01" apn="MMS" mmsc="http://mms.zain.sd" mmsproxy="172.20.2.124" mmsport="80" authtype="1" type="mms" />
- <apn carrier="MTN" mcc="634" mnc="02" apn="internet" authtype="1" type="default,supl" />
- <apn carrier="MMS" mcc="634" mnc="02" apn="mms" mmsc="http://mms.mtn.sd/mmsc" mmsproxy="172.24.97.20" mmsport="8080" type="mms" />
- <apn carrier="Sudina ONE" apn="sudaninet" user="sudani" password="sudani" mcc="634" mnc="07" authtype="1" type="default,supl" />
- <apn carrier="Sudani One MMS" mcc="634" mnc="07" apn="sudanimms" user="sudani" password="sudani" mmsc="http://10.50.182.30:38090/was" mmsproxy="10.50.189.114" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Tigo Connection" mcc="635" mnc="13" apn="web.tigo.rw" user="" password="" type="default,supl" />
- <apn carrier="MTN" mcc="636" mnc="01" apn="etc.com" user="etc" password="etc" type="*" />
- <apn carrier="Safaricom Live" mcc="639" mnc="02" apn="safaricom" proxy="172.22.2.38" port="8080" authtype="1" type="default,supl" />
- <apn carrier="Safaricom MMS" mcc="639" mnc="02" apn="safaricom" proxy="" port="" mmsproxy="172.22.2.38" mmsport="8080" mmsc="http://mms.gprs.safaricom.com" authtype="1" type="mms" />
- <apn carrier="Safaricom" mcc="639" mnc="02" apn="wap.safaricom.com" user="saf" password="data" mmsc="http://mms.gprs.safaricom.com" type="default,supl,mms" />
- <apn carrier="Airtel internet" mcc="639" mnc="03" apn="ke.celtel.com" proxy="172.30.8.50" port="8080" mmsc="" user="wap" password="wap" authtype="1" type="default,supl" />
- <apn carrier="yu" mcc="639" mnc="05" apn="internet" proxy="10.4.16.6" port="8080" type="default,supl" />
- <apn carrier="yu MMS" mcc="639" mnc="05" apn="iternet" mmsc="http://10.4.16.22/servlets/mms" mmsproxy="10.4.16.6" type="mms" />
- <apn carrier="Orange Ke" mcc="639" mnc="07" apn="bew.orange.co.ke" user="" password="" type="default,supl" />
- <apn carrier="Orange wap" mcc="639" mnc="07" apn="wap.orange.co.ke" proxy="10.36.17.130" port="8080" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="Orange MMS" mcc="639" mnc="07" apn="mms.orange.co.ke" proxy="" port="" mmsproxy="10.36.17.130" mmsport="8080" mmsc="http://10.36.16.5/servlets/mms" user="" password="" type="mms" />
- <apn carrier="Orange KE" mcc="639" mnc="07" apn="bew.orange.co.ke" user="orange" password="orange" type="default,supl" />
- <apn carrier="Orange net KE" mcc="639" mnc="07" apn="wap.orange.co.ke" type="default,supl" />
- <apn carrier="Orange MMS" mcc="639" mnc="07" apn="mms.orange.co.ke" mmsproxy="10.36.16.5" mmsport="8080" mmsc="http://10.36.16.5/servlets/mms" type="mms" />
- <apn carrier="Vodacom Internet" mcc="640" mnc="04" apn="internet" user="" password="" type="default,supl" />
- <apn carrier="Vodacom MMS" mcc="640" mnc="04" apn="MMS" proxy="" port="" mmsproxy="10.154.0.8" mmsport="9401" mmsc="http://10.154.0.12/mms/" user="" password="" type="mms" />
- <apn carrier="Vodacom WAP" mcc="640" mnc="04" apn="wap" proxy="10.154.0.8" port="9401" type="default,supl" />
- <apn carrier="Airtel Tanzania" mcc="640" mnc="05" apn="internet" type="default,supl" />
- <apn carrier="Airtel UG" mcc="641" mnc="01" apn="web.ug.zain.com" type="default,supl" />
- <apn carrier="MTN UG" mcc="641" mnc="10" apn="yellopix.mtn.co.ug" type="default,supl" />
- <apn carrier="MTN" mcc="641" mnc="10" apn="yellopix.men.co.ug" proxy="10.120.0.138" port="8080" mmsproxy="10.120.0.138" mmsport="8080" mmsc="http://mtn.mmsc/servlets/mms" type="*" />
- <apn carrier="Uganda Telecom" mcc="641" mnc="11" apn="utweb" type="default,supl" />
- <apn carrier="ORANGE WAP" mcc="641" mnc="14" apn="orange.ug" proxy="10.201.20.4" port="9201" type="default,supl" />
- <apn carrier="Orange MMS" mcc="641" mnc="14" apn="orangemms" proxy="" port="" mmsproxy="10.201.20.4" mmsport="9201" mmsc="http://10.201.20.5" type="mms" />
- <apn carrier="Orange Internet UG" mcc="641" mnc="14" apn="orange.ug" type="default,supl" />
- <apn carrier="Orange MMS" mcc="641" mnc="14" apn="orangemms" mmsc="http://mms/" type="mms" />
- <apn carrier="Orange UG" mcc="641" mnc="14" apn="orange.ug" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Waridtel UG" mcc="641" mnc="22" apn="web.waridtel.co.ug" type="default,supl" />
- <apn carrier="Africell Burundi" mcc="642" mnc="02" apn="africellnet" type="default,supl" />
- <apn carrier="Zambia WAP" mcc="645" mnc="01" apn="wap" proxy="10.150.0.140" port="8080" type="default,supl" />
- <apn carrier="Zambia MMS" mcc="645" mnc="01" apn="mms" proxy="" port="" mmsproxy="10.150.0.140" mmsport="9201" mmsc="http://10.150.0.130/servlets/mms" type="mms" />
- <apn carrier="MTN MMS" mcc="645" mnc="02" apn="mms" proxy="" port="" mmsproxy="10.110.22.20" mmsport="8080" mmsc="http://010.110.022.12:38090" type="mms" />
- <apn carrier="MTN WAP" mcc="645" mnc="02" apn="wap" proxy="10.110.22.20" port="8080" type="default,supl" />
- <apn carrier="MTN GPRS" mcc="645" mnc="02" apn="Internet" type="default,supl" />
- <apn carrier="AirtelWAP" mcc="646" mnc="01" apn="wap.mg.airtel.com" proxy="10.77.48.50" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="AirtelWEB" mcc="646" mnc="01" apn="internet.mg.airtel.com" proxy="10.77.48.50" port="8080" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="AirtelMMS" mcc="646" mnc="01" apn="mms.mg.airtel.com" proxy="" port="" user="" password="" mmsc="http://10.77.48.35/servlets/mms" mmsproxy="10.77.48.50" mmsport="8080" type="mms" />
- <apn carrier="Orangenet" mcc="646" mnc="02" apn="orangenet" proxy="" port="" user="" password="" type="default,supl" />
- <apn carrier="Orange World" mcc="646" mnc="02" apn="orangeworld" proxy="10.150.0.115" port="8080" user="world" password="orange" type="default,supl" />
- <apn carrier="Orange MMS" mcc="646" mnc="02" apn="orangemms" user="mms" password="orange" mmsc="http://10.152.10.70:38090" mmsproxy="10.150.0.115" mmsport="8080" type="mms" />
- <apn carrier="Orange MG MMS" mcc="646" mnc="02" apn="orangemms" user="mms" password="orange" mmsc="http://10.152.10.70.38090" mmsproxy="10.150.0.115" mmsport="8080" type="mms" />
- <apn carrier="Orange World MG" mcc="646" mnc="02" apn="orangeworld" user="world" password="orange" proxy="10.150.0.115" port="8080" type="default,supl" />
- <apn carrier="Orange MG" mcc="646" mnc="02" apn="orangenet" type="default,supl" />
- <apn carrier="TELMA GPRS" mcc="646" mnc="04" apn="internet" proxy="" port="" mmsc="" type="default,supl" />
- <apn carrier="TELMA MMS" mcc="646" mnc="04" apn="mms" proxy="" port="" mmsc="http://10.6.4.34:1981" mmsproxy="10.6.4.34" mmsport="8080" type="mms" />
- <apn carrier="Orange World" mcc="647" mnc="00" apn="orangerun" proxy="192.168.010.100" port="8080" user="orange" password="orange" type="default,supl" />
- <apn carrier="Orange MMS" mcc="647" mnc="00" apn="orangerun.acte" proxy="" port="" mmsproxy="192.168.10.200" mmsport="8080" mmsc="http://mms.orange.re" user="orange" password="orange" type="mms" />
- <apn carrier="Internet" mcc="647" mnc="00" apn="orangerun" user="orange" password="orange" type="default,supl" />
- <apn carrier="Orange MMS" mcc="647" mnc="00" apn="orangerun.acte" user="orange" password="orange" mmsc="http://mms.orange.re/" mmsproxy="192.168.010.200" mmsport="8080" type="mms" />
- <apn carrier="Orange RE MMS" mcc="647" mnc="00" apn="orangerun.acte" user="orange" password="orange" mmsc="http://mms.orange.re/" mmsproxy="192.168.010.200" mmsport="8080" type="mms" />
- <apn carrier="Orange RE" mcc="647" mnc="00" apn="orangerun" user="orange" password="orange" type="default,supl" />
- <apn carrier="Orange MMS Réunion" mcc="647" mnc="00" apn="orangerun.acte" user="orange" password="orange" mmsc="http://mms.orange.re" mmsproxy="192.168.10.200" mmsport="8080" type="mms" />
- <apn carrier="Onlyplanet" mcc="647" mnc="02" apn="onlywap" proxy="10.4.85.50" port="8080" user="only" password="only" type="default,supl" />
- <apn carrier="onlymms" mcc="647" mnc="02" apn="onlymms" proxy="" port="" mmsproxy="10.4.85.50" mmsport="8080" mmsc="http://10.4.85.50:8514" user="only" password="only" type="mms" />
- <apn carrier="WAP GPRS SRR" mcc="647" mnc="10" apn="wapsfr" proxy="10.0.224.161" port="8080" mmsc="" user="wap" password="wap" type="default,supl" />
- <apn carrier="MMS GPRS SRR" mcc="647" mnc="10" apn="mmssfr" proxy="" port="" mmsproxy="10.0.224.145" mmsport="8080" mmsc="http://mms" user="mms" password="mms" type="mms" />
- <apn carrier="WEB GPRS SRR" mcc="647" mnc="10" apn="websfr" type="default,supl" />
- <apn carrier="SFR MMS" mcc="647" mnc="10" apn="mmssfr" mmsc="http://mms" mmsproxy="10.0.224.145" mmsport="8080" type="mms" />
- <apn carrier="SFR NET" mcc="647" mnc="10" apn="sl2sfr" type="default,supl" />
- <apn carrier="Econet" mcc="648" mnc="04" apn="econet.net" user="" password="" type="default,supl" />
- <apn carrier="TNM" mcc="650" mnc="01" apn="internet" type="default,supl" />
- <apn carrier="Mascom_Internet" mcc="652" mnc="01" apn="internet.mascom" user="" password="" type="default,supl" />
- <apn carrier="Mascom_Wap" mcc="652" mnc="01" apn="wap.mascom" proxy="192.168.33.138" port="8080" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="Orange BW MMS" mcc="652" mnc="02" apn="mms.orange.co.bw" mmsc="http://10.0.0.242/servlets/mms" mmsproxy="10.0.0.226" mmsport="8080" type="mms" />
- <apn carrier="Orange WAP BW" mcc="652" mnc="02" apn="internet.orange.co.bw" proxy="10.0.0.226" port="8080" type="default,supl" />
- <apn carrier="MTN" mcc="653" mnc="10" apn="mymtn.co.sz" proxy="" port="" user="" password="" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="Vlive!" mcc="655" mnc="01" apn="internet" proxy="196.6.128.12" port="8080" mmsc="" user="" password="" authtype="3" type="default,supl" />
- <apn carrier="Vlive!MMS" mcc="655" mnc="01" apn="mms.vodacom.net" proxy="" port="" mmsproxy="196.6.128.13" mmsport="8080" mmsc="http://mmsc.vodacom4me.co.za" user="" password="" authtype="3" type="mms" />
- <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="TelkomSA internet" mcc="655" mnc="02" apn="internet" type="default,supl" />
- <apn carrier="TelkomSA 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="*" />
- <apn carrier="Cell C MMS" mcc="655" mnc="07" apn="mms" mmsc="http://mms.cmobile.co.za" mmsproxy="196.031.116.250" mmsport="8080" type="mms" />
- <apn carrier="Virgin Mobile SA Internet" mcc="655" mnc="07" apn="vdata" type="default,supl" />
- <apn carrier="Virgin Mobile SA Internet" mcc="655" mnc="07" apn="vmms" mmsc="http://mms.virginmobile.co.za" mmsproxy="196.31.116.242" mmsport="8080" type="mms" />
- <apn carrier="MTN" mcc="655" mnc="10" apn="myMTN" proxy="196.11.240.251" port="8080" mmsc="" user="mtnwap" password="mtnwap" type="default,supl" />
- <apn carrier="MTN MMS" mcc="655" mnc="10" apn="myMTN" proxy="" port="" mmsproxy="196.11.240.241" mmsport="8080" mmsc="" user="mtnmms" password="mtnmms" type="mms" />
- <apn carrier="MTN-WAP" mcc="655" mnc="10" apn="myMTN" proxy="196.11.240.251" port="9201" mmsc="" user="mtnwap" password="mtnwap" authtype="1" type="default,supl" />
- <apn carrier="MTN SA Web" mcc="655" mnc="10" apn="internet" type="default,supl" />
- <apn carrier="MTN ZA" mcc="655" mnc="10" apn="myMTN" user="mtn" password="mtn" server="*" type="default,supl" />
- <apn carrier="INTERNET TIGO GT" mcc="704" mnc="02" apn="internet.tigo.gt" user="" password="" proxy="" port="" type="default,supl" />
- <apn carrier="MMS TIGO GT" mcc="704" mnc="02" apn="mms.tigo.gt" user="" password="" mmsproxy="10.16.17.12" mmsport="8888" mmsc="http://mms" type="mms" />
- <apn carrier="Movistar INTERNET" mcc="704" mnc="03" apn="internet.movistar.gt" user="movistargt" password="movistargt" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="704" mnc="03" apn="mms.movistar.gt" proxy="" port="" mmsproxy="10.12.22.1" mmsport="80" mmsc="http://mms.movistar.gt" user="movistargt" password="movistargt" type="mms" />
- <apn carrier="Movistar INTERNET" mcc="704" mnc="030" apn="internet.movistar.gt" user="movistargt" password="movistargt" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="704" mnc="030" apn="mms.movistar.gt" proxy="" port="" mmsproxy="10.12.22.1" mmsport="80" mmsc="http://mms.movistar.gt" user="movistargt" password="movistargt" type="mms" />
- <apn carrier="Claro SV" mcc="706" mnc="01" apn="internet.claro.sv" type="default,supl" />
- <apn carrier="Claro SV MMS" mcc="706" mnc="01" apn="mms.claro.sv" mmsc="http://mms.claro.sv" mmsproxy="216.230.133.66" mmsport="8080" type="mms" />
- <apn carrier="Digicel Web" mcc="706" mnc="02" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="706" mnc="02" apn="wap" proxy="" port="" mmsproxy="172.26.5.12" mmsport="8080" mmsc="http://mms.digicelgroup.com" user="" password="" type="mms" />
- <apn carrier="Digicel SV" mcc="706" mnc="02" apn="wap.digicelsv.com" type="default,supl" />
- <apn carrier="Digicel SV MMS" mcc="706" mnc="02" apn="wap.digicelsv.com" mmsc="http://172.26.5.132/servlets/mms" mmsproxy="172.26.5.12" mmsport="8080" type="mms" />
- <apn carrier="INTERNET TIGO SV" mcc="706" mnc="03" apn="internet.tigo.sv" user="" password="" proxy="" port="" type="default,supl" />
- <apn carrier="MMS TIGO SV" mcc="706" mnc="03" apn="mms.tigo.sv" user="" password="" mmsproxy="10.16.17.12" mmsport="8888" mmsc="http://mms" type="mms" />
- <apn carrier="INTERNET TIGO SV" mcc="706" mnc="030" apn="internet.tigo.sv" user="" password="" proxy="" port="" type="default,supl" />
- <apn carrier="MMS TIGO SV" mcc="706" mnc="030" apn="mms.tigo.sv" user="" password="" mmsproxy="10.16.17.12" mmsport="8888" mmsc="http://mms" type="mms" />
- <apn carrier="Movistar MMS" mcc="706" mnc="04" apn="mms.movistar.sv" proxy="" port="" mmsproxy="10.12.20.1" mmsport="80" mmsc="http://mms.movistar.sv" user="movistarsv" password="movistarsv" type="mms" />
- <apn carrier="Movistar SV" mcc="706" mnc="04" apn="internet.movistar.sv" proxy="" port="" user="movistarsv" password="movistarsv" mmsc="" type="default, supl" />
- <apn carrier="Movistar SV MMS" mcc="706" mnc="04" apn="mms.movistar.sv" proxy="" port="" user="movistarsv" password="movistarsv" mmsc="http://mms.movistar.sv" mmsproxy="10.12.20.1" mmsport="80" type="mms" />
- <apn carrier="Movistar SV" mcc="706" mnc="040" apn="internet.movistar.sv" proxy="" port="" user="movistarsv" password="movistarsv" mmsc="" type="default, supl" />
- <apn carrier="Movistar SV MMS" mcc="706" mnc="040" apn="mms.movistar.sv" proxy="" port="" user="movistarsv" password="movistarsv" mmsc="http://mms.movistar.sv" mmsproxy="10.12.20.1" mmsport="80" type="mms" />
- <apn carrier="INTERNET TIGO HN" mcc="708" mnc="02" apn="internet.tigo.hn" user="" password="" proxy="" port="" type="default,supl" />
- <apn carrier="MMS TIGO HN" mcc="708" mnc="02" apn="mms.tigo.hn" user="" password="" mmsproxy="10.16.17.12" mmsport="8888" mmsc="http://mms" type="mms" />
- <apn carrier="INTERNET TIGO HN" mcc="708" mnc="020" apn="internet.tigo.hn" user="" password="" proxy="" port="" type="default,supl" />
- <apn carrier="MMS TIGO HN" mcc="708" mnc="020" apn="mms.tigo.hn" user="" password="" mmsproxy="10.16.17.12" mmsport="8888" mmsc="http://mms" type="mms" />
- <apn carrier="Movistar INTERNET" mcc="710" mnc="300" apn="internet.movistar.ni" user="movistarni" password="movistarni" authtype="1" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="710" mnc="300" apn="mms.movistar.ni" proxy="" port="" mmsproxy="10.12.23.1" mmsport="80" mmsc="http://mms.movistar.ni" user="movistarni" password="movistarni" authtype="1" type="mms" />
- <apn carrier="Enitel" mcc="710" mnc="21" apn="internet.ideasalo.ni" type="default,supl,dun" user="internet" password="internet" authtype="1" />
- <apn carrier="Enitel MMS" mcc="710" mnc="21" apn="mms.ideasalo.ni" user="mms" password="mms" mmsproxy="10.6.32.2" mmsport="8080" mmsc="http://10.6.32.27/servlets/mms" authtype="1" type="mms" />
- <apn carrier="Movistar INTERNET" mcc="710" mnc="30" apn="internet.movistar.ni" user="movistarni" password="movistarni" authtype="1" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="710" mnc="30" apn="mms.movistar.ni" proxy="" port="" mmsproxy="10.12.23.1" mmsport="80" mmsc="http://mms.movistar.ni" user="movistarni" password="movistarni" authtype="1" type="mms" />
- <apn carrier="Enitel" mcc="710" mnc="73" apn="internet.ideasalo.ni" user="internet" password="internet" authtype="1" type="default,supl,dun" />
- <apn carrier="Enitel MMS" mcc="710" mnc="73" apn="mms.ideasalo.ni" user="mms" password="mms" mmsproxy="10.6.32.2" mmsport="8080" mmsc="http://10.6.32.27/servlets/mms" authtype="1" type="mms" />
- <apn carrier="Enitel" mcc="710" mnc="730" apn="internet.ideasalo.ni" user="internet" password="internet" authtype="1" type="default,supl,dun" />
- <apn carrier="Enitel MMS" mcc="710" mnc="730" apn="mms.ideasalo.ni" user="mms" password="mms" mmsproxy="10.6.32.2" mmsport="8080" mmsc="http://10.6.32.27/servlets/mms" authtype="1" type="mms" />
- <apn carrier="Kolbi" mcc="712" mnc="01" apn="kolbi3g" type="default,supl" />
- <apn carrier="Kolbi MMS" mcc="712" mnc="01" apn="kolbimundo" mmsc="http://mmsice" mmsproxy="10.184.202.24" mmsport="8080" type="mms" />
- <apn carrier="Mundo Kolbi" mcc="712" mnc="01" apn="kolbi3g" proxy="172.27.10.4" port="8080" type="default,supl" />
- <apn carrier="Mundo Kolbi MMS" mcc="712" mnc="01" apn="mmscelular" mmsc="http://mmsice" mmsproxy="172.27.10.4" mmsport="8080" type="mms" />
- <apn carrier="Kolbi" mcc="712" mnc="02" apn="kolbi3g" type="default,supl" />
- <apn carrier="Kolbi MMS" mcc="712" mnc="02" apn="kolbimundo" mmsc="http://mmsice" mmsproxy="10.184.202.24" mmsport="8080" type="mms" />
- <apn carrier="Claro" mcc="712" mnc="03" apn="internet.ideasclaro" type="default,supl" />
- <apn carrier="Claro MMS" mcc="712" mnc="03" apn="mms.ideasclaro" mmsproxy="216.230.133.66" mmsport="8080" mmsc="http://mms.ideasclaro.com:8002" type="mms" />
- <apn carrier="Movistar INTERNET" mcc="712" mnc="04" apn="internet.movistar.cr" user="movistarcr" password="movistarcr" authtype="1" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="712" mnc="04" apn="mms.movistar.cr" proxy="" port="" mmsproxy="10.221.79.83" mmsport="80" mmsc="http://mms.movistar.cr" user="movistarcr" password="movistarcr" authtype="1" type="mms" />
- <apn carrier="Movistar INTERNET" mcc="714" mnc="002" apn="internet.movistar.pa" user="movistarpa" password="movistarpa" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="714" mnc="002" apn="mms.movistar.pa" proxy="" port="" mmsproxy="10.12.21.1" mmsport="80" mmsc="http://mms.movistar.pa/" user="movistarpamms" password="movistarpa" type="mms" />
- <apn carrier="+ movil internet" mcc="714" mnc="01" apn="apn01.cwpanama.com.pa" proxy="172.25.3.5" port="8080" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="+movil MMS" mcc="714" mnc="01" apn="apn02.cwpanama.com.pa" proxy="" port="" mmsproxy="172.25.3.5" mmsport="8080" mmsc="http://mms.zonamovil.com.pa" user="" password="" type="mms" />
- <apn carrier="Cable and Wireless Panama" mcc="714" mnc="01" apn="apn01.cwpanama.com.pa" type="default,supl" />
- <apn carrier="Cable and Wireless Panama MMS" mcc="714" mnc="01" apn="apn02.cwpanama.com.pa" mmsc="http://mms.zonamovil.com.pa:80/i.bin" mmsproxy="172.25.3.5" mmsport="8080" type="mms" />
- <apn carrier="+movil internet" mcc="714" mnc="010" apn="apn01.cwpanama.com.pa" proxy="172.25.3.5" port="8080" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="+movil MMS" mcc="714" mnc="010" apn="apn02.cwpanama.com.pa" proxy="" port="" mmsproxy="172.25.3.5" mmsport="8080" mmsc="http://mms.zonamovil.com.pa" user="" password="" type="mms" />
- <apn carrier="Movistar INTERNET" mcc="714" mnc="02" apn="internet.movistar.pa" user="movistarpa" password="movistarpa" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="714" mnc="02" apn="mms.movistar.pa" proxy="" port="" mmsproxy="10.12.21.1" mmsport="80" mmsc="http://mms.movistar.pa/" user="movistarpamms" password="movistarpa" type="mms" />
- <apn carrier="Movistar PA" mcc="714" mnc="02" apn="internet.movistar.pa" user="movistarpa" password="movistarpa" type="default,supl"/>
- <apn carrier="Movistar INTERNET" mcc="714" mnc="020" apn="internet.movistar.pa" user="movistarpa" password="movistarpa" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="714" mnc="020" apn="mms.movistar.pa" proxy="" port="" mmsproxy="10.12.21.1" mmsport="80" mmsc="http://mms.movistar.pa/" user="movistarpamms" password="movistarpa" type="mms" />
- <apn carrier="PA WAP CLARO" mcc="714" mnc="03" apn="wap.claro.com.pa" proxy="10.240.3.1" port="8799" mmsc="" user="CLAROWAP" password="CLAROWAP" type="default,supl" />
- <apn carrier="PA MMS CLARO" mcc="714" mnc="03" apn="mms.claro.com.pa" proxy="" port="" mmsproxy="10.240.3.129" mmsport="9201" mmsc="http://www.claro.com.pa/mms/" user="CLAROMMS" password="CLAROMMS" type="mms" />
- <apn carrier="Claro Web" mcc="714" mnc="03" apn="web.claro.com.pa" user="CLAROWEB" password="CLAROWEB" authtype="1" type="default,supl" />
- <apn carrier="Claro MMS" mcc="714" mnc="03" apn="mms.claro.com.pa" user="CLAROMMS" password="CLAROMMS" mmsc="http://www.claro.com.pa/mms" authtype="1" type="mms" />
- <apn carrier="Digicel Web" mcc="714" mnc="04" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="714" mnc="04" apn="wap" proxy="" port="" mmsproxy="172.27.99.99" mmsport="8080" mmsc="http://mmc.digicelpanama.com/servlets/mms" user="" password="" type="mms" />
- <apn carrier="Digicel PA" mcc="714" mnc="04" apn="web.digicelpanama.com" type="default,supl" />
- <apn carrier="Digicel Web" mcc="714" mnc="040" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" apn="wap" mcc="714" mnc="040" proxy="" port="" mmsproxy="172.27.99.99" mmsport="8080" mmsc="http://mmc.digicelpanama.com/servlets/mms" user="" password="" type="mms" />
- <apn carrier="Movistar INTERNET" mcc="714" mnc="20" apn="internet.movistar.pa" user="movistarpa" password="movistarpa" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="714" mnc="20" apn="mms.movistar.pa" proxy="" port="" mmsproxy="10.12.21.1" mmsport="80" mmsc="http://mms.movistar.pa/" user="movistarpamms" password="movistarpa" type="mms" />
- <apn carrier="Movistar INTERNET" mcc="716" mnc="06" apn="movistar.pe" user="movistar@datos" password="movistar" authtype="1" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="716" mnc="06" apn="mms.movistar.pe" proxy="" port="" mmsproxy="200.4.196.118" mmsport="8080" mmsc="http://mmsc.telefonicamovistar.com.pe:8088/mms/" user="movistar@mms" password="movistar" authtype="1" type="mms" />
- <apn carrier="CLARO DATOS" mcc="716" mnc="10" apn="claro.pe" user="claro" password="claro" authtype="1" type="default,supl" />
- <apn carrier="Claro MMS" mcc="716" mnc="10" apn="mms.claro.pe" proxy="" port="" mmsproxy="192.168.231.30" mmsport="80" mmsc="http://claro/servlets/mms" user="claro" password="claro" authtype="1" type="mms" />
- <apn carrier="Entel Internet" mcc="716" mnc="17" apn="entel.pe" user="" password="" authtype="0" type="default,supl" />
- <apn carrier="Entel MMS" mcc="716" mnc="17" apn="mms.entel.pe" proxy="" port="" mmsc="http://mms.nextel.pe" user="" password="" authtype="0" type="mms" />
- <apn carrier="Movistar AG" mcc="722" mnc="007" apn="internet.unifon" user="wap" password="password" type="default,supl" />
- <apn carrier="Movistar AG MMS" mcc="722" mnc="007" apn="mms.gprs.unifon.com.ar" user="mms" password="mms" mmsc="http://mms.tmovil.cl/" mmsproxy="200.068.032.239" mmsport="9201" type="mms" />
- <apn carrier="QUAM" mcc="722" mnc="01" apn="internet.movil" user="internet" password="internet" authtype="1" type="default,supl,dun" />
- <apn carrier="QUAM MMS" mcc="722" mnc="01" apn="mms.movil" user="mms" password="mms" mmsc="http://mms.quam.com.ar" mmsproxy="200.68.32.239" mmsport="9090" type="mms" />
- <apn carrier="Movistar WAP" mcc="722" mnc="07" apn="wap.gprs.unifon.com.ar" mmsc="" user="wap" password="wap" authtype="1" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="722" mnc="07" apn="mms.gprs.unifon.com.ar" proxy="" port="" mmsproxy="200.68.32.239" mmsport="8080" mmsc="http://mms.movistar.com.ar" user="mms" password="mms" authtype="1" type="mms" />
- <apn carrier="Movistar WAP" mcc="722" mnc="070" apn="wap.gprs.unifon.com.ar" mmsc="" user="wap" password="wap" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="722" mnc="070" apn="mms.gprs.unifon.com.ar" proxy="" port="" mmsproxy="200.68.32.239" mmsport="8080" mmsc="http://mms.movistar.com.ar" user="mms" password="mms" type="mms" />
- <apn carrier="Movistar WAP" mcc="722" mnc="071" apn="wap.gprs.unifon.com.ar" mmsc="" user="wap" password="wap" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="722" mnc="071" apn="mms.gprs.unifon.com.ar" proxy="" port="" mmsproxy="200.68.32.239" mmsport="8080" mmsc="http://mms.movistar.com.ar" user="mms" password="mms" type="mms" />
- <apn carrier="Movistar WAP" mcc="722" mnc="072" apn="wap.gprs.unifon.com.ar" mmsc="" user="wap" password="wap" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="722" mnc="072" apn="mms.gprs.unifon.com.ar" proxy="" port="" mmsproxy="200.68.32.239" mmsport="8080" mmsc="http://mms.movistar.com.ar" user="mms" password="mms" type="mms" />
- <apn carrier="Movistar WAP" mcc="722" mnc="073" apn="wap.gprs.unifon.com.ar" mmsc="" user="wap" password="wap" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="722" mnc="073" apn="mms.gprs.unifon.com.ar" proxy="" port="" mmsproxy="200.68.32.239" mmsport="8080" mmsc="http://mms.movistar.com.ar" user="mms" password="mms" type="mms" />
- <apn carrier="Movistar WAP" mcc="722" mnc="074" apn="wap.gprs.unifon.com.ar" mmsc="" user="wap" password="wap" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="722" mnc="074" apn="mms.gprs.unifon.com.ar" proxy="" port="" mmsproxy="200.68.32.239" mmsport="8080" mmsc="http://mms.movistar.com.ar" user="mms" password="mms" type="mms" />
- <apn carrier="Movistar WAP" mcc="722" mnc="075" apn="wap.gprs.unifon.com.ar" mmsc="" user="wap" password="wap" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="722" mnc="075" apn="mms.gprs.unifon.com.ar" proxy="" port="" mmsproxy="200.68.32.239" mmsport="8080" mmsc="http://mms.movistar.com.ar" user="mms" password="mms" type="mms" />
- <apn carrier="Movistar WAP" mcc="722" mnc="076" apn="wap.gprs.unifon.com.ar" mmsc="" user="wap" password="wap" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="722" mnc="076" apn="mms.gprs.unifon.com.ar" proxy="" port="" mmsproxy="200.68.32.239" mmsport="8080" mmsc="http://mms.movistar.com.ar" user="mms" password="mms" type="mms" />
- <apn carrier="Movistar WAP" mcc="722" mnc="077" apn="wap.gprs.unifon.com.ar" mmsc="" user="wap" password="wap" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="722" mnc="077" apn="mms.gprs.unifon.com.ar" proxy="" port="" mmsproxy="200.68.32.239" mmsport="8080" mmsc="http://mms.movistar.com.ar" user="mms" password="mms" type="mms" />
- <apn carrier="Movistar WAP" mcc="722" mnc="078" apn="wap.gprs.unifon.com.ar" mmsc="" user="wap" password="wap" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="722" mnc="078" apn="mms.gprs.unifon.com.ar" proxy="" port="" mmsproxy="200.68.32.239" mmsport="8080" mmsc="http://mms.movistar.com.ar" user="mms" password="mms" type="mms" />
- <apn carrier="Movistar WAP" mcc="722" mnc="079" apn="wap.gprs.unifon.com.ar" mmsc="" user="wap" password="wap" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="722" mnc="079" apn="mms.gprs.unifon.com.ar" proxy="" port="" mmsproxy="200.68.32.239" mmsport="8080" mmsc="http://mms.movistar.com.ar" user="mms" password="mms" type="mms" />
- <apn carrier="Personal WAP" mcc="722" mnc="34" apn="gprs.personal.com" user="" password="" type="default,supl" />
- <apn carrier="Personal MMS" mcc="722" mnc="34" apn="mms" proxy="" port="" mmsproxy="172.25.7.31" mmsport="8080" mmsc="http://mms.personal.com" user="mms" password="mms" type="mms" />
- <apn carrier="Personal" mcc="722" mnc="34" apn="datos.personal.com" user="datos" password="datos" type="default,supl" />
- <apn carrier="Personal MMS" mcc="722" mnc="34" apn="mms" user="mms" password="mms" mmsc="http://mms.personal.com/" mmsproxy="172.025.007.031" mmsport="9201" type="mms" />
- <apn carrier="Personal" mcc="722" mnc="34" apn="gprs.personal.com" proxy="" port="" user="gprs" password="" mmsc="" type="default,supl" />
- <apn carrier="Personal MMS" mcc="722" mnc="34" apn="mms" proxy="" port="" user="mms" password="mms" mmsc="http://mms.personal.com/" mmsproxy="172.25.7.31" mmsport="9201" type="mms" />
- <apn carrier="Claro Internet" mcc="722" mnc="310" apn="igprs.claro.com.ar" user="ctigprs" password="ctigprs999" type="default,supl" />
- <apn carrier="Claro AR MMS" mcc="722" mnc="310" apn="mms.ctimovil.com.ar" user="ctimms" password="ctimms999" mmsc="http://mms.ctimovil.com.ar" mmsproxy="170.051.255.240" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="CTI" mcc="722" mnc="310" apn="internet.ctimovil.com.ar" user="guest" password="guest" type="default,supl" />
- <apn carrier="CTI MMS" mcc="722" mnc="310" apn="mms.ctimovil.com.ar" user="ctimms" password="ctimms999" mmsc="http://mms.ctimovil.com.ar" mmsproxy="170.051.255.240" mmsport="9201" type="mms" />
- <apn carrier="CTI" mcc="722" mnc="310" apn="internet.ctimovil.com.ar" proxy="" port="" user="guest" password="guest" mmsc="" type="default,supl" />
- <apn carrier="CTI MMS" mcc="722" mnc="310" apn="mms.ctimovil.com.ar" proxy="" port="" user="ctimms" password="ctimms999" mmsc="http://mms.ctimovil.com.ar" mmsproxy="170.51.255.240" mmsport="9201" type="mms" />
- <apn carrier="Claro AR" mcc="722" mnc="310" apn="igprs.claro.com.ar" proxy="" port="" user="ctigprs" password="ctigpr999" mmsc="" authtype="1" type="default,supl" />
- <apn carrier="Claro AR MMS" mcc="722" mnc="310" apn="mms.ctimovil.com.ar" proxy="" port="" user="ctimms" password="ctimms999" mmsc="http://mms.ctimovil.com.ar" mmsproxy="170.51.255.240" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Personal WAP" mcc="722" mnc="341" apn="gprs.personal.com" user="" password="" type="default,supl" />
- <apn carrier="Personal MMS" mcc="722" mnc="341" apn="mms" proxy="" port="" mmsproxy="172.25.7.31" mmsport="8080" mmsc="http://mms.personal.com" user="mms" password="mms" type="mms" />
- <apn carrier="Personal" mcc="722" mnc="341" apn="datos.personal.com" user="datos" password="datos" type="default,supl" />
- <apn carrier="Personal MMS" mcc="722" mnc="341" apn="mms" user="mms" password="mms" mmsc="http://mms.personal.com/" mmsproxy="172.025.007.031" mmsport="9201" type="mms" />
- <apn carrier="TIM Connect FAST" mcc="724" mnc="02" apn="timbrasil.br" user="tim" password="tim" mmsc="http://www.google.com.br" authtype="1" type="default,supl" />
- <apn carrier="TIM WAP FAST" mcc="724" mnc="02" apn="wap.tim.br" user="tim" password="tim" mmsc="http://wap.tim.com.br" proxy="200.244.116.65" port="8080" type="default,supl" />
- <apn carrier="TIM MMS" mcc="724" mnc="02" apn="mms.tim.br" user="tim" password="tim" mmsc="http://mms.tim.br" mmsproxy="200.179.66.242" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="TIM BR CONNECT FAST" mcc="724" mnc="02" apn="tim.br" proxy="" port="" user="tim" password="tim" mmsc="null" type="default,supl" />
- <apn carrier="TIM Connect FAST" mcc="724" mnc="03" apn="timbrasil.br" user="tim" password="tim" mmsc="http://www.google.com.br" authtype="1" type="default,supl" />
- <apn carrier="TIM WAP FAST" mcc="724" mnc="03" apn="wap.tim.br" user="tim" password="tim" mmsc="http://wap.tim.com.br" proxy="200.244.116.65" port="8080" type="default,supl" />
- <apn carrier="TIM MMS" mcc="724" mnc="03" apn="mms.tim.br" user="tim" password="tim" mmsc="http://mms.tim.br" mmsproxy="200.179.66.242" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="TIM BR CONNECT FAST" mcc="724" mnc="03" apn="tim.br" proxy="" port="" user="tim" password="tim" mmsc="null" type="default,supl" />
- <apn carrier="TIM Connect FAST" mcc="724" mnc="04" apn="timbrasil.br" user="tim" password="tim" mmsc="http://www.google.com.br" authtype="1" type="default,supl" />
- <apn carrier="TIM WAP FAST" mcc="724" mnc="04" apn="wap.tim.br" user="tim" password="tim" mmsc="http://wap.tim.com.br" proxy="200.244.116.65" port="8080" type="default,supl" />
- <apn carrier="TIM MMS" mcc="724" mnc="04" apn="mms.tim.br" user="tim" password="tim" mmsc="http://mms.tim.br" mmsproxy="200.179.66.242" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="TIM BR CONNECT FAST" mcc="724" mnc="04" apn="tim.br" proxy="" port="" user="tim" password="tim" mmsc="null" type="default,supl" />
- <apn carrier="Claro Dados" mcc="724" mnc="05" apn="claro.com.br" mmsc="http://www.google.com.br" user="claro" password="claro" authtype="1" type="default,supl" />
- <apn carrier="Portal Claro" mcc="724" mnc="05" apn="wap.claro.com.br" proxy="200.169.126.11" port="8799" mmsc="http://wap.claro.com.br" user="claro" password="claro" type="default,supl" />
- <apn carrier="Claro Foto" mcc="724" mnc="05" apn="mms.claro.com.br" proxy="" port="" mmsproxy="200.169.126.10" mmsport="8799" mmsc="http://mms.claro.com.br" user="claro" password="claro" authtype="1" type="mms" />
- <apn carrier="Vivo Internet" mcc="724" mnc="06" apn="zap.vivo.com.br" mmsc="http://www.google.com.br" user="vivo" password="vivo" authtype="1" type="default,supl" />
- <apn carrier="Vivo WAP" mcc="724" mnc="06" apn="wap.vivo.com.br" proxy="200.142.130.104" port="80" mmsc="http://termwapgsm2.vivo.com.br" user="vivo" password="vivo" type="default,supl" />
- <apn carrier="Vivo MMS" mcc="724" mnc="06" apn="mms.vivo.com.br" proxy="" port="" mmsproxy="200.142.130.104" mmsport="80" mmsc="http://termnat.vivomms.com.br:8088/mms" user="vivo" password="vivo" authtype="1" type="mms" />
- <apn carrier="SCTL MMS" mcc="724" mnc="07" apn="mms.sercomtel.com.br" user="sercomtel" password="sercomtel" mmsc="http://mms.claro.com.br" mmsproxy="200.169.126.10" mmsport="8799" type="mms" />
- <apn carrier="SCTL GPRS" mcc="724" mnc="07" apn="sercomtel.com.br" user="sercomtel" password="sercomtel" mmsc="null" type="default,supl" />
- <apn carrier="TIM Connect FAST" mcc="724" mnc="08" apn="timbrasil.br" user="tim" password="tim" mmsc="http://www.google.com.br" authtype="1" type="default,supl" />
- <apn carrier="TIM WAP FAST" mcc="724" mnc="08" apn="wap.tim.br" user="tim" password="tim" mmsc="http://wap.tim.com.br" proxy="200.244.116.65" port="8080" type="default,supl" />
- <apn carrier="TIM MMS" mcc="724" mnc="08" apn="mms.tim.br" user="tim" password="tim" mmsc="http://mms.tim.br" mmsproxy="200.179.66.242" mmsport="8080" authtype="1" type="mms" />
- <apn carrier="Vivo Internet" mcc="724" mnc="10" apn="zap.vivo.com.br" mmsc="http://www.google.com.br" user="vivo" password="vivo" authtype="1" type="default,supl" />
- <apn carrier="Vivo WAP" mcc="724" mnc="10" apn="wap.vivo.com.br" proxy="200.142.130.104" port="80" mmsc="http://termwapgsm2.vivo.com.br" user="vivo" password="vivo" type="default,supl" />
- <apn carrier="Vivo MMS" mcc="724" mnc="10" apn="mms.vivo.com.br" proxy="" port="" mmsproxy="200.142.130.104" mmsport="80" mmsc="http://termnat.vivomms.com.br:8088/mms" user="vivo" password="vivo" authtype="1" type="mms" />
- <apn carrier="VIVO ZAP" mcc="724" mnc="10" apn="zap.vivo.com.br" user="vivo" password="vivo" mmsc="null" type="default,supl" />
- <apn carrier="Vivo Internet" mcc="724" mnc="11" apn="zap.vivo.com.br" mmsc="http://www.google.com.br" user="vivo" password="vivo" authtype="1" type="default,supl" />
- <apn carrier="Vivo WAP" mcc="724" mnc="11" apn="wap.vivo.com.br" proxy="200.142.130.104" port="80" mmsc="http://termwapgsm2.vivo.com.br" user="vivo" password="vivo" type="default,supl" />
- <apn carrier="Vivo MMS" mcc="724" mnc="11" apn="mms.vivo.com.br" proxy="" port="" mmsproxy="200.142.130.104" mmsport="80" mmsc="http://termnat.vivomms.com.br:8088/mms" user="vivo" password="vivo" authtype="1" type="mms" />
- <apn carrier="VIVO ZAP" mcc="724" mnc="11" apn="zap.vivo.com.br" user="vivo" password="vivo" mmsc="null" type="default,supl" />
- <apn carrier="Oi Velox" mcc="724" mnc="16" apn="gprs.oi.com.br" mmsc="http://www.google.com.br" user="oi" password="oi" authtype="1" type="default,supl" />
- <apn carrier="Oi WAP GPRS" mcc="724" mnc="16" apn="wapgprs.oi.com.br" proxy="200.222.108.241" port="3128" mmsc="http://wap.oi.com.br" user="oiwap" password="oiwap" type="default,supl" />
- <apn carrier="Oi MMS" mcc="724" mnc="16" apn="mmsgprs.oi.com.br" proxy="" port="" mmsproxy="192.168.10.50" mmsport="3128" mmsc="http://200.222.42.204:8002/" user="oimms" password="oioioi" authtype="1" type="mms" />
- <apn carrier="BrT Internet" mcc="724" mnc="16" apn="brt.br" user="brt" password="brt" mmsc="null" type="default,supl" />
- <apn carrier="BrT MMS" mcc="724" mnc="16" apn="mms.brt.br" user="brt" password="brt" mmsc="http://mms.brasiltelecom.com.br/" mmsproxy="200.96.8.29" mmsport="8080" type="mms" />
- <apn carrier="Correios Celular" mcc="724" mnc="17" apn="internet.br" type="default,supl" />
- <apn carrier="Telemig GPRS" mcc="724" mnc="19" apn="gprs.telemigcelular.com.br" user="celular" password="celular" mmsc="null" type="default,supl" />
- <apn carrier="Telemig MMS" mcc="724" mnc="19" apn="mmsgprs.telemigcelular.com.br" user="celular" password="celular" mmsc="http://mms.telemigcelular.com.br" mmsproxy="200.192.230.142" mmsport="8080" type="mms" />
- <apn carrier="Vivo Internet" mcc="724" mnc="23" apn="zap.vivo.com.br" mmsc="http://www.google.com.br" user="vivo" password="vivo" authtype="1" type="default,supl" />
- <apn carrier="Vivo WAP" mcc="724" mnc="23" apn="wap.vivo.com.br" proxy="200.142.130.104" port="80" mmsc="http://termwapgsm2.vivo.com.br" user="vivo" password="vivo" type="default,supl" />
- <apn carrier="Vivo MMS" mcc="724" mnc="23" apn="mms.vivo.com.br" proxy="" port="" mmsproxy="200.142.130.104" mmsport="80" mmsc="http://termnat.vivomms.com.br:8088/mms" user="vivo" password="vivo" authtype="1" type="mms" />
- <apn carrier="Telemig GPRS" mcc="724" mnc="23" apn="gprs.telemigcelular.com.br" user="celular" password="celular" mmsc="null" type="default,supl" />
- <apn carrier="Telemig MMS" mcc="724" mnc="23" apn="mmsgprs.telemigcelular.com.br" user="celular" password="celular" mmsc="http://mms.telemigcelular.com.br" mmsproxy="200.192.230.142" mmsport="8080" type="mms" />
- <apn carrier="Telemig GPRS" mcc="724" mnc="23" apn="gprs.telemigcelular.com.br" proxy="" port="" user="celular" password="celular" mmsc="null" type="default,supl" />
- <apn carrier="Telemig MMS" mcc="724" mnc="23" apn="mmsgprs.telemigcelular.com.br" proxy="" port="" user="celular" password="celular" mmsc="http://mms.telemigcelular.com.br" mmsproxy="200.192.230.142" mmsport="8080" type="mms" />
- <apn carrier="Oi Velox" mcc="724" mnc="24" apn="gprs.oi.com.br" mmsc="http://www.google.com.br" user="oi" password="oi" authtype="1" type="default,supl" />
- <apn carrier="Oi WAP GPRS" mcc="724" mnc="24" apn="wapgprs.oi.com.br" proxy="200.222.108.241" port="3128" mmsc="http://wap.oi.com.br" user="oiwap" password="oiwap" type="default,supl" />
- <apn carrier="Oi MMS" mcc="724" mnc="24" apn="mmsgprs.oi.com.br" proxy="" port="" mmsproxy="192.168.10.50" mmsport="3128" mmsc="http://200.222.42.204:8002/" user="oimms" password="oioioi" authtype="1" type="mms" />
- <apn carrier="Amazonia GPRS" mcc="724" mnc="24" apn="gprs.amazoniacelular.com.br" user="celular" password="celular" mmsc="null" type="default,supl" />
- <apn carrier="Amazonia MMS" mcc="724" mnc="24" apn="mmsgprs.amazoniacelular.com.br" user="celular" password="celular" mmsc="http://mms.amazoniacelular.com.br" mmsproxy="200.192.230.142" mmsport="8080" type="mms" />
- <apn carrier="Oi Velox" mcc="724" mnc="31" apn="gprs.oi.com.br" mmsc="http://www.google.com.br" user="oi" password="oi" authtype="1" type="default,supl" />
- <apn carrier="Oi WAP GPRS" mcc="724" mnc="31" apn="wapgprs.oi.com.br" proxy="200.222.108.241" port="3128" mmsc="http://wap.oi.com.br" user="oiwap" password="oiwap" type="default,supl" />
- <apn carrier="Oi MMS" mcc="724" mnc="31" apn="mmsgprs.oi.com.br" proxy="" port="" mmsproxy="192.168.10.50" mmsport="3128" mmsc="http://200.222.42.204:8002/" user="oimms" password="oioioi" authtype="1" type="mms" />
- <apn carrier="Oi" mcc="724" mnc="31" apn="gprs.oi.com.br" proxy="" port="" user="oi" password="oi" mmsc="null" type="default,supl" />
- <apn carrier="CTBC MMS" mcc="724" mnc="32" apn="mms.ctbc.br" user="ctbc" password="1212" mmsc="http://mms.ctbccelular.com.br/was" mmsproxy="172.29.7.70" mmsport="8080" type="mms" />
- <apn carrier="CTBC MMS" mcc="724" mnc="33" apn="mms.ctbc.br" user="ctbc" password="1212" mmsc="http://mms.ctbccelular.com.br/was" mmsproxy="172.29.7.70" mmsport="8080" type="mms" />
- <apn carrier="CTBC 3G" mcc="724" mnc="34" apn="ctbc.br" mmsc="http://www.google.com.br" user="ctbc" password="1212" authtype="1" type="default,supl" />
- <apn carrier="CTBC WAP" mcc="724" mnc="34" apn="wap.ctbc.br" proxy="172.29.7.70" port="8080" mmsc="http://wap.ctbccelular.com.br" user="ctbc" password="1212" type="default,supl" />
- <apn carrier="CTBC MMS" mcc="724" mnc="34" apn="mms.ctbc.br" proxy="" port="" mmsproxy="172.29.7.70" mmsport="8080" mmsc="http://mms.ctbccelular.com.br/was" user="ctbc" password="1212" authtype="1" type="mms" />
- <apn carrier="Nextel Internet" mcc="724" mnc="39" apn="datacard.nextel3g.net.br" mmsc="http://www.google.com.br" user="Nextel3g" password="nextel" authtype="1" type="default,supl" />
- <apn carrier="Nextel WAP" mcc="724" mnc="39" apn="wap.nextel3g.net.br" user="" password="" type="default,supl" />
- <apn carrier="Nextel MMS" mcc="724" mnc="39" apn="mms.nextel3g.net.br" proxy="" port="" mmsproxy="129.129.129.104" mmsport="8080" mmsc="http://3gmms.nextel3g.net.br" user="" password="" authtype="1" type="mms" />
- <apn carrier="Nextel 3G" mcc="724" mnc="39" apn="datacard.nextel3g.net.br" type="default,supl" />
- <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="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" />
- <apn carrier="BAM Claro" mcc="730" mnc="03" apn="bam.clarochile.cl" user="clarochile" password="clarochile" type="default,supl" />
- <apn carrier="MMS Claro" mcc="730" mnc="03" apn="mms.clarochile.cl" proxy="" port="" mmsproxy="172.23.200.200" mmsport="8080" mmsc="http://mms.clarochile.cl" user="clarochile" password="clarochile" type="mms" />
- <apn carrier="MMS CLARO" mcc="730" mnc="03" apn="mms.clarochile.cl" user="clarochile" password="clarochile" mmsc="http://mms.clarochile.cl" mmsproxy="172.23.200.200" mmsport="8080" type="mms" />
- <apn carrier="APLICACIONES" mcc="730" mnc="07" apn="wap.tmovil.cl" user="wap" password="wap" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="730" mnc="07" 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="Virgin Mobile CL" mcc="730" mnc="07" apn="imovil.virginmobile.cl" type="default,supl" />
- <apn carrier="Internet WOM" mmc="730" mnc="09" apn="internet" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="MMS WOM" mmc="730" mnc="09" apn="mms" proxy="" port="" user="" password="" mmsc="http://3gmms.nextelmovil.cl" mmsproxy="129.192.129.104" mmsport="8080" type="mms" />
- <apn carrier="Internet Movil" mcc="730" mnc="10" apn="imovil.entelpcs.cl" user="entelpcs" password="entelpcs" type="default,supl" />
- <apn carrier="MMS Entel PCS" mcc="730" mnc="10" 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="Internet Movil" mcc="730" mnc="10" apn="bam.entelpcs.cl" user="entelpcs" password="entelpcs" proxy="10.99.0.10" port="8080" type="default,supl" />
- <apn carrier="WEB EPCS" mcc="730" mnc="10" apn="imovil.entelpcs.cl" user="entelpcs" password="entelpcs" type="default,supl" />
- <apn carrier="MMS EPCS" mcc="730" mnc="10" apn="mms.entelpcs.cl" user="entelmms" password="entelpcs" mmsc="http://mmsc.entelpcs.cl" mmsproxy="10.99.0.10" mmsport="8080" type="mms" />
- <apn carrier="Movistar CL" mcc="730" mnc="10" apn="web.tmovil.cl" proxy="" port="" user="web" password="web" mmsc="" type="default,supl" />
- <apn carrier="Web Comcel 3GSM" mcc="732" mnc="101" apn="internet.comcel.com.co" user="COMCELWEB" password="COMCELWEB" authtype="1" type="default,supl" />
- <apn carrier="MMS COMCEL 3GSM" mcc="732" mnc="101" apn="mms.comcel.com.co " proxy="" port="" mmsproxy="198.228.90.228" mmsport="8799" mmsc="http://mms.movistar.com.co" user="COMCELMMS" password="COMCELMMS" authtype="1" type="mms" />
- <apn carrier="Movistar CO" mcc="732" mnc="102" apn="internet.movistar.com.co" user="movistar" password="movistar" type="default,supl" />
- <apn carrier="Movistar CO" mcc="732" mnc="102" apn="internet.movistar.com.co" proxy="" port="" user="movistar" password="movistar" mmsc="" type="default,supl" />
- <apn carrier="TIGO WEB" mcc="732" mnc="103" apn="web.colombiamovil.com.co" user="" password="" type="default,supl,dun" />
- <apn carrier="TIGO Multimedia" mcc="732" mnc="103" apn="mms.colombiamovil.com.co" user="mms-cm1900" password="mms-cm1900" mmsproxy="190.102.206.48" mmsport="8080" mmsc="http://mms.ola.com.co" authtype="1" type="mms" />
- <apn carrier="TIGO WEB" mcc="732" mnc="111" apn="web.colombiamovil.com.co" user="" password="" type="default,supl,dun" />
- <apn carrier="TIGO Multimedia" mcc="732" mnc="111" apn="mms.colombiamovil.com.co" user="mms-cm1900" password="mms-cm1900" mmsproxy="190.102.206.48" mmsport="8080" mmsc="http://mms.ola.com.co" authtype="1" type="mms" />
- <apn carrier="OLA" mcc="732" mnc="111" apn="internet" user="internet" password="internet" type="default,supl" />
- <apn carrier="OLA MMS" mcc="732" mnc="111" apn="mms.comcel.com.co" mmsc="http://mms.ola.com.co" mmsproxy="200.058.228.081" mmsport="9201" type="mms" />
- <apn carrier="Movistar INTERNET" mcc="732" mnc="123" apn="internet.movistar.com.co" user="movistar" password="movistar" authtype="1" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="732" mnc="123" apn="mms.movistar.com.co" proxy="" port="" mmsproxy="192.168.222.7" mmsport="9001" mmsc="http://mms.movistar.com.co" user="movistar" password="movistar" authtype="1" type="mms" />
- <apn carrier="ETB 4G" mcc="732" mnc="187" apn="internetmovil.etb.net.co" authtype="0" type="default,supl" />
- <apn carrier="Digitel 412" mcc="734" mnc="01" apn="internet.digitel.ve" user="" password="" type="default,supl" />
- <apn carrier="MMS412" mcc="734" mnc="01" apn="expresate.digitel.ve" proxy="" port="" mmsproxy="10.99.0.10" mmsport="8080" mmsc="http://mms.412.com.ve/servlets/mms" user="" password="" type="mms" />
- <apn carrier="Digitel 412" mcc="734" mnc="02" apn="internet.digitel.ve" user="" password="" type="default,supl" />
- <apn carrier="MMS412" mcc="734" mnc="02" apn="expresate.digitel.ve" proxy="" port="" mmsproxy="10.99.0.10" mmsport="8080" mmsc="http://mms.412.com.ve/servlets/mms" user="" password="" type="mms" />
- <apn carrier="Digitel" mcc="734" mnc="02" apn="gprsweb.digitel.ve" type="default,supl" />
- <apn carrier="Digitel MMS" mcc="734" mnc="02" apn="expresate.digitel.ve" mmsc="http://expresate.digitel.ve" mmsproxy="213.026.205.001" mmsport="8080" type="mms" />
- <apn carrier="Digitel 412" mcc="734" mnc="03" apn="internet.digitel.ve" user="" password="" type="default,supl" />
- <apn carrier="MMS412" mcc="734" mnc="03" apn="expresate.digitel.ve" proxy="" port="" mmsproxy="10.99.0.10" mmsport="8080" mmsc="http://mms.412.com.ve/servlets/mms" user="" password="" type="mms" />
- <apn carrier="Movistar INTERNET" mcc="734" mnc="04" apn="internet.movistar.ve" user="http://www.movistar.com.ve/" password="" type="default,supl" />
- <apn carrier="Movistar WAP" mcc="734" mnc="04" apn="wap.movistar.ve" proxy="200.35.64.73" port="9001" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="734" mnc="04" apn="mms.movistar.ve" proxy="" port="" mmsproxy="200.35.64.73" mmsport="9001" mmsc="http://mms.movistar.com.ve:8088/mms" user="" password="" type="mms" />
- <apn carrier="Movistar VE" mcc="734" mnc="04" apn="internet.movistar.ve" mmsc="http://mms.movistar.ve" mmsproxy="200.35.64.73" mmsport="9001" type="default,supl,mms" />
- <apn carrier="Movilnet WAP" mcc="734" mnc="06" apn="app.movilnet.com.ve" proxy="192.168.201.170" port="8080" mmsc="" user="" password="" type="default,supl" />
- <apn carrier="Movilnet MMS" mcc="734" mnc="06" apn="mm.movilnet.com.ve" proxy="" port="" mmsproxy="192.168.16.12" mmsport="8080" mmsc="http://mms2.movilnet.com.ve/servlets/mms" user="" password="" type="mms" />
- <apn carrier="Movilnet" mcc="734" mnc="06" apn="int.movilnet.com.ve" type="default,supl" />
- <apn carrier="Viva Edge" mcc="736" mnc="01" apn="edge.viva.net.do" user="viva" password="viva" mmsc="http://wap.viva.net.do/WapDeck/" proxy="192.168.016.010" port="9401" type="default,supl" />
- <apn carrier="Viva MMS" mcc="736" mnc="01" apn="mms.viva.net.do" user="viva" password="viva" mmsproxy="192.168.016.010" mmsport="9401" mmsc="http://10.200.16.4/mms/wapenc" type="mms" />
- <apn carrier="Viva GPRS" mcc="736" mnc="01" apn="internet.nuevatel.com" proxy="192.168.101.4" port="3128" type="default,supl" />
- <apn carrier="Viva MMS" mcc="736" mnc="01" apn="mms.nuevatel.com" server="mmsgw.nuevatel.com:1981" mmsc="http://mmsgw.nuevatel.com:1981" mmsproxy="192.168.101.4" mmsport="3128" type="mms" />
- <apn carrier="ENTEL 4G" mcc="736" mnc="02" apn="4g.entel" user="" password="" type="default,supl" />
- <apn carrier="ENTEL MMS" mcc="736" mnc="02" apn="mms.movil.com.bo" proxy="" port="" mmsproxy="127.27.7.10" mmsport="8080" mmsc="http://mms.movil.com.bo/servlets/mms" user="" password="" type="mms" />
- <apn carrier="INTERNET TIGO BO" mcc="736" mnc="03" apn="internet.tigo.bo" user="" password="" proxy="" port="" type="default,supl,dun" />
- <apn carrier="MMS TIGO BO" mcc="736" mnc="03" apn="mms.tigo.bo" user="" password="" mmsproxy="172.25.100.8" mmsport="8888" mmsc="http://mms" type="mms" />
- <apn carrier="G TT WEB" mcc="738" mnc="002" apn="internet.cellinkgy.com" user="cellink" password="cellink" type="default,supl" />
- <apn carrier="G TT MMS" mcc="738" mnc="002" apn="mms.cellinkgy.com" proxy="" port="" mmsproxy="10.0.1.99" mmsport="8080" mmsc="http://10.0.1.88/mms/wapenc" user="cellink" password="cellink" type="mms" />
- <apn carrier="Digicel Web" mcc="738" mnc="01" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="738" mnc="01" apn="wap" proxy="" port="" mmsproxy="172.20.6.12" mmsport="8080" mmsc="http://mmc.digicelgy.com/servlets/mms" user="wap" password="wap" type="mms" />
- <apn carrier="G TT WEB" mcc="738" mnc="02" apn="internet.cellinkgy.com" user="cellink" password="cellink" type="default,supl" />
- <apn carrier="G TT MMS" mcc="738" mnc="02" apn="mms.cellinkgy.com" proxy="" port="" mmsproxy="10.0.1.99" mmsport="8080" mmsc="http://10.0.1.88/mms/wapenc" user="cellink" password="cellink" type="mms" />
- <apn carrier="G TT WEB" mcc="738" mnc="020" apn="internet.cellinkgy.com" user="cellink" password="cellink" type="default,supl" />
- <apn carrier="G TT MMS" mcc="738" mnc="020" apn="mms.cellinkgy.com" proxy="" port="" mmsproxy="10.0.1.99" mmsport="8080" mmsc="http://10.0.1.88/mms/wapenc" user="cellink" password="cellink" type="mms" />
- <apn carrier="Movistar INTERNET" mcc="740" mnc="00" apn="internet.movistar.com.ec" user="movistar" password="movistar" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="740" mnc="00" apn="mms.movistar.com.ec" proxy="" port="" mmsproxy="10.3.5.50" mmsport="9001" mmsc="http://mms.movistar.com.ec:8088/mms/" user="movistar" password="movistar" type="mms" />
- <apn carrier="Banda Acha M??vil" mcc="740" mnc="01" apn="ba.amx" user="" password="" type="default,supl" />
- <apn carrier="MMS Claro" mcc="740" mnc="01" apn="mms.claro.com.ec" user="" password="" type="mms" />
- <apn carrier="Porta EC" mcc="740" mnc="010" apn="internet.porta.com.ec" type="default,supl" />
- <apn carrier="Movistar INTERNET" mcc="740" mnc="02" apn="internet.movistar.com.ec" user="movistar" password="movistar" authtype="3" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="740" mnc="02" apn="mms.movistar.com.ec" proxy="" port="" mmsproxy="10.3.5.50" mmsport="9001" mmsc="http://mms.movistar.com.ec:8088/mms/" user="movistar" password="movistar" authtype="3" type="mms" />
- <apn carrier="Vox MMS" mcc="744" mnc="01" apn="vox.mms" mmsc="http://mms.vox.com.py/mmsc" user="vox" password="vox" proxy="172.24.97.29" port="8080" type="mms" />
- <apn carrier="Vox INTERNET" mcc="744" mnc="01" apn="vox.internet" user="" password="" type="default,supl" />
- <apn carrier="Claro PY" mcc="744" mnc="02" apn="igprs.claro.com.py" user="ctigprs" password="ctigprs999" authtype="1" type="default,supl" />
- <apn carrier="MMS GPRS PY" mcc="744" mnc="02" apn="mms.ctimovil.com.py" user="ctimms" password="ctimms999" mmsproxy="170.51.255.240" mmsport="8080" mmsc="http://mms.ctimovil.com.py" authtype="1" type="mms" />
- <apn carrier="INTERNET TIGO PY" mcc="744" mnc="04" apn="internet.tigo.py" user="" password="" proxy="" port="" type="default,supl" />
- <apn carrier="MMS TIGO PY" mcc="744" mnc="04" apn="mms.tigo.py" user="" password="" mmsproxy="10.16.17.12" mmsport="8888" mmsc="http://mms" type="mms" />
- <apn carrier="Personal Datos Py" mcc="744" mnc="05" apn="internet" user="" password="" authtype="1" type="default,supl" />
- <apn carrier="Personal MMS Py" mcc="744" mnc="05" apn="mms" user="" password="" mmsproxy="172.16.192.7" mmsport="8080" mmsc="http://mms" authtype="1" type="mms" />
- <apn carrier="Digicel Web" mcc="746" mnc="03" apn="web" user="" password="" type="default,supl" />
- <apn carrier="Digicel MMS" mcc="746" mnc="03" apn="wap" proxy="" port="" mmsproxy="172.20.6.12" mmsport="8080" mmsc="http://mmc.digicelsr.com/servlets/mms" user="wap" password="wap" type="mms" />
- <apn carrier="gprsANCEL" mcc="748" mnc="01" apn="gprs.ancel" user="" password="" type="default,supl" />
- <apn carrier="mmsANCEL" mcc="748" mnc="01" apn="mms" proxy="" port="" mmsproxy="200.40.246.2" mmsport="3128" mmsc="http://mmsc.mms.ancelutil.com.uy" user="" password="" type="mms" />
- <apn carrier="Ancel" mcc="748" mnc="01" apn="ancel" type="default,supl" />
- <apn carrier="Ancel MMS" mcc="748" mnc="01" apn="mms" mmsc="http://mmsc.mms.ancelutil.com.uy" mmsproxy="200.40.246.2" mmsport="3128" type="mms" />
- <apn carrier="Antel" mcc="748" mnc="01" apn="wap" proxy="200.40.246.2" port="3128" server="www.dale.com.uy" mmsc="http://mmsc.mms.ancelutil.com.uy" mmsproxy="200.40.246.2" mmsport="3128" type="default,supl,mms" />
- <apn carrier="BAM Pepaga Antel" mcc="748" mnc="01" apn="prepago.ancel" user="bam" password="bam" type="default,supl" />
- <apn carrier="Ancel" mcc="748" mnc="01" apn="ancel" proxy="" port="" user="" password="" mmsc="" type="default,supl" />
- <apn carrier="Ancel MMS" mcc="748" mnc="01" apn="mms" proxy="" port="" user="" password="" mmsc="http://mmsc.mms.ancelutil.com.uy" mmsproxy="200.40.246.2" mmsport="3128" type="mms" />
- <apn carrier="Antel" mcc="748" mnc="01" apn="wap" proxy="200.40.246.2" port="3128" user="" password="" server="www.dale.com.uy" mmsc="http://mmsc.mms.ancelutil.com.uy" mmsproxy="200.40.246.2" mmsport="" type="default,supl,mms" />
- <apn carrier="BAM Pepaga Antel" mcc="748" mnc="01" apn="prepago.ancel" proxy="" port="" user="bam" password="bam" mmsc="" type="default,supl" />
- <apn carrier="Movistar INTERNET" mcc="748" mnc="07" apn="webapn.movistar.com.uy" user="movistar" password="movistar" type="default,supl" />
- <apn carrier="Movistar MMS" mcc="748" mnc="07" apn="apnmms.movistar.com.uy" proxy="" port="" mmsproxy="10.0.2.29" mmsport="8080" mmsc="http://mmsc.movistar.com.uy" user="mmsuy" password="mmsuy" type="mms" />
- <apn carrier="Movistar UY MMS" mcc="748" mnc="07" apn="apnmms.movistar.com.uy" user="mmsuy" password="mmsuy" mmsc="http://mmsc.movistar.com.uy" mmsproxy="010.000.002.029" mmsport="9201" type="mms" />
- <apn carrier="Movistar UY" mcc="748" mnc="07" apn="apnumt.movistar.com.uy" user="movistar" password="movistar" type="default,supl" />
- <apn carrier="Claro Internet" mcc="748" mnc="10" apn="igprs.claro.com.uy" user="ctigprs" password="ctigprs999" type="default,supl" />
- <apn carrier="Claro MMS" mcc="748" mnc="10" apn="mms.ctimovil.com.uy" proxy="" port="" mmsc="http://mms.ctimovil.com.uy" user="" password="" type="mms" />
- <apn carrier="Claro UY" mcc="748" mnc="10" apn="gprs.claro.com.uy" user="ctigpr" password="ctigpr999" type="default,supl" />
- <apn carrier="Claro UY MMS" mcc="748" mnc="10" apn="mms.ctimovil.com.uy" user="ctimms" password="ctimms999" mmsc="http://mms.ctimovil.com.uy" mmsproxy="170.051.255.240" mmsport="9201" type="mms" />
-</apns>
diff --git a/prebuilt/common/etc/init.d/00banner b/prebuilt/common/etc/init.d/00banner
deleted file mode 100644
index da6d487f..00000000
--- a/prebuilt/common/etc/init.d/00banner
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/system/bin/sh
-#
-# Print startup info
-#
-L="log -p i -t lineage"
-
-$L "_ _ "
-$L "| (_)_ __ ___ __ _ __ _ ___ ___ ___ "
-$L "| | | '_ \\ / _ \\/ _\` |/ _\` |/ _ \\/ _ \\/ __|"
-$L "| | | | | | __/ (_| | (_| | __/ (_) \\__ \\"
-$L "|_|_|_| |_|\\___|\\__,_|\\__, |\\___|\\___/|___/"
-$L " |___/"
-$L "Welcome to Android `getprop ro.build.version.release` / LineageOS-`getprop ro.lineage.version`";
diff --git a/prebuilt/common/etc/init.d/90userinit b/prebuilt/common/etc/init.d/90userinit
deleted file mode 100755
index fbf3360f..00000000
--- a/prebuilt/common/etc/init.d/90userinit
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/system/bin/sh
-# call userinit.sh if present in /data/local
-
-if [ -e /data/local/userinit.sh ];
-then
- log -p i -t userinit "Executing /data/local/userinit.sh";
- /system/bin/sh /data/local/userinit.sh;
- setprop lineage.userinit.active 1;
-fi;
diff --git a/prebuilt/common/etc/init/lineage-adb.rc b/prebuilt/common/etc/init/lineage-adb.rc
deleted file mode 100644
index 95ede068..00000000
--- a/prebuilt/common/etc/init/lineage-adb.rc
+++ /dev/null
@@ -1,11 +0,0 @@
-# adb over network
-on property:adb.network.port=*
- setprop service.adb.tcp.port ${adb.network.port}
-
-on property:service.adb.tcp.port=5555
- stop adbd
- start adbd
-
-on property:service.adb.tcp.port=-1
- stop adbd
- start adbd
diff --git a/prebuilt/common/etc/init/lineage-governor.rc b/prebuilt/common/etc/init/lineage-governor.rc
deleted file mode 100644
index b805fc96..00000000
--- a/prebuilt/common/etc/init/lineage-governor.rc
+++ /dev/null
@@ -1,71 +0,0 @@
-on boot
- # interactive governor
- chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_rate
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/timer_rate
- chown system system /sys/devices/system/cpu/cpufreq/interactive/timer_slack
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/timer_slack
- chown system system /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/min_sample_time
- chown system system /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/hispeed_freq
- chown system system /sys/devices/system/cpu/cpufreq/interactive/target_loads
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/target_loads
- chown system system /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/go_hispeed_load
- chown system system /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/above_hispeed_delay
- chown system system /sys/devices/system/cpu/cpufreq/interactive/boost
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/boost
- chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/boostpulse
- chown system system /sys/devices/system/cpu/cpufreq/interactive/input_boost
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/input_boost
- chown system system /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/boostpulse_duration
- chown system system /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/io_is_busy
- chown system system /sys/devices/system/cpu/cpufreq/interactive/sync_freq
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/sync_freq
- chown system system /sys/devices/system/cpu/cpufreq/interactive/up_threshold_any_cpu_freq
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/up_threshold_any_cpu_freq
- chown system system /sys/devices/system/cpu/cpufreq/interactive/up_threshold_any_cpu_load
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/up_threshold_any_cpu_load
- chown system system /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/sampling_down_factor
- chown system system /sys/devices/system/cpu/cpufreq/interactive/max_freq_hysteresis
- chmod 0664 /sys/devices/system/cpu/cpufreq/interactive/max_freq_hysteresis
-
- # ondemand governor
- chown system system /sys/devices/system/cpu/cpufreq/ondemand/boostfreq
- chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/boostfreq
- chown system system /sys/devices/system/cpu/cpufreq/ondemand/boostpulse
- chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/boostpulse
- chown system system /sys/devices/system/cpu/cpufreq/ondemand/boosttime
- chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/boosttime
- chown system system /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
- chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
- chown system system /sys/devices/system/cpu/cpufreq/ondemand/down_differential
- chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/down_differential
- chown system system /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
- chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate
- chown system system /sys/devices/system/cpu/cpufreq/ondemand/powersave_bias
- chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/powersave_bias
- chown system system /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
- chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
- chown system system /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
- chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
- chown system system /sys/devices/system/cpu/cpufreq/ondemand/input_boost
- chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/input_boost
- chown system system /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
- chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_multi_core
- chown system system /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
- chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/down_differential_multi_core
- chown system system /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
- chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/optimal_freq
- chown system system /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
- chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/sync_freq
- chown system system /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
- chmod 0664 /sys/devices/system/cpu/cpufreq/ondemand/up_threshold_any_cpu_load
-
- chown system system /dev/cpuctl/cpu.notify_on_migrate
- chmod 0664 /dev/cpuctl/cpu.notify_on_migrate
diff --git a/prebuilt/common/etc/init/lineage-iosched.rc b/prebuilt/common/etc/init/lineage-iosched.rc
deleted file mode 100644
index 263003fe..00000000
--- a/prebuilt/common/etc/init/lineage-iosched.rc
+++ /dev/null
@@ -1,70 +0,0 @@
-on init
- # Set up the BFQIO hierarchy
- mkdir /dev/bfqio 0755 root system
- mount cgroup none /dev/bfqio bfqio
- chown root system /dev/bfqio/tasks
- chmod 0664 /dev/bfqio/tasks
- chmod 0220 /dev/bfqio/cgroup.event_control
-
- # Soft realtime class for display service
- mkdir /dev/bfqio/rt-display 0755 root system
- write /dev/bfqio/rt-display/bfqio.ioprio_class 1
- chown system system /dev/bfqio/rt-display/tasks
- chmod 0664 /dev/bfqio/rt-display/tasks
- chmod 0220 /dev/bfqio/rt-display/cgroup.event_control
-
-on boot
- restorecon --recursive /sys/block/mmcblk0/queue
- chown system system /sys/block/mmcblk0/queue/scheduler
- chmod 0664 /sys/block/mmcblk0/queue/scheduler
-
- restorecon --recursive /sys/block/sda/queue
- chown system system /sys/block/sda/queue/scheduler
- chmod 0664 /sys/block/sda/queue/scheduler
-
- restorecon --recursive /sys/block/sde/queue
- chown system system /sys/block/sde/queue/scheduler
- chmod 0664 /sys/block/sde/queue/scheduler
-
- restorecon --recursive /sys/block/dm-0/queue
- chown system system /sys/block/dm-0/queue/scheduler
- chmod 0664 /sys/block/dm-0/queue/scheduler
-
-# 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}
-
-# Set slice_idle to 0 for CFQ
-on property:sys.io.scheduler=cfq
- restorecon --recursive /sys/block/mmcblk0/queue
- restorecon --recursive /sys/block/mmcblk1/queue
- restorecon --recursive /sys/block/sda/queue
- restorecon --recursive /sys/block/sde/queue
- restorecon --recursive /sys/block/dm-0/queue
-
- 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
- restorecon --recursive /sys/block/mmcblk0/queue
- restorecon --recursive /sys/block/mmcblk1/queue
- restorecon --recursive /sys/block/sda/queue
- restorecon --recursive /sys/block/sde/queue
- restorecon --recursive /sys/block/dm-0/queue
-
- write /sys/block/mmcblk0/queue/iosched/slice_idle 0
- write /sys/block/mmcblk1/queue/iosched/slice_idle 0
- write /sys/block/sda/queue/iosched/slice_idle 0
- write /sys/block/sde/queue/iosched/slice_idle 0
- write /sys/block/dm-0/queue/iosched/slice_idle 0
diff --git a/prebuilt/common/etc/init/lineage-livedisplay.rc b/prebuilt/common/etc/init/lineage-livedisplay.rc
deleted file mode 100644
index 8979369b..00000000
--- a/prebuilt/common/etc/init/lineage-livedisplay.rc
+++ /dev/null
@@ -1,16 +0,0 @@
-on boot
- # LiveDisplay sysfs
- chown system system /sys/devices/virtual/graphics/fb0/aco
- chmod 0660 /sys/devices/virtual/graphics/fb0/aco
- chown system system /sys/devices/virtual/graphics/fb0/cabc
- chmod 0660 /sys/devices/virtual/graphics/fb0/cabc
- chown system system /sys/devices/virtual/graphics/fb0/hbm
- chmod 0660 /sys/devices/virtual/graphics/fb0/hbm
- chown system system /sys/devices/virtual/graphics/fb0/rgb
- 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
- chown system system /sys/devices/virtual/graphics/fb0/reading_mode
- chmod 0660 /sys/devices/virtual/graphics/fb0/reading_mode
diff --git a/prebuilt/common/etc/init/lineage-radio.rc b/prebuilt/common/etc/init/lineage-radio.rc
deleted file mode 100644
index 22f1e64d..00000000
--- a/prebuilt/common/etc/init/lineage-radio.rc
+++ /dev/null
@@ -1,12 +0,0 @@
-# Disable ril services if noril prop is set
-on property:ro.radio.noril=1
- stop ims_rtp_daemon
- stop imsdatadaemon
- stop imsqmidaemon
- stop imsrcsservice
- stop ril-daemon
- stop qmuxd
- stop netmgrd
-
-on property:persist.radio.noril=1
- setprop ro.radio.noril 1
diff --git a/prebuilt/common/etc/init/lineage-ssh.rc b/prebuilt/common/etc/init/lineage-ssh.rc
deleted file mode 100644
index edf38638..00000000
--- a/prebuilt/common/etc/init/lineage-ssh.rc
+++ /dev/null
@@ -1,3 +0,0 @@
-on post-fs-data
- mkdir /data/ssh 0750 root shell
- mkdir /data/ssh/empty 0600 root shell
diff --git a/prebuilt/common/etc/init/lineage-system.rc b/prebuilt/common/etc/init/lineage-system.rc
deleted file mode 100644
index 619c6d82..00000000
--- a/prebuilt/common/etc/init/lineage-system.rc
+++ /dev/null
@@ -1,31 +0,0 @@
-# LineageOS core functionality
-on init
- export ANDROID_CACHE /cache
- export TERMINFO /system/etc/terminfo
-
-on post-fs-data
- mkdir /cache/recovery 0770 system cache
-
- # 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
- # Persistent properties (only created if persist exists)
- mkdir /persist/properties 0770 system system
-
-# sysinit (/system/etc/init.d)
-service sysinit /system/bin/sysinit
- user root
- oneshot
- disabled
-
-# bugreport is triggered by holding down volume down, volume up and power
-service bugreport /system/bin/dumpstate -d -p -B -z \
- -o /data/user_de/0/com.android.shell/files/bugreports/bugreport
- oneshot
- disabled
- keycodes 114 115 116
diff --git a/prebuilt/common/etc/init/lineage-updates.rc b/prebuilt/common/etc/init/lineage-updates.rc
deleted file mode 100644
index 3a9b4813..00000000
--- a/prebuilt/common/etc/init/lineage-updates.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-on post-fs-data
- # Create an additional OTA package directory that unlike /data/ota_package
- # will not be touched by GmsCore.
- mkdir /data/lineageos_updates 0770 system cache
diff --git a/prebuilt/common/etc/sensitive_pn.xml b/prebuilt/common/etc/sensitive_pn.xml
deleted file mode 100644
index ee19edf5..00000000
--- a/prebuilt/common/etc/sensitive_pn.xml
+++ /dev/null
@@ -1,757 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
- * Copyright (C) 2017 The Android Open Source Project
- * Copyright (C) 2017-2018 The LineageOS 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.
- */
--->
-
-<!-- A few notes about maintaining this file:
-
- The sorting in the file is as follows:
- - The MCC codes in the network field are sorted in ascending order, if the
- country has multiple MCC codes, or has territories with different MCC codes
- - The sensitivePN entries are sorted in ascending order by the first MCC code
- - The phone numbers in a sensitivePN entry are grouped in increasing lengths,
- and within the various lengths they are sorted in ascending order
-
- When adding a new country, please keep the following in mind:
- - Whether the country has multiple MCC codes
- - Whether the country has any territories with different MCC codes
- - What the most recognizable name for the country is, to leave as a comment
-
- When adding a new phone number, please keep the following in mind:
- - Whether there are multiple forms of the phone number (long and short)
- - Whether the number is valid for any territories of the country
-
- Thank you for your contributions! -->
-
-<sensitivePNS>
- <!--Greece-->
- <sensitivePN network="202">
- <item>197</item>
- <item>1018</item>
- <item>1056</item>
- <item>1065</item>
- <item>1107</item>
- <item>1109</item>
- <item>15900</item>
- <item>111525</item>
- <item>116111</item>
- <item>116123</item>
- </sensitivePN>
- <!--Netherlands-->
- <sensitivePN network="204">
- <item>116006</item>
- <item>116111</item>
- <item>116123</item>
- <item>08000432</item>
- <item>08002000</item>
- <item>09000101</item>
- <item>0882342450</item>
- <item>09009999001</item>
- </sensitivePN>
- <!--Belgium-->
- <sensitivePN network="206">
- <item>102</item>
- <item>106</item>
- <item>111</item>
- <item>116</item>
- <item>1712</item>
- <item>1813</item>
- <item>116000</item>
- <item>08000432</item>
- <item>032185056</item>
- <item>032391415</item>
- <item>078150300</item>
- <item>078151020</item>
- <item>080097079</item>
- <item>080099533</item>
- </sensitivePN>
- <!--France-->
- <sensitivePN network="208,340,647">
- <item>119</item>
- <item>3919</item>
- </sensitivePN>
- <!--Spain-->
- <sensitivePN network="214">
- <item>016</item>
- <item>116111</item>
- </sensitivePN>
- <!--Hungary-->
- <sensitivePN network="216">
- <item>116111</item>
- <item>116123</item>
- </sensitivePN>
- <!--Bosnia and Herzegovina-->
- <sensitivePN network="218">
- <item>080050305</item>
- </sensitivePN>
- <!--Croatia-->
- <sensitivePN network="219">
- <item>116006</item>
- <item>116111</item>
- </sensitivePN>
- <!--Serbia-->
- <sensitivePN network="220">
- <item>116111</item>
- <item>2645328</item>
- <item>3192782</item>
- <item>3626006</item>
- <item>0800100600</item>
- <item>0800123456</item>
- </sensitivePN>
- <!--Kosovo-->
- <sensitivePN network="221">
- <item>080011112</item>
- </sensitivePN>
- <!--Italy-->
- <sensitivePN network="222">
- <item>1522</item>
- <item>19696</item>
- </sensitivePN>
- <!--Romania-->
- <sensitivePN network="226">
- <item>116111</item>
- <item>0213114636</item>
- </sensitivePN>
- <!--Switzerland-->
- <sensitivePN network="228">
- <item>147</item>
- <item>116000</item>
- <item>116111</item>
- </sensitivePN>
- <!--Czech Republic-->
- <sensitivePN network="230">
- <item>116006</item>
- <item>116111</item>
- <item>116123</item>
- <item>222514040</item>
- <item>222580697</item>
- <item>224214214</item>
- <item>241484149</item>
- <item>283872186</item>
- <item>284016292</item>
- <item>284016666</item>
- <item>596318080</item>
- <item>596618908</item>
- <item>737267939</item>
- <item>777734173</item>
- <item>777783146</item>
- <item>777800983</item>
- <item>800200007</item>
- </sensitivePN>
- <!--Slovakia-->
- <sensitivePN network="231">
- <item>116111</item>
- </sensitivePN>
- <!--Austria-->
- <sensitivePN network="232">
- <item>147</item>
- <item>116006</item>
- <item>116123</item>
- <item>0800222555</item>
- </sensitivePN>
- <!--GB-->
- <sensitivePN network="234,235">
- <item>116111</item>
- <item>116123</item>
- <item>08001111</item>
- <item>0800555111</item>
- <item>01179045999</item>
- <item>01179250680</item>
- <item>01642683045</item>
- <item>01708765200</item>
- <item>02070080151</item>
- <item>02072516577</item>
- <item>02072518887</item>
- <item>02073830700</item>
- <item>02073957700</item>
- <item>02074907689</item>
- <item>02076081137</item>
- <item>02077042040</item>
- <item>02078235430</item>
- <item>02085710800</item>
- <item>02085719595</item>
- <item>02380338080</item>
- <item>02920496920</item>
- <item>03003300630</item>
- <item>08000149084</item>
- <item>08000271234</item>
- <item>08005999247</item>
- <item>08008010327</item>
- <item>08009995428</item>
- <item>08082000247</item>
- <item>08088005000</item>
- <item>08088010331</item>
- <item>08088010456</item>
- <item>08088010464</item>
- <item>08088010800</item>
- <item>08088020300</item>
- <item>08088021414</item>
- <item>08088029999</item>
- <item>08088081111</item>
- <item>08088088141</item>
- <item>08453030900</item>
- <item>08454582914</item>
- </sensitivePN>
- <!--Denmark-->
- <sensitivePN network="238">
- <item>116006</item>
- <item>116111</item>
- </sensitivePN>
- <!--Sweden-->
- <sensitivePN network="240">
- <item>116111</item>
- <item>116123</item>
- </sensitivePN>
- <!--Norway-->
- <sensitivePN network="242">
- <item>116111</item>
- <item>22424202</item>
- <item>22444050</item>
- <item>23227930</item>
- <item>80057000</item>
- <item>81003940</item>
- </sensitivePN>
- <!--Finland-->
- <sensitivePN network="244">
- <item>116111</item>
- </sensitivePN>
- <!--Lithuania-->
- <sensitivePN network="246">
- <item>116111</item>
- <item>116123</item>
- </sensitivePN>
- <!--Latvia-->
- <sensitivePN network="247">
- <item>116111</item>
- </sensitivePN>
- <!--Estonia-->
- <sensitivePN network="248">
- <item>116111</item>
- </sensitivePN>
- <!--Russia-->
- <sensitivePN network="250">
- <item>88002000122</item>
- <item>88002500015</item>
- </sensitivePN>
- <!--Ukraine-->
- <sensitivePN network="255">
- <item>386</item>
- <item>772</item>
- <item>116111</item>
- <item>0800500225</item>
- <item>0800500335</item>
- </sensitivePN>
- <!--Belarus-->
- <sensitivePN network="257">
- <item>88011001611</item>
- </sensitivePN>
- <!--Moldova-->
- <sensitivePN network="255,259">
- <item>116111</item>
- </sensitivePN>
- <!--Poland-->
- <sensitivePN network="260">
- <item>116111</item>
- <item>116123</item>
- </sensitivePN>
- <!--Germany-->
- <sensitivePN network="262">
- <item>116006</item>
- <item>116111</item>
- <item>116123</item>
- <item>08000116016</item>
- <item>08001110111</item>
- <item>08001110222</item>
- </sensitivePN>
- <!--Portugal-->
- <sensitivePN network="268">
- <item>116111</item>
- <item>800202148</item>
- </sensitivePN>
- <!--Luxembourg-->
- <sensitivePN network="270">
- <item>116111</item>
- </sensitivePN>
- <!--Ireland-->
- <sensitivePN network="272">
- <item>116006</item>
- <item>116111</item>
- <item>116123</item>
- </sensitivePN>
- <!--Iceland-->
- <sensitivePN network="274">
- <item>1717</item>
- </sensitivePN>
- <!--Malta-->
- <sensitivePN network="278">
- <item>179</item>
- <item>116111</item>
- <item>116123</item>
- </sensitivePN>
- <!--Cyprus-->
- <sensitivePN network="280">
- <item>116111</item>
- <item>116123</item>
- </sensitivePN>
- <!--Georgia-->
- <sensitivePN network="282">
- <item>116111</item>
- </sensitivePN>
- <!--Armenia-->
- <sensitivePN network="283">
- <item>240160</item>
- </sensitivePN>
- <!--Bulgaria-->
- <sensitivePN network="284">
- <item>116111</item>
- <item>028130250</item>
- <item>028223510</item>
- <item>029204238</item>
- <item>029339010</item>
- <item>029339011</item>
- <item>029360011</item>
- <item>029360535</item>
- <item>029361026</item>
- <item>029569529</item>
- <item>029635357</item>
- <item>029817686</item>
- <item>029835205</item>
- <item>029835305</item>
- <item>029835405</item>
- <item>030181771</item>
- <item>030412049</item>
- <item>030454240</item>
- <item>030712038</item>
- <item>030728824</item>
- <item>031182290</item>
- <item>031348618</item>
- <item>031452059</item>
- <item>031822316</item>
- <item>032207253</item>
- <item>032260708</item>
- <item>032512989</item>
- <item>032622322</item>
- <item>032658150</item>
- <item>032660530</item>
- <item>032814072</item>
- <item>032943444</item>
- <item>033127352</item>
- <item>033555771</item>
- <item>033762547</item>
- <item>034447530</item>
- <item>035172233</item>
- <item>035762023</item>
- <item>035950344</item>
- <item>036328858</item>
- <item>036417274</item>
- <item>036417275</item>
- <item>036514145</item>
- <item>037049991</item>
- <item>037391076</item>
- <item>038620392</item>
- <item>038624685</item>
- <item>038662138</item>
- <item>039126095</item>
- <item>041695554</item>
- <item>042641111</item>
- <item>042660328</item>
- <item>043162866</item>
- <item>044667257</item>
- <item>046622056</item>
- <item>047616468</item>
- <item>051843021</item>
- <item>052609677</item>
- <item>052613830</item>
- <item>052820693</item>
- <item>052919779</item>
- <item>053432050</item>
- <item>053725343</item>
- <item>054833124</item>
- <item>054850777</item>
- <item>054869958</item>
- <item>055022125</item>
- <item>055513072</item>
- <item>055513074</item>
- <item>055922113</item>
- <item>056530405</item>
- <item>056815618</item>
- <item>056825205</item>
- <item>056825601</item>
- <item>058601088</item>
- <item>058605472</item>
- <item>059632435</item>
- <item>060161142</item>
- <item>060161144</item>
- <item>060161146</item>
- <item>060161148</item>
- <item>060161632</item>
- <item>060162889</item>
- <item>060167025</item>
- <item>061052712</item>
- <item>061132620</item>
- <item>061416934</item>
- <item>061613713</item>
- <item>061822181</item>
- <item>061922187</item>
- <item>062602604</item>
- <item>063140086</item>
- <item>064824156</item>
- <item>064846713</item>
- <item>065093117</item>
- <item>065522034</item>
- <item>066805419</item>
- <item>066805770</item>
- <item>066809818</item>
- <item>067052014</item>
- <item>067532790</item>
- <item>067675574</item>
- <item>068602928</item>
- <item>070019559</item>
- <item>070150441</item>
- <item>071722085</item>
- <item>072093336</item>
- <item>072166663</item>
- <item>072695038</item>
- <item>074422316</item>
- <item>075161157</item>
- <item>076601010</item>
- <item>076603360</item>
- <item>076695005</item>
- <item>077313010</item>
- <item>077787488</item>
- <item>078529171</item>
- <item>078939608</item>
- <item>080011977</item>
- <item>080018017</item>
- <item>080018676</item>
- <item>080020100</item>
- <item>081222033</item>
- <item>082813380</item>
- <item>082826770</item>
- <item>084660283</item>
- <item>084772560</item>
- <item>084872020</item>
- <item>086732268</item>
- <item>086820487</item>
- <item>086821495</item>
- <item>091232064</item>
- <item>092620063</item>
- <item>092620484</item>
- <item>094600606</item>
- <item>095380116</item>
- <item>096300134</item>
- <item>096300491</item>
- <item>096303270</item>
- <item>097380953</item>
- <item>0876244006</item>
- <item>0876400660</item>
- <item>0876552572</item>
- <item>0877330225</item>
- <item>0877622665</item>
- <item>0877655353</item>
- <item>0877966850</item>
- <item>0878121910</item>
- <item>0878238102</item>
- <item>0878324320</item>
- <item>0878394250</item>
- <item>0878567620</item>
- <item>0878567659</item>
- <item>0878628756</item>
- <item>0879260101</item>
- <item>0879387620</item>
- <item>0879453503</item>
- <item>0879530460</item>
- <item>0879532892</item>
- <item>0879535905</item>
- <item>0879606855</item>
- <item>0879612223</item>
- <item>0879816911</item>
- <item>0879819195</item>
- <item>0879993859</item>
- <item>0882071603</item>
- <item>0882165368</item>
- <item>0882290920</item>
- <item>0882290980</item>
- <item>0882330008</item>
- <item>0882384587</item>
- <item>0882420038</item>
- <item>0883256622</item>
- <item>0884029213</item>
- <item>0884199173</item>
- <item>0884301016</item>
- <item>0884843400</item>
- <item>0884877595</item>
- <item>0884940688</item>
- <item>0884959367</item>
- <item>0884977296</item>
- <item>0885546493</item>
- <item>0885584855</item>
- <item>0886203742</item>
- <item>0886207985</item>
- <item>0886785906</item>
- <item>0887302241</item>
- <item>0887900324</item>
- <item>0888111703</item>
- <item>0888628146</item>
- <item>0888818510</item>
- <item>0888885909</item>
- <item>0889040412</item>
- <item>0889111848</item>
- <item>0889393132</item>
- <item>0889667600</item>
- <item>0889799855</item>
- <item>0893328940</item>
- <item>0893455930</item>
- <item>0893474238</item>
- <item>0894412380</item>
- <item>0894420941</item>
- <item>0894438106</item>
- <item>0895514923</item>
- <item>0895140600</item>
- <item>0896662766</item>
- <item>0897013236</item>
- <item>0898575963</item>
- <item>0899846850</item>
- </sensitivePN>
- <!--Turkey-->
- <sensitivePN network="286">
- <item>144</item>
- <item>183</item>
- <item>05493810183</item>
- <item>05494412144</item>
- <item>08504550070</item>
- </sensitivePN>
- <!--Slovenia-->
- <sensitivePN network="293">
- <item>116111</item>
- <item>116123</item>
- </sensitivePN>
- <!--Macedonia-->
- <sensitivePN network="294">
- <item>192</item>
- <item>193</item>
- <item>194</item>
- <item>080012222</item>
- </sensitivePN>
- <!--Montenegro-->
- <sensitivePN network="297">
- <item>080081550</item>
- </sensitivePN>
- <!--Canada-->
- <sensitivePN network="302">
- <item>6455195</item>
- <item>2047868686</item>
- <item>3064254090</item>
- <item>3065255333</item>
- <item>3066936511</item>
- <item>3067570127</item>
- <item>3067641011</item>
- <item>4032347233</item>
- <item>4166387800</item>
- <item>4169244640</item>
- <item>4169698510</item>
- <item>5148739010</item>
- <item>5192521171</item>
- <item>5192715290</item>
- <item>5193360623</item>
- <item>5193520440</item>
- <item>5193714453</item>
- <item>5194559000</item>
- <item>5195396176</item>
- <item>5195760540</item>
- <item>5195875437</item>
- <item>5196311492</item>
- <item>5197538681</item>
- <item>5198242410</item>
- <item>5199411530</item>
- <item>6042556344</item>
- <item>6044283359</item>
- <item>6044371940</item>
- <item>6045831295</item>
- <item>6046871867</item>
- <item>6048723311</item>
- <item>6048750885</item>
- <item>6049873374</item>
- <item>6134982100</item>
- <item>6135453227</item>
- <item>6136735148</item>
- <item>6137226914</item>
- <item>6137356866</item>
- <item>6137477800</item>
- <item>6139332292</item>
- <item>6139629291</item>
- <item>7052689033</item>
- <item>7053362229</item>
- <item>7053607100</item>
- <item>7054720910</item>
- <item>7055663113</item>
- <item>7057266587</item>
- <item>7057439751</item>
- <item>7058592100</item>
- <item>7059490162</item>
- <item>7099446900</item>
- <item>7803101818</item>
- <item>7804790058</item>
- <item>7805232929</item>
- <item>7805234357</item>
- <item>7806721035</item>
- <item>8072743201</item>
- <item>8073436100</item>
- <item>8074675437</item>
- <item>8074686224</item>
- <item>8076238511</item>
- <item>8077373466</item>
- <item>8669399915</item>
- <item>8676337720</item>
- <item>8676685733</item>
- <item>8679793333</item>
- <item>9053334441</item>
- <item>9053636131</item>
- <item>9054331551</item>
- <item>9055221121</item>
- <item>9055252012</item>
- <item>9058952318</item>
- <item>13065692724</item>
- <item>17806322233</item>
- <item>17806327070</item>
- <item>18002507010</item>
- <item>18002633045</item>
- <item>18002653333</item>
- <item>18002655609</item>
- <item>18002658300</item>
- <item>18002670570</item>
- <item>18002675878</item>
- <item>18002681899</item>
- <item>18003639010</item>
- <item>18003875437</item>
- <item>18004651100</item>
- <item>18004653624</item>
- <item>18004653905</item>
- <item>18004817834</item>
- <item>18005630808</item>
- <item>18006610844</item>
- <item>18006612843</item>
- <item>18006756168</item>
- <item>18007183850</item>
- <item>18553061443</item>
- <item>18553224453</item>
- <item>18554432660</item>
- <item>18554453227</item>
- <item>18555544325</item>
- <item>18556871868</item>
- <item>18664209990</item>
- <item>18664371940</item>
- <item>18665232929</item>
- <item>18666067233</item>
- <item>18666075437</item>
- <item>18666613311</item>
- <item>18668607082</item>
- <item>18668630511</item>
- <item>18668637868</item>
- <item>18668720113</item>
- <item>18669960991</item>
- <item>18772724334</item>
- <item>18773030910</item>
- <item>18773362433</item>
- <item>18773927583</item>
- <item>18775211188</item>
- <item>18776721010</item>
- <item>18779770007</item>
- <item>18882275437</item>
- <item>18882982916</item>
- <item>18883223019</item>
- <item>18883320000</item>
- <item>18884143571</item>
- <item>18886616167</item>
- <item>18887000996</item>
- <item>18887538681</item>
- <item>18887833111</item>
- <item>18889377731</item>
- </sensitivePN>
- <!--USA-->
- <sensitivePN network="310,311,312,313,316">
- <item>18004224453</item>
- <item>18006214673</item>
- <item>18006564673</item>
- <item>18007997233</item>
- <item>18662231111</item>
- <item>18663852699</item>
- <item>18666894357</item>
- </sensitivePN>
- <!--Antigua and Barbuda-->
- <sensitivePN network="344">
- <item>8004357</item>
- </sensitivePN>
- <!--Former Dutch Antilles-->
- <sensitivePN network="362">
- <item>4614444</item>
- </sensitivePN>
- <!--Aruba-->
- <sensitivePN network="363">
- <item>131</item>
- </sensitivePN>
- <!--Azerbaijan-->
- <sensitivePN network="400">
- <item>0124802280</item>
- <item>0506802280</item>
- <item>0518801180</item>
- <item>0884802280</item>
- </sensitivePN>
- <!--India-->
- <sensitivePN network="404,405">
- <item>1090</item>
- <item>1091</item>
- <item>1098</item>
- </sensitivePN>
- <!--Israel-->
- <sensitivePN network="425">
- <item>1201</item>
- <item>1202</item>
- <item>1203</item>
- <item>1204</item>
- </sensitivePN>
- <!--Taiwan-->
- <sensitivePN network="466">
- <item>113</item>
- <item>1955</item>
- <item>88635557953</item>
- <item>886253883095</item>
- </sensitivePN>
- <!--Bangladesh-->
- <sensitivePN network="470">
- <item>10921</item>
- </sensitivePN>
- <!--Australia-->
- <sensitivePN network="505">
- <item>1800737732</item>
- </sensitivePN>
- <!--Indonesia-->
- <sensitivePN network="510">
- <item>0213903963</item>
- </sensitivePN>
- <!--New Zealand-->
- <sensitivePN network="530">
- <item>0800733843</item>
- </sensitivePN>
- <!--Brazil-->
- <sensitivePN network="724">
- <item>100</item>
- <item>180</item>
- <item>181</item>
- </sensitivePN>
-</sensitivePNS>
diff --git a/prebuilt/common/lib/content-types.properties b/prebuilt/common/lib/content-types.properties
deleted file mode 100644
index a8cdc00f..00000000
--- a/prebuilt/common/lib/content-types.properties
+++ /dev/null
@@ -1,44 +0,0 @@
-# If you want to support more recognized mimetypes in libcore.net.MimeUtils, add them here
-
-docm=application/vnd.ms-word.document.macroenabled.12
-xlsb=application/vnd.ms-excel.sheet.binary.macroenabled.12
-xlsm=application/vnd.ms-excel.sheet.macroenabled.12
-ppsm=application/vnd.ms-powerpoint.slideshow.macroenabled.12
-ppsx=application/vnd.openxmlformats-officedocument.presentationml.slideshow
-pptm=application/vnd.ms-powerpoint.presentation.macroenabled.12
-
-asm=text/x-asm
-cc=text/x-c
-conf=text/plain
-cpp=text/x-c
-css=text/css
-c=text/x-c
-cxx=text/x-c
-def=text/plain
-dic=text/x-c
-f77=text/x-fortran
-f90=text/x-fortran
-for=text/x-fortran
-f=text/x-fortran
-hh=text/x-c
-hpp=text/x-c
-h=text/x-c
-ics=text/calendar
-ifb=text/calendar
-in=text/plain
-jad=text/vnd.sun.j2me.app-descriptor
-java=text/x-java-source
-ksh=text/plain
-list=text/plain
-log=text/plain
-pas=text/x-pascal
-pl=text/plain
-properties=|
-prop=text/plain
-p=text/x-pascal
-py=text/x-python
-rc=text/plain
-sgml=text/sgml
-sgm=text/sgml
-s=text/x-asm
-vcs=text/x-vcalendar
diff --git a/prebuilt/common/media/audio/alarms/CyanAlarm.ogg b/prebuilt/common/media/audio/alarms/CyanAlarm.ogg
deleted file mode 100644
index 6755bb87..00000000
--- a/prebuilt/common/media/audio/alarms/CyanAlarm.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/alarms/NuclearLaunch.ogg b/prebuilt/common/media/audio/alarms/NuclearLaunch.ogg
deleted file mode 100644
index 00a4a83e..00000000
--- a/prebuilt/common/media/audio/alarms/NuclearLaunch.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/CyanDoink.ogg b/prebuilt/common/media/audio/notifications/CyanDoink.ogg
deleted file mode 100644
index e8135ce8..00000000
--- a/prebuilt/common/media/audio/notifications/CyanDoink.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/CyanMail.ogg b/prebuilt/common/media/audio/notifications/CyanMail.ogg
deleted file mode 100644
index 9b6d8c1e..00000000
--- a/prebuilt/common/media/audio/notifications/CyanMail.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/CyanMessage.ogg b/prebuilt/common/media/audio/notifications/CyanMessage.ogg
deleted file mode 100644
index 415bfdf4..00000000
--- a/prebuilt/common/media/audio/notifications/CyanMessage.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/Laser.ogg b/prebuilt/common/media/audio/notifications/Laser.ogg
deleted file mode 100644
index 2448c52c..00000000
--- a/prebuilt/common/media/audio/notifications/Laser.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/Naughty.ogg b/prebuilt/common/media/audio/notifications/Naughty.ogg
deleted file mode 100644
index 77f15a86..00000000
--- a/prebuilt/common/media/audio/notifications/Naughty.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/Pong.ogg b/prebuilt/common/media/audio/notifications/Pong.ogg
deleted file mode 100644
index 330d1e78..00000000
--- a/prebuilt/common/media/audio/notifications/Pong.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/Rang.ogg b/prebuilt/common/media/audio/notifications/Rang.ogg
deleted file mode 100644
index 2531b3a7..00000000
--- a/prebuilt/common/media/audio/notifications/Rang.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/notifications/Stone.ogg b/prebuilt/common/media/audio/notifications/Stone.ogg
deleted file mode 100644
index 4f9f239b..00000000
--- a/prebuilt/common/media/audio/notifications/Stone.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/Boxbeat.ogg b/prebuilt/common/media/audio/ringtones/Boxbeat.ogg
deleted file mode 100644
index 773f4780..00000000
--- a/prebuilt/common/media/audio/ringtones/Boxbeat.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/CyanTone.ogg b/prebuilt/common/media/audio/ringtones/CyanTone.ogg
deleted file mode 100644
index eea5142b..00000000
--- a/prebuilt/common/media/audio/ringtones/CyanTone.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/Highscore.ogg b/prebuilt/common/media/audio/ringtones/Highscore.ogg
deleted file mode 100644
index fe07c899..00000000
--- a/prebuilt/common/media/audio/ringtones/Highscore.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/Lyon.ogg b/prebuilt/common/media/audio/ringtones/Lyon.ogg
deleted file mode 100644
index 3e4c9250..00000000
--- a/prebuilt/common/media/audio/ringtones/Lyon.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/Rockin.ogg b/prebuilt/common/media/audio/ringtones/Rockin.ogg
deleted file mode 100644
index d48554d3..00000000
--- a/prebuilt/common/media/audio/ringtones/Rockin.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/Sheep.mp3 b/prebuilt/common/media/audio/ringtones/Sheep.mp3
deleted file mode 100644
index f3f84a93..00000000
--- a/prebuilt/common/media/audio/ringtones/Sheep.mp3
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/Yukaay.ogg b/prebuilt/common/media/audio/ringtones/Yukaay.ogg
deleted file mode 100644
index a4c88203..00000000
--- a/prebuilt/common/media/audio/ringtones/Yukaay.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/boosted/Boxbeat.ogg b/prebuilt/common/media/audio/ringtones/boosted/Boxbeat.ogg
deleted file mode 100644
index b2ef3cff..00000000
--- a/prebuilt/common/media/audio/ringtones/boosted/Boxbeat.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/boosted/CyanTone.ogg b/prebuilt/common/media/audio/ringtones/boosted/CyanTone.ogg
deleted file mode 100644
index a9cd3e6b..00000000
--- a/prebuilt/common/media/audio/ringtones/boosted/CyanTone.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/boosted/Highscore.ogg b/prebuilt/common/media/audio/ringtones/boosted/Highscore.ogg
deleted file mode 100644
index 70d6399b..00000000
--- a/prebuilt/common/media/audio/ringtones/boosted/Highscore.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/boosted/Lyon.ogg b/prebuilt/common/media/audio/ringtones/boosted/Lyon.ogg
deleted file mode 100644
index 7f43481e..00000000
--- a/prebuilt/common/media/audio/ringtones/boosted/Lyon.ogg
+++ /dev/null
Binary files differ
diff --git a/prebuilt/common/media/audio/ringtones/boosted/Rockin.ogg b/prebuilt/common/media/audio/ringtones/boosted/Rockin.ogg
deleted file mode 100644
index d9ec09dd..00000000
--- a/prebuilt/common/media/audio/ringtones/boosted/Rockin.ogg
+++ /dev/null
Binary files differ
diff --git a/product/nvidia.mk b/product/nvidia.mk
deleted file mode 100644
index 5ae815d0..00000000
--- a/product/nvidia.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright (C) 2019 The LineageOS 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.
-
-# Baseline Nvidia framework enhancements
-# Includes support for:
-# 1) NvCPL / Application Profiles
-NV_ANDROID_FRAMEWORK_ENHANCEMENTS := true
diff --git a/tools/custom_apns.py b/tools/custom_apns.py
deleted file mode 100644
index b58ece1b..00000000
--- a/tools/custom_apns.py
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2018 The LineageOS 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.
-#
-
-import sys
-from xml.dom.minidom import parseString
-
-def main(argv):
- reload(sys)
- sys.setdefaultencoding('utf8')
- original_file = 'vendor/lineage/prebuilt/common/etc/apns-conf.xml'
-
- if len(argv) == 3:
- output_file_path = argv[1]
- custom_override_file = argv[2]
- else:
- raise ValueError("Wrong number of arguments %s" % len(argv))
-
- custom_apn_names = []
- with open(custom_override_file, 'r') as f:
- for line in f:
- xmltree = parseString(line)
- carrier = xmltree.getElementsByTagName('apn')[0].getAttribute('carrier')
- custom_apn_names.append(carrier)
-
- with open(original_file, 'r') as input_file:
- with open(output_file_path, 'w') as output_file:
- for line in input_file:
- writeOriginalLine = True
- for apn in custom_apn_names:
- if apn in line:
- with open(custom_override_file, 'r') as custom_file:
- for override_line in custom_file:
- if apn in override_line:
- output_file.write(override_line)
- writeOriginalLine = False
- custom_apn_names.remove(apn)
- if writeOriginalLine:
- if "</apns>" in line:
- if custom_apn_names:
- for apn in custom_apn_names:
- with open(custom_override_file, 'r') as custom_file:
- for override_line in custom_file:
- if apn in override_line:
- output_file.write(override_line)
- output_file.write(line)
-
-if __name__ == '__main__':
- main(sys.argv)
diff --git a/vendorsetup.sh b/vendorsetup.sh
deleted file mode 100644
index 674364b0..00000000
--- a/vendorsetup.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-for combo in $(curl -s https://raw.githubusercontent.com/LineageOS/hudson/master/lineage-build-targets | sed -e 's/#.*$//' | grep lineage-16.0 | awk '{printf "lineage_%s-%s\n", $1, $2}')
-do
- add_lunch_combo $combo
-done
-
-add_lunch_combo lineage_arm-userdebug
-add_lunch_combo lineage_arm64-userdebug
-add_lunch_combo lineage_x86-userdebug
-add_lunch_combo lineage_x86_64-userdebug
diff --git a/verity_tool/Android.bp b/verity_tool/Android.bp
deleted file mode 100644
index 0a2ecd88..00000000
--- a/verity_tool/Android.bp
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2018 The LineageOS Project
-
-cc_library {
- name: "libveritytool",
- srcs: ["verity_tool.cpp"],
- local_include_dirs: ["include"],
- export_include_dirs: ["include"],
- cflags: ["-Werror"],
- shared_libs: [
- "libbase",
- "libcrypto",
- "libcrypto_utils",
- "libfec",
- ],
- static_libs: [
- "libfs_mgr",
- ],
- whole_static_libs: [
- "libavb_user",
- ],
-}
-
-cc_binary {
- name: "veritytool",
- srcs: ["main.cpp"],
- shared_libs: ["libveritytool"],
- cflags: ["-Werror"],
-}
diff --git a/verity_tool/include/verity_tool.h b/verity_tool/include/verity_tool.h
deleted file mode 100644
index b81eda1a..00000000
--- a/verity_tool/include/verity_tool.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2018 The LineageOS 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.
- */
-
-#pragma once
-
-#include <string>
-
-typedef enum {
- VERITY_STATE_UNKNOWN,
- VERITY_STATE_NO_DEVICE,
- VERITY_STATE_DISABLED,
- VERITY_STATE_ENABLED,
- VERITY_STATE_MAX = VERITY_STATE_ENABLED
-} verity_state_t;
-
-/*
- * Return codes:
- *
- * true: verity state set
- * false: verity state not set
- */
-bool set_block_device_verity_enabled(const std::string& block_device,
- bool enable);
-
-/*
- * Return codes:
- *
- * verity state (unknown, disabled, enabled)
- */
-verity_state_t get_verity_state();
-
-/*
- * Return codes:
- *
- * true: verity state set for all block devices
- * false: verity state not for set all block devices
- */
-bool set_verity_enabled(bool enable);
diff --git a/verity_tool/main.cpp b/verity_tool/main.cpp
deleted file mode 100644
index befdafac..00000000
--- a/verity_tool/main.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2018 The LineageOS 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 "verity_tool.h"
-
-#include <getopt.h>
-#include <stdio.h>
-#include <string.h>
-
-static void print_usage() {
- printf("veritytool - toggle block device verification\n"
- " --help show this help\n"
- " --enable enable dm-verity\n"
- " --disable disable dm-verity\n"
- " --show show current dm-verity state\n");
-}
-
-int main(int argc, char** argv) {
- int c, rc;
- int enable = 0;
- int show = 0;
- bool flag_set = false;
- struct option long_opts[] = {
- {"disable", no_argument, &enable, 0},
- {"enable", no_argument, &enable, 1},
- {"show", no_argument, &show, 1},
- {NULL, 0, NULL, 0},
- };
-
- while ((c = getopt_long(argc, argv, "des", long_opts, NULL)) != -1) {
- switch (c) {
- case 0:
- flag_set = true;
- break;
- default:
- print_usage();
- exit(0);
- }
- }
-
- if (!flag_set) {
- print_usage();
- exit(0);
- }
-
- if (show) {
- printf("dm-verity state: ");
- switch (get_verity_state()) {
- case VERITY_STATE_NO_DEVICE:
- printf("NO DEVICE");
- break;
- case VERITY_STATE_DISABLED:
- printf("DISABLED");
- break;
- case VERITY_STATE_ENABLED:
- printf("ENABLED");
- break;
- default:
- printf("UNKNOWN");
- break;
- }
- printf("\n");
- return 0;
- }
-
- if (!set_verity_enabled(enable)) {
- printf("Error occurred in set_verity_enable\n");
- exit(EXIT_FAILURE);
- }
-
- printf("Set verity mode to: %s\n", enable ? "enabled" : "disabled");
- printf("Now reboot your device for settings to take effect\n");
- return 0;
-}
diff --git a/verity_tool/verity_tool.cpp b/verity_tool/verity_tool.cpp
deleted file mode 100644
index 48e95b67..00000000
--- a/verity_tool/verity_tool.cpp
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- * Copyright (C) 2014 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.
- */
-
-#include "verity_tool.h"
-
-#include <android-base/logging.h>
-#include <android-base/properties.h>
-#include <fs_mgr.h>
-#include <fec/io.h>
-#include <libavb_user/libavb_user.h>
-
-#include <linux/fs.h>
-
-#include <errno.h>
-
-static int make_block_device_writable(const std::string& block_device) {
- int fd = open(block_device.c_str(), O_RDONLY | O_CLOEXEC);
- if (fd < 0) {
- return -errno;
- }
-
- int OFF = 0;
- int rc = ioctl(fd, BLKROSET, &OFF);
- if (rc < 0) {
- rc = -errno;
- goto out;
- }
- rc = 0;
-out:
- close(fd);
- return rc;
-}
-
-/* Turn verity on/off */
-bool set_block_device_verity_enabled(const std::string& block_device,
- bool enable) {
- int rc = make_block_device_writable(block_device);
- if (rc) {
- LOG(ERROR) << "Could not make block device "
- << block_device << " writable:" << rc;
- return false;
- }
-
- fec::io fh(block_device, O_RDWR);
- if (!fh) {
- PLOG(ERROR) << "Could not open block device " << block_device;
- return false;
- }
-
- fec_verity_metadata metadata;
- if (!fh.get_verity_metadata(metadata)) {
- LOG(ERROR) << "Couldn't find verity metadata!";
- return false;
- }
-
- if (!enable && metadata.disabled) {
- LOG(ERROR) << "Verity already disabled on " << block_device;
- return false;
- }
-
- if (enable && !metadata.disabled) {
- LOG(WARNING) << "Verity already enabled on " << block_device;
- return false;
- }
-
- if (!fh.set_verity_status(enable)) {
- PLOG(ERROR) << "Could not set verity "
- << (enable ? "enabled" : "disabled")
- << " flag on device " << block_device;
- return false;
- }
-
- LOG(DEBUG) << "Verity " << (enable ? "enabled" : "disabled")
- << " on " << block_device;
- return true;
-}
-
-/* Helper function to get A/B suffix, if any. If the device isn't
- * using A/B the empty string is returned. Otherwise either "_a",
- * "_b", ... is returned.
- *
- * Note that since sometime in O androidboot.slot_suffix is deprecated
- * and androidboot.slot should be used instead. Since bootloaders may
- * be out of sync with the OS, we check both and for extra safety
- * prepend a leading underscore if there isn't one already.
- */
-static std::string get_ab_suffix() {
- std::string ab_suffix = android::base::GetProperty("ro.boot.slot_suffix", "");
- if (ab_suffix.empty()) {
- ab_suffix = android::base::GetProperty("ro.boot.slot", "");
- }
- if (ab_suffix.size() > 0 && ab_suffix[0] != '_') {
- ab_suffix = std::string("_") + ab_suffix;
- }
- return ab_suffix;
-}
-
-verity_state_t get_verity_state() {
- verity_state_t rc = VERITY_STATE_NO_DEVICE;
- std::string ab_suffix = get_ab_suffix();
-
- // Figure out if we're using VB1.0 or VB2.0 (aka AVB) - by
- // contract, androidboot.vbmeta.digest is set by the bootloader
- // when using AVB).
- bool using_avb = !android::base::GetProperty("ro.boot.vbmeta.digest", "").empty();
-
- if (using_avb) {
- // Yep, the system is using AVB.
- AvbOps* ops = avb_ops_user_new();
- if (ops == nullptr) {
- LOG(ERROR) << "Error getting AVB ops";
- avb_ops_user_free(ops);
- return VERITY_STATE_UNKNOWN;
- }
- bool verity_enabled;
- if (!avb_user_verity_get(ops, ab_suffix.c_str(), &verity_enabled)) {
- LOG(ERROR) << "Error getting verity state";
- avb_ops_user_free(ops);
- return VERITY_STATE_UNKNOWN;
- }
- rc = verity_enabled ? VERITY_STATE_ENABLED : VERITY_STATE_DISABLED;
- avb_ops_user_free(ops);
- } else {
- // Not using AVB - assume VB1.0.
-
- // read all fstab entries at once from all sources
- struct fstab* fstab = fs_mgr_read_fstab_default();
- if (!fstab) {
- LOG(ERROR) << "Failed to read fstab";
- fs_mgr_free_fstab(fstab);
- return VERITY_STATE_UNKNOWN;
- }
-
- // Loop through entries looking for ones that vold manages.
- for (int i = 0; i < fstab->num_entries; i++) {
- if (fs_mgr_is_verified(&fstab->recs[i])) {
- std::string block_device = fstab->recs[i].blk_device;
- fec::io fh(block_device, O_RDONLY);
- if (!fh) {
- PLOG(ERROR) << "Could not open block device " << block_device;
- rc = VERITY_STATE_UNKNOWN;
- break;
- }
-
- fec_verity_metadata metadata;
- if (!fh.get_verity_metadata(metadata)) {
- LOG(ERROR) << "Couldn't find verity metadata!";
- rc = VERITY_STATE_UNKNOWN;
- break;
- }
-
- rc = metadata.disabled ? VERITY_STATE_DISABLED : VERITY_STATE_ENABLED;
- }
- }
- fs_mgr_free_fstab(fstab);
- }
-
- return rc;
-}
-
-/* Use AVB to turn verity on/off */
-static bool set_avb_verity_enabled_state(AvbOps* ops, bool enable_verity) {
- std::string ab_suffix = get_ab_suffix();
-
- bool verity_enabled;
- if (!avb_user_verity_get(ops, ab_suffix.c_str(), &verity_enabled)) {
- LOG(ERROR) << "Error getting verity state";
- return false;
- }
-
- if ((verity_enabled && enable_verity) ||
- (!verity_enabled && !enable_verity)) {
- LOG(WARNING) << "verity is already "
- << verity_enabled ? "enabled" : "disabled";
- return false;
- }
-
- if (!avb_user_verity_set(ops, ab_suffix.c_str(), enable_verity)) {
- LOG(ERROR) << "Error setting verity";
- return false;
- }
-
- LOG(DEBUG) << "Successfully " << (enable_verity ? "enabled" : "disabled")
- << " verity";
- return true;
-}
-
-bool set_verity_enabled(bool enable) {
- bool rc = true;
-
- // Do not allow changing verity on user builds
- bool is_user = (android::base::GetProperty("ro.build.type", "") == "user");
- if (is_user) {
- LOG(ERROR) << "Cannot disable verity - USER BUILD";
- return false;
- }
-
- // Figure out if we're using VB1.0 or VB2.0 (aka AVB) - by
- // contract, androidboot.vbmeta.digest is set by the bootloader
- // when using AVB).
- bool using_avb = !android::base::GetProperty("ro.boot.vbmeta.digest", "").empty();
-
- // If using AVB, dm-verity is used on any build so we want it to
- // be possible to disable/enable on any build (except USER). For
- // VB1.0 dm-verity is only enabled on certain builds.
- if (using_avb) {
- // Yep, the system is using AVB.
- AvbOps* ops = avb_ops_user_new();
- if (ops == nullptr) {
- LOG(ERROR) << "Error getting AVB ops";
- return false;
- }
- rc = set_avb_verity_enabled_state(ops, enable);
- avb_ops_user_free(ops);
- } else {
- // Not using AVB - assume VB1.0.
-
- // read all fstab entries at once from all sources
- struct fstab* fstab = fs_mgr_read_fstab_default();
- if (!fstab) {
- LOG(ERROR) << "Failed to read fstab";
- return false;
- }
-
- // Loop through entries looking for ones that vold manages.
- for (int i = 0; i < fstab->num_entries; i++) {
- if (fs_mgr_is_verified(&fstab->recs[i])) {
- bool result = set_block_device_verity_enabled(
- fstab->recs[i].blk_device, enable);
- if (!result) {
- // Warn, but continue if failure occurred
- LOG(WARNING) << "Failed to set state "
- << (enable ? "enabled" : "disabled")
- << " on " << fstab->recs[i].mount_point;
- }
- rc = rc && result;
- }
- }
- }
-
- return rc;
-}
diff --git a/prebuilt/common/bin/wget b/wget
index 1d04de54..1d04de54 100755
--- a/prebuilt/common/bin/wget
+++ b/wget