mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2025-04-04 20:05:53 -04:00
Initial commit, long overdue
This commit is contained in:
commit
c0083c1519
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
Signing_Keys/
|
||||
Builds/
|
||||
Repos/
|
75
Manifests/Manifest_CM-11.0.xml
Normal file
75
Manifests/Manifest_CM-11.0.xml
Normal file
@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<manifest>
|
||||
|
||||
<remove-project name="CyanogenMod/android_device_generic_mips" />
|
||||
<remove-project name="CyanogenMod/android_device_generic_x86" />
|
||||
<remove-project name="CyanogenMod/android_device_google_accessory_arduino" />
|
||||
<remove-project name="CyanogenMod/android_device_google_accessory_demokit" />
|
||||
<remove-project name="CyanogenMod/android_external_ant-wireless_ant_native" />
|
||||
<remove-project name="CyanogenMod/android_external_ant-wireless_ant_service" />
|
||||
<remove-project name="CyanogenMod/android_external_arduino" />
|
||||
<remove-project name="CyanogenMod/android_hardware_samsung_slsi_exynos5" />
|
||||
<remove-project name="CyanogenMod/android_hardware_ti_omap3" />
|
||||
<remove-project name="CyanogenMod/android_hardware_ti_omap4xxx" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_CMAccount" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_CMBugreport" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_CMUpdater" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_Provision" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_Stk" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_VideoEditor" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_VoiceDialer" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_VoicePlus" />
|
||||
<remove-project name="CyanogenMod/android_packages_inputmethods_OpenWnn" />
|
||||
<remove-project name="CyanogenMod/android_packages_inputmethods_PinyinIME" />
|
||||
<remove-project name="CyanogenMod/android_packages_screensavers_Basic" />
|
||||
<remove-project name="CyanogenMod/android_packages_screensavers_PhotoTable" />
|
||||
<remove-project name="CyanogenMod/android_packages_screensavers_WebView" />
|
||||
<remove-project name="CyanogenMod/android_packages_wallpapers_Galaxy4" />
|
||||
<remove-project name="CyanogenMod/android_packages_wallpapers_HoloSpiral" />
|
||||
<remove-project name="CyanogenMod/android_packages_wallpapers_MagicSmoke" />
|
||||
<remove-project name="CyanogenMod/android_packages_wallpapers_MusicVisualization" />
|
||||
<remove-project name="CyanogenMod/android_packages_wallpapers_NoiseField" />
|
||||
<remove-project name="CyanogenMod/android_packages_wallpapers_PhaseBeam" />
|
||||
<remove-project name="CyanogenMod/android_packages_wallpapers_PhotoPhase" />
|
||||
<remove-project name="device/generic/mini-emulator-armv7-a-neon" />
|
||||
<remove-project name="device/generic/mini-emulator-mips" />
|
||||
<remove-project name="device/generic/mini-emulator-x86" />
|
||||
<remove-project name="platform/cts" />
|
||||
<remove-project name="platform/developers/build" />
|
||||
<remove-project name="platform/developers/demos" />
|
||||
<remove-project name="platform/developers/docs" />
|
||||
<remove-project name="platform/developers/samples/android" />
|
||||
<remove-project name="platform/docs/source.android.com" />
|
||||
<remove-project name="platform/packages/apps/OneTimeInitializer" />
|
||||
<remove-project name="platform/prebuilts/clang/darwin-x86/3.1" />
|
||||
<remove-project name="platform/prebuilts/clang/darwin-x86/3.2" />
|
||||
<remove-project name="platform/prebuilts/clang/darwin-x86/arm/3.3" />
|
||||
<remove-project name="platform/prebuilts/clang/darwin-x86/host/3.3" />
|
||||
<remove-project name="platform/prebuilts/clang/darwin-x86/mips/3.3" />
|
||||
<remove-project name="platform/prebuilts/clang/darwin-x86/x86/3.3" />
|
||||
<remove-project name="platform/prebuilts/clang/linux-x86/mips/3.3" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.7" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.7" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/host/headers" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.6" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/mips/mipsel-linux-android-4.7" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.6" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/x86/i686-linux-android-4.7" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.7" />
|
||||
<remove-project name="platform/prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.6" />
|
||||
<remove-project name="platform/prebuilts/gcc/linux-x86/mips/mipsel-linux-android-4.7" />
|
||||
<remove-project name="platform/prebuilts/python/darwin-x86/2.7.5" />
|
||||
<remove-project name="platform/tools/emulator" />
|
||||
|
||||
|
||||
<!--Device Repos-->
|
||||
<project path="device/zte/nex" name="spock1104/android_device_zte_nex" remote="github" revision="cm11_newkern" />
|
||||
<project path="device/qcom/common" name="CyanogenMod/android_device_qcom_common" remote="github" revision="cm-11.0" />
|
||||
<project path="kernel/zte/msm8930" name="spock1104/android_kernel_zte_msm8930" remote="github" revision="stockmod" />
|
||||
|
||||
|
||||
</manifest>
|
||||
|
137
Manifests/Manifest_CM-13.0.xml
Normal file
137
Manifests/Manifest_CM-13.0.xml
Normal file
@ -0,0 +1,137 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<manifest>
|
||||
|
||||
<remove-project name="CyanogenMod/android_device_generic_goldfish" />
|
||||
<remove-project name="CyanogenMod/android_device_generic_mips" />
|
||||
<remove-project name="CyanogenMod/android_device_google_atv" />
|
||||
<remove-project name="CyanogenMod/android_external_android-mock" />
|
||||
<remove-project name="CyanogenMod/android_external_ant-wireless_ant_native" />
|
||||
<remove-project name="CyanogenMod/android_external_ant-wireless_ant_service" />
|
||||
<remove-project name="CyanogenMod/android_frameworks_compile_mclinker" />
|
||||
<remove-project name="CyanogenMod/android_hardware_intel_common_libmix" />
|
||||
<remove-project name="CyanogenMod/android_hardware_intel_common_libva" />
|
||||
<remove-project name="CyanogenMod/android_hardware_intel_common_libwsbm" />
|
||||
<remove-project name="CyanogenMod/android_hardware_intel_common_omx-components" />
|
||||
<remove-project name="CyanogenMod/android_hardware_intel_img_hwcomposer" />
|
||||
<remove-project name="CyanogenMod/android_hardware_intel_img_psb_headers" />
|
||||
<remove-project name="CyanogenMod/android_hardware_intel_img_psb_video" />
|
||||
<remove-project name="CyanogenMod/android_hardware_qcom_fm" />
|
||||
<remove-project name="CyanogenMod/android_hardware_samsung_slsi_exynos5" />
|
||||
<remove-project name="CyanogenMod/android_hardware_ti_omap4" />
|
||||
<remove-project name="CyanogenMod/android_hardware_ti_omap4xxx" />
|
||||
<remove-project name="CyanogenMod/android_hardware_ti_wlan" />
|
||||
<remove-project name="CyanogenMod/android_hardware_ti_wpan" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_CMBugreport" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_CMUpdater" />
|
||||
<!--<remove-project name="CyanogenMod/android_packages_apps_Eleven" />-->
|
||||
<remove-project name="CyanogenMod/android_packages_apps_FMRadio" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_LockClock" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_ManagedProvisioning" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_Provision" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_SmartCardService" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_SpeechRecorder" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_Stk" />
|
||||
<!--<remove-project name="CyanogenMod/android_packages_apps_Terminal" />-->
|
||||
<remove-project name="CyanogenMod/android_packages_apps_TvSettings" />
|
||||
<remove-project name="CyanogenMod/android_packages_experimental" />
|
||||
<remove-project name="CyanogenMod/android_packages_providers_PartnerBookmarksProvider" />
|
||||
<remove-project name="CyanogenMod/android_packages_providers_TvProvider" />
|
||||
<remove-project name="CyanogenMod/android_packages_screensavers_Basic" />
|
||||
<remove-project name="CyanogenMod/android_packages_screensavers_PhotoTable" />
|
||||
<remove-project name="CyanogenMod/android_packages_screensavers_WebView" />
|
||||
<remove-project name="CyanogenMod/android_packages_wallpapers_Galaxy4" />
|
||||
<remove-project name="CyanogenMod/android_packages_wallpapers_HoloSpiral" />
|
||||
<remove-project name="CyanogenMod/android_packages_wallpapers_MagicSmoke" />
|
||||
<remove-project name="CyanogenMod/android_packages_wallpapers_NoiseField" />
|
||||
<remove-project name="CyanogenMod/android_packages_wallpapers_PhaseBeam" />
|
||||
<remove-project name="CyanogenMod/android_packages_wallpapers_PhotoPhase" />
|
||||
<remove-project name="device/generic/mini-emulator-arm64" />
|
||||
<remove-project name="device/generic/mini-emulator-armv7-a-neon" />
|
||||
<remove-project name="device/generic/mini-emulator-mips" />
|
||||
<remove-project name="device/generic/mini-emulator-x86" />
|
||||
<remove-project name="device/generic/mini-emulator-x86_64" />
|
||||
<remove-project name="device/generic/qemu" />
|
||||
<remove-project name="device/generic/x86" />
|
||||
<remove-project name="device/generic/x86_64" />
|
||||
<remove-project name="device/google/accessory/arduino" />
|
||||
<remove-project name="device/google/accessory/demokit" />
|
||||
<remove-project name="device/sample" />
|
||||
<remove-project name="platform/cts" />
|
||||
<remove-project name="platform/developers/build" />
|
||||
<remove-project name="platform/developers/samples/android" />
|
||||
<remove-project name="platform/docs/source.android.com" />
|
||||
<remove-project name="platform/external/google-tv-pairing-protocol" />
|
||||
<remove-project name="platform/hardware/intel/audio_media" />
|
||||
<remove-project name="platform/hardware/intel/bootstub" />
|
||||
<remove-project name="platform/hardware/intel/common/bd_prov" />
|
||||
<remove-project name="platform/hardware/intel/common/libstagefrighthw" />
|
||||
<remove-project name="platform/hardware/intel/common/utils" />
|
||||
<remove-project name="platform/hardware/intel/common/wrs_omxil_core" />
|
||||
<remove-project name="platform/hardware/intel/sensors" />
|
||||
<remove-project name="platform/hardware/marvell/bt" />
|
||||
<remove-project name="platform/hardware/mediatek" />
|
||||
<remove-project name="platform/hardware/ti/omap3" />
|
||||
<remove-project name="platform/hardware/ti/omap4-aah" />
|
||||
<remove-project name="platform/packages/apps/OneTimeInitializer" />
|
||||
<remove-project name="platform/prebuilts/android-emulator" />
|
||||
<remove-project name="platform/prebuilts/clang/darwin-x86/host/3.6" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.8" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.9" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/mips/mips64el-linux-android-4.9" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/x86/x86_64-linux-android-4.9" />
|
||||
<remove-project name="platform/prebuilts/gcc/linux-x86/mips/mips64el-linux-android-4.9" />
|
||||
<remove-project name="platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9" />
|
||||
<remove-project name="platform/prebuilts/python/darwin-x86/2.7.5" />
|
||||
|
||||
<remote name="gitlab" fetch="https://gitlab.com/" />
|
||||
|
||||
<!--Chromium-->
|
||||
<remove-project name="platform/external/chromium-webview" />
|
||||
<project path="external/chromium-webview" name="copperheados/platform_external_chromium-webview" remote="github" revision="marshmallow" />
|
||||
<project path="external/chromium" name="copperheados/platform_external_chromium" remote="github" revision="marshmallow" />
|
||||
|
||||
<!--Optimizations-->
|
||||
<remove-project name="CyanogenMod/android_build" />
|
||||
<project path="build" name="ArchiDroid/android_build" remote="github" revision="cm-13.0" />
|
||||
<remove-project name="platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9" />
|
||||
<remove-project name="platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8" />
|
||||
<remove-project name="platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9" />
|
||||
|
||||
<!--DNScrypt-->
|
||||
<project path="external/dnscrypt-proxy" name="CyanogenMod/android_external_dnscrypt_dnscrypt-proxy" remote="github" revision="cm-12.1" />
|
||||
<project path="external/libsodium" name="CyanogenMod/android_external_dnscrypt_libsodium" remote="github" revision="cm-12.1" />
|
||||
|
||||
<!--Device Repos-->
|
||||
<project path="device/lge/g3-common" name="CyanogenMod/android_device_lge_g3-common" remote="github" revision="cm-13.0" />
|
||||
<project path="device/lge/hammerhead" name="CyanogenMod/android_device_lge_hammerhead" remote="github" revision="cm-13.0" />
|
||||
<project path="device/lge/mako" name="SpotComms/android_device_lge_mako" remote="github" revision="cm-13.0" />
|
||||
<project path="device/lge/vs985" name="CyanogenMod/android_device_lge_vs985" remote="github" revision="cm-13.0" />
|
||||
<project path="device/moto/shamu" name="CyanogenMod/android_device_moto_shamu" remote="github" revision="cm-13.0" />
|
||||
<project path="device/oneplus/bacon" name="SpotComms/android_device_oneplus_bacon" remote="github" revision="cm-13.0" />
|
||||
<project path="device/oppo/common" name="CyanogenMod/android_device_oppo_common" remote="github" revision="cm-13.0" />
|
||||
<project path="device/oppo/msm8974-common" name="CyanogenMod/android_device_oppo_msm8974-common" remote="github" revision="cm-13.0" />
|
||||
<project path="device/qcom/common" name="CyanogenMod/android_device_qcom_common" remote="github" revision="cm-13.0" />
|
||||
<project path="device/samsung/hlte-common" name="CyanogenMod/android_device_samsung_hlte-common" remote="github" revision="cm-13.0" />
|
||||
<project path="device/samsung/hlte" name="CyanogenMod/android_device_samsung_hlte" remote="github" revision="cm-13.0" />
|
||||
<project path="device/samsung/msm8974-common" name="CyanogenMod/android_device_samsung_msm8974-common" remote="github" revision="cm-13.0" />
|
||||
<project path="device/samsung/qcom-common" name="CyanogenMod/android_device_samsung_qcom-common" remote="github" revision="cm-13.0" />
|
||||
<project path="external/stlport" name="CyanogenMod/android_external_stlport" remote="github" revision="cm-13.0" />
|
||||
<project path="hardware/samsung" name="CyanogenMod/android_hardware_samsung" remote="github" revision="cm-13.0" />
|
||||
<project path="kernel/google/msm" name="SpotComms/android_kernel_google_msm" remote="github" revision="cm-13.0" />
|
||||
<project path="kernel/lge/g3" name="CyanogenMod/android_kernel_lge_g3" remote="github" revision="cm-13.0" />
|
||||
<project path="kernel/lge/hammerhead" name="CyanogenMod/android_kernel_lge_hammerhead" remote="github" revision="cm-13.0" />
|
||||
<project path="kernel/moto/shamu" name="CyanogenMod/android_kernel_moto_shamu" remote="github" revision="cm-13.0" />
|
||||
<project path="kernel/oneplus/msm8974" name="SpotComms/android_kernel_oneplus_msm8974" remote="github" revision="cm-13.0-new3" />
|
||||
<project path="kernel/samsung/hlte" name="CyanogenMod/android_kernel_samsung_hlte" remote="github" revision="cm-13.0" />
|
||||
<project path="vendor/lge" name="TheMuppets/proprietary_vendor_lge" remote="github" revision="cm-13.0" />
|
||||
<project path="vendor/motorola" name="TheMuppets/proprietary_vendor_motorola" remote="github" revision="cm-13.0" />
|
||||
<project path="vendor/oneplus" name="TheMuppets/proprietary_vendor_oneplus" remote="github" revision="cm-13.0" />
|
||||
<project path="vendor/oppo" name="TheMuppets/proprietary_vendor_oppo" remote="github" revision="cm-13.0" />
|
||||
<project path="vendor/samsung" name="TheMuppets/proprietary_vendor_samsung" remote="github" revision="cm-13.0" />
|
||||
|
||||
<!--TWRP
|
||||
<remove-project name="CyanogenMod/android_bootable_recovery" />
|
||||
<project path="bootable/recovery" name="omnirom/android_bootable_recovery" remote="github" revision="android-6.0" />-->
|
||||
</manifest>
|
148
Manifests/Manifest_CM-14.1.xml
Normal file
148
Manifests/Manifest_CM-14.1.xml
Normal file
@ -0,0 +1,148 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<manifest>
|
||||
|
||||
<!-- START OF UNNECESSARY REPO REMOVAL -->
|
||||
<remove-project name="CyanogenMod/android_external_ant-wireless_ant_native" />
|
||||
<remove-project name="CyanogenMod/android_external_ant-wireless_ant_service" />
|
||||
<remove-project name="CyanogenMod/android_external_gello_build" />
|
||||
<remove-project name="CyanogenMod/android_hardware_intel_common_libmix" />
|
||||
<remove-project name="CyanogenMod/android_hardware_intel_common_libva" />
|
||||
<remove-project name="CyanogenMod/android_hardware_intel_common_libwsbm" />
|
||||
<remove-project name="CyanogenMod/android_hardware_intel_common_omx-components" />
|
||||
<remove-project name="CyanogenMod/android_hardware_intel_common_utils" />
|
||||
<remove-project name="CyanogenMod/android_hardware_intel_img_hwcomposer" />
|
||||
<remove-project name="CyanogenMod/android_hardware_intel_img_psb_headers" />
|
||||
<remove-project name="CyanogenMod/android_hardware_intel_img_psb_video" />
|
||||
<remove-project name="CyanogenMod/android_hardware_ti_omap4xxx" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_CMBugreport" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_FMRadio" />
|
||||
<remove-project name="CyanogenMod/CyanogenMod/android_packages_apps_Gello" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_ManagedProvisioning" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_Stk" />
|
||||
<remove-project name="CyanogenMod/android_packages_apps_TvSettings" />
|
||||
<remove-project name="CyanogenMod/android_packages_providers_PartnerBookmarksProvider" />
|
||||
<remove-project name="CyanogenMod/android_packages_providers_TvProvider" />
|
||||
<remove-project name="CyanogenMod/android_packages_screensavers_Basic" />
|
||||
<remove-project name="CyanogenMod/android_packages_screensavers_PhotoTable" />
|
||||
<remove-project name="CyanogenMod/android_packages_screensavers_WebView" />
|
||||
<remove-project name="CyanogenMod/android_packages_services_Car" />
|
||||
<remove-project name="CyanogenMod/android_prebuilts_gcc_darwin-x86_aarch64_aarch64-linux-android-4.9" />
|
||||
<remove-project name="CyanogenMod/android_prebuilts_gcc_darwin-x86_arm_arm-linux-androideabi-4.9" />
|
||||
<remove-project name="CyanogenMod/android_prebuilts_gcc_darwin-x86_x86_x86_64-linux-android-4.9" />
|
||||
<remove-project name="device/generic/goldfish" />
|
||||
<remove-project name="device/generic/mini-emulator-arm64" />
|
||||
<remove-project name="device/generic/mini-emulator-armv7-a-neon" />
|
||||
<remove-project name="device/generic/mini-emulator-x86" />
|
||||
<remove-project name="device/generic/mini-emulator-x86_64" />
|
||||
<remove-project name="device/generic/qemu" />
|
||||
<remove-project name="device/sample" />
|
||||
<remove-project name="platform/cts" />
|
||||
<remove-project name="platform/hardware/intel/audio_media" />
|
||||
<remove-project name="platform/hardware/intel/bootstub" />
|
||||
<remove-project name="platform/hardware/intel/common/bd_prov" />
|
||||
<remove-project name="platform/hardware/intel/common/libstagefrighthw" />
|
||||
<remove-project name="platform/hardware/intel/common/wrs_omxil_core" />
|
||||
<remove-project name="platform/hardware/intel/sensors" />
|
||||
<remove-project name="platform/hardware/ti/omap3" />
|
||||
<remove-project name="platform/hardware/ti/omap4-aah" />
|
||||
<remove-project name="platform/packages/apps/Provision" />
|
||||
<remove-project name="platform/prebuilts/clang/darwin-x86/host/3.6" />
|
||||
<remove-project name="platform/prebuilts/clang/host/darwin-x86" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.8" />
|
||||
<remove-project name="platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1" />
|
||||
<remove-project name="platform/prebuilts/gdb/darwin-x86" />
|
||||
<remove-project name="platform/prebuilts/go/darwin-x86" />
|
||||
<remove-project name="platform/prebuilts/ninja/darwin-x86" />
|
||||
<remove-project name="platform/prebuilts/python/darwin-x86/2.7.5" />
|
||||
<!-- END OF UNNECESSARY REPO REMOVAL -->
|
||||
|
||||
|
||||
<!-- START OF REPLACEMENT REPOS -->
|
||||
<!-- Updated WebView
|
||||
<remove-project name="platform/external/chromium-webview" /> -->
|
||||
|
||||
<!-- OpenDelta Updater -->
|
||||
<remove-project name="CyanogenMod/android_packages_apps_CMUpdater" />
|
||||
<project path="packages/apps/OpenDelta" name="omnirom/android_packages_apps_OpenDelta" remote="github" revision="android-7.1" />
|
||||
|
||||
<!-- TWRP
|
||||
<remove-project name="CyanogenMod/android_bootable_recovery" />
|
||||
<project path="bootable/recovery" name="omnirom/android_bootable_recovery" remote="github" revision="android-7.0" />-->
|
||||
|
||||
<!-- MicroG -->
|
||||
<project path="packages/apps/GmsCore" name="microg/android_packages_apps_GmsCore" remote="github" revision="master" />
|
||||
<project path="packages/apps/GsfProxy" name="microg/android_packages_apps_GsfProxy" remote="github" revision="master" />
|
||||
<project path="packages/apps/FakeStore" name="microg/android_packages_apps_FakeStore" remote="github" revision="master" />
|
||||
|
||||
<!-- F-Droid -->
|
||||
<remote name="fdroid" fetch="https://gitlab.com/fdroid/" />
|
||||
<project path="packages/apps/FDroidPrivilegedExtension" name="privileged-extension.git" remote="fdroid" revision="master" />
|
||||
<project path="packages/apps/FDroid" name="fdroidclient.git" remote="fdroid" revision="master" />
|
||||
<!-- END OF REPLACEMENT REPOS -->
|
||||
|
||||
|
||||
<!-- START OF DEVICE REPOS -->
|
||||
<!-- Common -->
|
||||
<project path="packages/resources/devicesettings" name="CyanogenMod/android_packages_resources_devicesettings" remote="github" />
|
||||
<project path="device/oppo/common" name="CyanogenMod/android_device_oppo_common" remote="github" />
|
||||
<project path="device/qcom/common" name="CyanogenMod/android_device_qcom_common" remote="github" />
|
||||
<project path="hardware/samsung" name="CyanogenMod/android_hardware_samsung" remote="github" />
|
||||
<project path="hardware/sony/thermanager" name="CyanogenMod/android_hardware_sony_thermanager" remote="github" />
|
||||
<project path="kernel/google/msm" name="CyanogenMod/android_kernel_google_msm" remote="github" />
|
||||
|
||||
<!-- Nexus 4 (Mako) -->
|
||||
<project path="device/lge/mako" name="CyanogenMod/android_device_lge_mako" remote="github" />
|
||||
<project path="kernel/lge/mako" name="CyanogenMod/lge-kernel-mako" remote="github" />
|
||||
|
||||
<!-- Nexus 5 (Hammerhead) -->
|
||||
<project path="device/lge/hammerhead" name="CyanogenMod/android_device_lge_hammerhead" remote="github" />
|
||||
<project path="kernel/lge/hammerhead" name="CyanogenMod/android_kernel_lge_hammerhead" remote="github" />
|
||||
|
||||
<!-- Nexus 6 (Shamu) -->
|
||||
<project path="device/moto/shamu" name="CyanogenMod/android_device_moto_shamu" remote="github" />
|
||||
<project path="kernel/moto/shamu" name="CyanogenMod/android_kernel_moto_shamu" remote="github" />
|
||||
|
||||
<!-- Nexus 5X (Bullhead) -->
|
||||
<project path="device/lge/bullhead" name="CyanogenMod/android_device_lge_bullhead" remote="github" />
|
||||
<project path="kernel/lge/bullhead" name="CyanogenMod/android_kernel_lge_bullhead" remote="github" />
|
||||
|
||||
<!-- Nexus 6P (Angler) -->
|
||||
<project path="device/huawei/angler" name="CyanogenMod/android_device_huawei_angler" remote="github" />
|
||||
<project path="kernel/huawei/angler" name="CyanogenMod/android_kernel_huawei_angler" remote="github" />
|
||||
|
||||
<!-- Asus Zenfone 2 Laser (Z00T) -->
|
||||
<project name="CyanogenMod/android_device_asus_msm8916-common" path="device/asus/msm8916-common" remote="github" />
|
||||
<project name="CyanogenMod/android_device_asus_Z00T" path="device/asus/Z00T" remote="github" />
|
||||
<project name="CyanogenMod/android_kernel_asus_msm8916" path="kernel/asus/msm8916" remote="github" />
|
||||
|
||||
<!-- LG G3 (VS985) -->
|
||||
<project path="device/lge/g3-common" name="CyanogenMod/android_device_lge_g3-common" remote="github" />
|
||||
<project path="device/lge/vs985" name="CyanogenMod/android_device_lge_vs985" remote="github" />
|
||||
<project path="kernel/lge/g3" name="CyanogenMod/android_kernel_lge_g3" remote="github" />
|
||||
|
||||
<!-- Moto X Pure Edition (XT1575) -->
|
||||
<project path="device/motorola/clark" name="CyanogenMod/android_device_motorola_clark" remote="github" />
|
||||
<project path="kernel/motorola/msm8992" name="CyanogenMod/android_kernel_motorola_msm8992" remote="github" />
|
||||
|
||||
<!-- OnePlus One (Bacon) -->
|
||||
<project path="device/oneplus/bacon" name="CyanogenMod/android_device_oneplus_bacon" remote="github" />
|
||||
<project path="device/oppo/msm8974-common" name="CyanogenMod/android_device_oppo_msm8974-common" remote="github" />
|
||||
<project path="kernel/oneplus/msm8974" name="CyanogenMod/android_kernel_oneplus_msm8974" remote="github" />
|
||||
|
||||
<!-- Samsung Galaxy Note 4 (trltetmo)
|
||||
<project path="device/samsung/trlte-common" name="CyanogenMod/android_device_samsung_trlte-common" remote="github" />
|
||||
<project path="device/samsung/trltetmo" name="CyanogenMod/android_device_samsung_trltetmo" remote="github" />
|
||||
<project path="kernel/samsung/trlte" name="CyanogenMod/android_kernel_samsung_trlte" remote="github" />-->
|
||||
|
||||
<!-- Proprietary Blobs -->
|
||||
<project path="vendor/asus" name="TheMuppets/proprietary_vendor_asus" remote="github" />
|
||||
<project path="vendor/huawei" name="TheMuppets/proprietary_vendor_huawei" remote="github" />
|
||||
<project path="vendor/lge" name="TheMuppets/proprietary_vendor_lge" remote="github" />
|
||||
<project path="vendor/motorola" name="TheMuppets/proprietary_vendor_motorola" remote="github" />
|
||||
<project path="vendor/oneplus" name="TheMuppets/proprietary_vendor_oneplus" remote="github" />
|
||||
<project path="vendor/oppo" name="TheMuppets/proprietary_vendor_oppo" remote="github" />
|
||||
<project path="vendor/samsung" name="TheMuppets/proprietary_vendor_samsung" remote="github" />
|
||||
<project path="vendor/qcom/binaries" name="TheMuppets/proprietary_vendor_qcom_binaries" remote="github" />
|
||||
<!-- END OF DEVICE REPOS -->
|
||||
|
||||
</manifest>
|
13
Manifests/Manifest_OmniROM-7.1.xml
Normal file
13
Manifests/Manifest_OmniROM-7.1.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<manifest>
|
||||
|
||||
<!-- START OF DEVICE REPOS -->
|
||||
|
||||
<!-- Proprietary Blobs -->
|
||||
<project path="vendor/lge" name="DonkeyCoyote/proprietary_vendor_lge" remote="github" />
|
||||
<project path="vendor/motorola" name="DonkeyCoyote/proprietary_vendor_motorola" remote="github" />
|
||||
<project path="vendor/oneplus" name="DonkeyCoyote/proprietary_vendor_oneplus" remote="github" />
|
||||
<project path="vendor/oppo" name="DonkeyCoyote/proprietary_vendor_oppo" remote="github" />
|
||||
<!-- END OF DEVICE REPOS -->
|
||||
|
||||
</manifest>
|
12
Misc/99clear_cache
Normal file
12
Misc/99clear_cache
Normal file
@ -0,0 +1,12 @@
|
||||
#!/system/bin/sh
|
||||
#clears various junk
|
||||
|
||||
rm -rf /cache/*
|
||||
rm -rf /data/anr/*
|
||||
#rm -rf /data/log/*
|
||||
rm -rf /data/system/cache/*
|
||||
rm -rf /data/system/dropbox/*
|
||||
rm -rf /data/system/procstats/*
|
||||
rm -rf /data/system/recent_images/*
|
||||
rm -rf /data/system/usagestats/*
|
||||
rm -rf /data/tombstones/*
|
182
Misc/App-Profiles.txt
Normal file
182
Misc/App-Profiles.txt
Normal file
@ -0,0 +1,182 @@
|
||||
au.com.shiftyjelly.pocketcasts.*,0
|
||||
be.uhasselt.privacypolice.*,0
|
||||
com.accuweather.android.*,0
|
||||
com.adobe.reader.*,0
|
||||
com.alensw.PicFolder.*,0
|
||||
com.amaze.filemanager.*,0
|
||||
com.amazon.kindle.*,0
|
||||
com.amazon.mShop.android.shopping.*,0
|
||||
com.amazon.windowshop.*,0
|
||||
com.andrewshu.android.reddit.*,0
|
||||
com.andrewshu.android.redditdonation.*,0
|
||||
com.android.browser.*,1
|
||||
com.android.calculator2.*,0
|
||||
com.android.calendar.*,0
|
||||
com.android.camera2.*,1
|
||||
com.android.chrome.*,1
|
||||
com.android.contacts.*,0
|
||||
com.android.deskclock.*,0
|
||||
com.android.dialer.*,0
|
||||
com.android.email.*,0
|
||||
com.android.gallery3d.*,0
|
||||
com.android.incallui.*,0
|
||||
com.android.keepass.*,1
|
||||
com.android.mms.*,0
|
||||
com.android.providers.downloads.ui.*,0
|
||||
com.android.settings.*,0
|
||||
com.android.soundrecorder.*,0
|
||||
com.antutu.ABenchMark.*,2
|
||||
.*com.antutu.benchmark.*,2
|
||||
com.asksven.betterbatterystats.*,0
|
||||
com.aurorasoftworks.quadrant.*BenchmarkExecutionActivity,2
|
||||
com.authy.authy.*,0
|
||||
com.bethsoft.falloutshelter.*,1
|
||||
com.coffeestainstudios.goatsimulator.*,1
|
||||
com.cyanogenmod.trebuchet.*,0
|
||||
com.danvelazco.fbwrapper.*,0
|
||||
com.distractionware.superhexagon.*,1
|
||||
com.dropbox.android.*,0
|
||||
com.eamobile.monopoly_na_wf.*,1
|
||||
com.ebay.mobile.*,0
|
||||
com.facebook.katana.*,1
|
||||
com.facebook.orca.*,1
|
||||
com.farproc.wifi.analyzer.*,0
|
||||
com.fifthelement.trimmer.*,1
|
||||
com.flightradar24pro.*,1
|
||||
com.flyersoft.moonreader.*,0
|
||||
com.flyersoft.moonreaderp.*,0
|
||||
com.gh4a.*,0
|
||||
com.google.android.apps.chromecast.app.*,0
|
||||
com.google.android.apps.docs.editors.docs.*,1
|
||||
com.google.android.apps.docs.editors.sheets.*,1
|
||||
com.google.android.apps.docs.editors.slides.*,1
|
||||
com.google.android.apps.gmoney.*,0
|
||||
com.google.android.apps.hangoutsdialer.*,1
|
||||
com.google.android.apps.inbox.*,0
|
||||
com.google.android.apps.messaging.*,0
|
||||
com.google.android.apps.pdfviewer.*,0
|
||||
com.google.android.apps.photos.*,0
|
||||
com.google.android.apps.translate.*,1
|
||||
com.google.android.calendar.*,0
|
||||
com.google.android.gms.*,0
|
||||
com.google.android.googlequicksearchbox.*,1
|
||||
com.google.android.keep.*,0
|
||||
com.google.android.play.games.*,0
|
||||
com.google.android.youtube.*,1
|
||||
com.google.earth.*,1
|
||||
com.google.xzing.client.android.*,0
|
||||
com.grarak.kerneladiutor.*,0
|
||||
com.hulu.plus.*,1
|
||||
com.instagram.android.*,1
|
||||
com.ironhidegames.android.kingdomrushfrontiers.*,1
|
||||
com.ironhidegames.android.kingdomrushorigins.*,1
|
||||
com.jeremysteckling.facerrel.*,0
|
||||
com.koushikdutta.backup.*,1
|
||||
com.koushikdutta.backup.license.*,1
|
||||
com.laurencedawson.reddit_sync.*,0
|
||||
com.laurencedawson.reddit_sync.pro.*,0
|
||||
com.leosfortune.*,0
|
||||
com.lightricks.facetune.*,1
|
||||
com.mb.android.*,1
|
||||
com.melodis.midomiMusicIdentifier.freemium.*,0
|
||||
com.mgaetan89.showsrage.*,0
|
||||
com.microblink.photomath.*,1
|
||||
com.microsoft.office.excel.*,1
|
||||
com.microsoft.office.outlook.*,0
|
||||
com.microsoft.office.powerpoint.*,1
|
||||
com.microsoft.office.word.*,1
|
||||
com.microsoft.skydrive.*,0
|
||||
com.miniclip.plagueinc.*,0
|
||||
com.mitzuli.*,0
|
||||
com.mojang.minecraftpe.*,1
|
||||
com.morlunk.mumbleclient.*,0
|
||||
com.mxtech.videoplayer.ad.*,1
|
||||
com.mxtech.videoplayer.pro.*,1
|
||||
com.netflix.mediaclient.*,1
|
||||
com.ngmoco.pocketgod.*,0
|
||||
com.ninjakiwi.bloonstd5.*,1
|
||||
com.nutomic.syncthingandroid.*,1
|
||||
com.oasisfeng.greenify.*,0
|
||||
com.oasisfeng.greenify.pro.*,0
|
||||
com.pandora.android.*,0
|
||||
com.paypal.android.p2pmobile.*,0
|
||||
com.pinterest.*,0
|
||||
com.plexapp.android.*,1
|
||||
com.primatelabs.geekbench.*,2
|
||||
com.quizup.core.*,0
|
||||
com.redbox.android.activity.*,0
|
||||
com.roku.remote.*,0
|
||||
com.rovio.angrybirds.*,0
|
||||
com.samruston.weather.*,0
|
||||
com.SecUpwN.AIMSICD.*,0
|
||||
com.shazam.android.*,0
|
||||
com.shazam.encore.android.*,0
|
||||
com.skype.radar.*,1
|
||||
com.snapchat.android.*,1
|
||||
com.soundcloud.android.*,0
|
||||
com.spotify.music.*,0
|
||||
com.target.ui.*,0
|
||||
com.tassadar.multirommgr.*,1
|
||||
com.teamspeak.ts3client.*,0
|
||||
com.tinder.*,0
|
||||
com.tobykurien.google_news.*,0
|
||||
com.tumblr.*,0
|
||||
com.twitter.android.*,0
|
||||
com.ubercab.*,1
|
||||
com.ubercab.driver.*,1
|
||||
com.urbandroid.sleep.*,0
|
||||
com.ustwo.monumentvalley.*,0
|
||||
com.uzumapps.wakelockdetector.*,0
|
||||
com.valvesoftware.android.steam.community.*,0
|
||||
com.walmart.android.*,0
|
||||
com.waze.*,1
|
||||
com.weather.Weather.*,0
|
||||
com.whatsapp.*,0
|
||||
com.xzbber.androiddev.*,0
|
||||
com.yelp.android.*,0
|
||||
com.yodo1.crossroad.*,0
|
||||
com.yubico.yubiclip.*,0
|
||||
com.yubico.yubioath.*,0
|
||||
com.zillow.android.zillowmap.*,1
|
||||
co.vine.android.*,1
|
||||
de.srlabs.snoopsnitch.*,0
|
||||
de.tap.easy_xkcd.*,0
|
||||
dev.ukanth.ufirewall.*, 1
|
||||
dk.jens.backup.*,1
|
||||
eu.chainfire.supersu.*,0
|
||||
eu.chainfire.supersu.pro.*,0
|
||||
eu.thedarken.sdm.*,1
|
||||
fr.kwiatkowski.ApkTrack.*,1
|
||||
io.github.droidapps.pdfreader.*,0
|
||||
it.mvilla.android.fenix.*,0
|
||||
kik.android.*,1
|
||||
me.ccrama.redditslide.*,0
|
||||
me.ccrama.slideforreddit.*,0
|
||||
me.ccrama.slideforreddittabletuiunlock.*,0
|
||||
net.dinglisch.android.taskerm.*,0
|
||||
net.etuldan.sparss.floss.*,0
|
||||
net.i2p.android.router.*,0
|
||||
net.minetest.minetest.*,1
|
||||
net.nightwhistler.pageturner.*,0
|
||||
net.osmand.plus.*,1
|
||||
org.adaway.*,1
|
||||
org.chromium.chrome.*,1
|
||||
org.connectbot.*,0
|
||||
org.csploit.android.*,1
|
||||
org.cyanogenmod.audiofx.*,0
|
||||
org.documentfoundation.libreoffice.*,0
|
||||
org.fdroid.fdroid.*,1
|
||||
org.ligi.blexplorer.*,0
|
||||
org.mozilla.firefox.*,1
|
||||
org.ppsspp.ppsspp.*,1
|
||||
org.ppsspp.ppssppgold.*,1
|
||||
org.quantumbadger.redreader.*,0
|
||||
org.schabi.newpipe.*,1
|
||||
org.torproject.android.*,0
|
||||
org.videolan.vlc.*,1
|
||||
org.wikipedia.*,0
|
||||
org.yaaic.*,0
|
||||
org.zwanoo.android.speedtest.*,2
|
||||
reddit.news.*,0
|
||||
rs.pedajaapps.alogcatroot.app.*,0
|
||||
tw.twitch.android.app.*,1
|
42
Misc/Info-Old.txt
Normal file
42
Misc/Info-Old.txt
Normal file
@ -0,0 +1,42 @@
|
||||
General Changes
|
||||
Build
|
||||
- Base: Added 182 applications to the automatic power profile switcher config
|
||||
- Base: Don't enable battery saver when switching to power save profile
|
||||
- Browser: Changed some default settings
|
||||
- Browser: UI Update
|
||||
- Compiled with UBERTC GCC 4.9 and AOSP NDK 4.9 using JustArchi's v4.1 optimization flags
|
||||
- Removed analytics from various packages
|
||||
- Removed some packages for privacy reasons
|
||||
- Removed useless packages
|
||||
- Settings: Added option to change encryption password
|
||||
- Settings: Senisitive notification content is hidden by default
|
||||
Kernels
|
||||
- Compiled with UBERTC GCC 4.8 using Cortex-A15 optimization flags
|
||||
- Enabled DIAG (SnoopSnitch support)
|
||||
- Enabled modules support
|
||||
- Implemented KEXEC support (Multirom support)
|
||||
- Implemented Quick Wakeup (Battery savings)
|
||||
To Do
|
||||
- DNScrypt support
|
||||
- Remove DRM server
|
||||
- Add more governors
|
||||
- Add more I/O schedulers
|
||||
- LZ4 boot support
|
||||
- Remove unneeded Qualcomm blobs
|
||||
|
||||
Bacon Changes
|
||||
Kernel
|
||||
- Implemented UKSM (Memory deduplication)
|
||||
- Overclocked from 2.45Ghz to 2.88Ghz
|
||||
- Underclocked from 300Mhz to 268Mhz
|
||||
- Upgraded from Linux 3.4.67 to 3.4.110
|
||||
Device
|
||||
- Basic performance/battery build.prop optimizations
|
||||
- Removed bundled Google Widevine DRM and Microsoft PlayReady DRM firmware files
|
||||
|
||||
Mako Changes
|
||||
Kernel
|
||||
- Overclocked from 1.51Ghz to 1.94Ghz
|
||||
- Underclocked from 384Mhz to 81Mhz
|
||||
Device
|
||||
- None Yet
|
32
Misc/Info.txt
Normal file
32
Misc/Info.txt
Normal file
@ -0,0 +1,32 @@
|
||||
General Changes
|
||||
Build
|
||||
- Browser: Changed some default settings
|
||||
- Camera2: Disabled location saving by default
|
||||
- Compiled with UBERTC GCC 4.9 and AOSP NDK 4.9 using JustArchi's v4.1 optimization flags
|
||||
- Miscellaneous hardening
|
||||
- Removed analytics from various packages
|
||||
- Removed some packages for privacy reasons
|
||||
- Removed useless packages
|
||||
- Settings: Senisitive notification content is hidden by default
|
||||
To Do
|
||||
- Add more governors
|
||||
- Add more I/O schedulers
|
||||
- DNScrypt support
|
||||
- Implement Quick Wakeup
|
||||
- Implement UKSM
|
||||
- LZ4 boot support
|
||||
- Remove DRM server
|
||||
- Remove unneeded Qualcomm blobs
|
||||
|
||||
Bacon Changes
|
||||
Kernel
|
||||
- Overclocked from 2.45Ghz to 2.88Ghz
|
||||
- Underclocked from 300Mhz to 268Mhz
|
||||
Device
|
||||
- Basic performance/battery build.prop optimizations
|
||||
- Removed bundled Google Widevine DRM and Microsoft PlayReady DRM firmware files
|
||||
|
||||
Mako Changes
|
||||
Kernel
|
||||
- Overclocked from 1.51Ghz to 1.94Ghz
|
||||
- Underclocked from 384Mhz to 81Mhz
|
104
Patches/Copperhead-13.0/android_build/1.patch
Normal file
104
Patches/Copperhead-13.0/android_build/1.patch
Normal file
@ -0,0 +1,104 @@
|
||||
From 4eb4173b876ab4b4d71a5be541096d346649bbef Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Sat, 30 May 2015 22:47:50 -0400
|
||||
Subject: [PATCH] add optional automated signing
|
||||
|
||||
---
|
||||
core/Makefile | 48 ++++++++++++++++++++++++++++++++++++++++--------
|
||||
1 file changed, 40 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/core/Makefile b/core/Makefile
|
||||
index 7eca2db..82006c9 100644
|
||||
--- a/core/Makefile
|
||||
+++ b/core/Makefile
|
||||
@@ -408,6 +408,11 @@ ifneq ($(OTA_PACKAGE_SIGNING_KEY),)
|
||||
DEFAULT_KEY_CERT_PAIR := $(OTA_PACKAGE_SIGNING_KEY)
|
||||
endif
|
||||
|
||||
+ifneq ($(SIGNING_KEY_DIR),)
|
||||
+ KEY_CERT_DIR := $(SIGNING_KEY_DIR)
|
||||
+ DEFAULT_KEY_CERT_PAIR := $(SIGNING_KEY_DIR)/releasekey
|
||||
+endif
|
||||
+
|
||||
# Rules that need to be present for the all targets, even
|
||||
# if they don't do anything.
|
||||
.PHONY: systemimage
|
||||
@@ -943,13 +948,18 @@ endif
|
||||
# substitute other keys for this one.
|
||||
OTA_PUBLIC_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE).x509.pem
|
||||
|
||||
-ifneq ($(OTA_PACKAGE_SIGNING_KEY),)
|
||||
- OTA_PUBLIC_KEYS := $(OTA_PACKAGE_SIGNING_KEY).x509.pem
|
||||
- PRODUCT_EXTRA_RECOVERY_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE)
|
||||
+ifneq ($(SIGNING_KEY_DIR),)
|
||||
+ OTA_PUBLIC_KEYS := $(SIGNING_KEY_DIR)/releasekey.x509.pem
|
||||
+ PRODUCT_EXTRA_RECOVERY_KEYS += $(SIGNING_KEY_DIR)/extra
|
||||
else
|
||||
- PRODUCT_EXTRA_RECOVERY_KEYS += \
|
||||
- build/target/product/security/cm \
|
||||
- build/target/product/security/cm-devkey
|
||||
+ ifneq ($(OTA_PACKAGE_SIGNING_KEY),)
|
||||
+ OTA_PUBLIC_KEYS := $(OTA_PACKAGE_SIGNING_KEY).x509.pem
|
||||
+ PRODUCT_EXTRA_RECOVERY_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE)
|
||||
+ else
|
||||
+ PRODUCT_EXTRA_RECOVERY_KEYS += \
|
||||
+ build/target/product/security/cm \
|
||||
+ build/target/product/security/cm-devkey
|
||||
+ endif
|
||||
endif
|
||||
|
||||
# Generate a file containing the keys that will be read by the
|
||||
@@ -1593,6 +1603,12 @@ BUILT_TARGET_FILES_PACKAGE := $(intermediates)/$(name).zip
|
||||
$(BUILT_TARGET_FILES_PACKAGE): intermediates := $(intermediates)
|
||||
$(BUILT_TARGET_FILES_PACKAGE): \
|
||||
zip_root := $(intermediates)/$(name)
|
||||
+SIGNED_TARGET_FILES_PACKAGE := $(intermediates)/signed-$(name).zip
|
||||
+MAYBE_SIGNED_TARGET_FILES_PACKAGE := $(BUILT_TARGET_FILES_PACKAGE)
|
||||
+
|
||||
+ifneq ($(SIGNING_KEY_DIR),)
|
||||
+ MAYBE_SIGNED_TARGET_FILES_PACKAGE := $(SIGNED_TARGET_FILES_PACKAGE)
|
||||
+endif
|
||||
|
||||
# $(1): Directory to copy
|
||||
# $(2): Location to copy it to
|
||||
@@ -1868,6 +1884,12 @@ else
|
||||
OTA_FROM_TARGET_SCRIPT := $(TARGET_RELEASETOOL_OTA_FROM_TARGET_SCRIPT)
|
||||
endif
|
||||
|
||||
+ifeq ($(TARGET_RELEASETOOL_SIGN_TARGET_SCRIPT),)
|
||||
+ SIGN_TARGET_SCRIPT := ./build/tools/releasetools/sign_target_files_apks
|
||||
+else
|
||||
+ SIGN_TARGET_SCRIPT := $(TARGET_RELEASETOOL_SIGN_TARGET_SCRIPT)
|
||||
+endif
|
||||
+
|
||||
ifeq ($(WITH_GMS),true)
|
||||
$(INTERNAL_OTA_PACKAGE_TARGET): backuptool := false
|
||||
else
|
||||
@@ -1895,7 +1917,17 @@ ifneq ($(BLOCK_BASED_OTA),false)
|
||||
$(INTERNAL_OTA_PACKAGE_TARGET): block_based := --block
|
||||
endif
|
||||
|
||||
-$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
|
||||
+$(SIGNED_TARGET_FILES_PACKAGE): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
|
||||
+ @echo "$(SIGN_TARGET_SCRIPT)" > $(PRODUCT_OUT)/sign_script_path
|
||||
+ @echo -e ${CL_YLW}"Sign target files:"${CL_RST}" $@"
|
||||
+ $(hide) $(SIGN_TARGET_SCRIPT) \
|
||||
+ -d $(KEY_CERT_DIR) \
|
||||
+ -o \
|
||||
+ -e SMSSecure.apk,Orbot.apk,Android-IMSI-Catcher-Detector.apk,FreeOTP.apk,F-Droid.apk= \
|
||||
+ $(BUILT_TARGET_FILES_PACKAGE) \
|
||||
+ $(SIGNED_TARGET_FILES_PACKAGE)
|
||||
+
|
||||
+$(INTERNAL_OTA_PACKAGE_TARGET): $(MAYBE_SIGNED_TARGET_FILES_PACKAGE) $(DISTTOOLS)
|
||||
@echo "$(OTA_FROM_TARGET_SCRIPT)" > $(PRODUCT_OUT)/ota_script_path
|
||||
@echo "$(override_device)" > $(PRODUCT_OUT)/ota_override_device
|
||||
@echo -e ${CL_YLW}"Package OTA:"${CL_RST}" $@"
|
||||
@@ -1907,7 +1939,7 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
|
||||
--backup=$(backuptool) \
|
||||
--override_device=$(override_device) $(override_prop) \
|
||||
$(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \
|
||||
- $(BUILT_TARGET_FILES_PACKAGE) $@
|
||||
+ $(MAYBE_SIGNED_TARGET_FILES_PACKAGE) $@
|
||||
|
||||
CM_TARGET_PACKAGE := $(PRODUCT_OUT)/cm-$(CM_VERSION).zip
|
||||
|
26
Patches/Copperhead-13.0/android_external_sqlite/1.patch
Normal file
26
Patches/Copperhead-13.0/android_external_sqlite/1.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 56366ba56892d9de832ca86c95acb6674820d360 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Thu, 14 May 2015 19:14:53 -0400
|
||||
Subject: [PATCH] enable secure_delete by default
|
||||
|
||||
This sanitizes deleted data by overwriting it with zeroes. It prevents a
|
||||
non-root user from obtaining the deleted data even though it can still
|
||||
linger on the underlying storage device.
|
||||
---
|
||||
dist/Android.mk | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dist/Android.mk b/dist/Android.mk
|
||||
index 20b3a0a..7eabbdc 100644
|
||||
--- a/dist/Android.mk
|
||||
+++ b/dist/Android.mk
|
||||
@@ -27,7 +27,8 @@ common_sqlite_flags := \
|
||||
-DSQLITE_OMIT_BUILTIN_TEST \
|
||||
-DSQLITE_OMIT_COMPILEOPTION_DIAGS \
|
||||
-DSQLITE_OMIT_LOAD_EXTENSION \
|
||||
- -DSQLITE_DEFAULT_FILE_PERMISSIONS=0600
|
||||
+ -DSQLITE_DEFAULT_FILE_PERMISSIONS=0600 \
|
||||
+ -DSQLITE_SECURE_DELETE
|
||||
|
||||
device_sqlite_flags := $(common_sqlite_flags) \
|
||||
-DSQLITE_ENABLE_ICU \
|
50
Patches/Copperhead-13.0/android_frameworks_base/1.patch
Normal file
50
Patches/Copperhead-13.0/android_frameworks_base/1.patch
Normal file
@ -0,0 +1,50 @@
|
||||
From 938608ff6a4c61b4c1db2f6b94e81cae1a970aae Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Wed, 27 May 2015 00:29:08 -0400
|
||||
Subject: [PATCH] hide passwords by default
|
||||
|
||||
---
|
||||
core/java/android/text/method/TextKeyListener.java | 2 +-
|
||||
core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java | 2 +-
|
||||
packages/Keyguard/src/com/android/keyguard/PasswordTextView.java | 2 +-
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/core/java/android/text/method/TextKeyListener.java b/core/java/android/text/method/TextKeyListener.java
|
||||
index 994f3d7..b2ac244 100644
|
||||
--- a/core/java/android/text/method/TextKeyListener.java
|
||||
+++ b/core/java/android/text/method/TextKeyListener.java
|
||||
@@ -291,7 +291,7 @@ private void updatePrefs(ContentResolver resolver) {
|
||||
boolean cap = System.getInt(resolver, System.TEXT_AUTO_CAPS, 1) > 0;
|
||||
boolean text = System.getInt(resolver, System.TEXT_AUTO_REPLACE, 1) > 0;
|
||||
boolean period = System.getInt(resolver, System.TEXT_AUTO_PUNCTUATE, 1) > 0;
|
||||
- boolean pw = System.getInt(resolver, System.TEXT_SHOW_PASSWORD, 1) > 0;
|
||||
+ boolean pw = System.getInt(resolver, System.TEXT_SHOW_PASSWORD, 0) > 0;
|
||||
|
||||
mPrefs = (cap ? AUTO_CAP : 0) |
|
||||
(text ? AUTO_TEXT : 0) |
|
||||
diff --git a/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java b/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java
|
||||
index b2c9dc5..dc5b7f9 100644
|
||||
--- a/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java
|
||||
+++ b/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java
|
||||
@@ -159,7 +159,7 @@ public void setKeyboardMode(int mode) {
|
||||
mKeyboardState = KEYBOARD_STATE_NORMAL;
|
||||
final boolean visiblePassword = Settings.System.getInt(
|
||||
mContext.getContentResolver(),
|
||||
- Settings.System.TEXT_SHOW_PASSWORD, 1) != 0;
|
||||
+ Settings.System.TEXT_SHOW_PASSWORD, 0) != 0;
|
||||
final boolean enablePreview = false; // TODO: grab from configuration
|
||||
mKeyboardView.setPreviewEnabled(visiblePassword && enablePreview);
|
||||
break;
|
||||
diff --git a/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java b/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java
|
||||
index 50e7ecb..7d29928 100644
|
||||
--- a/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java
|
||||
+++ b/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java
|
||||
@@ -129,7 +129,7 @@ public PasswordTextView(Context context, AttributeSet attrs, int defStyleAttr,
|
||||
mCharPadding = getContext().getResources().getDimensionPixelSize(R.dimen
|
||||
.password_char_padding);
|
||||
mShowPassword = Settings.System.getInt(mContext.getContentResolver(),
|
||||
- Settings.System.TEXT_SHOW_PASSWORD, 1) == 1;
|
||||
+ Settings.System.TEXT_SHOW_PASSWORD, 0) == 1;
|
||||
mAppearInterpolator = AnimationUtils.loadInterpolator(mContext,
|
||||
android.R.interpolator.linear_out_slow_in);
|
||||
mDisappearInterpolator = AnimationUtils.loadInterpolator(mContext,
|
154
Patches/Copperhead-13.0/android_frameworks_base/2.patch
Normal file
154
Patches/Copperhead-13.0/android_frameworks_base/2.patch
Normal file
@ -0,0 +1,154 @@
|
||||
From a798817de09cc787850ee957c7326fb36dc6c5a5 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Thu, 3 Dec 2015 14:27:34 -0500
|
||||
Subject: [PATCH] support separate encryption/lockscreen passwords
|
||||
|
||||
This adds the necessary infrastructure for allowing users to opt-in to a
|
||||
distinct device encryption passphrase. The passwords are still tied
|
||||
together by default. This makes it possible to use a complex encryption
|
||||
passphrase without losing the convenience of a very simple lockscreen
|
||||
pin.
|
||||
|
||||
This feature can be combined with a forced reboot after a chosen number
|
||||
of failed unlocking attempts to prevent brute-forcing by requiring the
|
||||
entry of the encryption password instead.
|
||||
---
|
||||
core/java/android/provider/Settings.java | 7 +++
|
||||
.../android/internal/widget/LockPatternUtils.java | 72 +++++++++++++++++++++-
|
||||
.../com/android/server/LockSettingsService.java | 1 +
|
||||
3 files changed, 77 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
|
||||
index e107fd1..a6be540 100644
|
||||
--- a/core/java/android/provider/Settings.java
|
||||
+++ b/core/java/android/provider/Settings.java
|
||||
@@ -4850,6 +4850,13 @@ public static boolean putFloatForUser(ContentResolver cr, String name, float val
|
||||
"lock_screen_allow_private_notifications";
|
||||
|
||||
/**
|
||||
+ * Separate password for encryption and the lockscreen.
|
||||
+ * @hide
|
||||
+ */
|
||||
+ public static final String LOCK_SEPARATE_ENCRYPTION_PASSWORD =
|
||||
+ "lock_separate_encryption_password";
|
||||
+
|
||||
+ /**
|
||||
* Set by the system to track if the user needs to see the call to action for
|
||||
* the lockscreen notification policy.
|
||||
* @hide
|
||||
diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java
|
||||
index ae22b50..25f56e7 100644
|
||||
--- a/core/java/com/android/internal/widget/LockPatternUtils.java
|
||||
+++ b/core/java/com/android/internal/widget/LockPatternUtils.java
|
||||
@@ -457,7 +457,8 @@ public void clearLock(int userHandle) {
|
||||
// well, we tried...
|
||||
}
|
||||
|
||||
- if (userHandle == UserHandle.USER_OWNER) {
|
||||
+ if (userHandle == UserHandle.USER_OWNER
|
||||
+ && !isSeparateEncryptionPasswordEnabled()) {
|
||||
// Set the encryption password to default.
|
||||
updateEncryptionPassword(StorageManager.CRYPT_TYPE_DEFAULT, null);
|
||||
}
|
||||
@@ -518,7 +519,8 @@ public void saveLockPattern(List<LockPatternView.Cell> pattern, String savedPatt
|
||||
|
||||
// Update the device encryption password.
|
||||
if (userId == UserHandle.USER_OWNER
|
||||
- && LockPatternUtils.isDeviceEncryptionEnabled()) {
|
||||
+ && LockPatternUtils.isDeviceEncryptionEnabled()
|
||||
+ && !isSeparateEncryptionPasswordEnabled()) {
|
||||
if (!shouldEncryptWithCredentials(true)) {
|
||||
clearEncryptionPassword();
|
||||
} else {
|
||||
@@ -727,7 +729,8 @@ public void saveLockPassword(String password, String savedPassword, int quality,
|
||||
|
||||
// Update the device encryption password.
|
||||
if (userHandle == UserHandle.USER_OWNER
|
||||
- && LockPatternUtils.isDeviceEncryptionEnabled()) {
|
||||
+ && LockPatternUtils.isDeviceEncryptionEnabled()
|
||||
+ && !isSeparateEncryptionPasswordEnabled()) {
|
||||
if (!shouldEncryptWithCredentials(true)) {
|
||||
clearEncryptionPassword();
|
||||
} else {
|
||||
@@ -1071,6 +1074,69 @@ public void setVisiblePasswordEnabled(boolean enabled, int userId) {
|
||||
}
|
||||
}
|
||||
|
||||
+ private void updateEncryptionPasswordFromPassword(String password) {
|
||||
+ if (!TextUtils.isEmpty(password)) {
|
||||
+ int computedQuality = computePasswordQuality(password);
|
||||
+ boolean numeric = computedQuality
|
||||
+ == DevicePolicyManager.PASSWORD_QUALITY_NUMERIC;
|
||||
+ boolean numericComplex = computedQuality
|
||||
+ == DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX;
|
||||
+ int type = numeric || numericComplex ? StorageManager.CRYPT_TYPE_PIN
|
||||
+ : StorageManager.CRYPT_TYPE_PASSWORD;
|
||||
+ updateEncryptionPassword(type, password);
|
||||
+ } else {
|
||||
+ clearEncryptionPassword();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Set the encryption password separately from the lockscreen password.
|
||||
+ *
|
||||
+ * @param password The password to save
|
||||
+ */
|
||||
+ public void setSeparateEncryptionPassword(String password) {
|
||||
+ updateEncryptionPasswordFromPassword(password);
|
||||
+ setSeparateEncryptionPasswordEnabled(true);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Replace the separate encryption password by tying it to the lockscreen
|
||||
+ * password. No change will occur if the provided lockscreen password is
|
||||
+ * incorrect.
|
||||
+ *
|
||||
+ * @param password The current lockscreen password
|
||||
+ * @return Whether the lockscreen password was correct.
|
||||
+ */
|
||||
+ public void replaceSeparateEncryptionPassword(String password) {
|
||||
+ updateEncryptionPasswordFromPassword(password);
|
||||
+ setSeparateEncryptionPasswordEnabled(false);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Replace the separate encryption password by tying it to the lockscreen
|
||||
+ * pattern. No change will occur if the provided lockscreen password is
|
||||
+ * incorrect.
|
||||
+ *
|
||||
+ * @param pattern The current lockscreen pattern
|
||||
+ * @return Whether the lockscreen pattern was correct.
|
||||
+ */
|
||||
+ public void replaceSeparateEncryptionPasswordWithPattern(List<LockPatternView.Cell> pattern) {
|
||||
+ String stringPattern = patternToString(pattern);
|
||||
+ updateEncryptionPassword(StorageManager.CRYPT_TYPE_PATTERN, stringPattern);
|
||||
+ setSeparateEncryptionPasswordEnabled(false);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * @return Whether the encryption password is separate from the lockscreen password.
|
||||
+ */
|
||||
+ public boolean isSeparateEncryptionPasswordEnabled() {
|
||||
+ return getBoolean(Settings.Secure.LOCK_SEPARATE_ENCRYPTION_PASSWORD, false, UserHandle.USER_OWNER);
|
||||
+ }
|
||||
+
|
||||
+ private void setSeparateEncryptionPasswordEnabled(boolean enabled) {
|
||||
+ setBoolean(Settings.Secure.LOCK_SEPARATE_ENCRYPTION_PASSWORD, enabled, UserHandle.USER_OWNER);
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* @return Whether tactile feedback for the pattern is enabled.
|
||||
*/
|
||||
diff --git a/services/core/java/com/android/server/LockSettingsService.java b/services/core/java/com/android/server/LockSettingsService.java
|
||||
index bb0615d..6e05fde 100644
|
||||
--- a/services/core/java/com/android/server/LockSettingsService.java
|
||||
+++ b/services/core/java/com/android/server/LockSettingsService.java
|
||||
@@ -813,6 +813,7 @@ public void requireStrongAuth(int strongAuthReason, int userId) {
|
||||
Secure.LOCK_PATTERN_SIZE,
|
||||
Secure.LOCK_DOTS_VISIBLE,
|
||||
Secure.LOCK_SHOW_ERROR_PATH,
|
||||
+ Secure.LOCK_SEPARATE_ENCRYPTION_PASSWORD
|
||||
};
|
||||
|
||||
// Reading these settings needs the contacts permission
|
22
Patches/Copperhead-13.0/android_frameworks_base/3.patch
Normal file
22
Patches/Copperhead-13.0/android_frameworks_base/3.patch
Normal file
@ -0,0 +1,22 @@
|
||||
From e46cfef3dcfec3b5ee5aff05c46d21ea76b36100 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Sat, 5 Dec 2015 19:33:19 -0500
|
||||
Subject: [PATCH] remove analytics support
|
||||
|
||||
---
|
||||
.../src/com/android/providers/settings/DatabaseHelper.java | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
|
||||
index b3ec295..9784ee7 100644
|
||||
--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
|
||||
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
|
||||
@@ -1911,8 +1911,6 @@ public void onUpgrade(SQLiteDatabase db, int oldVersion, int currentVersion) {
|
||||
}
|
||||
|
||||
if (upgradeVersion < 115) {
|
||||
- moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_SECURE,
|
||||
- new String[] { CMSettings.Secure.STATS_COLLECTION }, true);
|
||||
if (mUserHandle == UserHandle.USER_OWNER) {
|
||||
db.beginTransaction();
|
||||
SQLiteStatement stmt = null;
|
@ -0,0 +1,31 @@
|
||||
From 4b908ef94233b911fe3d6f2d93a6076a7ab92151 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Sun, 5 Apr 2015 00:57:23 -0400
|
||||
Subject: [PATCH] remove duckduckgo referral strings
|
||||
|
||||
---
|
||||
res/values/all_search_engines.xml | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/res/values/all_search_engines.xml b/res/values/all_search_engines.xml
|
||||
index a87c880..51ebfe4 100644
|
||||
--- a/res/values/all_search_engines.xml
|
||||
+++ b/res/values/all_search_engines.xml
|
||||
@@ -752,7 +752,7 @@ http://www.opensearch.org/Specifications/OpenSearch/1.1/Draft_4#OpenSearch_1.1_p
|
||||
<item>DuckDuckGo</item>
|
||||
<item>duckduckgo.com</item>
|
||||
<item>https://duckduckgo.com/favicon.ico</item>
|
||||
- <item>https://duckduckgo.com/?q={searchTerms}&t=cyanogenmod</item>
|
||||
+ <item>https://duckduckgo.com/?q={searchTerms}</item>
|
||||
<item>UTF-8</item>
|
||||
<item></item>
|
||||
</string-array>
|
||||
@@ -760,7 +760,7 @@ http://www.opensearch.org/Specifications/OpenSearch/1.1/Draft_4#OpenSearch_1.1_p
|
||||
<item>DuckDuckGo (UK)</item>
|
||||
<item>duckduckgo.com</item>
|
||||
<item>https://duckduckgo.com/favicon.ico</item>
|
||||
- <item>https://duckduckgo.com/?q={searchTerms}%20r:uk&t=cyanogenmod</item>
|
||||
+ <item>https://duckduckgo.com/?q={searchTerms}%20r:uk</item>
|
||||
<item>UTF-8</item>
|
||||
<item></item>
|
||||
</string-array>
|
@ -0,0 +1,36 @@
|
||||
From 58bde4cc16f1a0544526fed769542b707b7dc516 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Fri, 20 Mar 2015 18:13:23 -0400
|
||||
Subject: [PATCH] switch default search engine to duckduckgo
|
||||
|
||||
---
|
||||
res/xml-sw600dp/advanced_preferences.xml | 2 +-
|
||||
res/xml/advanced_preferences.xml | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/res/xml-sw600dp/advanced_preferences.xml b/res/xml-sw600dp/advanced_preferences.xml
|
||||
index f3107d8..ae19504 100644
|
||||
--- a/res/xml-sw600dp/advanced_preferences.xml
|
||||
+++ b/res/xml-sw600dp/advanced_preferences.xml
|
||||
@@ -21,7 +21,7 @@
|
||||
<com.android.browser.search.SearchEnginePreference
|
||||
android:key="search_engine"
|
||||
android:title="@string/pref_content_search_engine"
|
||||
- android:defaultValue="google"
|
||||
+ android:defaultValue="duckduckgo"
|
||||
android:summary="@string/pref_content_search_engine_summary"
|
||||
android:dialogTitle="@string/pref_content_search_engine" />
|
||||
|
||||
diff --git a/res/xml/advanced_preferences.xml b/res/xml/advanced_preferences.xml
|
||||
index 1b051f8..f068330 100644
|
||||
--- a/res/xml/advanced_preferences.xml
|
||||
+++ b/res/xml/advanced_preferences.xml
|
||||
@@ -21,7 +21,7 @@
|
||||
<com.android.browser.search.SearchEnginePreference
|
||||
android:key="search_engine"
|
||||
android:title="@string/pref_content_search_engine"
|
||||
- android:defaultValue="google"
|
||||
+ android:defaultValue="duckduckgo"
|
||||
android:summary="@string/pref_content_search_engine_summary"
|
||||
android:dialogTitle="@string/pref_content_search_engine" />
|
||||
|
@ -0,0 +1,23 @@
|
||||
From 54f68f47ef79ebda9b695e0205b8abc4e2f07d86 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Sun, 5 Apr 2015 01:00:31 -0400
|
||||
Subject: [PATCH] switch default home page to duckduckgo
|
||||
|
||||
---
|
||||
res/values/strings.xml | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/res/values/strings.xml b/res/values/strings.xml
|
||||
index d79c7f7..0899df9 100644
|
||||
--- a/res/values/strings.xml
|
||||
+++ b/res/values/strings.xml
|
||||
@@ -794,8 +794,7 @@
|
||||
<string name="dump_nav" translatable="false">Dump navigation cache</string>
|
||||
|
||||
<!-- The default homepage. -->
|
||||
- <string name="homepage_base" translatable="false">
|
||||
- https://www.google.com/webhp?client={CID}&source=android-home</string>
|
||||
+ <string name="homepage_base" translatable="false">https://duckduckgo.com/</string>
|
||||
|
||||
<!-- Bookmarks -->
|
||||
<string-array name="bookmarks" translatable="false">
|
@ -0,0 +1,22 @@
|
||||
From defa0e59c0f38e8f0ea6429ee05414a9402bbd8b Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Sun, 5 Apr 2015 01:27:56 -0400
|
||||
Subject: [PATCH] disable link preloading by default
|
||||
|
||||
---
|
||||
res/values/strings.xml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/res/values/strings.xml b/res/values/strings.xml
|
||||
index 0899df9..8529cf6 100644
|
||||
--- a/res/values/strings.xml
|
||||
+++ b/res/values/strings.xml
|
||||
@@ -684,7 +684,7 @@
|
||||
<string name="pref_link_prefetch_value_never" translatable="false">NEVER</string>
|
||||
<string name="pref_link_prefetch_value_wifi_only" translatable="false">WIFI_ONLY</string>
|
||||
<string name="pref_link_prefetch_value_always" translatable="false">ALWAYS</string>
|
||||
- <string name="pref_link_prefetch_default_value" translatable="false">@string/pref_link_prefetch_value_wifi_only</string>
|
||||
+ <string name="pref_link_prefetch_default_value" translatable="false">@string/pref_link_prefetch_value_never</string>
|
||||
<string-array name="pref_link_prefetch_values" translatable="false">
|
||||
<item><xliff:g>@string/pref_link_prefetch_value_never</xliff:g></item>
|
||||
<item><xliff:g>@string/pref_link_prefetch_value_wifi_only</xliff:g></item>
|
@ -0,0 +1,22 @@
|
||||
From a2cf2c31329c3b14798059d0d7a56b7568089552 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Sun, 5 Apr 2015 01:29:22 -0400
|
||||
Subject: [PATCH] disable search result preloading by default
|
||||
|
||||
---
|
||||
res/values/strings.xml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/res/values/strings.xml b/res/values/strings.xml
|
||||
index 8529cf6..9012511 100644
|
||||
--- a/res/values/strings.xml
|
||||
+++ b/res/values/strings.xml
|
||||
@@ -662,7 +662,7 @@
|
||||
<string name="pref_data_preload_value_never" translatable="false">NEVER</string>
|
||||
<string name="pref_data_preload_value_wifi_only" translatable="false">WIFI_ONLY</string>
|
||||
<string name="pref_data_preload_value_always" translatable="false">ALWAYS</string>
|
||||
- <string name="pref_data_preload_default_value" translatable="false">@string/pref_data_preload_value_wifi_only</string>
|
||||
+ <string name="pref_data_preload_default_value" translatable="false">@string/pref_data_preload_value_never</string>
|
||||
<string-array name="pref_data_preload_values" translatable="false">
|
||||
<item><xliff:g>@string/pref_data_preload_value_never</xliff:g></item>
|
||||
<item><xliff:g>@string/pref_data_preload_value_wifi_only</xliff:g></item>
|
@ -0,0 +1,36 @@
|
||||
From 093e38c00f3e46f875726f1e14190e2f120d3ed7 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Tue, 7 Apr 2015 02:18:09 -0400
|
||||
Subject: [PATCH] disable plugins by default
|
||||
|
||||
---
|
||||
res/xml-sw600dp/advanced_preferences.xml | 2 +-
|
||||
res/xml/advanced_preferences.xml | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/res/xml-sw600dp/advanced_preferences.xml b/res/xml-sw600dp/advanced_preferences.xml
|
||||
index ae19504..93ccbf1 100644
|
||||
--- a/res/xml-sw600dp/advanced_preferences.xml
|
||||
+++ b/res/xml-sw600dp/advanced_preferences.xml
|
||||
@@ -46,7 +46,7 @@
|
||||
<ListPreference
|
||||
android:key="plugin_state"
|
||||
android:title="@string/pref_content_plugins"
|
||||
- android:defaultValue="ON"
|
||||
+ android:defaultValue="OFF"
|
||||
android:entries="@array/pref_content_plugins_choices"
|
||||
android:entryValues="@array/pref_content_plugins_values"
|
||||
android:dialogTitle="@string/pref_content_plugins" />
|
||||
diff --git a/res/xml/advanced_preferences.xml b/res/xml/advanced_preferences.xml
|
||||
index f068330..0996bab 100644
|
||||
--- a/res/xml/advanced_preferences.xml
|
||||
+++ b/res/xml/advanced_preferences.xml
|
||||
@@ -51,7 +51,7 @@
|
||||
<ListPreference
|
||||
android:key="plugin_state"
|
||||
android:title="@string/pref_content_plugins"
|
||||
- android:defaultValue="ON"
|
||||
+ android:defaultValue="OFF"
|
||||
android:entries="@array/pref_content_plugins_choices"
|
||||
android:entryValues="@array/pref_content_plugins_values"
|
||||
android:dialogTitle="@string/pref_content_plugins" />
|
203
Patches/Copperhead-13.0/android_packages_apps_Browser/7.patch
Normal file
203
Patches/Copperhead-13.0/android_packages_apps_Browser/7.patch
Normal file
@ -0,0 +1,203 @@
|
||||
From 664f95d59cc672fb8b8ea3068a92530b08114f95 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Tue, 7 Apr 2015 03:23:22 -0400
|
||||
Subject: [PATCH] remove RLZ tracking
|
||||
|
||||
---
|
||||
AndroidManifest.xml | 8 --
|
||||
res/values/strings.xml | 3 -
|
||||
src/com/android/browser/UrlHandler.java | 129 --------------------------------
|
||||
3 files changed, 140 deletions(-)
|
||||
|
||||
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
|
||||
index 0ffdec4..7152192 100644
|
||||
--- a/AndroidManifest.xml
|
||||
+++ b/AndroidManifest.xml
|
||||
@@ -239,14 +239,6 @@
|
||||
<!-- Makes .BrowserActivity the search target for any activity in Browser -->
|
||||
<meta-data android:name="android.app.default_searchable" android:value=".BrowserActivity" />
|
||||
|
||||
- <!-- Application code for RLZ tracking. RLZ assigns non-unique, non-personally identifiable
|
||||
- tracking labels to client products; these labels sometimes appear in Google search
|
||||
- queries. See http://code.google.com/p/rlz for more info.
|
||||
-
|
||||
- This value signifies to the RLZ client that this application uses RLZ tracking. -->
|
||||
- <meta-data android:name="com.google.android.partnersetup.RLZ_ACCESS_POINT"
|
||||
- android:value="@string/rlz_access_point" />
|
||||
-
|
||||
<receiver android:name=".OpenDownloadReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED"/>
|
||||
diff --git a/res/values/strings.xml b/res/values/strings.xml
|
||||
index 9012511..d9023ec 100644
|
||||
--- a/res/values/strings.xml
|
||||
+++ b/res/values/strings.xml
|
||||
@@ -875,9 +875,6 @@
|
||||
<!-- The folder name for the special "Other Bookmarks" folder created by Chrome [CHAR LIMIT=24] -->
|
||||
<string name="other_bookmarks">Other Bookmarks</string>
|
||||
|
||||
- <!-- Access point for RLZ tracking. -->
|
||||
- <string name="rlz_access_point">Y1</string>
|
||||
-
|
||||
<!-- Title for a dialog asking the user which account to sync their bookmarks to [CHAR LIMIT=32] -->
|
||||
<string name="account_chooser_dialog_title" msgid="4833571985009544332">Choose account</string>
|
||||
|
||||
diff --git a/src/com/android/browser/UrlHandler.java b/src/com/android/browser/UrlHandler.java
|
||||
index 084a479..52919c8 100644
|
||||
--- a/src/com/android/browser/UrlHandler.java
|
||||
+++ b/src/com/android/browser/UrlHandler.java
|
||||
@@ -38,9 +38,6 @@
|
||||
*/
|
||||
public class UrlHandler {
|
||||
|
||||
- static final String RLZ_PROVIDER = "com.google.android.partnersetup.rlzappprovider";
|
||||
- static final Uri RLZ_PROVIDER_URI = Uri.parse("content://" + RLZ_PROVIDER + "/");
|
||||
-
|
||||
// Use in overrideUrlLoading
|
||||
/* package */ final static String SCHEME_WTAI = "wtai://wp/";
|
||||
/* package */ final static String SCHEME_WTAI_MC = "wtai://wp/mc;";
|
||||
@@ -50,9 +47,6 @@
|
||||
Controller mController;
|
||||
Activity mActivity;
|
||||
|
||||
- private Boolean mIsProviderPresent = null;
|
||||
- private Uri mRlzUri = null;
|
||||
-
|
||||
public UrlHandler(Controller controller) {
|
||||
mController = controller;
|
||||
mActivity = mController.getActivity();
|
||||
@@ -101,20 +95,6 @@ boolean shouldOverrideUrlLoading(Tab tab, WebView view, String url) {
|
||||
return false;
|
||||
}
|
||||
|
||||
- // If this is a Google search, attempt to add an RLZ string
|
||||
- // (if one isn't already present).
|
||||
- if (rlzProviderPresent()) {
|
||||
- Uri siteUri = Uri.parse(url);
|
||||
- if (needsRlzString(siteUri)) {
|
||||
- // Need to look up the RLZ info from a database, so do it in an
|
||||
- // AsyncTask. Although we are not overriding the URL load synchronously,
|
||||
- // we guarantee that we will handle this URL load after the task executes,
|
||||
- // so it's safe to just return true to WebCore now to stop its own loading.
|
||||
- new RLZTask(tab, siteUri, view).execute();
|
||||
- return true;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
if (startActivityForUrl(tab, url)) {
|
||||
return true;
|
||||
}
|
||||
@@ -248,113 +228,4 @@ boolean handleMenuClick(Tab tab, String url) {
|
||||
|
||||
return false;
|
||||
}
|
||||
-
|
||||
- // TODO: Move this class into Tab, where it can be properly stopped upon
|
||||
- // closure of the tab
|
||||
- private class RLZTask extends AsyncTask<Void, Void, String> {
|
||||
- private Tab mTab;
|
||||
- private Uri mSiteUri;
|
||||
- private WebView mWebView;
|
||||
-
|
||||
- public RLZTask(Tab tab, Uri uri, WebView webView) {
|
||||
- mTab = tab;
|
||||
- mSiteUri = uri;
|
||||
- mWebView = webView;
|
||||
- }
|
||||
-
|
||||
- protected String doInBackground(Void... unused) {
|
||||
- String result = mSiteUri.toString();
|
||||
- Cursor cur = null;
|
||||
- try {
|
||||
- cur = mActivity.getContentResolver()
|
||||
- .query(getRlzUri(), null, null, null, null);
|
||||
- if (cur != null && cur.moveToFirst() && !cur.isNull(0)) {
|
||||
- result = mSiteUri.buildUpon()
|
||||
- .appendQueryParameter("rlz", cur.getString(0))
|
||||
- .build().toString();
|
||||
- }
|
||||
- } finally {
|
||||
- if (cur != null) {
|
||||
- cur.close();
|
||||
- }
|
||||
- }
|
||||
- return result;
|
||||
- }
|
||||
-
|
||||
- protected void onPostExecute(String result) {
|
||||
- // abort if we left browser already
|
||||
- if (mController.isActivityPaused()) return;
|
||||
- // Make sure the Tab was not closed while handling the task
|
||||
- if (mController.getTabControl().getTabPosition(mTab) != -1) {
|
||||
- // If the Activity Manager is not invoked, load the URL directly
|
||||
- if (!startActivityForUrl(mTab, result)) {
|
||||
- if (!handleMenuClick(mTab, result)) {
|
||||
- mController.loadUrl(mTab, result);
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- // Determine whether the RLZ provider is present on the system.
|
||||
- private boolean rlzProviderPresent() {
|
||||
- if (mIsProviderPresent == null) {
|
||||
- PackageManager pm = mActivity.getPackageManager();
|
||||
- mIsProviderPresent = pm.resolveContentProvider(RLZ_PROVIDER, 0) != null;
|
||||
- }
|
||||
- return mIsProviderPresent;
|
||||
- }
|
||||
-
|
||||
- // Retrieve the RLZ access point string and cache the URI used to
|
||||
- // retrieve RLZ values.
|
||||
- private Uri getRlzUri() {
|
||||
- if (mRlzUri == null) {
|
||||
- String ap = mActivity.getResources()
|
||||
- .getString(R.string.rlz_access_point);
|
||||
- mRlzUri = Uri.withAppendedPath(RLZ_PROVIDER_URI, ap);
|
||||
- }
|
||||
- return mRlzUri;
|
||||
- }
|
||||
-
|
||||
- // Determine if this URI appears to be for a Google search
|
||||
- // and does not have an RLZ parameter.
|
||||
- // Taken largely from Chrome source, src/chrome/browser/google_url_tracker.cc
|
||||
- private static boolean needsRlzString(Uri uri) {
|
||||
- String scheme = uri.getScheme();
|
||||
- if (("http".equals(scheme) || "https".equals(scheme)) &&
|
||||
- (uri.getQueryParameter("q") != null) &&
|
||||
- (uri.getQueryParameter("rlz") == null)) {
|
||||
- String host = uri.getHost();
|
||||
- if (host == null) {
|
||||
- return false;
|
||||
- }
|
||||
- String[] hostComponents = host.split("\\.");
|
||||
-
|
||||
- if (hostComponents.length < 2) {
|
||||
- return false;
|
||||
- }
|
||||
- int googleComponent = hostComponents.length - 2;
|
||||
- String component = hostComponents[googleComponent];
|
||||
- if (!"google".equals(component)) {
|
||||
- if (hostComponents.length < 3 ||
|
||||
- (!"co".equals(component) && !"com".equals(component))) {
|
||||
- return false;
|
||||
- }
|
||||
- googleComponent = hostComponents.length - 3;
|
||||
- if (!"google".equals(hostComponents[googleComponent])) {
|
||||
- return false;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- // Google corp network handling.
|
||||
- if (googleComponent > 0 && "corp".equals(
|
||||
- hostComponents[googleComponent - 1])) {
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- return true;
|
||||
- }
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
From cd7f624c7ead431469813ddf146f1b94c57eeda3 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Tue, 13 Oct 2015 17:36:00 -0400
|
||||
Subject: [PATCH] disable location recording by default
|
||||
|
||||
---
|
||||
src/com/android/camera/settings/Keys.java | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/com/android/camera/settings/Keys.java b/src/com/android/camera/settings/Keys.java
|
||||
index f59591f..5092bfa 100644
|
||||
--- a/src/com/android/camera/settings/Keys.java
|
||||
+++ b/src/com/android/camera/settings/Keys.java
|
||||
@@ -182,6 +182,10 @@ public static void setDefaults(SettingsManager settingsManager, Context context)
|
||||
|
||||
settingsManager.setDefaults(KEY_SHOULD_SHOW_SETTINGS_BUTTON_CLING, true);
|
||||
|
||||
+ settingsManager.setDefaults(KEY_RECORD_LOCATION, false);
|
||||
+ if (!settingsManager.isSet(SettingsManager.SCOPE_GLOBAL, KEY_RECORD_LOCATION)) {
|
||||
+ settingsManager.setToDefault(SettingsManager.SCOPE_GLOBAL, KEY_RECORD_LOCATION);
|
||||
+ }
|
||||
}
|
||||
|
||||
/** Helper functions for some defined keys. */
|
25
Patches/Copperhead-13.0/android_packages_apps_Nfc/1.patch
Normal file
25
Patches/Copperhead-13.0/android_packages_apps_Nfc/1.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 8d7a463afe1ab6aaecdff9707576b4fe74fab713 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Sat, 6 Jun 2015 10:40:51 -0400
|
||||
Subject: [PATCH] disable NFC and NDEF Push by default
|
||||
|
||||
---
|
||||
src/com/android/nfc/NfcService.java | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/com/android/nfc/NfcService.java b/src/com/android/nfc/NfcService.java
|
||||
index 6aa0dfc..cd4b819 100755
|
||||
--- a/src/com/android/nfc/NfcService.java
|
||||
+++ b/src/com/android/nfc/NfcService.java
|
||||
@@ -98,9 +98,9 @@
|
||||
public static final String PREF = "NfcServicePrefs";
|
||||
|
||||
static final String PREF_NFC_ON = "nfc_on";
|
||||
- static final boolean NFC_ON_DEFAULT = true;
|
||||
+ static final boolean NFC_ON_DEFAULT = false;
|
||||
static final String PREF_NDEF_PUSH_ON = "ndef_push_on";
|
||||
- static final boolean NDEF_PUSH_ON_DEFAULT = true;
|
||||
+ static final boolean NDEF_PUSH_ON_DEFAULT = false;
|
||||
static final String PREF_FIRST_BEAM = "first_beam";
|
||||
static final String PREF_FIRST_BOOT = "first_boot";
|
||||
static final String PREF_AIRPLANE_OVERRIDE = "airplane_override";
|
1057
Patches/Copperhead-13.0/android_packages_apps_Settings/1.patch
Normal file
1057
Patches/Copperhead-13.0/android_packages_apps_Settings/1.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,36 @@
|
||||
From 382f9153c766ef96ac03adbd1ad8ec5bae2fa193 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Wed, 2 Dec 2015 00:14:29 -0500
|
||||
Subject: [PATCH] hide passwords by default
|
||||
|
||||
---
|
||||
src/com/android/settings/CryptKeeperConfirm.java | 2 +-
|
||||
src/com/android/settings/SecuritySettings.java | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/com/android/settings/CryptKeeperConfirm.java b/src/com/android/settings/CryptKeeperConfirm.java
|
||||
index 45b50f6..bb0c7e5 100644
|
||||
--- a/src/com/android/settings/CryptKeeperConfirm.java
|
||||
+++ b/src/com/android/settings/CryptKeeperConfirm.java
|
||||
@@ -130,7 +130,7 @@ public void onClick(View v) {
|
||||
}
|
||||
int value = Settings.System.getInt(getContext().getContentResolver(),
|
||||
Settings.System.TEXT_SHOW_PASSWORD,
|
||||
- 1);
|
||||
+ 0);
|
||||
utils.setVisiblePasswordEnabled(value != 0, UserHandle.USER_OWNER);
|
||||
|
||||
Intent intent = new Intent(getActivity(), Blank.class);
|
||||
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
|
||||
index c0e5b73..ec04136 100644
|
||||
--- a/src/com/android/settings/SecuritySettings.java
|
||||
+++ b/src/com/android/settings/SecuritySettings.java
|
||||
@@ -661,7 +661,7 @@ public void onResume() {
|
||||
|
||||
if (mShowPassword != null) {
|
||||
mShowPassword.setChecked(Settings.System.getInt(getContentResolver(),
|
||||
- Settings.System.TEXT_SHOW_PASSWORD, 1) != 0);
|
||||
+ Settings.System.TEXT_SHOW_PASSWORD, 0) != 0);
|
||||
}
|
||||
|
||||
if (mResetCredentials != null) {
|
756
Patches/Copperhead-13.0/android_packages_apps_Settings/3.patch
Normal file
756
Patches/Copperhead-13.0/android_packages_apps_Settings/3.patch
Normal file
@ -0,0 +1,756 @@
|
||||
From 2d6aa76f7c765ac129d5ac163460eb8e62080afa Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Mon, 15 Jun 2015 10:06:33 -0400
|
||||
Subject: [PATCH] support setting a separate encryption password
|
||||
|
||||
---
|
||||
AndroidManifest.xml | 3 +
|
||||
res/values/strings.xml | 9 +
|
||||
res/xml/security_settings_encrypted.xml | 10 +
|
||||
.../android/settings/ChooseEncryptionPassword.java | 682 +++++++++++++++++++++
|
||||
4 files changed, 704 insertions(+)
|
||||
create mode 100644 src/com/android/settings/ChooseEncryptionPassword.java
|
||||
|
||||
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
|
||||
index 63648fc..a561d7e 100755
|
||||
--- a/AndroidManifest.xml
|
||||
+++ b/AndroidManifest.xml
|
||||
@@ -1524,6 +1524,9 @@
|
||||
<activity android:name="ChooseLockPassword" android:exported="false"
|
||||
android:windowSoftInputMode="stateVisible|adjustResize"/>
|
||||
|
||||
+ <activity android:name="ChooseEncryptionPassword" android:exported="false"
|
||||
+ android:windowSoftInputMode="stateVisible|adjustResize"/>
|
||||
+
|
||||
<activity android:name=".SetupEncryptionInterstitial"
|
||||
android:taskAffinity="com.android.wizard"
|
||||
android:theme="@style/SetupWizardDisableAppStartingTheme"/>
|
||||
diff --git a/res/values/strings.xml b/res/values/strings.xml
|
||||
index 3072f33..d5324f1 100755
|
||||
--- a/res/values/strings.xml
|
||||
+++ b/res/values/strings.xml
|
||||
@@ -937,6 +937,15 @@
|
||||
<!-- Image button description to switch input method -->
|
||||
<string name="crypt_keeper_switch_input_method">Switch input method</string>
|
||||
|
||||
+ <!-- Title for PreferenceScreen to change encryption password [CHAR LIMIT=22] -->
|
||||
+ <string name="crypt_keeper_change_password_title">Change encryption password</string>
|
||||
+
|
||||
+ <!-- Summary for PreferenceScreen to change encryption password [CHAR LIMIT=45] -->
|
||||
+ <string name="crypt_keeper_change_password_summary">Change the password used for device encryption</string>
|
||||
+
|
||||
+ <!-- Header on first screen of choose encryption password [CHAR LIMIT=30] -->
|
||||
+ <string name="crypt_keeper_choose_your_password_header">Set encryption password</string>
|
||||
+
|
||||
<!-- Unlock Picker Settings --><skip />
|
||||
|
||||
<!-- Security Picker --><skip />
|
||||
diff --git a/res/xml/security_settings_encrypted.xml b/res/xml/security_settings_encrypted.xml
|
||||
index 2399243..f05bad5 100644
|
||||
--- a/res/xml/security_settings_encrypted.xml
|
||||
+++ b/res/xml/security_settings_encrypted.xml
|
||||
@@ -27,6 +27,16 @@
|
||||
android:title="@string/crypt_keeper_encrypt_title"
|
||||
android:summary="@string/crypt_keeper_encrypted_summary"/>
|
||||
|
||||
+ <Preference
|
||||
+ android:key="crypt_keeper_change_password"
|
||||
+ android:title="@string/crypt_keeper_change_password_title"
|
||||
+ android:summary="@string/crypt_keeper_change_password_summary">
|
||||
+
|
||||
+ <intent android:action="android.intent.action.MAIN"
|
||||
+ android:targetPackage="com.android.settings"
|
||||
+ android:targetClass="com.android.settings.ChooseEncryptionPassword" />
|
||||
+ </Preference>
|
||||
+
|
||||
</PreferenceCategory>
|
||||
|
||||
|
||||
diff --git a/src/com/android/settings/ChooseEncryptionPassword.java b/src/com/android/settings/ChooseEncryptionPassword.java
|
||||
new file mode 100644
|
||||
index 0000000..43e2b0e
|
||||
--- /dev/null
|
||||
+++ b/src/com/android/settings/ChooseEncryptionPassword.java
|
||||
@@ -0,0 +1,682 @@
|
||||
+/*
|
||||
+ * 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.
|
||||
+ */
|
||||
+
|
||||
+package com.android.settings;
|
||||
+
|
||||
+import com.android.internal.logging.MetricsLogger;
|
||||
+import com.android.internal.widget.LockPatternUtils;
|
||||
+import com.android.internal.widget.PasswordEntryKeyboardHelper;
|
||||
+import com.android.internal.widget.PasswordEntryKeyboardView;
|
||||
+import com.android.internal.widget.TextViewInputDisabler;
|
||||
+import com.android.internal.widget.LockPatternUtils.RequestThrottledException;
|
||||
+import com.android.settings.notification.RedactionInterstitial;
|
||||
+
|
||||
+import android.app.Activity;
|
||||
+import android.app.Fragment;
|
||||
+import android.app.admin.DevicePolicyManager;
|
||||
+import android.content.Context;
|
||||
+import android.content.Intent;
|
||||
+import android.inputmethodservice.KeyboardView;
|
||||
+import android.os.Bundle;
|
||||
+import android.os.Handler;
|
||||
+import android.os.Message;
|
||||
+import android.os.UserHandle;
|
||||
+import android.text.Editable;
|
||||
+import android.text.InputType;
|
||||
+import android.text.Selection;
|
||||
+import android.text.Spannable;
|
||||
+import android.text.TextUtils;
|
||||
+import android.text.TextWatcher;
|
||||
+import android.util.Log;
|
||||
+import android.view.KeyEvent;
|
||||
+import android.view.LayoutInflater;
|
||||
+import android.view.View;
|
||||
+import android.view.ViewGroup;
|
||||
+import android.view.View.OnClickListener;
|
||||
+import android.view.inputmethod.EditorInfo;
|
||||
+import android.widget.Button;
|
||||
+import android.widget.TextView;
|
||||
+import android.widget.TextView.OnEditorActionListener;
|
||||
+
|
||||
+public class ChooseEncryptionPassword extends SettingsActivity {
|
||||
+ public static final String PASSWORD_MIN_KEY = "lockscreen.password_min";
|
||||
+ public static final String PASSWORD_MAX_KEY = "lockscreen.password_max";
|
||||
+ public static final String PASSWORD_MIN_LETTERS_KEY = "lockscreen.password_min_letters";
|
||||
+ public static final String PASSWORD_MIN_LOWERCASE_KEY = "lockscreen.password_min_lowercase";
|
||||
+ public static final String PASSWORD_MIN_UPPERCASE_KEY = "lockscreen.password_min_uppercase";
|
||||
+ public static final String PASSWORD_MIN_NUMERIC_KEY = "lockscreen.password_min_numeric";
|
||||
+ public static final String PASSWORD_MIN_SYMBOLS_KEY = "lockscreen.password_min_symbols";
|
||||
+ public static final String PASSWORD_MIN_NONLETTER_KEY = "lockscreen.password_min_nonletter";
|
||||
+
|
||||
+ private static final String TAG = "ChooseEncryptionPassword";
|
||||
+
|
||||
+ @Override
|
||||
+ public Intent getIntent() {
|
||||
+ Intent modIntent = new Intent(super.getIntent());
|
||||
+ modIntent.putExtra(EXTRA_SHOW_FRAGMENT, getFragmentClass().getName());
|
||||
+ return modIntent;
|
||||
+ }
|
||||
+
|
||||
+ public static Intent createIntent(Context context, int quality,
|
||||
+ int minLength, final int maxLength, boolean requirePasswordToDecrypt,
|
||||
+ boolean confirmCredentials) {
|
||||
+ Intent intent = new Intent().setClass(context, ChooseEncryptionPassword.class);
|
||||
+ intent.putExtra(LockPatternUtils.PASSWORD_TYPE_KEY, quality);
|
||||
+ intent.putExtra(PASSWORD_MIN_KEY, minLength);
|
||||
+ intent.putExtra(PASSWORD_MAX_KEY, maxLength);
|
||||
+ intent.putExtra(ChooseLockGeneric.CONFIRM_CREDENTIALS, confirmCredentials);
|
||||
+ intent.putExtra(EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, requirePasswordToDecrypt);
|
||||
+ return intent;
|
||||
+ }
|
||||
+
|
||||
+ public static Intent createIntent(Context context, int quality,
|
||||
+ int minLength, final int maxLength, boolean requirePasswordToDecrypt, String password) {
|
||||
+ Intent intent = createIntent(context, quality, minLength, maxLength,
|
||||
+ requirePasswordToDecrypt, false);
|
||||
+ intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, password);
|
||||
+ return intent;
|
||||
+ }
|
||||
+
|
||||
+ public static Intent createIntent(Context context, int quality,
|
||||
+ int minLength, final int maxLength, boolean requirePasswordToDecrypt, long challenge) {
|
||||
+ Intent intent = createIntent(context, quality, minLength, maxLength,
|
||||
+ requirePasswordToDecrypt, false);
|
||||
+ intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, true);
|
||||
+ intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, challenge);
|
||||
+ return intent;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected boolean isValidFragment(String fragmentName) {
|
||||
+ if (ChooseEncryptionPasswordFragment.class.getName().equals(fragmentName)) return true;
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ /* package */ Class<? extends Fragment> getFragmentClass() {
|
||||
+ return ChooseEncryptionPasswordFragment.class;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onCreate(Bundle savedInstanceState) {
|
||||
+ // TODO: Fix on phones
|
||||
+ // Disable IME on our window since we provide our own keyboard
|
||||
+ //getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
|
||||
+ //WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
|
||||
+ super.onCreate(savedInstanceState);
|
||||
+ CharSequence msg = getText(R.string.lockpassword_choose_your_password_header);
|
||||
+ setTitle(msg);
|
||||
+ }
|
||||
+
|
||||
+ public static class ChooseEncryptionPasswordFragment extends InstrumentedFragment
|
||||
+ implements OnClickListener, OnEditorActionListener, TextWatcher,
|
||||
+ SaveAndFinishWorker.Listener {
|
||||
+ private static final String KEY_FIRST_PIN = "first_pin";
|
||||
+ private static final String KEY_UI_STAGE = "ui_stage";
|
||||
+ private static final String KEY_CURRENT_PASSWORD = "current_password";
|
||||
+ private static final String FRAGMENT_TAG_SAVE_AND_FINISH = "save_and_finish_worker";
|
||||
+
|
||||
+ private String mCurrentPassword;
|
||||
+ private String mChosenPassword;
|
||||
+ private boolean mHasChallenge;
|
||||
+ private long mChallenge;
|
||||
+ private TextView mPasswordEntry;
|
||||
+ private TextViewInputDisabler mPasswordEntryInputDisabler;
|
||||
+ private int mPasswordMinLength = LockPatternUtils.MIN_LOCK_PASSWORD_SIZE;
|
||||
+ private int mPasswordMaxLength = 16;
|
||||
+ private int mPasswordMinLetters = 0;
|
||||
+ private int mPasswordMinUpperCase = 0;
|
||||
+ private int mPasswordMinLowerCase = 0;
|
||||
+ private int mPasswordMinSymbols = 0;
|
||||
+ private int mPasswordMinNumeric = 0;
|
||||
+ private int mPasswordMinNonLetter = 0;
|
||||
+ private LockPatternUtils mLockPatternUtils;
|
||||
+ private SaveAndFinishWorker mSaveAndFinishWorker;
|
||||
+ private int mRequestedQuality = DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC;
|
||||
+ private ChooseLockSettingsHelper mChooseLockSettingsHelper;
|
||||
+ private Stage mUiStage = Stage.Introduction;
|
||||
+
|
||||
+ private TextView mHeaderText;
|
||||
+ private String mFirstPin;
|
||||
+ private KeyboardView mKeyboardView;
|
||||
+ private PasswordEntryKeyboardHelper mKeyboardHelper;
|
||||
+ private boolean mIsAlphaMode;
|
||||
+ private Button mCancelButton;
|
||||
+ private Button mNextButton;
|
||||
+ private static final int CONFIRM_EXISTING_REQUEST = 58;
|
||||
+ static final int RESULT_FINISHED = RESULT_FIRST_USER;
|
||||
+ private static final long ERROR_MESSAGE_TIMEOUT = 3000;
|
||||
+ private static final int MSG_SHOW_ERROR = 1;
|
||||
+
|
||||
+ private Handler mHandler = new Handler() {
|
||||
+ @Override
|
||||
+ public void handleMessage(Message msg) {
|
||||
+ if (msg.what == MSG_SHOW_ERROR) {
|
||||
+ updateStage((Stage) msg.obj);
|
||||
+ }
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
+ /**
|
||||
+ * Keep track internally of where the user is in choosing a pattern.
|
||||
+ */
|
||||
+ protected enum Stage {
|
||||
+
|
||||
+ Introduction(R.string.lockpassword_choose_your_password_header,
|
||||
+ R.string.lockpassword_choose_your_pin_header,
|
||||
+ R.string.lockpassword_continue_label),
|
||||
+
|
||||
+ NeedToConfirm(R.string.lockpassword_confirm_your_password_header,
|
||||
+ R.string.lockpassword_confirm_your_pin_header,
|
||||
+ R.string.lockpassword_ok_label),
|
||||
+
|
||||
+ ConfirmWrong(R.string.lockpassword_confirm_passwords_dont_match,
|
||||
+ R.string.lockpassword_confirm_pins_dont_match,
|
||||
+ R.string.lockpassword_continue_label);
|
||||
+
|
||||
+ Stage(int hintInAlpha, int hintInNumeric, int nextButtonText) {
|
||||
+ this.alphaHint = hintInAlpha;
|
||||
+ this.numericHint = hintInNumeric;
|
||||
+ this.buttonText = nextButtonText;
|
||||
+ }
|
||||
+
|
||||
+ public final int alphaHint;
|
||||
+ public final int numericHint;
|
||||
+ public final int buttonText;
|
||||
+ }
|
||||
+
|
||||
+ // required constructor for fragments
|
||||
+ public ChooseEncryptionPasswordFragment() {
|
||||
+
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onCreate(Bundle savedInstanceState) {
|
||||
+ super.onCreate(savedInstanceState);
|
||||
+ mLockPatternUtils = new LockPatternUtils(getActivity());
|
||||
+ Intent intent = getActivity().getIntent();
|
||||
+ if (!(getActivity() instanceof ChooseEncryptionPassword)) {
|
||||
+ throw new SecurityException("Fragment contained in wrong activity");
|
||||
+ }
|
||||
+ mRequestedQuality = Math.max(intent.getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY,
|
||||
+ mRequestedQuality), mLockPatternUtils.getRequestedPasswordQuality(
|
||||
+ UserHandle.myUserId()));
|
||||
+ mPasswordMinLength = Math.max(Math.max(
|
||||
+ LockPatternUtils.MIN_LOCK_PASSWORD_SIZE,
|
||||
+ intent.getIntExtra(PASSWORD_MIN_KEY, mPasswordMinLength)),
|
||||
+ mLockPatternUtils.getRequestedMinimumPasswordLength(UserHandle.myUserId()));
|
||||
+ mPasswordMaxLength = intent.getIntExtra(PASSWORD_MAX_KEY, mPasswordMaxLength);
|
||||
+ mPasswordMinLetters = Math.max(intent.getIntExtra(PASSWORD_MIN_LETTERS_KEY,
|
||||
+ mPasswordMinLetters), mLockPatternUtils.getRequestedPasswordMinimumLetters(
|
||||
+ UserHandle.myUserId()));
|
||||
+ mPasswordMinUpperCase = Math.max(intent.getIntExtra(PASSWORD_MIN_UPPERCASE_KEY,
|
||||
+ mPasswordMinUpperCase), mLockPatternUtils.getRequestedPasswordMinimumUpperCase(
|
||||
+ UserHandle.myUserId()));
|
||||
+ mPasswordMinLowerCase = Math.max(intent.getIntExtra(PASSWORD_MIN_LOWERCASE_KEY,
|
||||
+ mPasswordMinLowerCase), mLockPatternUtils.getRequestedPasswordMinimumLowerCase(
|
||||
+ UserHandle.myUserId()));
|
||||
+ mPasswordMinNumeric = Math.max(intent.getIntExtra(PASSWORD_MIN_NUMERIC_KEY,
|
||||
+ mPasswordMinNumeric), mLockPatternUtils.getRequestedPasswordMinimumNumeric(
|
||||
+ UserHandle.myUserId()));
|
||||
+ mPasswordMinSymbols = Math.max(intent.getIntExtra(PASSWORD_MIN_SYMBOLS_KEY,
|
||||
+ mPasswordMinSymbols), mLockPatternUtils.getRequestedPasswordMinimumSymbols(
|
||||
+ UserHandle.myUserId()));
|
||||
+ mPasswordMinNonLetter = Math.max(intent.getIntExtra(PASSWORD_MIN_NONLETTER_KEY,
|
||||
+ mPasswordMinNonLetter), mLockPatternUtils.getRequestedPasswordMinimumNonLetter(
|
||||
+ UserHandle.myUserId()));
|
||||
+
|
||||
+ mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity());
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
+ Bundle savedInstanceState) {
|
||||
+ return inflater.inflate(R.layout.choose_lock_password, container, false);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||
+ super.onViewCreated(view, savedInstanceState);
|
||||
+
|
||||
+ mCancelButton = (Button) view.findViewById(R.id.cancel_button);
|
||||
+ mCancelButton.setOnClickListener(this);
|
||||
+ mNextButton = (Button) view.findViewById(R.id.next_button);
|
||||
+ mNextButton.setOnClickListener(this);
|
||||
+
|
||||
+ mIsAlphaMode = DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC == mRequestedQuality
|
||||
+ || DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC == mRequestedQuality
|
||||
+ || DevicePolicyManager.PASSWORD_QUALITY_COMPLEX == mRequestedQuality;
|
||||
+ mKeyboardView = (PasswordEntryKeyboardView) view.findViewById(R.id.keyboard);
|
||||
+ mPasswordEntry = (TextView) view.findViewById(R.id.password_entry);
|
||||
+ mPasswordEntry.setOnEditorActionListener(this);
|
||||
+ mPasswordEntry.addTextChangedListener(this);
|
||||
+ mPasswordEntryInputDisabler = new TextViewInputDisabler(mPasswordEntry);
|
||||
+
|
||||
+ final Activity activity = getActivity();
|
||||
+ mKeyboardHelper = new PasswordEntryKeyboardHelper(activity,
|
||||
+ mKeyboardView, mPasswordEntry);
|
||||
+ mKeyboardHelper.setKeyboardMode(mIsAlphaMode ?
|
||||
+ PasswordEntryKeyboardHelper.KEYBOARD_MODE_ALPHA
|
||||
+ : PasswordEntryKeyboardHelper.KEYBOARD_MODE_NUMERIC);
|
||||
+
|
||||
+ mHeaderText = (TextView) view.findViewById(R.id.headerText);
|
||||
+ mKeyboardView.requestFocus();
|
||||
+
|
||||
+ int currentType = mPasswordEntry.getInputType();
|
||||
+ mPasswordEntry.setInputType(mIsAlphaMode ? currentType
|
||||
+ : (InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD));
|
||||
+
|
||||
+ Intent intent = getActivity().getIntent();
|
||||
+ final boolean confirmCredentials = intent.getBooleanExtra(
|
||||
+ ChooseLockGeneric.CONFIRM_CREDENTIALS, true);
|
||||
+ mCurrentPassword = intent.getStringExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD);
|
||||
+ mHasChallenge = intent.getBooleanExtra(
|
||||
+ ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, false);
|
||||
+ mChallenge = intent.getLongExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, 0);
|
||||
+ if (savedInstanceState == null) {
|
||||
+ updateStage(Stage.Introduction);
|
||||
+ if (confirmCredentials) {
|
||||
+ mChooseLockSettingsHelper.launchConfirmationActivity(CONFIRM_EXISTING_REQUEST,
|
||||
+ getString(R.string.unlock_set_unlock_launch_picker_title), true);
|
||||
+ }
|
||||
+ } else {
|
||||
+ // restore from previous state
|
||||
+ mFirstPin = savedInstanceState.getString(KEY_FIRST_PIN);
|
||||
+ final String state = savedInstanceState.getString(KEY_UI_STAGE);
|
||||
+ if (state != null) {
|
||||
+ mUiStage = Stage.valueOf(state);
|
||||
+ updateStage(mUiStage);
|
||||
+ }
|
||||
+
|
||||
+ if (mCurrentPassword == null) {
|
||||
+ mCurrentPassword = savedInstanceState.getString(KEY_CURRENT_PASSWORD);
|
||||
+ }
|
||||
+
|
||||
+ // Re-attach to the exiting worker if there is one.
|
||||
+ mSaveAndFinishWorker = (SaveAndFinishWorker) getFragmentManager().findFragmentByTag(
|
||||
+ FRAGMENT_TAG_SAVE_AND_FINISH);
|
||||
+ }
|
||||
+ if (activity instanceof SettingsActivity) {
|
||||
+ final SettingsActivity sa = (SettingsActivity) activity;
|
||||
+ int id = mIsAlphaMode ? R.string.lockpassword_choose_your_password_header
|
||||
+ : R.string.lockpassword_choose_your_pin_header;
|
||||
+ CharSequence title = getText(id);
|
||||
+ sa.setTitle(title);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected int getMetricsCategory() {
|
||||
+ return MetricsLogger.CHOOSE_LOCK_PASSWORD;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onResume() {
|
||||
+ super.onResume();
|
||||
+ updateStage(mUiStage);
|
||||
+ if (mSaveAndFinishWorker != null) {
|
||||
+ mSaveAndFinishWorker.setListener(this);
|
||||
+ } else {
|
||||
+ mKeyboardView.requestFocus();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onPause() {
|
||||
+ mHandler.removeMessages(MSG_SHOW_ERROR);
|
||||
+ if (mSaveAndFinishWorker != null) {
|
||||
+ mSaveAndFinishWorker.setListener(null);
|
||||
+ }
|
||||
+
|
||||
+ super.onPause();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onSaveInstanceState(Bundle outState) {
|
||||
+ super.onSaveInstanceState(outState);
|
||||
+ outState.putString(KEY_UI_STAGE, mUiStage.name());
|
||||
+ outState.putString(KEY_FIRST_PIN, mFirstPin);
|
||||
+ outState.putString(KEY_CURRENT_PASSWORD, mCurrentPassword);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onActivityResult(int requestCode, int resultCode,
|
||||
+ Intent data) {
|
||||
+ super.onActivityResult(requestCode, resultCode, data);
|
||||
+ switch (requestCode) {
|
||||
+ case CONFIRM_EXISTING_REQUEST:
|
||||
+ if (resultCode != Activity.RESULT_OK) {
|
||||
+ getActivity().setResult(RESULT_FINISHED);
|
||||
+ getActivity().finish();
|
||||
+ } else {
|
||||
+ mCurrentPassword = data.getStringExtra(
|
||||
+ ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD);
|
||||
+ }
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ protected Intent getRedactionInterstitialIntent(Context context) {
|
||||
+ return RedactionInterstitial.createStartIntent(context);
|
||||
+ }
|
||||
+
|
||||
+ protected void updateStage(Stage stage) {
|
||||
+ final Stage previousStage = mUiStage;
|
||||
+ mUiStage = stage;
|
||||
+ updateUi();
|
||||
+
|
||||
+ // If the stage changed, announce the header for accessibility. This
|
||||
+ // is a no-op when accessibility is disabled.
|
||||
+ if (previousStage != stage) {
|
||||
+ mHeaderText.announceForAccessibility(mHeaderText.getText());
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Validates PIN and returns a message to display if PIN fails test.
|
||||
+ * @param password the raw password the user typed in
|
||||
+ * @return error message to show to user or null if password is OK
|
||||
+ */
|
||||
+ private String validatePassword(String password) {
|
||||
+ if (password.length() < mPasswordMinLength) {
|
||||
+ return getString(mIsAlphaMode ?
|
||||
+ R.string.lockpassword_password_too_short
|
||||
+ : R.string.lockpassword_pin_too_short, mPasswordMinLength);
|
||||
+ }
|
||||
+ if (password.length() > mPasswordMaxLength) {
|
||||
+ return getString(mIsAlphaMode ?
|
||||
+ R.string.lockpassword_password_too_long
|
||||
+ : R.string.lockpassword_pin_too_long, mPasswordMaxLength + 1);
|
||||
+ }
|
||||
+ int letters = 0;
|
||||
+ int numbers = 0;
|
||||
+ int lowercase = 0;
|
||||
+ int symbols = 0;
|
||||
+ int uppercase = 0;
|
||||
+ int nonletter = 0;
|
||||
+ for (int i = 0; i < password.length(); i++) {
|
||||
+ char c = password.charAt(i);
|
||||
+ // allow non control Latin-1 characters only
|
||||
+ if (c < 32 || c > 127) {
|
||||
+ return getString(R.string.lockpassword_illegal_character);
|
||||
+ }
|
||||
+ if (c >= '0' && c <= '9') {
|
||||
+ numbers++;
|
||||
+ nonletter++;
|
||||
+ } else if (c >= 'A' && c <= 'Z') {
|
||||
+ letters++;
|
||||
+ uppercase++;
|
||||
+ } else if (c >= 'a' && c <= 'z') {
|
||||
+ letters++;
|
||||
+ lowercase++;
|
||||
+ } else {
|
||||
+ symbols++;
|
||||
+ nonletter++;
|
||||
+ }
|
||||
+ }
|
||||
+ if (DevicePolicyManager.PASSWORD_QUALITY_NUMERIC == mRequestedQuality
|
||||
+ || DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX == mRequestedQuality) {
|
||||
+ if (letters > 0 || symbols > 0) {
|
||||
+ // This shouldn't be possible unless user finds some way to bring up
|
||||
+ // soft keyboard
|
||||
+ return getString(R.string.lockpassword_pin_contains_non_digits);
|
||||
+ }
|
||||
+ // Check for repeated characters or sequences (e.g. '1234', '0000', '2468')
|
||||
+ final int sequence = LockPatternUtils.maxLengthSequence(password);
|
||||
+ if (DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX == mRequestedQuality
|
||||
+ && sequence > LockPatternUtils.MAX_ALLOWED_SEQUENCE) {
|
||||
+ return getString(R.string.lockpassword_pin_no_sequential_digits);
|
||||
+ }
|
||||
+ } else if (DevicePolicyManager.PASSWORD_QUALITY_COMPLEX == mRequestedQuality) {
|
||||
+ if (letters < mPasswordMinLetters) {
|
||||
+ return String.format(getResources().getQuantityString(
|
||||
+ R.plurals.lockpassword_password_requires_letters, mPasswordMinLetters),
|
||||
+ mPasswordMinLetters);
|
||||
+ } else if (numbers < mPasswordMinNumeric) {
|
||||
+ return String.format(getResources().getQuantityString(
|
||||
+ R.plurals.lockpassword_password_requires_numeric, mPasswordMinNumeric),
|
||||
+ mPasswordMinNumeric);
|
||||
+ } else if (lowercase < mPasswordMinLowerCase) {
|
||||
+ return String.format(getResources().getQuantityString(
|
||||
+ R.plurals.lockpassword_password_requires_lowercase, mPasswordMinLowerCase),
|
||||
+ mPasswordMinLowerCase);
|
||||
+ } else if (uppercase < mPasswordMinUpperCase) {
|
||||
+ return String.format(getResources().getQuantityString(
|
||||
+ R.plurals.lockpassword_password_requires_uppercase, mPasswordMinUpperCase),
|
||||
+ mPasswordMinUpperCase);
|
||||
+ } else if (symbols < mPasswordMinSymbols) {
|
||||
+ return String.format(getResources().getQuantityString(
|
||||
+ R.plurals.lockpassword_password_requires_symbols, mPasswordMinSymbols),
|
||||
+ mPasswordMinSymbols);
|
||||
+ } else if (nonletter < mPasswordMinNonLetter) {
|
||||
+ return String.format(getResources().getQuantityString(
|
||||
+ R.plurals.lockpassword_password_requires_nonletter, mPasswordMinNonLetter),
|
||||
+ mPasswordMinNonLetter);
|
||||
+ }
|
||||
+ } else {
|
||||
+ final boolean alphabetic = DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC
|
||||
+ == mRequestedQuality;
|
||||
+ final boolean alphanumeric = DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC
|
||||
+ == mRequestedQuality;
|
||||
+ if ((alphabetic || alphanumeric) && letters == 0) {
|
||||
+ return getString(R.string.lockpassword_password_requires_alpha);
|
||||
+ }
|
||||
+ if (alphanumeric && numbers == 0) {
|
||||
+ return getString(R.string.lockpassword_password_requires_digit);
|
||||
+ }
|
||||
+ }
|
||||
+ if(mLockPatternUtils.checkPasswordHistory(password, UserHandle.myUserId())) {
|
||||
+ return getString(mIsAlphaMode ? R.string.lockpassword_password_recently_used
|
||||
+ : R.string.lockpassword_pin_recently_used);
|
||||
+ }
|
||||
+
|
||||
+ return null;
|
||||
+ }
|
||||
+
|
||||
+ public void handleNext() {
|
||||
+ if (mSaveAndFinishWorker != null) return;
|
||||
+ mChosenPassword = mPasswordEntry.getText().toString();
|
||||
+ if (TextUtils.isEmpty(mChosenPassword)) {
|
||||
+ return;
|
||||
+ }
|
||||
+ String errorMsg = null;
|
||||
+ if (mUiStage == Stage.Introduction) {
|
||||
+ errorMsg = validatePassword(mChosenPassword);
|
||||
+ if (errorMsg == null) {
|
||||
+ mFirstPin = mChosenPassword;
|
||||
+ mPasswordEntry.setText("");
|
||||
+ updateStage(Stage.NeedToConfirm);
|
||||
+ }
|
||||
+ } else if (mUiStage == Stage.NeedToConfirm) {
|
||||
+ if (mFirstPin.equals(mChosenPassword)) {
|
||||
+ startSaveAndFinish();
|
||||
+ } else {
|
||||
+ CharSequence tmp = mPasswordEntry.getText();
|
||||
+ if (tmp != null) {
|
||||
+ Selection.setSelection((Spannable) tmp, 0, tmp.length());
|
||||
+ }
|
||||
+ updateStage(Stage.ConfirmWrong);
|
||||
+ }
|
||||
+ }
|
||||
+ if (errorMsg != null) {
|
||||
+ showError(errorMsg, mUiStage);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ protected void setNextEnabled(boolean enabled) {
|
||||
+ mNextButton.setEnabled(enabled);
|
||||
+ }
|
||||
+
|
||||
+ protected void setNextText(int text) {
|
||||
+ mNextButton.setText(text);
|
||||
+ }
|
||||
+
|
||||
+ public void onClick(View v) {
|
||||
+ switch (v.getId()) {
|
||||
+ case R.id.next_button:
|
||||
+ handleNext();
|
||||
+ break;
|
||||
+
|
||||
+ case R.id.cancel_button:
|
||||
+ getActivity().finish();
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private void showError(String msg, final Stage next) {
|
||||
+ mHeaderText.setText(msg);
|
||||
+ mHeaderText.announceForAccessibility(mHeaderText.getText());
|
||||
+ Message mesg = mHandler.obtainMessage(MSG_SHOW_ERROR, next);
|
||||
+ mHandler.removeMessages(MSG_SHOW_ERROR);
|
||||
+ mHandler.sendMessageDelayed(mesg, ERROR_MESSAGE_TIMEOUT);
|
||||
+ }
|
||||
+
|
||||
+ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
||||
+ // Check if this was the result of hitting the enter or "done" key
|
||||
+ if (actionId == EditorInfo.IME_NULL
|
||||
+ || actionId == EditorInfo.IME_ACTION_DONE
|
||||
+ || actionId == EditorInfo.IME_ACTION_NEXT) {
|
||||
+ handleNext();
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Update the hint based on current Stage and length of password entry
|
||||
+ */
|
||||
+ private void updateUi() {
|
||||
+ final boolean canInput = mSaveAndFinishWorker == null;
|
||||
+ String password = mPasswordEntry.getText().toString();
|
||||
+ final int length = password.length();
|
||||
+ if (mUiStage == Stage.Introduction) {
|
||||
+ if (length < mPasswordMinLength) {
|
||||
+ String msg = getString(mIsAlphaMode ? R.string.lockpassword_password_too_short
|
||||
+ : R.string.lockpassword_pin_too_short, mPasswordMinLength);
|
||||
+ mHeaderText.setText(msg);
|
||||
+ setNextEnabled(false);
|
||||
+ } else {
|
||||
+ String error = validatePassword(password);
|
||||
+ if (error != null) {
|
||||
+ mHeaderText.setText(error);
|
||||
+ setNextEnabled(false);
|
||||
+ } else {
|
||||
+ mHeaderText.setText(R.string.lockpassword_press_continue);
|
||||
+ setNextEnabled(true);
|
||||
+ }
|
||||
+ }
|
||||
+ } else {
|
||||
+ mHeaderText.setText(mIsAlphaMode ? mUiStage.alphaHint : mUiStage.numericHint);
|
||||
+ setNextEnabled(canInput && length > 0);
|
||||
+ }
|
||||
+ setNextText(mUiStage.buttonText);
|
||||
+ mPasswordEntryInputDisabler.setInputEnabled(canInput);
|
||||
+ }
|
||||
+
|
||||
+ public void afterTextChanged(Editable s) {
|
||||
+ // Changing the text while error displayed resets to NeedToConfirm state
|
||||
+ if (mUiStage == Stage.ConfirmWrong) {
|
||||
+ mUiStage = Stage.NeedToConfirm;
|
||||
+ }
|
||||
+ updateUi();
|
||||
+ }
|
||||
+
|
||||
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
+
|
||||
+ }
|
||||
+
|
||||
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
+
|
||||
+ }
|
||||
+
|
||||
+ private void startSaveAndFinish() {
|
||||
+ if (mSaveAndFinishWorker != null) {
|
||||
+ Log.w(TAG, "startSaveAndFinish with an existing SaveAndFinishWorker.");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ mPasswordEntryInputDisabler.setInputEnabled(false);
|
||||
+ setNextEnabled(false);
|
||||
+
|
||||
+ mSaveAndFinishWorker = new SaveAndFinishWorker();
|
||||
+ getFragmentManager().beginTransaction().add(mSaveAndFinishWorker,
|
||||
+ FRAGMENT_TAG_SAVE_AND_FINISH).commit();
|
||||
+ mSaveAndFinishWorker.setListener(this);
|
||||
+
|
||||
+ final boolean required = getActivity().getIntent().getBooleanExtra(
|
||||
+ EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, true);
|
||||
+ mSaveAndFinishWorker.start(mLockPatternUtils, required, mHasChallenge, mChallenge,
|
||||
+ mChosenPassword, mCurrentPassword, mRequestedQuality);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onChosenLockSaveFinished(boolean wasSecureBefore, Intent resultData) {
|
||||
+ getActivity().setResult(RESULT_FINISHED, resultData);
|
||||
+ getActivity().finish();
|
||||
+
|
||||
+ if (!wasSecureBefore) {
|
||||
+ Intent intent = getRedactionInterstitialIntent(getActivity());
|
||||
+ if (intent != null) {
|
||||
+ startActivity(intent);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static class SaveAndFinishWorker extends SaveChosenLockWorkerBase {
|
||||
+
|
||||
+ private String mChosenPassword;
|
||||
+ private String mCurrentPassword;
|
||||
+ private int mRequestedQuality;
|
||||
+
|
||||
+ public void start(LockPatternUtils utils, boolean required,
|
||||
+ boolean hasChallenge, long challenge,
|
||||
+ String chosenPassword, String currentPassword, int requestedQuality) {
|
||||
+ prepare(utils, required, hasChallenge, challenge);
|
||||
+
|
||||
+ mChosenPassword = chosenPassword;
|
||||
+ mCurrentPassword = currentPassword;
|
||||
+ mRequestedQuality = requestedQuality;
|
||||
+
|
||||
+ start();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected Intent saveAndVerifyInBackground() {
|
||||
+ Intent result = null;
|
||||
+ final int userId = UserHandle.myUserId();
|
||||
+ mUtils.setCredentialRequiredToDecrypt(true);
|
||||
+ mUtils.setSeparateEncryptionPassword(mChosenPassword);
|
||||
+
|
||||
+ if (mHasChallenge) {
|
||||
+ byte[] token;
|
||||
+ try {
|
||||
+ token = mUtils.verifyPassword(mChosenPassword, mChallenge, userId);
|
||||
+ } catch (RequestThrottledException e) {
|
||||
+ token = null;
|
||||
+ }
|
||||
+
|
||||
+ if (token == null) {
|
||||
+ Log.e(TAG, "critical: no token returned for known good password.");
|
||||
+ }
|
||||
+
|
||||
+ result = new Intent();
|
||||
+ result.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);
|
||||
+ }
|
||||
+
|
||||
+ return result;
|
||||
+ }
|
||||
+ }
|
||||
+}
|
198
Patches/Copperhead-13.0/android_packages_apps_Settings/4.patch
Normal file
198
Patches/Copperhead-13.0/android_packages_apps_Settings/4.patch
Normal file
@ -0,0 +1,198 @@
|
||||
From 0985c9dc829bd54d29335231704bff3bda2750b3 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Sat, 27 Jun 2015 12:39:17 -0400
|
||||
Subject: [PATCH] support replacing a separate encryption password
|
||||
|
||||
---
|
||||
AndroidManifest.xml | 2 +
|
||||
res/values/strings.xml | 6 ++
|
||||
res/xml/security_settings_encrypted.xml | 10 +++
|
||||
.../settings/ReplaceEncryptionPassword.java | 99 ++++++++++++++++++++++
|
||||
src/com/android/settings/SecuritySettings.java | 10 +++
|
||||
5 files changed, 127 insertions(+)
|
||||
create mode 100644 src/com/android/settings/ReplaceEncryptionPassword.java
|
||||
|
||||
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
|
||||
index a561d7e..c54e4fa 100755
|
||||
--- a/AndroidManifest.xml
|
||||
+++ b/AndroidManifest.xml
|
||||
@@ -1527,6 +1527,8 @@
|
||||
<activity android:name="ChooseEncryptionPassword" android:exported="false"
|
||||
android:windowSoftInputMode="stateVisible|adjustResize"/>
|
||||
|
||||
+ <activity android:name="ReplaceEncryptionPassword" android:exported="false"/>
|
||||
+
|
||||
<activity android:name=".SetupEncryptionInterstitial"
|
||||
android:taskAffinity="com.android.wizard"
|
||||
android:theme="@style/SetupWizardDisableAppStartingTheme"/>
|
||||
diff --git a/res/values/strings.xml b/res/values/strings.xml
|
||||
index d5324f1..224c91e 100755
|
||||
--- a/res/values/strings.xml
|
||||
+++ b/res/values/strings.xml
|
||||
@@ -946,6 +946,12 @@
|
||||
<!-- Header on first screen of choose encryption password [CHAR LIMIT=30] -->
|
||||
<string name="crypt_keeper_choose_your_password_header">Set encryption password</string>
|
||||
|
||||
+ <!-- Title for PreferenceScreen to replace encryption password [CHAR LIMIT=22] -->
|
||||
+ <string name="crypt_keeper_replace_password_title">Replace encryption password</string>
|
||||
+
|
||||
+ <!-- Summary for PreferenceScreen to replace encryption password [CHAR LIMIT=45] -->
|
||||
+ <string name="crypt_keeper_replace_password_summary">Remove the separate encryption password</string>
|
||||
+
|
||||
<!-- Unlock Picker Settings --><skip />
|
||||
|
||||
<!-- Security Picker --><skip />
|
||||
diff --git a/res/xml/security_settings_encrypted.xml b/res/xml/security_settings_encrypted.xml
|
||||
index f05bad5..e068541 100644
|
||||
--- a/res/xml/security_settings_encrypted.xml
|
||||
+++ b/res/xml/security_settings_encrypted.xml
|
||||
@@ -37,6 +37,16 @@
|
||||
android:targetClass="com.android.settings.ChooseEncryptionPassword" />
|
||||
</Preference>
|
||||
|
||||
+ <Preference
|
||||
+ android:key="crypt_keeper_replace_password"
|
||||
+ android:title="@string/crypt_keeper_replace_password_title"
|
||||
+ android:summary="@string/crypt_keeper_replace_password_summary">
|
||||
+
|
||||
+ <intent android:action="android.intent.action.MAIN"
|
||||
+ android:targetPackage="com.android.settings"
|
||||
+ android:targetClass="com.android.settings.ReplaceEncryptionPassword" />
|
||||
+ </Preference>
|
||||
+
|
||||
</PreferenceCategory>
|
||||
|
||||
|
||||
diff --git a/src/com/android/settings/ReplaceEncryptionPassword.java b/src/com/android/settings/ReplaceEncryptionPassword.java
|
||||
new file mode 100644
|
||||
index 0000000..84dcc48
|
||||
--- /dev/null
|
||||
+++ b/src/com/android/settings/ReplaceEncryptionPassword.java
|
||||
@@ -0,0 +1,99 @@
|
||||
+/*
|
||||
+ * 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.
|
||||
+ */
|
||||
+
|
||||
+package com.android.settings;
|
||||
+
|
||||
+import com.android.internal.widget.LockPatternUtils;
|
||||
+import com.android.internal.widget.LockPatternUtils.RequestThrottledException;
|
||||
+
|
||||
+import android.app.Activity;
|
||||
+import android.app.Fragment;
|
||||
+import android.content.Intent;
|
||||
+import android.content.res.Resources;
|
||||
+import android.os.Bundle;
|
||||
+import android.os.storage.StorageManager;
|
||||
+import android.os.UserHandle;
|
||||
+import android.view.LayoutInflater;
|
||||
+import android.view.View;
|
||||
+import android.view.ViewGroup;
|
||||
+
|
||||
+public class ReplaceEncryptionPassword extends SettingsActivity {
|
||||
+ @Override
|
||||
+ public Intent getIntent() {
|
||||
+ Intent modIntent = new Intent(super.getIntent());
|
||||
+ modIntent.putExtra(EXTRA_SHOW_FRAGMENT, getFragmentClass().getName());
|
||||
+ return modIntent;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected boolean isValidFragment(String fragmentName) {
|
||||
+ if (ReplaceEncryptionPasswordFragment.class.getName().equals(fragmentName)) return true;
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ /* package */ Class<? extends Fragment> getFragmentClass() {
|
||||
+ return ReplaceEncryptionPasswordFragment.class;
|
||||
+ }
|
||||
+
|
||||
+ public static class ReplaceEncryptionPasswordFragment extends Fragment {
|
||||
+ private static final int KEYGUARD_REQUEST = 55;
|
||||
+
|
||||
+ @Override
|
||||
+ public void onCreate(Bundle savedInstanceState) {
|
||||
+ super.onCreate(savedInstanceState);
|
||||
+ if (!(getActivity() instanceof ReplaceEncryptionPassword)) {
|
||||
+ throw new SecurityException("Fragment contained in wrong activity");
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
|
||||
+ Resources res = getActivity().getResources();
|
||||
+ ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(getActivity(), this);
|
||||
+
|
||||
+ helper.launchConfirmationActivity(KEYGUARD_REQUEST,
|
||||
+ res.getText(R.string.unlock_set_unlock_password_title),
|
||||
+ true);
|
||||
+
|
||||
+ return null;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
+ super.onActivityResult(requestCode, resultCode, data);
|
||||
+
|
||||
+ if (requestCode != KEYGUARD_REQUEST) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ // If the user entered a valid keyguard trace, present the final
|
||||
+ // confirmation prompt; otherwise, go back to the initial state.
|
||||
+ if (resultCode == Activity.RESULT_OK && data != null) {
|
||||
+ LockPatternUtils utils = new LockPatternUtils(getActivity());
|
||||
+ int type = data.getIntExtra(ChooseLockSettingsHelper.EXTRA_KEY_TYPE, -1);
|
||||
+ String password = data.getStringExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD);
|
||||
+ if (type == StorageManager.CRYPT_TYPE_PATTERN) {
|
||||
+ utils.replaceSeparateEncryptionPasswordWithPattern(
|
||||
+ utils.stringToPattern(password, utils.getLockPatternSize()));
|
||||
+ } else {
|
||||
+ utils.replaceSeparateEncryptionPassword(password);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ getActivity().finish();
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
|
||||
index 4d76f08..7cab5ca 100644
|
||||
--- a/src/com/android/settings/SecuritySettings.java
|
||||
+++ b/src/com/android/settings/SecuritySettings.java
|
||||
@@ -110,6 +110,7 @@
|
||||
private static final String PACKAGE_MIME_TYPE = "application/vnd.android.package-archive";
|
||||
private static final String KEY_TRUST_AGENT = "trust_agent";
|
||||
private static final String KEY_SCREEN_PINNING = "screen_pinning_settings";
|
||||
+ private static final String KEY_REPLACE_ENCRYPTION_PASSWORD = "crypt_keeper_replace_password";
|
||||
private static final String KEY_SMS_SECURITY_CHECK_PREF = "sms_security_check_limit";
|
||||
|
||||
// malloc configuration
|
||||
@@ -270,6 +271,15 @@ public boolean onPreferenceClick(Preference preference) {
|
||||
if (LockPatternUtils.isDeviceEncryptionEnabled()) {
|
||||
// The device is currently encrypted.
|
||||
addPreferencesFromResource(R.xml.security_settings_encrypted);
|
||||
+ if (!mLockPatternUtils.isSeparateEncryptionPasswordEnabled()) {
|
||||
+ PreferenceGroup securityCategory =
|
||||
+ (PreferenceGroup)root.findPreference(KEY_SECURITY_CATEGORY);
|
||||
+ if (securityCategory != null) {
|
||||
+ Preference replaceEncryptionPassword =
|
||||
+ root.findPreference(KEY_REPLACE_ENCRYPTION_PASSWORD);
|
||||
+ securityCategory.removePreference(replaceEncryptionPassword);
|
||||
+ }
|
||||
+ }
|
||||
} else {
|
||||
// This device supports encryption but isn't encrypted.
|
||||
addPreferencesFromResource(R.xml.security_settings_unencrypted);
|
@ -0,0 +1,73 @@
|
||||
From a29c050a986312d6863d2a7ed6cceb1f1b0b9fac Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Sun, 28 Jun 2015 13:31:54 -0400
|
||||
Subject: [PATCH] fix usage of ChooseLockSettingsHelper
|
||||
|
||||
The fragment was not being passed, so the ChooseLock* fragments are not
|
||||
informed if authentication fails (i.e. the cancel button is pushed) and
|
||||
continue on as if it was successful. This wasn't noticed because this
|
||||
code isn't used in the normal path where authentication happens before
|
||||
entering the preferences menu to choose the authentication method.
|
||||
|
||||
The authentication support built-in to these fragments may even be dead
|
||||
code, but it should work correctly if it's there because it may be the
|
||||
basis of new code.
|
||||
---
|
||||
src/com/android/settings/ChooseEncryptionPassword.java | 2 +-
|
||||
src/com/android/settings/ChooseLockGeneric.java | 2 +-
|
||||
src/com/android/settings/ChooseLockPassword.java | 2 +-
|
||||
src/com/android/settings/ChooseLockPattern.java | 2 +-
|
||||
4 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/com/android/settings/ChooseEncryptionPassword.java b/src/com/android/settings/ChooseEncryptionPassword.java
|
||||
index 43e2b0e..761603a 100644
|
||||
--- a/src/com/android/settings/ChooseEncryptionPassword.java
|
||||
+++ b/src/com/android/settings/ChooseEncryptionPassword.java
|
||||
@@ -237,7 +237,7 @@ public void onCreate(Bundle savedInstanceState) {
|
||||
mPasswordMinNonLetter), mLockPatternUtils.getRequestedPasswordMinimumNonLetter(
|
||||
UserHandle.myUserId()));
|
||||
|
||||
- mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity());
|
||||
+ mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity(), this);
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
|
||||
index 7f5960f..b177d11 100644
|
||||
--- a/src/com/android/settings/ChooseLockGeneric.java
|
||||
+++ b/src/com/android/settings/ChooseLockGeneric.java
|
||||
@@ -137,7 +137,7 @@ public void onCreate(Bundle savedInstanceState) {
|
||||
(FingerprintManager) getActivity().getSystemService(Context.FINGERPRINT_SERVICE);
|
||||
mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||
mKeyStore = KeyStore.getInstance();
|
||||
- mChooseLockSettingsHelper = new ChooseLockSettingsHelper(this.getActivity());
|
||||
+ mChooseLockSettingsHelper = new ChooseLockSettingsHelper(this.getActivity(), this);
|
||||
mLockPatternUtils = new LockPatternUtils(getActivity());
|
||||
mLockPatternUtils.sanitizePassword();
|
||||
|
||||
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java
|
||||
index 54c3620..59d1153 100644
|
||||
--- a/src/com/android/settings/ChooseLockPassword.java
|
||||
+++ b/src/com/android/settings/ChooseLockPassword.java
|
||||
@@ -237,7 +237,7 @@ public void onCreate(Bundle savedInstanceState) {
|
||||
mPasswordMinNonLetter), mLockPatternUtils.getRequestedPasswordMinimumNonLetter(
|
||||
UserHandle.myUserId()));
|
||||
|
||||
- mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity());
|
||||
+ mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity(), this);
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java
|
||||
index c85e604..f6f0b7e 100644
|
||||
--- a/src/com/android/settings/ChooseLockPattern.java
|
||||
+++ b/src/com/android/settings/ChooseLockPattern.java
|
||||
@@ -366,7 +366,7 @@ public void run() {
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
- mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity());
|
||||
+ mChooseLockSettingsHelper = new ChooseLockSettingsHelper(getActivity(), this);
|
||||
if (!(getActivity() instanceof ChooseLockPattern)) {
|
||||
throw new SecurityException("Fragment contained in wrong activity");
|
||||
}
|
File diff suppressed because it is too large
Load Diff
1016
Patches/Copperhead-13.0/android_packages_apps_SetupWizard/1.patch
Normal file
1016
Patches/Copperhead-13.0/android_packages_apps_SetupWizard/1.patch
Normal file
File diff suppressed because it is too large
Load Diff
24
Patches/Copperhead-13.0/android_system_core/1.patch
Normal file
24
Patches/Copperhead-13.0/android_system_core/1.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From fe1708406e0b31214fcb9a9abf2a4b7c944fab6d Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Fri, 27 Mar 2015 02:55:14 -0400
|
||||
Subject: [PATCH] add back dmesg_restrict
|
||||
|
||||
The debugging use case with the shell user is not very compelling. This
|
||||
is supposed to enforced elsewhere via SELinux now but there's no harm in
|
||||
redundancy.
|
||||
---
|
||||
rootdir/init.rc | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/rootdir/init.rc b/rootdir/init.rc
|
||||
index 5c6b606..b98443a 100644
|
||||
--- a/rootdir/init.rc
|
||||
+++ b/rootdir/init.rc
|
||||
@@ -105,6 +105,7 @@ on init
|
||||
write /proc/sys/kernel/sched_child_runs_first 0
|
||||
|
||||
write /proc/sys/kernel/randomize_va_space 2
|
||||
+ write /proc/sys/kernel/dmesg_restrict 1
|
||||
write /proc/sys/kernel/kptr_restrict 2
|
||||
write /proc/sys/vm/mmap_min_addr 32768
|
||||
write /proc/sys/net/ipv4/ping_group_range "0 2147483647"
|
26
Patches/Copperhead-13.0/android_system_core/2.patch
Normal file
26
Patches/Copperhead-13.0/android_system_core/2.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 5eb07e6823e9e68e30f25e4d85466d9b1fccf48d Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Fri, 6 Feb 2015 11:46:34 -0500
|
||||
Subject: [PATCH] tighten up mount permissions
|
||||
|
||||
---
|
||||
init/init.cpp | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/init/init.cpp b/init/init.cpp
|
||||
index 542c35e..c7275b1 100644
|
||||
--- a/init/init.cpp
|
||||
+++ b/init/init.cpp
|
||||
@@ -1039,9 +1039,9 @@ int main(int argc, char** argv) {
|
||||
mount("tmpfs", "/dev", "tmpfs", MS_NOSUID, "mode=0755");
|
||||
mkdir("/dev/pts", 0755);
|
||||
mkdir("/dev/socket", 0755);
|
||||
- mount("devpts", "/dev/pts", "devpts", 0, NULL);
|
||||
- mount("proc", "/proc", "proc", 0, NULL);
|
||||
- mount("sysfs", "/sys", "sysfs", 0, NULL);
|
||||
+ mount("devpts", "/dev/pts", "devpts", MS_NOSUID|MS_NOEXEC, NULL);
|
||||
+ mount("proc", "/proc", "proc", MS_NOSUID|MS_NODEV|MS_NOEXEC, NULL);
|
||||
+ mount("sysfs", "/sys", "sysfs", MS_NOSUID|MS_NODEV|MS_NOEXEC, NULL);
|
||||
}
|
||||
|
||||
// We must have some place other than / to create the device nodes for
|
35
Patches/Copperhead-13.0/android_system_core/3.patch
Normal file
35
Patches/Copperhead-13.0/android_system_core/3.patch
Normal file
@ -0,0 +1,35 @@
|
||||
From eee064eb93d1ee3f1db56a9634015ba23e3b0e92 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Thu, 5 Feb 2015 20:33:17 -0500
|
||||
Subject: [PATCH] tighten up kernel tcp/ip settings
|
||||
|
||||
---
|
||||
rootdir/init.rc | 15 +++++++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
|
||||
diff --git a/rootdir/init.rc b/rootdir/init.rc
|
||||
index b98443a..f30baf4 100644
|
||||
--- a/rootdir/init.rc
|
||||
+++ b/rootdir/init.rc
|
||||
@@ -124,6 +124,21 @@ on init
|
||||
write /proc/sys/net/ipv4/conf/all/accept_redirects 0
|
||||
write /proc/sys/net/ipv6/conf/all/accept_redirects 0
|
||||
|
||||
+ # IPv4 hardening
|
||||
+ #
|
||||
+ # reverse path filtering is done with netfilter for consistency with IPv6
|
||||
+ write /proc/sys/net/ipv4/tcp_rfc1337 1
|
||||
+ write /proc/sys/net/ipv4/conf/all/accept_source_route 0
|
||||
+ write /proc/sys/net/ipv4/conf/default/accept_source_route 0
|
||||
+ write /proc/sys/net/ipv4/conf/default/accept_redirects 0
|
||||
+ write /proc/sys/net/ipv4/conf/all/send_redirects 0
|
||||
+ write /proc/sys/net/ipv4/conf/default/send_redirects 0
|
||||
+
|
||||
+ # IPv6 hardening
|
||||
+ write /proc/sys/net/ipv6/conf/default/accept_redirects 0
|
||||
+ write /proc/sys/net/ipv6/conf/all/use_tempaddr 2
|
||||
+ write /proc/sys/net/ipv6/conf/default/use_tempaddr 2
|
||||
+
|
||||
# Create cgroup mount points for process groups
|
||||
mkdir /dev/cpuctl
|
||||
mount cgroup none /dev/cpuctl cpu
|
22
Patches/Copperhead-13.0/android_system_core/4.patch
Normal file
22
Patches/Copperhead-13.0/android_system_core/4.patch
Normal file
@ -0,0 +1,22 @@
|
||||
From f7704509fc9ae1abed312e5e4276ce51f1c541ad Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Fri, 14 Aug 2015 15:07:33 -0400
|
||||
Subject: [PATCH] slow down the service respawning rate
|
||||
|
||||
---
|
||||
init/init.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/init/init.cpp b/init/init.cpp
|
||||
index 78859a5..11ed674 100644
|
||||
--- a/init/init.cpp
|
||||
+++ b/init/init.cpp
|
||||
@@ -465,7 +465,7 @@ void property_changed(const char *name, const char *value)
|
||||
|
||||
static void restart_service_if_needed(struct service *svc)
|
||||
{
|
||||
- time_t next_start_time = svc->time_started + 5;
|
||||
+ time_t next_start_time = svc->time_started + 10;
|
||||
|
||||
if (next_start_time <= gettime()) {
|
||||
svc->flags &= (~SVC_RESTARTING);
|
23
Patches/Copperhead-13.0/android_vendor_cm/1.patch
Normal file
23
Patches/Copperhead-13.0/android_vendor_cm/1.patch
Normal file
@ -0,0 +1,23 @@
|
||||
From 868adf173741eb6a3f0693d6b14fb92148a48db1 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Fri, 20 Nov 2015 00:13:54 -0500
|
||||
Subject: [PATCH] remove analytics support
|
||||
|
||||
---
|
||||
.../vendor/cmsdk/packages/CMSettingsProvider/res/values/defaults.xml | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/overlay/common/vendor/cmsdk/packages/CMSettingsProvider/res/values/defaults.xml b/overlay/common/vendor/cmsdk/packages/CMSettingsProvider/res/values/defaults.xml
|
||||
index eec242d..27ec5fe 100644
|
||||
--- a/overlay/common/vendor/cmsdk/packages/CMSettingsProvider/res/values/defaults.xml
|
||||
+++ b/overlay/common/vendor/cmsdk/packages/CMSettingsProvider/res/values/defaults.xml
|
||||
@@ -22,9 +22,4 @@
|
||||
1. Right
|
||||
2. Left -->
|
||||
<integer name="def_qs_quick_pulldown">1</integer>
|
||||
-
|
||||
- <!-- Defaults for Secure -->
|
||||
-
|
||||
- <!-- Default for CMSettings.Secure.STATS_COLLECTION -->
|
||||
- <bool name="def_stats_collection">true</bool>
|
||||
</resources>
|
107
Patches/Copperhead-13.0/cm_platform_sdk/1-fixed.patch
Normal file
107
Patches/Copperhead-13.0/cm_platform_sdk/1-fixed.patch
Normal file
@ -0,0 +1,107 @@
|
||||
From 882d5f332dfa9e0904c1e931440712fddbccf034 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Fri, 18 Dec 2015 20:27:11 -0500
|
||||
Subject: [PATCH] remove analytics support
|
||||
|
||||
Change-Id: Ie3e0541398747d43ab24bad9b9b93c81df4877b9
|
||||
---
|
||||
host/migration/src/CMSettings.java | 7 -------
|
||||
packages/CMSettingsProvider/res/values/defaults.xml | 5 +----
|
||||
.../src/org/cyanogenmod/cmsettings/CMDatabaseHelper.java | 3 ---
|
||||
src/java/cyanogenmod/providers/CMSettings.java | 13 -------------
|
||||
4 files changed, 1 insertion(+), 27 deletions(-)
|
||||
|
||||
diff --git a/host/migration/src/CMSettings.java b/host/migration/src/CMSettings.java
|
||||
index 0d57b0d..b4f5be9 100644
|
||||
--- a/host/migration/src/CMSettings.java
|
||||
+++ b/host/migration/src/CMSettings.java
|
||||
@@ -833,12 +833,6 @@ public final class CMSettings {
|
||||
public static final String QS_USE_MAIN_TILES = "sysui_qs_main_tiles";
|
||||
|
||||
/**
|
||||
- * Global stats collection
|
||||
- * @hide
|
||||
- */
|
||||
- public static final String STATS_COLLECTION = "stats_collection";
|
||||
-
|
||||
- /**
|
||||
* Boolean value whether to link ringtone and notification volume
|
||||
*
|
||||
* @hide
|
||||
@@ -1021,7 +1015,6 @@ public final class CMSettings {
|
||||
CMSettings.Secure.DEV_FORCE_SHOW_NAVBAR,
|
||||
CMSettings.Secure.KEYBOARD_BRIGHTNESS,
|
||||
CMSettings.Secure.POWER_MENU_ACTIONS,
|
||||
- CMSettings.Secure.STATS_COLLECTION,
|
||||
CMSettings.Secure.QS_SHOW_BRIGHTNESS_SLIDER,
|
||||
CMSettings.Secure.QS_TILES,
|
||||
CMSettings.Secure.QS_USE_MAIN_TILES,
|
||||
diff --git a/packages/CMSettingsProvider/res/values/defaults.xml b/packages/CMSettingsProvider/res/values/defaults.xml
|
||||
index 3a514f8..96af970 100644
|
||||
--- a/packages/CMSettingsProvider/res/values/defaults.xml
|
||||
+++ b/packages/CMSettingsProvider/res/values/defaults.xml
|
||||
@@ -41,9 +41,6 @@
|
||||
Comma-delimited, quick settings tiles. See QSConstants.java for a list of all available tiles -->
|
||||
<string name="def_qs_tiles">wifi,bt,cell,airplane,rotation,flashlight,location,cast,visualizer,hotspot,live_display</string>
|
||||
|
||||
- <!-- Default for CMSettings.Secure.STATS_COLLECTION -->
|
||||
- <bool name="def_stats_collection">false</bool>
|
||||
-
|
||||
<!-- Default for CMSettings.Secure.QS_USE_MAIN_TILES -->
|
||||
<bool name="def_sysui_qs_main_tiles">true</bool>
|
||||
|
||||
@@ -76,4 +73,4 @@
|
||||
<!-- Default value for whether or not to use multiple notification LEDs
|
||||
on devices equiped with more than one LED -->
|
||||
<bool name="def_notification_multiple_leds">false</bool>
|
||||
-</resources>
|
||||
\ No newline at end of file
|
||||
+</resources>
|
||||
diff --git a/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMDatabaseHelper.java b/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMDatabaseHelper.java
|
||||
index 5d40866..de0fe19 100644
|
||||
--- a/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMDatabaseHelper.java
|
||||
+++ b/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMDatabaseHelper.java
|
||||
@@ -234,9 +234,6 @@ public class CMDatabaseHelper extends SQLiteOpenHelper{
|
||||
loadBooleanSetting(db, CMTableNames.TABLE_SECURE, CMSettings.Secure.QS_USE_MAIN_TILES,
|
||||
R.bool.def_sysui_qs_main_tiles);
|
||||
|
||||
- loadBooleanSetting(db, CMTableNames.TABLE_SECURE, CMSettings.Secure.STATS_COLLECTION,
|
||||
- R.bool.def_stats_collection);
|
||||
-
|
||||
loadBooleanSetting(db, CMTableNames.TABLE_SECURE,
|
||||
CMSettings.Secure.LOCKSCREEN_VISUALIZER_ENABLED, R.bool.def_lockscreen_visualizer);
|
||||
}
|
||||
diff --git a/src/java/cyanogenmod/providers/CMSettings.java b/src/java/cyanogenmod/providers/CMSettings.java
|
||||
index 9da713b..9d63a9b 100644
|
||||
--- a/src/java/cyanogenmod/providers/CMSettings.java
|
||||
+++ b/src/java/cyanogenmod/providers/CMSettings.java
|
||||
@@ -2464,18 +2464,6 @@ public final class CMSettings {
|
||||
public static final String QS_USE_MAIN_TILES = "sysui_qs_main_tiles";
|
||||
|
||||
/**
|
||||
- * Global stats collection
|
||||
- * @hide
|
||||
- */
|
||||
- public static final String STATS_COLLECTION = "stats_collection";
|
||||
-
|
||||
- /**
|
||||
- * Whether the global stats collection setting has been successfully reported to server
|
||||
- * @hide
|
||||
- */
|
||||
- public static final String STATS_COLLECTION_REPORTED = "stats_collection_reported";
|
||||
-
|
||||
- /**
|
||||
* Whether newly installed apps should run with privacy guard by default
|
||||
* @hide
|
||||
*/
|
||||
@@ -2631,7 +2619,6 @@ public final class CMSettings {
|
||||
CMSettings.Secure.DEV_FORCE_SHOW_NAVBAR,
|
||||
CMSettings.Secure.KEYBOARD_BRIGHTNESS,
|
||||
CMSettings.Secure.POWER_MENU_ACTIONS,
|
||||
- CMSettings.Secure.STATS_COLLECTION,
|
||||
CMSettings.Secure.QS_SHOW_BRIGHTNESS_SLIDER,
|
||||
CMSettings.Secure.QS_TILES,
|
||||
CMSettings.Secure.QS_USE_MAIN_TILES,
|
||||
--
|
||||
2.6.4
|
||||
|
103
Patches/Copperhead-13.0/cm_platform_sdk/1.patch
Normal file
103
Patches/Copperhead-13.0/cm_platform_sdk/1.patch
Normal file
@ -0,0 +1,103 @@
|
||||
From fdea0fad552207679fc0981a937079b262bfc810 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Fri, 20 Nov 2015 00:13:11 -0500
|
||||
Subject: [PATCH] remove analytics support
|
||||
|
||||
---
|
||||
host/migration/src/CMSettings.java | 7 -------
|
||||
packages/CMSettingsProvider/res/values/defaults.xml | 5 +----
|
||||
.../src/org/cyanogenmod/cmsettings/CMDatabaseHelper.java | 3 ---
|
||||
src/java/cyanogenmod/providers/CMSettings.java | 13 -------------
|
||||
4 files changed, 1 insertion(+), 27 deletions(-)
|
||||
|
||||
diff --git a/host/migration/src/CMSettings.java b/host/migration/src/CMSettings.java
|
||||
index 0d57b0d..b4f5be9 100644
|
||||
--- a/host/migration/src/CMSettings.java
|
||||
+++ b/host/migration/src/CMSettings.java
|
||||
@@ -833,12 +833,6 @@ public static boolean isLegacySetting(String key) {
|
||||
public static final String QS_USE_MAIN_TILES = "sysui_qs_main_tiles";
|
||||
|
||||
/**
|
||||
- * Global stats collection
|
||||
- * @hide
|
||||
- */
|
||||
- public static final String STATS_COLLECTION = "stats_collection";
|
||||
-
|
||||
- /**
|
||||
* Boolean value whether to link ringtone and notification volume
|
||||
*
|
||||
* @hide
|
||||
@@ -1021,7 +1015,6 @@ public static boolean isLegacySetting(String key) {
|
||||
CMSettings.Secure.DEV_FORCE_SHOW_NAVBAR,
|
||||
CMSettings.Secure.KEYBOARD_BRIGHTNESS,
|
||||
CMSettings.Secure.POWER_MENU_ACTIONS,
|
||||
- CMSettings.Secure.STATS_COLLECTION,
|
||||
CMSettings.Secure.QS_SHOW_BRIGHTNESS_SLIDER,
|
||||
CMSettings.Secure.QS_TILES,
|
||||
CMSettings.Secure.QS_USE_MAIN_TILES,
|
||||
diff --git a/packages/CMSettingsProvider/res/values/defaults.xml b/packages/CMSettingsProvider/res/values/defaults.xml
|
||||
index ffc9c88..762abc1 100644
|
||||
--- a/packages/CMSettingsProvider/res/values/defaults.xml
|
||||
+++ b/packages/CMSettingsProvider/res/values/defaults.xml
|
||||
@@ -41,9 +41,6 @@
|
||||
Comma-delimited, quick settings tiles. See QSConstants.java for a list of all available tiles -->
|
||||
<string name="def_qs_tiles">wifi,bt,cell,airplane,rotation,flashlight,location,cast,visualizer,hotspot,live_display</string>
|
||||
|
||||
- <!-- Default for CMSettings.Secure.STATS_COLLECTION -->
|
||||
- <bool name="def_stats_collection">false</bool>
|
||||
-
|
||||
<!-- Default for CMSettings.Secure.QS_USE_MAIN_TILES -->
|
||||
<bool name="def_sysui_qs_main_tiles">true</bool>
|
||||
|
||||
@@ -73,4 +70,4 @@
|
||||
<!-- Default value for whether or not to use multiple notification LEDs
|
||||
on devices equiped with more than one LED -->
|
||||
<bool name="def_notification_multiple_leds">false</bool>
|
||||
-</resources>
|
||||
\ No newline at end of file
|
||||
+</resources>
|
||||
diff --git a/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMDatabaseHelper.java b/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMDatabaseHelper.java
|
||||
index 4257c42..baee50a 100644
|
||||
--- a/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMDatabaseHelper.java
|
||||
+++ b/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMDatabaseHelper.java
|
||||
@@ -233,9 +233,6 @@ private void loadSecureSettings(SQLiteDatabase db) {
|
||||
|
||||
loadBooleanSetting(db, CMTableNames.TABLE_SECURE, CMSettings.Secure.QS_USE_MAIN_TILES,
|
||||
R.bool.def_sysui_qs_main_tiles);
|
||||
-
|
||||
- loadBooleanSetting(db, CMTableNames.TABLE_SECURE, CMSettings.Secure.STATS_COLLECTION,
|
||||
- R.bool.def_stats_collection);
|
||||
}
|
||||
|
||||
private void loadSystemSettings(SQLiteDatabase db) {
|
||||
diff --git a/src/java/cyanogenmod/providers/CMSettings.java b/src/java/cyanogenmod/providers/CMSettings.java
|
||||
index 4b2fb7c..468b226 100644
|
||||
--- a/src/java/cyanogenmod/providers/CMSettings.java
|
||||
+++ b/src/java/cyanogenmod/providers/CMSettings.java
|
||||
@@ -2464,18 +2464,6 @@ public static boolean putFloatForUser(ContentResolver cr, String name, float val
|
||||
public static final String QS_USE_MAIN_TILES = "sysui_qs_main_tiles";
|
||||
|
||||
/**
|
||||
- * Global stats collection
|
||||
- * @hide
|
||||
- */
|
||||
- public static final String STATS_COLLECTION = "stats_collection";
|
||||
-
|
||||
- /**
|
||||
- * Whether the global stats collection setting has been successfully reported to server
|
||||
- * @hide
|
||||
- */
|
||||
- public static final String STATS_COLLECTION_REPORTED = "stats_collection_reported";
|
||||
-
|
||||
- /**
|
||||
* Boolean value whether to link ringtone and notification volume
|
||||
*
|
||||
* @hide
|
||||
@@ -2619,7 +2607,6 @@ public static boolean putFloatForUser(ContentResolver cr, String name, float val
|
||||
CMSettings.Secure.DEV_FORCE_SHOW_NAVBAR,
|
||||
CMSettings.Secure.KEYBOARD_BRIGHTNESS,
|
||||
CMSettings.Secure.POWER_MENU_ACTIONS,
|
||||
- CMSettings.Secure.STATS_COLLECTION,
|
||||
CMSettings.Secure.QS_SHOW_BRIGHTNESS_SLIDER,
|
||||
CMSettings.Secure.QS_TILES,
|
||||
CMSettings.Secure.QS_USE_MAIN_TILES,
|
40
Patches/CyanogenMod-11.0/android_device_zte_nex/Fixes.patch
Normal file
40
Patches/CyanogenMod-11.0/android_device_zte_nex/Fixes.patch
Normal file
@ -0,0 +1,40 @@
|
||||
From b003bf4b46743dc3b1b566196e8ee9ece4c1ade0 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Sun, 11 Dec 2016 22:15:28 -0500
|
||||
Subject: [PATCH] Fixes
|
||||
|
||||
Change-Id: I53c657f52a7c8fd39655a9acba8e9c0a633fd329
|
||||
---
|
||||
BoardConfig.mk | 5 +++++
|
||||
charger/Android.mk | 2 +-
|
||||
2 files changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/BoardConfig.mk b/BoardConfig.mk
|
||||
index 726c947..c11a418 100644
|
||||
--- a/BoardConfig.mk
|
||||
+++ b/BoardConfig.mk
|
||||
@@ -192,3 +192,8 @@ TW_FLASH_FROM_STORAGE := true
|
||||
TW_BRIGHTNESS_PATH := /sys/class/leds/lcd-backlight/brightness
|
||||
TW_MAX_BRIGHTNESS := 255
|
||||
TW_INPUT_BLACKLIST := lis3dh_acc
|
||||
+
|
||||
+# Use retire fence from MDP driver
|
||||
+TARGET_DISPLAY_USE_RETIRE_FENCE := true
|
||||
+
|
||||
+
|
||||
diff --git a/charger/Android.mk b/charger/Android.mk
|
||||
index 14c26dd..0fcc178 100644
|
||||
--- a/charger/Android.mk
|
||||
+++ b/charger/Android.mk
|
||||
@@ -20,7 +20,7 @@ LOCAL_STATIC_LIBRARIES := libminui libpixelflinger_static libpng
|
||||
ifeq ($(strip $(BOARD_CHARGER_ENABLE_SUSPEND)),true)
|
||||
LOCAL_STATIC_LIBRARIES += libsuspend
|
||||
endif
|
||||
-LOCAL_STATIC_LIBRARIES += libz libstdc++ libcutils liblog libm libc
|
||||
+LOCAL_STATIC_LIBRARIES += libz libstdc++ libcutils liblog libm libc libutils
|
||||
|
||||
include $(BUILD_EXECUTABLE)
|
||||
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,26 @@
|
||||
From fc786df1d3a1f6012863f042f34b2bc0b9a0bd2f Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Sun, 11 Dec 2016 23:23:58 -0500
|
||||
Subject: [PATCH] Change DPI
|
||||
|
||||
Change-Id: Ia9059e0b554fec09ab73f961b09cf6316aeaa9c9
|
||||
---
|
||||
system.prop | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/system.prop b/system.prop
|
||||
index 4f7a90c..9cdb394 100644
|
||||
--- a/system.prop
|
||||
+++ b/system.prop
|
||||
@@ -27,7 +27,7 @@ DEVICE_PROVISIONED=1
|
||||
debug.sf.hw=1
|
||||
debug.egl.hw=1
|
||||
debug.composition.type=gpu
|
||||
-ro.sf.lcd_density=240
|
||||
+ro.sf.lcd_density=180
|
||||
dalvik.vm.heapsize=36m
|
||||
debug.enable.wl_log=1
|
||||
debug.mdpcomp.maxlayer=4
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,25 @@
|
||||
From f67900ad9370a7e7f0186b3f459dad2c74db7aae Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Sun, 11 Dec 2016 23:15:20 -0500
|
||||
Subject: [PATCH] Fixes
|
||||
|
||||
Change-Id: I55eb4f1af258b649ddc36bd822d9b28f9fd64ce9
|
||||
---
|
||||
include/linux/msm_mdp.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/include/linux/msm_mdp.h b/include/linux/msm_mdp.h
|
||||
index 8f829ef..cf6d3d0 100644
|
||||
--- a/include/linux/msm_mdp.h
|
||||
+++ b/include/linux/msm_mdp.h
|
||||
@@ -574,6 +574,7 @@ struct mdp_buf_sync {
|
||||
uint32_t acq_fen_fd_cnt;
|
||||
int *acq_fen_fd;
|
||||
int *rel_fen_fd;
|
||||
+ int *retire_fen_fd;
|
||||
};
|
||||
|
||||
struct mdp_buf_fence {
|
||||
--
|
||||
2.9.3
|
||||
|
369
Patches/CyanogenMod-11.0/android_kernel_zte_msm8930/OC.patch
Normal file
369
Patches/CyanogenMod-11.0/android_kernel_zte_msm8930/OC.patch
Normal file
@ -0,0 +1,369 @@
|
||||
From 7c00691c59e2a760c6d780bed116ee34717f0233 Mon Sep 17 00:00:00 2001
|
||||
From: "H. Peter Anvin" <hpa@linux.intel.com>
|
||||
Date: Thu, 7 Feb 2013 17:14:08 -0800
|
||||
Subject: [PATCH 1/4] timeconst.pl: Eliminate Perl warning
|
||||
|
||||
commit 63a3f603413ffe82ad775f2d62a5afff87fd94a0 upstream.
|
||||
|
||||
defined(@array) is deprecated in Perl and gives off a warning.
|
||||
Restructure the code to remove that warning.
|
||||
|
||||
[ hpa: it would be interesting to revert to the timeconst.bc script.
|
||||
It appears that the failures reported by akpm during testing of
|
||||
that script was due to a known broken version of make, not a problem
|
||||
with bc. The Makefile rules could probably be restructured to avoid
|
||||
the make bug, or it is probably old enough that it doesn't matter. ]
|
||||
|
||||
Reported-by: Andi Kleen <ak@linux.intel.com>
|
||||
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
||||
Cc: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
kernel/timeconst.pl | 6 ++----
|
||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/kernel/timeconst.pl b/kernel/timeconst.pl
|
||||
index eb51d76..3f42652 100644
|
||||
--- a/kernel/timeconst.pl
|
||||
+++ b/kernel/timeconst.pl
|
||||
@@ -369,10 +369,8 @@ if ($hz eq '--can') {
|
||||
die "Usage: $0 HZ\n";
|
||||
}
|
||||
|
||||
- @val = @{$canned_values{$hz}};
|
||||
- if (!defined(@val)) {
|
||||
- @val = compute_values($hz);
|
||||
- }
|
||||
+ $cv = $canned_values{$hz};
|
||||
+ @val = defined($cv) ? @$cv : compute_values($hz);
|
||||
output($hz, @val);
|
||||
}
|
||||
exit 0;
|
||||
--
|
||||
2.9.3
|
||||
|
||||
|
||||
From 40bdf0ee06c0a50dc1fd6b830244a81b519fab45 Mon Sep 17 00:00:00 2001
|
||||
From: superr <superr@ddayweb.com>
|
||||
Date: Fri, 27 Mar 2015 15:39:54 -0500
|
||||
Subject: [PATCH 2/4] Add OC
|
||||
|
||||
---
|
||||
arch/arm/mach-msm/acpuclock-8930.c | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-8930.c b/arch/arm/mach-msm/acpuclock-8930.c
|
||||
index 2dfb3dd..0b35c76 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-8930.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-8930.c
|
||||
@@ -149,6 +149,8 @@ static struct l2_level l2_freq_tbl[] __initdata = {
|
||||
[13] = { { 1080000, HFPLL, 1, 0x28 }, LVL_HIGH, 1150000, 7 },
|
||||
[14] = { { 1134000, HFPLL, 1, 0x2A }, LVL_HIGH, 1150000, 7 },
|
||||
[15] = { { 1188000, HFPLL, 1, 0x2C }, LVL_HIGH, 1150000, 7 },
|
||||
+ [16] = { { 1242000, HFPLL, 1, 0x30 }, LVL_HIGH, 1150000, 7 },
|
||||
+ [17] = { { 1296000, HFPLL, 1, 0x32 }, LVL_HIGH, 1150000, 7 },
|
||||
{ }
|
||||
};
|
||||
|
||||
@@ -169,6 +171,10 @@ static struct acpu_level acpu_freq_tbl_slow[] __initdata = {
|
||||
{ 0, { 1080000, HFPLL, 1, 0x28 }, L2(15), 1175000 },
|
||||
{ 1, { 1134000, HFPLL, 1, 0x2A }, L2(15), 1175000 },
|
||||
{ 1, { 1188000, HFPLL, 1, 0x2C }, L2(15), 1200000 },
|
||||
+ { 1, { 1300000, HFPLL, 1, 0x30 }, L2(15), 1225000 },
|
||||
+ { 1, { 1400000, HFPLL, 1, 0x32 }, L2(15), 1237500 },
|
||||
+ { 1, { 1500000, HFPLL, 1, 0x34 }, L2(15), 1250000 },
|
||||
+ { 1, { 1600000, HFPLL, 1, 0x36 }, L2(15), 1275000 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
@@ -189,6 +195,10 @@ static struct acpu_level acpu_freq_tbl_nom[] __initdata = {
|
||||
{ 0, { 1080000, HFPLL, 1, 0x28 }, L2(15), 1150000 },
|
||||
{ 1, { 1134000, HFPLL, 1, 0x2A }, L2(15), 1150000 },
|
||||
{ 1, { 1188000, HFPLL, 1, 0x2C }, L2(15), 1175000 },
|
||||
+ { 1, { 1300000, HFPLL, 1, 0x30 }, L2(15), 1200000 },
|
||||
+ { 1, { 1400000, HFPLL, 1, 0x32 }, L2(15), 1212500 },
|
||||
+ { 1, { 1500000, HFPLL, 1, 0x34 }, L2(15), 1225000 },
|
||||
+ { 1, { 1600000, HFPLL, 1, 0x36 }, L2(15), 1250000 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
@@ -209,6 +219,10 @@ static struct acpu_level acpu_freq_tbl_fast[] __initdata = {
|
||||
{ 0, { 1080000, HFPLL, 1, 0x28 }, L2(15), 1100000 },
|
||||
{ 1, { 1134000, HFPLL, 1, 0x2A }, L2(15), 1100000 },
|
||||
{ 1, { 1188000, HFPLL, 1, 0x2C }, L2(15), 1125000 },
|
||||
+ { 1, { 1300000, HFPLL, 1, 0x30 }, L2(15), 1150000 },
|
||||
+ { 1, { 1400000, HFPLL, 1, 0x32 }, L2(15), 1162500 },
|
||||
+ { 1, { 1500000, HFPLL, 1, 0x34 }, L2(15), 1175000 },
|
||||
+ { 1, { 1600000, HFPLL, 1, 0x36 }, L2(15), 1200000 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
--
|
||||
2.9.3
|
||||
|
||||
|
||||
From 37a6b5c7a19d1fe2411e25983a708be6027dbfe7 Mon Sep 17 00:00:00 2001
|
||||
From: superr <superr@ddayweb.com>
|
||||
Date: Sat, 28 Mar 2015 09:34:32 -0500
|
||||
Subject: [PATCH 3/4] OC to 2GHz
|
||||
|
||||
---
|
||||
arch/arm/mach-msm/acpuclock-8930.c | 96 ++++++++++++++++++++++++--------------
|
||||
1 file changed, 62 insertions(+), 34 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-8930.c b/arch/arm/mach-msm/acpuclock-8930.c
|
||||
index 0b35c76..9067efc 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-8930.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-8930.c
|
||||
@@ -123,6 +123,9 @@ static struct msm_bus_paths bw_level_tbl[] __initdata = {
|
||||
[5] = BW_MBPS(3600), /* At least 450 MHz on bus. */
|
||||
[6] = BW_MBPS(3936), /* At least 492 MHz on bus. */
|
||||
[7] = BW_MBPS(4264), /* At least 533 MHz on bus. */
|
||||
+ [8] = BW_MBPS(4532), /* At least 566 MHz on bus. */
|
||||
+ [9] = BW_MBPS(4624), /* At least 578 MHz on bus. */
|
||||
+ [10] = BW_MBPS(4800), /* At least 600 MHz on bus. */
|
||||
};
|
||||
|
||||
static struct msm_bus_scale_pdata bus_scale_data __initdata = {
|
||||
@@ -133,24 +136,25 @@ static struct msm_bus_scale_pdata bus_scale_data __initdata = {
|
||||
};
|
||||
|
||||
static struct l2_level l2_freq_tbl[] __initdata = {
|
||||
- [0] = { { 384000, PLL_8, 0, 0x00 }, LVL_LOW, 1050000, 1 },
|
||||
- [1] = { { 432000, HFPLL, 2, 0x20 }, LVL_NOM, 1050000, 2 },
|
||||
- [2] = { { 486000, HFPLL, 2, 0x24 }, LVL_NOM, 1050000, 2 },
|
||||
- [3] = { { 540000, HFPLL, 2, 0x28 }, LVL_NOM, 1050000, 2 },
|
||||
- [4] = { { 594000, HFPLL, 1, 0x16 }, LVL_NOM, 1050000, 2 },
|
||||
- [5] = { { 648000, HFPLL, 1, 0x18 }, LVL_NOM, 1050000, 4 },
|
||||
- [6] = { { 702000, HFPLL, 1, 0x1A }, LVL_NOM, 1050000, 4 },
|
||||
- [7] = { { 756000, HFPLL, 1, 0x1C }, LVL_HIGH, 1150000, 4 },
|
||||
- [8] = { { 810000, HFPLL, 1, 0x1E }, LVL_HIGH, 1150000, 4 },
|
||||
- [9] = { { 864000, HFPLL, 1, 0x20 }, LVL_HIGH, 1150000, 4 },
|
||||
- [10] = { { 918000, HFPLL, 1, 0x22 }, LVL_HIGH, 1150000, 7 },
|
||||
- [11] = { { 972000, HFPLL, 1, 0x24 }, LVL_HIGH, 1150000, 7 },
|
||||
- [12] = { { 1026000, HFPLL, 1, 0x26 }, LVL_HIGH, 1150000, 7 },
|
||||
- [13] = { { 1080000, HFPLL, 1, 0x28 }, LVL_HIGH, 1150000, 7 },
|
||||
- [14] = { { 1134000, HFPLL, 1, 0x2A }, LVL_HIGH, 1150000, 7 },
|
||||
- [15] = { { 1188000, HFPLL, 1, 0x2C }, LVL_HIGH, 1150000, 7 },
|
||||
- [16] = { { 1242000, HFPLL, 1, 0x30 }, LVL_HIGH, 1150000, 7 },
|
||||
- [17] = { { 1296000, HFPLL, 1, 0x32 }, LVL_HIGH, 1150000, 7 },
|
||||
+ [0] = { { 384000, PLL_8, 0, 0x00 }, LVL_LOW, 1050000, 1 }, //133mhz fsb
|
||||
+ [1] = { { 432000, HFPLL, 2, 0x20 }, LVL_NOM, 1050000, 2 }, //266mhz fsb
|
||||
+ [2] = { { 486000, HFPLL, 2, 0x24 }, LVL_NOM, 1050000, 2 }, //266mhz fsb
|
||||
+ [3] = { { 540000, HFPLL, 2, 0x28 }, LVL_NOM, 1050000, 2 }, //266mhz fsb
|
||||
+ [4] = { { 594000, HFPLL, 1, 0x16 }, LVL_NOM, 1050000, 2 }, //266mhz fsb
|
||||
+ [5] = { { 648000, HFPLL, 1, 0x18 }, LVL_NOM, 1050000, 4 }, //400mhz fsb
|
||||
+ [6] = { { 702000, HFPLL, 1, 0x1A }, LVL_NOM, 1050000, 4 }, //400mhz fsb
|
||||
+ [7] = { { 756000, HFPLL, 1, 0x1C }, LVL_HIGH, 1150000, 4 }, //400mhz fsb
|
||||
+ [8] = { { 810000, HFPLL, 1, 0x1E }, LVL_HIGH, 1150000, 4 }, //400mhz fsb
|
||||
+ [9] = { { 864000, HFPLL, 1, 0x20 }, LVL_HIGH, 1150000, 4 }, //400mhz fsb
|
||||
+ [10] = { { 918000, HFPLL, 1, 0x22 }, LVL_HIGH, 1150000, 7 }, //533mhz fsb
|
||||
+ [11] = { { 972000, HFPLL, 1, 0x24 }, LVL_HIGH, 1150000, 7 }, //533mhz fsb
|
||||
+ [12] = { { 1026000, HFPLL, 1, 0x26 }, LVL_HIGH, 1150000, 7 }, //533mhz fsb
|
||||
+ [13] = { { 1080000, HFPLL, 1, 0x28 }, LVL_HIGH, 1150000, 7 }, //533mhz fsb
|
||||
+ [14] = { { 1134000, HFPLL, 1, 0x2A }, LVL_HIGH, 1150000, 7 }, //533mhz fsb
|
||||
+ [15] = { { 1188000, HFPLL, 1, 0x2C }, LVL_HIGH, 1150000, 7 }, //533mhz fsb
|
||||
+ [16] = { { 1242000, HFPLL, 1, 0x2E }, LVL_HIGH, 1150000, 7 },
|
||||
+ [17] = { { 1296000, HFPLL, 1, 0x30 }, LVL_HIGH, 1150000, 7 },
|
||||
+ [18] = { { 1350000, HFPLL, 1, 0x32 }, LVL_HIGH, 1150000, 10 }, //600mhz fsb
|
||||
{ }
|
||||
};
|
||||
|
||||
@@ -171,14 +175,13 @@ static struct acpu_level acpu_freq_tbl_slow[] __initdata = {
|
||||
{ 0, { 1080000, HFPLL, 1, 0x28 }, L2(15), 1175000 },
|
||||
{ 1, { 1134000, HFPLL, 1, 0x2A }, L2(15), 1175000 },
|
||||
{ 1, { 1188000, HFPLL, 1, 0x2C }, L2(15), 1200000 },
|
||||
- { 1, { 1300000, HFPLL, 1, 0x30 }, L2(15), 1225000 },
|
||||
- { 1, { 1400000, HFPLL, 1, 0x32 }, L2(15), 1237500 },
|
||||
- { 1, { 1500000, HFPLL, 1, 0x34 }, L2(15), 1250000 },
|
||||
- { 1, { 1600000, HFPLL, 1, 0x36 }, L2(15), 1275000 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
static struct acpu_level acpu_freq_tbl_nom[] __initdata = {
|
||||
+ { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 875000 },
|
||||
+ { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 900000 },
|
||||
+ { 0, { 378000, HFPLL, 2, 0x1C }, L2(0), 925000 },
|
||||
{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 925000 },
|
||||
{ 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 950000 },
|
||||
{ 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 950000 },
|
||||
@@ -193,17 +196,31 @@ static struct acpu_level acpu_freq_tbl_nom[] __initdata = {
|
||||
{ 0, { 972000, HFPLL, 1, 0x24 }, L2(10), 1100000 },
|
||||
{ 1, { 1026000, HFPLL, 1, 0x26 }, L2(10), 1100000 },
|
||||
{ 0, { 1080000, HFPLL, 1, 0x28 }, L2(15), 1150000 },
|
||||
- { 1, { 1134000, HFPLL, 1, 0x2A }, L2(15), 1150000 },
|
||||
- { 1, { 1188000, HFPLL, 1, 0x2C }, L2(15), 1175000 },
|
||||
- { 1, { 1300000, HFPLL, 1, 0x30 }, L2(15), 1200000 },
|
||||
- { 1, { 1400000, HFPLL, 1, 0x32 }, L2(15), 1212500 },
|
||||
- { 1, { 1500000, HFPLL, 1, 0x34 }, L2(15), 1225000 },
|
||||
- { 1, { 1600000, HFPLL, 1, 0x36 }, L2(15), 1250000 },
|
||||
+ { 0, { 1134000, HFPLL, 1, 0x2A }, L2(15), 1150000 },
|
||||
+ { 1, { 1188000, HFPLL, 1, 0x2C }, L2(15), 1150000 },
|
||||
+ { 1, { 1242000, HFPLL, 1, 0x2E }, L2(18), 1150000 },
|
||||
+ { 0, { 1296000, HFPLL, 1, 0x30 }, L2(18), 1175000 },
|
||||
+ { 1, { 1350000, HFPLL, 1, 0x32 }, L2(18), 1175000 },
|
||||
+ { 0, { 1404000, HFPLL, 1, 0x34 }, L2(18), 1187500 },
|
||||
+ { 1, { 1458000, HFPLL, 1, 0x36 }, L2(18), 1187500 },
|
||||
+ { 1, { 1512000, HFPLL, 1, 0x38 }, L2(18), 1200000 },
|
||||
+ { 1, { 1566000, HFPLL, 1, 0x3A }, L2(18), 1225000 },
|
||||
+ { 1, { 1620000, HFPLL, 1, 0x3C }, L2(18), 1237500 },
|
||||
+ { 1, { 1674000, HFPLL, 1, 0x3E }, L2(18), 1250000 },
|
||||
+ { 1, { 1728000, HFPLL, 1, 0x40 }, L2(18), 1267500 },
|
||||
+ { 1, { 1836000, HFPLL, 1, 0x44 }, L2(18), 1275000 },
|
||||
+ { 1, { 1890000, HFPLL, 1, 0x46 }, L2(18), 1300000 },
|
||||
+ { 1, { 1944000, HFPLL, 1, 0x48 }, L2(18), 1312500 },
|
||||
+ { 1, { 1998000, HFPLL, 1, 0x4A }, L2(18), 1325000 },
|
||||
+ { 1, { 2052000, HFPLL, 1, 0x4C }, L2(18), 1337500 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
static struct acpu_level acpu_freq_tbl_fast[] __initdata = {
|
||||
- { 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 900000 },
|
||||
+ { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 850000 },
|
||||
+ { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 875000 },
|
||||
+ { 0, { 378000, HFPLL, 2, 0x1C }, L2(0), 900000 },
|
||||
+ { 0, { 384000, PLL_8, 0, 0x00 }, L2(0), 900000 },
|
||||
{ 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 900000 },
|
||||
{ 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 900000 },
|
||||
{ 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 925000 },
|
||||
@@ -218,11 +235,22 @@ static struct acpu_level acpu_freq_tbl_fast[] __initdata = {
|
||||
{ 1, { 1026000, HFPLL, 1, 0x26 }, L2(10), 1050000 },
|
||||
{ 0, { 1080000, HFPLL, 1, 0x28 }, L2(15), 1100000 },
|
||||
{ 1, { 1134000, HFPLL, 1, 0x2A }, L2(15), 1100000 },
|
||||
- { 1, { 1188000, HFPLL, 1, 0x2C }, L2(15), 1125000 },
|
||||
- { 1, { 1300000, HFPLL, 1, 0x30 }, L2(15), 1150000 },
|
||||
- { 1, { 1400000, HFPLL, 1, 0x32 }, L2(15), 1162500 },
|
||||
- { 1, { 1500000, HFPLL, 1, 0x34 }, L2(15), 1175000 },
|
||||
- { 1, { 1600000, HFPLL, 1, 0x36 }, L2(15), 1200000 },
|
||||
+ { 0, { 1188000, HFPLL, 1, 0x2C }, L2(15), 1125000 },
|
||||
+ { 0, { 1242000, HFPLL, 1, 0x2E }, L2(18), 1125000 },
|
||||
+ { 0, { 1296000, HFPLL, 1, 0x30 }, L2(18), 1125000 },
|
||||
+ { 1, { 1350000, HFPLL, 1, 0x32 }, L2(18), 1125000 },
|
||||
+ { 0, { 1404000, HFPLL, 1, 0x34 }, L2(18), 1137500 },
|
||||
+ { 1, { 1458000, HFPLL, 1, 0x36 }, L2(18), 1137500 },
|
||||
+ { 1, { 1512000, HFPLL, 1, 0x38 }, L2(18), 1150000 },
|
||||
+ { 1, { 1566000, HFPLL, 1, 0x3A }, L2(18), 1175000 },
|
||||
+ { 1, { 1620000, HFPLL, 1, 0x3C }, L2(18), 1190000 },
|
||||
+ { 1, { 1674000, HFPLL, 1, 0x3E }, L2(18), 1200000 },
|
||||
+ { 1, { 1728000, HFPLL, 1, 0x40 }, L2(18), 1225000 },
|
||||
+ { 1, { 1836000, HFPLL, 1, 0x44 }, L2(18), 1250000 },
|
||||
+ { 1, { 1890000, HFPLL, 1, 0x46 }, L2(18), 1275000 },
|
||||
+ { 1, { 1944000, HFPLL, 1, 0x48 }, L2(18), 1312500 },
|
||||
+ { 1, { 1998000, HFPLL, 1, 0x4A }, L2(18), 1325000 },
|
||||
+ { 1, { 2052000, HFPLL, 1, 0x4C }, L2(18), 1337500 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
--
|
||||
2.9.3
|
||||
|
||||
|
||||
From 9e64678050785692e766e29c11bfe4c7d1e72995 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Sun, 11 Dec 2016 20:41:35 -0500
|
||||
Subject: [PATCH 4/4] Max OC
|
||||
|
||||
Change-Id: I6e2089eb1f8de9200964acd6271649f6af70edfd
|
||||
---
|
||||
arch/arm/mach-msm/acpuclock-8930.c | 9 +++++----
|
||||
arch/arm/mach-msm/acpuclock-krait.c | 2 +-
|
||||
arch/arm/mach-msm/board-8930-regulator-pm8038.c | 4 ++--
|
||||
arch/arm/mach-msm/board-8930-regulator-pm8917.c | 4 ++--
|
||||
4 files changed, 10 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-8930.c b/arch/arm/mach-msm/acpuclock-8930.c
|
||||
index 9067efc..693a254 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-8930.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-8930.c
|
||||
@@ -52,7 +52,7 @@ static struct scalable scalable_pm8917[] __initdata = {
|
||||
.aux_clk_sel = 3,
|
||||
.sec_clk_sel = 2,
|
||||
.l2cpmr_iaddr = 0x4501,
|
||||
- .vreg[VREG_CORE] = { "krait0", 1300000 },
|
||||
+ .vreg[VREG_CORE] = { "krait0", 1400000 },
|
||||
.vreg[VREG_MEM] = { "krait0_mem", 1150000 },
|
||||
.vreg[VREG_DIG] = { "krait0_dig", 1150000 },
|
||||
.vreg[VREG_HFPLL_A] = { "krait0_s8", 2050000 },
|
||||
@@ -64,7 +64,7 @@ static struct scalable scalable_pm8917[] __initdata = {
|
||||
.aux_clk_sel = 3,
|
||||
.sec_clk_sel = 2,
|
||||
.l2cpmr_iaddr = 0x5501,
|
||||
- .vreg[VREG_CORE] = { "krait1", 1300000 },
|
||||
+ .vreg[VREG_CORE] = { "krait1", 1400000 },
|
||||
.vreg[VREG_MEM] = { "krait1_mem", 1150000 },
|
||||
.vreg[VREG_DIG] = { "krait1_dig", 1150000 },
|
||||
.vreg[VREG_HFPLL_A] = { "krait1_s8", 2050000 },
|
||||
@@ -88,7 +88,7 @@ static struct scalable scalable[] __initdata = {
|
||||
.aux_clk_sel = 3,
|
||||
.sec_clk_sel = 2,
|
||||
.l2cpmr_iaddr = 0x4501,
|
||||
- .vreg[VREG_CORE] = { "krait0", 1300000 },
|
||||
+ .vreg[VREG_CORE] = { "krait0", 1400000 },
|
||||
.vreg[VREG_MEM] = { "krait0_mem", 1150000 },
|
||||
.vreg[VREG_DIG] = { "krait0_dig", 1150000 },
|
||||
.vreg[VREG_HFPLL_A] = { "krait0_hfpll", 1800000 },
|
||||
@@ -99,7 +99,7 @@ static struct scalable scalable[] __initdata = {
|
||||
.aux_clk_sel = 3,
|
||||
.sec_clk_sel = 2,
|
||||
.l2cpmr_iaddr = 0x5501,
|
||||
- .vreg[VREG_CORE] = { "krait1", 1300000 },
|
||||
+ .vreg[VREG_CORE] = { "krait1", 1400000 },
|
||||
.vreg[VREG_MEM] = { "krait1_mem", 1150000 },
|
||||
.vreg[VREG_DIG] = { "krait1_dig", 1150000 },
|
||||
.vreg[VREG_HFPLL_A] = { "krait1_hfpll", 1800000 },
|
||||
@@ -126,6 +126,7 @@ static struct msm_bus_paths bw_level_tbl[] __initdata = {
|
||||
[8] = BW_MBPS(4532), /* At least 566 MHz on bus. */
|
||||
[9] = BW_MBPS(4624), /* At least 578 MHz on bus. */
|
||||
[10] = BW_MBPS(4800), /* At least 600 MHz on bus. */
|
||||
+ [11] = BW_MBPS(5336), /* At least 667 MHz on bus. */
|
||||
};
|
||||
|
||||
static struct msm_bus_scale_pdata bus_scale_data __initdata = {
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-krait.c b/arch/arm/mach-msm/acpuclock-krait.c
|
||||
index f216ee5..cfbf338 100755
|
||||
--- a/arch/arm/mach-msm/acpuclock-krait.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-krait.c
|
||||
@@ -932,7 +932,7 @@ static void __init bus_init(const struct l2_level *l2_level)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_CPU_FREQ_MSM
|
||||
-static struct cpufreq_frequency_table freq_table[NR_CPUS][35];
|
||||
+static struct cpufreq_frequency_table freq_table[NR_CPUS][53];
|
||||
|
||||
static void __init cpufreq_table_init(void)
|
||||
{
|
||||
diff --git a/arch/arm/mach-msm/board-8930-regulator-pm8038.c b/arch/arm/mach-msm/board-8930-regulator-pm8038.c
|
||||
index 4cf0f54..b5a6602 100755
|
||||
--- a/arch/arm/mach-msm/board-8930-regulator-pm8038.c
|
||||
+++ b/arch/arm/mach-msm/board-8930-regulator-pm8038.c
|
||||
@@ -541,9 +541,9 @@ msm8930_pm8038_gpio_regulator_pdata[] __devinitdata = {
|
||||
/* SAW regulator constraints */
|
||||
struct regulator_init_data msm8930_pm8038_saw_regulator_core0_pdata =
|
||||
/* ID vreg_name min_uV max_uV */
|
||||
- SAW_VREG_INIT(S5, "8038_s5", 850000, 1300000);
|
||||
+ SAW_VREG_INIT(S5, "8038_s5", 850000, 1400000);
|
||||
struct regulator_init_data msm8930_pm8038_saw_regulator_core1_pdata =
|
||||
- SAW_VREG_INIT(S6, "8038_s6", 850000, 1300000);
|
||||
+ SAW_VREG_INIT(S6, "8038_s6", 850000, 1400000);
|
||||
|
||||
/* PM8038 regulator constraints */
|
||||
struct pm8xxx_regulator_platform_data
|
||||
diff --git a/arch/arm/mach-msm/board-8930-regulator-pm8917.c b/arch/arm/mach-msm/board-8930-regulator-pm8917.c
|
||||
index b0dedad..ce3a17f 100644
|
||||
--- a/arch/arm/mach-msm/board-8930-regulator-pm8917.c
|
||||
+++ b/arch/arm/mach-msm/board-8930-regulator-pm8917.c
|
||||
@@ -501,9 +501,9 @@ msm8930_pm8917_gpio_regulator_pdata[] __devinitdata = {
|
||||
/* SAW regulator constraints */
|
||||
struct regulator_init_data msm8930_pm8917_saw_regulator_core0_pdata =
|
||||
/* ID vreg_name min_uV max_uV */
|
||||
- SAW_VREG_INIT(S5, "8917_s5", 850000, 1300000);
|
||||
+ SAW_VREG_INIT(S5, "8917_s5", 850000, 1400000);
|
||||
struct regulator_init_data msm8930_pm8917_saw_regulator_core1_pdata =
|
||||
- SAW_VREG_INIT(S6, "8917_s6", 850000, 1300000);
|
||||
+ SAW_VREG_INIT(S6, "8917_s6", 850000, 1400000);
|
||||
|
||||
/* PM8917 regulator constraints */
|
||||
struct pm8xxx_regulator_platform_data
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,41 @@
|
||||
From 526a26556b9069238ea7eecb9095cc672daef0e5 Mon Sep 17 00:00:00 2001
|
||||
From: "H. Peter Anvin" <hpa@linux.intel.com>
|
||||
Date: Thu, 7 Feb 2013 17:14:08 -0800
|
||||
Subject: [PATCH] timeconst.pl: Eliminate Perl warning
|
||||
|
||||
commit 63a3f603413ffe82ad775f2d62a5afff87fd94a0 upstream.
|
||||
|
||||
defined(@array) is deprecated in Perl and gives off a warning.
|
||||
Restructure the code to remove that warning.
|
||||
|
||||
[ hpa: it would be interesting to revert to the timeconst.bc script.
|
||||
It appears that the failures reported by akpm during testing of
|
||||
that script was due to a known broken version of make, not a problem
|
||||
with bc. The Makefile rules could probably be restructured to avoid
|
||||
the make bug, or it is probably old enough that it doesn't matter. ]
|
||||
|
||||
Reported-by: Andi Kleen <ak@linux.intel.com>
|
||||
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
||||
Cc: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
kernel/timeconst.pl | 6 ++----
|
||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/kernel/timeconst.pl b/kernel/timeconst.pl
|
||||
index eb51d76..3f42652 100644
|
||||
--- a/kernel/timeconst.pl
|
||||
+++ b/kernel/timeconst.pl
|
||||
@@ -369,10 +369,8 @@ (@)
|
||||
die "Usage: $0 HZ\n";
|
||||
}
|
||||
|
||||
- @val = @{$canned_values{$hz}};
|
||||
- if (!defined(@val)) {
|
||||
- @val = compute_values($hz);
|
||||
- }
|
||||
+ $cv = $canned_values{$hz};
|
||||
+ @val = defined($cv) ? @$cv : compute_values($hz);
|
||||
output($hz, @val);
|
||||
}
|
||||
exit 0;
|
@ -0,0 +1,28 @@
|
||||
From cadb44f5ff20d3e32c5eece6b6185a507f4e8bbf Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Tue, 5 Jan 2016 20:06:35 -0500
|
||||
Subject: [PATCH] Change toolchain
|
||||
|
||||
Change-Id: Ib6df0dc6af32c755f828f4cfe9204a87b01c4551
|
||||
---
|
||||
core/combo/TARGET_linux-arm.mk | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/core/combo/TARGET_linux-arm.mk b/core/combo/TARGET_linux-arm.mk
|
||||
index 5020865..dcc2e9a 100644
|
||||
--- a/core/combo/TARGET_linux-arm.mk
|
||||
+++ b/core/combo/TARGET_linux-arm.mk
|
||||
@@ -38,8 +38,8 @@ endif
|
||||
$(combo_2nd_arch_prefix)TARGET_NDK_GCC_VERSION := 4.9
|
||||
|
||||
ifeq ($(strip $(TARGET_GCC_VERSION_EXP)),)
|
||||
-$(combo_2nd_arch_prefix)TARGET_GCC_VERSION := 4.9
|
||||
-$(combo_2nd_arch_prefix)TARGET_LEGACY_GCC_VERSION := 4.8
|
||||
+$(combo_2nd_arch_prefix)TARGET_GCC_VERSION := 4.9-cortex-a15
|
||||
+$(combo_2nd_arch_prefix)TARGET_LEGACY_GCC_VERSION := 4.8-cortex-a15
|
||||
else
|
||||
$(combo_2nd_arch_prefix)TARGET_GCC_VERSION := $(TARGET_GCC_VERSION_EXP)
|
||||
endif
|
||||
--
|
||||
2.6.4
|
||||
|
26
Patches/CyanogenMod-13.0/android_build/Disable_Opt.patch
Normal file
26
Patches/CyanogenMod-13.0/android_build/Disable_Opt.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From d90bf77e8215c26ae50c221ae346894bc8b37568 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Thu, 25 Feb 2016 05:59:06 -0500
|
||||
Subject: [PATCH] Disable 5.3 opt
|
||||
|
||||
Change-Id: I166e24efeeeec3555efbadf590363bc40fb5468c
|
||||
---
|
||||
core/archidroid.mk | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/core/archidroid.mk b/core/archidroid.mk
|
||||
index 9ab4918..29bd257 100644
|
||||
--- a/core/archidroid.mk
|
||||
+++ b/core/archidroid.mk
|
||||
@@ -45,7 +45,7 @@ ARCHIDROID_GCC_LDFLAGS := -Wl,-O3 -Wl,--as-needed -Wl,--gc-sections -Wl,--relax
|
||||
# Flags below are applied to specific targets only, use them if your flag is not compatible for both compilers
|
||||
|
||||
# We use GCC 5.3 for arm-linux-androideabi, make sure to remove flags below if you decided to stick with 4.9
|
||||
-ARCHIDROID_GCC_CFLAGS_32 := -Wno-error=bool-compare -Wno-error=logical-not-parentheses -Wno-error=sizeof-array-argument
|
||||
+#ARCHIDROID_GCC_CFLAGS_32 := -Wno-error=bool-compare -Wno-error=logical-not-parentheses -Wno-error=sizeof-array-argument
|
||||
|
||||
# We use GCC 4.9 for aarch64-linux-android, so we don't have any extra flags for it
|
||||
ARCHIDROID_GCC_CFLAGS_64 :=
|
||||
--
|
||||
2.5.0
|
||||
|
26
Patches/CyanogenMod-13.0/android_build/Enable_Graphite.patch
Normal file
26
Patches/CyanogenMod-13.0/android_build/Enable_Graphite.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 8076f19e43061cbc363c7a01f4485c65a266ab57 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Thu, 25 Feb 2016 19:40:24 -0500
|
||||
Subject: [PATCH] Enable graphite
|
||||
|
||||
Change-Id: I799412c31dd0c30050657fbc6f1d0daec8d4d54c
|
||||
---
|
||||
core/archidroid.mk | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/core/archidroid.mk b/core/archidroid.mk
|
||||
index 9ab4918..2ace5f1 100644
|
||||
--- a/core/archidroid.mk
|
||||
+++ b/core/archidroid.mk
|
||||
@@ -64,7 +64,7 @@ ARCHIDROID_GCC_CFLAGS_64 :=
|
||||
# ARCHIDROID_GCC_CFLAGS += -ftracer -funroll-loops
|
||||
|
||||
# These flags may cause ICEs in some compilers, but work fine in other ones, test carefully
|
||||
-# ARCHIDROID_GCC_CFLAGS += -fgraphite -fgraphite-identity
|
||||
+ARCHIDROID_GCC_CFLAGS += -fgraphite -fgraphite-identity
|
||||
|
||||
# The following flags (-floop) require that your GCC has been configured --with-isl
|
||||
# Additionally, applying any of them will most likely cause ICE in your compiler, so they're disabled
|
||||
--
|
||||
2.5.0
|
||||
|
19
Patches/CyanogenMod-13.0/android_build/Silence.patch
Normal file
19
Patches/CyanogenMod-13.0/android_build/Silence.patch
Normal file
@ -0,0 +1,19 @@
|
||||
From 2b18a46758ef5e6bc377315cd9bf8d08d1dd5b17 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Mon, 4 Jan 2016 07:41:10 -0500
|
||||
Subject: [PATCH] switch to SMSSecure as the messaging app
|
||||
|
||||
---
|
||||
target/product/aosp_base_telephony.mk | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/target/product/aosp_base_telephony.mk b/target/product/aosp_base_telephony.mk
|
||||
index 0d4e333..f43eec5 100644
|
||||
--- a/target/product/aosp_base_telephony.mk
|
||||
+++ b/target/product/aosp_base_telephony.mk
|
||||
@@ -16,4 +16,4 @@
|
||||
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
- messaging
|
||||
+ SMSSecure
|
@ -0,0 +1,26 @@
|
||||
From 8bff5fb1bf50db8e26ee64d1f15181f67a68fc7b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C5=81ukasz=20Domeradzki?=
|
||||
<JustArchi@users.noreply.github.com>
|
||||
Date: Mon, 10 Aug 2015 02:01:37 +0200
|
||||
Subject: [PATCH] Fix O3 SIGBUS
|
||||
|
||||
---
|
||||
main/Android.mk | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/main/Android.mk b/main/Android.mk
|
||||
index d98d2ef..8cfee24 100644
|
||||
--- a/main/Android.mk
|
||||
+++ b/main/Android.mk
|
||||
@@ -134,7 +134,7 @@ ifeq ($(BOARD_USES_WIPOWER), true)
|
||||
LOCAL_C_INCLUDES+= $(LOCAL_PATH)/../wipowerif/include
|
||||
endif
|
||||
|
||||
-LOCAL_CFLAGS += -DBUILDCFG $(bdroid_CFLAGS) -Wno-error=maybe-uninitialized -Wno-error=uninitialized -Wno-error=unused-parameter
|
||||
+LOCAL_CFLAGS += -DBUILDCFG $(bdroid_CFLAGS) -Os -Wno-error=maybe-uninitialized -Wno-error=uninitialized -Wno-error=unused-parameter
|
||||
LOCAL_CONLYFLAGS := -std=c99
|
||||
|
||||
ifeq ($(TARGET_PRODUCT), full_crespo)
|
||||
--
|
||||
2.5.0
|
||||
|
@ -0,0 +1,26 @@
|
||||
From d3774f2251a1fcaadd097de56f2494698b576034 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Thu, 25 Feb 2016 09:57:28 -0500
|
||||
Subject: [PATCH] Disable opt
|
||||
|
||||
Change-Id: I53a1075347b33690ad694fb400d06290a19e2666
|
||||
---
|
||||
media/libstagefright/id3/ID3.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/media/libstagefright/id3/ID3.cpp b/media/libstagefright/id3/ID3.cpp
|
||||
index 76d65f0..0ff541a 100644
|
||||
--- a/media/libstagefright/id3/ID3.cpp
|
||||
+++ b/media/libstagefright/id3/ID3.cpp
|
||||
@@ -500,7 +500,7 @@ void ID3::Iterator::getString(String8 *id, String8 *comment) const {
|
||||
// comment fields (COM/COMM) contain an initial short descriptor, followed by \0,
|
||||
// followed by more data. The data following the \0 can be retrieved by setting
|
||||
// "otherdata" to true.
|
||||
-void ID3::Iterator::getstring(String8 *id, bool otherdata) const {
|
||||
+void __attribute__((optimize("no-tree-vectorize"))) ID3::Iterator::getstring(String8 *id, bool otherdata) const {
|
||||
id->setTo("");
|
||||
|
||||
size_t size;
|
||||
--
|
||||
2.7.1
|
||||
|
@ -0,0 +1,91 @@
|
||||
From c7995a8a49315d0e7378606c9208caa0400afdd2 Mon Sep 17 00:00:00 2001
|
||||
From: Kyle Repinski <repinski23@gmail.com>
|
||||
Date: Sun, 19 Apr 2015 01:03:46 -0500
|
||||
Subject: [PATCH] Fix compiler issues uncovered at higher optimization levels.
|
||||
|
||||
amrwbenc: Fix incorrect array-bounds warning/error.
|
||||
m4v_h263: dec: Fix bogus strict-overflow warning/error.
|
||||
af: Fix ICE in AudioMixer::track__NoResample.
|
||||
|
||||
Change-Id: I2b44072eff6499026034a82107d9dfc6195a6810
|
||||
---
|
||||
media/libstagefright/codecs/amrwbenc/src/isp_az.c | 13 ++++++-------
|
||||
.../codecs/m4v_h263/dec/src/deringing_luma.cpp | 4 ++--
|
||||
services/audioflinger/AudioMixer.cpp | 2 +-
|
||||
3 files changed, 9 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/media/libstagefright/codecs/amrwbenc/src/isp_az.c b/media/libstagefright/codecs/amrwbenc/src/isp_az.c
|
||||
index 62e29e7..6423ec8 100644
|
||||
--- a/media/libstagefright/codecs/amrwbenc/src/isp_az.c
|
||||
+++ b/media/libstagefright/codecs/amrwbenc/src/isp_az.c
|
||||
@@ -42,7 +42,7 @@ void Isp_Az(
|
||||
/* 1 : adaptive scaling enabled */
|
||||
)
|
||||
{
|
||||
- Word32 i, j;
|
||||
+ Word16 i, j;
|
||||
Word16 hi, lo;
|
||||
Word32 f1[NC16k + 1], f2[NC16k];
|
||||
Word16 nc;
|
||||
@@ -58,18 +58,17 @@ void Isp_Az(
|
||||
{
|
||||
f1[i] = f1[i] << 2;
|
||||
}
|
||||
- } else
|
||||
- Get_isp_pol(&isp[0], f1, nc);
|
||||
-
|
||||
- if (nc > 8)
|
||||
- {
|
||||
Get_isp_pol_16kHz(&isp[1], f2, (nc - 1));
|
||||
for (i = 0; i <= nc - 1; i++)
|
||||
{
|
||||
f2[i] = f2[i] << 2;
|
||||
}
|
||||
- } else
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ Get_isp_pol(&isp[0], f1, nc);
|
||||
Get_isp_pol(&isp[1], f2, (nc - 1));
|
||||
+ }
|
||||
|
||||
/*-----------------------------------------------------*
|
||||
* Multiply F2(z) by (1 - z^-2) *
|
||||
diff --git a/media/libstagefright/codecs/m4v_h263/dec/src/deringing_luma.cpp b/media/libstagefright/codecs/m4v_h263/dec/src/deringing_luma.cpp
|
||||
index b5574b4..1319251 100644
|
||||
--- a/media/libstagefright/codecs/m4v_h263/dec/src/deringing_luma.cpp
|
||||
+++ b/media/libstagefright/codecs/m4v_h263/dec/src/deringing_luma.cpp
|
||||
@@ -78,7 +78,7 @@ void Deringing_Luma(
|
||||
for (v_blk = 0; v_blk < MBSIZE; v_blk += BLKSIZE)
|
||||
{
|
||||
v0 = ((v_blk - 1) >= 1) ? (v_blk - 1) : 1;
|
||||
- for (h_blk = MB_H; h_blk < MB_H + MBSIZE; h_blk += BLKSIZE)
|
||||
+ for (h_blk = MB_H; (unsigned int)h_blk < (unsigned int)((unsigned int)MB_H + (unsigned int)MBSIZE); h_blk += BLKSIZE)
|
||||
{
|
||||
h0 = ((h_blk - 1) >= 1) ? (h_blk - 1) : 1;
|
||||
|
||||
@@ -129,7 +129,7 @@ void Deringing_Luma(
|
||||
}
|
||||
|
||||
blks = 0;
|
||||
- for (v_blk = MB_V; v_blk < MB_V + MBSIZE; v_blk += BLKSIZE)
|
||||
+ for (v_blk = MB_V; (unsigned int)v_blk < (unsigned int)((unsigned int)MB_V + (unsigned int)MBSIZE); v_blk += BLKSIZE)
|
||||
{
|
||||
v0 = v_blk - 1;
|
||||
for (h_blk = 0; h_blk < MBSIZE; h_blk += BLKSIZE)
|
||||
diff --git a/services/audioflinger/AudioMixer.cpp b/services/audioflinger/AudioMixer.cpp
|
||||
index 806eaf1..a12d595 100644
|
||||
--- a/services/audioflinger/AudioMixer.cpp
|
||||
+++ b/services/audioflinger/AudioMixer.cpp
|
||||
@@ -1934,7 +1934,7 @@ void AudioMixer::track__Resample(track_t* t, TO* out, size_t outFrameCount, TO*
|
||||
* TA: int32_t (Q4.27)
|
||||
*/
|
||||
template <int MIXTYPE, typename TO, typename TI, typename TA>
|
||||
-void AudioMixer::track__NoResample(track_t* t, TO* out, size_t frameCount,
|
||||
+void __attribute__((optimize("no-tree-vectorize"))) AudioMixer::track__NoResample(track_t* t, TO* out, size_t frameCount,
|
||||
TO* temp __unused, TA* aux)
|
||||
{
|
||||
ALOGVV("track__NoResample\n");
|
||||
--
|
||||
2.7.1
|
||||
|
@ -0,0 +1,67 @@
|
||||
From c293c1e3284e88ad4d6a19af6f9dde6722a487d9 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Sat, 19 Mar 2016 10:43:15 -0400
|
||||
Subject: [PATCH] Aggressive Doze
|
||||
|
||||
Change-Id: Ia5d7031f24f84afd3329090de0be5302b47f420e
|
||||
---
|
||||
.../com/android/server/DeviceIdleController.java | 26 +++++++++++-----------
|
||||
1 file changed, 13 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/DeviceIdleController.java b/services/core/java/com/android/server/DeviceIdleController.java
|
||||
index 71650c3..0f541d1 100644
|
||||
--- a/services/core/java/com/android/server/DeviceIdleController.java
|
||||
+++ b/services/core/java/com/android/server/DeviceIdleController.java
|
||||
@@ -554,36 +554,36 @@ public class DeviceIdleController extends SystemService
|
||||
}
|
||||
|
||||
INACTIVE_TIMEOUT = mParser.getLong(KEY_INACTIVE_TIMEOUT,
|
||||
- !COMPRESS_TIME ? 30 * 60 * 1000L : 3 * 60 * 1000L);
|
||||
+ 30000L);
|
||||
SENSING_TIMEOUT = mParser.getLong(KEY_SENSING_TIMEOUT,
|
||||
- !DEBUG ? 4 * 60 * 1000L : 60 * 1000L);
|
||||
+ 0L);
|
||||
LOCATING_TIMEOUT = mParser.getLong(KEY_LOCATING_TIMEOUT,
|
||||
- !DEBUG ? 30 * 1000L : 15 * 1000L);
|
||||
+ 0L);
|
||||
LOCATION_ACCURACY = mParser.getFloat(KEY_LOCATION_ACCURACY, 20);
|
||||
MOTION_INACTIVE_TIMEOUT = mParser.getLong(KEY_MOTION_INACTIVE_TIMEOUT,
|
||||
- !COMPRESS_TIME ? 10 * 60 * 1000L : 60 * 1000L);
|
||||
+ 0L);
|
||||
IDLE_AFTER_INACTIVE_TIMEOUT = mParser.getLong(KEY_IDLE_AFTER_INACTIVE_TIMEOUT,
|
||||
- !COMPRESS_TIME ? 30 * 60 * 1000L : 3 * 60 * 1000L);
|
||||
+ 0L);
|
||||
IDLE_PENDING_TIMEOUT = mParser.getLong(KEY_IDLE_PENDING_TIMEOUT,
|
||||
- !COMPRESS_TIME ? 5 * 60 * 1000L : 30 * 1000L);
|
||||
+ 12000L);
|
||||
MAX_IDLE_PENDING_TIMEOUT = mParser.getLong(KEY_MAX_IDLE_PENDING_TIMEOUT,
|
||||
- !COMPRESS_TIME ? 10 * 60 * 1000L : 60 * 1000L);
|
||||
+ 12000L);
|
||||
IDLE_PENDING_FACTOR = mParser.getFloat(KEY_IDLE_PENDING_FACTOR,
|
||||
2f);
|
||||
IDLE_TIMEOUT = mParser.getLong(KEY_IDLE_TIMEOUT,
|
||||
- !COMPRESS_TIME ? 60 * 60 * 1000L : 6 * 60 * 1000L);
|
||||
+ 60000L);
|
||||
MAX_IDLE_TIMEOUT = mParser.getLong(KEY_MAX_IDLE_TIMEOUT,
|
||||
- !COMPRESS_TIME ? 6 * 60 * 60 * 1000L : 30 * 60 * 1000L);
|
||||
+ 21600000L);
|
||||
IDLE_FACTOR = mParser.getFloat(KEY_IDLE_FACTOR,
|
||||
2f);
|
||||
MIN_TIME_TO_ALARM = mParser.getLong(KEY_MIN_TIME_TO_ALARM,
|
||||
- !COMPRESS_TIME ? 60 * 60 * 1000L : 6 * 60 * 1000L);
|
||||
+ 600000L);
|
||||
MAX_TEMP_APP_WHITELIST_DURATION = mParser.getLong(
|
||||
- KEY_MAX_TEMP_APP_WHITELIST_DURATION, 5 * 60 * 1000L);
|
||||
+ KEY_MAX_TEMP_APP_WHITELIST_DURATION, 10000L);
|
||||
MMS_TEMP_APP_WHITELIST_DURATION = mParser.getLong(
|
||||
- KEY_MMS_TEMP_APP_WHITELIST_DURATION, 60 * 1000L);
|
||||
+ KEY_MMS_TEMP_APP_WHITELIST_DURATION, 10000L);
|
||||
SMS_TEMP_APP_WHITELIST_DURATION = mParser.getLong(
|
||||
- KEY_SMS_TEMP_APP_WHITELIST_DURATION, 20 * 1000L);
|
||||
+ KEY_SMS_TEMP_APP_WHITELIST_DURATION, 10000L);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,71 @@
|
||||
From e565d5688ac11ee1440d7622a84ae5a688f7f3b5 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Sat, 16 Apr 2016 22:49:51 -0400
|
||||
Subject: [PATCH] Aggressive Doze
|
||||
|
||||
Change-Id: If28d95b48fc283d88999a200112ee579dd9a4bc2
|
||||
---
|
||||
.../com/android/server/DeviceIdleController.java | 47 ++++++++--------------
|
||||
1 file changed, 16 insertions(+), 31 deletions(-)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/DeviceIdleController.java b/services/core/java/com/android/server/DeviceIdleController.java
|
||||
index 0f541d1..44cc490 100644
|
||||
--- a/services/core/java/com/android/server/DeviceIdleController.java
|
||||
+++ b/services/core/java/com/android/server/DeviceIdleController.java
|
||||
@@ -553,37 +553,22 @@ public class DeviceIdleController extends SystemService
|
||||
Slog.e(TAG, "Bad device idle settings", e);
|
||||
}
|
||||
|
||||
- INACTIVE_TIMEOUT = mParser.getLong(KEY_INACTIVE_TIMEOUT,
|
||||
- 30000L);
|
||||
- SENSING_TIMEOUT = mParser.getLong(KEY_SENSING_TIMEOUT,
|
||||
- 0L);
|
||||
- LOCATING_TIMEOUT = mParser.getLong(KEY_LOCATING_TIMEOUT,
|
||||
- 0L);
|
||||
- LOCATION_ACCURACY = mParser.getFloat(KEY_LOCATION_ACCURACY, 20);
|
||||
- MOTION_INACTIVE_TIMEOUT = mParser.getLong(KEY_MOTION_INACTIVE_TIMEOUT,
|
||||
- 0L);
|
||||
- IDLE_AFTER_INACTIVE_TIMEOUT = mParser.getLong(KEY_IDLE_AFTER_INACTIVE_TIMEOUT,
|
||||
- 0L);
|
||||
- IDLE_PENDING_TIMEOUT = mParser.getLong(KEY_IDLE_PENDING_TIMEOUT,
|
||||
- 12000L);
|
||||
- MAX_IDLE_PENDING_TIMEOUT = mParser.getLong(KEY_MAX_IDLE_PENDING_TIMEOUT,
|
||||
- 12000L);
|
||||
- IDLE_PENDING_FACTOR = mParser.getFloat(KEY_IDLE_PENDING_FACTOR,
|
||||
- 2f);
|
||||
- IDLE_TIMEOUT = mParser.getLong(KEY_IDLE_TIMEOUT,
|
||||
- 60000L);
|
||||
- MAX_IDLE_TIMEOUT = mParser.getLong(KEY_MAX_IDLE_TIMEOUT,
|
||||
- 21600000L);
|
||||
- IDLE_FACTOR = mParser.getFloat(KEY_IDLE_FACTOR,
|
||||
- 2f);
|
||||
- MIN_TIME_TO_ALARM = mParser.getLong(KEY_MIN_TIME_TO_ALARM,
|
||||
- 600000L);
|
||||
- MAX_TEMP_APP_WHITELIST_DURATION = mParser.getLong(
|
||||
- KEY_MAX_TEMP_APP_WHITELIST_DURATION, 10000L);
|
||||
- MMS_TEMP_APP_WHITELIST_DURATION = mParser.getLong(
|
||||
- KEY_MMS_TEMP_APP_WHITELIST_DURATION, 10000L);
|
||||
- SMS_TEMP_APP_WHITELIST_DURATION = mParser.getLong(
|
||||
- KEY_SMS_TEMP_APP_WHITELIST_DURATION, 10000L);
|
||||
+ INACTIVE_TIMEOUT = 300000L;//5m
|
||||
+ SENSING_TIMEOUT = 15000L;//15s
|
||||
+ LOCATING_TIMEOUT = 15000L;//15s
|
||||
+ LOCATION_ACCURACY = 30f;
|
||||
+ MOTION_INACTIVE_TIMEOUT = 15000L;//15s
|
||||
+ IDLE_AFTER_INACTIVE_TIMEOUT = 15000L;//15s
|
||||
+ IDLE_PENDING_TIMEOUT = 15000L;//15s
|
||||
+ MAX_IDLE_PENDING_TIMEOUT = 60000L;//60s
|
||||
+ IDLE_PENDING_FACTOR = 2f;
|
||||
+ IDLE_TIMEOUT = 600000L;//10m
|
||||
+ MAX_IDLE_TIMEOUT = 21600000L;//6h
|
||||
+ IDLE_FACTOR = 2f;
|
||||
+ MIN_TIME_TO_ALARM = 600000L;//10m
|
||||
+ MAX_TEMP_APP_WHITELIST_DURATION = 120000L;//2m
|
||||
+ MMS_TEMP_APP_WHITELIST_DURATION = 60000L;//1m
|
||||
+ SMS_TEMP_APP_WHITELIST_DURATION = 30000L;//30s
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.8.0
|
||||
|
@ -0,0 +1,71 @@
|
||||
From 23763f4eb6fba1a9031bc5d46fdd81bfc1a35c0c Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Sat, 23 Apr 2016 18:46:05 -0400
|
||||
Subject: [PATCH] Aggressive Doze
|
||||
|
||||
Change-Id: If7b7776ca634d9bb63cd77458a5d1c93fe38bc8f
|
||||
---
|
||||
.../com/android/server/DeviceIdleController.java | 47 ++++++++--------------
|
||||
1 file changed, 16 insertions(+), 31 deletions(-)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/DeviceIdleController.java b/services/core/java/com/android/server/DeviceIdleController.java
|
||||
index 71650c3..44cc490 100644
|
||||
--- a/services/core/java/com/android/server/DeviceIdleController.java
|
||||
+++ b/services/core/java/com/android/server/DeviceIdleController.java
|
||||
@@ -553,37 +553,22 @@ public class DeviceIdleController extends SystemService
|
||||
Slog.e(TAG, "Bad device idle settings", e);
|
||||
}
|
||||
|
||||
- INACTIVE_TIMEOUT = mParser.getLong(KEY_INACTIVE_TIMEOUT,
|
||||
- !COMPRESS_TIME ? 30 * 60 * 1000L : 3 * 60 * 1000L);
|
||||
- SENSING_TIMEOUT = mParser.getLong(KEY_SENSING_TIMEOUT,
|
||||
- !DEBUG ? 4 * 60 * 1000L : 60 * 1000L);
|
||||
- LOCATING_TIMEOUT = mParser.getLong(KEY_LOCATING_TIMEOUT,
|
||||
- !DEBUG ? 30 * 1000L : 15 * 1000L);
|
||||
- LOCATION_ACCURACY = mParser.getFloat(KEY_LOCATION_ACCURACY, 20);
|
||||
- MOTION_INACTIVE_TIMEOUT = mParser.getLong(KEY_MOTION_INACTIVE_TIMEOUT,
|
||||
- !COMPRESS_TIME ? 10 * 60 * 1000L : 60 * 1000L);
|
||||
- IDLE_AFTER_INACTIVE_TIMEOUT = mParser.getLong(KEY_IDLE_AFTER_INACTIVE_TIMEOUT,
|
||||
- !COMPRESS_TIME ? 30 * 60 * 1000L : 3 * 60 * 1000L);
|
||||
- IDLE_PENDING_TIMEOUT = mParser.getLong(KEY_IDLE_PENDING_TIMEOUT,
|
||||
- !COMPRESS_TIME ? 5 * 60 * 1000L : 30 * 1000L);
|
||||
- MAX_IDLE_PENDING_TIMEOUT = mParser.getLong(KEY_MAX_IDLE_PENDING_TIMEOUT,
|
||||
- !COMPRESS_TIME ? 10 * 60 * 1000L : 60 * 1000L);
|
||||
- IDLE_PENDING_FACTOR = mParser.getFloat(KEY_IDLE_PENDING_FACTOR,
|
||||
- 2f);
|
||||
- IDLE_TIMEOUT = mParser.getLong(KEY_IDLE_TIMEOUT,
|
||||
- !COMPRESS_TIME ? 60 * 60 * 1000L : 6 * 60 * 1000L);
|
||||
- MAX_IDLE_TIMEOUT = mParser.getLong(KEY_MAX_IDLE_TIMEOUT,
|
||||
- !COMPRESS_TIME ? 6 * 60 * 60 * 1000L : 30 * 60 * 1000L);
|
||||
- IDLE_FACTOR = mParser.getFloat(KEY_IDLE_FACTOR,
|
||||
- 2f);
|
||||
- MIN_TIME_TO_ALARM = mParser.getLong(KEY_MIN_TIME_TO_ALARM,
|
||||
- !COMPRESS_TIME ? 60 * 60 * 1000L : 6 * 60 * 1000L);
|
||||
- MAX_TEMP_APP_WHITELIST_DURATION = mParser.getLong(
|
||||
- KEY_MAX_TEMP_APP_WHITELIST_DURATION, 5 * 60 * 1000L);
|
||||
- MMS_TEMP_APP_WHITELIST_DURATION = mParser.getLong(
|
||||
- KEY_MMS_TEMP_APP_WHITELIST_DURATION, 60 * 1000L);
|
||||
- SMS_TEMP_APP_WHITELIST_DURATION = mParser.getLong(
|
||||
- KEY_SMS_TEMP_APP_WHITELIST_DURATION, 20 * 1000L);
|
||||
+ INACTIVE_TIMEOUT = 300000L;//5m
|
||||
+ SENSING_TIMEOUT = 15000L;//15s
|
||||
+ LOCATING_TIMEOUT = 15000L;//15s
|
||||
+ LOCATION_ACCURACY = 30f;
|
||||
+ MOTION_INACTIVE_TIMEOUT = 15000L;//15s
|
||||
+ IDLE_AFTER_INACTIVE_TIMEOUT = 15000L;//15s
|
||||
+ IDLE_PENDING_TIMEOUT = 15000L;//15s
|
||||
+ MAX_IDLE_PENDING_TIMEOUT = 60000L;//60s
|
||||
+ IDLE_PENDING_FACTOR = 2f;
|
||||
+ IDLE_TIMEOUT = 600000L;//10m
|
||||
+ MAX_IDLE_TIMEOUT = 21600000L;//6h
|
||||
+ IDLE_FACTOR = 2f;
|
||||
+ MIN_TIME_TO_ALARM = 600000L;//10m
|
||||
+ MAX_TEMP_APP_WHITELIST_DURATION = 120000L;//2m
|
||||
+ MMS_TEMP_APP_WHITELIST_DURATION = 60000L;//1m
|
||||
+ SMS_TEMP_APP_WHITELIST_DURATION = 30000L;//30s
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.8.0
|
||||
|
@ -0,0 +1,40 @@
|
||||
From bffe81a931165fbc57bbf7a7ff688f6b09b911cd Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Wed, 20 Jul 2016 00:06:16 -0400
|
||||
Subject: [PATCH] Change default connectivity check URLs
|
||||
|
||||
Change-Id: I8d75ab078f179e23b2ae983b7a4e5653f1eca08e
|
||||
---
|
||||
.../src/com/android/captiveportallogin/CaptivePortalLoginActivity.java | 2 +-
|
||||
services/core/java/com/android/server/connectivity/NetworkMonitor.java | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java
|
||||
index ed9c111..09a8898 100644
|
||||
--- a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java
|
||||
+++ b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java
|
||||
@@ -86,7 +86,7 @@ public class CaptivePortalLoginActivity extends Activity {
|
||||
if (server == null) server = DEFAULT_SERVER;
|
||||
mCm = ConnectivityManager.from(this);
|
||||
try {
|
||||
- mURL = new URL("http", server, "/generate_204");
|
||||
+ mURL = new URL("https://spotco.us/gen204.php");
|
||||
} catch (MalformedURLException e) {
|
||||
// System misconfigured, bail out in a way that at least provides network access.
|
||||
Log.e(TAG, "Invalid captive portal URL, server=" + server);
|
||||
diff --git a/services/core/java/com/android/server/connectivity/NetworkMonitor.java b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
|
||||
index 5108564..0ebf739 100644
|
||||
--- a/services/core/java/com/android/server/connectivity/NetworkMonitor.java
|
||||
+++ b/services/core/java/com/android/server/connectivity/NetworkMonitor.java
|
||||
@@ -640,7 +640,7 @@ public class NetworkMonitor extends StateMachine {
|
||||
HttpURLConnection urlConnection = null;
|
||||
int httpResponseCode = 599;
|
||||
try {
|
||||
- URL url = new URL("http", mServer, "/generate_204");
|
||||
+ URL url = new URL("https://spotco.us/gen204.php");
|
||||
// On networks with a PAC instead of fetching a URL that should result in a 204
|
||||
// reponse, we instead simply fetch the PAC script. This is done for a few reasons:
|
||||
// 1. At present our PAC code does not yet handle multiple PACs on multiple networks
|
||||
--
|
||||
2.7.4
|
||||
|
226
Patches/CyanogenMod-13.0/android_frameworks_base/DNSCrypt.patch
Normal file
226
Patches/CyanogenMod-13.0/android_frameworks_base/DNSCrypt.patch
Normal file
@ -0,0 +1,226 @@
|
||||
From 322f9019c0ca410c0d72190dd17bc316351d35db Mon Sep 17 00:00:00 2001
|
||||
From: Martin Brabham <optedoblivion@cyngn.com>
|
||||
Date: Fri, 9 Jan 2015 16:20:34 -0800
|
||||
Subject: [PATCH] DNSCrypt: Encrypt dns queries - Add DNS encryption settings
|
||||
constants. - Listen for settings changes and handle rerouting dns queries -
|
||||
Handle switching servers
|
||||
|
||||
Change-Id: Ic97285ac6924aa0c930ff59709da384e197cd3ca
|
||||
---
|
||||
core/java/android/provider/Settings.java | 22 ++++
|
||||
.../com/android/server/ConnectivityService.java | 116 ++++++++++++++++++---
|
||||
2 files changed, 123 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
|
||||
index f6642d8..9905483 100644
|
||||
--- a/core/java/android/provider/Settings.java
|
||||
+++ b/core/java/android/provider/Settings.java
|
||||
@@ -4058,6 +4058,28 @@ public final class Settings {
|
||||
public static final class Secure extends NameValueTable {
|
||||
public static final String SYS_PROP_SETTING_VERSION = "sys.settings_secure_version";
|
||||
|
||||
+ // DNS Encryption
|
||||
+
|
||||
+ /**
|
||||
+ * @hide
|
||||
+ */
|
||||
+ public static final String DNS_ENCRYPTION_TOGGLE = "dns_enc_toggle";
|
||||
+
|
||||
+ /**
|
||||
+ * @hide
|
||||
+ */
|
||||
+ public static final int DNS_ENCRYPTION_TOGGLE_DEFAULT = 0;
|
||||
+
|
||||
+ /**
|
||||
+ * @hide
|
||||
+ */
|
||||
+ public static final String DNS_ENCRYPTION_SERVER = "dns_enc_server";
|
||||
+
|
||||
+ /**
|
||||
+ * @hide
|
||||
+ */
|
||||
+ public static final String DNS_ENCRYPTION_SERVER_DEFAULT = "opendns";
|
||||
+
|
||||
/**
|
||||
* The content:// style URL for this table
|
||||
*/
|
||||
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
|
||||
index 2a47460..0e6578f 100644
|
||||
--- a/services/core/java/com/android/server/ConnectivityService.java
|
||||
+++ b/services/core/java/com/android/server/ConnectivityService.java
|
||||
@@ -91,6 +91,8 @@ import android.os.SystemProperties;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
+import android.provider.Settings.Secure;
|
||||
+import android.provider.Settings.SettingNotFoundException;
|
||||
import android.security.Credentials;
|
||||
import android.security.KeyStore;
|
||||
import android.telephony.TelephonyManager;
|
||||
@@ -167,6 +169,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
implements PendingIntent.OnFinished {
|
||||
private static final String TAG = "ConnectivityService";
|
||||
|
||||
+ private static final String NETID_UPDATE =
|
||||
+ "org.codeaurora.NETID_UPDATE";
|
||||
+
|
||||
private static final boolean DBG = true;
|
||||
private static final boolean VDBG = false;
|
||||
|
||||
@@ -229,6 +234,16 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
private static final int ENABLED = 1;
|
||||
private static final int DISABLED = 0;
|
||||
|
||||
+ // DNS Encryption variables
|
||||
+ private static final String DNSCRYPT_SERVICE = "dnscrypt-proxy";
|
||||
+ private static final String LOOPBACK_ADDR = "127.0.0.1";
|
||||
+ private static final String NULL_DOMAIN = "";
|
||||
+ private boolean mDnsEncryptionEnabled = false;
|
||||
+ private String mDnsEncryptionServer = Secure.DNS_ENCRYPTION_SERVER_DEFAULT;
|
||||
+ private Collection<InetAddress> mActualDnses = new ArrayList<InetAddress>();
|
||||
+ private int mNetId = -1;
|
||||
+ private String mActualDomains = null;
|
||||
+
|
||||
private enum ReapUnvalidatedNetworks {
|
||||
// Tear down networks that have no chance (e.g. even if validated) of becoming
|
||||
// the highest scoring network satisfying a NetworkRequest. This should be passed when
|
||||
@@ -827,6 +842,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
mSettingsObserver.observe(
|
||||
Settings.Global.getUriFor(Settings.Global.MOBILE_DATA_ALWAYS_ON),
|
||||
EVENT_CONFIGURE_MOBILE_DATA_ALWAYS_ON);
|
||||
+
|
||||
+ // Watch for whether or not to use DNScrypt
|
||||
+ resolver.registerContentObserver(Settings.Secure.getUriFor(
|
||||
+ Secure.DNS_ENCRYPTION_TOGGLE), false, this);
|
||||
+ resolver.registerContentObserver(Settings.Secure.getUriFor(Secure
|
||||
+ .DNS_ENCRYPTION_SERVER), false, this);
|
||||
+ onPreferencesChanged();
|
||||
}
|
||||
|
||||
private synchronized int nextNetworkRequestId() {
|
||||
@@ -3027,7 +3049,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
}
|
||||
}
|
||||
|
||||
- private static class SettingsObserver extends ContentObserver {
|
||||
+ private class SettingsObserver extends ContentObserver {
|
||||
final private HashMap<Uri, Integer> mUriEventMap;
|
||||
final private Context mContext;
|
||||
final private Handler mHandler;
|
||||
@@ -3058,7 +3080,70 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
} else {
|
||||
loge("No matching event to send for URI=" + uri);
|
||||
}
|
||||
+ onPreferencesChanged();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Called when preference are updated from Settings
|
||||
+ * {@hide}
|
||||
+ */
|
||||
+ private void onPreferencesChanged() {
|
||||
+ setDnsEncryptionDns();
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Updates the DNS to either encrypted or regular
|
||||
+ */
|
||||
+ private void setDnsEncryptionDns() {
|
||||
+ try {
|
||||
+ mDnsEncryptionEnabled = Secure.getIntForUser(mContext.getContentResolver(),
|
||||
+ Secure.DNS_ENCRYPTION_TOGGLE, UserHandle.USER_CURRENT) != 0;
|
||||
+ } catch (SettingNotFoundException e) {
|
||||
+ loge("Exception getting dns enabled setting: " + e);
|
||||
+ }
|
||||
+ String serverName = Secure.getStringForUser(mContext.getContentResolver(),
|
||||
+ Secure.DNS_ENCRYPTION_SERVER, UserHandle.USER_CURRENT);
|
||||
+ serverName = (TextUtils.isEmpty(serverName)) ? Secure.DNS_ENCRYPTION_SERVER_DEFAULT :
|
||||
+ serverName;
|
||||
+
|
||||
+ // If they aren't equal, then we have a change!
|
||||
+ boolean changed = !mDnsEncryptionServer.equals(serverName);
|
||||
+
|
||||
+ // Set last server name
|
||||
+ mDnsEncryptionServer = serverName;
|
||||
+
|
||||
+ log("DNS Encryption Enabled: " + mDnsEncryptionEnabled);
|
||||
+ Collection<InetAddress> dnses = mActualDnses;
|
||||
+ String domains = mActualDomains;
|
||||
+ if (mDnsEncryptionEnabled) {
|
||||
+ if (changed) {
|
||||
+ // If we had a server change, need to restart service to pick up new server
|
||||
+ SystemProperties.set("ctl.stop", DNSCRYPT_SERVICE);
|
||||
+ SystemProperties.set("net.dnscrypt_resolver", mDnsEncryptionServer);
|
||||
+ }
|
||||
+ SystemProperties.set("ctl.start", DNSCRYPT_SERVICE);
|
||||
+ dnses = new ArrayList<InetAddress>();
|
||||
+ dnses.add(NetworkUtils.numericToInetAddress(LOOPBACK_ADDR));
|
||||
+ domains = NULL_DOMAIN;
|
||||
+ } else {
|
||||
+ SystemProperties.set("ctl.stop", DNSCRYPT_SERVICE);
|
||||
+ }
|
||||
+ updateDnsesInternal(dnses, mNetId, domains);
|
||||
+ }
|
||||
+
|
||||
+ private void updateDnsesInternal(Collection<InetAddress> dnses, int netId, String domains) {
|
||||
+ if (DBG) log("Setting Dns servers for network " + netId + " to " + dnses);
|
||||
+ try {
|
||||
+ mNetd.setDnsServersForNetwork(netId, NetworkUtils.makeStrings(dnses), domains);
|
||||
+ } catch (Exception e) {
|
||||
+ loge("Exception in setDnsServersForNetwork: " + e);
|
||||
+ }
|
||||
+ NetworkAgentInfo defaultNai = mNetworkForRequestId.get(mDefaultRequest.requestId);
|
||||
+ if (defaultNai != null && defaultNai.network.netId == netId) {
|
||||
+ setDefaultDnsSystemProperties(dnses);
|
||||
}
|
||||
+ flushVmDnsCache();
|
||||
}
|
||||
|
||||
private static void log(String s) {
|
||||
@@ -4122,27 +4207,28 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
|
||||
private void updateDnses(LinkProperties newLp, LinkProperties oldLp, int netId,
|
||||
boolean flush, boolean useDefaultDns) {
|
||||
- if (oldLp == null || (newLp.isIdenticalDnses(oldLp) == false)) {
|
||||
- Collection<InetAddress> dnses = newLp.getDnsServers();
|
||||
+ if (oldLp == null || !newLp.isIdenticalDnses(oldLp)) {
|
||||
+ Collection<InetAddress> dnses = newLp.getDnsServers();
|
||||
if (dnses.size() == 0 && mDefaultDns != null && useDefaultDns) {
|
||||
- dnses = new ArrayList();
|
||||
+ dnses = new ArrayList<InetAddress>();
|
||||
dnses.add(mDefaultDns);
|
||||
if (DBG) {
|
||||
loge("no dns provided for netId " + netId + ", so using defaults");
|
||||
}
|
||||
}
|
||||
- if (DBG) log("Setting Dns servers for network " + netId + " to " + dnses);
|
||||
- try {
|
||||
- mNetd.setDnsServersForNetwork(netId, NetworkUtils.makeStrings(dnses),
|
||||
- newLp.getDomains());
|
||||
- } catch (Exception e) {
|
||||
- loge("Exception in setDnsServersForNetwork: " + e);
|
||||
- }
|
||||
- final NetworkAgentInfo defaultNai = getDefaultNetwork();
|
||||
- if (defaultNai != null && defaultNai.network.netId == netId) {
|
||||
- setDefaultDnsSystemProperties(dnses);
|
||||
+
|
||||
+ // Set tracking fields
|
||||
+ mNetId = netId;
|
||||
+ mActualDnses = dnses;
|
||||
+ mActualDomains = newLp.getDomains();
|
||||
+
|
||||
+ String domains = mActualDomains;
|
||||
+ if (mDnsEncryptionEnabled) {
|
||||
+ dnses = new ArrayList<InetAddress>();
|
||||
+ dnses.add(NetworkUtils.numericToInetAddress(LOOPBACK_ADDR));
|
||||
+ domains = NULL_DOMAIN;
|
||||
}
|
||||
- flushVmDnsCache();
|
||||
+ updateDnsesInternal(dnses, netId, domains);
|
||||
} else if (flush) {
|
||||
try {
|
||||
mNetd.flushNetworkDnsCache(netId);
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,49 @@
|
||||
From 9b8ea26004ada2b15d0403f55a23a0c02d16c5b2 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Sat, 2 Apr 2016 11:28:50 -0400
|
||||
Subject: [PATCH] Shutdown after 5 failed unlock attempts
|
||||
|
||||
Change-Id: If18654ff5816a1c7b31187b4c511b940772c20cf
|
||||
---
|
||||
.../Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java | 5 +++++
|
||||
packages/SystemUI/AndroidManifest.xml | 1 +
|
||||
2 files changed, 6 insertions(+)
|
||||
|
||||
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
|
||||
index 827b378..3bb587b 100644
|
||||
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
|
||||
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
|
||||
@@ -19,6 +19,7 @@ import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
+import android.os.PowerManager;
|
||||
import android.os.RemoteException;
|
||||
import android.os.UserHandle;
|
||||
import android.util.AttributeSet;
|
||||
@@ -294,6 +295,10 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
|
||||
if (timeoutMs > 0) {
|
||||
showTimeoutDialog(timeoutMs);
|
||||
}
|
||||
+ if(failedAttempts >= 5) {
|
||||
+ final PowerManager powerManager = mContext.getSystemService(PowerManager.class);
|
||||
+ powerManager.shutdown(false, false);
|
||||
+ }
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml
|
||||
index 1562901..add89a4 100644
|
||||
--- a/packages/SystemUI/AndroidManifest.xml
|
||||
+++ b/packages/SystemUI/AndroidManifest.xml
|
||||
@@ -109,6 +109,7 @@
|
||||
<uses-permission android:name="android.permission.TRUST_LISTENER" />
|
||||
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
|
||||
<uses-permission android:name="android.permission.RESET_FINGERPRINT_LOCKOUT" />
|
||||
+ <uses-permission android:name="android.permission.REBOOT" />
|
||||
|
||||
<!-- Needed for WallpaperManager.clear in ImageWallpaper.updateWallpaperLocked -->
|
||||
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
|
||||
--
|
||||
2.8.0
|
||||
|
@ -0,0 +1,40 @@
|
||||
From 6ee2fef0118b2e2955bcec974af36c5ed107deb3 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Mon, 18 Apr 2016 09:21:48 -0400
|
||||
Subject: [PATCH] Implement hostname Randomization
|
||||
|
||||
Change-Id: I938b7e896716ea4cb79b4a2e9d852dbe968a778d
|
||||
---
|
||||
services/core/java/com/android/server/ConnectivityService.java | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
|
||||
index 2a47460..4dccc03 100644
|
||||
--- a/services/core/java/com/android/server/ConnectivityService.java
|
||||
+++ b/services/core/java/com/android/server/ConnectivityService.java
|
||||
@@ -146,6 +146,7 @@ import java.io.PrintWriter;
|
||||
import java.net.Inet4Address;
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
+import java.security.SecureRandom;
|
||||
import java.util.ArrayDeque;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -646,8 +647,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
||||
mTrackerHandler = new NetworkStateTrackerHandler(mHandlerThread.getLooper());
|
||||
|
||||
// setup our unique device name
|
||||
- String hostname = CMSettings.Secure.getString(context.getContentResolver(),
|
||||
+ String hostname;
|
||||
+ if(SystemProperties.getBoolean("persist.privacy.randomize_host", true)) {
|
||||
+ hostname = Long.toHexString(new SecureRandom().nextLong());
|
||||
+ } else {
|
||||
+ hostname = CMSettings.Secure.getString(context.getContentResolver(),
|
||||
CMSettings.Secure.DEVICE_HOSTNAME);
|
||||
+ }
|
||||
if (TextUtils.isEmpty(hostname) &&
|
||||
TextUtils.isEmpty(SystemProperties.get("net.hostname"))) {
|
||||
String id = Settings.Secure.getString(context.getContentResolver(),
|
||||
--
|
||||
2.8.0
|
||||
|
198
Patches/CyanogenMod-13.0/android_frameworks_base/Radio-1.patch
Normal file
198
Patches/CyanogenMod-13.0/android_frameworks_base/Radio-1.patch
Normal file
@ -0,0 +1,198 @@
|
||||
From f00b971d99ae9320cf463f32c860640a4b67b179 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Mon, 8 Aug 2016 16:01:07 -0400
|
||||
Subject: [PATCH] Add radio tile (1/2)
|
||||
|
||||
Change-Id: I5d1cb2fede884b9aa044e0de0cf6459d225e0016
|
||||
---
|
||||
packages/SystemUI/res/drawable/ic_qs_radio_off.xml | 10 +++
|
||||
packages/SystemUI/res/drawable/ic_qs_radio_on.xml | 10 +++
|
||||
packages/SystemUI/res/values/cm_strings.xml | 1 +
|
||||
.../src/com/android/systemui/qs/RadioTile.java | 92 ++++++++++++++++++++++
|
||||
.../systemui/statusbar/phone/QSTileHost.java | 4 +
|
||||
5 files changed, 117 insertions(+)
|
||||
create mode 100644 packages/SystemUI/res/drawable/ic_qs_radio_off.xml
|
||||
create mode 100644 packages/SystemUI/res/drawable/ic_qs_radio_on.xml
|
||||
create mode 100644 packages/SystemUI/src/com/android/systemui/qs/RadioTile.java
|
||||
|
||||
diff --git a/packages/SystemUI/res/drawable/ic_qs_radio_off.xml b/packages/SystemUI/res/drawable/ic_qs_radio_off.xml
|
||||
new file mode 100644
|
||||
index 0000000..1cb4918
|
||||
--- /dev/null
|
||||
+++ b/packages/SystemUI/res/drawable/ic_qs_radio_off.xml
|
||||
@@ -0,0 +1,10 @@
|
||||
+<?xml version="1.0" encoding="utf-8"?>
|
||||
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
+ android:width="64dp"
|
||||
+ android:height="64dp"
|
||||
+ android:viewportWidth="24"
|
||||
+ android:viewportHeight="24">
|
||||
+ <path
|
||||
+ android:fillColor="#4DFFFFFF"
|
||||
+ android:pathData="M12,5c-3.87,0 -7,3.13 -7,7h2c0,-2.76 2.24,-5 5,-5s5,2.24 5,5h2c0,-3.87 -3.13,-7 -7,-7zM13,14.29c0.88,-0.39 1.5,-1.26 1.5,-2.29 0,-1.38 -1.12,-2.5 -2.5,-2.5S9.5,10.62 9.5,12c0,1.02 0.62,1.9 1.5,2.29v3.3L7.59,21 9,22.41l3,-3 3,3L16.41,21 13,17.59v-3.3zM12,1C5.93,1 1,5.93 1,12h2c0,-4.97 4.03,-9 9,-9s9,4.03 9,9h2c0,-6.07 -4.93,-11 -11,-11z" />
|
||||
+</vector>
|
||||
diff --git a/packages/SystemUI/res/drawable/ic_qs_radio_on.xml b/packages/SystemUI/res/drawable/ic_qs_radio_on.xml
|
||||
new file mode 100644
|
||||
index 0000000..d446deb
|
||||
--- /dev/null
|
||||
+++ b/packages/SystemUI/res/drawable/ic_qs_radio_on.xml
|
||||
@@ -0,0 +1,10 @@
|
||||
+<?xml version="1.0" encoding="utf-8"?>
|
||||
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
+ android:width="64dp"
|
||||
+ android:height="64dp"
|
||||
+ android:viewportWidth="24"
|
||||
+ android:viewportHeight="24">
|
||||
+ <path
|
||||
+ android:fillColor="#FFFFFFFF"
|
||||
+ android:pathData="M12,5c-3.87,0 -7,3.13 -7,7h2c0,-2.76 2.24,-5 5,-5s5,2.24 5,5h2c0,-3.87 -3.13,-7 -7,-7zM13,14.29c0.88,-0.39 1.5,-1.26 1.5,-2.29 0,-1.38 -1.12,-2.5 -2.5,-2.5S9.5,10.62 9.5,12c0,1.02 0.62,1.9 1.5,2.29v3.3L7.59,21 9,22.41l3,-3 3,3L16.41,21 13,17.59v-3.3zM12,1C5.93,1 1,5.93 1,12h2c0,-4.97 4.03,-9 9,-9s9,4.03 9,9h2c0,-6.07 -4.93,-11 -11,-11z" />
|
||||
+</vector>
|
||||
diff --git a/packages/SystemUI/res/values/cm_strings.xml b/packages/SystemUI/res/values/cm_strings.xml
|
||||
index 2996d21..41b65ae 100644
|
||||
--- a/packages/SystemUI/res/values/cm_strings.xml
|
||||
+++ b/packages/SystemUI/res/values/cm_strings.xml
|
||||
@@ -103,6 +103,7 @@
|
||||
<string name="quick_settings_profiles">System profiles</string>
|
||||
<string name="quick_settings_profiles_off">Profiles disabled</string>
|
||||
<string name="quick_settings_heads_up_label">Heads up</string>
|
||||
+ <string name="quick_settings_radio_power_label">Radio power</string>
|
||||
<string name="quick_settings_battery_saver_label">Battery saver</string>
|
||||
<!-- quick settings battery saver label to show when device is charging and tile is disabled -->
|
||||
<string name="quick_settings_battery_saver_label_charging">Battery saver (charging)</string>
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/qs/RadioTile.java b/packages/SystemUI/src/com/android/systemui/qs/RadioTile.java
|
||||
new file mode 100644
|
||||
index 0000000..74cc6c0
|
||||
--- /dev/null
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/qs/RadioTile.java
|
||||
@@ -0,0 +1,92 @@
|
||||
+package com.android.systemui.qs.tiles;
|
||||
+
|
||||
+import android.content.BroadcastReceiver;
|
||||
+import android.content.Context;
|
||||
+import android.content.Intent;
|
||||
+import android.content.IntentFilter;
|
||||
+
|
||||
+import android.util.Log;
|
||||
+import com.android.systemui.R;
|
||||
+import com.android.systemui.qs.QSTile;
|
||||
+import org.cyanogenmod.internal.util.QSUtils;
|
||||
+
|
||||
+import com.android.internal.telephony.Phone;
|
||||
+import com.android.internal.telephony.PhoneFactory;
|
||||
+
|
||||
+public class RadioTile extends QSTile<QSTile.BooleanState> {
|
||||
+
|
||||
+ private boolean mListening;
|
||||
+ private Phone phone = null;
|
||||
+
|
||||
+ private BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
||||
+ @Override
|
||||
+ public void onReceive(Context context, Intent intent) {
|
||||
+ refreshState();
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
+ public RadioTile(Host host) {
|
||||
+ super(host);
|
||||
+ phone = PhoneFactory.getDefaultPhone();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected BooleanState newTileState() {
|
||||
+ return new BooleanState();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected void handleClick() {
|
||||
+ boolean newState = !getState().value;
|
||||
+ setState(newState);
|
||||
+ refreshState();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected void handleLongClick() {
|
||||
+ Intent lauchRadioInfo = new Intent();
|
||||
+ launchRadioInfo.setClassName("com.android.settings", "com.android.settings.RadioInfo");
|
||||
+ mHost.startActivityDismissingKeyguard(lauchRadioInfo);
|
||||
+ }
|
||||
+
|
||||
+ private void setEnabled(boolean enabled) {
|
||||
+ phone.setRadioPower(enabled);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected void handleUpdateState(BooleanState state, Object arg) {
|
||||
+ state.visible = true;
|
||||
+ final boolean radioPower = arg instanceof Boolean ? (boolean) arg : phone.isRadioOn();
|
||||
+ state.value = radioPower;
|
||||
+ state.label = mContext.getString(R.string.quick_settings_radio_power_label);
|
||||
+ if(state.value) {
|
||||
+ state.icon = ResourceIcon.get(R.drawable.ic_qs_radio_on);
|
||||
+ } else {
|
||||
+ state.icon = ResourceIcon.get(R.drawable.ic_qs_radio_off);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void setListening(boolean listening) {
|
||||
+ if (mListening == listening) return;
|
||||
+ mListening = listening;
|
||||
+ if (listening) {
|
||||
+ final IntentFilter filter = new IntentFilter();
|
||||
+ filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
|
||||
+ mContext.registerReceiver(mReceiver, filter);
|
||||
+ } else {
|
||||
+ mContext.unregisterReceiver(mReceiver);
|
||||
+ }
|
||||
+ mSetting.setListening(listening);
|
||||
+ }
|
||||
+
|
||||
+ private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
||||
+ @Override
|
||||
+ public void onReceive(Context context, Intent intent) {
|
||||
+ if (Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(intent.getAction())) {
|
||||
+ refreshState();
|
||||
+ }
|
||||
+ }
|
||||
+ };
|
||||
+}
|
||||
+}
|
||||
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java
|
||||
index e88ed73..e6116b7 100644
|
||||
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java
|
||||
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java
|
||||
@@ -59,6 +59,7 @@ import com.android.systemui.qs.tiles.LockscreenToggleTile;
|
||||
import com.android.systemui.qs.tiles.NfcTile;
|
||||
import com.android.systemui.qs.tiles.PerfProfileTile;
|
||||
import com.android.systemui.qs.tiles.ProfilesTile;
|
||||
+import com.android.systemui.qs.tiles.RadioTile;
|
||||
import com.android.systemui.qs.tiles.RotationLockTile;
|
||||
import com.android.systemui.qs.tiles.ScreenTimeoutTile;
|
||||
import com.android.systemui.qs.tiles.SyncTile;
|
||||
@@ -371,6 +372,7 @@ public class QSTileHost implements QSTile.Host, Tunable {
|
||||
else if (tileSpec.equals("lockscreen")) return new LockscreenToggleTile(this);
|
||||
else if (tileSpec.equals("ambient_display")) return new AmbientDisplayTile(this);
|
||||
else if (tileSpec.equals("heads_up")) return new HeadsUpTile(this);
|
||||
+ else if (tileSpec.equals("radio_power")) return new RadioTile(this);
|
||||
else if (tileSpec.equals("battery_saver")) return new BatterySaverTile(this);
|
||||
else if (tileSpec.equals("caffeine")) return new CaffeineTile(this);
|
||||
else if (tileSpec.startsWith(IntentTile.PREFIX)) return IntentTile.create(this,tileSpec);
|
||||
@@ -468,6 +470,7 @@ public class QSTileHost implements QSTile.Host, Tunable {
|
||||
else if (spec.equals("lockscreen")) return R.string.quick_settings_lockscreen_label;
|
||||
else if (spec.equals("ambient_display")) return R.string.quick_settings_ambient_display_label;
|
||||
else if (spec.equals("heads_up")) return R.string.quick_settings_heads_up_label;
|
||||
+ else if (spec.equals("radio_power")) return R.string.quick_settings_radio_power_label;
|
||||
else if (spec.equals("battery_saver")) return R.string.quick_settings_battery_saver_label;
|
||||
else if (spec.equals("caffeine")) return R.string.quick_settings_caffeine_label;
|
||||
return 0;
|
||||
@@ -498,6 +501,7 @@ public class QSTileHost implements QSTile.Host, Tunable {
|
||||
else if (spec.equals("lockscreen")) return R.drawable.ic_qs_lock_screen_on;
|
||||
else if (spec.equals("ambient_display")) return R.drawable.ic_qs_ambientdisplay_on;
|
||||
else if (spec.equals("heads_up")) return R.drawable.ic_qs_heads_up_on;
|
||||
+ else if (spec.equals("radio_power")) return R.drawable.ic_qs_radio_on;
|
||||
else if (spec.equals("battery_saver")) return R.drawable.ic_qs_battery_saver_on;
|
||||
else if (spec.equals("caffeine")) return R.drawable.ic_qs_caffeine_on;
|
||||
return 0;
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,26 @@
|
||||
From 367e1be44a79ed50b95c78f06ede4532294e96f6 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Wed, 24 Feb 2016 08:53:20 -0500
|
||||
Subject: [PATCH] Remove analytics
|
||||
|
||||
Change-Id: Icbf1deb4fd0cd6696f3fa8e2edab2c30960b121b
|
||||
---
|
||||
.../src/com/android/providers/settings/DatabaseHelper.java | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
|
||||
index 2b5c14f..0b094a0 100644
|
||||
--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
|
||||
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
|
||||
@@ -1917,8 +1917,6 @@ class DatabaseHelper extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
if (upgradeVersion < 115) {
|
||||
- moveSettingsToNewTable(db, TABLE_SYSTEM, TABLE_SECURE,
|
||||
- new String[] { CMSettings.Secure.STATS_COLLECTION }, true);
|
||||
if (mUserHandle == UserHandle.USER_OWNER) {
|
||||
db.beginTransaction();
|
||||
SQLiteStatement stmt = null;
|
||||
--
|
||||
2.7.1
|
||||
|
@ -0,0 +1,97 @@
|
||||
From d3ec926a99694ed258f60f197a85b83b5f0e75f3 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Tue, 22 Mar 2016 15:10:47 -0400
|
||||
Subject: [PATCH] Allow packages to fake their signature
|
||||
|
||||
Change-Id: Iba3b34256161926886c27ef63271795fd8b93f1a
|
||||
---
|
||||
core/res/AndroidManifest.xml | 7 +++++++
|
||||
core/res/res/values/config.xml | 2 ++
|
||||
core/res/res/values/strings.xml | 5 +++++
|
||||
.../android/server/pm/PackageManagerService.java | 23 ++++++++++++++++++++--
|
||||
4 files changed, 35 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
|
||||
index 50a4b38..9be1bcb 100644
|
||||
--- a/core/res/AndroidManifest.xml
|
||||
+++ b/core/res/AndroidManifest.xml
|
||||
@@ -1654,6 +1654,13 @@
|
||||
android:description="@string/permdesc_getPackageSize"
|
||||
android:protectionLevel="normal" />
|
||||
|
||||
+ <!-- @hide Allows an application to change the package signature as
|
||||
+ seen by applications -->
|
||||
+ <permission android:name="android.permission.FAKE_PACKAGE_SIGNATURE"
|
||||
+ android:protectionLevel="dangerous"
|
||||
+ android:label="@string/permlab_fakePackageSignature"
|
||||
+ android:description="@string/permdesc_fakePackageSignature" />
|
||||
+
|
||||
<!-- @deprecated No longer useful, see
|
||||
{@link android.content.pm.PackageManager#addPackageToPreferred}
|
||||
for details. -->
|
||||
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
|
||||
index 5cdce93..ac23bb6 100644
|
||||
--- a/core/res/res/values/config.xml
|
||||
+++ b/core/res/res/values/config.xml
|
||||
@@ -1298,6 +1298,8 @@
|
||||
<string-array name="config_locationProviderPackageNames" translatable="false">
|
||||
<!-- The standard AOSP fused location provider -->
|
||||
<item>com.android.location.fused</item>
|
||||
+ <!-- The (faked) microg fused location provider -->
|
||||
+ <item>com.google.android.gms</item>
|
||||
</string-array>
|
||||
|
||||
<!-- This string array can be overriden to enable test location providers initially. -->
|
||||
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
|
||||
index 1fef7e7..0924463 100644
|
||||
--- a/core/res/res/values/strings.xml
|
||||
+++ b/core/res/res/values/strings.xml
|
||||
@@ -615,6 +615,11 @@
|
||||
|
||||
<!-- Permissions -->
|
||||
|
||||
+ <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
||||
+ <string name="permlab_fakePackageSignature">Spoof package signature</string>
|
||||
+ <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
||||
+ <string name="permdesc_fakePackageSignature">Allows the app to pretend to be a different app. Malicious applications might be able to use this to access private application data. Grant this permission with caution only!</string>
|
||||
+
|
||||
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
||||
<string name="permlab_statusBar">disable or modify status bar</string>
|
||||
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
||||
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
|
||||
index d5c58df..7b68c3e 100644
|
||||
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
|
||||
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
|
||||
@@ -2805,8 +2805,27 @@ public class PackageManagerService extends IPackageManager.Stub {
|
||||
final Set<String> permissions = permissionsState.getPermissions(userId);
|
||||
final PackageUserState state = ps.readUserState(userId);
|
||||
|
||||
- return PackageParser.generatePackageInfo(p, gids, flags,
|
||||
- ps.firstInstallTime, ps.lastUpdateTime, permissions, state, userId);
|
||||
+ return mayFakeSignature(p, PackageParser.generatePackageInfo(p, gids, flags,
|
||||
+ ps.firstInstallTime, ps.lastUpdateTime, permissions, state, userId),
|
||||
+ permissions);
|
||||
+ }
|
||||
+
|
||||
+ private PackageInfo mayFakeSignature(PackageParser.Package p, PackageInfo pi,
|
||||
+ Set<String> permissions) {
|
||||
+ try {
|
||||
+ if (permissions.contains("android.permission.FAKE_PACKAGE_SIGNATURE")
|
||||
+ && p.applicationInfo.targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1
|
||||
+ && p.mAppMetaData != null) {
|
||||
+ String sig = p.mAppMetaData.getString("fake-signature");
|
||||
+ if (sig != null) {
|
||||
+ pi.signatures = new Signature[] {new Signature(sig)};
|
||||
+ }
|
||||
+ }
|
||||
+ } catch (Throwable t) {
|
||||
+ // We should never die because of any failures, this is system code!
|
||||
+ Log.w("PackageManagerService.FAKE_PACKAGE_SIGNATURE", t);
|
||||
+ }
|
||||
+ return pi;
|
||||
}
|
||||
|
||||
@Override
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,104 @@
|
||||
From 7357f8c0c8a6bdc09555ab47dae83f28346b8470 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Beno=C3=AEt=20Mauduit?= <bmauduit@beneth.fr>
|
||||
Date: Wed, 22 Jun 2016 15:04:56 +0200
|
||||
Subject: [PATCH 1/1] Add signature Spoofing permission
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This is needed by GmsCore (https://microg.org/) to pretend
|
||||
the existence of the official Play Services to applications calling
|
||||
Google APIs.
|
||||
|
||||
Signed-off-by: Benoît Mauduit <bmauduit@beneth.fr>
|
||||
---
|
||||
core/res/AndroidManifest.xml | 7 +++++++
|
||||
core/res/res/values/config.xml | 2 ++
|
||||
core/res/res/values/strings.xml | 5 +++++
|
||||
.../android/server/pm/PackageManagerService.java | 23 ++++++++++++++++++++--
|
||||
4 files changed, 35 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
|
||||
index ea0e39c..a936983 100644
|
||||
--- a/core/res/AndroidManifest.xml
|
||||
+++ b/core/res/AndroidManifest.xml
|
||||
@@ -1654,6 +1654,13 @@
|
||||
android:description="@string/permdesc_getPackageSize"
|
||||
android:protectionLevel="normal" />
|
||||
|
||||
+ <!-- @hide Allows an application to change the package signature as
|
||||
+ seen by applications -->
|
||||
+ <permission android:name="android.permission.FAKE_PACKAGE_SIGNATURE"
|
||||
+ android:protectionLevel="dangerous"
|
||||
+ android:label="@string/permlab_fakePackageSignature"
|
||||
+ android:description="@string/permdesc_fakePackageSignature" />
|
||||
+
|
||||
<!-- @deprecated No longer useful, see
|
||||
{@link android.content.pm.PackageManager#addPackageToPreferred}
|
||||
for details. -->
|
||||
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
|
||||
index c7846cf..916d8a5 100644
|
||||
--- a/core/res/res/values/config.xml
|
||||
+++ b/core/res/res/values/config.xml
|
||||
@@ -1298,6 +1298,8 @@
|
||||
<string-array name="config_locationProviderPackageNames" translatable="false">
|
||||
<!-- The standard AOSP fused location provider -->
|
||||
<item>com.android.location.fused</item>
|
||||
+ <!-- The (faked) microg fused location provider -->
|
||||
+ <item>com.google.android.gms</item>
|
||||
</string-array>
|
||||
|
||||
<!-- This string array can be overriden to enable test location providers initially. -->
|
||||
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
|
||||
index 58135db..e65367a 100644
|
||||
--- a/core/res/res/values/strings.xml
|
||||
+++ b/core/res/res/values/strings.xml
|
||||
@@ -616,6 +616,11 @@
|
||||
<!-- Permissions -->
|
||||
|
||||
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
||||
+ <string name="permlab_fakePackageSignature">Spoof package signature</string>
|
||||
+ <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
||||
+ <string name="permdesc_fakePackageSignature">Allows the app to pretend to be a different app. Malicious applications might be able to use this to access private application data. Grant this permission with caution only!</string>
|
||||
+
|
||||
+ <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
||||
<string name="permlab_statusBar">disable or modify status bar</string>
|
||||
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
||||
<string name="permdesc_statusBar">Allows the app to disable the status bar or add and remove system icons.</string>
|
||||
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
|
||||
index 0493180..35f49d7 100644
|
||||
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
|
||||
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
|
||||
@@ -2816,8 +2816,27 @@ public class PackageManagerService extends IPackageManager.Stub {
|
||||
final Set<String> permissions = permissionsState.getPermissions(userId);
|
||||
final PackageUserState state = ps.readUserState(userId);
|
||||
|
||||
- return PackageParser.generatePackageInfo(p, gids, flags,
|
||||
- ps.firstInstallTime, ps.lastUpdateTime, permissions, state, userId);
|
||||
+ return mayFakeSignature(p, PackageParser.generatePackageInfo(p, gids, flags,
|
||||
+ ps.firstInstallTime, ps.lastUpdateTime, permissions, state, userId),
|
||||
+ permissions);
|
||||
+ }
|
||||
+
|
||||
+ private PackageInfo mayFakeSignature(PackageParser.Package p, PackageInfo pi,
|
||||
+ Set<String> permissions) {
|
||||
+ try {
|
||||
+ if (permissions.contains("android.permission.FAKE_PACKAGE_SIGNATURE")
|
||||
+ && p.applicationInfo.targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1
|
||||
+ && p.mAppMetaData != null) {
|
||||
+ String sig = p.mAppMetaData.getString("fake-signature");
|
||||
+ if (sig != null) {
|
||||
+ pi.signatures = new Signature[] {new Signature(sig)};
|
||||
+ }
|
||||
+ }
|
||||
+ } catch (Throwable t) {
|
||||
+ // We should never die because of any failures, this is system code!
|
||||
+ Log.w("PackageManagerService.FAKE_PACKAGE_SIGNATURE", t);
|
||||
+ }
|
||||
+ return pi;
|
||||
}
|
||||
|
||||
@Override
|
||||
--
|
||||
2.8.1
|
||||
|
7186
Patches/CyanogenMod-13.0/android_packages_apps_AudioFX/Fix.patch
Normal file
7186
Patches/CyanogenMod-13.0/android_packages_apps_AudioFX/Fix.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,535 @@
|
||||
From 7af4441cada12ddb125c2b747eab897729b62961 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Thu, 13 Oct 2016 19:10:14 -0400
|
||||
Subject: [PATCH] Remove analytics
|
||||
|
||||
Change-Id: Idc9e1bd67d81ffbf62fc5cb8680828603f94c886
|
||||
---
|
||||
Android.mk | 2 -
|
||||
.../cyanogenmod/audiofx/AudioFxApplication.java | 11 --
|
||||
.../audiofx/activity/ActivityMusic.java | 13 --
|
||||
.../audiofx/activity/EqualizerManager.java | 13 --
|
||||
.../audiofx/fragment/AudioFxFragment.java | 2 -
|
||||
.../audiofx/fragment/ControlsFragment.java | 4 -
|
||||
.../audiofx/fragment/EqualizerFragment.java | 4 -
|
||||
src/org/cyanogenmod/audiofx/knobs/RadialKnob.java | 3 -
|
||||
src/org/cyanogenmod/audiofx/stats/AppState.java | 53 -----
|
||||
src/org/cyanogenmod/audiofx/stats/UserSession.java | 215 ---------------------
|
||||
10 files changed, 320 deletions(-)
|
||||
delete mode 100644 src/org/cyanogenmod/audiofx/stats/AppState.java
|
||||
delete mode 100644 src/org/cyanogenmod/audiofx/stats/UserSession.java
|
||||
|
||||
diff --git a/Android.mk b/Android.mk
|
||||
index e2553d0..d9a1b99 100644
|
||||
--- a/Android.mk
|
||||
+++ b/Android.mk
|
||||
@@ -20,9 +20,7 @@ LOCAL_PROGUARD_ENABLED := disabled
|
||||
|
||||
LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, res)
|
||||
LOCAL_AAPT_FLAGS := --auto-add-overlay
|
||||
-LOCAL_AAPT_FLAGS += --extra-packages com.cyanogen.ambient
|
||||
|
||||
-LOCAL_STATIC_JAVA_AAR_LIBRARIES := ambientsdk
|
||||
|
||||
LOCAL_PRIVILEGED_MODULE := true
|
||||
LOCAL_CERTIFICATE := platform
|
||||
diff --git a/src/org/cyanogenmod/audiofx/AudioFxApplication.java b/src/org/cyanogenmod/audiofx/AudioFxApplication.java
|
||||
index 9f08a0c..54819fe 100644
|
||||
--- a/src/org/cyanogenmod/audiofx/AudioFxApplication.java
|
||||
+++ b/src/org/cyanogenmod/audiofx/AudioFxApplication.java
|
||||
@@ -18,30 +18,19 @@ package org.cyanogenmod.audiofx;
|
||||
import android.app.Application;
|
||||
import android.util.Log;
|
||||
|
||||
-import com.cyanogen.ambient.analytics.AnalyticsServices;
|
||||
-import com.cyanogen.ambient.analytics.Event;
|
||||
-import com.cyanogen.ambient.common.api.AmbientApiClient;
|
||||
-
|
||||
public class AudioFxApplication extends Application {
|
||||
|
||||
private static final String TAG = AudioFxApplication.class.getSimpleName();
|
||||
private static final boolean DEBUG = false;
|
||||
|
||||
- private AmbientApiClient mClient;
|
||||
-
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
- mClient = new AmbientApiClient.Builder(this)
|
||||
- .addApi(AnalyticsServices.API)
|
||||
- .build();
|
||||
- mClient.connect();
|
||||
}
|
||||
|
||||
public void sendEvent(Event event) {
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, "sendEvent() called with event = [" + event + "]");
|
||||
}
|
||||
- AnalyticsServices.AnalyticsApi.sendEvent(mClient, event);
|
||||
}
|
||||
}
|
||||
diff --git a/src/org/cyanogenmod/audiofx/activity/ActivityMusic.java b/src/org/cyanogenmod/audiofx/activity/ActivityMusic.java
|
||||
index 411ba45..54ede87 100644
|
||||
--- a/src/org/cyanogenmod/audiofx/activity/ActivityMusic.java
|
||||
+++ b/src/org/cyanogenmod/audiofx/activity/ActivityMusic.java
|
||||
@@ -28,7 +28,6 @@ import android.view.View;
|
||||
import android.view.ViewStub;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.CompoundButton;
|
||||
-import com.cyanogen.ambient.analytics.Event;
|
||||
import org.cyanogenmod.audiofx.AudioFxApplication;
|
||||
import org.cyanogenmod.audiofx.Constants;
|
||||
import org.cyanogenmod.audiofx.R;
|
||||
@@ -36,8 +35,6 @@ import org.cyanogenmod.audiofx.fragment.AudioFxFragment;
|
||||
import org.cyanogenmod.audiofx.knobs.KnobCommander;
|
||||
import org.cyanogenmod.audiofx.service.AudioFxService;
|
||||
import org.cyanogenmod.audiofx.service.DevicePreferenceManager;
|
||||
-import org.cyanogenmod.audiofx.stats.AppState;
|
||||
-import org.cyanogenmod.audiofx.stats.UserSession;
|
||||
|
||||
public class ActivityMusic extends Activity {
|
||||
|
||||
@@ -59,9 +56,6 @@ public class ActivityMusic extends Activity {
|
||||
@Override
|
||||
public void onCheckedChanged(final CompoundButton buttonView,
|
||||
final boolean isChecked) {
|
||||
- if (UserSession.getInstance() != null) {
|
||||
- UserSession.getInstance().deviceEnabledDisabled();
|
||||
- }
|
||||
mConfig.setCurrentDeviceEnabled(isChecked);
|
||||
}
|
||||
};
|
||||
@@ -174,20 +168,13 @@ public class ActivityMusic extends Activity {
|
||||
if (DEBUG) Log.i(TAG, "onResume() called with " + "");
|
||||
super.onResume();
|
||||
|
||||
- // initiate a new session
|
||||
- new UserSession(mCallingPackage);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
|
||||
- if (DEBUG) Log.d(TAG, "Session: " + UserSession.getInstance());
|
||||
|
||||
- final Event.Builder builder = new Event.Builder("session", "ended");
|
||||
- UserSession.getInstance().append(builder);
|
||||
- AppState.appendState(mConfig, KnobCommander.getInstance(this), builder);
|
||||
- ((AudioFxApplication) getApplicationContext()).sendEvent(builder.build());
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/org/cyanogenmod/audiofx/activity/EqualizerManager.java b/src/org/cyanogenmod/audiofx/activity/EqualizerManager.java
|
||||
index a9e0a6d..0fc928f 100644
|
||||
--- a/src/org/cyanogenmod/audiofx/activity/EqualizerManager.java
|
||||
+++ b/src/org/cyanogenmod/audiofx/activity/EqualizerManager.java
|
||||
@@ -26,7 +26,6 @@ import org.cyanogenmod.audiofx.Preset;
|
||||
import org.cyanogenmod.audiofx.R;
|
||||
import org.cyanogenmod.audiofx.eq.EqUtils;
|
||||
import org.cyanogenmod.audiofx.service.AudioFxService;
|
||||
-import org.cyanogenmod.audiofx.stats.UserSession;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -274,10 +273,6 @@ public class EqualizerManager {
|
||||
* @return the index that the levels were copied to
|
||||
*/
|
||||
private int addPreset(float[] levels) {
|
||||
- if (UserSession.getInstance() != null) {
|
||||
- UserSession.getInstance().presetCreated();
|
||||
- }
|
||||
-
|
||||
final int customPresets = Constants.getCustomPresets(mContext, mNumBands).size();
|
||||
// format the name so it's like "Custom <N>", start with "Custom 2"
|
||||
final String name = String.format(mContext.getString(R.string.custom_n), customPresets + 2);
|
||||
@@ -588,10 +583,6 @@ public class EqualizerManager {
|
||||
}
|
||||
|
||||
public void renameCurrentPreset(String s) {
|
||||
- if (UserSession.getInstance() != null) {
|
||||
- UserSession.getInstance().presetRenamed();
|
||||
- }
|
||||
-
|
||||
if (isUserPreset()) {
|
||||
((Preset.CustomPreset) getCurrentPreset()).setName(s);
|
||||
}
|
||||
@@ -602,10 +593,6 @@ public class EqualizerManager {
|
||||
}
|
||||
|
||||
public boolean removePreset(int index) {
|
||||
- if (UserSession.getInstance() != null) {
|
||||
- UserSession.getInstance().presetRemoved();
|
||||
- }
|
||||
-
|
||||
if (index > mEQCustomPresetPosition) {
|
||||
mEqPresets.remove(index);
|
||||
mConfig.getCallbacks().notifyPresetsChanged();
|
||||
diff --git a/src/org/cyanogenmod/audiofx/fragment/AudioFxFragment.java b/src/org/cyanogenmod/audiofx/fragment/AudioFxFragment.java
|
||||
index 582e3d6..89e4b91 100644
|
||||
--- a/src/org/cyanogenmod/audiofx/fragment/AudioFxFragment.java
|
||||
+++ b/src/org/cyanogenmod/audiofx/fragment/AudioFxFragment.java
|
||||
@@ -45,7 +45,6 @@ import org.cyanogenmod.audiofx.activity.ActivityMusic;
|
||||
import org.cyanogenmod.audiofx.activity.EqualizerManager;
|
||||
import org.cyanogenmod.audiofx.activity.MasterConfigControl;
|
||||
import org.cyanogenmod.audiofx.activity.StateCallbacks;
|
||||
-import org.cyanogenmod.audiofx.stats.UserSession;
|
||||
import org.cyanogenmod.audiofx.widget.InterceptableLinearLayout;
|
||||
|
||||
import java.util.List;
|
||||
@@ -337,7 +336,6 @@ public class AudioFxFragment extends Fragment implements StateCallbacks.DeviceCh
|
||||
AudioDeviceInfo device = mMenuItems.get(item);
|
||||
|
||||
if (device != null) {
|
||||
- UserSession.getInstance().deviceChanged();
|
||||
mDeviceChanging = true;
|
||||
if (item.isCheckable()) {
|
||||
item.setChecked(!item.isChecked());
|
||||
diff --git a/src/org/cyanogenmod/audiofx/fragment/ControlsFragment.java b/src/org/cyanogenmod/audiofx/fragment/ControlsFragment.java
|
||||
index 4a0eed6..9c9f5eb 100644
|
||||
--- a/src/org/cyanogenmod/audiofx/fragment/ControlsFragment.java
|
||||
+++ b/src/org/cyanogenmod/audiofx/fragment/ControlsFragment.java
|
||||
@@ -29,7 +29,6 @@ import org.cyanogenmod.audiofx.R;
|
||||
import org.cyanogenmod.audiofx.activity.MasterConfigControl;
|
||||
import org.cyanogenmod.audiofx.knobs.KnobCommander;
|
||||
import org.cyanogenmod.audiofx.knobs.KnobContainer;
|
||||
-import org.cyanogenmod.audiofx.stats.UserSession;
|
||||
|
||||
public class ControlsFragment extends AudioFxBaseFragment {
|
||||
|
||||
@@ -44,9 +43,6 @@ public class ControlsFragment extends AudioFxBaseFragment {
|
||||
= new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
- if (mConfig.getMaxxVolumeEnabled() != isChecked) {
|
||||
- UserSession.getInstance().maxxVolumeToggled();
|
||||
- }
|
||||
mConfig.setMaxxVolumeEnabled(isChecked);
|
||||
}
|
||||
};
|
||||
diff --git a/src/org/cyanogenmod/audiofx/fragment/EqualizerFragment.java b/src/org/cyanogenmod/audiofx/fragment/EqualizerFragment.java
|
||||
index 0f95365..7b459cf 100644
|
||||
--- a/src/org/cyanogenmod/audiofx/fragment/EqualizerFragment.java
|
||||
+++ b/src/org/cyanogenmod/audiofx/fragment/EqualizerFragment.java
|
||||
@@ -46,7 +46,6 @@ import org.cyanogenmod.audiofx.eq.EqContainerView;
|
||||
import org.cyanogenmod.audiofx.preset.InfinitePagerAdapter;
|
||||
import org.cyanogenmod.audiofx.preset.InfiniteViewPager;
|
||||
import org.cyanogenmod.audiofx.preset.PresetPagerAdapter;
|
||||
-import org.cyanogenmod.audiofx.stats.UserSession;
|
||||
import org.cyanogenmod.audiofx.viewpagerindicator.CirclePageIndicator;
|
||||
|
||||
public class EqualizerFragment extends AudioFxBaseFragment
|
||||
@@ -516,9 +515,6 @@ public class EqualizerFragment extends AudioFxBaseFragment
|
||||
mSelectedPosition = position;
|
||||
if (!mDeviceChanging) {
|
||||
mSelectedPositionBands = mEqManager.getPresetLevels(mSelectedPosition);
|
||||
- if (UserSession.getInstance() != null) {
|
||||
- UserSession.getInstance().presetSelected();
|
||||
- }
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/src/org/cyanogenmod/audiofx/knobs/RadialKnob.java b/src/org/cyanogenmod/audiofx/knobs/RadialKnob.java
|
||||
index 9f35835..b9bd045 100644
|
||||
--- a/src/org/cyanogenmod/audiofx/knobs/RadialKnob.java
|
||||
+++ b/src/org/cyanogenmod/audiofx/knobs/RadialKnob.java
|
||||
@@ -49,7 +49,6 @@ import android.view.View;
|
||||
import android.view.animation.AccelerateInterpolator;
|
||||
import android.widget.Toast;
|
||||
import org.cyanogenmod.audiofx.R;
|
||||
-import org.cyanogenmod.audiofx.stats.UserSession;
|
||||
|
||||
public class RadialKnob extends View {
|
||||
|
||||
@@ -456,8 +455,6 @@ public class RadialKnob extends View {
|
||||
}
|
||||
}
|
||||
if (mMoved) {
|
||||
- UserSession.getInstance()
|
||||
- .knobOptionsAdjusted(((KnobContainer.KnobInfo)getTag()).whichKnob);
|
||||
}
|
||||
mLastX = -1;
|
||||
mLastY = -1;
|
||||
diff --git a/src/org/cyanogenmod/audiofx/stats/AppState.java b/src/org/cyanogenmod/audiofx/stats/AppState.java
|
||||
deleted file mode 100644
|
||||
index 7ca0c9c..0000000
|
||||
--- a/src/org/cyanogenmod/audiofx/stats/AppState.java
|
||||
+++ /dev/null
|
||||
@@ -1,53 +0,0 @@
|
||||
-/*
|
||||
- * 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.
|
||||
- */
|
||||
-package org.cyanogenmod.audiofx.stats;
|
||||
-
|
||||
-import com.cyanogen.ambient.analytics.Event;
|
||||
-import org.cyanogenmod.audiofx.Preset;
|
||||
-import org.cyanogenmod.audiofx.activity.MasterConfigControl;
|
||||
-import org.cyanogenmod.audiofx.eq.EqUtils;
|
||||
-import org.cyanogenmod.audiofx.knobs.KnobCommander;
|
||||
-
|
||||
-public class AppState {
|
||||
- public static void appendState(MasterConfigControl control,
|
||||
- KnobCommander knobs, Event.Builder builder) {
|
||||
- // what's the current output device?
|
||||
- builder.addField("state_current_device", control.getCurrentDeviceIdentifier());
|
||||
-
|
||||
- // what preset? if custom, what name/values?
|
||||
- builder.addField("state_preset_name", control.getEqualizerManager().getCurrentPreset().getName());
|
||||
-
|
||||
- if (control.getEqualizerManager().getCurrentPreset() instanceof Preset.CustomPreset) {
|
||||
- builder.addField("state_custom_preset_values",
|
||||
- EqUtils.floatLevelsToString(control.getEqualizerManager().getCurrentPreset().getLevels()));
|
||||
- }
|
||||
-
|
||||
- // knob states
|
||||
- if (control.hasMaxxAudio()) {
|
||||
- builder.addField("state_maxx_volume", control.getMaxxVolumeEnabled());
|
||||
- }
|
||||
-
|
||||
- if (knobs.hasBassBoost()) {
|
||||
- builder.addField("state_knob_bass", knobs.getBassStrength());
|
||||
- }
|
||||
- if (knobs.hasTreble()) {
|
||||
- builder.addField("state_knob_treble", knobs.getTrebleStrength());
|
||||
- }
|
||||
- if (knobs.hasVirtualizer()) {
|
||||
- builder.addField("state_knob_virtualizer", knobs.getVirtualizerStrength());
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
diff --git a/src/org/cyanogenmod/audiofx/stats/UserSession.java b/src/org/cyanogenmod/audiofx/stats/UserSession.java
|
||||
deleted file mode 100644
|
||||
index 285edb3..0000000
|
||||
--- a/src/org/cyanogenmod/audiofx/stats/UserSession.java
|
||||
+++ /dev/null
|
||||
@@ -1,215 +0,0 @@
|
||||
-/*
|
||||
- * 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.
|
||||
- */
|
||||
-package org.cyanogenmod.audiofx.stats;
|
||||
-
|
||||
-import android.os.Parcel;
|
||||
-import android.os.Parcelable;
|
||||
-import com.cyanogen.ambient.analytics.Event;
|
||||
-import org.cyanogenmod.audiofx.Preset;
|
||||
-import org.cyanogenmod.audiofx.knobs.KnobCommander;
|
||||
-
|
||||
-public class UserSession implements Parcelable {
|
||||
-
|
||||
- private static final String SOURCE_NONE = "none";
|
||||
-
|
||||
- private static UserSession sSession;
|
||||
- public static final UserSession getInstance() {
|
||||
- return sSession;
|
||||
- }
|
||||
-
|
||||
- private String mSource;
|
||||
- private int mDevicesChanged;
|
||||
- private int mEnabledDisabledToggles;
|
||||
- private int mPresetsSelected;
|
||||
- private int mPresetsCreated;
|
||||
- private int mPresetsRemoved;
|
||||
- private int mPresetsRenamed;
|
||||
- private int mMaxxVolumeToggled;
|
||||
- private int mTrebleKnobAdjusted;
|
||||
- private int mBassKnobAdjusted;
|
||||
- private int mVirtualizerKnobAdjusted;
|
||||
-
|
||||
- public UserSession(String incomingPackageSource) {
|
||||
- if (incomingPackageSource == null) {
|
||||
- mSource = SOURCE_NONE;
|
||||
- } else {
|
||||
- mSource = incomingPackageSource;
|
||||
- }
|
||||
- sSession = this;
|
||||
- }
|
||||
-
|
||||
- public void deviceChanged() {
|
||||
- mDevicesChanged++;
|
||||
- }
|
||||
-
|
||||
- public void deviceEnabledDisabled() {
|
||||
- mEnabledDisabledToggles++;
|
||||
- }
|
||||
-
|
||||
- public void presetSelected() {
|
||||
- mPresetsSelected++;
|
||||
- }
|
||||
-
|
||||
- public void presetRemoved() {
|
||||
- mPresetsRemoved++;
|
||||
- }
|
||||
-
|
||||
- public void presetRenamed() {
|
||||
- mPresetsRenamed++;
|
||||
- }
|
||||
-
|
||||
- public void presetCreated() {
|
||||
- mPresetsCreated++;
|
||||
- }
|
||||
-
|
||||
- public void maxxVolumeToggled() {
|
||||
- mMaxxVolumeToggled++;
|
||||
- }
|
||||
-
|
||||
- public void knobOptionsAdjusted(int knob) {
|
||||
- switch (knob) {
|
||||
- case KnobCommander.KNOB_BASS:
|
||||
- mBassKnobAdjusted++;
|
||||
- break;
|
||||
- case KnobCommander.KNOB_TREBLE:
|
||||
- mTrebleKnobAdjusted++;
|
||||
- break;
|
||||
- case KnobCommander.KNOB_VIRTUALIZER:
|
||||
- mVirtualizerKnobAdjusted++;
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- public void append(Event.Builder builder) {
|
||||
- builder.addField("session_source", mSource);
|
||||
- if (mDevicesChanged > 0)
|
||||
- builder.addField("session_devices_changed_count", mDevicesChanged);
|
||||
- if (mEnabledDisabledToggles > 0)
|
||||
- builder.addField("session_devices_enabled_disabled_count", mEnabledDisabledToggles);
|
||||
- if (mPresetsSelected > 0)
|
||||
- builder.addField("session_presets_changed_count", mPresetsSelected);
|
||||
- if (mPresetsCreated > 0)
|
||||
- builder.addField("session_presets_created_count", mPresetsCreated);
|
||||
- if (mPresetsRemoved > 0)
|
||||
- builder.addField("session_presets_removed_count", mPresetsRemoved);
|
||||
- if (mPresetsRenamed > 0)
|
||||
- builder.addField("session_presets_renamed_count", mPresetsRenamed);
|
||||
- if (mMaxxVolumeToggled > 0)
|
||||
- builder.addField("session_maxx_volume_toggled", mMaxxVolumeToggled);
|
||||
- if (mBassKnobAdjusted > 0)
|
||||
- builder.addField("session_knobs_bass_adjusted_count", mBassKnobAdjusted);
|
||||
- if (mVirtualizerKnobAdjusted > 0)
|
||||
- builder.addField("session_knobs_virtualizer_adjusted_count", mVirtualizerKnobAdjusted);
|
||||
- if (mTrebleKnobAdjusted > 0)
|
||||
- builder.addField("session_knobs_treble_adjusted_count", mTrebleKnobAdjusted);
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public String toString() {
|
||||
- StringBuilder s = new StringBuilder(getClass().getName() + "[");
|
||||
- if (mSource != null) {
|
||||
- s.append("mSource=").append(mSource).append(", ");
|
||||
- }
|
||||
- if (mDevicesChanged > 0) {
|
||||
- s.append("mDevicesChanged=").append(mDevicesChanged).append(", ");
|
||||
- }
|
||||
- if (mEnabledDisabledToggles > 0) {
|
||||
- s.append("mEnabledDisabledToggles=").append(mEnabledDisabledToggles).append(", ");
|
||||
- }
|
||||
- if (mPresetsSelected > 0) {
|
||||
- s.append("mPresetsSelected=").append(mPresetsSelected).append(", ");
|
||||
- }
|
||||
- if (mPresetsCreated > 0) {
|
||||
- s.append("mPresetsCreated=").append(mPresetsCreated).append(", ");
|
||||
- }
|
||||
- if (mPresetsRemoved > 0) {
|
||||
- s.append("mPresetsRemoved=").append(mPresetsRemoved).append(", ");
|
||||
- }
|
||||
- if (mPresetsRenamed > 0) {
|
||||
- s.append("mPresetsRenamed=").append(mPresetsRenamed).append(", ");
|
||||
- }
|
||||
- if (mMaxxVolumeToggled > 0) {
|
||||
- s.append("mMaxxVolumeToggled=").append(mMaxxVolumeToggled).append(", ");
|
||||
- }
|
||||
- if (mBassKnobAdjusted > 0) {
|
||||
- s.append("mBassKnobAdjusted=").append(mBassKnobAdjusted).append(", ");
|
||||
- }
|
||||
- if (mVirtualizerKnobAdjusted > 0) {
|
||||
- s.append("mVirtualizerKnobAdjusted=").append(mVirtualizerKnobAdjusted).append(", ");
|
||||
- }
|
||||
- if (mTrebleKnobAdjusted > 0) {
|
||||
- s.append("mTrebleKnobAdjusted=").append(mTrebleKnobAdjusted).append(", ");
|
||||
- }
|
||||
- if (s.charAt(s.length() - 2) == ',') {
|
||||
- s.delete(s.length() - 2, s.length());
|
||||
- }
|
||||
- s.append("]");
|
||||
-
|
||||
- return s.toString();
|
||||
- }
|
||||
-
|
||||
- public static final Creator<UserSession> CREATOR = new Creator<UserSession>() {
|
||||
- @Override
|
||||
- public UserSession createFromParcel(Parcel in) {
|
||||
- return new UserSession(in);
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public UserSession[] newArray(int size) {
|
||||
- return new UserSession[size];
|
||||
- }
|
||||
- };
|
||||
-
|
||||
- @Override
|
||||
- public int describeContents() {
|
||||
- return 0;
|
||||
- }
|
||||
-
|
||||
- protected UserSession(Parcel in) {
|
||||
- mSource = in.readString();
|
||||
- mDevicesChanged = in.readInt();
|
||||
- mEnabledDisabledToggles = in.readInt();
|
||||
- mPresetsSelected = in.readInt();
|
||||
- mPresetsCreated = in.readInt();
|
||||
- mPresetsRemoved = in.readInt();
|
||||
- mPresetsRenamed = in.readInt();
|
||||
- mBassKnobAdjusted = in.readInt();
|
||||
- mVirtualizerKnobAdjusted = in.readInt();
|
||||
- mTrebleKnobAdjusted = in.readInt();
|
||||
- mMaxxVolumeToggled = in.readInt();
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void writeToParcel(Parcel dest, int flags) {
|
||||
- dest.writeString(mSource);
|
||||
- dest.writeInt(mDevicesChanged);
|
||||
- dest.writeInt(mEnabledDisabledToggles);
|
||||
- dest.writeInt(mPresetsSelected);
|
||||
- dest.writeInt(mPresetsCreated);
|
||||
- dest.writeInt(mPresetsRemoved);
|
||||
- dest.writeInt(mPresetsRenamed);
|
||||
- dest.writeInt(mBassKnobAdjusted);
|
||||
- dest.writeInt(mVirtualizerKnobAdjusted);
|
||||
- dest.writeInt(mTrebleKnobAdjusted);
|
||||
- dest.writeInt(mMaxxVolumeToggled);
|
||||
- }
|
||||
-
|
||||
- private static class State {
|
||||
- private String mOutputDevice;
|
||||
- private Preset mPreset;
|
||||
- private String mKnobsOpts;
|
||||
- }
|
||||
-}
|
||||
--
|
||||
2.9.3
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,36 @@
|
||||
From 66f4525e8f6603a9bceb2168a41ab1cdcea9c20e Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Sun, 10 Jul 2016 15:19:45 -0400
|
||||
Subject: [PATCH] Fix build failure
|
||||
|
||||
Change-Id: If17279e2d537f3d7f1e5e5df6ed5c444b3449719
|
||||
---
|
||||
src/com/android/incallui/AnswerPresenter.java | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/src/com/android/incallui/AnswerPresenter.java b/src/com/android/incallui/AnswerPresenter.java
|
||||
index b0619b1..31a824e 100644
|
||||
--- a/src/com/android/incallui/AnswerPresenter.java
|
||||
+++ b/src/com/android/incallui/AnswerPresenter.java
|
||||
@@ -127,6 +127,18 @@ public class AnswerPresenter extends Presenter<AnswerPresenter.AnswerUi>
|
||||
|
||||
public void notifyRefreshViceInfo(QtiViceInfo qtiViceInfo) {
|
||||
}
|
||||
+public void receiveCallTransferResponse(int result) {
|
||||
+
|
||||
+}
|
||||
+
|
||||
+public void notifyVopsStatus(boolean result) {
|
||||
+
|
||||
+}
|
||||
+
|
||||
+public void notifySsacStatus(boolean result) {
|
||||
+
|
||||
+}
|
||||
+
|
||||
};
|
||||
|
||||
/**
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,604 @@
|
||||
From b2252cf1a4b22d60dae76300415ad5bbc6cd0a89 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Brabham <optedoblivion@cyngn.com>
|
||||
Date: Fri, 9 Jan 2015 14:49:10 -0800
|
||||
Subject: [PATCH] DNSCrypt: Add settings for starting/stopping and configuring
|
||||
the DNSCrypt daemon.
|
||||
|
||||
Wire up to framework Settings.Secure
|
||||
|
||||
Change-Id: I846e30f7121460b1eed9879d9d225ffe1506050b
|
||||
---
|
||||
AndroidManifest.xml | 10 ++
|
||||
res/values/cm_strings.xml | 11 ++
|
||||
res/xml/dns_crypt_settings.xml | 38 +++++
|
||||
res/xml/privacy_settings_cyanogenmod.xml | 10 ++
|
||||
.../dnscrypt/DnsCryptPreferenceActivity.java | 149 ++++++++++++++++++++
|
||||
.../settings/dnscrypt/LoadConfigFileTask.java | 152 ++++++++++++++++++++
|
||||
.../dnscrypt/model/DnsCryptServerEntry.java | 155 +++++++++++++++++++++
|
||||
7 files changed, 525 insertions(+)
|
||||
create mode 100644 res/xml/dns_crypt_settings.xml
|
||||
create mode 100644 src/com/android/settings/dnscrypt/DnsCryptPreferenceActivity.java
|
||||
create mode 100644 src/com/android/settings/dnscrypt/LoadConfigFileTask.java
|
||||
create mode 100644 src/com/android/settings/dnscrypt/model/DnsCryptServerEntry.java
|
||||
|
||||
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
|
||||
index f38e0bc..ed95f32 100755
|
||||
--- a/AndroidManifest.xml
|
||||
+++ b/AndroidManifest.xml
|
||||
@@ -2868,6 +2868,16 @@
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
+ <activity
|
||||
+ android:name=".dnscrypt.DnsCryptPreferenceActivity"
|
||||
+ android:label="DNS Encryption"
|
||||
+ android:excludeFromRecents="true">
|
||||
+ <intent-filter>
|
||||
+ <action android:name="com.android.settings.action.ACTION_DNSCRYPT_SETTINGS" />
|
||||
+ <category android:name="android.intent.category.DEFAULT" />
|
||||
+ </intent-filter>
|
||||
+ </activity>
|
||||
+
|
||||
<activity android:name=".applications.ProtectedAppsActivity"
|
||||
android:label="@string/protected_apps"
|
||||
android:excludeFromRecents="true"
|
||||
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
|
||||
index 6b42f4e..51aff3c 100644
|
||||
--- a/res/values/cm_strings.xml
|
||||
+++ b/res/values/cm_strings.xml
|
||||
@@ -1163,4 +1163,15 @@
|
||||
<string name="restrict_app_cellular_title">Disable app cellular usage</string>
|
||||
<string name="restrict_app_cellular_summary">Prevent app from using cellular data connection</string>
|
||||
<string name="privacy_guard_internet_category">Internet</string>
|
||||
+
|
||||
+ <!-- DNS Encryption -->
|
||||
+ <string name="dns_enc_title">DNS encryption</string>
|
||||
+ <string name="dns_enc_summary">Manage DNS encryption settings</string>
|
||||
+ <string name="dns_enc_switch_title">Enable DNS encryption</string>
|
||||
+ <string name="dns_enc_switch_summary">Toggle execution of local DNS encryption service</string>
|
||||
+ <string name="dns_enc_cat_config_title">Configuration</string>
|
||||
+ <string name="dns_enc_server_title">DNS resolver list</string>
|
||||
+ <string name="dns_enc_server_summary">Select which server you want to use</string>
|
||||
+ <string name="dns_enc_resolver_label">DNS resolver: </string>
|
||||
+ <string name="dns_enc_resolvers_loading">Loading encrypted DNS resolver configuration...</string>
|
||||
</resources>
|
||||
diff --git a/res/xml/dns_crypt_settings.xml b/res/xml/dns_crypt_settings.xml
|
||||
new file mode 100644
|
||||
index 0000000..636f754
|
||||
--- /dev/null
|
||||
+++ b/res/xml/dns_crypt_settings.xml
|
||||
@@ -0,0 +1,38 @@
|
||||
+<?xml version="1.0" encoding="utf-8"?>
|
||||
+<!-- Copyright (C) 2008 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.
|
||||
+-->
|
||||
+
|
||||
+<PreferenceScreen
|
||||
+ xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
+ xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
|
||||
+ android:title="@string/radio_controls_title">
|
||||
+
|
||||
+ <SwitchPreference
|
||||
+ android:key="pref_toggle_dnscrypt"
|
||||
+ android:title="@string/dns_enc_switch_title"
|
||||
+ android:summary="@string/dns_enc_switch_summary"
|
||||
+ android:persistent="false"/>
|
||||
+
|
||||
+ <PreferenceCategory
|
||||
+ android:key="pref_cat_config"
|
||||
+ android:title="@string/dns_enc_cat_config_title">
|
||||
+ <ListPreference
|
||||
+ android:key="pref_server_list"
|
||||
+ android:title="@string/dns_enc_server_title"
|
||||
+ android:summary="@string/dns_enc_server_summary"
|
||||
+ android:persistent="false"/>
|
||||
+ </PreferenceCategory>
|
||||
+
|
||||
+</PreferenceScreen>
|
||||
diff --git a/res/xml/privacy_settings_cyanogenmod.xml b/res/xml/privacy_settings_cyanogenmod.xml
|
||||
index 256ca00..25221c2 100644
|
||||
--- a/res/xml/privacy_settings_cyanogenmod.xml
|
||||
+++ b/res/xml/privacy_settings_cyanogenmod.xml
|
||||
@@ -47,4 +47,14 @@
|
||||
android:targetPackage="com.android.settings"
|
||||
android:targetClass="com.android.settings.applications.ProtectedAppsActivity" />
|
||||
</Preference>
|
||||
+
|
||||
+ <PreferenceScreen
|
||||
+ android:key="key_dns_crypt"
|
||||
+ android:title="@string/dns_enc_title"
|
||||
+ android:summary="@string/dns_enc_summary">
|
||||
+ <intent
|
||||
+ android:action="com.android.settings.action.ACTION_DNSCRYPT_SETTINGS"
|
||||
+ android:targetPackage="com.android.settings"
|
||||
+ android:targetClass="com.android.settings.dnscrypt.DnsCryptPreferenceActivity" />
|
||||
+ </PreferenceScreen>
|
||||
</PreferenceScreen>
|
||||
diff --git a/src/com/android/settings/dnscrypt/DnsCryptPreferenceActivity.java b/src/com/android/settings/dnscrypt/DnsCryptPreferenceActivity.java
|
||||
new file mode 100644
|
||||
index 0000000..64f13c7
|
||||
--- /dev/null
|
||||
+++ b/src/com/android/settings/dnscrypt/DnsCryptPreferenceActivity.java
|
||||
@@ -0,0 +1,149 @@
|
||||
+/*
|
||||
+* 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.
|
||||
+*/
|
||||
+
|
||||
+package com.android.settings.dnscrypt;
|
||||
+
|
||||
+import android.app.ProgressDialog;
|
||||
+import android.os.Bundle;
|
||||
+import android.preference.ListPreference;
|
||||
+import android.preference.Preference;
|
||||
+import android.preference.Preference.OnPreferenceChangeListener;
|
||||
+import android.preference.PreferenceActivity;
|
||||
+import android.preference.SwitchPreference;
|
||||
+import android.provider.Settings;
|
||||
+import android.util.Log;
|
||||
+import com.android.settings.R;
|
||||
+import com.android.settings.dnscrypt.LoadConfigFileTask.ILoadConfigListener;
|
||||
+
|
||||
+import java.io.File;
|
||||
+
|
||||
+/**
|
||||
+ * DnsCryptSettingsFragment
|
||||
+ * <pre>
|
||||
+ * Screen for configuring and starting stopping encrypted dns daemon
|
||||
+ * </pre>
|
||||
+ *
|
||||
+ * @see {@link android.preference.PreferenceActivity}
|
||||
+ * @see {@link android.preference.Preference.OnPreferenceChangeListener}
|
||||
+ */
|
||||
+public class DnsCryptPreferenceActivity extends PreferenceActivity implements
|
||||
+ OnPreferenceChangeListener, ILoadConfigListener {
|
||||
+
|
||||
+ // Constants
|
||||
+ private static final String TAG = DnsCryptPreferenceActivity.class.getSimpleName();
|
||||
+ private static final String PREF_TOGGLE = "pref_toggle_dnscrypt";
|
||||
+ private static final String PREF_SERVER_LIST = "pref_server_list";
|
||||
+ private static final String CONFIG_FILE = "/system/etc/dnscrypt-resolvers.csv";
|
||||
+
|
||||
+ // Members
|
||||
+ private SwitchPreference mEncryptionSwitchPreference;
|
||||
+ private ListPreference mServerListPreference;
|
||||
+ private LoadConfigFileTask mLoadConfigFileTask;
|
||||
+ private String mDnsResolverLabel = "DNS provider";
|
||||
+
|
||||
+ // Views
|
||||
+ private ProgressDialog mProgressDialog;
|
||||
+
|
||||
+ @Override
|
||||
+ public void onCreate(Bundle savedInstanceState) {
|
||||
+ super.onCreate(savedInstanceState);
|
||||
+ getActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
+ getActionBar().setTitle(R.string.dns_enc_title);
|
||||
+ addPreferencesFromResource(R.xml.dns_crypt_settings);
|
||||
+ mEncryptionSwitchPreference = (SwitchPreference) findPreference(PREF_TOGGLE);
|
||||
+ mEncryptionSwitchPreference.setOnPreferenceChangeListener(this);
|
||||
+ mServerListPreference = (ListPreference) findPreference(PREF_SERVER_LIST);
|
||||
+ mServerListPreference.setOnPreferenceChangeListener(this);
|
||||
+ mDnsResolverLabel = getResources().getString(R.string.dns_enc_resolver_label);
|
||||
+ mProgressDialog = new ProgressDialog(this);
|
||||
+ mProgressDialog.setTitle(R.string.dns_enc_resolvers_loading);
|
||||
+ mProgressDialog.show();
|
||||
+ if (mLoadConfigFileTask == null) {
|
||||
+ mLoadConfigFileTask =
|
||||
+ new LoadConfigFileTask(new File(CONFIG_FILE), mProgressDialog, this);
|
||||
+ mLoadConfigFileTask.execute();
|
||||
+ }
|
||||
+ initPreferences();
|
||||
+ }
|
||||
+
|
||||
+ private void initPreferences() {
|
||||
+ boolean currentCheckedState = (Settings.Secure.getInt(getContentResolver(),
|
||||
+ Settings.Secure.DNS_ENCRYPTION_TOGGLE,
|
||||
+ Settings.Secure.DNS_ENCRYPTION_TOGGLE_DEFAULT) == 1);
|
||||
+ if (mEncryptionSwitchPreference != null) {
|
||||
+ mEncryptionSwitchPreference.setChecked(currentCheckedState);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean onPreferenceChange(Preference preference, Object o) {
|
||||
+ if (preference == mEncryptionSwitchPreference) {
|
||||
+ Boolean newCheckedState = (Boolean) o;
|
||||
+ mServerListPreference.setEnabled(newCheckedState);
|
||||
+ int setValue = (newCheckedState) ? 1 : 0;
|
||||
+ Settings.Secure.putInt(getContentResolver(), Settings.Secure.DNS_ENCRYPTION_TOGGLE,
|
||||
+ setValue);
|
||||
+ return true;
|
||||
+ } else if (preference == mServerListPreference) {
|
||||
+ String value = (String) o;
|
||||
+ int i;
|
||||
+ for (i = 0; i < mServerListPreference.getEntryValues().length; i++) {
|
||||
+ if (value.equals(mServerListPreference.getEntryValues()[i])) {
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ try {
|
||||
+ mServerListPreference.setSummary(mDnsResolverLabel +
|
||||
+ mServerListPreference.getEntries()[i]);
|
||||
+ } catch (ArrayIndexOutOfBoundsException oobe) {
|
||||
+ Log.e(TAG, "Error finding default value!");
|
||||
+ mServerListPreference.setSummary(R.string.dns_enc_server_summary);
|
||||
+ }
|
||||
+ Settings.Secure.putString(getContentResolver(), Settings.Secure
|
||||
+ .DNS_ENCRYPTION_SERVER, value);
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onConfigLoaded(CharSequence[] entries, CharSequence[] entryValues) {
|
||||
+ if (mServerListPreference != null && entries != null && entryValues != null) {
|
||||
+ mServerListPreference.setEntries(entries);
|
||||
+ mServerListPreference.setEntryValues(entryValues);
|
||||
+ String value = Settings.Secure.getString(getContentResolver(),
|
||||
+ Settings.Secure.DNS_ENCRYPTION_SERVER);
|
||||
+ value = (value == null) ? Settings.Secure.DNS_ENCRYPTION_SERVER_DEFAULT : value;
|
||||
+ mServerListPreference.setValue(value);
|
||||
+ int i;
|
||||
+ for (i = 0; i < mServerListPreference.getEntryValues().length; i++) {
|
||||
+ if (value.equals(mServerListPreference.getEntryValues()[i])) {
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ try {
|
||||
+ mServerListPreference.setSummary(mDnsResolverLabel
|
||||
+ + mServerListPreference.getEntries()[i]);
|
||||
+ } catch (ArrayIndexOutOfBoundsException oobe) {
|
||||
+ Log.e(TAG, "Error finding default value!", oobe);
|
||||
+ mServerListPreference.setSummary(R.string.dns_enc_server_summary);
|
||||
+ }
|
||||
+ mServerListPreference.setEnabled(mEncryptionSwitchPreference.isChecked());
|
||||
+ }
|
||||
+ mLoadConfigFileTask = null;
|
||||
+ mProgressDialog.dismiss();
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/com/android/settings/dnscrypt/LoadConfigFileTask.java b/src/com/android/settings/dnscrypt/LoadConfigFileTask.java
|
||||
new file mode 100644
|
||||
index 0000000..910e6c1
|
||||
--- /dev/null
|
||||
+++ b/src/com/android/settings/dnscrypt/LoadConfigFileTask.java
|
||||
@@ -0,0 +1,152 @@
|
||||
+/*
|
||||
+* 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.
|
||||
+*/
|
||||
+
|
||||
+package com.android.settings.dnscrypt;
|
||||
+
|
||||
+import android.app.ProgressDialog;
|
||||
+import android.os.AsyncTask;
|
||||
+import android.util.Log;
|
||||
+
|
||||
+import java.io.BufferedReader;
|
||||
+import java.io.File;
|
||||
+import java.io.FileInputStream;
|
||||
+import java.io.IOException;
|
||||
+import java.io.InputStreamReader;
|
||||
+import java.util.ArrayList;
|
||||
+import java.util.List;
|
||||
+
|
||||
+/**
|
||||
+ * LoadConfigFileTask
|
||||
+ * <pre>
|
||||
+ * This task will check if the config file exists in /system/etc and if so will load it for
|
||||
+ * configuration display in Settings
|
||||
+ * </pre>
|
||||
+ */
|
||||
+public class LoadConfigFileTask extends AsyncTask<Void, Integer, Void> {
|
||||
+
|
||||
+ // Constants
|
||||
+ private static final String TAG = LoadConfigFileTask.class.getSimpleName();
|
||||
+
|
||||
+ // Members
|
||||
+ private ILoadConfigListener mListener;
|
||||
+ private File mConfigFile;
|
||||
+ private ProgressDialog mProgressDialog;
|
||||
+ private CharSequence[] mEntries;
|
||||
+ private CharSequence[] mEntryValues;
|
||||
+
|
||||
+ /**
|
||||
+ * Constructor
|
||||
+ *
|
||||
+ * @param configFile {@link java.io.File}
|
||||
+ * @param progressDialog {@link android.app.ProgressDialog}
|
||||
+ * @throws IllegalArgumentException {@link java.lang.IllegalArgumentException}
|
||||
+ */
|
||||
+ public LoadConfigFileTask(File configFile, ProgressDialog progressDialog, ILoadConfigListener
|
||||
+ listener)
|
||||
+ throws IllegalArgumentException {
|
||||
+ if (configFile == null || !configFile.exists()) {
|
||||
+ throw new IllegalArgumentException("'configFile' must not be null and must exist!");
|
||||
+ }
|
||||
+ mConfigFile = configFile;
|
||||
+ mProgressDialog = progressDialog;
|
||||
+ mListener = listener;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onPreExecute() {
|
||||
+ if (mProgressDialog != null) {
|
||||
+ mProgressDialog.show();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onProgressUpdate(Integer... progress) {
|
||||
+ if (mProgressDialog != null) {
|
||||
+ mProgressDialog.setProgress(progress[0]);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public Void doInBackground(Void... params) {
|
||||
+
|
||||
+ if (mConfigFile == null || !mConfigFile.exists()) {
|
||||
+ Log.w(TAG, "No config file found....such strange!");
|
||||
+ // [TODO][MSB]: Download that sucker!
|
||||
+ // [TODO][MSB]: Perform sig check?
|
||||
+ return null;
|
||||
+ }
|
||||
+
|
||||
+ try {
|
||||
+ FileInputStream fis = new FileInputStream(mConfigFile);
|
||||
+ InputStreamReader reader = new InputStreamReader(fis);
|
||||
+ BufferedReader bufferedReader = new BufferedReader(reader);
|
||||
+ List<String> configLines = new ArrayList<String>();
|
||||
+ String line = "";
|
||||
+ while((line = bufferedReader.readLine()) != null) {
|
||||
+ configLines.add(line);
|
||||
+ }
|
||||
+ mEntries = new CharSequence[configLines.size() - 1];
|
||||
+ mEntryValues = new CharSequence[configLines.size() - 1];
|
||||
+ if (mProgressDialog != null) {
|
||||
+ mProgressDialog.setMax(configLines.size());
|
||||
+ }
|
||||
+ boolean skippedTitle = false;
|
||||
+ int progress = 0;
|
||||
+ int i = 0;
|
||||
+ for (String configLine : configLines) {
|
||||
+ if (!skippedTitle) {
|
||||
+ skippedTitle = true;
|
||||
+ progress++;
|
||||
+ continue;
|
||||
+ }
|
||||
+ String[] configParts = configLine.split(",");
|
||||
+ if (configParts.length > 3) {
|
||||
+ String name = configParts[0];
|
||||
+ String fullName = configParts[1];
|
||||
+ mEntries[i] = fullName;
|
||||
+ mEntryValues[i] = name;
|
||||
+ }
|
||||
+ i++;
|
||||
+ progress++;
|
||||
+ publishProgress(progress);
|
||||
+ }
|
||||
+ } catch (IOException e) {
|
||||
+ Log.e(TAG, e.getMessage());
|
||||
+ }
|
||||
+ return null;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onPostExecute(Void result) {
|
||||
+ if (mListener != null) {
|
||||
+ mListener.onConfigLoaded(mEntries, mEntryValues);
|
||||
+ }
|
||||
+ if (mProgressDialog != null) {
|
||||
+ mProgressDialog.dismiss();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * ILoadConfigListener
|
||||
+ * <pre>
|
||||
+ * Callback interface for passing back results
|
||||
+ * </pre>
|
||||
+ */
|
||||
+ public interface ILoadConfigListener {
|
||||
+ public void onConfigLoaded(CharSequence[] entries, CharSequence[] entryValues);
|
||||
+ }
|
||||
+
|
||||
+}
|
||||
diff --git a/src/com/android/settings/dnscrypt/model/DnsCryptServerEntry.java b/src/com/android/settings/dnscrypt/model/DnsCryptServerEntry.java
|
||||
new file mode 100644
|
||||
index 0000000..c0f2c75
|
||||
--- /dev/null
|
||||
+++ b/src/com/android/settings/dnscrypt/model/DnsCryptServerEntry.java
|
||||
@@ -0,0 +1,155 @@
|
||||
+/*
|
||||
+* 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.
|
||||
+*/
|
||||
+
|
||||
+package com.android.settings.dnscrypt.model;
|
||||
+
|
||||
+/**
|
||||
+ * DnsCryptServerEntry
|
||||
+ * <pre>
|
||||
+ * Model object for representing a dns crypt server entry
|
||||
+ * </pre>
|
||||
+ */
|
||||
+public class DnsCryptServerEntry {
|
||||
+
|
||||
+ // Members
|
||||
+ private String mName;
|
||||
+ private String mFullName;
|
||||
+ private String mDescription;
|
||||
+ private String mLocation;
|
||||
+ private String mCoords;
|
||||
+ private String mUrl;
|
||||
+ private String mVersion;
|
||||
+ private String mDnsSecValidation;
|
||||
+ private String mNoLogs;
|
||||
+ private String mNamecoin;
|
||||
+ private String mResolverAddress;
|
||||
+ private String mProviderName;
|
||||
+ private String mProviderPublicKey;
|
||||
+ private String mProviderPublicKeyTextRecord;
|
||||
+
|
||||
+ public String getName() {
|
||||
+ return mName;
|
||||
+ }
|
||||
+
|
||||
+ public void setName(String name) {
|
||||
+ mName = name;
|
||||
+ }
|
||||
+
|
||||
+ public String getFullName() {
|
||||
+ return mFullName;
|
||||
+ }
|
||||
+
|
||||
+ public void setFullName(String fullName) {
|
||||
+ mFullName = fullName;
|
||||
+ }
|
||||
+
|
||||
+ public String getDescription() {
|
||||
+ return mDescription;
|
||||
+ }
|
||||
+
|
||||
+ public void setDescription(String description) {
|
||||
+ mDescription = description;
|
||||
+ }
|
||||
+
|
||||
+ public String getLocation() {
|
||||
+ return mLocation;
|
||||
+ }
|
||||
+
|
||||
+ public void setLocation(String location) {
|
||||
+ mLocation = location;
|
||||
+ }
|
||||
+
|
||||
+ public String getCoords() {
|
||||
+ return mCoords;
|
||||
+ }
|
||||
+
|
||||
+ public void setCoords(String coords) {
|
||||
+ mCoords = coords;
|
||||
+ }
|
||||
+
|
||||
+ public String getUrl() {
|
||||
+ return mUrl;
|
||||
+ }
|
||||
+
|
||||
+ public void setUrl(String url) {
|
||||
+ mUrl = url;
|
||||
+ }
|
||||
+
|
||||
+ public String getVersion() {
|
||||
+ return mVersion;
|
||||
+ }
|
||||
+
|
||||
+ public void setVersion(String version) {
|
||||
+ mVersion = version;
|
||||
+ }
|
||||
+
|
||||
+ public String getDnsSecValidation() {
|
||||
+ return mDnsSecValidation;
|
||||
+ }
|
||||
+
|
||||
+ public void setDnsSecValidation(String dnsSecValidation) {
|
||||
+ mDnsSecValidation = dnsSecValidation;
|
||||
+ }
|
||||
+
|
||||
+ public String getNoLogs() {
|
||||
+ return mNoLogs;
|
||||
+ }
|
||||
+
|
||||
+ public void setNoLogs(String noLogs) {
|
||||
+ mNoLogs = noLogs;
|
||||
+ }
|
||||
+
|
||||
+ public String getNamecoin() {
|
||||
+ return mNamecoin;
|
||||
+ }
|
||||
+
|
||||
+ public void setNamecoin(String namecoin) {
|
||||
+ mNamecoin = namecoin;
|
||||
+ }
|
||||
+
|
||||
+ public String getResolverAddress() {
|
||||
+ return mResolverAddress;
|
||||
+ }
|
||||
+
|
||||
+ public void setResolverAddress(String resolverAddress) {
|
||||
+ mResolverAddress = resolverAddress;
|
||||
+ }
|
||||
+
|
||||
+ public String getProviderName() {
|
||||
+ return mProviderName;
|
||||
+ }
|
||||
+
|
||||
+ public void setProviderName(String providerName) {
|
||||
+ mProviderName = providerName;
|
||||
+ }
|
||||
+
|
||||
+ public String getProviderPublicKey() {
|
||||
+ return mProviderPublicKey;
|
||||
+ }
|
||||
+
|
||||
+ public void setProviderPublicKey(String providerPublicKey) {
|
||||
+ mProviderPublicKey = providerPublicKey;
|
||||
+ }
|
||||
+
|
||||
+ public String getProviderPublicKeyTextRecord() {
|
||||
+ return mProviderPublicKeyTextRecord;
|
||||
+ }
|
||||
+
|
||||
+ public void setProviderPublicKeyTextRecord(String providerPublicKeyTextRecord) {
|
||||
+ mProviderPublicKeyTextRecord = providerPublicKeyTextRecord;
|
||||
+ }
|
||||
+
|
||||
+}
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,231 @@
|
||||
From ef32dacb30b5c938d48ba294ff660b0cd5777dd6 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Mon, 18 Apr 2016 09:27:27 -0400
|
||||
Subject: [PATCH] Implement hostname Randomization
|
||||
|
||||
Change-Id: I00bfb9235979c2c80191cb0871716adaa3583e06
|
||||
---
|
||||
MAC_Rand.patch | 120 +++++++++++++++++++++++++
|
||||
res/values/cm_strings.xml | 4 +
|
||||
res/xml/wireless_settings.xml | 6 ++
|
||||
src/com/android/settings/WirelessSettings.java | 14 +++
|
||||
4 files changed, 144 insertions(+)
|
||||
create mode 100644 MAC_Rand.patch
|
||||
|
||||
diff --git a/MAC_Rand.patch b/MAC_Rand.patch
|
||||
new file mode 100644
|
||||
index 0000000..48ad1ec
|
||||
--- /dev/null
|
||||
+++ b/MAC_Rand.patch
|
||||
@@ -0,0 +1,120 @@
|
||||
+From e84a1e030313cbc2875c9d3ee1f016808d33dab3 Mon Sep 17 00:00:00 2001
|
||||
+From: Tad <tad@spotco.us>
|
||||
+Date: Mon, 18 Apr 2016 08:53:03 -0400
|
||||
+Subject: [PATCH] Implement MAC Randomization
|
||||
+
|
||||
+Change-Id: Id074d011eac7c33af267de4c1649670c32770cb5
|
||||
+---
|
||||
+ res/values/cm_strings.xml | 4 ++++
|
||||
+ res/xml/wireless_settings.xml | 6 ++++++
|
||||
+ src/com/android/settings/WirelessSettings.java | 24 +++++++++++++++++++++++-
|
||||
+ 3 files changed, 33 insertions(+), 1 deletion(-)
|
||||
+
|
||||
+diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
|
||||
+index 128660e..8aa4785 100644
|
||||
+--- a/res/values/cm_strings.xml
|
||||
++++ b/res/values/cm_strings.xml
|
||||
+@@ -1187,4 +1187,8 @@
|
||||
+
|
||||
+ <!-- Label for settings shortcut: carrier selection -->
|
||||
+ <string name="shortcut_carrier_title">Network operators</string>
|
||||
++
|
||||
++ <!-- randomize MAC addresses -->
|
||||
++ <string name="randomize_mac_title">Randomize MAC addresses</string>
|
||||
++ <string name="randomize_mac_summary">Assign random MAC addresses when network devices are enabled</string>
|
||||
+ </resources>
|
||||
+diff --git a/res/xml/wireless_settings.xml b/res/xml/wireless_settings.xml
|
||||
+index 8882003..4a2d5d0 100644
|
||||
+--- a/res/xml/wireless_settings.xml
|
||||
++++ b/res/xml/wireless_settings.xml
|
||||
+@@ -19,6 +19,12 @@
|
||||
+ android:title="@string/radio_controls_title">
|
||||
+
|
||||
+ <SwitchPreference
|
||||
++ android:key="randomize_mac"
|
||||
++ android:title="@string/randomize_mac_title"
|
||||
++ android:summary="@string/randomize_mac_summary"
|
||||
++ android:persistent="false" />
|
||||
++
|
||||
++ <SwitchPreference
|
||||
+ android:key="toggle_airplane"
|
||||
+ android:title="@string/airplane_mode"
|
||||
+ android:persistent="false"
|
||||
+diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java
|
||||
+index 4a0c9e3..4432940 100644
|
||||
+--- a/src/com/android/settings/WirelessSettings.java
|
||||
++++ b/src/com/android/settings/WirelessSettings.java
|
||||
+@@ -37,6 +37,7 @@ import android.os.SystemProperties;
|
||||
+ import android.os.UserHandle;
|
||||
+ import android.os.UserManager;
|
||||
+ import android.preference.Preference;
|
||||
++import android.preference.Preference.OnPreferenceChangeListener;
|
||||
+ import android.preference.PreferenceCategory;
|
||||
+ import android.preference.PreferenceScreen;
|
||||
+ import android.preference.SwitchPreference;
|
||||
+@@ -58,9 +59,11 @@ import java.util.ArrayList;
|
||||
+ import java.util.Arrays;
|
||||
+ import java.util.List;
|
||||
+
|
||||
+-public class WirelessSettings extends SettingsPreferenceFragment implements Indexable {
|
||||
++public class WirelessSettings extends SettingsPreferenceFragment
|
||||
++ implements OnPreferenceChangeListener, Indexable {
|
||||
+ private static final String TAG = "WirelessSettings";
|
||||
+
|
||||
++ private static final String KEY_RANDOMIZE_MAC = "randomize_mac";
|
||||
+ private static final String KEY_TOGGLE_AIRPLANE = "toggle_airplane";
|
||||
+ private static final String KEY_NFC_CATEGORY_SETTINGS = "nfc_category_settings";
|
||||
+ private static final String KEY_TOGGLE_NFC = "toggle_nfc";
|
||||
+@@ -76,9 +79,12 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde
|
||||
+ private static final String KEY_WFC_SETTINGS = "wifi_calling_settings";
|
||||
+ private static final String KEY_NFC_PAYMENT_SETTINGS = "nfc_payment_settings";
|
||||
+
|
||||
++ private static final String RANDOMIZE_PERSIST_PROP = "persist.privacy.randomize_mac";
|
||||
++
|
||||
+ public static final String EXIT_ECM_RESULT = "exit_ecm_result";
|
||||
+ public static final int REQUEST_CODE_EXIT_ECM = 1;
|
||||
+
|
||||
++ private SwitchPreference mRandomizeMac;
|
||||
+ private AirplaneModeEnabler mAirplaneModeEnabler;
|
||||
+ private SwitchPreference mAirplaneModePreference;
|
||||
+ private NfcEnabler mNfcEnabler;
|
||||
+@@ -232,6 +238,8 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde
|
||||
+ final boolean isSecondaryUser = myUserId != UserHandle.USER_OWNER;
|
||||
+
|
||||
+ final Activity activity = getActivity();
|
||||
++ mRandomizeMac = (SwitchPreference) findPreference(KEY_RANDOMIZE_MAC);
|
||||
++ mRandomizeMac.setOnPreferenceChangeListener(this);
|
||||
+ mAirplaneModePreference = (SwitchPreference) findPreference(KEY_TOGGLE_AIRPLANE);
|
||||
+ SwitchPreference nfc = (SwitchPreference) findPreference(KEY_TOGGLE_NFC);
|
||||
+ PreferenceScreen androidBeam = (PreferenceScreen) findPreference(KEY_ANDROID_BEAM_SETTINGS);
|
||||
+@@ -370,6 +378,10 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde
|
||||
+ public void onResume() {
|
||||
+ super.onResume();
|
||||
+
|
||||
++ if (mRandomizeMac != null) {
|
||||
++ mRandomizeMac.setChecked(SystemProperties.getBoolean(RANDOMIZE_PERSIST_PROP, true));
|
||||
++ }
|
||||
++
|
||||
+ mAirplaneModeEnabler.resume();
|
||||
+ if (mNfcEnabler != null) {
|
||||
+ mNfcEnabler.resume();
|
||||
+@@ -390,6 +402,16 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
++ @Override
|
||||
++ public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
++ if (preference == mRandomizeMac) {
|
||||
++ SystemProperties.set(RANDOMIZE_PERSIST_PROP, (Boolean) newValue ? "1" : "0");
|
||||
++ return true;
|
||||
++ }
|
||||
++
|
||||
++ return false;
|
||||
++ }
|
||||
++
|
||||
+ @Override
|
||||
+ public void onSaveInstanceState(Bundle outState) {
|
||||
+ super.onSaveInstanceState(outState);
|
||||
+--
|
||||
+2.8.0
|
||||
+
|
||||
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
|
||||
index 8aa4785..cb825c2 100644
|
||||
--- a/res/values/cm_strings.xml
|
||||
+++ b/res/values/cm_strings.xml
|
||||
@@ -1191,4 +1191,8 @@
|
||||
<!-- randomize MAC addresses -->
|
||||
<string name="randomize_mac_title">Randomize MAC addresses</string>
|
||||
<string name="randomize_mac_summary">Assign random MAC addresses when network devices are enabled</string>
|
||||
+
|
||||
+ <!-- randomize hostname -->
|
||||
+ <string name="randomize_hostname_title">Randomize network hostname</string>
|
||||
+ <string name="randomize_hostname_summary">Assign random network hostname on boot</string>
|
||||
</resources>
|
||||
diff --git a/res/xml/wireless_settings.xml b/res/xml/wireless_settings.xml
|
||||
index 4a2d5d0..905e8de 100644
|
||||
--- a/res/xml/wireless_settings.xml
|
||||
+++ b/res/xml/wireless_settings.xml
|
||||
@@ -25,6 +25,12 @@
|
||||
android:persistent="false" />
|
||||
|
||||
<SwitchPreference
|
||||
+ android:key="randomize_hostname"
|
||||
+ android:title="@string/randomize_hostname_title"
|
||||
+ android:summary="@string/randomize_hostname_summary"
|
||||
+ android:persistent="false" />
|
||||
+
|
||||
+ <SwitchPreference
|
||||
android:key="toggle_airplane"
|
||||
android:title="@string/airplane_mode"
|
||||
android:persistent="false"
|
||||
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java
|
||||
index 4432940..6ce772e 100644
|
||||
--- a/src/com/android/settings/WirelessSettings.java
|
||||
+++ b/src/com/android/settings/WirelessSettings.java
|
||||
@@ -64,6 +64,7 @@ public class WirelessSettings extends SettingsPreferenceFragment
|
||||
private static final String TAG = "WirelessSettings";
|
||||
|
||||
private static final String KEY_RANDOMIZE_MAC = "randomize_mac";
|
||||
+ private static final String KEY_RANDOMIZE_HOST = "randomize_hostname";
|
||||
private static final String KEY_TOGGLE_AIRPLANE = "toggle_airplane";
|
||||
private static final String KEY_NFC_CATEGORY_SETTINGS = "nfc_category_settings";
|
||||
private static final String KEY_TOGGLE_NFC = "toggle_nfc";
|
||||
@@ -80,11 +81,13 @@ public class WirelessSettings extends SettingsPreferenceFragment
|
||||
private static final String KEY_NFC_PAYMENT_SETTINGS = "nfc_payment_settings";
|
||||
|
||||
private static final String RANDOMIZE_PERSIST_PROP = "persist.privacy.randomize_mac";
|
||||
+ private static final String RANDOMIZE_HOST_PERSIST_PROP = "persist.privacy.randomize_host";
|
||||
|
||||
public static final String EXIT_ECM_RESULT = "exit_ecm_result";
|
||||
public static final int REQUEST_CODE_EXIT_ECM = 1;
|
||||
|
||||
private SwitchPreference mRandomizeMac;
|
||||
+ private SwitchPreference mRandomizeHost;
|
||||
private AirplaneModeEnabler mAirplaneModeEnabler;
|
||||
private SwitchPreference mAirplaneModePreference;
|
||||
private NfcEnabler mNfcEnabler;
|
||||
@@ -240,6 +243,8 @@ public class WirelessSettings extends SettingsPreferenceFragment
|
||||
final Activity activity = getActivity();
|
||||
mRandomizeMac = (SwitchPreference) findPreference(KEY_RANDOMIZE_MAC);
|
||||
mRandomizeMac.setOnPreferenceChangeListener(this);
|
||||
+ mRandomizeHost = (SwitchPreference) findPreference(KEY_RANDOMIZE_HOST);
|
||||
+ mRandomizeHost.setOnPreferenceChangeListener(this);
|
||||
mAirplaneModePreference = (SwitchPreference) findPreference(KEY_TOGGLE_AIRPLANE);
|
||||
SwitchPreference nfc = (SwitchPreference) findPreference(KEY_TOGGLE_NFC);
|
||||
PreferenceScreen androidBeam = (PreferenceScreen) findPreference(KEY_ANDROID_BEAM_SETTINGS);
|
||||
@@ -382,6 +387,10 @@ public class WirelessSettings extends SettingsPreferenceFragment
|
||||
mRandomizeMac.setChecked(SystemProperties.getBoolean(RANDOMIZE_PERSIST_PROP, true));
|
||||
}
|
||||
|
||||
+ if (mRandomizeHost != null) {
|
||||
+ mRandomizeHost.setChecked(SystemProperties.getBoolean(RANDOMIZE_HOST_PERSIST_PROP, true));
|
||||
+ }
|
||||
+
|
||||
mAirplaneModeEnabler.resume();
|
||||
if (mNfcEnabler != null) {
|
||||
mNfcEnabler.resume();
|
||||
@@ -409,6 +418,11 @@ public class WirelessSettings extends SettingsPreferenceFragment
|
||||
return true;
|
||||
}
|
||||
|
||||
+ if (preference == mRandomizeHost) {
|
||||
+ SystemProperties.set(RANDOMIZE_HOST_PERSIST_PROP, (Boolean) newValue ? "1" : "0");
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
return false;
|
||||
}
|
||||
|
||||
--
|
||||
2.8.0
|
||||
|
@ -0,0 +1,120 @@
|
||||
From e84a1e030313cbc2875c9d3ee1f016808d33dab3 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Mon, 18 Apr 2016 08:53:03 -0400
|
||||
Subject: [PATCH] Implement MAC Randomization
|
||||
|
||||
Change-Id: Id074d011eac7c33af267de4c1649670c32770cb5
|
||||
---
|
||||
res/values/cm_strings.xml | 4 ++++
|
||||
res/xml/wireless_settings.xml | 6 ++++++
|
||||
src/com/android/settings/WirelessSettings.java | 24 +++++++++++++++++++++++-
|
||||
3 files changed, 33 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
|
||||
index 128660e..8aa4785 100644
|
||||
--- a/res/values/cm_strings.xml
|
||||
+++ b/res/values/cm_strings.xml
|
||||
@@ -1187,4 +1187,8 @@
|
||||
|
||||
<!-- Label for settings shortcut: carrier selection -->
|
||||
<string name="shortcut_carrier_title">Network operators</string>
|
||||
+
|
||||
+ <!-- randomize MAC addresses -->
|
||||
+ <string name="randomize_mac_title">Randomize MAC addresses</string>
|
||||
+ <string name="randomize_mac_summary">Assign random MAC addresses when network devices are enabled</string>
|
||||
</resources>
|
||||
diff --git a/res/xml/wireless_settings.xml b/res/xml/wireless_settings.xml
|
||||
index 8882003..4a2d5d0 100644
|
||||
--- a/res/xml/wireless_settings.xml
|
||||
+++ b/res/xml/wireless_settings.xml
|
||||
@@ -19,6 +19,12 @@
|
||||
android:title="@string/radio_controls_title">
|
||||
|
||||
<SwitchPreference
|
||||
+ android:key="randomize_mac"
|
||||
+ android:title="@string/randomize_mac_title"
|
||||
+ android:summary="@string/randomize_mac_summary"
|
||||
+ android:persistent="false" />
|
||||
+
|
||||
+ <SwitchPreference
|
||||
android:key="toggle_airplane"
|
||||
android:title="@string/airplane_mode"
|
||||
android:persistent="false"
|
||||
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java
|
||||
index 4a0c9e3..4432940 100644
|
||||
--- a/src/com/android/settings/WirelessSettings.java
|
||||
+++ b/src/com/android/settings/WirelessSettings.java
|
||||
@@ -37,6 +37,7 @@ import android.os.SystemProperties;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.preference.Preference;
|
||||
+import android.preference.Preference.OnPreferenceChangeListener;
|
||||
import android.preference.PreferenceCategory;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.preference.SwitchPreference;
|
||||
@@ -58,9 +59,11 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
-public class WirelessSettings extends SettingsPreferenceFragment implements Indexable {
|
||||
+public class WirelessSettings extends SettingsPreferenceFragment
|
||||
+ implements OnPreferenceChangeListener, Indexable {
|
||||
private static final String TAG = "WirelessSettings";
|
||||
|
||||
+ private static final String KEY_RANDOMIZE_MAC = "randomize_mac";
|
||||
private static final String KEY_TOGGLE_AIRPLANE = "toggle_airplane";
|
||||
private static final String KEY_NFC_CATEGORY_SETTINGS = "nfc_category_settings";
|
||||
private static final String KEY_TOGGLE_NFC = "toggle_nfc";
|
||||
@@ -76,9 +79,12 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde
|
||||
private static final String KEY_WFC_SETTINGS = "wifi_calling_settings";
|
||||
private static final String KEY_NFC_PAYMENT_SETTINGS = "nfc_payment_settings";
|
||||
|
||||
+ private static final String RANDOMIZE_PERSIST_PROP = "persist.privacy.randomize_mac";
|
||||
+
|
||||
public static final String EXIT_ECM_RESULT = "exit_ecm_result";
|
||||
public static final int REQUEST_CODE_EXIT_ECM = 1;
|
||||
|
||||
+ private SwitchPreference mRandomizeMac;
|
||||
private AirplaneModeEnabler mAirplaneModeEnabler;
|
||||
private SwitchPreference mAirplaneModePreference;
|
||||
private NfcEnabler mNfcEnabler;
|
||||
@@ -232,6 +238,8 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde
|
||||
final boolean isSecondaryUser = myUserId != UserHandle.USER_OWNER;
|
||||
|
||||
final Activity activity = getActivity();
|
||||
+ mRandomizeMac = (SwitchPreference) findPreference(KEY_RANDOMIZE_MAC);
|
||||
+ mRandomizeMac.setOnPreferenceChangeListener(this);
|
||||
mAirplaneModePreference = (SwitchPreference) findPreference(KEY_TOGGLE_AIRPLANE);
|
||||
SwitchPreference nfc = (SwitchPreference) findPreference(KEY_TOGGLE_NFC);
|
||||
PreferenceScreen androidBeam = (PreferenceScreen) findPreference(KEY_ANDROID_BEAM_SETTINGS);
|
||||
@@ -370,6 +378,10 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
+ if (mRandomizeMac != null) {
|
||||
+ mRandomizeMac.setChecked(SystemProperties.getBoolean(RANDOMIZE_PERSIST_PROP, true));
|
||||
+ }
|
||||
+
|
||||
mAirplaneModeEnabler.resume();
|
||||
if (mNfcEnabler != null) {
|
||||
mNfcEnabler.resume();
|
||||
@@ -390,6 +402,16 @@ public class WirelessSettings extends SettingsPreferenceFragment implements Inde
|
||||
}
|
||||
}
|
||||
|
||||
+ @Override
|
||||
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
+ if (preference == mRandomizeMac) {
|
||||
+ SystemProperties.set(RANDOMIZE_PERSIST_PROP, (Boolean) newValue ? "1" : "0");
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
public void onSaveInstanceState(Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
--
|
||||
2.8.0
|
||||
|
@ -0,0 +1,971 @@
|
||||
From 20b2e611f53c505bfeb5d76176bc0efab9fdf216 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Wed, 24 Feb 2016 08:41:10 -0500
|
||||
Subject: [PATCH] Remove analytics
|
||||
|
||||
Change-Id: I8ef6bc93aa3e8a256bfd137a982d50c15100d4f0
|
||||
---
|
||||
AndroidManifest.xml | 26 --
|
||||
res/xml/anonymous_stats.xml | 32 ---
|
||||
res/xml/privacy_settings_cyanogenmod.xml | 8 -
|
||||
.../android/settings/cmstats/AnonymousStats.java | 107 --------
|
||||
src/com/android/settings/cmstats/PreviewData.java | 55 ----
|
||||
.../android/settings/cmstats/ReportingService.java | 106 --------
|
||||
.../settings/cmstats/ReportingServiceManager.java | 123 ---------
|
||||
.../settings/cmstats/StatsUploadJobService.java | 291 ---------------------
|
||||
src/com/android/settings/cmstats/Utilities.java | 102 --------
|
||||
.../settings/cyanogenmod/PrivacySettings.java | 3 -
|
||||
10 files changed, 853 deletions(-)
|
||||
delete mode 100644 res/xml/anonymous_stats.xml
|
||||
delete mode 100644 src/com/android/settings/cmstats/AnonymousStats.java
|
||||
delete mode 100644 src/com/android/settings/cmstats/PreviewData.java
|
||||
delete mode 100644 src/com/android/settings/cmstats/ReportingService.java
|
||||
delete mode 100644 src/com/android/settings/cmstats/ReportingServiceManager.java
|
||||
delete mode 100644 src/com/android/settings/cmstats/StatsUploadJobService.java
|
||||
delete mode 100644 src/com/android/settings/cmstats/Utilities.java
|
||||
|
||||
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
|
||||
index 775dbf0..f0ca92f 100755
|
||||
--- a/AndroidManifest.xml
|
||||
+++ b/AndroidManifest.xml
|
||||
@@ -1556,12 +1556,6 @@
|
||||
|
||||
<activity android:name=".EncryptionInterstitial"/>
|
||||
|
||||
- <service android:label="ReportingService"
|
||||
- android:enabled="true"
|
||||
- android:exported="false"
|
||||
- android:name=".cmstats.ReportingService">
|
||||
- </service>
|
||||
-
|
||||
<!-- Runs in the phone process since it needs access to the Phone object -->
|
||||
<activity android:name=".deviceinfo.Status"
|
||||
android:label="@string/device_status_activity_title"
|
||||
@@ -2674,26 +2668,6 @@
|
||||
</intent-filter>$
|
||||
</receiver>
|
||||
|
||||
- <!-- Anonymous Statistics -->
|
||||
- <receiver android:name=".cmstats.ReportingServiceManager"
|
||||
- android:enabled="true"
|
||||
- android:exported="false"
|
||||
- android:label="ReportingServiceManager">
|
||||
- <intent-filter>
|
||||
- <action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
- <action android:name="com.android.settings.action.TRIGGER_REPORT_METRICS" />
|
||||
- </intent-filter>
|
||||
- </receiver>
|
||||
-
|
||||
- <service android:label="ReportingService"
|
||||
- android:enabled="true"
|
||||
- android:exported="false"
|
||||
- android:name=".cmstats.ReportingService">
|
||||
- </service>
|
||||
-
|
||||
- <service android:name=".cmstats.StatsUploadJobService"
|
||||
- android:permission="android.permission.BIND_JOB_SERVICE" />
|
||||
-
|
||||
<!-- Watch for ContactsContract.Profile changes and update the user's photo. -->
|
||||
<receiver android:name=".users.ProfileUpdateReceiver">
|
||||
<intent-filter>
|
||||
diff --git a/res/xml/anonymous_stats.xml b/res/xml/anonymous_stats.xml
|
||||
deleted file mode 100644
|
||||
index 0f3b8e2..0000000
|
||||
--- a/res/xml/anonymous_stats.xml
|
||||
+++ /dev/null
|
||||
@@ -1,32 +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.
|
||||
--->
|
||||
-
|
||||
-<PreferenceScreen
|
||||
- xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
- android:title="@string/anonymous_statistics_title"
|
||||
- xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
|
||||
-
|
||||
- <com.android.settings.cyanogenmod.CMSecureSettingSwitchPreference
|
||||
- android:key="stats_collection"
|
||||
- android:title="@string/stats_collection_title"
|
||||
- android:summary="@string/stats_collection_summary"
|
||||
- android:defaultValue="true" />
|
||||
-
|
||||
- <PreferenceScreen
|
||||
- android:title="@string/preview_data_title"
|
||||
- android:fragment="com.android.settings.cmstats.PreviewData" />
|
||||
-
|
||||
-</PreferenceScreen>
|
||||
diff --git a/res/xml/privacy_settings_cyanogenmod.xml b/res/xml/privacy_settings_cyanogenmod.xml
|
||||
index 256ca00..04f8643 100644
|
||||
--- a/res/xml/privacy_settings_cyanogenmod.xml
|
||||
+++ b/res/xml/privacy_settings_cyanogenmod.xml
|
||||
@@ -29,14 +29,6 @@
|
||||
android:summary="@string/blacklist_summary"
|
||||
android:fragment="com.android.settings.blacklist.BlacklistSettings" />
|
||||
|
||||
- <!-- Anonymous statistics - (CMStats) -->
|
||||
- <PreferenceScreen
|
||||
- android:key="cmstats"
|
||||
- android:title="@string/anonymous_statistics_title"
|
||||
- android:summary="@string/anonymous_statistics_summary"
|
||||
- android:fragment="com.android.settings.cmstats.AnonymousStats" >
|
||||
- </PreferenceScreen>
|
||||
-
|
||||
<!-- Protected Apps! -->
|
||||
<Preference
|
||||
android:key="protected_apps_manager"
|
||||
diff --git a/src/com/android/settings/cmstats/AnonymousStats.java b/src/com/android/settings/cmstats/AnonymousStats.java
|
||||
deleted file mode 100644
|
||||
index 232a533..0000000
|
||||
--- a/src/com/android/settings/cmstats/AnonymousStats.java
|
||||
+++ /dev/null
|
||||
@@ -1,107 +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.
|
||||
- */
|
||||
-
|
||||
-package com.android.settings.cmstats;
|
||||
-
|
||||
-import android.content.Context;
|
||||
-import android.content.SharedPreferences;
|
||||
-import android.os.Bundle;
|
||||
-
|
||||
-import android.os.UserHandle;
|
||||
-import android.preference.Preference;
|
||||
-import android.preference.PreferenceScreen;
|
||||
-import android.preference.SwitchPreference;
|
||||
-import com.android.settings.R;
|
||||
-import com.android.settings.SettingsPreferenceFragment;
|
||||
-
|
||||
-import cyanogenmod.providers.CMSettings;
|
||||
-
|
||||
-import org.cyanogenmod.internal.logging.CMMetricsLogger;
|
||||
-
|
||||
-public class AnonymousStats extends SettingsPreferenceFragment {
|
||||
-
|
||||
- private static final String PREF_FILE_NAME = "CMStats";
|
||||
- /* package */ static final String ANONYMOUS_OPT_IN = "pref_anonymous_opt_in";
|
||||
- /* package */ static final String ANONYMOUS_LAST_CHECKED = "pref_anonymous_checked_in";
|
||||
-
|
||||
- /* package */ static final String KEY_LAST_JOB_ID = "last_job_id";
|
||||
- /* package */ static final int QUEUE_MAX_THRESHOLD = 1000;
|
||||
-
|
||||
- public static final String KEY_STATS = "stats_collection";
|
||||
-
|
||||
- SwitchPreference mStatsSwitch;
|
||||
-
|
||||
- public static SharedPreferences getPreferences(Context context) {
|
||||
- return context.getSharedPreferences(PREF_FILE_NAME, 0);
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void onCreate(Bundle savedInstanceState) {
|
||||
- super.onCreate(savedInstanceState);
|
||||
- addPreferencesFromResource(R.xml.anonymous_stats);
|
||||
- mStatsSwitch = (SwitchPreference) findPreference(KEY_STATS);
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
|
||||
- if (preference == mStatsSwitch) {
|
||||
- boolean checked = mStatsSwitch.isChecked();
|
||||
- if (checked) {
|
||||
- // clear opt out flags
|
||||
- CMSettings.Secure.putIntForUser(getContentResolver(),
|
||||
- CMSettings.Secure.STATS_COLLECTION_REPORTED, 0, UserHandle.USER_OWNER);
|
||||
- }
|
||||
- // will initiate opt out sequence if necessary
|
||||
- ReportingServiceManager.setAlarm(getActivity());
|
||||
- return true;
|
||||
- }
|
||||
- return super.onPreferenceTreeClick(preferenceScreen, preference);
|
||||
- }
|
||||
-
|
||||
- public static void updateLastSynced(Context context) {
|
||||
- getPreferences(context)
|
||||
- .edit()
|
||||
- .putLong(ANONYMOUS_LAST_CHECKED,System.currentTimeMillis())
|
||||
- .commit();
|
||||
- }
|
||||
-
|
||||
- private static int getLastJobId(Context context) {
|
||||
- return getPreferences(context).getInt(KEY_LAST_JOB_ID, 0);
|
||||
- }
|
||||
-
|
||||
- private static void setLastJobId(Context context, int id) {
|
||||
- getPreferences(context)
|
||||
- .edit()
|
||||
- .putInt(KEY_LAST_JOB_ID, id)
|
||||
- .commit();
|
||||
- }
|
||||
-
|
||||
- public static int getNextJobId(Context context) {
|
||||
- int lastId = getLastJobId(context);
|
||||
- if (lastId >= QUEUE_MAX_THRESHOLD) {
|
||||
- lastId = 1;
|
||||
- } else {
|
||||
- lastId += 1;
|
||||
- }
|
||||
- setLastJobId(context, lastId);
|
||||
- return lastId;
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- protected int getMetricsCategory() {
|
||||
- return CMMetricsLogger.ANONYMOUS_STATS;
|
||||
- }
|
||||
-}
|
||||
diff --git a/src/com/android/settings/cmstats/PreviewData.java b/src/com/android/settings/cmstats/PreviewData.java
|
||||
deleted file mode 100644
|
||||
index 0adacad..0000000
|
||||
--- a/src/com/android/settings/cmstats/PreviewData.java
|
||||
+++ /dev/null
|
||||
@@ -1,55 +0,0 @@
|
||||
-/*
|
||||
- * 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.
|
||||
- */
|
||||
-
|
||||
-package com.android.settings.cmstats;
|
||||
-
|
||||
-import android.content.Context;
|
||||
-import android.os.Bundle;
|
||||
-import android.preference.Preference;
|
||||
-import android.preference.PreferenceScreen;
|
||||
-
|
||||
-import com.android.settings.R;
|
||||
-import com.android.settings.SettingsPreferenceFragment;
|
||||
-import org.cyanogenmod.internal.logging.CMMetricsLogger;
|
||||
-
|
||||
-public class PreviewData extends SettingsPreferenceFragment {
|
||||
- private static final String UNIQUE_ID = "preview_id";
|
||||
- private static final String DEVICE = "preview_device";
|
||||
- private static final String VERSION = "preview_version";
|
||||
- private static final String COUNTRY = "preview_country";
|
||||
- private static final String CARRIER = "preview_carrier";
|
||||
-
|
||||
- @Override
|
||||
- public void onCreate(Bundle savedInstanceState) {
|
||||
- super.onCreate(savedInstanceState);
|
||||
-
|
||||
- addPreferencesFromResource(R.xml.preview_data);
|
||||
-
|
||||
- final PreferenceScreen prefSet = getPreferenceScreen();
|
||||
- final Context context = getActivity();
|
||||
-
|
||||
- prefSet.findPreference(UNIQUE_ID).setSummary(Utilities.getUniqueID(context));
|
||||
- prefSet.findPreference(DEVICE).setSummary(Utilities.getDevice());
|
||||
- prefSet.findPreference(VERSION).setSummary(Utilities.getModVersion());
|
||||
- prefSet.findPreference(COUNTRY).setSummary(Utilities.getCountryCode(context));
|
||||
- prefSet.findPreference(CARRIER).setSummary(Utilities.getCarrier(context));
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- protected int getMetricsCategory() {
|
||||
- return CMMetricsLogger.PREVIEW_DATA;
|
||||
- }
|
||||
-}
|
||||
diff --git a/src/com/android/settings/cmstats/ReportingService.java b/src/com/android/settings/cmstats/ReportingService.java
|
||||
deleted file mode 100644
|
||||
index 8410143..0000000
|
||||
--- a/src/com/android/settings/cmstats/ReportingService.java
|
||||
+++ /dev/null
|
||||
@@ -1,106 +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.
|
||||
- */
|
||||
-
|
||||
-package com.android.settings.cmstats;
|
||||
-
|
||||
-import android.app.IntentService;
|
||||
-import android.app.job.JobInfo;
|
||||
-import android.app.job.JobScheduler;
|
||||
-import android.content.ComponentName;
|
||||
-import android.content.Context;
|
||||
-import android.content.Intent;
|
||||
-import android.os.PersistableBundle;
|
||||
-import android.os.UserHandle;
|
||||
-import android.util.Log;
|
||||
-import cyanogenmod.providers.CMSettings;
|
||||
-
|
||||
-import java.util.List;
|
||||
-
|
||||
-public class ReportingService extends IntentService {
|
||||
- /* package */ static final String TAG = "CMStats";
|
||||
- private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||
-
|
||||
- public static final String EXTRA_OPTING_OUT = "cmstats::opt_out";
|
||||
-
|
||||
- public ReportingService() {
|
||||
- super(ReportingService.class.getSimpleName());
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- protected void onHandleIntent(Intent intent) {
|
||||
- JobScheduler js = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
|
||||
-
|
||||
- String deviceId = Utilities.getUniqueID(getApplicationContext());
|
||||
- String deviceName = Utilities.getDevice();
|
||||
- String deviceVersion = Utilities.getModVersion();
|
||||
- String deviceCountry = Utilities.getCountryCode(getApplicationContext());
|
||||
- String deviceCarrier = Utilities.getCarrier(getApplicationContext());
|
||||
- String deviceCarrierId = Utilities.getCarrierId(getApplicationContext());
|
||||
- boolean optOut = intent.getBooleanExtra(EXTRA_OPTING_OUT, false);
|
||||
-
|
||||
- final int cyanogenJobId = AnonymousStats.getNextJobId(getApplicationContext());
|
||||
- final int cmOrgJobId = AnonymousStats.getNextJobId(getApplicationContext());
|
||||
-
|
||||
- if (DEBUG) Log.d(TAG, "scheduling jobs id: " + cyanogenJobId + ", " + cmOrgJobId);
|
||||
-
|
||||
- PersistableBundle cyanogenBundle = new PersistableBundle();
|
||||
- cyanogenBundle.putBoolean(StatsUploadJobService.KEY_OPT_OUT, optOut);
|
||||
- cyanogenBundle.putString(StatsUploadJobService.KEY_DEVICE_NAME, deviceName);
|
||||
- cyanogenBundle.putString(StatsUploadJobService.KEY_UNIQUE_ID, deviceId);
|
||||
- cyanogenBundle.putString(StatsUploadJobService.KEY_VERSION, deviceVersion);
|
||||
- cyanogenBundle.putString(StatsUploadJobService.KEY_COUNTRY, deviceCountry);
|
||||
- cyanogenBundle.putString(StatsUploadJobService.KEY_CARRIER, deviceCarrier);
|
||||
- cyanogenBundle.putString(StatsUploadJobService.KEY_CARRIER_ID, deviceCarrierId);
|
||||
- cyanogenBundle.putLong(StatsUploadJobService.KEY_TIMESTAMP, System.currentTimeMillis());
|
||||
-
|
||||
- // get snapshot and persist it
|
||||
- PersistableBundle cmBundle = new PersistableBundle(cyanogenBundle);
|
||||
-
|
||||
- // set job types
|
||||
- cyanogenBundle.putInt(StatsUploadJobService.KEY_JOB_TYPE,
|
||||
- StatsUploadJobService.JOB_TYPE_CYANOGEN);
|
||||
- cmBundle.putInt(StatsUploadJobService.KEY_JOB_TYPE,
|
||||
- StatsUploadJobService.JOB_TYPE_CMORG);
|
||||
-
|
||||
- // schedule cyanogen stats upload
|
||||
- js.schedule(new JobInfo.Builder(cyanogenJobId, new ComponentName(getPackageName(),
|
||||
- StatsUploadJobService.class.getName()))
|
||||
- .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
|
||||
- .setMinimumLatency(1000)
|
||||
- .setExtras(cyanogenBundle)
|
||||
- .setPersisted(true)
|
||||
- .build());
|
||||
-
|
||||
- // schedule cmorg stats upload
|
||||
- js.schedule(new JobInfo.Builder(cmOrgJobId, new ComponentName(getPackageName(),
|
||||
- StatsUploadJobService.class.getName()))
|
||||
- .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
|
||||
- .setMinimumLatency(1000)
|
||||
- .setExtras(cmBundle)
|
||||
- .setPersisted(true)
|
||||
- .build());
|
||||
-
|
||||
- if (optOut) {
|
||||
- // we've successfully scheduled the opt out.
|
||||
- CMSettings.Secure.putIntForUser(getContentResolver(),
|
||||
- CMSettings.Secure.STATS_COLLECTION_REPORTED, 1, UserHandle.USER_OWNER);
|
||||
- }
|
||||
-
|
||||
- // reschedule
|
||||
- AnonymousStats.updateLastSynced(this);
|
||||
- ReportingServiceManager.setAlarm(this);
|
||||
- }
|
||||
-}
|
||||
diff --git a/src/com/android/settings/cmstats/ReportingServiceManager.java b/src/com/android/settings/cmstats/ReportingServiceManager.java
|
||||
deleted file mode 100644
|
||||
index bce1372..0000000
|
||||
--- a/src/com/android/settings/cmstats/ReportingServiceManager.java
|
||||
+++ /dev/null
|
||||
@@ -1,123 +0,0 @@
|
||||
-/*
|
||||
- * 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.
|
||||
- */
|
||||
-
|
||||
-package com.android.settings.cmstats;
|
||||
-
|
||||
-import android.app.AlarmManager;
|
||||
-import android.app.PendingIntent;
|
||||
-import android.app.job.JobScheduler;
|
||||
-import android.content.BroadcastReceiver;
|
||||
-import android.content.Context;
|
||||
-import android.content.Intent;
|
||||
-import android.content.SharedPreferences;
|
||||
-import android.os.UserHandle;
|
||||
-import android.util.Log;
|
||||
-import cyanogenmod.providers.CMSettings;
|
||||
-
|
||||
-public class ReportingServiceManager extends BroadcastReceiver {
|
||||
- private static final long MILLIS_PER_HOUR = 60L * 60L * 1000L;
|
||||
- private static final long MILLIS_PER_DAY = 24L * MILLIS_PER_HOUR;
|
||||
- private static final long UPDATE_INTERVAL = 1L * MILLIS_PER_DAY;
|
||||
-
|
||||
- private static final String TAG = ReportingServiceManager.class.getSimpleName();
|
||||
-
|
||||
- public static final String ACTION_LAUNCH_SERVICE =
|
||||
- "com.android.settings.action.TRIGGER_REPORT_METRICS";
|
||||
- public static final String EXTRA_FORCE = "force";
|
||||
-
|
||||
- @Override
|
||||
- public void onReceive(Context context, Intent intent) {
|
||||
- if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
|
||||
- setAlarm(context);
|
||||
- } else if (intent.getAction().equals(ACTION_LAUNCH_SERVICE)){
|
||||
- launchService(context, intent.getBooleanExtra(EXTRA_FORCE, false));
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * opt out if we haven't yet
|
||||
- */
|
||||
- public static void initiateOptOut(Context context) {
|
||||
- final boolean optOutReported = CMSettings.Secure.getIntForUser(context.getContentResolver(),
|
||||
- CMSettings.Secure.STATS_COLLECTION_REPORTED, 0, UserHandle.USER_OWNER) == 1;
|
||||
- if (!optOutReported) {
|
||||
- Intent intent = new Intent();
|
||||
- intent.setClass(context, ReportingService.class);
|
||||
- intent.putExtra(ReportingService.EXTRA_OPTING_OUT, true);
|
||||
- context.startServiceAsUser(intent, UserHandle.OWNER);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- public static void setAlarm(Context context) {
|
||||
- SharedPreferences prefs = AnonymousStats.getPreferences(context);
|
||||
- if (prefs.contains(AnonymousStats.ANONYMOUS_OPT_IN)) {
|
||||
- migrate(context, prefs);
|
||||
- }
|
||||
- if (!Utilities.isStatsCollectionEnabled(context)) {
|
||||
- initiateOptOut(context);
|
||||
- return;
|
||||
- }
|
||||
- long lastSynced = prefs.getLong(AnonymousStats.ANONYMOUS_LAST_CHECKED, 0);
|
||||
- if (lastSynced == 0) {
|
||||
- launchService(context, true); // service will reschedule the next alarm
|
||||
- return;
|
||||
- }
|
||||
- long millisFromNow = (lastSynced + UPDATE_INTERVAL) - System.currentTimeMillis();
|
||||
-
|
||||
- Intent intent = new Intent(ACTION_LAUNCH_SERVICE);
|
||||
- intent.setClass(context, ReportingServiceManager.class);
|
||||
-
|
||||
- AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
|
||||
- alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + millisFromNow,
|
||||
- PendingIntent.getBroadcast(context, 0, intent, 0));
|
||||
- Log.d(TAG, "Next sync attempt in : "
|
||||
- + (millisFromNow / MILLIS_PER_HOUR) + " hours");
|
||||
- }
|
||||
-
|
||||
- public static void launchService(Context context, boolean force) {
|
||||
- SharedPreferences prefs = AnonymousStats.getPreferences(context);
|
||||
-
|
||||
- if (!Utilities.isStatsCollectionEnabled(context)) {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- if (!force) {
|
||||
- long lastSynced = prefs.getLong(AnonymousStats.ANONYMOUS_LAST_CHECKED, 0);
|
||||
- if (lastSynced == 0) {
|
||||
- setAlarm(context);
|
||||
- return;
|
||||
- }
|
||||
- long timeElapsed = System.currentTimeMillis() - lastSynced;
|
||||
- if (timeElapsed < UPDATE_INTERVAL) {
|
||||
- long timeLeft = UPDATE_INTERVAL - timeElapsed;
|
||||
- Log.d(TAG, "Waiting for next sync : "
|
||||
- + timeLeft / MILLIS_PER_HOUR + " hours");
|
||||
- return;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- Intent intent = new Intent();
|
||||
- intent.setClass(context, ReportingService.class);
|
||||
- context.startServiceAsUser(intent, UserHandle.OWNER);
|
||||
- }
|
||||
-
|
||||
- private static void migrate(Context context, SharedPreferences prefs) {
|
||||
- Utilities.setStatsCollectionEnabled(context,
|
||||
- prefs.getBoolean(AnonymousStats.ANONYMOUS_OPT_IN, true));
|
||||
- prefs.edit().remove(AnonymousStats.ANONYMOUS_OPT_IN).commit();
|
||||
- }
|
||||
-
|
||||
-}
|
||||
diff --git a/src/com/android/settings/cmstats/StatsUploadJobService.java b/src/com/android/settings/cmstats/StatsUploadJobService.java
|
||||
deleted file mode 100644
|
||||
index 580a20f..0000000
|
||||
--- a/src/com/android/settings/cmstats/StatsUploadJobService.java
|
||||
+++ /dev/null
|
||||
@@ -1,291 +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.
|
||||
- */
|
||||
-
|
||||
-package com.android.settings.cmstats;
|
||||
-
|
||||
-import android.app.job.JobParameters;
|
||||
-import android.app.job.JobService;
|
||||
-import android.net.Uri;
|
||||
-import android.os.AsyncTask;
|
||||
-import android.os.PersistableBundle;
|
||||
-import android.util.ArrayMap;
|
||||
-import android.util.Log;
|
||||
-import com.android.settings.R;
|
||||
-import org.json.JSONException;
|
||||
-import org.json.JSONObject;
|
||||
-
|
||||
-import java.io.BufferedInputStream;
|
||||
-import java.io.BufferedReader;
|
||||
-import java.io.BufferedWriter;
|
||||
-import java.io.IOException;
|
||||
-import java.io.InputStream;
|
||||
-import java.io.InputStreamReader;
|
||||
-import java.io.OutputStream;
|
||||
-import java.io.OutputStreamWriter;
|
||||
-import java.net.HttpURLConnection;
|
||||
-import java.net.URL;
|
||||
-import java.util.Collections;
|
||||
-import java.util.Map;
|
||||
-
|
||||
-public class StatsUploadJobService extends JobService {
|
||||
-
|
||||
- private static final String TAG = StatsUploadJobService.class.getSimpleName();
|
||||
- private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||
-
|
||||
- public static final String KEY_JOB_TYPE = "job_type";
|
||||
- public static final int JOB_TYPE_CYANOGEN = 1;
|
||||
- public static final int JOB_TYPE_CMORG = 2;
|
||||
-
|
||||
- public static final String KEY_UNIQUE_ID = "uniqueId";
|
||||
- public static final String KEY_DEVICE_NAME = "deviceName";
|
||||
- public static final String KEY_VERSION = "version";
|
||||
- public static final String KEY_COUNTRY = "country";
|
||||
- public static final String KEY_CARRIER = "carrier";
|
||||
- public static final String KEY_CARRIER_ID = "carrierId";
|
||||
- public static final String KEY_TIMESTAMP = "timeStamp";
|
||||
- public static final String KEY_OPT_OUT = "optOut";
|
||||
-
|
||||
- private final Map<JobParameters, StatsUploadTask> mCurrentJobs
|
||||
- = Collections.synchronizedMap(new ArrayMap<JobParameters, StatsUploadTask>());
|
||||
-
|
||||
- @Override
|
||||
- public boolean onStartJob(JobParameters jobParameters) {
|
||||
- if (DEBUG)
|
||||
- Log.d(TAG, "onStartJob() called with " + "jobParameters = [" + jobParameters + "]");
|
||||
- final StatsUploadTask uploadTask = new StatsUploadTask(jobParameters);
|
||||
- mCurrentJobs.put(jobParameters, uploadTask);
|
||||
- uploadTask.execute((Void) null);
|
||||
- return true;
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public boolean onStopJob(JobParameters jobParameters) {
|
||||
- if (DEBUG)
|
||||
- Log.d(TAG, "onStopJob() called with " + "jobParameters = [" + jobParameters + "]");
|
||||
-
|
||||
- final StatsUploadTask cancelledJob;
|
||||
- cancelledJob = mCurrentJobs.remove(jobParameters);
|
||||
-
|
||||
- if (cancelledJob != null) {
|
||||
- // cancel the ongoing background task
|
||||
- cancelledJob.cancel(true);
|
||||
- return true; // reschedule
|
||||
- }
|
||||
-
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- private class StatsUploadTask extends AsyncTask<Void, Void, Boolean> {
|
||||
-
|
||||
- private JobParameters mJobParams;
|
||||
-
|
||||
- public StatsUploadTask(JobParameters jobParams) {
|
||||
- this.mJobParams = jobParams;
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- protected Boolean doInBackground(Void... params) {
|
||||
-
|
||||
- PersistableBundle extras = mJobParams.getExtras();
|
||||
-
|
||||
- String deviceId = extras.getString(KEY_UNIQUE_ID);
|
||||
- String deviceName = extras.getString(KEY_DEVICE_NAME);
|
||||
- String deviceVersion = extras.getString(KEY_VERSION);
|
||||
- String deviceCountry = extras.getString(KEY_COUNTRY);
|
||||
- String deviceCarrier = extras.getString(KEY_CARRIER);
|
||||
- String deviceCarrierId = extras.getString(KEY_CARRIER_ID);
|
||||
- long timeStamp = extras.getLong(KEY_TIMESTAMP);
|
||||
- boolean optOut = extras.getBoolean(KEY_OPT_OUT);
|
||||
-
|
||||
- boolean success = false;
|
||||
- int jobType = extras.getInt(KEY_JOB_TYPE, -1);
|
||||
- if (!isCancelled()) {
|
||||
- switch (jobType) {
|
||||
- case JOB_TYPE_CYANOGEN:
|
||||
- try {
|
||||
- JSONObject json = new JSONObject();
|
||||
- json.put("optOut", optOut);
|
||||
- json.put("uniqueId", deviceId);
|
||||
- json.put("deviceName", deviceName);
|
||||
- json.put("version", deviceVersion);
|
||||
- json.put("country", deviceCountry);
|
||||
- json.put("carrier", deviceCarrier);
|
||||
- json.put("carrierId", deviceCarrierId);
|
||||
- json.put("timestamp", timeStamp);
|
||||
-
|
||||
- success = uploadToCyanogen(json);
|
||||
- } catch (IOException | JSONException e) {
|
||||
- Log.e(TAG, "Could not upload stats checkin to cyanogen server", e);
|
||||
- success = false;
|
||||
- }
|
||||
- break;
|
||||
-
|
||||
- case JOB_TYPE_CMORG:
|
||||
- try {
|
||||
- success = uploadToCM(deviceId, deviceName, deviceVersion, deviceCountry,
|
||||
- deviceCarrier, deviceCarrierId, optOut);
|
||||
- } catch (IOException e) {
|
||||
- Log.e(TAG, "Could not upload stats checkin to commnity server", e);
|
||||
- success = false;
|
||||
- }
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
- if (DEBUG)
|
||||
- Log.d(TAG, "job id " + mJobParams.getJobId() + ", has finished with success="
|
||||
- + success);
|
||||
- return success;
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- protected void onPostExecute(Boolean success) {
|
||||
- mCurrentJobs.remove(mJobParams);
|
||||
- jobFinished(mJobParams, !success);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
-
|
||||
- private boolean uploadToCM(String deviceId, String deviceName, String deviceVersion,
|
||||
- String deviceCountry, String deviceCarrier, String deviceCarrierId,
|
||||
- boolean optOut)
|
||||
- throws IOException {
|
||||
-
|
||||
- final Uri uri = Uri.parse(getString(R.string.stats_cm_url)).buildUpon()
|
||||
- .appendQueryParameter("opt_out", optOut ? "1" : "0")
|
||||
- .appendQueryParameter("device_hash", deviceId)
|
||||
- .appendQueryParameter("device_name", deviceName)
|
||||
- .appendQueryParameter("device_version", deviceVersion)
|
||||
- .appendQueryParameter("device_country", deviceCountry)
|
||||
- .appendQueryParameter("device_carrier", deviceCarrier)
|
||||
- .appendQueryParameter("device_carrier_id", deviceCarrierId).build();
|
||||
- URL url = new URL(uri.toString());
|
||||
- HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
|
||||
- try {
|
||||
- urlConnection.setInstanceFollowRedirects(true);
|
||||
- urlConnection.setDoOutput(true);
|
||||
- urlConnection.connect();
|
||||
-
|
||||
- final int responseCode = urlConnection.getResponseCode();
|
||||
- if (DEBUG) Log.d(TAG, "cm server response code=" + responseCode);
|
||||
- final boolean success = responseCode == HttpURLConnection.HTTP_OK;
|
||||
- if (!success) {
|
||||
- Log.w(TAG, "failed sending, server returned: " + getResponse(urlConnection,
|
||||
- !success));
|
||||
- }
|
||||
- return success;
|
||||
- } finally {
|
||||
- urlConnection.disconnect();
|
||||
- }
|
||||
-
|
||||
- }
|
||||
-
|
||||
- private boolean uploadToCyanogen(JSONObject json)
|
||||
- throws IOException, JSONException {
|
||||
- String authToken = getAuthToken();
|
||||
-
|
||||
- if (authToken.isEmpty()) {
|
||||
- Log.w(TAG, "no auth token!");
|
||||
- }
|
||||
-
|
||||
- URL url = new URL(getString(R.string.stats_cyanogen_url));
|
||||
- HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
|
||||
- try {
|
||||
- urlConnection.setInstanceFollowRedirects(true);
|
||||
- urlConnection.setDoInput(true);
|
||||
- urlConnection.setDoOutput(true);
|
||||
-
|
||||
- urlConnection.setRequestProperty("Accept-Encoding", "identity");
|
||||
- urlConnection.setRequestProperty("Authorization", authToken);
|
||||
- urlConnection.setRequestProperty("Content-Type", "application/json");
|
||||
-
|
||||
- OutputStream os = urlConnection.getOutputStream();
|
||||
- BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
|
||||
- writer.write(json.toString());
|
||||
- writer.flush();
|
||||
- writer.close();
|
||||
- os.close();
|
||||
-
|
||||
- urlConnection.connect();
|
||||
-
|
||||
- final int responseCode = urlConnection.getResponseCode();
|
||||
- final boolean success = responseCode == HttpURLConnection.HTTP_OK;
|
||||
-
|
||||
- final String response = getResponse(urlConnection, !success);
|
||||
- if (DEBUG)
|
||||
- Log.d(TAG, "server responseCode: " + responseCode +", response=" + response);
|
||||
-
|
||||
- if (!success) {
|
||||
- Log.w(TAG, "failed sending, server returned: " + response);
|
||||
- }
|
||||
- return success;
|
||||
- } finally {
|
||||
- urlConnection.disconnect();
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- private String getAuthToken() {
|
||||
- HttpURLConnection urlConnection = null;
|
||||
- try {
|
||||
- URL url = new URL(getString(R.string.stats_cyanogen_token_url));
|
||||
- urlConnection = (HttpURLConnection) url.openConnection();
|
||||
- urlConnection.setInstanceFollowRedirects(true);
|
||||
- urlConnection.setDoInput(true);
|
||||
-
|
||||
- urlConnection.setRequestProperty("Accept-Encoding", "identity");
|
||||
- urlConnection.setRequestProperty("Content-Type", "text/plain");
|
||||
-
|
||||
- urlConnection.connect();
|
||||
-
|
||||
- final int responseCode = urlConnection.getResponseCode();
|
||||
- final boolean success = responseCode == HttpURLConnection.HTTP_OK;
|
||||
- if (DEBUG) Log.d(TAG, "server auth response code=" + responseCode);
|
||||
- final String response = getResponse(urlConnection, !success);
|
||||
- if (DEBUG)
|
||||
- Log.d(TAG, "server auth response=" + response);
|
||||
-
|
||||
- if (success) {
|
||||
- return response;
|
||||
- }
|
||||
- } catch (IOException e) {
|
||||
- Log.e(TAG, "error getting auth token", e);
|
||||
- } finally {
|
||||
- if (urlConnection != null) {
|
||||
- urlConnection.disconnect();
|
||||
- }
|
||||
- }
|
||||
- return "";
|
||||
- }
|
||||
-
|
||||
- private String getResponse(HttpURLConnection httpUrlConnection, boolean errorStream)
|
||||
- throws IOException {
|
||||
- InputStream responseStream = new BufferedInputStream(errorStream
|
||||
- ? httpUrlConnection.getErrorStream()
|
||||
- : httpUrlConnection.getInputStream());
|
||||
-
|
||||
- BufferedReader responseStreamReader = new BufferedReader(
|
||||
- new InputStreamReader(responseStream));
|
||||
- String line = "";
|
||||
- StringBuilder stringBuilder = new StringBuilder();
|
||||
- while ((line = responseStreamReader.readLine()) != null) {
|
||||
- stringBuilder.append(line).append("\n");
|
||||
- }
|
||||
- responseStreamReader.close();
|
||||
- responseStream.close();
|
||||
-
|
||||
- return stringBuilder.toString();
|
||||
- }
|
||||
-
|
||||
-}
|
||||
diff --git a/src/com/android/settings/cmstats/Utilities.java b/src/com/android/settings/cmstats/Utilities.java
|
||||
deleted file mode 100644
|
||||
index 1e98888..0000000
|
||||
--- a/src/com/android/settings/cmstats/Utilities.java
|
||||
+++ /dev/null
|
||||
@@ -1,102 +0,0 @@
|
||||
-/*
|
||||
- * 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.
|
||||
- */
|
||||
-
|
||||
-package com.android.settings.cmstats;
|
||||
-
|
||||
-import android.content.Context;
|
||||
-import android.os.Build;
|
||||
-import android.os.SystemProperties;
|
||||
-import android.provider.Settings;
|
||||
-import android.telephony.TelephonyManager;
|
||||
-import android.text.TextUtils;
|
||||
-
|
||||
-import cyanogenmod.providers.CMSettings;
|
||||
-
|
||||
-import java.math.BigInteger;
|
||||
-import java.net.NetworkInterface;
|
||||
-import java.security.MessageDigest;
|
||||
-
|
||||
-public class Utilities {
|
||||
- public static String getUniqueID(Context context) {
|
||||
- final String id = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
|
||||
- return digest(context.getPackageName() + id);
|
||||
- }
|
||||
-
|
||||
- public static String getCarrier(Context context) {
|
||||
- TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
||||
- String carrier = tm.getNetworkOperatorName();
|
||||
- if (TextUtils.isEmpty(carrier)) {
|
||||
- carrier = "Unknown";
|
||||
- }
|
||||
- return carrier;
|
||||
- }
|
||||
-
|
||||
- public static String getCarrierId(Context context) {
|
||||
- TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
||||
- String carrierId = tm.getNetworkOperator();
|
||||
- if (TextUtils.isEmpty(carrierId)) {
|
||||
- carrierId = "0";
|
||||
- }
|
||||
- return carrierId;
|
||||
- }
|
||||
-
|
||||
- public static String getCountryCode(Context context) {
|
||||
- TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
||||
- String countryCode = tm.getNetworkCountryIso();
|
||||
- if (TextUtils.isEmpty(countryCode)) {
|
||||
- countryCode = "Unknown";
|
||||
- }
|
||||
- return countryCode;
|
||||
- }
|
||||
-
|
||||
- public static String getDevice() {
|
||||
- return SystemProperties.get("ro.cm.device", Build.PRODUCT);
|
||||
- }
|
||||
-
|
||||
- public static String getModVersion() {
|
||||
- return SystemProperties.get("ro.cm.version", Build.DISPLAY);
|
||||
- }
|
||||
-
|
||||
- public static String digest(String input) {
|
||||
- try {
|
||||
- MessageDigest md = MessageDigest.getInstance("MD5");
|
||||
- return new BigInteger(1, md.digest(input.getBytes())).toString(16).toUpperCase();
|
||||
- } catch (Exception e) {
|
||||
- return null;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * Check to see if global stats are enabled.
|
||||
- * @param context
|
||||
- * @return Whether or not stats collection is enabled.
|
||||
- */
|
||||
- public static boolean isStatsCollectionEnabled(Context context) {
|
||||
- return CMSettings.Secure.getInt(context.getContentResolver(),
|
||||
- CMSettings.Secure.STATS_COLLECTION, 1) != 0;
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * Enabled or disable stats collection
|
||||
- * @param context
|
||||
- * @param enabled Boolean that sets collection being enabled.
|
||||
- */
|
||||
- public static void setStatsCollectionEnabled(Context context, boolean enabled) {
|
||||
- int enable = (enabled) ? 1 : 0;
|
||||
- CMSettings.Secure.putInt(context.getContentResolver(),
|
||||
- CMSettings.Secure.STATS_COLLECTION, enable);
|
||||
- }
|
||||
-}
|
||||
diff --git a/src/com/android/settings/cyanogenmod/PrivacySettings.java b/src/com/android/settings/cyanogenmod/PrivacySettings.java
|
||||
index f6a9c15..066063a 100644
|
||||
--- a/src/com/android/settings/cyanogenmod/PrivacySettings.java
|
||||
+++ b/src/com/android/settings/cyanogenmod/PrivacySettings.java
|
||||
@@ -32,7 +32,6 @@ import org.cyanogenmod.internal.logging.CMMetricsLogger;
|
||||
public class PrivacySettings extends SettingsPreferenceFragment {
|
||||
|
||||
private static final String KEY_BLACKLIST = "blacklist";
|
||||
- private static final String KEY_STATS = "cmstats";
|
||||
|
||||
private PreferenceScreen mBlacklist;
|
||||
|
||||
@@ -48,8 +47,6 @@ public class PrivacySettings extends SettingsPreferenceFragment {
|
||||
|
||||
boolean isOwner = Utils.isUserOwner();
|
||||
if (!isOwner) {
|
||||
- PreferenceScreen root = getPreferenceScreen();
|
||||
- root.removePreference(findPreference(KEY_STATS));
|
||||
}
|
||||
|
||||
// Determine options based on device telephony support
|
||||
--
|
||||
2.7.2
|
||||
|
@ -0,0 +1,954 @@
|
||||
From 353e522115eca684a4036f2005f64ab14123218f Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Fri, 8 Apr 2016 20:43:21 -0400
|
||||
Subject: [PATCH] Remove analytics
|
||||
|
||||
Change-Id: I4d38768fc22791f9e5085c56a22f94f335526c31
|
||||
---
|
||||
AndroidManifest.xml | 1 -
|
||||
.../setupwizard/cmstats/SetupStats.java | 162 ---------------------
|
||||
.../setupwizard/cmstats/StatsUtils.java | 44 ------
|
||||
.../setupwizard/setup/BluetoothSetupPage.java | 7 -
|
||||
.../setupwizard/setup/ChooseDataSimPage.java | 4 -
|
||||
.../setupwizard/setup/CyanogenServicesPage.java | 13 --
|
||||
.../setupwizard/setup/CyanogenSettingsPage.java | 56 -------
|
||||
.../setupwizard/setup/DateTimePage.java | 19 ---
|
||||
.../setupwizard/setup/FingerprintSetupPage.java | 4 -
|
||||
.../setupwizard/setup/GmsAccountPage.java | 23 ---
|
||||
.../setupwizard/setup/MobileDataPage.java | 4 -
|
||||
.../setupwizard/setup/OtherSettingsPage.java | 17 +--
|
||||
.../cyanogenmod/setupwizard/setup/SetupPage.java | 7 -
|
||||
.../cyanogenmod/setupwizard/setup/WelcomePage.java | 14 --
|
||||
.../setupwizard/setup/WifiSetupPage.java | 25 ----
|
||||
.../setupwizard/ui/SetupPageFragment.java | 3 -
|
||||
.../setupwizard/ui/SetupWizardActivity.java | 6 -
|
||||
.../util/EnableAccessibilityController.java | 3 -
|
||||
18 files changed, 1 insertion(+), 411 deletions(-)
|
||||
delete mode 100644 src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java
|
||||
delete mode 100644 src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java
|
||||
|
||||
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
|
||||
index d8c7617..8e2ec08 100644
|
||||
--- a/AndroidManifest.xml
|
||||
+++ b/AndroidManifest.xml
|
||||
@@ -43,7 +43,6 @@
|
||||
<uses-permission android:name="android.permission.BACKUP" />
|
||||
<uses-permission android:name="cyanogenmod.permission.FINISH_SETUP" />
|
||||
<uses-permission android:name="cyanogenmod.permission.LEGALESE" />
|
||||
- <uses-permission android:name="com.cyngn.stats.SEND_ANALYTICS" />
|
||||
<uses-permission android:name="com.cyanogen.permission.REQUEST_KILL_SWITCH_OP" />
|
||||
<uses-permission android:name="cyanogenmod.permission.WRITE_SETTINGS"/>
|
||||
<uses-permission android:name="cyanogenmod.permission.WRITE_SECURE_SETTINGS"/>
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java b/src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java
|
||||
deleted file mode 100644
|
||||
index 6eb527f..0000000
|
||||
--- a/src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java
|
||||
+++ /dev/null
|
||||
@@ -1,162 +0,0 @@
|
||||
-/*
|
||||
- * 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.
|
||||
- */
|
||||
-
|
||||
-package com.cyanogenmod.setupwizard.cmstats;
|
||||
-
|
||||
-import android.content.Context;
|
||||
-import android.content.Intent;
|
||||
-import android.os.UserHandle;
|
||||
-import android.util.Log;
|
||||
-
|
||||
-import java.util.LinkedList;
|
||||
-
|
||||
-
|
||||
-public class SetupStats {
|
||||
-
|
||||
- private static final String TAG = SetupStats.class.getSimpleName();
|
||||
-
|
||||
- private static final String ANALYTIC_INTENT = "com.cyngn.stats.action.SEND_ANALYTIC_EVENT";
|
||||
- private static final String ANALYTIC_PERMISSION = "com.cyngn.stats.SEND_ANALYTICS";
|
||||
-
|
||||
- public static final String TRACKING_ID = "tracking_id";
|
||||
-
|
||||
- private final LinkedList<Event> mEvents = new LinkedList<Event>();
|
||||
-
|
||||
- private static final SetupStats sInstance = new SetupStats();
|
||||
-
|
||||
- private static final boolean DEBUG = false;
|
||||
-
|
||||
- private SetupStats() {}
|
||||
-
|
||||
- public static void addEvent(String category, String action,
|
||||
- String label, String value) {
|
||||
- sInstance.mEvents.add(new Event(category, action, label, value));
|
||||
- }
|
||||
-
|
||||
- public static void addEvent(String category, String action) {
|
||||
- sInstance.mEvents.add(new Event(category, action, null, null));
|
||||
- }
|
||||
-
|
||||
- public static void sendEvents(Context context) {
|
||||
- while (!sInstance.mEvents.isEmpty()) {
|
||||
- sInstance.sendEvent(context, sInstance.mEvents.remove());
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- private void sendEvent(Context context, Event event) {
|
||||
-
|
||||
- if (!StatsUtils.isStatsPackageInstalled(context)
|
||||
- || !StatsUtils.isStatsCollectionEnabled(context)) {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- // Create new intent
|
||||
- Intent intent = new Intent();
|
||||
- intent.setAction(ANALYTIC_INTENT);
|
||||
-
|
||||
- // add tracking id
|
||||
- intent.putExtra(TRACKING_ID, context.getPackageName());
|
||||
- // append
|
||||
- intent.putExtra(Fields.EVENT_CATEGORY, event.category);
|
||||
- if (DEBUG) Log.d(TAG, Fields.EVENT_CATEGORY + "=" + event.category);
|
||||
- intent.putExtra(Fields.EVENT_ACTION, event.action);
|
||||
- if (DEBUG) Log.d(TAG, Fields.EVENT_ACTION + "=" + event.action);
|
||||
- // check if exist
|
||||
- if (event.label != null) {
|
||||
- intent.putExtra(Fields.EVENT_LABEL, event.label);
|
||||
- if (DEBUG) Log.d(TAG, Fields.EVENT_LABEL + "=" + event.label);
|
||||
- }
|
||||
-
|
||||
- if (event.value != null) {
|
||||
- intent.putExtra(Fields.EVENT_VALUE, event.value);
|
||||
- if (DEBUG) Log.d(TAG, Fields.EVENT_VALUE + "=" + event.value);
|
||||
- }
|
||||
-
|
||||
- // broadcast for internal package
|
||||
- context.sendBroadcastAsUser(intent,
|
||||
- new UserHandle(UserHandle.USER_CURRENT), ANALYTIC_PERMISSION);
|
||||
- }
|
||||
-
|
||||
- private static final class Event {
|
||||
- private final String category;
|
||||
- private final String action;
|
||||
- private final String label;
|
||||
- private final String value;
|
||||
-
|
||||
- public Event(String category, String action, String label, String value) {
|
||||
- this.action = action;
|
||||
- this.category = category;
|
||||
- this.label = label;
|
||||
- this.value = value;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- public static final class Fields {
|
||||
- public static final String EVENT_CATEGORY = "category";
|
||||
- public static final String EVENT_ACTION = "action";
|
||||
- public static final String EVENT_LABEL = "label";
|
||||
- public static final String EVENT_VALUE = "value";
|
||||
- }
|
||||
-
|
||||
- public static final class Categories {
|
||||
- public static final String APP_LAUNCH = "app_launch";
|
||||
- public static final String APP_FINISHED = "app_finish";
|
||||
- public static final String PAGE_LOAD = "page_load";
|
||||
- public static final String EXTERNAL_PAGE_LOAD = "external_page_load";
|
||||
- public static final String BUTTON_CLICK = "button_click";
|
||||
- public static final String SETTING_CHANGED = "setting_changed";
|
||||
- }
|
||||
-
|
||||
- public static final class Action {
|
||||
- public static final String PAGE_LOADED = "page_loaded";
|
||||
- public static final String PREVIOUS_BUTTON = "previous_button";
|
||||
- public static final String NEXT_BUTTON = "next_button";
|
||||
- public static final String CHANGE_LOCALE = "change_local";
|
||||
- public static final String EXTERNAL_PAGE_LAUNCH = "external_page_launch";
|
||||
- public static final String EXTERNAL_PAGE_RESULT = "external_page_result";
|
||||
- public static final String ENABLE_MOBILE_DATA = "enable_mobile_data";
|
||||
- public static final String PREFERRED_DATA_SIM = "preferred_data_sim";
|
||||
- public static final String APPLY_CUSTOM_THEME = "apply_custom_theme";
|
||||
- public static final String USE_SECURE_SMS = "use_secure_sms";
|
||||
- public static final String ENABLE_BACKUP = "enable_backup";
|
||||
- public static final String ENABLE_NAV_KEYS = "enable_nav_keys";
|
||||
- public static final String ENABLE_LOCATION = "enable_location";
|
||||
- public static final String ENABLE_NETWORK_LOCATION = "enable_network_location";
|
||||
- public static final String ENABLE_GPS_LOCATION = "enable_gps_location";
|
||||
- public static final String DATE_CHANGED = "date_changed";
|
||||
- public static final String TIME_CHANGED = "time_changed";
|
||||
- public static final String TIMEZONE_CHANGED = "timezone_changed";
|
||||
- }
|
||||
-
|
||||
- public static final class Label {
|
||||
- public static final String PAGE = "page";
|
||||
- public static final String LOCALE = "local";
|
||||
- public static final String RESULT = "result";
|
||||
- public static final String WIFI_SETUP = "wifi_setup";
|
||||
- public static final String BLUETOOTH_SETUP = "bluetooth_setup";
|
||||
- public static final String CYANOGEN_ACCOUNT = "cyanogen_account_setup";
|
||||
- public static final String CAPTIVE_PORTAL_LOGIN = "captive_portal_login";
|
||||
- public static final String EMERGENCY_CALL = "emergency_call";
|
||||
- public static final String GMS_ACCOUNT = "gms_account";
|
||||
- public static final String RESTORE = "restore";
|
||||
- public static final String CHECKED = "checked";
|
||||
- public static final String VALUE = "value";
|
||||
- public static final String SLOT = "slot";
|
||||
- public static final String TOTAL_TIME = "total_time";
|
||||
- public static final String FINGERPRINT_SETUP = "fingerprint_setup";
|
||||
- }
|
||||
-
|
||||
-}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java b/src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java
|
||||
deleted file mode 100644
|
||||
index 8be8fad..0000000
|
||||
--- a/src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java
|
||||
+++ /dev/null
|
||||
@@ -1,44 +0,0 @@
|
||||
-
|
||||
-/*
|
||||
- * 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.
|
||||
- */
|
||||
-
|
||||
-package com.cyanogenmod.setupwizard.cmstats;
|
||||
-
|
||||
-import android.content.Context;
|
||||
-import android.content.pm.ApplicationInfo;
|
||||
-import android.content.pm.PackageInfo;
|
||||
-import android.content.pm.PackageManager;
|
||||
-
|
||||
-import cyanogenmod.providers.CMSettings;
|
||||
-
|
||||
-public class StatsUtils {
|
||||
- private static final String STATS_PACKAGE = "com.cyngn.stats";
|
||||
-
|
||||
- public static boolean isStatsCollectionEnabled(Context context) {
|
||||
- return CMSettings.Secure.getInt(context.getContentResolver(),
|
||||
- CMSettings.Secure.STATS_COLLECTION, 1) != 0;
|
||||
- }
|
||||
-
|
||||
- public static boolean isStatsPackageInstalled(Context context) {
|
||||
- try {
|
||||
- PackageInfo pi = context.getPackageManager().getPackageInfo(STATS_PACKAGE, 0);
|
||||
- return pi.applicationInfo.enabled
|
||||
- && ((pi.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0);
|
||||
- } catch (PackageManager.NameNotFoundException e) {
|
||||
- return false;
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java b/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java
|
||||
index 915abec..8609dbb 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java
|
||||
@@ -28,7 +28,6 @@ import android.util.Log;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.LoadingFragment;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
@@ -91,9 +90,6 @@ public class BluetoothSetupPage extends SetupPage {
|
||||
@Override
|
||||
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_BLUETOOTH) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.BLUETOOTH_SETUP, "success");
|
||||
getCallbacks().onNextPage();
|
||||
} else {
|
||||
return false;
|
||||
@@ -111,9 +107,6 @@ public class BluetoothSetupPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.BLUETOOTH_SETUP);
|
||||
mLoadingFragment.startActivityForResult(intent,
|
||||
SetupWizardApp.REQUEST_CODE_SETUP_BLUETOOTH, options.toBundle());
|
||||
}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java b/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java
|
||||
index 255cbad..a3282af 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java
|
||||
@@ -47,7 +47,6 @@ import com.android.internal.telephony.TelephonyIntents;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -356,9 +355,6 @@ public class ChooseDataSimPage extends SetupPage {
|
||||
for (int i = 0; i < mCheckBoxes.size(); i++) {
|
||||
if (subInfoRecord.getSimSlotIndex() == i) {
|
||||
mCheckBoxes.get(i).setChecked(true);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.PREFERRED_DATA_SIM,
|
||||
- SetupStats.Label.SLOT, String.valueOf(i + 1));
|
||||
} else {
|
||||
mCheckBoxes.get(i).setChecked(false);
|
||||
}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java b/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java
|
||||
index e71dd79..5bfe3b0 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java
|
||||
@@ -32,7 +32,6 @@ import android.util.Log;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.LoadingFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -95,10 +94,6 @@ public class CyanogenServicesPage extends SetupPage {
|
||||
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_CYANOGEN) {
|
||||
if (resultCode == Activity.RESULT_OK || resultCode == Activity.RESULT_FIRST_USER) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.CYANOGEN_ACCOUNT,
|
||||
- resultCode == Activity.RESULT_OK ? "success" : "skipped");
|
||||
if (SetupWizardUtils.accountExists(mContext,
|
||||
mContext.getString(R.string.cm_account_type))) {
|
||||
if (SetupWizardUtils.isDeviceLocked()) {
|
||||
@@ -108,9 +103,6 @@ public class CyanogenServicesPage extends SetupPage {
|
||||
}
|
||||
getCallbacks().onNextPage();
|
||||
} else if (resultCode == Activity.RESULT_CANCELED) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.CYANOGEN_ACCOUNT, "canceled");
|
||||
getCallbacks().onPreviousPage();
|
||||
}
|
||||
}
|
||||
@@ -136,11 +128,6 @@ public class CyanogenServicesPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats
|
||||
- .addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE,
|
||||
- SetupStats.Label.CYANOGEN_ACCOUNT);
|
||||
mFragment.startActivityForResult(intent,
|
||||
SetupWizardApp.REQUEST_CODE_SETUP_CYANOGEN,
|
||||
options.toBundle());
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java b/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java
|
||||
index d17d64b..2c95253 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java
|
||||
@@ -42,7 +42,6 @@ import android.widget.TextView;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -54,7 +53,6 @@ public class CyanogenSettingsPage extends SetupPage {
|
||||
|
||||
public static final String TAG = "CyanogenSettingsPage";
|
||||
|
||||
- public static final String KEY_SEND_METRICS = "send_metrics";
|
||||
public static final String DISABLE_NAV_KEYS = "disable_nav_keys";
|
||||
public static final String KEY_APPLY_DEFAULT_THEME = "apply_default_theme";
|
||||
public static final String KEY_BUTTON_BACKLIGHT = "pre_navbar_button_backlight";
|
||||
@@ -116,37 +114,18 @@ public class CyanogenSettingsPage extends SetupPage {
|
||||
@Override
|
||||
public void run() {
|
||||
if (getData().containsKey(DISABLE_NAV_KEYS)) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_NAV_KEYS,
|
||||
- SetupStats.Label.CHECKED,
|
||||
- String.valueOf(getData().getBoolean(DISABLE_NAV_KEYS)));
|
||||
writeDisableNavkeysOption(mContext, getData().getBoolean(DISABLE_NAV_KEYS));
|
||||
}
|
||||
}
|
||||
});
|
||||
- handleEnableMetrics();
|
||||
handleDefaultThemeSetup();
|
||||
}
|
||||
|
||||
- private void handleEnableMetrics() {
|
||||
- Bundle privacyData = getData();
|
||||
- if (privacyData != null
|
||||
- && privacyData.containsKey(KEY_SEND_METRICS)) {
|
||||
- CMSettings.Secure.putInt(mContext.getContentResolver(),
|
||||
- CMSettings.Secure.STATS_COLLECTION, privacyData.getBoolean(KEY_SEND_METRICS)
|
||||
- ? 1 : 0);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
private void handleDefaultThemeSetup() {
|
||||
Bundle privacyData = getData();
|
||||
if (!SetupWizardUtils.getDefaultThemePackageName(mContext).equals(
|
||||
ThemeConfig.SYSTEM_DEFAULT) && privacyData != null &&
|
||||
privacyData.getBoolean(KEY_APPLY_DEFAULT_THEME)) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.APPLY_CUSTOM_THEME,
|
||||
- SetupStats.Label.CHECKED,
|
||||
- String.valueOf(privacyData.getBoolean(KEY_APPLY_DEFAULT_THEME)));
|
||||
Log.i(TAG, "Applying default theme");
|
||||
final ThemeManager tm = ThemeManager.getInstance(mContext);
|
||||
tm.applyDefaultTheme();
|
||||
@@ -176,26 +155,14 @@ public class CyanogenSettingsPage extends SetupPage {
|
||||
private View mKillSwitchView;
|
||||
private TextView mKillSwitchTitle;
|
||||
private ImageView mKillSwitchStatus;
|
||||
- private View mMetricsRow;
|
||||
private View mDefaultThemeRow;
|
||||
private View mNavKeysRow;
|
||||
- private CheckBox mMetrics;
|
||||
private CheckBox mDefaultTheme;
|
||||
private CheckBox mNavKeys;
|
||||
|
||||
private boolean mHideNavKeysRow = false;
|
||||
private boolean mHideThemeRow = false;
|
||||
|
||||
-
|
||||
- private View.OnClickListener mMetricsClickListener = new View.OnClickListener() {
|
||||
- @Override
|
||||
- public void onClick(View view) {
|
||||
- boolean checked = !mMetrics.isChecked();
|
||||
- mMetrics.setChecked(checked);
|
||||
- mPage.getData().putBoolean(KEY_SEND_METRICS, checked);
|
||||
- }
|
||||
- };
|
||||
-
|
||||
private View.OnClickListener mDefaultThemeClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
@@ -253,19 +220,6 @@ public class CyanogenSettingsPage extends SetupPage {
|
||||
}
|
||||
}
|
||||
|
||||
- mMetricsRow = mRootView.findViewById(R.id.metrics);
|
||||
- mMetricsRow.setOnClickListener(mMetricsClickListener);
|
||||
- String metricsHelpImproveCM =
|
||||
- getString(R.string.services_help_improve_cm, getString(R.string.os_name));
|
||||
- String metricsSummary = getString(R.string.services_metrics_label,
|
||||
- metricsHelpImproveCM, getString(R.string.os_name));
|
||||
- final SpannableStringBuilder metricsSpan = new SpannableStringBuilder(metricsSummary);
|
||||
- metricsSpan.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD),
|
||||
- 0, metricsHelpImproveCM.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
- TextView metrics = (TextView) mRootView.findViewById(R.id.enable_metrics_summary);
|
||||
- metrics.setText(metricsSpan);
|
||||
- mMetrics = (CheckBox) mRootView.findViewById(R.id.enable_metrics_checkbox);
|
||||
-
|
||||
mDefaultThemeRow = mRootView.findViewById(R.id.theme);
|
||||
mHideThemeRow = hideThemeSwitch(getActivity());
|
||||
if (mHideThemeRow) {
|
||||
@@ -314,19 +268,9 @@ public class CyanogenSettingsPage extends SetupPage {
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
updateDisableNavkeysOption();
|
||||
- updateMetricsOption();
|
||||
updateThemeOption();
|
||||
}
|
||||
|
||||
- private void updateMetricsOption() {
|
||||
- final Bundle myPageBundle = mPage.getData();
|
||||
- boolean metricsChecked =
|
||||
- !myPageBundle.containsKey(KEY_SEND_METRICS) || myPageBundle
|
||||
- .getBoolean(KEY_SEND_METRICS);
|
||||
- mMetrics.setChecked(metricsChecked);
|
||||
- myPageBundle.putBoolean(KEY_SEND_METRICS, metricsChecked);
|
||||
- }
|
||||
-
|
||||
private void updateThemeOption() {
|
||||
if (!mHideThemeRow) {
|
||||
final Bundle myPageBundle = mPage.getData();
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java b/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java
|
||||
index 7a5922b..a669163 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java
|
||||
@@ -42,7 +42,6 @@ import android.widget.TextView;
|
||||
import android.widget.TimePicker;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
@@ -136,8 +135,6 @@ public class DateTimePage extends SetupPage {
|
||||
mDateView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK,
|
||||
- "date_picker");
|
||||
showDatePicker();
|
||||
}
|
||||
});
|
||||
@@ -145,8 +142,6 @@ public class DateTimePage extends SetupPage {
|
||||
mTimeView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK,
|
||||
- "time_picker");
|
||||
showTimePicker();
|
||||
}
|
||||
});
|
||||
@@ -167,17 +162,11 @@ public class DateTimePage extends SetupPage {
|
||||
final Map<?, ?> map = (Map<?, ?>) adapterView.getItemAtPosition(position);
|
||||
final String tzId = (String) map.get(KEY_ID);
|
||||
if (mCurrentTimeZone != null && !mCurrentTimeZone.getID().equals(tzId)) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK,
|
||||
- "timezone_picker");
|
||||
// Update the system timezone value
|
||||
final Activity activity = getActivity();
|
||||
final AlarmManager alarm = (AlarmManager) activity.getSystemService(Context.ALARM_SERVICE);
|
||||
alarm.setTimeZone(tzId);
|
||||
mCurrentTimeZone = TimeZone.getTimeZone(tzId);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.TIMEZONE_CHANGED,
|
||||
- SetupStats.Label.VALUE,
|
||||
- mCurrentTimeZone.getDisplayName());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -232,10 +221,6 @@ public class DateTimePage extends SetupPage {
|
||||
if (activity != null) {
|
||||
setDate(activity, year, month, day);
|
||||
updateTimeAndDateDisplay(activity);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.DATE_CHANGED,
|
||||
- SetupStats.Label.VALUE,
|
||||
- month+"/"+day+"/"+year);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -245,10 +230,6 @@ public class DateTimePage extends SetupPage {
|
||||
if (activity != null) {
|
||||
setTime(activity, hourOfDay, minute);
|
||||
updateTimeAndDateDisplay(activity);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.TIME_CHANGED,
|
||||
- SetupStats.Label.VALUE,
|
||||
- hourOfDay+":"+minute);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java b/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java
|
||||
index 890a4f6..c9174c6 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java
|
||||
@@ -28,7 +28,6 @@ import android.widget.TextView;
|
||||
import com.android.internal.widget.LockPatternUtils;
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
|
||||
public class FingerprintSetupPage extends SetupPage {
|
||||
@@ -113,9 +112,6 @@ public class FingerprintSetupPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(getActivity(),
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.FINGERPRINT_SETUP);
|
||||
startActivityForResult(intent, SetupWizardApp.REQUEST_CODE_SETUP_FINGERPRINT,
|
||||
options.toBundle());
|
||||
}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java b/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java
|
||||
index 9bcce42..64b84da 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java
|
||||
@@ -34,7 +34,6 @@ import android.util.Log;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.LoadingFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -116,10 +115,6 @@ public class GmsAccountPage extends SetupPage {
|
||||
boolean restorePicker = !data.hasExtra(EXTRA_RESTORE_TOKEN)
|
||||
&& !data.hasExtra(EXTRA_RESTORE_ACCOUNT) &&
|
||||
data.hasExtra(EXTRA_AUTH_ACCOUNT);
|
||||
-
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.GMS_ACCOUNT, "success");
|
||||
launchGmsRestorePage(restorePicker);
|
||||
} else {
|
||||
handleResult(requestCode, resultCode);
|
||||
@@ -140,24 +135,12 @@ public class GmsAccountPage extends SetupPage {
|
||||
|
||||
private void handleResult(int requestCode, int resultCode) {
|
||||
if (resultCode == Activity.RESULT_CANCELED) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- requestCode == SetupWizardApp.REQUEST_CODE_SETUP_GMS ?
|
||||
- SetupStats.Label.GMS_ACCOUNT : SetupStats.Label.RESTORE, "canceled");
|
||||
getCallbacks().onPreviousPage();
|
||||
} else {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- requestCode == SetupWizardApp.REQUEST_CODE_SETUP_GMS ?
|
||||
- SetupStats.Label.GMS_ACCOUNT : SetupStats.Label.RESTORE, "success");
|
||||
getCallbacks().onNextPage();
|
||||
} else {
|
||||
if (canSkip()) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- requestCode == SetupWizardApp.REQUEST_CODE_SETUP_GMS ?
|
||||
- SetupStats.Label.GMS_ACCOUNT : SetupStats.Label.RESTORE, "skipped");
|
||||
getCallbacks().onNextPage();
|
||||
} else {
|
||||
getCallbacks().onPreviousPage();
|
||||
@@ -194,9 +177,6 @@ public class GmsAccountPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.RESTORE);
|
||||
mFragment.startActivityForResult(
|
||||
intent,
|
||||
SetupWizardApp.REQUEST_CODE_RESTORE_GMS, options.toBundle());
|
||||
@@ -240,9 +220,6 @@ public class GmsAccountPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.GMS_ACCOUNT);
|
||||
mFragment.startActivityForResult(intent,
|
||||
SetupWizardApp.REQUEST_CODE_SETUP_GMS, options.toBundle());
|
||||
} catch (OperationCanceledException e) {
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java b/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java
|
||||
index 8940fd3..02ee1b6 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java
|
||||
@@ -38,7 +38,6 @@ import android.widget.TextView;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -147,9 +146,6 @@ public class MobileDataPage extends SetupPage {
|
||||
} else {
|
||||
onDataStateReady();
|
||||
}
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_MOBILE_DATA,
|
||||
- SetupStats.Label.CHECKED, String.valueOf(checked));
|
||||
}
|
||||
};
|
||||
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java b/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java
|
||||
index 0ed17ff..0bea90b 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java
|
||||
@@ -40,7 +40,6 @@ import android.widget.TextView;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -233,9 +232,6 @@ public class OtherSettingsPage extends SetupPage {
|
||||
private void onToggleBackup(boolean checked) {
|
||||
try {
|
||||
mBackupManager.setBackupEnabled(checked);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_BACKUP,
|
||||
- SetupStats.Label.CHECKED, String.valueOf(checked));
|
||||
} catch (RemoteException e) {}
|
||||
updateBackupToggle();
|
||||
}
|
||||
@@ -309,9 +305,6 @@ public class OtherSettingsPage extends SetupPage {
|
||||
}
|
||||
|
||||
private void onToggleLocationAccess(boolean checked) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_LOCATION,
|
||||
- SetupStats.Label.CHECKED, String.valueOf(checked));
|
||||
|
||||
if (checked) {
|
||||
setLocationMode(Settings.Secure.LOCATION_MODE_SENSORS_ONLY);
|
||||
@@ -321,10 +314,6 @@ public class OtherSettingsPage extends SetupPage {
|
||||
}
|
||||
|
||||
private void onToggleBatterySaving(boolean checked) {
|
||||
- /* SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_BATTERY_SAVING_LOCATION,
|
||||
- SetupStats.Label.CHECKED, String.valueOf(checked)); */
|
||||
-
|
||||
if (checked) {
|
||||
setLocationMode(Settings.Secure.LOCATION_MODE_BATTERY_SAVING);
|
||||
} else {
|
||||
@@ -333,11 +322,7 @@ public class OtherSettingsPage extends SetupPage {
|
||||
}
|
||||
|
||||
private void onToggleNetwork(boolean checked) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_NETWORK_LOCATION,
|
||||
- SetupStats.Label.CHECKED, String.valueOf(checked));
|
||||
-
|
||||
- if (checked) {
|
||||
+ if (checked) {
|
||||
setLocationMode(Settings.Secure.LOCATION_MODE_HIGH_ACCURACY);
|
||||
} else {
|
||||
setLocationMode(Settings.Secure.LOCATION_MODE_SENSORS_ONLY);
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/SetupPage.java b/src/com/cyanogenmod/setupwizard/setup/SetupPage.java
|
||||
index 1a19fb0..9804049 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/SetupPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/SetupPage.java
|
||||
@@ -26,7 +26,6 @@ import android.transition.Transition;
|
||||
import android.view.Gravity;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
|
||||
|
||||
public abstract class SetupPage implements Page {
|
||||
@@ -76,18 +75,12 @@ public abstract class SetupPage implements Page {
|
||||
public void doLoadAction(FragmentManager fragmentManager, int action) {
|
||||
Fragment fragment = getFragment(fragmentManager, action);
|
||||
if (action == Page.ACTION_NEXT) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK,
|
||||
- SetupStats.Action.NEXT_BUTTON, getKey(),
|
||||
- String.valueOf(System.currentTimeMillis()));
|
||||
Transition t = new Slide(Gravity.RIGHT);
|
||||
fragment.setEnterTransition(t);
|
||||
fragmentManager.beginTransaction()
|
||||
.replace(R.id.content,fragment, getKey())
|
||||
.commit();
|
||||
} else {
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK,
|
||||
- SetupStats.Action.PREVIOUS_BUTTON, getKey(),
|
||||
- String.valueOf(System.currentTimeMillis()));
|
||||
Transition t = new Slide(Gravity.LEFT);
|
||||
fragment.setEnterTransition(t);
|
||||
fragmentManager.beginTransaction()
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java b/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java
|
||||
index e09c2a1..eedb24d 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java
|
||||
@@ -42,7 +42,6 @@ import android.widget.Toast;
|
||||
import com.android.internal.telephony.MccTable;
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.LocalePicker;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
@@ -87,7 +86,6 @@ public class WelcomePage extends SetupPage {
|
||||
return true;
|
||||
} else {
|
||||
if (mWelcomeFragment != null) {
|
||||
- mWelcomeFragment.sendLocaleStats();
|
||||
}
|
||||
return super.doNextAction();
|
||||
}
|
||||
@@ -102,10 +100,6 @@ public class WelcomePage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK, SetupStats.Label.EMERGENCY_CALL);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.EMERGENCY_CALL);
|
||||
mContext.startActivity(intent, options.toBundle());
|
||||
return true;
|
||||
}
|
||||
@@ -269,14 +263,6 @@ public class WelcomePage extends SetupPage {
|
||||
return R.layout.setup_welcome_page;
|
||||
}
|
||||
|
||||
- public void sendLocaleStats() {
|
||||
- if (!mCurrentLocale.equals(mInitialLocale)) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.CHANGE_LOCALE, SetupStats.Label.LOCALE,
|
||||
- mCurrentLocale.getDisplayName());
|
||||
- }
|
||||
- }
|
||||
-
|
||||
public void fetchAndUpdateSimLocale() {
|
||||
if (mIgnoreSimLocale || isDetached()) {
|
||||
return;
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java b/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java
|
||||
index 2d8084a..3a131f7 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java
|
||||
@@ -31,7 +31,6 @@ import android.util.Log;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.LoadingFragment;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
@@ -86,9 +85,6 @@ public class WifiSetupPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.CAPTIVE_PORTAL_LOGIN);
|
||||
mLoadingFragment.startActivityForResult(intent,
|
||||
SetupWizardApp.REQUEST_CODE_SETUP_CAPTIVE_PORTAL,
|
||||
options.toBundle());
|
||||
@@ -157,19 +153,10 @@ public class WifiSetupPage extends SetupPage {
|
||||
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_WIFI) {
|
||||
if (resultCode == Activity.RESULT_CANCELED) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.WIFI_SETUP, "canceled");
|
||||
getCallbacks().onPreviousPage();
|
||||
} else if (resultCode == Activity.RESULT_OK) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.WIFI_SETUP, "success");
|
||||
checkForCaptivePortal();
|
||||
} else {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.WIFI_SETUP, "skipped");
|
||||
getCallbacks().onNextPage();
|
||||
}
|
||||
} else if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_CAPTIVE_PORTAL) {
|
||||
@@ -179,20 +166,11 @@ public class WifiSetupPage extends SetupPage {
|
||||
}
|
||||
String token = data.getStringExtra("response_token");
|
||||
if (token != null && !token.equals(mResponseToken)) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.CAPTIVE_PORTAL_LOGIN, "token_mismatch");
|
||||
launchWifiSetup();
|
||||
} else {
|
||||
if (resultCode == Activity.RESULT_CANCELED) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.CAPTIVE_PORTAL_LOGIN, "canceled");
|
||||
launchWifiSetup();
|
||||
} else {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.CAPTIVE_PORTAL_LOGIN, "success");
|
||||
getCallbacks().onNextPage();
|
||||
}
|
||||
}
|
||||
@@ -256,9 +234,6 @@ public class WifiSetupPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.WIFI_SETUP);
|
||||
mLoadingFragment.startActivityForResult(intent,
|
||||
SetupWizardApp.REQUEST_CODE_SETUP_WIFI, options.toBundle());
|
||||
}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java b/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java
|
||||
index b0df440..33c61c7 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java
|
||||
@@ -26,7 +26,6 @@ import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.setup.Page;
|
||||
import com.cyanogenmod.setupwizard.setup.SetupDataCallbacks;
|
||||
|
||||
@@ -43,8 +42,6 @@ public abstract class SetupPageFragment extends Fragment {
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setRetainInstance(true);
|
||||
- SetupStats.addEvent(SetupStats.Categories.PAGE_LOAD, SetupStats.Action.PAGE_LOADED,
|
||||
- mKey, String.valueOf(System.currentTimeMillis()));
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java b/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java
|
||||
index 6005347..05b2939 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java
|
||||
@@ -43,7 +43,6 @@ import android.widget.ProgressBar;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.setup.CMSetupWizardData;
|
||||
import com.cyanogenmod.setupwizard.setup.GmsAccountPage;
|
||||
import com.cyanogenmod.setupwizard.setup.Page;
|
||||
@@ -106,7 +105,6 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks,
|
||||
}
|
||||
});
|
||||
if (sLaunchTime == 0) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.APP_LAUNCH, TAG);
|
||||
sLaunchTime = System.nanoTime();
|
||||
}
|
||||
setContentView(R.layout.setup_main);
|
||||
@@ -381,9 +379,6 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks,
|
||||
@Override
|
||||
public void finishSetup() {
|
||||
if (!mIsFinishing) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.APP_FINISHED, TAG,
|
||||
- SetupStats.Label.TOTAL_TIME, String.valueOf(
|
||||
- System.nanoTime() - sLaunchTime));
|
||||
final SetupWizardApp setupWizardApp = (SetupWizardApp)getApplication();
|
||||
setupWizardApp.sendStickyBroadcastAsUser(
|
||||
new Intent(SetupWizardApp.ACTION_FINISHED),
|
||||
@@ -471,7 +466,6 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks,
|
||||
}
|
||||
final ThemeManager tm = ThemeManager.getInstance(SetupWizardActivity.this);
|
||||
tm.removeClient(SetupWizardActivity.this);
|
||||
- SetupStats.sendEvents(SetupWizardActivity.this);
|
||||
SetupWizardUtils.disableGMSSetupWizard(SetupWizardActivity.this);
|
||||
final WallpaperManager wallpaperManager =
|
||||
WallpaperManager.getInstance(SetupWizardActivity.this);
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java b/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java
|
||||
index 440129b..47d6de5 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java
|
||||
@@ -39,7 +39,6 @@ import android.view.accessibility.AccessibilityManager;
|
||||
import android.view.accessibility.IAccessibilityManager;
|
||||
|
||||
import com.android.internal.R;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
@@ -284,8 +283,6 @@ public class EnableAccessibilityController {
|
||||
// Turn on accessibility mode last.
|
||||
Settings.Secure.putIntForUser(resolver, Settings.Secure.ACCESSIBILITY_ENABLED,
|
||||
1, userId);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- "accessibility_enabled");
|
||||
} else if (keyguardLocked) {
|
||||
try {
|
||||
mAccessibilityManager.temporaryEnableAccessibilityStateUntilKeyguardRemoved(
|
||||
--
|
||||
2.8.0
|
||||
|
@ -0,0 +1,954 @@
|
||||
From 4a66cf8f67b5941037ae566db6c74a748a5351a2 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Fri, 8 Apr 2016 20:43:21 -0400
|
||||
Subject: [PATCH] Remove analytics
|
||||
|
||||
Change-Id: I4d38768fc22791f9e5085c56a22f94f335526c31
|
||||
---
|
||||
AndroidManifest.xml | 1 -
|
||||
.../setupwizard/cmstats/SetupStats.java | 162 ---------------------
|
||||
.../setupwizard/cmstats/StatsUtils.java | 44 ------
|
||||
.../setupwizard/setup/BluetoothSetupPage.java | 7 -
|
||||
.../setupwizard/setup/ChooseDataSimPage.java | 4 -
|
||||
.../setupwizard/setup/CyanogenServicesPage.java | 13 --
|
||||
.../setupwizard/setup/CyanogenSettingsPage.java | 56 -------
|
||||
.../setupwizard/setup/DateTimePage.java | 19 ---
|
||||
.../setupwizard/setup/FingerprintSetupPage.java | 4 -
|
||||
.../setupwizard/setup/GmsAccountPage.java | 23 ---
|
||||
.../setupwizard/setup/MobileDataPage.java | 4 -
|
||||
.../setupwizard/setup/OtherSettingsPage.java | 17 +--
|
||||
.../cyanogenmod/setupwizard/setup/SetupPage.java | 7 -
|
||||
.../cyanogenmod/setupwizard/setup/WelcomePage.java | 14 --
|
||||
.../setupwizard/setup/WifiSetupPage.java | 25 ----
|
||||
.../setupwizard/ui/SetupPageFragment.java | 3 -
|
||||
.../setupwizard/ui/SetupWizardActivity.java | 6 -
|
||||
.../util/EnableAccessibilityController.java | 3 -
|
||||
18 files changed, 1 insertion(+), 411 deletions(-)
|
||||
delete mode 100644 src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java
|
||||
delete mode 100644 src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java
|
||||
|
||||
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
|
||||
index d8c7617..8e2ec08 100644
|
||||
--- a/AndroidManifest.xml
|
||||
+++ b/AndroidManifest.xml
|
||||
@@ -43,7 +43,6 @@
|
||||
<uses-permission android:name="android.permission.BACKUP" />
|
||||
<uses-permission android:name="cyanogenmod.permission.FINISH_SETUP" />
|
||||
<uses-permission android:name="cyanogenmod.permission.LEGALESE" />
|
||||
- <uses-permission android:name="com.cyngn.stats.SEND_ANALYTICS" />
|
||||
<uses-permission android:name="com.cyanogen.permission.REQUEST_KILL_SWITCH_OP" />
|
||||
<uses-permission android:name="cyanogenmod.permission.WRITE_SETTINGS"/>
|
||||
<uses-permission android:name="cyanogenmod.permission.WRITE_SECURE_SETTINGS"/>
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java b/src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java
|
||||
deleted file mode 100644
|
||||
index 6eb527f..0000000
|
||||
--- a/src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java
|
||||
+++ /dev/null
|
||||
@@ -1,162 +0,0 @@
|
||||
-/*
|
||||
- * 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.
|
||||
- */
|
||||
-
|
||||
-package com.cyanogenmod.setupwizard.cmstats;
|
||||
-
|
||||
-import android.content.Context;
|
||||
-import android.content.Intent;
|
||||
-import android.os.UserHandle;
|
||||
-import android.util.Log;
|
||||
-
|
||||
-import java.util.LinkedList;
|
||||
-
|
||||
-
|
||||
-public class SetupStats {
|
||||
-
|
||||
- private static final String TAG = SetupStats.class.getSimpleName();
|
||||
-
|
||||
- private static final String ANALYTIC_INTENT = "com.cyngn.stats.action.SEND_ANALYTIC_EVENT";
|
||||
- private static final String ANALYTIC_PERMISSION = "com.cyngn.stats.SEND_ANALYTICS";
|
||||
-
|
||||
- public static final String TRACKING_ID = "tracking_id";
|
||||
-
|
||||
- private final LinkedList<Event> mEvents = new LinkedList<Event>();
|
||||
-
|
||||
- private static final SetupStats sInstance = new SetupStats();
|
||||
-
|
||||
- private static final boolean DEBUG = false;
|
||||
-
|
||||
- private SetupStats() {}
|
||||
-
|
||||
- public static void addEvent(String category, String action,
|
||||
- String label, String value) {
|
||||
- sInstance.mEvents.add(new Event(category, action, label, value));
|
||||
- }
|
||||
-
|
||||
- public static void addEvent(String category, String action) {
|
||||
- sInstance.mEvents.add(new Event(category, action, null, null));
|
||||
- }
|
||||
-
|
||||
- public static void sendEvents(Context context) {
|
||||
- while (!sInstance.mEvents.isEmpty()) {
|
||||
- sInstance.sendEvent(context, sInstance.mEvents.remove());
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- private void sendEvent(Context context, Event event) {
|
||||
-
|
||||
- if (!StatsUtils.isStatsPackageInstalled(context)
|
||||
- || !StatsUtils.isStatsCollectionEnabled(context)) {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- // Create new intent
|
||||
- Intent intent = new Intent();
|
||||
- intent.setAction(ANALYTIC_INTENT);
|
||||
-
|
||||
- // add tracking id
|
||||
- intent.putExtra(TRACKING_ID, context.getPackageName());
|
||||
- // append
|
||||
- intent.putExtra(Fields.EVENT_CATEGORY, event.category);
|
||||
- if (DEBUG) Log.d(TAG, Fields.EVENT_CATEGORY + "=" + event.category);
|
||||
- intent.putExtra(Fields.EVENT_ACTION, event.action);
|
||||
- if (DEBUG) Log.d(TAG, Fields.EVENT_ACTION + "=" + event.action);
|
||||
- // check if exist
|
||||
- if (event.label != null) {
|
||||
- intent.putExtra(Fields.EVENT_LABEL, event.label);
|
||||
- if (DEBUG) Log.d(TAG, Fields.EVENT_LABEL + "=" + event.label);
|
||||
- }
|
||||
-
|
||||
- if (event.value != null) {
|
||||
- intent.putExtra(Fields.EVENT_VALUE, event.value);
|
||||
- if (DEBUG) Log.d(TAG, Fields.EVENT_VALUE + "=" + event.value);
|
||||
- }
|
||||
-
|
||||
- // broadcast for internal package
|
||||
- context.sendBroadcastAsUser(intent,
|
||||
- new UserHandle(UserHandle.USER_CURRENT), ANALYTIC_PERMISSION);
|
||||
- }
|
||||
-
|
||||
- private static final class Event {
|
||||
- private final String category;
|
||||
- private final String action;
|
||||
- private final String label;
|
||||
- private final String value;
|
||||
-
|
||||
- public Event(String category, String action, String label, String value) {
|
||||
- this.action = action;
|
||||
- this.category = category;
|
||||
- this.label = label;
|
||||
- this.value = value;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- public static final class Fields {
|
||||
- public static final String EVENT_CATEGORY = "category";
|
||||
- public static final String EVENT_ACTION = "action";
|
||||
- public static final String EVENT_LABEL = "label";
|
||||
- public static final String EVENT_VALUE = "value";
|
||||
- }
|
||||
-
|
||||
- public static final class Categories {
|
||||
- public static final String APP_LAUNCH = "app_launch";
|
||||
- public static final String APP_FINISHED = "app_finish";
|
||||
- public static final String PAGE_LOAD = "page_load";
|
||||
- public static final String EXTERNAL_PAGE_LOAD = "external_page_load";
|
||||
- public static final String BUTTON_CLICK = "button_click";
|
||||
- public static final String SETTING_CHANGED = "setting_changed";
|
||||
- }
|
||||
-
|
||||
- public static final class Action {
|
||||
- public static final String PAGE_LOADED = "page_loaded";
|
||||
- public static final String PREVIOUS_BUTTON = "previous_button";
|
||||
- public static final String NEXT_BUTTON = "next_button";
|
||||
- public static final String CHANGE_LOCALE = "change_local";
|
||||
- public static final String EXTERNAL_PAGE_LAUNCH = "external_page_launch";
|
||||
- public static final String EXTERNAL_PAGE_RESULT = "external_page_result";
|
||||
- public static final String ENABLE_MOBILE_DATA = "enable_mobile_data";
|
||||
- public static final String PREFERRED_DATA_SIM = "preferred_data_sim";
|
||||
- public static final String APPLY_CUSTOM_THEME = "apply_custom_theme";
|
||||
- public static final String USE_SECURE_SMS = "use_secure_sms";
|
||||
- public static final String ENABLE_BACKUP = "enable_backup";
|
||||
- public static final String ENABLE_NAV_KEYS = "enable_nav_keys";
|
||||
- public static final String ENABLE_LOCATION = "enable_location";
|
||||
- public static final String ENABLE_NETWORK_LOCATION = "enable_network_location";
|
||||
- public static final String ENABLE_GPS_LOCATION = "enable_gps_location";
|
||||
- public static final String DATE_CHANGED = "date_changed";
|
||||
- public static final String TIME_CHANGED = "time_changed";
|
||||
- public static final String TIMEZONE_CHANGED = "timezone_changed";
|
||||
- }
|
||||
-
|
||||
- public static final class Label {
|
||||
- public static final String PAGE = "page";
|
||||
- public static final String LOCALE = "local";
|
||||
- public static final String RESULT = "result";
|
||||
- public static final String WIFI_SETUP = "wifi_setup";
|
||||
- public static final String BLUETOOTH_SETUP = "bluetooth_setup";
|
||||
- public static final String CYANOGEN_ACCOUNT = "cyanogen_account_setup";
|
||||
- public static final String CAPTIVE_PORTAL_LOGIN = "captive_portal_login";
|
||||
- public static final String EMERGENCY_CALL = "emergency_call";
|
||||
- public static final String GMS_ACCOUNT = "gms_account";
|
||||
- public static final String RESTORE = "restore";
|
||||
- public static final String CHECKED = "checked";
|
||||
- public static final String VALUE = "value";
|
||||
- public static final String SLOT = "slot";
|
||||
- public static final String TOTAL_TIME = "total_time";
|
||||
- public static final String FINGERPRINT_SETUP = "fingerprint_setup";
|
||||
- }
|
||||
-
|
||||
-}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java b/src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java
|
||||
deleted file mode 100644
|
||||
index 8be8fad..0000000
|
||||
--- a/src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java
|
||||
+++ /dev/null
|
||||
@@ -1,44 +0,0 @@
|
||||
-
|
||||
-/*
|
||||
- * 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.
|
||||
- */
|
||||
-
|
||||
-package com.cyanogenmod.setupwizard.cmstats;
|
||||
-
|
||||
-import android.content.Context;
|
||||
-import android.content.pm.ApplicationInfo;
|
||||
-import android.content.pm.PackageInfo;
|
||||
-import android.content.pm.PackageManager;
|
||||
-
|
||||
-import cyanogenmod.providers.CMSettings;
|
||||
-
|
||||
-public class StatsUtils {
|
||||
- private static final String STATS_PACKAGE = "com.cyngn.stats";
|
||||
-
|
||||
- public static boolean isStatsCollectionEnabled(Context context) {
|
||||
- return CMSettings.Secure.getInt(context.getContentResolver(),
|
||||
- CMSettings.Secure.STATS_COLLECTION, 1) != 0;
|
||||
- }
|
||||
-
|
||||
- public static boolean isStatsPackageInstalled(Context context) {
|
||||
- try {
|
||||
- PackageInfo pi = context.getPackageManager().getPackageInfo(STATS_PACKAGE, 0);
|
||||
- return pi.applicationInfo.enabled
|
||||
- && ((pi.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0);
|
||||
- } catch (PackageManager.NameNotFoundException e) {
|
||||
- return false;
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java b/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java
|
||||
index 915abec..8609dbb 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java
|
||||
@@ -28,7 +28,6 @@ import android.util.Log;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.LoadingFragment;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
@@ -91,9 +90,6 @@ public class BluetoothSetupPage extends SetupPage {
|
||||
@Override
|
||||
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_BLUETOOTH) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.BLUETOOTH_SETUP, "success");
|
||||
getCallbacks().onNextPage();
|
||||
} else {
|
||||
return false;
|
||||
@@ -111,9 +107,6 @@ public class BluetoothSetupPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.BLUETOOTH_SETUP);
|
||||
mLoadingFragment.startActivityForResult(intent,
|
||||
SetupWizardApp.REQUEST_CODE_SETUP_BLUETOOTH, options.toBundle());
|
||||
}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java b/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java
|
||||
index a0a4312..42e7ea2 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java
|
||||
@@ -47,7 +47,6 @@ import com.android.internal.telephony.TelephonyIntents;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -356,9 +355,6 @@ public class ChooseDataSimPage extends SetupPage {
|
||||
for (int i = 0; i < mCheckBoxes.size(); i++) {
|
||||
if (subInfoRecord.getSimSlotIndex() == i) {
|
||||
mCheckBoxes.get(i).setChecked(true);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.PREFERRED_DATA_SIM,
|
||||
- SetupStats.Label.SLOT, String.valueOf(i + 1));
|
||||
} else {
|
||||
mCheckBoxes.get(i).setChecked(false);
|
||||
}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java b/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java
|
||||
index e71dd79..5bfe3b0 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java
|
||||
@@ -32,7 +32,6 @@ import android.util.Log;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.LoadingFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -95,10 +94,6 @@ public class CyanogenServicesPage extends SetupPage {
|
||||
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_CYANOGEN) {
|
||||
if (resultCode == Activity.RESULT_OK || resultCode == Activity.RESULT_FIRST_USER) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.CYANOGEN_ACCOUNT,
|
||||
- resultCode == Activity.RESULT_OK ? "success" : "skipped");
|
||||
if (SetupWizardUtils.accountExists(mContext,
|
||||
mContext.getString(R.string.cm_account_type))) {
|
||||
if (SetupWizardUtils.isDeviceLocked()) {
|
||||
@@ -108,9 +103,6 @@ public class CyanogenServicesPage extends SetupPage {
|
||||
}
|
||||
getCallbacks().onNextPage();
|
||||
} else if (resultCode == Activity.RESULT_CANCELED) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.CYANOGEN_ACCOUNT, "canceled");
|
||||
getCallbacks().onPreviousPage();
|
||||
}
|
||||
}
|
||||
@@ -136,11 +128,6 @@ public class CyanogenServicesPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats
|
||||
- .addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE,
|
||||
- SetupStats.Label.CYANOGEN_ACCOUNT);
|
||||
mFragment.startActivityForResult(intent,
|
||||
SetupWizardApp.REQUEST_CODE_SETUP_CYANOGEN,
|
||||
options.toBundle());
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java b/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java
|
||||
index d17d64b..2c95253 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java
|
||||
@@ -42,7 +42,6 @@ import android.widget.TextView;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -54,7 +53,6 @@ public class CyanogenSettingsPage extends SetupPage {
|
||||
|
||||
public static final String TAG = "CyanogenSettingsPage";
|
||||
|
||||
- public static final String KEY_SEND_METRICS = "send_metrics";
|
||||
public static final String DISABLE_NAV_KEYS = "disable_nav_keys";
|
||||
public static final String KEY_APPLY_DEFAULT_THEME = "apply_default_theme";
|
||||
public static final String KEY_BUTTON_BACKLIGHT = "pre_navbar_button_backlight";
|
||||
@@ -116,37 +114,18 @@ public class CyanogenSettingsPage extends SetupPage {
|
||||
@Override
|
||||
public void run() {
|
||||
if (getData().containsKey(DISABLE_NAV_KEYS)) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_NAV_KEYS,
|
||||
- SetupStats.Label.CHECKED,
|
||||
- String.valueOf(getData().getBoolean(DISABLE_NAV_KEYS)));
|
||||
writeDisableNavkeysOption(mContext, getData().getBoolean(DISABLE_NAV_KEYS));
|
||||
}
|
||||
}
|
||||
});
|
||||
- handleEnableMetrics();
|
||||
handleDefaultThemeSetup();
|
||||
}
|
||||
|
||||
- private void handleEnableMetrics() {
|
||||
- Bundle privacyData = getData();
|
||||
- if (privacyData != null
|
||||
- && privacyData.containsKey(KEY_SEND_METRICS)) {
|
||||
- CMSettings.Secure.putInt(mContext.getContentResolver(),
|
||||
- CMSettings.Secure.STATS_COLLECTION, privacyData.getBoolean(KEY_SEND_METRICS)
|
||||
- ? 1 : 0);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
private void handleDefaultThemeSetup() {
|
||||
Bundle privacyData = getData();
|
||||
if (!SetupWizardUtils.getDefaultThemePackageName(mContext).equals(
|
||||
ThemeConfig.SYSTEM_DEFAULT) && privacyData != null &&
|
||||
privacyData.getBoolean(KEY_APPLY_DEFAULT_THEME)) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.APPLY_CUSTOM_THEME,
|
||||
- SetupStats.Label.CHECKED,
|
||||
- String.valueOf(privacyData.getBoolean(KEY_APPLY_DEFAULT_THEME)));
|
||||
Log.i(TAG, "Applying default theme");
|
||||
final ThemeManager tm = ThemeManager.getInstance(mContext);
|
||||
tm.applyDefaultTheme();
|
||||
@@ -176,26 +155,14 @@ public class CyanogenSettingsPage extends SetupPage {
|
||||
private View mKillSwitchView;
|
||||
private TextView mKillSwitchTitle;
|
||||
private ImageView mKillSwitchStatus;
|
||||
- private View mMetricsRow;
|
||||
private View mDefaultThemeRow;
|
||||
private View mNavKeysRow;
|
||||
- private CheckBox mMetrics;
|
||||
private CheckBox mDefaultTheme;
|
||||
private CheckBox mNavKeys;
|
||||
|
||||
private boolean mHideNavKeysRow = false;
|
||||
private boolean mHideThemeRow = false;
|
||||
|
||||
-
|
||||
- private View.OnClickListener mMetricsClickListener = new View.OnClickListener() {
|
||||
- @Override
|
||||
- public void onClick(View view) {
|
||||
- boolean checked = !mMetrics.isChecked();
|
||||
- mMetrics.setChecked(checked);
|
||||
- mPage.getData().putBoolean(KEY_SEND_METRICS, checked);
|
||||
- }
|
||||
- };
|
||||
-
|
||||
private View.OnClickListener mDefaultThemeClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
@@ -253,19 +220,6 @@ public class CyanogenSettingsPage extends SetupPage {
|
||||
}
|
||||
}
|
||||
|
||||
- mMetricsRow = mRootView.findViewById(R.id.metrics);
|
||||
- mMetricsRow.setOnClickListener(mMetricsClickListener);
|
||||
- String metricsHelpImproveCM =
|
||||
- getString(R.string.services_help_improve_cm, getString(R.string.os_name));
|
||||
- String metricsSummary = getString(R.string.services_metrics_label,
|
||||
- metricsHelpImproveCM, getString(R.string.os_name));
|
||||
- final SpannableStringBuilder metricsSpan = new SpannableStringBuilder(metricsSummary);
|
||||
- metricsSpan.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD),
|
||||
- 0, metricsHelpImproveCM.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
- TextView metrics = (TextView) mRootView.findViewById(R.id.enable_metrics_summary);
|
||||
- metrics.setText(metricsSpan);
|
||||
- mMetrics = (CheckBox) mRootView.findViewById(R.id.enable_metrics_checkbox);
|
||||
-
|
||||
mDefaultThemeRow = mRootView.findViewById(R.id.theme);
|
||||
mHideThemeRow = hideThemeSwitch(getActivity());
|
||||
if (mHideThemeRow) {
|
||||
@@ -314,19 +268,9 @@ public class CyanogenSettingsPage extends SetupPage {
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
updateDisableNavkeysOption();
|
||||
- updateMetricsOption();
|
||||
updateThemeOption();
|
||||
}
|
||||
|
||||
- private void updateMetricsOption() {
|
||||
- final Bundle myPageBundle = mPage.getData();
|
||||
- boolean metricsChecked =
|
||||
- !myPageBundle.containsKey(KEY_SEND_METRICS) || myPageBundle
|
||||
- .getBoolean(KEY_SEND_METRICS);
|
||||
- mMetrics.setChecked(metricsChecked);
|
||||
- myPageBundle.putBoolean(KEY_SEND_METRICS, metricsChecked);
|
||||
- }
|
||||
-
|
||||
private void updateThemeOption() {
|
||||
if (!mHideThemeRow) {
|
||||
final Bundle myPageBundle = mPage.getData();
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java b/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java
|
||||
index 7a5922b..a669163 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java
|
||||
@@ -42,7 +42,6 @@ import android.widget.TextView;
|
||||
import android.widget.TimePicker;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
@@ -136,8 +135,6 @@ public class DateTimePage extends SetupPage {
|
||||
mDateView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK,
|
||||
- "date_picker");
|
||||
showDatePicker();
|
||||
}
|
||||
});
|
||||
@@ -145,8 +142,6 @@ public class DateTimePage extends SetupPage {
|
||||
mTimeView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK,
|
||||
- "time_picker");
|
||||
showTimePicker();
|
||||
}
|
||||
});
|
||||
@@ -167,17 +162,11 @@ public class DateTimePage extends SetupPage {
|
||||
final Map<?, ?> map = (Map<?, ?>) adapterView.getItemAtPosition(position);
|
||||
final String tzId = (String) map.get(KEY_ID);
|
||||
if (mCurrentTimeZone != null && !mCurrentTimeZone.getID().equals(tzId)) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK,
|
||||
- "timezone_picker");
|
||||
// Update the system timezone value
|
||||
final Activity activity = getActivity();
|
||||
final AlarmManager alarm = (AlarmManager) activity.getSystemService(Context.ALARM_SERVICE);
|
||||
alarm.setTimeZone(tzId);
|
||||
mCurrentTimeZone = TimeZone.getTimeZone(tzId);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.TIMEZONE_CHANGED,
|
||||
- SetupStats.Label.VALUE,
|
||||
- mCurrentTimeZone.getDisplayName());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -232,10 +221,6 @@ public class DateTimePage extends SetupPage {
|
||||
if (activity != null) {
|
||||
setDate(activity, year, month, day);
|
||||
updateTimeAndDateDisplay(activity);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.DATE_CHANGED,
|
||||
- SetupStats.Label.VALUE,
|
||||
- month+"/"+day+"/"+year);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -245,10 +230,6 @@ public class DateTimePage extends SetupPage {
|
||||
if (activity != null) {
|
||||
setTime(activity, hourOfDay, minute);
|
||||
updateTimeAndDateDisplay(activity);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.TIME_CHANGED,
|
||||
- SetupStats.Label.VALUE,
|
||||
- hourOfDay+":"+minute);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java b/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java
|
||||
index 890a4f6..c9174c6 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java
|
||||
@@ -28,7 +28,6 @@ import android.widget.TextView;
|
||||
import com.android.internal.widget.LockPatternUtils;
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
|
||||
public class FingerprintSetupPage extends SetupPage {
|
||||
@@ -113,9 +112,6 @@ public class FingerprintSetupPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(getActivity(),
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.FINGERPRINT_SETUP);
|
||||
startActivityForResult(intent, SetupWizardApp.REQUEST_CODE_SETUP_FINGERPRINT,
|
||||
options.toBundle());
|
||||
}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java b/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java
|
||||
index eebf3f5..1de9c82 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java
|
||||
@@ -34,7 +34,6 @@ import android.util.Log;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.LoadingFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -138,10 +137,6 @@ public class GmsAccountPage extends SetupPage {
|
||||
boolean restorePicker = !data.hasExtra(EXTRA_RESTORE_TOKEN)
|
||||
&& !data.hasExtra(EXTRA_RESTORE_ACCOUNT) &&
|
||||
data.hasExtra(EXTRA_AUTH_ACCOUNT);
|
||||
-
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.GMS_ACCOUNT, "success");
|
||||
launchGmsRestorePage(restorePicker);
|
||||
} else {
|
||||
handleResult(requestCode, resultCode);
|
||||
@@ -169,24 +164,12 @@ public class GmsAccountPage extends SetupPage {
|
||||
|
||||
private void handleResult(int requestCode, int resultCode) {
|
||||
if (resultCode == Activity.RESULT_CANCELED) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- requestCode == SetupWizardApp.REQUEST_CODE_SETUP_GMS ?
|
||||
- SetupStats.Label.GMS_ACCOUNT : SetupStats.Label.RESTORE, "canceled");
|
||||
getCallbacks().onPreviousPage();
|
||||
} else {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- requestCode == SetupWizardApp.REQUEST_CODE_SETUP_GMS ?
|
||||
- SetupStats.Label.GMS_ACCOUNT : SetupStats.Label.RESTORE, "success");
|
||||
getCallbacks().onNextPage();
|
||||
} else {
|
||||
if (canSkip()) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- requestCode == SetupWizardApp.REQUEST_CODE_SETUP_GMS ?
|
||||
- SetupStats.Label.GMS_ACCOUNT : SetupStats.Label.RESTORE, "skipped");
|
||||
getCallbacks().onNextPage();
|
||||
} else {
|
||||
getCallbacks().onPreviousPage();
|
||||
@@ -226,9 +209,6 @@ public class GmsAccountPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.RESTORE);
|
||||
mFragment.startActivityForResult(
|
||||
intent,
|
||||
SetupWizardApp.REQUEST_CODE_RESTORE_GMS, options.toBundle());
|
||||
@@ -275,9 +255,6 @@ public class GmsAccountPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.GMS_ACCOUNT);
|
||||
mFragment.startActivityForResult(intent,
|
||||
SetupWizardApp.REQUEST_CODE_SETUP_GMS, options.toBundle());
|
||||
} catch (OperationCanceledException e) {
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java b/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java
|
||||
index da3872e..36d9ad5 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java
|
||||
@@ -38,7 +38,6 @@ import android.widget.TextView;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -147,9 +146,6 @@ public class MobileDataPage extends SetupPage {
|
||||
} else {
|
||||
onDataStateReady();
|
||||
}
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_MOBILE_DATA,
|
||||
- SetupStats.Label.CHECKED, String.valueOf(checked));
|
||||
}
|
||||
};
|
||||
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java b/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java
|
||||
index 0ed17ff..0bea90b 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java
|
||||
@@ -40,7 +40,6 @@ import android.widget.TextView;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -233,9 +232,6 @@ public class OtherSettingsPage extends SetupPage {
|
||||
private void onToggleBackup(boolean checked) {
|
||||
try {
|
||||
mBackupManager.setBackupEnabled(checked);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_BACKUP,
|
||||
- SetupStats.Label.CHECKED, String.valueOf(checked));
|
||||
} catch (RemoteException e) {}
|
||||
updateBackupToggle();
|
||||
}
|
||||
@@ -309,9 +305,6 @@ public class OtherSettingsPage extends SetupPage {
|
||||
}
|
||||
|
||||
private void onToggleLocationAccess(boolean checked) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_LOCATION,
|
||||
- SetupStats.Label.CHECKED, String.valueOf(checked));
|
||||
|
||||
if (checked) {
|
||||
setLocationMode(Settings.Secure.LOCATION_MODE_SENSORS_ONLY);
|
||||
@@ -321,10 +314,6 @@ public class OtherSettingsPage extends SetupPage {
|
||||
}
|
||||
|
||||
private void onToggleBatterySaving(boolean checked) {
|
||||
- /* SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_BATTERY_SAVING_LOCATION,
|
||||
- SetupStats.Label.CHECKED, String.valueOf(checked)); */
|
||||
-
|
||||
if (checked) {
|
||||
setLocationMode(Settings.Secure.LOCATION_MODE_BATTERY_SAVING);
|
||||
} else {
|
||||
@@ -333,11 +322,7 @@ public class OtherSettingsPage extends SetupPage {
|
||||
}
|
||||
|
||||
private void onToggleNetwork(boolean checked) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_NETWORK_LOCATION,
|
||||
- SetupStats.Label.CHECKED, String.valueOf(checked));
|
||||
-
|
||||
- if (checked) {
|
||||
+ if (checked) {
|
||||
setLocationMode(Settings.Secure.LOCATION_MODE_HIGH_ACCURACY);
|
||||
} else {
|
||||
setLocationMode(Settings.Secure.LOCATION_MODE_SENSORS_ONLY);
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/SetupPage.java b/src/com/cyanogenmod/setupwizard/setup/SetupPage.java
|
||||
index 1a19fb0..9804049 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/SetupPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/SetupPage.java
|
||||
@@ -26,7 +26,6 @@ import android.transition.Transition;
|
||||
import android.view.Gravity;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
|
||||
|
||||
public abstract class SetupPage implements Page {
|
||||
@@ -76,18 +75,12 @@ public abstract class SetupPage implements Page {
|
||||
public void doLoadAction(FragmentManager fragmentManager, int action) {
|
||||
Fragment fragment = getFragment(fragmentManager, action);
|
||||
if (action == Page.ACTION_NEXT) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK,
|
||||
- SetupStats.Action.NEXT_BUTTON, getKey(),
|
||||
- String.valueOf(System.currentTimeMillis()));
|
||||
Transition t = new Slide(Gravity.RIGHT);
|
||||
fragment.setEnterTransition(t);
|
||||
fragmentManager.beginTransaction()
|
||||
.replace(R.id.content,fragment, getKey())
|
||||
.commit();
|
||||
} else {
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK,
|
||||
- SetupStats.Action.PREVIOUS_BUTTON, getKey(),
|
||||
- String.valueOf(System.currentTimeMillis()));
|
||||
Transition t = new Slide(Gravity.LEFT);
|
||||
fragment.setEnterTransition(t);
|
||||
fragmentManager.beginTransaction()
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java b/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java
|
||||
index e09c2a1..eedb24d 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java
|
||||
@@ -42,7 +42,6 @@ import android.widget.Toast;
|
||||
import com.android.internal.telephony.MccTable;
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.LocalePicker;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
@@ -87,7 +86,6 @@ public class WelcomePage extends SetupPage {
|
||||
return true;
|
||||
} else {
|
||||
if (mWelcomeFragment != null) {
|
||||
- mWelcomeFragment.sendLocaleStats();
|
||||
}
|
||||
return super.doNextAction();
|
||||
}
|
||||
@@ -102,10 +100,6 @@ public class WelcomePage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK, SetupStats.Label.EMERGENCY_CALL);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.EMERGENCY_CALL);
|
||||
mContext.startActivity(intent, options.toBundle());
|
||||
return true;
|
||||
}
|
||||
@@ -269,14 +263,6 @@ public class WelcomePage extends SetupPage {
|
||||
return R.layout.setup_welcome_page;
|
||||
}
|
||||
|
||||
- public void sendLocaleStats() {
|
||||
- if (!mCurrentLocale.equals(mInitialLocale)) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.CHANGE_LOCALE, SetupStats.Label.LOCALE,
|
||||
- mCurrentLocale.getDisplayName());
|
||||
- }
|
||||
- }
|
||||
-
|
||||
public void fetchAndUpdateSimLocale() {
|
||||
if (mIgnoreSimLocale || isDetached()) {
|
||||
return;
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java b/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java
|
||||
index 2d8084a..3a131f7 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java
|
||||
@@ -31,7 +31,6 @@ import android.util.Log;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.LoadingFragment;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
@@ -86,9 +85,6 @@ public class WifiSetupPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.CAPTIVE_PORTAL_LOGIN);
|
||||
mLoadingFragment.startActivityForResult(intent,
|
||||
SetupWizardApp.REQUEST_CODE_SETUP_CAPTIVE_PORTAL,
|
||||
options.toBundle());
|
||||
@@ -157,19 +153,10 @@ public class WifiSetupPage extends SetupPage {
|
||||
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_WIFI) {
|
||||
if (resultCode == Activity.RESULT_CANCELED) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.WIFI_SETUP, "canceled");
|
||||
getCallbacks().onPreviousPage();
|
||||
} else if (resultCode == Activity.RESULT_OK) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.WIFI_SETUP, "success");
|
||||
checkForCaptivePortal();
|
||||
} else {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.WIFI_SETUP, "skipped");
|
||||
getCallbacks().onNextPage();
|
||||
}
|
||||
} else if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_CAPTIVE_PORTAL) {
|
||||
@@ -179,20 +166,11 @@ public class WifiSetupPage extends SetupPage {
|
||||
}
|
||||
String token = data.getStringExtra("response_token");
|
||||
if (token != null && !token.equals(mResponseToken)) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.CAPTIVE_PORTAL_LOGIN, "token_mismatch");
|
||||
launchWifiSetup();
|
||||
} else {
|
||||
if (resultCode == Activity.RESULT_CANCELED) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.CAPTIVE_PORTAL_LOGIN, "canceled");
|
||||
launchWifiSetup();
|
||||
} else {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.CAPTIVE_PORTAL_LOGIN, "success");
|
||||
getCallbacks().onNextPage();
|
||||
}
|
||||
}
|
||||
@@ -256,9 +234,6 @@ public class WifiSetupPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.WIFI_SETUP);
|
||||
mLoadingFragment.startActivityForResult(intent,
|
||||
SetupWizardApp.REQUEST_CODE_SETUP_WIFI, options.toBundle());
|
||||
}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java b/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java
|
||||
index b0df440..33c61c7 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java
|
||||
@@ -26,7 +26,6 @@ import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.setup.Page;
|
||||
import com.cyanogenmod.setupwizard.setup.SetupDataCallbacks;
|
||||
|
||||
@@ -43,8 +42,6 @@ public abstract class SetupPageFragment extends Fragment {
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setRetainInstance(true);
|
||||
- SetupStats.addEvent(SetupStats.Categories.PAGE_LOAD, SetupStats.Action.PAGE_LOADED,
|
||||
- mKey, String.valueOf(System.currentTimeMillis()));
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java b/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java
|
||||
index 7ba58e0..68255c4 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java
|
||||
@@ -44,7 +44,6 @@ import android.widget.ProgressBar;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.setup.CMSetupWizardData;
|
||||
import com.cyanogenmod.setupwizard.setup.GmsAccountPage;
|
||||
import com.cyanogenmod.setupwizard.setup.Page;
|
||||
@@ -108,7 +107,6 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks,
|
||||
}
|
||||
});
|
||||
if (sLaunchTime == 0) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.APP_LAUNCH, TAG);
|
||||
sLaunchTime = System.nanoTime();
|
||||
}
|
||||
setContentView(R.layout.setup_main);
|
||||
@@ -387,9 +385,6 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks,
|
||||
@Override
|
||||
public void finishSetup() {
|
||||
if (!mIsFinishing) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.APP_FINISHED, TAG,
|
||||
- SetupStats.Label.TOTAL_TIME, String.valueOf(
|
||||
- System.nanoTime() - sLaunchTime));
|
||||
final SetupWizardApp setupWizardApp = (SetupWizardApp)getApplication();
|
||||
setupWizardApp.sendStickyBroadcastAsUser(
|
||||
new Intent(SetupWizardApp.ACTION_FINISHED),
|
||||
@@ -479,7 +474,6 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks,
|
||||
}
|
||||
final ThemeManager tm = ThemeManager.getInstance(SetupWizardActivity.this);
|
||||
tm.unregisterThemeChangeListener(SetupWizardActivity.this);
|
||||
- SetupStats.sendEvents(SetupWizardActivity.this);
|
||||
SetupWizardUtils.disableGMSSetupWizard(SetupWizardActivity.this);
|
||||
final WallpaperManager wallpaperManager =
|
||||
WallpaperManager.getInstance(SetupWizardActivity.this);
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java b/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java
|
||||
index 440129b..47d6de5 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java
|
||||
@@ -39,7 +39,6 @@ import android.view.accessibility.AccessibilityManager;
|
||||
import android.view.accessibility.IAccessibilityManager;
|
||||
|
||||
import com.android.internal.R;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
@@ -284,8 +283,6 @@ public class EnableAccessibilityController {
|
||||
// Turn on accessibility mode last.
|
||||
Settings.Secure.putIntForUser(resolver, Settings.Secure.ACCESSIBILITY_ENABLED,
|
||||
1, userId);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- "accessibility_enabled");
|
||||
} else if (keyguardLocked) {
|
||||
try {
|
||||
mAccessibilityManager.temporaryEnableAccessibilityStateUntilKeyguardRemoved(
|
||||
--
|
||||
2.8.0
|
||||
|
@ -0,0 +1,944 @@
|
||||
From 149226a0a45a4a65447c4059b6e199dbc345bfde Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Thu, 28 Apr 2016 00:22:37 -0400
|
||||
Subject: [PATCH] Remove analytics
|
||||
|
||||
Change-Id: I1c9a4267c948013a9cd900cf046ed450d945ab4c
|
||||
---
|
||||
AndroidManifest.xml | 1 -
|
||||
.../setupwizard/cmstats/SetupStats.java | 162 ---------------------
|
||||
.../setupwizard/cmstats/StatsUtils.java | 44 ------
|
||||
.../setupwizard/setup/BluetoothSetupPage.java | 7 -
|
||||
.../setupwizard/setup/ChooseDataSimPage.java | 4 -
|
||||
.../setupwizard/setup/CyanogenServicesPage.java | 13 --
|
||||
.../setupwizard/setup/CyanogenSettingsPage.java | 56 -------
|
||||
.../setupwizard/setup/DateTimePage.java | 19 ---
|
||||
.../setupwizard/setup/FingerprintSetupPage.java | 4 -
|
||||
.../setupwizard/setup/GmsAccountPage.java | 23 ---
|
||||
.../setupwizard/setup/MobileDataPage.java | 4 -
|
||||
.../setupwizard/setup/OtherSettingsPage.java | 14 +-
|
||||
.../cyanogenmod/setupwizard/setup/SetupPage.java | 7 -
|
||||
.../cyanogenmod/setupwizard/setup/WelcomePage.java | 14 --
|
||||
.../setupwizard/setup/WifiSetupPage.java | 25 ----
|
||||
.../setupwizard/ui/SetupPageFragment.java | 3 -
|
||||
.../setupwizard/ui/SetupWizardActivity.java | 6 -
|
||||
.../util/EnableAccessibilityController.java | 3 -
|
||||
18 files changed, 1 insertion(+), 408 deletions(-)
|
||||
delete mode 100644 src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java
|
||||
delete mode 100644 src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java
|
||||
|
||||
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
|
||||
index d8c7617..8e2ec08 100644
|
||||
--- a/AndroidManifest.xml
|
||||
+++ b/AndroidManifest.xml
|
||||
@@ -43,7 +43,6 @@
|
||||
<uses-permission android:name="android.permission.BACKUP" />
|
||||
<uses-permission android:name="cyanogenmod.permission.FINISH_SETUP" />
|
||||
<uses-permission android:name="cyanogenmod.permission.LEGALESE" />
|
||||
- <uses-permission android:name="com.cyngn.stats.SEND_ANALYTICS" />
|
||||
<uses-permission android:name="com.cyanogen.permission.REQUEST_KILL_SWITCH_OP" />
|
||||
<uses-permission android:name="cyanogenmod.permission.WRITE_SETTINGS"/>
|
||||
<uses-permission android:name="cyanogenmod.permission.WRITE_SECURE_SETTINGS"/>
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java b/src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java
|
||||
deleted file mode 100644
|
||||
index 6eb527f..0000000
|
||||
--- a/src/com/cyanogenmod/setupwizard/cmstats/SetupStats.java
|
||||
+++ /dev/null
|
||||
@@ -1,162 +0,0 @@
|
||||
-/*
|
||||
- * 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.
|
||||
- */
|
||||
-
|
||||
-package com.cyanogenmod.setupwizard.cmstats;
|
||||
-
|
||||
-import android.content.Context;
|
||||
-import android.content.Intent;
|
||||
-import android.os.UserHandle;
|
||||
-import android.util.Log;
|
||||
-
|
||||
-import java.util.LinkedList;
|
||||
-
|
||||
-
|
||||
-public class SetupStats {
|
||||
-
|
||||
- private static final String TAG = SetupStats.class.getSimpleName();
|
||||
-
|
||||
- private static final String ANALYTIC_INTENT = "com.cyngn.stats.action.SEND_ANALYTIC_EVENT";
|
||||
- private static final String ANALYTIC_PERMISSION = "com.cyngn.stats.SEND_ANALYTICS";
|
||||
-
|
||||
- public static final String TRACKING_ID = "tracking_id";
|
||||
-
|
||||
- private final LinkedList<Event> mEvents = new LinkedList<Event>();
|
||||
-
|
||||
- private static final SetupStats sInstance = new SetupStats();
|
||||
-
|
||||
- private static final boolean DEBUG = false;
|
||||
-
|
||||
- private SetupStats() {}
|
||||
-
|
||||
- public static void addEvent(String category, String action,
|
||||
- String label, String value) {
|
||||
- sInstance.mEvents.add(new Event(category, action, label, value));
|
||||
- }
|
||||
-
|
||||
- public static void addEvent(String category, String action) {
|
||||
- sInstance.mEvents.add(new Event(category, action, null, null));
|
||||
- }
|
||||
-
|
||||
- public static void sendEvents(Context context) {
|
||||
- while (!sInstance.mEvents.isEmpty()) {
|
||||
- sInstance.sendEvent(context, sInstance.mEvents.remove());
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- private void sendEvent(Context context, Event event) {
|
||||
-
|
||||
- if (!StatsUtils.isStatsPackageInstalled(context)
|
||||
- || !StatsUtils.isStatsCollectionEnabled(context)) {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- // Create new intent
|
||||
- Intent intent = new Intent();
|
||||
- intent.setAction(ANALYTIC_INTENT);
|
||||
-
|
||||
- // add tracking id
|
||||
- intent.putExtra(TRACKING_ID, context.getPackageName());
|
||||
- // append
|
||||
- intent.putExtra(Fields.EVENT_CATEGORY, event.category);
|
||||
- if (DEBUG) Log.d(TAG, Fields.EVENT_CATEGORY + "=" + event.category);
|
||||
- intent.putExtra(Fields.EVENT_ACTION, event.action);
|
||||
- if (DEBUG) Log.d(TAG, Fields.EVENT_ACTION + "=" + event.action);
|
||||
- // check if exist
|
||||
- if (event.label != null) {
|
||||
- intent.putExtra(Fields.EVENT_LABEL, event.label);
|
||||
- if (DEBUG) Log.d(TAG, Fields.EVENT_LABEL + "=" + event.label);
|
||||
- }
|
||||
-
|
||||
- if (event.value != null) {
|
||||
- intent.putExtra(Fields.EVENT_VALUE, event.value);
|
||||
- if (DEBUG) Log.d(TAG, Fields.EVENT_VALUE + "=" + event.value);
|
||||
- }
|
||||
-
|
||||
- // broadcast for internal package
|
||||
- context.sendBroadcastAsUser(intent,
|
||||
- new UserHandle(UserHandle.USER_CURRENT), ANALYTIC_PERMISSION);
|
||||
- }
|
||||
-
|
||||
- private static final class Event {
|
||||
- private final String category;
|
||||
- private final String action;
|
||||
- private final String label;
|
||||
- private final String value;
|
||||
-
|
||||
- public Event(String category, String action, String label, String value) {
|
||||
- this.action = action;
|
||||
- this.category = category;
|
||||
- this.label = label;
|
||||
- this.value = value;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- public static final class Fields {
|
||||
- public static final String EVENT_CATEGORY = "category";
|
||||
- public static final String EVENT_ACTION = "action";
|
||||
- public static final String EVENT_LABEL = "label";
|
||||
- public static final String EVENT_VALUE = "value";
|
||||
- }
|
||||
-
|
||||
- public static final class Categories {
|
||||
- public static final String APP_LAUNCH = "app_launch";
|
||||
- public static final String APP_FINISHED = "app_finish";
|
||||
- public static final String PAGE_LOAD = "page_load";
|
||||
- public static final String EXTERNAL_PAGE_LOAD = "external_page_load";
|
||||
- public static final String BUTTON_CLICK = "button_click";
|
||||
- public static final String SETTING_CHANGED = "setting_changed";
|
||||
- }
|
||||
-
|
||||
- public static final class Action {
|
||||
- public static final String PAGE_LOADED = "page_loaded";
|
||||
- public static final String PREVIOUS_BUTTON = "previous_button";
|
||||
- public static final String NEXT_BUTTON = "next_button";
|
||||
- public static final String CHANGE_LOCALE = "change_local";
|
||||
- public static final String EXTERNAL_PAGE_LAUNCH = "external_page_launch";
|
||||
- public static final String EXTERNAL_PAGE_RESULT = "external_page_result";
|
||||
- public static final String ENABLE_MOBILE_DATA = "enable_mobile_data";
|
||||
- public static final String PREFERRED_DATA_SIM = "preferred_data_sim";
|
||||
- public static final String APPLY_CUSTOM_THEME = "apply_custom_theme";
|
||||
- public static final String USE_SECURE_SMS = "use_secure_sms";
|
||||
- public static final String ENABLE_BACKUP = "enable_backup";
|
||||
- public static final String ENABLE_NAV_KEYS = "enable_nav_keys";
|
||||
- public static final String ENABLE_LOCATION = "enable_location";
|
||||
- public static final String ENABLE_NETWORK_LOCATION = "enable_network_location";
|
||||
- public static final String ENABLE_GPS_LOCATION = "enable_gps_location";
|
||||
- public static final String DATE_CHANGED = "date_changed";
|
||||
- public static final String TIME_CHANGED = "time_changed";
|
||||
- public static final String TIMEZONE_CHANGED = "timezone_changed";
|
||||
- }
|
||||
-
|
||||
- public static final class Label {
|
||||
- public static final String PAGE = "page";
|
||||
- public static final String LOCALE = "local";
|
||||
- public static final String RESULT = "result";
|
||||
- public static final String WIFI_SETUP = "wifi_setup";
|
||||
- public static final String BLUETOOTH_SETUP = "bluetooth_setup";
|
||||
- public static final String CYANOGEN_ACCOUNT = "cyanogen_account_setup";
|
||||
- public static final String CAPTIVE_PORTAL_LOGIN = "captive_portal_login";
|
||||
- public static final String EMERGENCY_CALL = "emergency_call";
|
||||
- public static final String GMS_ACCOUNT = "gms_account";
|
||||
- public static final String RESTORE = "restore";
|
||||
- public static final String CHECKED = "checked";
|
||||
- public static final String VALUE = "value";
|
||||
- public static final String SLOT = "slot";
|
||||
- public static final String TOTAL_TIME = "total_time";
|
||||
- public static final String FINGERPRINT_SETUP = "fingerprint_setup";
|
||||
- }
|
||||
-
|
||||
-}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java b/src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java
|
||||
deleted file mode 100644
|
||||
index 8be8fad..0000000
|
||||
--- a/src/com/cyanogenmod/setupwizard/cmstats/StatsUtils.java
|
||||
+++ /dev/null
|
||||
@@ -1,44 +0,0 @@
|
||||
-
|
||||
-/*
|
||||
- * 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.
|
||||
- */
|
||||
-
|
||||
-package com.cyanogenmod.setupwizard.cmstats;
|
||||
-
|
||||
-import android.content.Context;
|
||||
-import android.content.pm.ApplicationInfo;
|
||||
-import android.content.pm.PackageInfo;
|
||||
-import android.content.pm.PackageManager;
|
||||
-
|
||||
-import cyanogenmod.providers.CMSettings;
|
||||
-
|
||||
-public class StatsUtils {
|
||||
- private static final String STATS_PACKAGE = "com.cyngn.stats";
|
||||
-
|
||||
- public static boolean isStatsCollectionEnabled(Context context) {
|
||||
- return CMSettings.Secure.getInt(context.getContentResolver(),
|
||||
- CMSettings.Secure.STATS_COLLECTION, 1) != 0;
|
||||
- }
|
||||
-
|
||||
- public static boolean isStatsPackageInstalled(Context context) {
|
||||
- try {
|
||||
- PackageInfo pi = context.getPackageManager().getPackageInfo(STATS_PACKAGE, 0);
|
||||
- return pi.applicationInfo.enabled
|
||||
- && ((pi.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0);
|
||||
- } catch (PackageManager.NameNotFoundException e) {
|
||||
- return false;
|
||||
- }
|
||||
- }
|
||||
-}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java b/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java
|
||||
index 915abec..8609dbb 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/BluetoothSetupPage.java
|
||||
@@ -28,7 +28,6 @@ import android.util.Log;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.LoadingFragment;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
@@ -91,9 +90,6 @@ public class BluetoothSetupPage extends SetupPage {
|
||||
@Override
|
||||
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_BLUETOOTH) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.BLUETOOTH_SETUP, "success");
|
||||
getCallbacks().onNextPage();
|
||||
} else {
|
||||
return false;
|
||||
@@ -111,9 +107,6 @@ public class BluetoothSetupPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.BLUETOOTH_SETUP);
|
||||
mLoadingFragment.startActivityForResult(intent,
|
||||
SetupWizardApp.REQUEST_CODE_SETUP_BLUETOOTH, options.toBundle());
|
||||
}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java b/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java
|
||||
index a0a4312..42e7ea2 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/ChooseDataSimPage.java
|
||||
@@ -47,7 +47,6 @@ import com.android.internal.telephony.TelephonyIntents;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -356,9 +355,6 @@ public class ChooseDataSimPage extends SetupPage {
|
||||
for (int i = 0; i < mCheckBoxes.size(); i++) {
|
||||
if (subInfoRecord.getSimSlotIndex() == i) {
|
||||
mCheckBoxes.get(i).setChecked(true);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.PREFERRED_DATA_SIM,
|
||||
- SetupStats.Label.SLOT, String.valueOf(i + 1));
|
||||
} else {
|
||||
mCheckBoxes.get(i).setChecked(false);
|
||||
}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java b/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java
|
||||
index e71dd79..5bfe3b0 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/CyanogenServicesPage.java
|
||||
@@ -32,7 +32,6 @@ import android.util.Log;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.LoadingFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -95,10 +94,6 @@ public class CyanogenServicesPage extends SetupPage {
|
||||
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_CYANOGEN) {
|
||||
if (resultCode == Activity.RESULT_OK || resultCode == Activity.RESULT_FIRST_USER) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.CYANOGEN_ACCOUNT,
|
||||
- resultCode == Activity.RESULT_OK ? "success" : "skipped");
|
||||
if (SetupWizardUtils.accountExists(mContext,
|
||||
mContext.getString(R.string.cm_account_type))) {
|
||||
if (SetupWizardUtils.isDeviceLocked()) {
|
||||
@@ -108,9 +103,6 @@ public class CyanogenServicesPage extends SetupPage {
|
||||
}
|
||||
getCallbacks().onNextPage();
|
||||
} else if (resultCode == Activity.RESULT_CANCELED) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.CYANOGEN_ACCOUNT, "canceled");
|
||||
getCallbacks().onPreviousPage();
|
||||
}
|
||||
}
|
||||
@@ -136,11 +128,6 @@ public class CyanogenServicesPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats
|
||||
- .addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE,
|
||||
- SetupStats.Label.CYANOGEN_ACCOUNT);
|
||||
mFragment.startActivityForResult(intent,
|
||||
SetupWizardApp.REQUEST_CODE_SETUP_CYANOGEN,
|
||||
options.toBundle());
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java b/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java
|
||||
index d17d64b..2c95253 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/CyanogenSettingsPage.java
|
||||
@@ -42,7 +42,6 @@ import android.widget.TextView;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -54,7 +53,6 @@ public class CyanogenSettingsPage extends SetupPage {
|
||||
|
||||
public static final String TAG = "CyanogenSettingsPage";
|
||||
|
||||
- public static final String KEY_SEND_METRICS = "send_metrics";
|
||||
public static final String DISABLE_NAV_KEYS = "disable_nav_keys";
|
||||
public static final String KEY_APPLY_DEFAULT_THEME = "apply_default_theme";
|
||||
public static final String KEY_BUTTON_BACKLIGHT = "pre_navbar_button_backlight";
|
||||
@@ -116,37 +114,18 @@ public class CyanogenSettingsPage extends SetupPage {
|
||||
@Override
|
||||
public void run() {
|
||||
if (getData().containsKey(DISABLE_NAV_KEYS)) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_NAV_KEYS,
|
||||
- SetupStats.Label.CHECKED,
|
||||
- String.valueOf(getData().getBoolean(DISABLE_NAV_KEYS)));
|
||||
writeDisableNavkeysOption(mContext, getData().getBoolean(DISABLE_NAV_KEYS));
|
||||
}
|
||||
}
|
||||
});
|
||||
- handleEnableMetrics();
|
||||
handleDefaultThemeSetup();
|
||||
}
|
||||
|
||||
- private void handleEnableMetrics() {
|
||||
- Bundle privacyData = getData();
|
||||
- if (privacyData != null
|
||||
- && privacyData.containsKey(KEY_SEND_METRICS)) {
|
||||
- CMSettings.Secure.putInt(mContext.getContentResolver(),
|
||||
- CMSettings.Secure.STATS_COLLECTION, privacyData.getBoolean(KEY_SEND_METRICS)
|
||||
- ? 1 : 0);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
private void handleDefaultThemeSetup() {
|
||||
Bundle privacyData = getData();
|
||||
if (!SetupWizardUtils.getDefaultThemePackageName(mContext).equals(
|
||||
ThemeConfig.SYSTEM_DEFAULT) && privacyData != null &&
|
||||
privacyData.getBoolean(KEY_APPLY_DEFAULT_THEME)) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.APPLY_CUSTOM_THEME,
|
||||
- SetupStats.Label.CHECKED,
|
||||
- String.valueOf(privacyData.getBoolean(KEY_APPLY_DEFAULT_THEME)));
|
||||
Log.i(TAG, "Applying default theme");
|
||||
final ThemeManager tm = ThemeManager.getInstance(mContext);
|
||||
tm.applyDefaultTheme();
|
||||
@@ -176,26 +155,14 @@ public class CyanogenSettingsPage extends SetupPage {
|
||||
private View mKillSwitchView;
|
||||
private TextView mKillSwitchTitle;
|
||||
private ImageView mKillSwitchStatus;
|
||||
- private View mMetricsRow;
|
||||
private View mDefaultThemeRow;
|
||||
private View mNavKeysRow;
|
||||
- private CheckBox mMetrics;
|
||||
private CheckBox mDefaultTheme;
|
||||
private CheckBox mNavKeys;
|
||||
|
||||
private boolean mHideNavKeysRow = false;
|
||||
private boolean mHideThemeRow = false;
|
||||
|
||||
-
|
||||
- private View.OnClickListener mMetricsClickListener = new View.OnClickListener() {
|
||||
- @Override
|
||||
- public void onClick(View view) {
|
||||
- boolean checked = !mMetrics.isChecked();
|
||||
- mMetrics.setChecked(checked);
|
||||
- mPage.getData().putBoolean(KEY_SEND_METRICS, checked);
|
||||
- }
|
||||
- };
|
||||
-
|
||||
private View.OnClickListener mDefaultThemeClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
@@ -253,19 +220,6 @@ public class CyanogenSettingsPage extends SetupPage {
|
||||
}
|
||||
}
|
||||
|
||||
- mMetricsRow = mRootView.findViewById(R.id.metrics);
|
||||
- mMetricsRow.setOnClickListener(mMetricsClickListener);
|
||||
- String metricsHelpImproveCM =
|
||||
- getString(R.string.services_help_improve_cm, getString(R.string.os_name));
|
||||
- String metricsSummary = getString(R.string.services_metrics_label,
|
||||
- metricsHelpImproveCM, getString(R.string.os_name));
|
||||
- final SpannableStringBuilder metricsSpan = new SpannableStringBuilder(metricsSummary);
|
||||
- metricsSpan.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD),
|
||||
- 0, metricsHelpImproveCM.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
- TextView metrics = (TextView) mRootView.findViewById(R.id.enable_metrics_summary);
|
||||
- metrics.setText(metricsSpan);
|
||||
- mMetrics = (CheckBox) mRootView.findViewById(R.id.enable_metrics_checkbox);
|
||||
-
|
||||
mDefaultThemeRow = mRootView.findViewById(R.id.theme);
|
||||
mHideThemeRow = hideThemeSwitch(getActivity());
|
||||
if (mHideThemeRow) {
|
||||
@@ -314,19 +268,9 @@ public class CyanogenSettingsPage extends SetupPage {
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
updateDisableNavkeysOption();
|
||||
- updateMetricsOption();
|
||||
updateThemeOption();
|
||||
}
|
||||
|
||||
- private void updateMetricsOption() {
|
||||
- final Bundle myPageBundle = mPage.getData();
|
||||
- boolean metricsChecked =
|
||||
- !myPageBundle.containsKey(KEY_SEND_METRICS) || myPageBundle
|
||||
- .getBoolean(KEY_SEND_METRICS);
|
||||
- mMetrics.setChecked(metricsChecked);
|
||||
- myPageBundle.putBoolean(KEY_SEND_METRICS, metricsChecked);
|
||||
- }
|
||||
-
|
||||
private void updateThemeOption() {
|
||||
if (!mHideThemeRow) {
|
||||
final Bundle myPageBundle = mPage.getData();
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java b/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java
|
||||
index 7a5922b..a669163 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/DateTimePage.java
|
||||
@@ -42,7 +42,6 @@ import android.widget.TextView;
|
||||
import android.widget.TimePicker;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
@@ -136,8 +135,6 @@ public class DateTimePage extends SetupPage {
|
||||
mDateView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK,
|
||||
- "date_picker");
|
||||
showDatePicker();
|
||||
}
|
||||
});
|
||||
@@ -145,8 +142,6 @@ public class DateTimePage extends SetupPage {
|
||||
mTimeView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK,
|
||||
- "time_picker");
|
||||
showTimePicker();
|
||||
}
|
||||
});
|
||||
@@ -167,17 +162,11 @@ public class DateTimePage extends SetupPage {
|
||||
final Map<?, ?> map = (Map<?, ?>) adapterView.getItemAtPosition(position);
|
||||
final String tzId = (String) map.get(KEY_ID);
|
||||
if (mCurrentTimeZone != null && !mCurrentTimeZone.getID().equals(tzId)) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK,
|
||||
- "timezone_picker");
|
||||
// Update the system timezone value
|
||||
final Activity activity = getActivity();
|
||||
final AlarmManager alarm = (AlarmManager) activity.getSystemService(Context.ALARM_SERVICE);
|
||||
alarm.setTimeZone(tzId);
|
||||
mCurrentTimeZone = TimeZone.getTimeZone(tzId);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.TIMEZONE_CHANGED,
|
||||
- SetupStats.Label.VALUE,
|
||||
- mCurrentTimeZone.getDisplayName());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -232,10 +221,6 @@ public class DateTimePage extends SetupPage {
|
||||
if (activity != null) {
|
||||
setDate(activity, year, month, day);
|
||||
updateTimeAndDateDisplay(activity);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.DATE_CHANGED,
|
||||
- SetupStats.Label.VALUE,
|
||||
- month+"/"+day+"/"+year);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -245,10 +230,6 @@ public class DateTimePage extends SetupPage {
|
||||
if (activity != null) {
|
||||
setTime(activity, hourOfDay, minute);
|
||||
updateTimeAndDateDisplay(activity);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.TIME_CHANGED,
|
||||
- SetupStats.Label.VALUE,
|
||||
- hourOfDay+":"+minute);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java b/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java
|
||||
index 890a4f6..c9174c6 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/FingerprintSetupPage.java
|
||||
@@ -28,7 +28,6 @@ import android.widget.TextView;
|
||||
import com.android.internal.widget.LockPatternUtils;
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
|
||||
public class FingerprintSetupPage extends SetupPage {
|
||||
@@ -113,9 +112,6 @@ public class FingerprintSetupPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(getActivity(),
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.FINGERPRINT_SETUP);
|
||||
startActivityForResult(intent, SetupWizardApp.REQUEST_CODE_SETUP_FINGERPRINT,
|
||||
options.toBundle());
|
||||
}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java b/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java
|
||||
index 2b4741a..e8b4ef4 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/GmsAccountPage.java
|
||||
@@ -35,7 +35,6 @@ import android.util.Log;
|
||||
import com.android.setupwizardlib.util.ResultCodes;
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.LoadingFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -143,10 +142,6 @@ public class GmsAccountPage extends SetupPage {
|
||||
boolean restorePicker = !data.hasExtra(EXTRA_RESTORE_TOKEN)
|
||||
&& !data.hasExtra(EXTRA_RESTORE_ACCOUNT) &&
|
||||
data.hasExtra(EXTRA_AUTH_ACCOUNT);
|
||||
-
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.GMS_ACCOUNT, "success");
|
||||
launchGmsRestorePage(restorePicker);
|
||||
} else {
|
||||
handleResult(requestCode, resultCode);
|
||||
@@ -174,24 +169,12 @@ public class GmsAccountPage extends SetupPage {
|
||||
|
||||
private void handleResult(int requestCode, int resultCode) {
|
||||
if (resultCode == Activity.RESULT_CANCELED) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- requestCode == SetupWizardApp.REQUEST_CODE_SETUP_GMS ?
|
||||
- SetupStats.Label.GMS_ACCOUNT : SetupStats.Label.RESTORE, "canceled");
|
||||
getCallbacks().onPreviousPage();
|
||||
} else {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- requestCode == SetupWizardApp.REQUEST_CODE_SETUP_GMS ?
|
||||
- SetupStats.Label.GMS_ACCOUNT : SetupStats.Label.RESTORE, "success");
|
||||
getCallbacks().onNextPage();
|
||||
} else {
|
||||
if (canSkip()) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- requestCode == SetupWizardApp.REQUEST_CODE_SETUP_GMS ?
|
||||
- SetupStats.Label.GMS_ACCOUNT : SetupStats.Label.RESTORE, "skipped");
|
||||
getCallbacks().onNextPage();
|
||||
} else {
|
||||
getCallbacks().onPreviousPage();
|
||||
@@ -231,9 +214,6 @@ public class GmsAccountPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.RESTORE);
|
||||
mFragment.startActivityForResult(
|
||||
intent,
|
||||
SetupWizardApp.REQUEST_CODE_RESTORE_GMS, options.toBundle());
|
||||
@@ -305,9 +285,6 @@ public class GmsAccountPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.GMS_ACCOUNT);
|
||||
mFragment.startActivityForResult(intent,
|
||||
SetupWizardApp.REQUEST_CODE_SETUP_GMS, options.toBundle());
|
||||
} catch (OperationCanceledException e) {
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java b/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java
|
||||
index da3872e..36d9ad5 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/MobileDataPage.java
|
||||
@@ -38,7 +38,6 @@ import android.widget.TextView;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -147,9 +146,6 @@ public class MobileDataPage extends SetupPage {
|
||||
} else {
|
||||
onDataStateReady();
|
||||
}
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_MOBILE_DATA,
|
||||
- SetupStats.Label.CHECKED, String.valueOf(checked));
|
||||
}
|
||||
};
|
||||
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java b/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java
|
||||
index 7ed23dc..69b0100 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/OtherSettingsPage.java
|
||||
@@ -17,7 +17,6 @@
|
||||
package com.cyanogenmod.setupwizard.setup;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
@@ -229,9 +228,6 @@ public class OtherSettingsPage extends SetupPage {
|
||||
}
|
||||
|
||||
private void onToggleLocationAccess(boolean checked) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_LOCATION,
|
||||
- SetupStats.Label.CHECKED, String.valueOf(checked));
|
||||
|
||||
if (checked) {
|
||||
setLocationMode(Settings.Secure.LOCATION_MODE_SENSORS_ONLY);
|
||||
@@ -241,10 +237,6 @@ public class OtherSettingsPage extends SetupPage {
|
||||
}
|
||||
|
||||
private void onToggleBatterySaving(boolean checked) {
|
||||
- /* SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_BATTERY_SAVING_LOCATION,
|
||||
- SetupStats.Label.CHECKED, String.valueOf(checked)); */
|
||||
-
|
||||
if (checked) {
|
||||
setLocationMode(Settings.Secure.LOCATION_MODE_BATTERY_SAVING);
|
||||
} else {
|
||||
@@ -253,11 +245,7 @@ public class OtherSettingsPage extends SetupPage {
|
||||
}
|
||||
|
||||
private void onToggleNetwork(boolean checked) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.ENABLE_NETWORK_LOCATION,
|
||||
- SetupStats.Label.CHECKED, String.valueOf(checked));
|
||||
-
|
||||
- if (checked) {
|
||||
+ if (checked) {
|
||||
setLocationMode(Settings.Secure.LOCATION_MODE_HIGH_ACCURACY);
|
||||
} else {
|
||||
setLocationMode(Settings.Secure.LOCATION_MODE_SENSORS_ONLY);
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/SetupPage.java b/src/com/cyanogenmod/setupwizard/setup/SetupPage.java
|
||||
index 1a19fb0..9804049 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/SetupPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/SetupPage.java
|
||||
@@ -26,7 +26,6 @@ import android.transition.Transition;
|
||||
import android.view.Gravity;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
|
||||
|
||||
public abstract class SetupPage implements Page {
|
||||
@@ -76,18 +75,12 @@ public abstract class SetupPage implements Page {
|
||||
public void doLoadAction(FragmentManager fragmentManager, int action) {
|
||||
Fragment fragment = getFragment(fragmentManager, action);
|
||||
if (action == Page.ACTION_NEXT) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK,
|
||||
- SetupStats.Action.NEXT_BUTTON, getKey(),
|
||||
- String.valueOf(System.currentTimeMillis()));
|
||||
Transition t = new Slide(Gravity.RIGHT);
|
||||
fragment.setEnterTransition(t);
|
||||
fragmentManager.beginTransaction()
|
||||
.replace(R.id.content,fragment, getKey())
|
||||
.commit();
|
||||
} else {
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK,
|
||||
- SetupStats.Action.PREVIOUS_BUTTON, getKey(),
|
||||
- String.valueOf(System.currentTimeMillis()));
|
||||
Transition t = new Slide(Gravity.LEFT);
|
||||
fragment.setEnterTransition(t);
|
||||
fragmentManager.beginTransaction()
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java b/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java
|
||||
index e09c2a1..eedb24d 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/WelcomePage.java
|
||||
@@ -42,7 +42,6 @@ import android.widget.Toast;
|
||||
import com.android.internal.telephony.MccTable;
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.LocalePicker;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
@@ -87,7 +86,6 @@ public class WelcomePage extends SetupPage {
|
||||
return true;
|
||||
} else {
|
||||
if (mWelcomeFragment != null) {
|
||||
- mWelcomeFragment.sendLocaleStats();
|
||||
}
|
||||
return super.doNextAction();
|
||||
}
|
||||
@@ -102,10 +100,6 @@ public class WelcomePage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.BUTTON_CLICK, SetupStats.Label.EMERGENCY_CALL);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.EMERGENCY_CALL);
|
||||
mContext.startActivity(intent, options.toBundle());
|
||||
return true;
|
||||
}
|
||||
@@ -269,14 +263,6 @@ public class WelcomePage extends SetupPage {
|
||||
return R.layout.setup_welcome_page;
|
||||
}
|
||||
|
||||
- public void sendLocaleStats() {
|
||||
- if (!mCurrentLocale.equals(mInitialLocale)) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- SetupStats.Action.CHANGE_LOCALE, SetupStats.Label.LOCALE,
|
||||
- mCurrentLocale.getDisplayName());
|
||||
- }
|
||||
- }
|
||||
-
|
||||
public void fetchAndUpdateSimLocale() {
|
||||
if (mIgnoreSimLocale || isDetached()) {
|
||||
return;
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java b/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java
|
||||
index 2d8084a..3a131f7 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/setup/WifiSetupPage.java
|
||||
@@ -31,7 +31,6 @@ import android.util.Log;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.ui.LoadingFragment;
|
||||
import com.cyanogenmod.setupwizard.ui.SetupPageFragment;
|
||||
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;
|
||||
@@ -86,9 +85,6 @@ public class WifiSetupPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.CAPTIVE_PORTAL_LOGIN);
|
||||
mLoadingFragment.startActivityForResult(intent,
|
||||
SetupWizardApp.REQUEST_CODE_SETUP_CAPTIVE_PORTAL,
|
||||
options.toBundle());
|
||||
@@ -157,19 +153,10 @@ public class WifiSetupPage extends SetupPage {
|
||||
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_WIFI) {
|
||||
if (resultCode == Activity.RESULT_CANCELED) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.WIFI_SETUP, "canceled");
|
||||
getCallbacks().onPreviousPage();
|
||||
} else if (resultCode == Activity.RESULT_OK) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.WIFI_SETUP, "success");
|
||||
checkForCaptivePortal();
|
||||
} else {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.WIFI_SETUP, "skipped");
|
||||
getCallbacks().onNextPage();
|
||||
}
|
||||
} else if (requestCode == SetupWizardApp.REQUEST_CODE_SETUP_CAPTIVE_PORTAL) {
|
||||
@@ -179,20 +166,11 @@ public class WifiSetupPage extends SetupPage {
|
||||
}
|
||||
String token = data.getStringExtra("response_token");
|
||||
if (token != null && !token.equals(mResponseToken)) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.CAPTIVE_PORTAL_LOGIN, "token_mismatch");
|
||||
launchWifiSetup();
|
||||
} else {
|
||||
if (resultCode == Activity.RESULT_CANCELED) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.CAPTIVE_PORTAL_LOGIN, "canceled");
|
||||
launchWifiSetup();
|
||||
} else {
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_RESULT,
|
||||
- SetupStats.Label.CAPTIVE_PORTAL_LOGIN, "success");
|
||||
getCallbacks().onNextPage();
|
||||
}
|
||||
}
|
||||
@@ -256,9 +234,6 @@ public class WifiSetupPage extends SetupPage {
|
||||
ActivityOptions.makeCustomAnimation(mContext,
|
||||
android.R.anim.fade_in,
|
||||
android.R.anim.fade_out);
|
||||
- SetupStats.addEvent(SetupStats.Categories.EXTERNAL_PAGE_LOAD,
|
||||
- SetupStats.Action.EXTERNAL_PAGE_LAUNCH,
|
||||
- SetupStats.Label.PAGE, SetupStats.Label.WIFI_SETUP);
|
||||
mLoadingFragment.startActivityForResult(intent,
|
||||
SetupWizardApp.REQUEST_CODE_SETUP_WIFI, options.toBundle());
|
||||
}
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java b/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java
|
||||
index b0df440..33c61c7 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/ui/SetupPageFragment.java
|
||||
@@ -26,7 +26,6 @@ import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.setup.Page;
|
||||
import com.cyanogenmod.setupwizard.setup.SetupDataCallbacks;
|
||||
|
||||
@@ -43,8 +42,6 @@ public abstract class SetupPageFragment extends Fragment {
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setRetainInstance(true);
|
||||
- SetupStats.addEvent(SetupStats.Categories.PAGE_LOAD, SetupStats.Action.PAGE_LOADED,
|
||||
- mKey, String.valueOf(System.currentTimeMillis()));
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java b/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java
|
||||
index 0d82a74..3e3657d 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/ui/SetupWizardActivity.java
|
||||
@@ -45,7 +45,6 @@ import android.widget.ProgressBar;
|
||||
import com.android.setupwizardlib.util.SystemBarHelper;
|
||||
import com.cyanogenmod.setupwizard.R;
|
||||
import com.cyanogenmod.setupwizard.SetupWizardApp;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
import com.cyanogenmod.setupwizard.setup.CMSetupWizardData;
|
||||
import com.cyanogenmod.setupwizard.setup.GmsAccountPage;
|
||||
import com.cyanogenmod.setupwizard.setup.Page;
|
||||
@@ -93,7 +92,6 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks,
|
||||
}
|
||||
SystemBarHelper.hideSystemBars(getWindow());
|
||||
if (sLaunchTime == 0) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.APP_LAUNCH, TAG);
|
||||
sLaunchTime = System.nanoTime();
|
||||
}
|
||||
setContentView(R.layout.setup_main);
|
||||
@@ -369,9 +367,6 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks,
|
||||
@Override
|
||||
public void finishSetup() {
|
||||
if (!mIsFinishing) {
|
||||
- SetupStats.addEvent(SetupStats.Categories.APP_FINISHED, TAG,
|
||||
- SetupStats.Label.TOTAL_TIME, String.valueOf(
|
||||
- System.nanoTime() - sLaunchTime));
|
||||
final SetupWizardApp setupWizardApp = (SetupWizardApp)getApplication();
|
||||
setupWizardApp.sendStickyBroadcastAsUser(
|
||||
new Intent(SetupWizardApp.ACTION_FINISHED),
|
||||
@@ -461,7 +456,6 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks,
|
||||
}
|
||||
final ThemeManager tm = ThemeManager.getInstance(SetupWizardActivity.this);
|
||||
tm.unregisterThemeChangeListener(SetupWizardActivity.this);
|
||||
- SetupStats.sendEvents(SetupWizardActivity.this);
|
||||
SetupWizardUtils.disableGMSSetupWizard(SetupWizardActivity.this);
|
||||
final WallpaperManager wallpaperManager =
|
||||
WallpaperManager.getInstance(SetupWizardActivity.this);
|
||||
diff --git a/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java b/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java
|
||||
index 440129b..47d6de5 100644
|
||||
--- a/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java
|
||||
+++ b/src/com/cyanogenmod/setupwizard/util/EnableAccessibilityController.java
|
||||
@@ -39,7 +39,6 @@ import android.view.accessibility.AccessibilityManager;
|
||||
import android.view.accessibility.IAccessibilityManager;
|
||||
|
||||
import com.android.internal.R;
|
||||
-import com.cyanogenmod.setupwizard.cmstats.SetupStats;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
@@ -284,8 +283,6 @@ public class EnableAccessibilityController {
|
||||
// Turn on accessibility mode last.
|
||||
Settings.Secure.putIntForUser(resolver, Settings.Secure.ACCESSIBILITY_ENABLED,
|
||||
1, userId);
|
||||
- SetupStats.addEvent(SetupStats.Categories.SETTING_CHANGED,
|
||||
- "accessibility_enabled");
|
||||
} else if (keyguardLocked) {
|
||||
try {
|
||||
mAccessibilityManager.temporaryEnableAccessibilityStateUntilKeyguardRemoved(
|
||||
--
|
||||
2.8.0
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,89 @@
|
||||
From b003454ab2ece62db5ae6c621aa6ec5c93c5c0b5 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Sun, 20 Mar 2016 14:40:17 -0400
|
||||
Subject: [PATCH] Actually fix profiles failing to set users preferred network
|
||||
type
|
||||
|
||||
Change-Id: I325430f971b35b07d6852f3647fa60ec935a5b52
|
||||
---
|
||||
src/com/android/phone/PhoneToggler.java | 38 +++++++++++++++++++++++++++++----
|
||||
1 file changed, 34 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/com/android/phone/PhoneToggler.java b/src/com/android/phone/PhoneToggler.java
|
||||
index 90234f9..a38dd68 100644
|
||||
--- a/src/com/android/phone/PhoneToggler.java
|
||||
+++ b/src/com/android/phone/PhoneToggler.java
|
||||
@@ -21,6 +21,8 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.util.Log;
|
||||
+import android.os.Handler;
|
||||
+import android.os.Message;
|
||||
|
||||
import com.android.internal.telephony.Phone;
|
||||
import com.android.internal.telephony.PhoneFactory;
|
||||
@@ -42,6 +44,15 @@ public class PhoneToggler extends BroadcastReceiver {
|
||||
private static final String LOG_TAG = "PhoneToggler";
|
||||
private static final boolean DBG = false;
|
||||
|
||||
+ private MyHandler mHandler;
|
||||
+
|
||||
+ private MyHandler getHandler() {
|
||||
+ if (mHandler == null) {
|
||||
+ mHandler = new MyHandler();
|
||||
+ }
|
||||
+ return mHandler;
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
String action = intent.getAction();
|
||||
@@ -51,8 +62,7 @@ public class PhoneToggler extends BroadcastReceiver {
|
||||
SubscriptionController subCtrl = SubscriptionController.getInstance();
|
||||
|
||||
int networkMode = intent.getExtras().getInt(EXTRA_NETWORK_MODE, -1);
|
||||
- int subId = intent.getExtras().getInt(EXTRA_SUB_ID,
|
||||
- SubscriptionManager.getDefaultDataSubId());
|
||||
+ int subId = SubscriptionManager.getDefaultDataSubId();
|
||||
|
||||
// since the caller must be a system app, it's assumed that they have already
|
||||
// chosen a valid network mode for this subId, so only basic validation is done
|
||||
@@ -60,8 +70,9 @@ public class PhoneToggler extends BroadcastReceiver {
|
||||
if (DBG) Log.d(LOG_TAG, "Changing network mode to " + networkMode);
|
||||
subCtrl.setUserNwMode(subId, networkMode);
|
||||
try {
|
||||
- PhoneFactory.getPhone(SubscriptionManager.getPhoneId(subId))
|
||||
- .setPreferredNetworkType(networkMode, null);
|
||||
+ Phone phone = PhoneFactory.getPhone(SubscriptionManager.getPhoneId(subId));
|
||||
+ Message response = getHandler().obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE);
|
||||
+ phone.setPreferredNetworkType(networkMode, response);
|
||||
} catch (Throwable t) {
|
||||
Log.d(LOG_TAG, "error setting preferred network", t);
|
||||
}
|
||||
@@ -117,4 +128,23 @@ public class PhoneToggler extends BroadcastReceiver {
|
||||
}
|
||||
}
|
||||
|
||||
+ private class MyHandler extends Handler {
|
||||
+ private static final int MESSAGE_SET_PREFERRED_NETWORK_TYPE = 0;
|
||||
+
|
||||
+ @Override
|
||||
+ public void handleMessage(Message msg) {
|
||||
+ switch (msg.what) {
|
||||
+ case MESSAGE_SET_PREFERRED_NETWORK_TYPE:
|
||||
+ handleSetPreferredNetworkTypeResponse(msg);
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private void handleSetPreferredNetworkTypeResponse(Message msg) {
|
||||
+ if (DBG) {
|
||||
+ Log.e(LOG_TAG, "handleSetPreferredNetworkTypeResponse() called");
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
|
26
Patches/CyanogenMod-13.0/android_system_core/MAC_Rand.patch
Normal file
26
Patches/CyanogenMod-13.0/android_system_core/MAC_Rand.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 978d511140a6391ef82243fe6500e207697b9b41 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Mon, 18 Apr 2016 08:54:51 -0400
|
||||
Subject: [PATCH] Implement MAC Randomization
|
||||
|
||||
Change-Id: I3276bfb674801572ab9ff286fb1b036253eaf409
|
||||
---
|
||||
rootdir/init.rc | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/rootdir/init.rc b/rootdir/init.rc
|
||||
index 78adacc..8cff499 100644
|
||||
--- a/rootdir/init.rc
|
||||
+++ b/rootdir/init.rc
|
||||
@@ -559,6 +559,8 @@ on property:sys.sysctl.extra_free_kbytes=*
|
||||
on property:sys.sysctl.tcp_def_init_rwnd=*
|
||||
write /proc/sys/net/ipv4/tcp_default_init_rwnd ${sys.sysctl.tcp_def_init_rwnd}
|
||||
|
||||
+on property:persist.privacy.randomize_mac=*
|
||||
+ write /proc/sys/net/core/randomize_mac ${persist.privacy.randomize_mac}
|
||||
|
||||
## Daemon processes to be run by init.
|
||||
##
|
||||
--
|
||||
2.8.0
|
||||
|
47
Patches/CyanogenMod-13.0/android_vendor_cm/DNSCrypt.patch
Normal file
47
Patches/CyanogenMod-13.0/android_vendor_cm/DNSCrypt.patch
Normal file
@ -0,0 +1,47 @@
|
||||
From 28fec2a2867a8a0fea386038bc366e630ac1ed4e Mon Sep 17 00:00:00 2001
|
||||
From: Martin Brabham <optedoblivion@cyngn.com>
|
||||
Date: Thu, 7 May 2015 11:22:13 -0700
|
||||
Subject: [PATCH] DNSCrypt - Add sepolicy for dnscrypt proxy to run - Add
|
||||
service entry to init.local.rc
|
||||
|
||||
Change-Id: Id2ee42738c10a7a024fcf25edc3a6cbe2fe0bbc8
|
||||
---
|
||||
prebuilt/common/etc/init.local.rc | 6 ++++++
|
||||
sepolicy/dnscryptproxy.te | 8 ++++++++
|
||||
2 files changed, 14 insertions(+)
|
||||
create mode 100644 sepolicy/dnscryptproxy.te
|
||||
|
||||
diff --git a/prebuilt/common/etc/init.local.rc b/prebuilt/common/etc/init.local.rc
|
||||
index 1f66b77..8042c29 100644
|
||||
--- a/prebuilt/common/etc/init.local.rc
|
||||
+++ b/prebuilt/common/etc/init.local.rc
|
||||
@@ -128,6 +128,12 @@ on boot
|
||||
# Persistent properties (only created if persist exists)
|
||||
mkdir /persist/properties 0770 system system
|
||||
|
||||
+# For now default this to opendns until we modify the code to read a system propery
|
||||
+# dnscrypt proxy
|
||||
+service dnscrypt-proxy /system/xbin/dnscrypt-proxy
|
||||
+ class main
|
||||
+ disabled
|
||||
+
|
||||
# sysinit (/system/etc/init.d)
|
||||
service sysinit /system/bin/sysinit
|
||||
user root
|
||||
diff --git a/sepolicy/dnscryptproxy.te b/sepolicy/dnscryptproxy.te
|
||||
new file mode 100644
|
||||
index 0000000..3f143c9
|
||||
--- /dev/null
|
||||
+++ b/sepolicy/dnscryptproxy.te
|
||||
@@ -0,0 +1,8 @@
|
||||
+allow init self:udp_socket { bind setopt write read };
|
||||
+allow init port:udp_socket name_bind;
|
||||
+allow init node:udp_socket node_bind;
|
||||
+
|
||||
+allow init self:tcp_socket { create ioctl setopt bind listen };
|
||||
+allow init port:tcp_socket name_bind;
|
||||
+allow init node:tcp_socket node_bind;
|
||||
+
|
||||
--
|
||||
2.7.4
|
||||
|
@ -0,0 +1,25 @@
|
||||
From a32d4f29bb1ed433326eebe496df7c3b5483e192 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Wed, 24 Feb 2016 09:05:13 -0500
|
||||
Subject: [PATCH] Remove analytics
|
||||
|
||||
Change-Id: I44ad1e35e086eb6287ea1065a1d77474ca6c295a
|
||||
---
|
||||
.../vendor/cmsdk/packages/CMSettingsProvider/res/values/defaults.xml | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/overlay/common/vendor/cmsdk/packages/CMSettingsProvider/res/values/defaults.xml b/overlay/common/vendor/cmsdk/packages/CMSettingsProvider/res/values/defaults.xml
|
||||
index eec242d..58fb154 100644
|
||||
--- a/overlay/common/vendor/cmsdk/packages/CMSettingsProvider/res/values/defaults.xml
|
||||
+++ b/overlay/common/vendor/cmsdk/packages/CMSettingsProvider/res/values/defaults.xml
|
||||
@@ -24,7 +24,4 @@
|
||||
<integer name="def_qs_quick_pulldown">1</integer>
|
||||
|
||||
<!-- Defaults for Secure -->
|
||||
-
|
||||
- <!-- Default for CMSettings.Secure.STATS_COLLECTION -->
|
||||
- <bool name="def_stats_collection">true</bool>
|
||||
</resources>
|
||||
--
|
||||
2.7.1
|
||||
|
27
Patches/CyanogenMod-13.0/android_vendor_cm/Wallpaper.patch
Normal file
27
Patches/CyanogenMod-13.0/android_vendor_cm/Wallpaper.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From 3698eabdc4057a2e977ffb4db60bffb1cea062fa Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Sun, 19 Jun 2016 15:13:50 -0400
|
||||
Subject: [PATCH] Bring back the custom wallpaper picker [5/5]
|
||||
|
||||
Change-Id: Icb52423c63206927b45b72f1d1785c3574f2c0d6
|
||||
---
|
||||
config/common.mk | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/config/common.mk b/config/common.mk
|
||||
index 75191ba..c2a15ae 100644
|
||||
--- a/config/common.mk
|
||||
+++ b/config/common.mk
|
||||
@@ -154,7 +154,8 @@ PRODUCT_PACKAGES += \
|
||||
CMSettingsProvider \
|
||||
ExactCalculator \
|
||||
LiveLockScreenService \
|
||||
- WeatherProvider
|
||||
+ WeatherProvider \
|
||||
+ WallpaperPicker
|
||||
|
||||
# Exchange support
|
||||
PRODUCT_PACKAGES += \
|
||||
--
|
||||
2.7.4
|
||||
|
33
Patches/CyanogenMod-13.0/cm_platform_sdk/Radio-2.patch
Normal file
33
Patches/CyanogenMod-13.0/cm_platform_sdk/Radio-2.patch
Normal file
@ -0,0 +1,33 @@
|
||||
From aceee7358fa39da71425c6db7fe6c984c846128a Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Mon, 8 Aug 2016 16:04:56 -0400
|
||||
Subject: [PATCH] Add radio tile (2/2)
|
||||
|
||||
Change-Id: Iacc6ed7ce384d955ff2494e55c318e054b7ff206
|
||||
---
|
||||
sdk/src/java/org/cyanogenmod/internal/util/QSConstants.java | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/sdk/src/java/org/cyanogenmod/internal/util/QSConstants.java b/sdk/src/java/org/cyanogenmod/internal/util/QSConstants.java
|
||||
index c5e62eb..a2b5269 100644
|
||||
--- a/sdk/src/java/org/cyanogenmod/internal/util/QSConstants.java
|
||||
+++ b/sdk/src/java/org/cyanogenmod/internal/util/QSConstants.java
|
||||
@@ -48,6 +48,7 @@ public class QSConstants {
|
||||
public static final String TILE_SCREEN_TIMEOUT = "screen_timeout";
|
||||
public static final String TILE_USB_TETHER = "usb_tether";
|
||||
public static final String TILE_HEADS_UP = "heads_up";
|
||||
+ public static final String TILE_RADIO_POWER = "radio_power";
|
||||
public static final String TILE_AMBIENT_DISPLAY = "ambient_display";
|
||||
public static final String TILE_SYNC = "sync";
|
||||
public static final String TILE_BATTERY_SAVER = "battery_saver";
|
||||
@@ -96,6 +97,7 @@ public class QSConstants {
|
||||
STATIC_TILES_AVAILABLE.add(TILE_SCREEN_TIMEOUT);
|
||||
STATIC_TILES_AVAILABLE.add(TILE_USB_TETHER);
|
||||
STATIC_TILES_AVAILABLE.add(TILE_HEADS_UP);
|
||||
+ STATIC_TILES_AVAILABLE.add(TILE_RADIO_POWER);
|
||||
STATIC_TILES_AVAILABLE.add(TILE_AMBIENT_DISPLAY);
|
||||
STATIC_TILES_AVAILABLE.add(TILE_SYNC);
|
||||
STATIC_TILES_AVAILABLE.add(TILE_BATTERY_SAVER);
|
||||
--
|
||||
2.7.4
|
||||
|
135
Patches/CyanogenMod-13.0/cm_platform_sdk/Remove_Analytics.patch
Normal file
135
Patches/CyanogenMod-13.0/cm_platform_sdk/Remove_Analytics.patch
Normal file
@ -0,0 +1,135 @@
|
||||
From b90e97cdb84542a787f1361633a662f57852d9d3 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Sat, 2 Apr 2016 11:31:27 -0400
|
||||
Subject: [PATCH] Remove analytics
|
||||
|
||||
Change-Id: I4aa2a69fd7eb68d9ab8a4ba426532944901f2322
|
||||
---
|
||||
host/migration/example-cm12.1-settings.txt | 3 +--
|
||||
host/migration/src/CMSettings.java | 7 -------
|
||||
packages/CMSettingsProvider/res/values/defaults.xml | 3 ---
|
||||
.../src/org/cyanogenmod/cmsettings/CMDatabaseHelper.java | 3 ---
|
||||
.../cmsettings/tests/CMSettingsProviderDefaultsTest.java | 3 ---
|
||||
sdk/src/java/cyanogenmod/providers/CMSettings.java | 13 -------------
|
||||
6 files changed, 1 insertion(+), 31 deletions(-)
|
||||
|
||||
diff --git a/host/migration/example-cm12.1-settings.txt b/host/migration/example-cm12.1-settings.txt
|
||||
index 7534be3..9f454aa 100644
|
||||
--- a/host/migration/example-cm12.1-settings.txt
|
||||
+++ b/host/migration/example-cm12.1-settings.txt
|
||||
@@ -64,7 +64,6 @@ Row: 60 name=swap_volume_keys_on_rotation, type=s, value=0, type=s
|
||||
Row: 61 name=status_bar_brightness_control, type=s, value=0, type=s
|
||||
Row: 62 name=status_bar_notif_count, type=s, value=1, type=s
|
||||
Row: 63 name=dev_force_show_navbar, type=s, value=0, type=s
|
||||
-Row: 64 name=stats_collection, type=s, value=1, type=s
|
||||
Row: 65 name=advanced_mode, type=s, value=1, type=s
|
||||
Row: 66 name=default_theme_package, type=s, value=com.cyngn.hexo, type=s
|
||||
Row: 67 name=default_theme_components, type=s, value=mods_overlays|mods_status_bar|mods_navigation_bar|mods_icons|mods_homescreen|mods_fonts, type=s
|
||||
@@ -118,4 +117,4 @@ Row: 114 name=ring_home_button_behavior, type=s, value=1, type=s
|
||||
Row: 115 name=show_alarm_icon, type=s, value=1, type=s
|
||||
Row: 116 name=status_bar_am_pm, type=s, value=1, type=s
|
||||
Row: 117 name=status_bar_quick_qs_pulldown, type=s, value=1, type=s
|
||||
-Row: 118 name=t9_search_input_locale, type=s, value=enUS, type=s
|
||||
\ No newline at end of file
|
||||
+Row: 118 name=t9_search_input_locale, type=s, value=enUS, type=s
|
||||
diff --git a/host/migration/src/CMSettings.java b/host/migration/src/CMSettings.java
|
||||
index 0d57b0d..b4f5be9 100644
|
||||
--- a/host/migration/src/CMSettings.java
|
||||
+++ b/host/migration/src/CMSettings.java
|
||||
@@ -833,12 +833,6 @@ public final class CMSettings {
|
||||
public static final String QS_USE_MAIN_TILES = "sysui_qs_main_tiles";
|
||||
|
||||
/**
|
||||
- * Global stats collection
|
||||
- * @hide
|
||||
- */
|
||||
- public static final String STATS_COLLECTION = "stats_collection";
|
||||
-
|
||||
- /**
|
||||
* Boolean value whether to link ringtone and notification volume
|
||||
*
|
||||
* @hide
|
||||
@@ -1021,7 +1015,6 @@ public final class CMSettings {
|
||||
CMSettings.Secure.DEV_FORCE_SHOW_NAVBAR,
|
||||
CMSettings.Secure.KEYBOARD_BRIGHTNESS,
|
||||
CMSettings.Secure.POWER_MENU_ACTIONS,
|
||||
- CMSettings.Secure.STATS_COLLECTION,
|
||||
CMSettings.Secure.QS_SHOW_BRIGHTNESS_SLIDER,
|
||||
CMSettings.Secure.QS_TILES,
|
||||
CMSettings.Secure.QS_USE_MAIN_TILES,
|
||||
diff --git a/packages/CMSettingsProvider/res/values/defaults.xml b/packages/CMSettingsProvider/res/values/defaults.xml
|
||||
index 5d590ad..916bb10 100644
|
||||
--- a/packages/CMSettingsProvider/res/values/defaults.xml
|
||||
+++ b/packages/CMSettingsProvider/res/values/defaults.xml
|
||||
@@ -48,9 +48,6 @@
|
||||
Comma-delimited, quick settings tiles. See QSConstants.java for a list of all available tiles
|
||||
<string name="def_qs_tiles">wifi,bt,cell,airplane,rotation,flashlight,location,cast,hotspot,live_display</string> -->
|
||||
|
||||
- <!-- Default for CMSettings.Secure.STATS_COLLECTION -->
|
||||
- <bool name="def_stats_collection">false</bool>
|
||||
-
|
||||
<!-- Default for CMSettings.System.STATUS_BAR_BATTERY_STYLE
|
||||
* 0: Display the battery as icon in portrait mode
|
||||
* 2: Display the battery as a circle
|
||||
diff --git a/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMDatabaseHelper.java b/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMDatabaseHelper.java
|
||||
index 98064af..fff68da 100644
|
||||
--- a/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMDatabaseHelper.java
|
||||
+++ b/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMDatabaseHelper.java
|
||||
@@ -255,9 +255,6 @@ public class CMDatabaseHelper extends SQLiteOpenHelper{
|
||||
loadBooleanSetting(stmt, CMSettings.Secure.QS_USE_MAIN_TILES,
|
||||
R.bool.def_sysui_qs_main_tiles);
|
||||
|
||||
- loadBooleanSetting(stmt, CMSettings.Secure.STATS_COLLECTION,
|
||||
- R.bool.def_stats_collection);
|
||||
-
|
||||
loadBooleanSetting(stmt, CMSettings.Secure.LOCKSCREEN_VISUALIZER_ENABLED,
|
||||
R.bool.def_lockscreen_visualizer);
|
||||
|
||||
diff --git a/packages/CMSettingsProvider/tests/src/org/cyanogenmod/cmsettings/tests/CMSettingsProviderDefaultsTest.java b/packages/CMSettingsProvider/tests/src/org/cyanogenmod/cmsettings/tests/CMSettingsProviderDefaultsTest.java
|
||||
index a2c4269..ff5583d 100644
|
||||
--- a/packages/CMSettingsProvider/tests/src/org/cyanogenmod/cmsettings/tests/CMSettingsProviderDefaultsTest.java
|
||||
+++ b/packages/CMSettingsProvider/tests/src/org/cyanogenmod/cmsettings/tests/CMSettingsProviderDefaultsTest.java
|
||||
@@ -90,9 +90,6 @@ public class CMSettingsProviderDefaultsTest extends AndroidTestCase {
|
||||
CMSettings.Secure.QS_USE_MAIN_TILES,
|
||||
"R.bool.def_sysui_qs_main_tiles"));
|
||||
SECURE_SETTINGS_DEFAULTS.add(new Setting(
|
||||
- CMSettings.Secure.STATS_COLLECTION,
|
||||
- "R.bool.def_stats_collection"));
|
||||
- SECURE_SETTINGS_DEFAULTS.add(new Setting(
|
||||
CMSettings.Secure.LOCKSCREEN_VISUALIZER_ENABLED,
|
||||
"R.bool.def_lockscreen_visualizer"));
|
||||
SECURE_SETTINGS_DEFAULTS.add(new Setting(
|
||||
diff --git a/sdk/src/java/cyanogenmod/providers/CMSettings.java b/sdk/src/java/cyanogenmod/providers/CMSettings.java
|
||||
index 47cc524..6675da8 100644
|
||||
--- a/sdk/src/java/cyanogenmod/providers/CMSettings.java
|
||||
+++ b/sdk/src/java/cyanogenmod/providers/CMSettings.java
|
||||
@@ -2484,18 +2484,6 @@ public final class CMSettings {
|
||||
public static final String QS_USE_MAIN_TILES = "sysui_qs_main_tiles";
|
||||
|
||||
/**
|
||||
- * Global stats collection
|
||||
- * @hide
|
||||
- */
|
||||
- public static final String STATS_COLLECTION = "stats_collection";
|
||||
-
|
||||
- /**
|
||||
- * Whether the global stats collection setting has been successfully reported to server
|
||||
- * @hide
|
||||
- */
|
||||
- public static final String STATS_COLLECTION_REPORTED = "stats_collection_reported";
|
||||
-
|
||||
- /**
|
||||
* Whether newly installed apps should run with privacy guard by default
|
||||
* @hide
|
||||
*/
|
||||
@@ -2724,7 +2712,6 @@ public final class CMSettings {
|
||||
CMSettings.Secure.DEV_FORCE_SHOW_NAVBAR,
|
||||
CMSettings.Secure.KEYBOARD_BRIGHTNESS,
|
||||
CMSettings.Secure.POWER_MENU_ACTIONS,
|
||||
- CMSettings.Secure.STATS_COLLECTION,
|
||||
CMSettings.Secure.QS_SHOW_BRIGHTNESS_SLIDER,
|
||||
CMSettings.Secure.QS_TILES,
|
||||
CMSettings.Secure.QS_USE_MAIN_TILES,
|
||||
--
|
||||
2.8.0
|
||||
|
72
Patches/CyanogenMod-13.0/kernel_generic/MAC_Rand.patch
Normal file
72
Patches/CyanogenMod-13.0/kernel_generic/MAC_Rand.patch
Normal file
@ -0,0 +1,72 @@
|
||||
From 1287da9da56cc8e074d7d2afed677e65cf77c720 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Mon, 17 Nov 2014 05:28:09 -0500
|
||||
Subject: [PATCH] add MAC randomization
|
||||
|
||||
based on https://grsecurity.net/~spender/random_mac.diff
|
||||
---
|
||||
net/core/dev.c | 19 +++++++++++++++++++
|
||||
net/core/sysctl_net_core.c | 10 ++++++++++
|
||||
2 files changed, 29 insertions(+)
|
||||
|
||||
diff --git a/net/core/dev.c b/net/core/dev.c
|
||||
index 70145dc..d662c0f 100644
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -178,6 +178,7 @@
|
||||
static DEFINE_SPINLOCK(ptype_lock);
|
||||
static struct list_head ptype_base[PTYPE_HASH_SIZE] __read_mostly;
|
||||
static struct list_head ptype_all __read_mostly; /* Taps */
|
||||
+int randomize_mac = 1;
|
||||
|
||||
/*
|
||||
* The @dev_base_head list is protected by @dev_base_lock and the rtnl
|
||||
@@ -4717,6 +4718,24 @@ int dev_change_flags(struct net_device *dev, unsigned int flags)
|
||||
rtmsg_ifinfo(RTM_NEWLINK, dev, changes);
|
||||
|
||||
__dev_notify_flags(dev, old_flags);
|
||||
+
|
||||
+ if (randomize_mac && (changes & IFF_UP) && !(old_flags & IFF_UP)) {
|
||||
+ /* randomize MAC whenever interface is brought up */
|
||||
+ struct sockaddr sa;
|
||||
+ unsigned int mac4;
|
||||
+ unsigned short mac2;
|
||||
+
|
||||
+ mac4 = random32();
|
||||
+ mac2 = random32();
|
||||
+ memcpy(sa.sa_data, &mac4, sizeof(mac4));
|
||||
+ memcpy((char *)sa.sa_data + sizeof(mac4), &mac2, sizeof(mac2));
|
||||
+ if (!is_valid_ether_addr(sa.sa_data))
|
||||
+ sa.sa_data[5] = 1;
|
||||
+ sa.sa_data[0] &= 0xFC;
|
||||
+ sa.sa_family = dev->type;
|
||||
+ dev_set_mac_address(dev, &sa);
|
||||
+ }
|
||||
+
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(dev_change_flags);
|
||||
diff --git a/net/core/sysctl_net_core.c b/net/core/sysctl_net_core.c
|
||||
index 0c28508..42b3ad3 100644
|
||||
--- a/net/core/sysctl_net_core.c
|
||||
+++ b/net/core/sysctl_net_core.c
|
||||
@@ -84,9 +84,19 @@ static int rps_sock_flow_sysctl(ctl_table *table, int write,
|
||||
}
|
||||
#endif /* CONFIG_RPS */
|
||||
|
||||
+extern int randomize_mac;
|
||||
+
|
||||
static struct ctl_table net_core_table[] = {
|
||||
#ifdef CONFIG_NET
|
||||
{
|
||||
+ .procname = "randomize_mac",
|
||||
+ .data = &randomize_mac,
|
||||
+ .maxlen = sizeof(int),
|
||||
+ .mode = 0644,
|
||||
+ .proc_handler = proc_dointvec
|
||||
+ },
|
||||
+
|
||||
+ {
|
||||
.procname = "wmem_max",
|
||||
.data = &sysctl_wmem_max,
|
||||
.maxlen = sizeof(int),
|
@ -0,0 +1,103 @@
|
||||
From de2ba147b18528eda7ee943865f8569823fbf3f9 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Wed, 23 Nov 2016 16:04:50 -0500
|
||||
Subject: [PATCH] Add optional automated signing
|
||||
|
||||
Change-Id: If5a888f12764c4928f5efbb2fda78f76fb445a2a
|
||||
---
|
||||
core/Makefile | 43 +++++++++++++++++++++++++++++++++++++------
|
||||
1 file changed, 37 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/core/Makefile b/core/Makefile
|
||||
index 1d6bff0..d65fd27 100644
|
||||
--- a/core/Makefile
|
||||
+++ b/core/Makefile
|
||||
@@ -418,6 +418,11 @@ ifneq ($(OTA_PACKAGE_SIGNING_KEY),)
|
||||
DEFAULT_KEY_CERT_PAIR := $(OTA_PACKAGE_SIGNING_KEY)
|
||||
endif
|
||||
|
||||
+ifneq ($(SIGNING_KEY_DIR),)
|
||||
+ KEY_CERT_DIR := $(SIGNING_KEY_DIR)
|
||||
+ DEFAULT_KEY_CERT_PAIR := $(SIGNING_KEY_DIR)/releasekey
|
||||
+endif
|
||||
+
|
||||
# Rules that need to be present for the all targets, even
|
||||
# if they don't do anything.
|
||||
.PHONY: systemimage
|
||||
@@ -1030,11 +1035,15 @@ endif
|
||||
# substitute other keys for this one.
|
||||
OTA_PUBLIC_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE).x509.pem
|
||||
|
||||
-ifneq ($(OTA_PACKAGE_SIGNING_KEY),)
|
||||
- OTA_PUBLIC_KEYS := $(OTA_PACKAGE_SIGNING_KEY).x509.pem
|
||||
- PRODUCT_EXTRA_RECOVERY_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE)
|
||||
+ifneq ($(SIGNING_KEY_DIR),)
|
||||
+ OTA_PUBLIC_KEYS := $(SIGNING_KEY_DIR)/releasekey.x509.pem
|
||||
+ PRODUCT_EXTRA_RECOVERY_KEYS += $(SIGNING_KEY_DIR)/extra
|
||||
+else
|
||||
+ ifneq ($(OTA_PACKAGE_SIGNING_KEY),)
|
||||
+ OTA_PUBLIC_KEYS := $(OTA_PACKAGE_SIGNING_KEY).x509.pem
|
||||
+ PRODUCT_EXTRA_RECOVERY_KEYS := $(DEFAULT_SYSTEM_DEV_CERTIFICATE)
|
||||
+ endif
|
||||
endif
|
||||
-
|
||||
# Generate a file containing the keys that will be read by the
|
||||
# recovery binary.
|
||||
RECOVERY_INSTALL_OTA_KEYS := \
|
||||
@@ -1818,6 +1827,13 @@ $(BUILT_TARGET_FILES_PACKAGE): intermediates := $(intermediates)
|
||||
$(BUILT_TARGET_FILES_PACKAGE): \
|
||||
zip_root := $(intermediates)/$(name)
|
||||
|
||||
+SIGNED_TARGET_FILES_PACKAGE := $(intermediates)/signed-$(name).zip
|
||||
+MAYBE_SIGNED_TARGET_FILES_PACKAGE := $(BUILT_TARGET_FILES_PACKAGE)
|
||||
+
|
||||
+ifneq ($(SIGNING_KEY_DIR),)
|
||||
+ MAYBE_SIGNED_TARGET_FILES_PACKAGE := $(SIGNED_TARGET_FILES_PACKAGE)
|
||||
+endif
|
||||
+
|
||||
# $(1): Directory to copy
|
||||
# $(2): Location to copy it to
|
||||
# The "ls -A" is to prevent "acp s/* d" from failing if s is empty.
|
||||
@@ -2182,6 +2198,12 @@ else
|
||||
OTA_FROM_TARGET_SCRIPT := $(TARGET_RELEASETOOL_OTA_FROM_TARGET_SCRIPT)
|
||||
endif
|
||||
|
||||
+ifeq ($(TARGET_RELEASETOOL_SIGN_TARGET_SCRIPT),)
|
||||
+ SIGN_TARGET_SCRIPT := ./build/tools/releasetools/sign_target_files_apks
|
||||
+else
|
||||
+ SIGN_TARGET_SCRIPT := $(TARGET_RELEASETOOL_SIGN_TARGET_SCRIPT)
|
||||
+endif
|
||||
+
|
||||
ifeq ($(WITH_GMS),true)
|
||||
$(INTERNAL_OTA_PACKAGE_TARGET): backuptool := false
|
||||
else
|
||||
@@ -2209,7 +2231,16 @@ ifneq ($(BLOCK_BASED_OTA),false)
|
||||
$(INTERNAL_OTA_PACKAGE_TARGET): block_based := --block
|
||||
endif
|
||||
|
||||
-$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE)
|
||||
+$(SIGNED_TARGET_FILES_PACKAGE): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
|
||||
+ @echo "$(SIGN_TARGET_SCRIPT)" > $(PRODUCT_OUT)/sign_script_path
|
||||
+ @echo -e ${CL_YLW}"Sign target files:"${CL_RST}" $@"
|
||||
+ $(hide) $(SIGN_TARGET_SCRIPT) \
|
||||
+ -d $(KEY_CERT_DIR) \
|
||||
+ -o \
|
||||
+ $(BUILT_TARGET_FILES_PACKAGE) \
|
||||
+ $(SIGNED_TARGET_FILES_PACKAGE)
|
||||
+
|
||||
+$(INTERNAL_OTA_PACKAGE_TARGET): $(MAYBE_SIGNED_TARGET_FILES_PACKAGE) $(DISTTOOLS)
|
||||
@echo "$(OTA_FROM_TARGET_SCRIPT)" > $(PRODUCT_OUT)/ota_script_path
|
||||
@echo "$(override_device)" > $(PRODUCT_OUT)/ota_override_device
|
||||
@echo "Package OTA: $@"
|
||||
@@ -2221,7 +2252,7 @@ $(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE)
|
||||
--backup=$(backuptool) \
|
||||
--override_device=$(override_device) $(override_prop) \
|
||||
$(if $(OEM_OTA_CONFIG), -o $(OEM_OTA_CONFIG)) \
|
||||
- $(BUILT_TARGET_FILES_PACKAGE) $@
|
||||
+ $(MAYBE_SIGNED_TARGET_FILES_PACKAGE) $@
|
||||
|
||||
CM_TARGET_PACKAGE := $(PRODUCT_OUT)/cm-$(CM_VERSION).zip
|
||||
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,53 @@
|
||||
From 4edf341b3b70c3bfe391dff53a7e63691c9e7bcb Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Mon, 21 Nov 2016 21:30:33 -0500
|
||||
Subject: [PATCH] Enable LTE
|
||||
|
||||
Change-Id: I69afb82cc409bd2590b320f5b85636ee2f1de327
|
||||
---
|
||||
device.mk | 2 +-
|
||||
overlay/frameworks/base/core/res/res/values/config.xml | 2 +-
|
||||
overlay/packages/services/Telephony/res/values/config.xml | 3 +++
|
||||
3 files changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/device.mk b/device.mk
|
||||
index 1960be2..69fe0b8 100644
|
||||
--- a/device.mk
|
||||
+++ b/device.mk
|
||||
@@ -234,7 +234,7 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
|
||||
rild.libpath=/system/lib/libril-qc-qmi-1.so
|
||||
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
- telephony.lteOnCdmaDevice=0
|
||||
+ telephony.lteOnCdmaDevice=1
|
||||
|
||||
ifeq ($(findstring tiny, $(TARGET_PRODUCT)),)
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
|
||||
index 6c68c1d..6febaf2 100644
|
||||
--- a/overlay/frameworks/base/core/res/res/values/config.xml
|
||||
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
|
||||
@@ -231,7 +231,7 @@
|
||||
Empty is viewed as "all". Only used on devices which
|
||||
don't support RIL_REQUEST_GET_RADIO_CAPABILITY
|
||||
format is UMTS|LTE|... -->
|
||||
- <string translatable="false" name="config_radio_access_family">GSM|WCDMA</string>
|
||||
+ <string translatable="false" name="config_radio_access_family">GPRS|EDGE|UMTS|HSDPA|HSUPA|HSPA|LTE|HSPAP|GSM|WCDMA</string>
|
||||
|
||||
<!-- Set to true to add links to Cell Broadcast app from Settings and MMS app. -->
|
||||
<bool name="config_cellBroadcastAppLinks">true</bool>
|
||||
diff --git a/overlay/packages/services/Telephony/res/values/config.xml b/overlay/packages/services/Telephony/res/values/config.xml
|
||||
index af352a4..22c65ea 100644
|
||||
--- a/overlay/packages/services/Telephony/res/values/config.xml
|
||||
+++ b/overlay/packages/services/Telephony/res/values/config.xml
|
||||
@@ -21,4 +21,7 @@
|
||||
are routed through the android.media.AudioManager class (true) or through
|
||||
the com.android.internal.telephony.Phone interface (false). -->
|
||||
<bool name="send_mic_mute_to_AudioManager">true</bool>
|
||||
+
|
||||
+ <!-- Show enabled lte option for lte device -->
|
||||
+ <bool name="config_enabled_lte" translatable="false">true</bool>
|
||||
</resources>
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,37 @@
|
||||
From 65d11ac33d0a3da260668c6dd18e5d28fefb272e Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Wed, 23 Nov 2016 18:38:32 -0500
|
||||
Subject: [PATCH] TWRP Support
|
||||
|
||||
Change-Id: Ib0a86923a40e21cddc1199141c70a7c776de3d1e
|
||||
---
|
||||
BoardConfig.mk | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
diff --git a/BoardConfig.mk b/BoardConfig.mk
|
||||
index ec97bae..ecf5253 100644
|
||||
--- a/BoardConfig.mk
|
||||
+++ b/BoardConfig.mk
|
||||
@@ -132,3 +132,19 @@ MALLOC_IMPL := dlmalloc
|
||||
BOARD_HAS_NO_SELECT_BUTTON := true
|
||||
|
||||
BOARD_HARDWARE_CLASS := device/lge/mako/cmhw/
|
||||
+
|
||||
+#TWRP
|
||||
+TW_THEME := portrait_hdpi
|
||||
+RECOVERY_SDCARD_ON_DATA := true
|
||||
+RECOVERY_GRAPHICS_USE_LINELENGTH := true
|
||||
+BOARD_HAS_NO_REAL_SDCARD := true
|
||||
+PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=0
|
||||
+TW_INCLUDE_JB_CRYPTO := true
|
||||
+TW_FLASH_FROM_STORAGE := true
|
||||
+TW_NO_USB_STORAGE := true
|
||||
+TW_MAX_BRIGHTNESS := 255
|
||||
+TW_BRIGHTNESS_PATH := /sys/class/leds/lcd-backlight/brightness
|
||||
+TW_INTERNAL_STORAGE_PATH := "/data/media"
|
||||
+TW_INTERNAL_STORAGE_MOUNT_POINT := "data"
|
||||
+TW_EXTERNAL_STORAGE_PATH := "/usb-otg"
|
||||
+TW_EXTERNAL_STORAGE_MOUNT_POINT := "usb-otg"
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,37 @@
|
||||
From 6fdf689f450e577750212ac5f0d3ffce50965651 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Thu, 17 Nov 2016 15:39:23 -0500
|
||||
Subject: [PATCH] Fix build failure
|
||||
|
||||
Change-Id: I94282a3df32daa97992c17476b0eb3e8f21e2499
|
||||
---
|
||||
overlay/frameworks/base/core/res/res/values/config.xml | 6 ------
|
||||
1 file changed, 6 deletions(-)
|
||||
|
||||
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
|
||||
index e0358e2..0b0549b 100644
|
||||
--- a/overlay/frameworks/base/core/res/res/values/config.xml
|
||||
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
|
||||
@@ -421,9 +421,6 @@
|
||||
format is UMTS|LTE|... -->
|
||||
<string translatable="false" name="config_radio_access_family">GSM | WCDMA | LTE | CDMA | EVDO</string>
|
||||
|
||||
- <!-- Component name of the service providing geofence API support. -->
|
||||
- <string name="config_geofenceProvider" translatable="false">com.qualcomm.location</string>
|
||||
-
|
||||
<string-array name="config_mobile_tcp_buffers">
|
||||
<item>"lte:2097152,4194304,8388608,262144,524288,1048576"</item>
|
||||
<item>"lte_ca:2097152,4194304,8388608,262144,524288,1048576"</item>
|
||||
@@ -442,9 +439,6 @@
|
||||
rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max -->
|
||||
<string name="config_wifi_tcp_buffers" translatable="false">524288,2097152,4194304,262144,524288,1048576</string>
|
||||
|
||||
- <!-- Enable blur support -->
|
||||
- <bool name="config_ui_blur_enabled">true</bool>
|
||||
-
|
||||
<!-- Boolean indicating if current platform supports BLE peripheral mode -->
|
||||
<bool name="config_bluetooth_le_peripheral_mode_supported">true</bool>
|
||||
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,39 @@
|
||||
From 9e22fca4c687d84ba84428788d55b356069e29c7 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Thu, 17 Nov 2016 15:40:05 -0500
|
||||
Subject: [PATCH] Remove Sprint DM
|
||||
|
||||
Change-Id: I94d44bb4753cac72106f7c49997d69a0ec5556bd
|
||||
---
|
||||
proprietary-files.txt | 15 ---------------
|
||||
1 file changed, 15 deletions(-)
|
||||
|
||||
diff --git a/proprietary-files.txt b/proprietary-files.txt
|
||||
index f97d3e6..3675ce9 100644
|
||||
--- a/proprietary-files.txt
|
||||
+++ b/proprietary-files.txt
|
||||
@@ -290,21 +290,6 @@ lib64/libqti-iop.so
|
||||
vendor/lib/libqti-iop-client.so
|
||||
vendor/lib64/libqti-iop-client.so
|
||||
|
||||
-# DM/Sprint
|
||||
--app/DMConfigUpdateLight/DMConfigUpdateLight.apk
|
||||
--app/HiddenMenuLight/HiddenMenuLight.apk
|
||||
-lib/libdmengine.so
|
||||
-lib/libdmjavaplugin.so
|
||||
--priv-app/CQATest/CQATest.apk
|
||||
--priv-app/ConnMO/ConnMO.apk
|
||||
--priv-app/DCMO/DCMO.apk
|
||||
--priv-app/DMService/DMService.apk
|
||||
-lib/libdmengine.so:priv-app/DMService/lib/arm/libdmengine.so
|
||||
-lib/libdmjavaplugin.so:priv-app/DMService/lib/arm/libdmjavaplugin.so
|
||||
--priv-app/DiagMon/DiagMon.apk
|
||||
--priv-app/LifetimeData/LifetimeData.apk
|
||||
--priv-app/SprintDM/SprintDM.apk
|
||||
-
|
||||
# DRM
|
||||
# TZBSP
|
||||
bin/qseecomd
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,24 @@
|
||||
From 44299d2cda16b60235cc682988d59dd3dcd823a5 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Fri, 18 Nov 2016 02:21:47 -0500
|
||||
Subject: [PATCH] Enable Dex-preopt
|
||||
|
||||
Change-Id: I7634ebac4af7a977cff21a6be83bbda11dc943f4
|
||||
---
|
||||
BoardConfig.mk | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/BoardConfig.mk b/BoardConfig.mk
|
||||
index 40022b4..250bbb5 100644
|
||||
--- a/BoardConfig.mk
|
||||
+++ b/BoardConfig.mk
|
||||
@@ -182,3 +182,6 @@ TARGET_USES_WCNSS_MAC_ADDR_REV := true
|
||||
WIFI_DRIVER_FW_PATH_STA := "sta"
|
||||
WIFI_DRIVER_FW_PATH_AP := "ap"
|
||||
WPA_SUPPLICANT_VERSION := VER_0_8_X
|
||||
+
|
||||
+#Dex pre-optimization
|
||||
+WITH_DEXPREOPT := true
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,68 @@
|
||||
From 755b36c6f5e6feaac20112e0819299f63be3553d Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Fri, 18 Nov 2016 18:22:00 -0500
|
||||
Subject: [PATCH] Remove Widevine and disable DRM server
|
||||
|
||||
Change-Id: I24d3ba704d00d85747d851a9a497dd577ad03b5f
|
||||
---
|
||||
Android.mk | 10 +---------
|
||||
proprietary-files.txt | 2 --
|
||||
system.prop | 2 +-
|
||||
3 files changed, 2 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/Android.mk b/Android.mk
|
||||
index a69917c..693cba1 100644
|
||||
--- a/Android.mk
|
||||
+++ b/Android.mk
|
||||
@@ -52,14 +52,6 @@ $(IMS_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
|
||||
@rm -rf $@
|
||||
$(hide) ln -sf /system/vendor/lib64/$(notdir $@) $@
|
||||
|
||||
-WV_IMAGES := widevine.b00 widevine.b01 widevine.b02 widevine.b03 widevine.mdt
|
||||
-WV_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(WV_IMAGES)))
|
||||
-$(WV_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
|
||||
- @echo "Widevine firmware link: $@"
|
||||
- @mkdir -p $(dir $@)
|
||||
- @rm -rf $@
|
||||
- $(hide) ln -sf /firmware/image/$(notdir $@) $@
|
||||
-
|
||||
FIRMWARE_FILES := firmware fsg
|
||||
FIRMWARE_SYMLINKS := $(addprefix $(TARGET_OUT)/rfs/msm/mpss/readonly/,$(notdir $(FIRMWARE_FILES)))
|
||||
$(FIRMWARE_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
|
||||
@@ -68,6 +60,6 @@ $(FIRMWARE_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
|
||||
@rm -rf $@
|
||||
$(hide) ln -sf /$(notdir $@) $@
|
||||
|
||||
-ALL_DEFAULT_INSTALLED_MODULES += $(PERSIST_WCNSS) $(WCNSS_CFG_INI) $(IMS_SYMLINKS) $(WV_SYMLINKS) $(FIRMWARE_SYMLINKS)
|
||||
+ALL_DEFAULT_INSTALLED_MODULES += $(PERSIST_WCNSS) $(WCNSS_CFG_INI) $(IMS_SYMLINKS) $(FIRMWARE_SYMLINKS)
|
||||
|
||||
endif
|
||||
diff --git a/proprietary-files.txt b/proprietary-files.txt
|
||||
index 3675ce9..45dd63b 100644
|
||||
--- a/proprietary-files.txt
|
||||
+++ b/proprietary-files.txt
|
||||
@@ -293,8 +293,6 @@ vendor/lib64/libqti-iop-client.so
|
||||
# DRM
|
||||
# TZBSP
|
||||
bin/qseecomd
|
||||
-etc/permissions/com.google.widevine.software.drm.xml
|
||||
-framework/com.google.widevine.software.drm.jar
|
||||
lib/hw/keystore.qcom.so
|
||||
lib64/hw/keystore.qcom.so
|
||||
vendor/lib/libdrmfs.so
|
||||
diff --git a/system.prop b/system.prop
|
||||
index 6b1967c..4124bd4 100644
|
||||
--- a/system.prop
|
||||
+++ b/system.prop
|
||||
@@ -56,7 +56,7 @@ dalvik.vm.dex2oat-threads=2
|
||||
dalvik.vm.image-dex2oat-threads=4
|
||||
|
||||
# DRM
|
||||
-drm.service.enabled=true
|
||||
+drm.service.enabled=false
|
||||
|
||||
# FM
|
||||
ro.fm.transmitter=false
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,82 @@
|
||||
From b433f4cfbd38a8f4ff4ef5251113c21b648f30cf Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Mon, 21 Nov 2016 02:28:14 -0500
|
||||
Subject: [PATCH] Add dm-verity support
|
||||
|
||||
Change-Id: I6e17bf595c735a19515d1c3080b075ef3a98f6e8
|
||||
---
|
||||
device.mk | 5 +++++
|
||||
rootdir/fstab-verity.qcom | 23 +++++++++++++++++++++++
|
||||
rootdir/init.qcom.rc | 6 ++++++
|
||||
3 files changed, 34 insertions(+)
|
||||
create mode 100644 rootdir/fstab-verity.qcom
|
||||
|
||||
diff --git a/device.mk b/device.mk
|
||||
index cfb3322..dc5b8ee 100644
|
||||
--- a/device.mk
|
||||
+++ b/device.mk
|
||||
@@ -240,3 +240,8 @@ PRODUCT_PACKAGES += \
|
||||
libwpa_client \
|
||||
wpa_supplicant \
|
||||
wpa_supplicant.conf
|
||||
+
|
||||
+#Verity
|
||||
+PRODUCT_COPY_FILES += device/motorola/clark/rootdir/fstab-verity.qcom:root/fstab.qcom
|
||||
+PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/platform/soc.0/f9824900.sdhci/by-name/system
|
||||
+$(call inherit-product, build/target/product/verity.mk)
|
||||
diff --git a/rootdir/fstab-verity.qcom b/rootdir/fstab-verity.qcom
|
||||
new file mode 100644
|
||||
index 0000000..685e6ee
|
||||
--- /dev/null
|
||||
+++ b/rootdir/fstab-verity.qcom
|
||||
@@ -0,0 +1,23 @@
|
||||
+# Android fstab file.
|
||||
+# The filesystem that contains the filesystem checker binary (typically /system) cannot
|
||||
+# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
|
||||
+
|
||||
+#TODO: Add 'check' as fs_mgr_flags with data partition.
|
||||
+# Currently we dont have e2fsck compiled. So fs check would failed.
|
||||
+
|
||||
+#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
|
||||
+/dev/block/bootdevice/by-name/boot /boot emmc defaults defaults
|
||||
+/dev/block/bootdevice/by-name/recovery /recovery emmc defaults defaults
|
||||
+/dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1 wait,verify=/dev/block/bootdevice/by-name/metadata
|
||||
+/dev/block/bootdevice/by-name/userdata /data f2fs rw,nosuid,nodev,noatime,nodiratime,inline_xattr,inline_data,data_flush wait,check,formattable,encryptable=/dev/block/bootdevice/by-name/metadata
|
||||
+/dev/block/bootdevice/by-name/userdata /data ext4 rw,nosuid,nodev,noatime,nodiratime,noauto_da_alloc,nobarrier,journal_async_commit wait,check,formattable,encryptable=/dev/block/bootdevice/by-name/metadata
|
||||
+/dev/block/bootdevice/by-name/cache /cache f2fs rw,nosuid,nodev,noatime,nodiratime,inline_xattr,flush_merge,data_flush wait,check
|
||||
+/dev/block/bootdevice/by-name/cache /cache ext4 rw,noatime,nosuid,nodev,barrier=1,data=ordered,journal_async_commit wait,check,formattable
|
||||
+/dev/block/bootdevice/by-name/fsg /fsg ext4 ro,nosuid,nodev,barrier=0,context=u:object_r:fsg_file:s0 wait
|
||||
+/dev/block/bootdevice/by-name/persist /persist ext4 nosuid,nodev,barrier=1,defcontext=u:object_r:persist_file:s0 wait,notrim
|
||||
+/dev/block/bootdevice/by-name/modem /firmware ext4 ro,nosuid,nodev,context=u:object_r:firmware_file:s0 wait,notrim
|
||||
+/dev/block/bootdevice/by-name/bluetooth /bt_firmware ext4 ro,nosuid,nodev,context=u:object_r:bt_firmware_file:s0 wait,notrim
|
||||
+/dev/block/bootdevice/by-name/misc /misc emmc defaults defaults
|
||||
+/devices/soc.0/f98a4900.sdhci/mmc_host/* auto auto defaults wait,voldmanaged=sdcard1:auto,encryptable=userdata
|
||||
+/devices/*/xhci-hcd.0.auto/usb* auto auto defaults voldmanaged=usb:auto
|
||||
+#/dev/block/zram0 none swap defaults zramsize=536870912,zramstreams=4,notrim
|
||||
diff --git a/rootdir/init.qcom.rc b/rootdir/init.qcom.rc
|
||||
index 88b3e38..bc804cc 100755
|
||||
--- a/rootdir/init.qcom.rc
|
||||
+++ b/rootdir/init.qcom.rc
|
||||
@@ -6,6 +6,9 @@ on early-init
|
||||
mount debugfs debugfs /sys/kernel/debug
|
||||
|
||||
on init
|
||||
+ # Load persistent dm-verity state
|
||||
+ verity_load_state
|
||||
+
|
||||
# Symbols required for motorola blobs
|
||||
export LD_SHIM_LIBS /system/lib/libjustshoot.so|libshim_camera.so:/system/lib/libjscore.so|libshim_camera.so
|
||||
|
||||
@@ -150,6 +153,9 @@ on boot
|
||||
symlink /firmware/image/modem_pr/mbn_ota /data/misc/radio/modem_config
|
||||
write /data/misc/radio/copy_complete 1
|
||||
|
||||
+ # Update dm-verity state and set partition.*.verified properties
|
||||
+ verity_update_state
|
||||
+
|
||||
on post-fs
|
||||
mkdir /persist/camera 02755 mot_tcmd mot_tcmd
|
||||
mkdir /persist/camera/ledcal 0755 camera mot_tcmd
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,28 @@
|
||||
From 5f99ec4ec40c3a07a4ebb662603b8a1c52437ccc Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Mon, 21 Nov 2016 02:45:59 -0500
|
||||
Subject: [PATCH] Enable optional FBE
|
||||
|
||||
Change-Id: I6ae0d43b3159c91d80bd99108f4492254e07e8d3
|
||||
---
|
||||
rootdir/fstab-verity.qcom | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/rootdir/fstab-verity.qcom b/rootdir/fstab-verity.qcom
|
||||
index 685e6ee..b281f9c 100644
|
||||
--- a/rootdir/fstab-verity.qcom
|
||||
+++ b/rootdir/fstab-verity.qcom
|
||||
@@ -9,8 +9,8 @@
|
||||
/dev/block/bootdevice/by-name/boot /boot emmc defaults defaults
|
||||
/dev/block/bootdevice/by-name/recovery /recovery emmc defaults defaults
|
||||
/dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1 wait,verify=/dev/block/bootdevice/by-name/metadata
|
||||
-/dev/block/bootdevice/by-name/userdata /data f2fs rw,nosuid,nodev,noatime,nodiratime,inline_xattr,inline_data,data_flush wait,check,formattable,encryptable=/dev/block/bootdevice/by-name/metadata
|
||||
-/dev/block/bootdevice/by-name/userdata /data ext4 rw,nosuid,nodev,noatime,nodiratime,noauto_da_alloc,nobarrier,journal_async_commit wait,check,formattable,encryptable=/dev/block/bootdevice/by-name/metadata
|
||||
+/dev/block/bootdevice/by-name/userdata /data f2fs rw,nosuid,nodev,noatime,nodiratime,inline_xattr,inline_data,data_flush wait,check,formattable,forcefdeorfbe=/dev/block/bootdevice/by-name/metadata
|
||||
+/dev/block/bootdevice/by-name/userdata /data ext4 rw,nosuid,nodev,noatime,nodiratime,noauto_da_alloc,nobarrier,journal_async_commit wait,check,formattable,forcefdeorfbe=/dev/block/bootdevice/by-name/metadata
|
||||
/dev/block/bootdevice/by-name/cache /cache f2fs rw,nosuid,nodev,noatime,nodiratime,inline_xattr,flush_merge,data_flush wait,check
|
||||
/dev/block/bootdevice/by-name/cache /cache ext4 rw,noatime,nosuid,nodev,barrier=1,data=ordered,journal_async_commit wait,check,formattable
|
||||
/dev/block/bootdevice/by-name/fsg /fsg ext4 ro,nosuid,nodev,barrier=0,context=u:object_r:fsg_file:s0 wait
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,32 @@
|
||||
From aa91f3c0beab9dbb78041540b59558631f63e30e Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Mon, 28 Nov 2016 07:04:58 -0500
|
||||
Subject: [PATCH] TWRP Support
|
||||
|
||||
Change-Id: I9c9caf279898f7f6cab5f2da81715e0a5440ca17
|
||||
---
|
||||
BoardConfig.mk | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/BoardConfig.mk b/BoardConfig.mk
|
||||
index 250bbb5..9be8f1c 100644
|
||||
--- a/BoardConfig.mk
|
||||
+++ b/BoardConfig.mk
|
||||
@@ -185,3 +185,14 @@ WPA_SUPPLICANT_VERSION := VER_0_8_X
|
||||
|
||||
#Dex pre-optimization
|
||||
WITH_DEXPREOPT := true
|
||||
+
|
||||
+# TWRP
|
||||
+TW_THEME := portrait_hdpi
|
||||
+DEVICE_RESOLUTION := 1440x2560
|
||||
+TW_INCLUDE_L_CRYPTO := true
|
||||
+TW_TARGET_USES_QCOM_BSP := true
|
||||
+TW_NEW_ION_HEAP := true
|
||||
+TW_INCLUDE_CRYPTO := true
|
||||
+TW_SCREEN_BLANK_ON_BOOT := true
|
||||
+TARGET_RECOVERY_QCOM_RTC_FIX := true
|
||||
+TARGET_RECOVERY_FSTAB = $(DEVICE_PATH)/rootdir/fstab.qcom
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,48 @@
|
||||
From 5debdc1dd573384f7a1556a6db2d6960bd7259c5 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Thu, 17 Nov 2016 16:35:14 -0500
|
||||
Subject: [PATCH] Remove Widevine
|
||||
|
||||
Change-Id: I531feb804092b596af47e75530fa88b5c85f628a
|
||||
---
|
||||
Android.mk | 24 ------------------------
|
||||
1 file changed, 24 deletions(-)
|
||||
|
||||
diff --git a/Android.mk b/Android.mk
|
||||
index dde02c7..08fc62e 100644
|
||||
--- a/Android.mk
|
||||
+++ b/Android.mk
|
||||
@@ -124,30 +124,6 @@ $(MC_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
|
||||
|
||||
ALL_DEFAULT_INSTALLED_MODULES += $(MC_SYMLINKS)
|
||||
|
||||
-PLAYREADY_IMAGES := \
|
||||
- playread.b00 playread.b01 playread.b02 playread.b03 playread.mdt
|
||||
-
|
||||
-PLAYREADY_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(PLAYREADY_IMAGES)))
|
||||
-$(PLAYREADY_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
|
||||
- @echo "Playready firmware link: $@"
|
||||
- @mkdir -p $(dir $@)
|
||||
- @rm -rf $@
|
||||
- $(hide) ln -sf /firmware/image/$(notdir $@) $@
|
||||
-
|
||||
-ALL_DEFAULT_INSTALLED_MODULES += $(PLAYREADY_SYMLINKS)
|
||||
-
|
||||
-WV_IMAGES := \
|
||||
- widevine.b00 widevine.b01 widevine.b02 widevine.b03 widevine.mdt
|
||||
-
|
||||
-WV_SYMLINKS := $(addprefix $(TARGET_OUT_ETC)/firmware/,$(notdir $(WV_IMAGES)))
|
||||
-$(WV_SYMLINKS): $(LOCAL_INSTALLED_MODULE)
|
||||
- @echo "Widevine firmware link: $@"
|
||||
- @mkdir -p $(dir $@)
|
||||
- @rm -rf $@
|
||||
- $(hide) ln -sf /firmware/image/$(notdir $@) $@
|
||||
-
|
||||
-ALL_DEFAULT_INSTALLED_MODULES += $(WV_SYMLINKS)
|
||||
-
|
||||
# Create links for audcal data files
|
||||
$(shell mkdir -p $(TARGET_OUT)/etc/firmware/wcd9320; \
|
||||
ln -sf /data/misc/audio/wcd9320_anc.bin \
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,25 @@
|
||||
From e12aa9baa815d0279aab7756edc4e9c130f0bbff Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Fri, 18 Nov 2016 02:23:46 -0500
|
||||
Subject: [PATCH] Enable Dex-preopt
|
||||
|
||||
Change-Id: Id0ee761ca93a2a4cab0d40959610520b193d0528
|
||||
---
|
||||
BoardConfig.mk | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/BoardConfig.mk b/BoardConfig.mk
|
||||
index 35bde5d..ff476f7 100644
|
||||
--- a/BoardConfig.mk
|
||||
+++ b/BoardConfig.mk
|
||||
@@ -197,4 +197,7 @@ TARGET_LDPRELOAD := libNimsWrap.so
|
||||
endif
|
||||
endif
|
||||
|
||||
+#Dex pre-optimization
|
||||
+WITH_DEXPREOPT := true
|
||||
+
|
||||
-include vendor/oneplus/bacon/BoardConfigVendor.mk
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,27 @@
|
||||
From d06526ec844bf89e77c518dbcd0deb331babf8dd Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Sun, 18 Dec 2016 09:30:44 -0500
|
||||
Subject: [PATCH] Enable secure_delete by default
|
||||
|
||||
Change-Id: Ic2604b78f57998c001df9737ab0fdec2298122c4
|
||||
---
|
||||
dist/Android.mk | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dist/Android.mk b/dist/Android.mk
|
||||
index bf277d2..8113e32 100644
|
||||
--- a/dist/Android.mk
|
||||
+++ b/dist/Android.mk
|
||||
@@ -27,7 +27,8 @@ minimal_sqlite_flags := \
|
||||
-DSQLITE_OMIT_BUILTIN_TEST \
|
||||
-DSQLITE_OMIT_COMPILEOPTION_DIAGS \
|
||||
-DSQLITE_OMIT_LOAD_EXTENSION \
|
||||
- -DSQLITE_DEFAULT_FILE_PERMISSIONS=0600
|
||||
+ -DSQLITE_DEFAULT_FILE_PERMISSIONS=0600 \
|
||||
+ -DSQLITE_SECURE_DELETE
|
||||
|
||||
device_sqlite_flags := $(minimal_sqlite_flags) \
|
||||
-DSQLITE_ENABLE_ICU \
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,27 @@
|
||||
From 4211c35467725729615cce8fe3cd25f0de58da2a Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Fri, 18 Nov 2016 12:30:43 -0500
|
||||
Subject: [PATCH] Allow location providers outside of /system
|
||||
|
||||
Change-Id: I405981605aeb00a4482d7191905963fc97a5d424
|
||||
---
|
||||
services/core/java/com/android/server/ServiceWatcher.java | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/services/core/java/com/android/server/ServiceWatcher.java b/services/core/java/com/android/server/ServiceWatcher.java
|
||||
index 383e25a..31ae918 100644
|
||||
--- a/services/core/java/com/android/server/ServiceWatcher.java
|
||||
+++ b/services/core/java/com/android/server/ServiceWatcher.java
|
||||
@@ -92,8 +92,7 @@ public class ServiceWatcher implements ServiceConnection {
|
||||
String pkg = initialPackageNames.get(i);
|
||||
try {
|
||||
HashSet<Signature> set = new HashSet<Signature>();
|
||||
- Signature[] sigs = pm.getPackageInfo(pkg, PackageManager.MATCH_SYSTEM_ONLY
|
||||
- | PackageManager.GET_SIGNATURES).signatures;
|
||||
+ Signature[] sigs = pm.getPackageInfo(pkg, PackageManager.GET_SIGNATURES).signatures;
|
||||
set.addAll(Arrays.asList(sigs));
|
||||
sigSets.add(set);
|
||||
} catch (NameNotFoundException e) {
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,49 @@
|
||||
From 4921beaf996a89c9a56b98f213401ceeb2a23082 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Fri, 18 Nov 2016 14:52:59 -0500
|
||||
Subject: [PATCH] Shutdown after 5 failed unlock attempts
|
||||
|
||||
Change-Id: Icc23122e5a25b756872fe132cd0e93684e8bafca
|
||||
---
|
||||
.../Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java | 5 +++++
|
||||
packages/SystemUI/AndroidManifest.xml | 1 +
|
||||
2 files changed, 6 insertions(+)
|
||||
|
||||
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
|
||||
index aaff265..865956f 100644
|
||||
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
|
||||
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java
|
||||
@@ -22,6 +22,7 @@ import android.app.admin.DevicePolicyManager;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
+import android.os.PowerManager;
|
||||
import android.os.UserHandle;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
@@ -366,6 +367,10 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe
|
||||
if (!enableTimesCounter && (timeoutMs > 0)) {
|
||||
showTimeoutDialog(timeoutMs);
|
||||
}
|
||||
+ if (failedAttempts >=5) {
|
||||
+ final PowerManager powerManager = mContext.getSystemService(PowerManager.class);
|
||||
+ powerManager.shutdown(false, false);
|
||||
+ }
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml
|
||||
index 2248baf..b13b0fd 100644
|
||||
--- a/packages/SystemUI/AndroidManifest.xml
|
||||
+++ b/packages/SystemUI/AndroidManifest.xml
|
||||
@@ -112,6 +112,7 @@
|
||||
<uses-permission android:name="android.permission.TRUST_LISTENER" />
|
||||
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
|
||||
<uses-permission android:name="android.permission.RESET_FINGERPRINT_LOCKOUT" />
|
||||
+ <uses-permission android:name="android.permission.REBOOT" />
|
||||
|
||||
<!-- Needed for WallpaperManager.clear in ImageWallpaper.updateWallpaperLocked -->
|
||||
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,97 @@
|
||||
From 44cda6f5e47c33e91980ae35c8bc6d88e4d3763c Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Thu, 24 Nov 2016 13:01:30 -0500
|
||||
Subject: [PATCH] Allow packages to spoof their signature
|
||||
|
||||
Change-Id: I9acf48c7607804890d0d0fa7fe30bb36779cb40d
|
||||
---
|
||||
core/res/AndroidManifest.xml | 7 +++++++
|
||||
core/res/res/values/config.xml | 2 ++
|
||||
core/res/res/values/strings.xml | 5 +++++
|
||||
.../android/server/pm/PackageManagerService.java | 23 ++++++++++++++++++++--
|
||||
4 files changed, 35 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
|
||||
index b624305..43eec1f 100644
|
||||
--- a/core/res/AndroidManifest.xml
|
||||
+++ b/core/res/AndroidManifest.xml
|
||||
@@ -1926,6 +1926,13 @@
|
||||
android:description="@string/permdesc_getPackageSize"
|
||||
android:protectionLevel="normal" />
|
||||
|
||||
+ <!-- @hide Allows an application to change the package signature as
|
||||
+ seen by applications -->
|
||||
+ <permission android:name="android.permission.FAKE_PACKAGE_SIGNATURE"
|
||||
+ android:protectionLevel="dangerous"
|
||||
+ android:label="@string/permlab_fakePackageSignature"
|
||||
+ android:description="@string/permdesc_fakePackageSignature" />
|
||||
+
|
||||
<!-- @deprecated No longer useful, see
|
||||
{@link android.content.pm.PackageManager#addPackageToPreferred}
|
||||
for details. -->
|
||||
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml
|
||||
index 4a95f6e..702e02a 100644
|
||||
--- a/core/res/res/values/config.xml
|
||||
+++ b/core/res/res/values/config.xml
|
||||
@@ -1383,6 +1383,8 @@
|
||||
<string-array name="config_locationProviderPackageNames" translatable="false">
|
||||
<!-- The standard AOSP fused location provider -->
|
||||
<item>com.android.location.fused</item>
|
||||
+ <!-- The (faked) microg fused location provider -->
|
||||
+ <item>com.google.android.gms</item>
|
||||
</string-array>
|
||||
|
||||
<!-- This string array can be overriden to enable test location providers initially. -->
|
||||
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
|
||||
index 345d377..26814f1 100644
|
||||
--- a/core/res/res/values/strings.xml
|
||||
+++ b/core/res/res/values/strings.xml
|
||||
@@ -660,6 +660,11 @@
|
||||
|
||||
<!-- Permissions -->
|
||||
|
||||
+ <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
||||
+ <string name="permlab_fakePackageSignature">Spoof package signature</string>
|
||||
+ <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
||||
+ <string name="permdesc_fakePackageSignature">Allows the app to pretend to be a different app. Malicious applications might be able to use this to access private application data. Grant this permission with caution only!</string>
|
||||
+
|
||||
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
||||
<string name="permlab_statusBar">disable or modify status bar</string>
|
||||
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
||||
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
|
||||
index d450288..9194e69 100644
|
||||
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
|
||||
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
|
||||
@@ -3141,8 +3141,27 @@ public class PackageManagerService extends IPackageManager.Stub {
|
||||
? Collections.<String>emptySet() : permissionsState.getPermissions(userId);
|
||||
final PackageUserState state = ps.readUserState(userId);
|
||||
|
||||
- return PackageParser.generatePackageInfo(p, gids, flags,
|
||||
- ps.firstInstallTime, ps.lastUpdateTime, permissions, state, userId);
|
||||
+ return mayFakeSignature(p, PackageParser.generatePackageInfo(p, gids, flags,
|
||||
+ ps.firstInstallTime, ps.lastUpdateTime, permissions, state, userId),
|
||||
+ permissions);
|
||||
+ }
|
||||
+
|
||||
+ private PackageInfo mayFakeSignature(PackageParser.Package p, PackageInfo pi,
|
||||
+ Set<String> permissions) {
|
||||
+ try {
|
||||
+ if (permissions.contains("android.permission.FAKE_PACKAGE_SIGNATURE")
|
||||
+ && p.applicationInfo.targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1
|
||||
+ && p.mAppMetaData != null) {
|
||||
+ String sig = p.mAppMetaData.getString("fake-signature");
|
||||
+ if (sig != null) {
|
||||
+ pi.signatures = new Signature[] {new Signature(sig)};
|
||||
+ }
|
||||
+ }
|
||||
+ } catch (Throwable t) {
|
||||
+ // We should never die because of any failures, this is system code!
|
||||
+ Log.w("PackageManagerService.FAKE_PACKAGE_SIGNATURE", t);
|
||||
+ }
|
||||
+ return pi;
|
||||
}
|
||||
|
||||
@Override
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,54 @@
|
||||
From c46d22ad7a92e72f4ba9ba3a36e8dbdb566f4a07 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Sun, 18 Dec 2016 09:36:07 -0500
|
||||
Subject: [PATCH] Hide passwords by default
|
||||
|
||||
Change-Id: I95e26ff6219f6209d5b9fc7ae92a453b53b0aa76
|
||||
---
|
||||
core/java/android/text/method/TextKeyListener.java | 2 +-
|
||||
core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java | 2 +-
|
||||
packages/Keyguard/src/com/android/keyguard/PasswordTextView.java | 2 +-
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/core/java/android/text/method/TextKeyListener.java b/core/java/android/text/method/TextKeyListener.java
|
||||
index 994f3d7..b2ac244 100644
|
||||
--- a/core/java/android/text/method/TextKeyListener.java
|
||||
+++ b/core/java/android/text/method/TextKeyListener.java
|
||||
@@ -291,7 +291,7 @@ public class TextKeyListener extends BaseKeyListener implements SpanWatcher {
|
||||
boolean cap = System.getInt(resolver, System.TEXT_AUTO_CAPS, 1) > 0;
|
||||
boolean text = System.getInt(resolver, System.TEXT_AUTO_REPLACE, 1) > 0;
|
||||
boolean period = System.getInt(resolver, System.TEXT_AUTO_PUNCTUATE, 1) > 0;
|
||||
- boolean pw = System.getInt(resolver, System.TEXT_SHOW_PASSWORD, 1) > 0;
|
||||
+ boolean pw = System.getInt(resolver, System.TEXT_SHOW_PASSWORD, 0) > 0;
|
||||
|
||||
mPrefs = (cap ? AUTO_CAP : 0) |
|
||||
(text ? AUTO_TEXT : 0) |
|
||||
diff --git a/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java b/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java
|
||||
index b2c9dc5..dc5b7f9 100644
|
||||
--- a/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java
|
||||
+++ b/core/java/com/android/internal/widget/PasswordEntryKeyboardHelper.java
|
||||
@@ -159,7 +159,7 @@ public class PasswordEntryKeyboardHelper implements OnKeyboardActionListener {
|
||||
mKeyboardState = KEYBOARD_STATE_NORMAL;
|
||||
final boolean visiblePassword = Settings.System.getInt(
|
||||
mContext.getContentResolver(),
|
||||
- Settings.System.TEXT_SHOW_PASSWORD, 1) != 0;
|
||||
+ Settings.System.TEXT_SHOW_PASSWORD, 0) != 0;
|
||||
final boolean enablePreview = false; // TODO: grab from configuration
|
||||
mKeyboardView.setPreviewEnabled(visiblePassword && enablePreview);
|
||||
break;
|
||||
diff --git a/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java b/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java
|
||||
index 48737f9..3f4c381 100644
|
||||
--- a/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java
|
||||
+++ b/packages/Keyguard/src/com/android/keyguard/PasswordTextView.java
|
||||
@@ -134,7 +134,7 @@ public class PasswordTextView extends View {
|
||||
mDrawPaint.setColor(0xffffffff);
|
||||
mDrawPaint.setTypeface(Typeface.create("sans-serif-light", 0));
|
||||
mShowPassword = Settings.System.getInt(mContext.getContentResolver(),
|
||||
- Settings.System.TEXT_SHOW_PASSWORD, 1) == 1;
|
||||
+ Settings.System.TEXT_SHOW_PASSWORD, 0) == 1;
|
||||
mAppearInterpolator = AnimationUtils.loadInterpolator(mContext,
|
||||
android.R.interpolator.linear_out_slow_in);
|
||||
mDisappearInterpolator = AnimationUtils.loadInterpolator(mContext,
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,26 @@
|
||||
From 6c9c966622adbfe0ad92ed90d90f93a782c99f02 Mon Sep 17 00:00:00 2001
|
||||
From: Tad <tad@spotco.us>
|
||||
Date: Sun, 18 Dec 2016 19:10:20 -0500
|
||||
Subject: [PATCH] Harden signature spoofing
|
||||
|
||||
Change-Id: I31e2a20923fff883c87fa6425408971657d3d7b3
|
||||
---
|
||||
core/res/AndroidManifest.xml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
|
||||
index 486999b..182acbf 100644
|
||||
--- a/core/res/AndroidManifest.xml
|
||||
+++ b/core/res/AndroidManifest.xml
|
||||
@@ -1937,7 +1937,7 @@
|
||||
<!-- @hide Allows an application to change the package signature as
|
||||
seen by applications -->
|
||||
<permission android:name="android.permission.FAKE_PACKAGE_SIGNATURE"
|
||||
- android:protectionLevel="dangerous"
|
||||
+ android:protectionLevel="signature"
|
||||
android:label="@string/permlab_fakePackageSignature"
|
||||
android:description="@string/permdesc_fakePackageSignature" />
|
||||
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,757 @@
|
||||
From ec5d8918e9d3149ce489900f48d6e6ebd2fd5031 Mon Sep 17 00:00:00 2001
|
||||
From: Paul Reioux <reioux@gmail.com>
|
||||
Date: Sun, 20 Oct 2013 22:30:36 -0500
|
||||
Subject: [PATCH 1/5] Voltage Control: initial voltage control for MSM
|
||||
Snapdragon 800 SOC
|
||||
|
||||
Signed-off-by: Paul Reioux <reioux@gmail.com>
|
||||
Signed-off-by: flar2 <asegaert@gmail.com>
|
||||
---
|
||||
arch/arm/mach-msm/Kconfig | 6 +++++
|
||||
arch/arm/mach-msm/acpuclock-krait.c | 48 +++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 54 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
|
||||
index ba5a33c..44db2ca 100644
|
||||
--- a/arch/arm/mach-msm/Kconfig
|
||||
+++ b/arch/arm/mach-msm/Kconfig
|
||||
@@ -1918,6 +1918,12 @@ config MSM_CPU_FREQ_MIN
|
||||
|
||||
endif # CPU_FREQ_MSM
|
||||
|
||||
+config CPU_VOLTAGE_TABLE
|
||||
+ bool "Enable CPU Voltage Table via sysfs for adjustements"
|
||||
+ default n
|
||||
+ help
|
||||
+ Krait User Votlage Control
|
||||
+
|
||||
config MSM_AVS_HW
|
||||
bool "Enable Adaptive Voltage Scaling (AVS)"
|
||||
default n
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-krait.c b/arch/arm/mach-msm/acpuclock-krait.c
|
||||
index 84e2fc1..c7eceb1 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-krait.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-krait.c
|
||||
@@ -937,6 +937,54 @@ static void __init bus_init(const struct l2_level *l2_level)
|
||||
dev_err(drv.dev, "initial bandwidth req failed (%d)\n", ret);
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_CPU_VOLTAGE_TABLE
|
||||
+
|
||||
+#define HFPLL_MIN_VDD 800000
|
||||
+#define HFPLL_MAX_VDD 1350000
|
||||
+
|
||||
+ssize_t acpuclk_get_vdd_levels_str(char *buf) {
|
||||
+
|
||||
+ int i, len = 0;
|
||||
+
|
||||
+ if (buf) {
|
||||
+ mutex_lock(&driver_lock);
|
||||
+
|
||||
+ for (i = 0; drv.acpu_freq_tbl[i].speed.khz; i++) {
|
||||
+ /* updated to use uv required by 8x60 architecture - faux123 */
|
||||
+ len += sprintf(buf + len, "%8lu: %8d\n", drv.acpu_freq_tbl[i].speed.khz,
|
||||
+ drv.acpu_freq_tbl[i].vdd_core );
|
||||
+ }
|
||||
+
|
||||
+ mutex_unlock(&driver_lock);
|
||||
+ }
|
||||
+ return len;
|
||||
+}
|
||||
+
|
||||
+/* updated to use uv required by 8x60 architecture - faux123 */
|
||||
+void acpuclk_set_vdd(unsigned int khz, int vdd_uv) {
|
||||
+
|
||||
+ int i;
|
||||
+ unsigned int new_vdd_uv;
|
||||
+
|
||||
+ mutex_lock(&driver_lock);
|
||||
+
|
||||
+ for (i = 0; drv.acpu_freq_tbl[i].speed.khz; i++) {
|
||||
+ if (khz == 0)
|
||||
+ new_vdd_uv = min(max((unsigned int)(drv.acpu_freq_tbl[i].vdd_core + vdd_uv),
|
||||
+ (unsigned int)HFPLL_MIN_VDD), (unsigned int)HFPLL_MAX_VDD);
|
||||
+ else if ( drv.acpu_freq_tbl[i].speed.khz == khz)
|
||||
+ new_vdd_uv = min(max((unsigned int)vdd_uv,
|
||||
+ (unsigned int)HFPLL_MIN_VDD), (unsigned int)HFPLL_MAX_VDD);
|
||||
+ else
|
||||
+ continue;
|
||||
+
|
||||
+ drv.acpu_freq_tbl[i].vdd_core = new_vdd_uv;
|
||||
+ }
|
||||
+ pr_warn("faux123: user voltage table modified!\n");
|
||||
+ mutex_unlock(&driver_lock);
|
||||
+}
|
||||
+#endif /* CONFIG_CPU_VOTALGE_TABLE */
|
||||
+
|
||||
#ifdef CONFIG_CPU_FREQ_MSM
|
||||
static struct cpufreq_frequency_table freq_table[NR_CPUS][35];
|
||||
|
||||
--
|
||||
2.9.3
|
||||
|
||||
|
||||
From 1e4ac53ff15efeaf4cb3998b9ba009095d582413 Mon Sep 17 00:00:00 2001
|
||||
From: flar2 <asegaert@gmail.com>
|
||||
Date: Sat, 9 Nov 2013 00:17:33 -0500
|
||||
Subject: [PATCH 2/5] Increase voltage limits
|
||||
|
||||
Signed-off-by: flar2 <asegaert@gmail.com>
|
||||
---
|
||||
arch/arm/boot/dts/msm8974-regulator.dtsi | 8 ++++----
|
||||
arch/arm/mach-msm/acpuclock-8974.c | 8 ++++----
|
||||
arch/arm/mach-msm/acpuclock-krait.c | 4 ++--
|
||||
3 files changed, 10 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/msm8974-regulator.dtsi b/arch/arm/boot/dts/msm8974-regulator.dtsi
|
||||
index 9de41f4..6a38980 100644
|
||||
--- a/arch/arm/boot/dts/msm8974-regulator.dtsi
|
||||
+++ b/arch/arm/boot/dts/msm8974-regulator.dtsi
|
||||
@@ -477,7 +477,7 @@
|
||||
<0xf908a800 0x1000>; /* APCS_ALIAS0_KPSS_MDD */
|
||||
reg-names = "acs", "mdd";
|
||||
regulator-min-microvolt = <500000>;
|
||||
- regulator-max-microvolt = <1100000>;
|
||||
+ regulator-max-microvolt = <1200000>;
|
||||
qcom,headroom-voltage = <150000>;
|
||||
qcom,retention-voltage = <675000>;
|
||||
qcom,ldo-default-voltage = <750000>;
|
||||
@@ -493,7 +493,7 @@
|
||||
<0xf909a800 0x1000>; /* APCS_ALIAS1_KPSS_MDD */
|
||||
reg-names = "acs", "mdd";
|
||||
regulator-min-microvolt = <500000>;
|
||||
- regulator-max-microvolt = <1100000>;
|
||||
+ regulator-max-microvolt = <1200000>;
|
||||
qcom,headroom-voltage = <150000>;
|
||||
qcom,retention-voltage = <675000>;
|
||||
qcom,ldo-default-voltage = <750000>;
|
||||
@@ -509,7 +509,7 @@
|
||||
<0xf90aa800 0x1000>; /* APCS_ALIAS2_KPSS_MDD */
|
||||
reg-names = "acs", "mdd";
|
||||
regulator-min-microvolt = <500000>;
|
||||
- regulator-max-microvolt = <1100000>;
|
||||
+ regulator-max-microvolt = <1200000>;
|
||||
qcom,headroom-voltage = <150000>;
|
||||
qcom,retention-voltage = <675000>;
|
||||
qcom,ldo-default-voltage = <750000>;
|
||||
@@ -525,7 +525,7 @@
|
||||
<0xf90ba800 0x1000>; /* APCS_ALIAS3_KPSS_MDD */
|
||||
reg-names = "acs", "mdd";
|
||||
regulator-min-microvolt = <500000>;
|
||||
- regulator-max-microvolt = <1100000>;
|
||||
+ regulator-max-microvolt = <1200000>;
|
||||
qcom,headroom-voltage = <150000>;
|
||||
qcom,retention-voltage = <675000>;
|
||||
qcom,ldo-default-voltage = <750000>;
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-8974.c b/arch/arm/mach-msm/acpuclock-8974.c
|
||||
index 694d783..8b7d74e 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-8974.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-8974.c
|
||||
@@ -55,7 +55,7 @@ static struct scalable scalable[] __initdata = {
|
||||
.hfpll_phys_base = 0xF908A000,
|
||||
.l2cpmr_iaddr = 0x4501,
|
||||
.sec_clk_sel = 2,
|
||||
- .vreg[VREG_CORE] = { "krait0", 1100000 },
|
||||
+ .vreg[VREG_CORE] = { "krait0", 1200000 },
|
||||
.vreg[VREG_MEM] = { "krait0_mem", 1050000 },
|
||||
.vreg[VREG_DIG] = { "krait0_dig", LVL_HIGH },
|
||||
.vreg[VREG_HFPLL_A] = { "krait0_hfpll", 1800000 },
|
||||
@@ -64,7 +64,7 @@ static struct scalable scalable[] __initdata = {
|
||||
.hfpll_phys_base = 0xF909A000,
|
||||
.l2cpmr_iaddr = 0x5501,
|
||||
.sec_clk_sel = 2,
|
||||
- .vreg[VREG_CORE] = { "krait1", 1100000 },
|
||||
+ .vreg[VREG_CORE] = { "krait1", 1200000 },
|
||||
.vreg[VREG_MEM] = { "krait1_mem", 1050000 },
|
||||
.vreg[VREG_DIG] = { "krait1_dig", LVL_HIGH },
|
||||
.vreg[VREG_HFPLL_A] = { "krait1_hfpll", 1800000 },
|
||||
@@ -73,7 +73,7 @@ static struct scalable scalable[] __initdata = {
|
||||
.hfpll_phys_base = 0xF90AA000,
|
||||
.l2cpmr_iaddr = 0x6501,
|
||||
.sec_clk_sel = 2,
|
||||
- .vreg[VREG_CORE] = { "krait2", 1100000 },
|
||||
+ .vreg[VREG_CORE] = { "krait2", 1200000 },
|
||||
.vreg[VREG_MEM] = { "krait2_mem", 1050000 },
|
||||
.vreg[VREG_DIG] = { "krait2_dig", LVL_HIGH },
|
||||
.vreg[VREG_HFPLL_A] = { "krait2_hfpll", 1800000 },
|
||||
@@ -82,7 +82,7 @@ static struct scalable scalable[] __initdata = {
|
||||
.hfpll_phys_base = 0xF90BA000,
|
||||
.l2cpmr_iaddr = 0x7501,
|
||||
.sec_clk_sel = 2,
|
||||
- .vreg[VREG_CORE] = { "krait3", 1100000 },
|
||||
+ .vreg[VREG_CORE] = { "krait3", 1200000 },
|
||||
.vreg[VREG_MEM] = { "krait3_mem", 1050000 },
|
||||
.vreg[VREG_DIG] = { "krait3_dig", LVL_HIGH },
|
||||
.vreg[VREG_HFPLL_A] = { "krait3_hfpll", 1800000 },
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-krait.c b/arch/arm/mach-msm/acpuclock-krait.c
|
||||
index c7eceb1..2211ad3 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-krait.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-krait.c
|
||||
@@ -939,8 +939,8 @@ static void __init bus_init(const struct l2_level *l2_level)
|
||||
|
||||
#ifdef CONFIG_CPU_VOLTAGE_TABLE
|
||||
|
||||
-#define HFPLL_MIN_VDD 800000
|
||||
-#define HFPLL_MAX_VDD 1350000
|
||||
+#define HFPLL_MIN_VDD 500000
|
||||
+#define HFPLL_MAX_VDD 1200000
|
||||
|
||||
ssize_t acpuclk_get_vdd_levels_str(char *buf) {
|
||||
|
||||
--
|
||||
2.9.3
|
||||
|
||||
|
||||
From 28d7063d0b5a45d328633e4a59d20ac148f1fadd Mon Sep 17 00:00:00 2001
|
||||
From: flar2 <asegaert@gmail.com>
|
||||
Date: Sat, 9 Nov 2013 01:27:36 -0500
|
||||
Subject: [PATCH 3/5] CPU overclocking
|
||||
|
||||
Signed-off-by: flar2 <asegaert@gmail.com>
|
||||
---
|
||||
arch/arm/mach-msm/acpuclock-8974.c | 42 ++++++++++
|
||||
arch/arm/mach-msm/acpuclock-krait.c | 148 +++++++++++++++++++++++++++++++++++-
|
||||
2 files changed, 189 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-8974.c b/arch/arm/mach-msm/acpuclock-8974.c
|
||||
index 8b7d74e..cb878d9 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-8974.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-8974.c
|
||||
@@ -710,6 +710,12 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs0[] __initdata = {
|
||||
{ 0, { 2112000, HFPLL, 1, 110 }, L2(19), 1070000, 627 },
|
||||
{ 0, { 2188800, HFPLL, 1, 114 }, L2(19), 1085000, 659 },
|
||||
{ 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1100000, 691 },
|
||||
+ { 1, { 2342400, HFPLL, 1, 122 }, L2(19), 1115000, 714 },
|
||||
+ { 1, { 2419200, HFPLL, 1, 126 }, L2(19), 1130000, 738 },
|
||||
+ { 1, { 2496000, HFPLL, 1, 130 }, L2(19), 1145000, 761 },
|
||||
+ { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1160000, 784 },
|
||||
+ { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1175000, 808 },
|
||||
+ { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1195000, 831 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
@@ -741,6 +747,12 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs1[] __initdata = {
|
||||
{ 0, { 2112000, HFPLL, 1, 110 }, L2(19), 1045000, 627 },
|
||||
{ 0, { 2188800, HFPLL, 1, 114 }, L2(19), 1060000, 659 },
|
||||
{ 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1075000, 691 },
|
||||
+ { 1, { 2342400, HFPLL, 1, 122 }, L2(19), 1090000, 714 },
|
||||
+ { 1, { 2419200, HFPLL, 1, 126 }, L2(19), 1105000, 738 },
|
||||
+ { 1, { 2496000, HFPLL, 1, 130 }, L2(19), 1120000, 761 },
|
||||
+ { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1135000, 784 },
|
||||
+ { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1150000, 808 },
|
||||
+ { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1165000, 831 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
@@ -772,6 +784,12 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs2[] __initdata = {
|
||||
{ 0, { 2112000, HFPLL, 1, 110 }, L2(19), 1020000, 627 },
|
||||
{ 0, { 2188800, HFPLL, 1, 114 }, L2(19), 1035000, 659 },
|
||||
{ 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1050000, 691 },
|
||||
+ { 1, { 2342400, HFPLL, 1, 122 }, L2(19), 1065000, 714 },
|
||||
+ { 1, { 2419200, HFPLL, 1, 126 }, L2(19), 1080000, 738 },
|
||||
+ { 1, { 2496000, HFPLL, 1, 130 }, L2(19), 1095000, 761 },
|
||||
+ { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1110000, 784 },
|
||||
+ { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1125000, 808 },
|
||||
+ { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1140000, 831 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
@@ -803,6 +821,12 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs3[] __initdata = {
|
||||
{ 0, { 2112000, HFPLL, 1, 110 }, L2(19), 995000, 627 },
|
||||
{ 0, { 2188800, HFPLL, 1, 114 }, L2(19), 1010000, 659 },
|
||||
{ 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1025000, 691 },
|
||||
+ { 1, { 2342400, HFPLL, 1, 122 }, L2(19), 1040000, 714 },
|
||||
+ { 1, { 2419200, HFPLL, 1, 126 }, L2(19), 1055000, 738 },
|
||||
+ { 1, { 2496000, HFPLL, 1, 130 }, L2(19), 1070000, 761 },
|
||||
+ { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1085000, 784 },
|
||||
+ { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1100000, 808 },
|
||||
+ { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1115000, 831 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
@@ -834,6 +858,12 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs4[] __initdata = {
|
||||
{ 0, { 2112000, HFPLL, 1, 110 }, L2(19), 975000, 627 },
|
||||
{ 0, { 2188800, HFPLL, 1, 114 }, L2(19), 985000, 659 },
|
||||
{ 1, { 2265600, HFPLL, 1, 118 }, L2(19), 1000000, 691 },
|
||||
+ { 1, { 2342400, HFPLL, 1, 122 }, L2(19), 1015000, 714 },
|
||||
+ { 1, { 2419200, HFPLL, 1, 126 }, L2(19), 1030000, 738 },
|
||||
+ { 1, { 2496000, HFPLL, 1, 130 }, L2(19), 1045000, 761 },
|
||||
+ { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1060000, 784 },
|
||||
+ { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1075000, 808 },
|
||||
+ { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1090000, 831 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
@@ -865,6 +895,12 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs5[] __initdata = {
|
||||
{ 0, { 2112000, HFPLL, 1, 110 }, L2(19), 955000, 627 },
|
||||
{ 0, { 2188800, HFPLL, 1, 114 }, L2(19), 965000, 659 },
|
||||
{ 1, { 2265600, HFPLL, 1, 118 }, L2(19), 975000, 691 },
|
||||
+ { 1, { 2342400, HFPLL, 1, 122 }, L2(19), 990000, 714 },
|
||||
+ { 1, { 2419200, HFPLL, 1, 126 }, L2(19), 1005000, 738 },
|
||||
+ { 1, { 2496000, HFPLL, 1, 130 }, L2(19), 1020000, 761 },
|
||||
+ { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1035000, 784 },
|
||||
+ { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1050000, 808 },
|
||||
+ { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1065000, 831 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
@@ -896,6 +932,12 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs6[] __initdata = {
|
||||
{ 0, { 2112000, HFPLL, 1, 110 }, L2(19), 930000, 627 },
|
||||
{ 0, { 2188800, HFPLL, 1, 114 }, L2(19), 940000, 659 },
|
||||
{ 1, { 2265600, HFPLL, 1, 118 }, L2(19), 950000, 691 },
|
||||
+ { 1, { 2342400, HFPLL, 1, 122 }, L2(19), 960000, 714 },
|
||||
+ { 1, { 2419200, HFPLL, 1, 126 }, L2(19), 975000, 738 },
|
||||
+ { 1, { 2496000, HFPLL, 1, 130 }, L2(19), 990000, 761 },
|
||||
+ { 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1005000, 784 },
|
||||
+ { 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1020000, 808 },
|
||||
+ { 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1035000, 831 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-krait.c b/arch/arm/mach-msm/acpuclock-krait.c
|
||||
index 2211ad3..bcd3e44 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-krait.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-krait.c
|
||||
@@ -45,6 +45,113 @@
|
||||
#define PRI_SRC_SEL_HFPLL 1
|
||||
#define PRI_SRC_SEL_HFPLL_DIV2 2
|
||||
|
||||
+
|
||||
+/** elementalx defs **/
|
||||
+static int uv_bin = 2;
|
||||
+static uint32_t arg_max_oc0 = 2265600;
|
||||
+static uint32_t arg_max_oc1 = 2265600;
|
||||
+static uint32_t arg_max_oc2 = 2265600;
|
||||
+static uint32_t arg_max_oc3 = 2265600;
|
||||
+
|
||||
+int pvs_number = 0;
|
||||
+module_param(pvs_number, int, 0755);
|
||||
+
|
||||
+/* boot arg max_oc */
|
||||
+static int __init cpufreq_read_arg_max_oc0(char *max_oc0)
|
||||
+{
|
||||
+ unsigned long ui_khz;
|
||||
+ int err;
|
||||
+ err = strict_strtoul(max_oc0, 0, &ui_khz);
|
||||
+ if (err) {
|
||||
+ arg_max_oc0 = 2265600;
|
||||
+ printk(KERN_INFO "[elementalx]: max_oc0='%i'\n", arg_max_oc0);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ arg_max_oc0 = ui_khz;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+__setup("max_oc0=", cpufreq_read_arg_max_oc0);
|
||||
+
|
||||
+static int __init cpufreq_read_arg_max_oc1(char *max_oc1)
|
||||
+{
|
||||
+ unsigned long ui_khz;
|
||||
+ int err;
|
||||
+ err = strict_strtoul(max_oc1, 0, &ui_khz);
|
||||
+ if (err) {
|
||||
+ arg_max_oc1 = 2265600;
|
||||
+ printk(KERN_INFO "[elementalx]: max_oc1='%i'\n", arg_max_oc1);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ arg_max_oc1 = ui_khz;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+__setup("max_oc1=", cpufreq_read_arg_max_oc1);
|
||||
+
|
||||
+static int __init cpufreq_read_arg_max_oc2(char *max_oc2)
|
||||
+{
|
||||
+ unsigned long ui_khz;
|
||||
+ int err;
|
||||
+ err = strict_strtoul(max_oc2, 0, &ui_khz);
|
||||
+ if (err) {
|
||||
+ arg_max_oc2 = 2265600;
|
||||
+ printk(KERN_INFO "[elementalx]: max_oc2='%i'\n", arg_max_oc2);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ arg_max_oc2 = ui_khz;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+__setup("max_oc2=", cpufreq_read_arg_max_oc2);
|
||||
+
|
||||
+static int __init cpufreq_read_arg_max_oc3(char *max_oc3)
|
||||
+{
|
||||
+ unsigned long ui_khz;
|
||||
+ int err;
|
||||
+ err = strict_strtoul(max_oc3, 0, &ui_khz);
|
||||
+ if (err) {
|
||||
+ arg_max_oc3 = 2265600;
|
||||
+ printk(KERN_INFO "[elementalx]: max_oc3='%i'\n", arg_max_oc3);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ arg_max_oc3 = ui_khz;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+__setup("max_oc3=", cpufreq_read_arg_max_oc3);
|
||||
+
|
||||
+static int __init get_uv_level(char *vdd_uv)
|
||||
+{
|
||||
+ if (strcmp(vdd_uv, "0") == 0) {
|
||||
+ uv_bin = 0;
|
||||
+ } else if (strcmp(vdd_uv, "1") == 0) {
|
||||
+ uv_bin = 1;
|
||||
+ } else if (strcmp(vdd_uv, "2") == 0) {
|
||||
+ uv_bin = 2;
|
||||
+ } else if (strcmp(vdd_uv, "3") == 0) {
|
||||
+ uv_bin = 3;
|
||||
+ } else if (strcmp(vdd_uv, "4") == 0) {
|
||||
+ uv_bin = 4;
|
||||
+ } else if (strcmp(vdd_uv, "5") == 0) {
|
||||
+ uv_bin = 5;
|
||||
+ } else if (strcmp(vdd_uv, "6") == 0) {
|
||||
+ uv_bin = 6;
|
||||
+ } else {
|
||||
+ uv_bin = 0;
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+__setup("vdd_uv=", get_uv_level);
|
||||
+
|
||||
+/** end elementalx defs **/
|
||||
+
|
||||
+
|
||||
static DEFINE_MUTEX(driver_lock);
|
||||
static DEFINE_SPINLOCK(l2_lock);
|
||||
|
||||
@@ -992,13 +1099,14 @@ static void __init cpufreq_table_init(void)
|
||||
{
|
||||
int cpu;
|
||||
int freq_cnt = 0;
|
||||
+ uint32_t limit_max_oc[4] = {arg_max_oc0, arg_max_oc1, arg_max_oc2, arg_max_oc3};
|
||||
|
||||
for_each_possible_cpu(cpu) {
|
||||
int i;
|
||||
/* Construct the freq_table tables from acpu_freq_tbl. */
|
||||
for (i = 0, freq_cnt = 0; drv.acpu_freq_tbl[i].speed.khz != 0
|
||||
&& freq_cnt < ARRAY_SIZE(*freq_table); i++) {
|
||||
- if (drv.acpu_freq_tbl[i].use_for_scaling) {
|
||||
+ if (drv.acpu_freq_tbl[i].speed.khz <= limit_max_oc[cpu]) {
|
||||
freq_table[cpu][freq_cnt].index = freq_cnt;
|
||||
freq_table[cpu][freq_cnt].frequency
|
||||
= drv.acpu_freq_tbl[i].speed.khz;
|
||||
@@ -1109,6 +1217,39 @@ static void __init krait_apply_vmin(struct acpu_level *tbl)
|
||||
}
|
||||
}
|
||||
|
||||
+static void apply_undervolting(void)
|
||||
+{
|
||||
+ if (uv_bin == 6) {
|
||||
+ drv.acpu_freq_tbl[0].vdd_core = 625000;
|
||||
+ printk(KERN_INFO "[elementalx]: min_voltage='%i'\n", drv.acpu_freq_tbl[0].vdd_core );
|
||||
+ }
|
||||
+
|
||||
+ if (uv_bin == 5) {
|
||||
+ drv.acpu_freq_tbl[0].vdd_core = 650000;
|
||||
+ printk(KERN_INFO "[elementalx]: min_voltage='%i'\n", drv.acpu_freq_tbl[0].vdd_core );
|
||||
+ }
|
||||
+
|
||||
+ if (uv_bin == 4) {
|
||||
+ drv.acpu_freq_tbl[0].vdd_core = 675000;
|
||||
+ printk(KERN_INFO "[elementalx]: min_voltage='%i'\n", drv.acpu_freq_tbl[0].vdd_core );
|
||||
+ }
|
||||
+
|
||||
+ if (uv_bin == 3) {
|
||||
+ drv.acpu_freq_tbl[0].vdd_core = 700000;
|
||||
+ printk(KERN_INFO "[elementalx]: min_voltage='%i'\n", drv.acpu_freq_tbl[0].vdd_core );
|
||||
+ }
|
||||
+
|
||||
+ if (uv_bin == 2) {
|
||||
+ drv.acpu_freq_tbl[0].vdd_core = 725000;
|
||||
+ printk(KERN_INFO "[elementalx]: min_voltage='%i'\n", drv.acpu_freq_tbl[0].vdd_core );
|
||||
+ }
|
||||
+
|
||||
+ if (uv_bin == 1) {
|
||||
+ drv.acpu_freq_tbl[0].vdd_core = 750000;
|
||||
+ printk(KERN_INFO "[elementalx]: min_voltage='%i'\n", drv.acpu_freq_tbl[0].vdd_core );
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
void __init get_krait_bin_format_a(void __iomem *base, struct bin_info *bin)
|
||||
{
|
||||
u32 pte_efuse = readl_relaxed(base);
|
||||
@@ -1143,6 +1284,8 @@ void __init get_krait_bin_format_b(void __iomem *base, struct bin_info *bin)
|
||||
}
|
||||
bin->speed_valid = true;
|
||||
|
||||
+ pvs_number = bin->pvs;
|
||||
+
|
||||
/* Check PVS_BLOW_STATUS */
|
||||
pte_efuse = readl_relaxed(base + 0x4);
|
||||
bin->pvs_valid = !!(pte_efuse & BIT(21));
|
||||
@@ -1229,6 +1372,9 @@ static void __init hw_init(void)
|
||||
if (krait_needs_vmin())
|
||||
krait_apply_vmin(drv.acpu_freq_tbl);
|
||||
|
||||
+ if (uv_bin)
|
||||
+ apply_undervolting();
|
||||
+
|
||||
l2->hfpll_base = ioremap(l2->hfpll_phys_base, SZ_32);
|
||||
BUG_ON(!l2->hfpll_base);
|
||||
|
||||
--
|
||||
2.9.3
|
||||
|
||||
|
||||
From cbc2f6c8893c773d4dbdf9d5f538f6b44a02baa4 Mon Sep 17 00:00:00 2001
|
||||
From: flar2 <asegaert@gmail.com>
|
||||
Date: Sat, 9 Nov 2013 08:43:31 -0500
|
||||
Subject: [PATCH 4/5] L2 cache and bus bandwidth overclocking
|
||||
|
||||
Signed-off-by: flar2 <asegaert@gmail.com>
|
||||
---
|
||||
arch/arm/mach-msm/acpuclock-8974.c | 46 +++++++++++++++++++++++++++++++++++++
|
||||
arch/arm/mach-msm/acpuclock-krait.c | 2 +-
|
||||
2 files changed, 47 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-8974.c b/arch/arm/mach-msm/acpuclock-8974.c
|
||||
index cb878d9..933bd0e 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-8974.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-8974.c
|
||||
@@ -28,6 +28,8 @@
|
||||
#define LVL_NOM RPM_REGULATOR_CORNER_NORMAL
|
||||
#define LVL_HIGH RPM_REGULATOR_CORNER_SUPER_TURBO
|
||||
|
||||
+static int opt_bin = 0;
|
||||
+
|
||||
static struct hfpll_data hfpll_data __initdata = {
|
||||
.mode_offset = 0x00,
|
||||
.l_offset = 0x04,
|
||||
@@ -257,6 +259,7 @@ static struct msm_bus_paths bw_level_tbl_v2[] __initdata = {
|
||||
[6] = BW_MBPS(4912), /* At least 614 MHz on bus. */
|
||||
[7] = BW_MBPS(6400), /* At least 800 MHz on bus. */
|
||||
[8] = BW_MBPS(7448), /* At least 931 MHz on bus. */
|
||||
+ [9] = BW_MBPS(8000), /* At least 1000 MHz on bus. */
|
||||
};
|
||||
|
||||
static struct l2_level l2_freq_tbl_v2[] __initdata = {
|
||||
@@ -283,6 +286,30 @@ static struct l2_level l2_freq_tbl_v2[] __initdata = {
|
||||
{ }
|
||||
};
|
||||
|
||||
+static struct l2_level l2_freq_tbl_v2_elementalx[] __initdata = {
|
||||
+ [0] = { { 300000, PLL_0, 0, 0 }, LVL_LOW, 950000, 0 },
|
||||
+ [1] = { { 345600, HFPLL, 2, 36 }, LVL_LOW, 950000, 1 },
|
||||
+ [2] = { { 422400, HFPLL, 2, 44 }, LVL_LOW, 950000, 2 },
|
||||
+ [3] = { { 499200, HFPLL, 2, 52 }, LVL_LOW, 950000, 3 },
|
||||
+ [4] = { { 576000, HFPLL, 1, 30 }, LVL_LOW, 950000, 4 },
|
||||
+ [5] = { { 652800, HFPLL, 1, 34 }, LVL_NOM, 950000, 4 },
|
||||
+ [6] = { { 729600, HFPLL, 1, 38 }, LVL_NOM, 950000, 4 },
|
||||
+ [7] = { { 806400, HFPLL, 1, 42 }, LVL_NOM, 950000, 4 },
|
||||
+ [8] = { { 883200, HFPLL, 1, 46 }, LVL_NOM, 950000, 5 },
|
||||
+ [9] = { { 960000, HFPLL, 1, 50 }, LVL_NOM, 950000, 5 },
|
||||
+ [10] = { { 1036800, HFPLL, 1, 54 }, LVL_NOM, 950000, 5 },
|
||||
+ [11] = { { 1113600, HFPLL, 1, 58 }, LVL_HIGH, 1050000, 6 },
|
||||
+ [12] = { { 1190400, HFPLL, 1, 62 }, LVL_HIGH, 1050000, 6 },
|
||||
+ [13] = { { 1267200, HFPLL, 1, 66 }, LVL_HIGH, 1050000, 6 },
|
||||
+ [14] = { { 1344000, HFPLL, 1, 70 }, LVL_HIGH, 1050000, 6 },
|
||||
+ [15] = { { 1420800, HFPLL, 1, 74 }, LVL_HIGH, 1050000, 6 },
|
||||
+ [16] = { { 1497600, HFPLL, 1, 78 }, LVL_HIGH, 1050000, 6 },
|
||||
+ [17] = { { 1574400, HFPLL, 1, 82 }, LVL_HIGH, 1050000, 7 },
|
||||
+ [18] = { { 1651200, HFPLL, 1, 86 }, LVL_HIGH, 1050000, 7 },
|
||||
+ [19] = { { 1804800, HFPLL, 1, 94 }, LVL_HIGH, 1050000, 9 },
|
||||
+ { }
|
||||
+};
|
||||
+
|
||||
static struct acpu_level acpu_freq_tbl_2g_pvs0[] __initdata = {
|
||||
{ 1, { 300000, PLL_0, 0, 0 }, L2(0), 815000, 73 },
|
||||
{ 0, { 345600, HFPLL, 2, 36 }, L2(1), 825000, 85 },
|
||||
@@ -1003,6 +1030,20 @@ static struct acpuclk_krait_params acpuclk_8974_params __initdata = {
|
||||
.stby_khz = 300000,
|
||||
};
|
||||
|
||||
+static int __init get_opt_level(char *l2_opt)
|
||||
+{
|
||||
+ if (strcmp(l2_opt, "0") == 0) {
|
||||
+ opt_bin = 0;
|
||||
+ } else if (strcmp(l2_opt, "1") == 0) {
|
||||
+ opt_bin = 1;
|
||||
+ } else {
|
||||
+ opt_bin = 0;
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+__setup("l2_opt=", get_opt_level);
|
||||
+
|
||||
static void __init apply_v1_l2_workaround(void)
|
||||
{
|
||||
static struct l2_level resticted_l2_tbl[] __initdata = {
|
||||
@@ -1042,6 +1083,11 @@ static int __init acpuclk_8974_probe(struct platform_device *pdev)
|
||||
apply_v1_l2_workaround();
|
||||
}
|
||||
|
||||
+ if (opt_bin == 1) {
|
||||
+ acpuclk_8974_params.l2_freq_tbl = l2_freq_tbl_v2_elementalx;
|
||||
+ acpuclk_8974_params.l2_freq_tbl_size = sizeof(l2_freq_tbl_v2_elementalx);
|
||||
+ }
|
||||
+
|
||||
return acpuclk_krait_init(&pdev->dev, &acpuclk_8974_params);
|
||||
}
|
||||
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-krait.c b/arch/arm/mach-msm/acpuclock-krait.c
|
||||
index bcd3e44..a1c8fbb 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-krait.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-krait.c
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
|
||||
/** elementalx defs **/
|
||||
-static int uv_bin = 2;
|
||||
+static int uv_bin = 0;
|
||||
static uint32_t arg_max_oc0 = 2265600;
|
||||
static uint32_t arg_max_oc1 = 2265600;
|
||||
static uint32_t arg_max_oc2 = 2265600;
|
||||
--
|
||||
2.9.3
|
||||
|
||||
|
||||
From bfd08d2e2a997ac4f5b6e8353be663472643b746 Mon Sep 17 00:00:00 2001
|
||||
From: flar2 <asegaert@gmail.com>
|
||||
Date: Mon, 11 Nov 2013 00:42:12 -0500
|
||||
Subject: [PATCH 5/5] More overclocking options
|
||||
|
||||
Signed-off-by: flar2 <asegaert@gmail.com>
|
||||
---
|
||||
arch/arm/mach-msm/acpuclock-8974.c | 50 ++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 50 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-8974.c b/arch/arm/mach-msm/acpuclock-8974.c
|
||||
index 933bd0e..b436816 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-8974.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-8974.c
|
||||
@@ -310,6 +310,29 @@ static struct l2_level l2_freq_tbl_v2_elementalx[] __initdata = {
|
||||
{ }
|
||||
};
|
||||
|
||||
+static struct l2_level l2_freq_tbl_v2_ultra[] __initdata = {
|
||||
+ [0] = { { 300000, PLL_0, 0, 0 }, LVL_LOW, 950000, 0 },
|
||||
+ [1] = { { 345600, HFPLL, 2, 36 }, LVL_LOW, 950000, 1 },
|
||||
+ [2] = { { 422400, HFPLL, 2, 44 }, LVL_LOW, 950000, 2 },
|
||||
+ [3] = { { 499200, HFPLL, 2, 52 }, LVL_LOW, 950000, 3 },
|
||||
+ [4] = { { 576000, HFPLL, 1, 30 }, LVL_LOW, 950000, 4 },
|
||||
+ [5] = { { 652800, HFPLL, 1, 34 }, LVL_NOM, 950000, 4 },
|
||||
+ [6] = { { 729600, HFPLL, 1, 38 }, LVL_NOM, 950000, 4 },
|
||||
+ [7] = { { 806400, HFPLL, 1, 42 }, LVL_NOM, 950000, 4 },
|
||||
+ [8] = { { 883200, HFPLL, 1, 46 }, LVL_NOM, 950000, 5 },
|
||||
+ [9] = { { 960000, HFPLL, 1, 50 }, LVL_NOM, 950000, 5 },
|
||||
+ [10] = { { 1036800, HFPLL, 1, 54 }, LVL_NOM, 950000, 5 },
|
||||
+ [11] = { { 1113600, HFPLL, 1, 58 }, LVL_HIGH, 1050000, 6 },
|
||||
+ [12] = { { 1190400, HFPLL, 1, 62 }, LVL_HIGH, 1050000, 6 },
|
||||
+ [13] = { { 1267200, HFPLL, 1, 66 }, LVL_HIGH, 1050000, 6 },
|
||||
+ [14] = { { 1344000, HFPLL, 1, 70 }, LVL_HIGH, 1050000, 6 },
|
||||
+ [15] = { { 1420800, HFPLL, 1, 74 }, LVL_HIGH, 1050000, 6 },
|
||||
+ [16] = { { 1497600, HFPLL, 1, 78 }, LVL_HIGH, 1050000, 6 },
|
||||
+ [17] = { { 1574400, HFPLL, 1, 82 }, LVL_HIGH, 1050000, 7 },
|
||||
+ [18] = { { 1651200, HFPLL, 1, 86 }, LVL_HIGH, 1050000, 7 },
|
||||
+ [19] = { { 1920000, HFPLL, 1, 100 }, LVL_HIGH, 1050000, 9 },
|
||||
+ { }
|
||||
+};
|
||||
static struct acpu_level acpu_freq_tbl_2g_pvs0[] __initdata = {
|
||||
{ 1, { 300000, PLL_0, 0, 0 }, L2(0), 815000, 73 },
|
||||
{ 0, { 345600, HFPLL, 2, 36 }, L2(1), 825000, 85 },
|
||||
@@ -743,6 +766,9 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs0[] __initdata = {
|
||||
{ 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1160000, 784 },
|
||||
{ 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1175000, 808 },
|
||||
{ 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1195000, 831 },
|
||||
+ { 1, { 2803200, HFPLL, 1, 146 }, L2(19), 1195000, 854 },
|
||||
+ { 1, { 2880000, HFPLL, 1, 150 }, L2(19), 1195000, 876 },
|
||||
+ { 1, { 2956800, HFPLL, 1, 154 }, L2(19), 1195000, 897 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
@@ -780,6 +806,9 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs1[] __initdata = {
|
||||
{ 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1135000, 784 },
|
||||
{ 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1150000, 808 },
|
||||
{ 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1165000, 831 },
|
||||
+ { 1, { 2803200, HFPLL, 1, 146 }, L2(19), 1180000, 854 },
|
||||
+ { 1, { 2880000, HFPLL, 1, 150 }, L2(19), 1195000, 876 },
|
||||
+ { 1, { 2956800, HFPLL, 1, 154 }, L2(19), 1195000, 897 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
@@ -817,6 +846,9 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs2[] __initdata = {
|
||||
{ 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1110000, 784 },
|
||||
{ 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1125000, 808 },
|
||||
{ 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1140000, 831 },
|
||||
+ { 1, { 2803200, HFPLL, 1, 146 }, L2(19), 1165000, 854 },
|
||||
+ { 1, { 2880000, HFPLL, 1, 150 }, L2(19), 1180000, 876 },
|
||||
+ { 1, { 2956800, HFPLL, 1, 154 }, L2(19), 1195000, 897 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
@@ -854,6 +886,9 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs3[] __initdata = {
|
||||
{ 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1085000, 784 },
|
||||
{ 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1100000, 808 },
|
||||
{ 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1115000, 831 },
|
||||
+ { 1, { 2803200, HFPLL, 1, 146 }, L2(19), 1130000, 854 },
|
||||
+ { 1, { 2880000, HFPLL, 1, 150 }, L2(19), 1145000, 876 },
|
||||
+ { 1, { 2956800, HFPLL, 1, 154 }, L2(19), 1160000, 897 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
@@ -891,6 +926,9 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs4[] __initdata = {
|
||||
{ 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1060000, 784 },
|
||||
{ 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1075000, 808 },
|
||||
{ 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1090000, 831 },
|
||||
+ { 1, { 2803200, HFPLL, 1, 146 }, L2(19), 1105000, 854 },
|
||||
+ { 1, { 2880000, HFPLL, 1, 150 }, L2(19), 1120000, 876 },
|
||||
+ { 1, { 2956800, HFPLL, 1, 154 }, L2(19), 1135000, 897 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
@@ -928,6 +966,9 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs5[] __initdata = {
|
||||
{ 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1035000, 784 },
|
||||
{ 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1050000, 808 },
|
||||
{ 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1065000, 831 },
|
||||
+ { 1, { 2803200, HFPLL, 1, 146 }, L2(19), 1080000, 854 },
|
||||
+ { 1, { 2880000, HFPLL, 1, 150 }, L2(19), 1095000, 876 },
|
||||
+ { 1, { 2956800, HFPLL, 1, 154 }, L2(19), 1110000, 897 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
@@ -965,6 +1006,9 @@ static struct acpu_level acpu_freq_tbl_2p3g_pvs6[] __initdata = {
|
||||
{ 1, { 2572800, HFPLL, 1, 134 }, L2(19), 1005000, 784 },
|
||||
{ 1, { 2649600, HFPLL, 1, 138 }, L2(19), 1020000, 808 },
|
||||
{ 1, { 2726400, HFPLL, 1, 142 }, L2(19), 1035000, 831 },
|
||||
+ { 1, { 2803200, HFPLL, 1, 146 }, L2(19), 1050000, 854 },
|
||||
+ { 1, { 2880000, HFPLL, 1, 150 }, L2(19), 1065000, 876 },
|
||||
+ { 1, { 2956800, HFPLL, 1, 154 }, L2(19), 1080000, 897 },
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
@@ -1036,6 +1080,8 @@ static int __init get_opt_level(char *l2_opt)
|
||||
opt_bin = 0;
|
||||
} else if (strcmp(l2_opt, "1") == 0) {
|
||||
opt_bin = 1;
|
||||
+ } else if (strcmp(l2_opt, "2") == 0) {
|
||||
+ opt_bin = 2;
|
||||
} else {
|
||||
opt_bin = 0;
|
||||
}
|
||||
@@ -1087,6 +1133,10 @@ static int __init acpuclk_8974_probe(struct platform_device *pdev)
|
||||
acpuclk_8974_params.l2_freq_tbl = l2_freq_tbl_v2_elementalx;
|
||||
acpuclk_8974_params.l2_freq_tbl_size = sizeof(l2_freq_tbl_v2_elementalx);
|
||||
}
|
||||
+ if (opt_bin == 2) {
|
||||
+ acpuclk_8974_params.l2_freq_tbl = l2_freq_tbl_v2_ultra;
|
||||
+ acpuclk_8974_params.l2_freq_tbl_size = sizeof(l2_freq_tbl_v2_ultra);
|
||||
+ }
|
||||
|
||||
return acpuclk_krait_init(&pdev->dev, &acpuclk_8974_params);
|
||||
}
|
||||
--
|
||||
2.9.3
|
||||
|
@ -0,0 +1,609 @@
|
||||
From 92d396b53cbdf91a7b61a857ca335f39cdb0f8bb Mon Sep 17 00:00:00 2001
|
||||
From: anarkia1976 <stefano.villa1976@gmail.com>
|
||||
Date: Sun, 12 Jan 2014 20:26:27 +0100
|
||||
Subject: [PATCH 1/4] msm: cpu: overclock: added low (162Mhz) and high
|
||||
(1944Mhz) cpu
|
||||
|
||||
---
|
||||
arch/arm/mach-msm/Kconfig | 12 +++++
|
||||
arch/arm/mach-msm/acpuclock-8064.c | 91 +++++++++++++++++++++++++++++++++++++
|
||||
arch/arm/mach-msm/acpuclock-krait.c | 8 +++-
|
||||
arch/arm/mach-msm/msm_dcvs.c | 5 ++
|
||||
4 files changed, 115 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
|
||||
index 5f37d1d..b5ab505 100644
|
||||
--- a/arch/arm/mach-msm/Kconfig
|
||||
+++ b/arch/arm/mach-msm/Kconfig
|
||||
@@ -1634,6 +1634,18 @@ config MSM_CPU_FREQ_MIN
|
||||
|
||||
endif # CPU_FREQ_MSM
|
||||
|
||||
+config LOW_CPUCLOCKS
|
||||
+ bool "Enable ultra low CPU clocks"
|
||||
+ default n
|
||||
+ help
|
||||
+ Ultra low cpu frequencies enabled for CPU and L2 Cache
|
||||
+
|
||||
+config CPU_OVERCLOCK
|
||||
+ bool "Enable CPU Overclocking option"
|
||||
+ default n
|
||||
+ help
|
||||
+ Krait overclocking up to 1.9 GHz
|
||||
+
|
||||
config MSM_AVS_HW
|
||||
bool "Enable Adaptive Voltage Scaling (AVS)"
|
||||
default n
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-8064.c b/arch/arm/mach-msm/acpuclock-8064.c
|
||||
index 8262946..f40edd3 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-8064.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-8064.c
|
||||
@@ -47,7 +47,11 @@ static struct scalable scalable[] __initdata = {
|
||||
.aux_clk_sel = 3,
|
||||
.sec_clk_sel = 2,
|
||||
.l2cpmr_iaddr = 0x4501,
|
||||
+#ifdef CONFIG_CPU_OVERCLOCK
|
||||
+ .vreg[VREG_CORE] = { "krait0", 1450000 },
|
||||
+#else
|
||||
.vreg[VREG_CORE] = { "krait0", 1300000 },
|
||||
+#endif
|
||||
.vreg[VREG_MEM] = { "krait0_mem", 1150000 },
|
||||
.vreg[VREG_DIG] = { "krait0_dig", 1150000 },
|
||||
.vreg[VREG_HFPLL_A] = { "krait0_hfpll", 1800000 },
|
||||
@@ -58,7 +62,11 @@ static struct scalable scalable[] __initdata = {
|
||||
.aux_clk_sel = 3,
|
||||
.sec_clk_sel = 2,
|
||||
.l2cpmr_iaddr = 0x5501,
|
||||
+#ifdef CONFIG_CPU_OVERCLOCK
|
||||
+ .vreg[VREG_CORE] = { "krait1", 1450000 },
|
||||
+#else
|
||||
.vreg[VREG_CORE] = { "krait1", 1300000 },
|
||||
+#endif
|
||||
.vreg[VREG_MEM] = { "krait1_mem", 1150000 },
|
||||
.vreg[VREG_DIG] = { "krait1_dig", 1150000 },
|
||||
.vreg[VREG_HFPLL_A] = { "krait1_hfpll", 1800000 },
|
||||
@@ -69,7 +77,11 @@ static struct scalable scalable[] __initdata = {
|
||||
.aux_clk_sel = 3,
|
||||
.sec_clk_sel = 2,
|
||||
.l2cpmr_iaddr = 0x6501,
|
||||
+#ifdef CONFIG_CPU_OVERCLOCK
|
||||
+ .vreg[VREG_CORE] = { "krait2", 1450000 },
|
||||
+#else
|
||||
.vreg[VREG_CORE] = { "krait2", 1300000 },
|
||||
+#endif
|
||||
.vreg[VREG_MEM] = { "krait2_mem", 1150000 },
|
||||
.vreg[VREG_DIG] = { "krait2_dig", 1150000 },
|
||||
.vreg[VREG_HFPLL_A] = { "krait2_hfpll", 1800000 },
|
||||
@@ -80,7 +92,11 @@ static struct scalable scalable[] __initdata = {
|
||||
.aux_clk_sel = 3,
|
||||
.sec_clk_sel = 2,
|
||||
.l2cpmr_iaddr = 0x7501,
|
||||
+#ifdef CONFIG_CPU_OVERCLOCK
|
||||
+ .vreg[VREG_CORE] = { "krait3", 1450000 },
|
||||
+#else
|
||||
.vreg[VREG_CORE] = { "krait3", 1300000 },
|
||||
+#endif
|
||||
.vreg[VREG_MEM] = { "krait3_mem", 1150000 },
|
||||
.vreg[VREG_DIG] = { "krait3_dig", 1150000 },
|
||||
.vreg[VREG_HFPLL_A] = { "krait3_hfpll", 1800000 },
|
||||
@@ -116,6 +132,24 @@ static struct msm_bus_scale_pdata bus_scale_data __initdata = {
|
||||
};
|
||||
|
||||
static struct l2_level l2_freq_tbl[] __initdata = {
|
||||
+#ifdef CONFIG_LOW_CPUCLOCKS
|
||||
+ [0] = { { 378000, HFPLL, 2, 0x1C }, 950000, 1050000, 1 },
|
||||
+ [1] = { { 384000, PLL_8, 0, 0x00 }, 950000, 1050000, 1 },
|
||||
+ [2] = { { 432000, HFPLL, 2, 0x20 }, 1050000, 1050000, 2 },
|
||||
+ [3] = { { 486000, HFPLL, 2, 0x24 }, 1050000, 1050000, 2 },
|
||||
+ [4] = { { 540000, HFPLL, 2, 0x28 }, 1050000, 1050000, 2 },
|
||||
+ [5] = { { 594000, HFPLL, 1, 0x16 }, 1050000, 1050000, 2 },
|
||||
+ [6] = { { 648000, HFPLL, 1, 0x18 }, 1050000, 1050000, 4 },
|
||||
+ [7] = { { 702000, HFPLL, 1, 0x1A }, 1150000, 1150000, 4 },
|
||||
+ [8] = { { 756000, HFPLL, 1, 0x1C }, 1150000, 1150000, 4 },
|
||||
+ [9] = { { 810000, HFPLL, 1, 0x1E }, 1150000, 1150000, 4 },
|
||||
+ [10] = { { 864000, HFPLL, 1, 0x20 }, 1150000, 1150000, 4 },
|
||||
+ [11] = { { 918000, HFPLL, 1, 0x22 }, 1150000, 1150000, 5 },
|
||||
+ [12] = { { 972000, HFPLL, 1, 0x24 }, 1150000, 1150000, 5 },
|
||||
+ [13] = { { 1026000, HFPLL, 1, 0x26 }, 1150000, 1150000, 5 },
|
||||
+ [14] = { { 1080000, HFPLL, 1, 0x28 }, 1150000, 1150000, 5 },
|
||||
+ [15] = { { 1134000, HFPLL, 1, 0x2A }, 1150000, 1150000, 5 },
|
||||
+#else
|
||||
[0] = { { 384000, PLL_8, 0, 0x00 }, 950000, 1050000, 1 },
|
||||
[1] = { { 432000, HFPLL, 2, 0x20 }, 1050000, 1050000, 2 },
|
||||
[2] = { { 486000, HFPLL, 2, 0x24 }, 1050000, 1050000, 2 },
|
||||
@@ -131,11 +165,19 @@ static struct l2_level l2_freq_tbl[] __initdata = {
|
||||
[12] = { { 1026000, HFPLL, 1, 0x26 }, 1150000, 1150000, 5 },
|
||||
[13] = { { 1080000, HFPLL, 1, 0x28 }, 1150000, 1150000, 5 },
|
||||
[14] = { { 1134000, HFPLL, 1, 0x2A }, 1150000, 1150000, 5 },
|
||||
+#endif
|
||||
{ }
|
||||
};
|
||||
|
||||
static struct acpu_level tbl_slow[] __initdata = {
|
||||
+#ifdef CONFIG_LOW_CPUCLOCKS
|
||||
+ { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 875000 },
|
||||
+ { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 900000 },
|
||||
+ //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 950000 },
|
||||
+ { 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 925000 },
|
||||
+#else
|
||||
{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 950000 },
|
||||
+#endif
|
||||
{ 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 975000 },
|
||||
{ 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 975000 },
|
||||
{ 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 1000000 },
|
||||
@@ -157,11 +199,25 @@ static struct acpu_level tbl_slow[] __initdata = {
|
||||
{ 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1237500 },
|
||||
{ 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1237500 },
|
||||
{ 1, { 1512000, HFPLL, 1, 0x38 }, L2(14), 1250000 },
|
||||
+#ifdef CONFIG_CPU_OVERCLOCK
|
||||
+ { 1, { 1620000, HFPLL, 1, 0x3C }, L2(15), 1300000 },
|
||||
+ { 1, { 1728000, HFPLL, 1, 0x40 }, L2(15), 1350000 },
|
||||
+ { 1, { 1836000, HFPLL, 1, 0x44 }, L2(15), 1400000 },
|
||||
+ { 1, { 1890000, HFPLL, 1, 0x45 }, L2(15), 1425000 },
|
||||
+ { 1, { 1944000, HFPLL, 1, 0x46 }, L2(15), 1450000 },
|
||||
+#endif
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
static struct acpu_level tbl_nom[] __initdata = {
|
||||
+#ifdef CONFIG_LOW_CPUCLOCKS
|
||||
+ { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 825000 },
|
||||
+ { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 850000 },
|
||||
+ //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 900000 },
|
||||
+ { 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 875000 },
|
||||
+#else
|
||||
{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 900000 },
|
||||
+#endif
|
||||
{ 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 925000 },
|
||||
{ 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 925000 },
|
||||
{ 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 950000 },
|
||||
@@ -183,11 +239,25 @@ static struct acpu_level tbl_nom[] __initdata = {
|
||||
{ 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1187500 },
|
||||
{ 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1187500 },
|
||||
{ 1, { 1512000, HFPLL, 1, 0x38 }, L2(14), 1200000 },
|
||||
+#ifdef CONFIG_CPU_OVERCLOCK
|
||||
+ { 1, { 1620000, HFPLL, 1, 0x3C }, L2(15), 1250000 },
|
||||
+ { 1, { 1728000, HFPLL, 1, 0x40 }, L2(15), 1300000 },
|
||||
+ { 1, { 1836000, HFPLL, 1, 0x44 }, L2(15), 1350000 },
|
||||
+ { 1, { 1890000, HFPLL, 1, 0x45 }, L2(15), 1375000 },
|
||||
+ { 1, { 1944000, HFPLL, 1, 0x46 }, L2(15), 1400000 },
|
||||
+#endif
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
static struct acpu_level tbl_fast[] __initdata = {
|
||||
+#ifdef CONFIG_LOW_CPUCLOCKS
|
||||
+ { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 775000 },
|
||||
+ { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 800000 },
|
||||
+ //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 850000 },
|
||||
+ { 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 825000 },
|
||||
+#else
|
||||
{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 850000 },
|
||||
+#endif
|
||||
{ 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 875000 },
|
||||
{ 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 },
|
||||
{ 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 900000 },
|
||||
@@ -209,11 +279,25 @@ static struct acpu_level tbl_fast[] __initdata = {
|
||||
{ 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1137500 },
|
||||
{ 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1137500 },
|
||||
{ 1, { 1512000, HFPLL, 1, 0x38 }, L2(14), 1150000 },
|
||||
+#ifdef CONFIG_CPU_OVERCLOCK
|
||||
+ { 1, { 1620000, HFPLL, 1, 0x3C }, L2(15), 1200000 },
|
||||
+ { 1, { 1728000, HFPLL, 1, 0x40 }, L2(15), 1250000 },
|
||||
+ { 1, { 1836000, HFPLL, 1, 0x44 }, L2(15), 1300000 },
|
||||
+ { 1, { 1890000, HFPLL, 1, 0x45 }, L2(15), 1325000 },
|
||||
+ { 1, { 1944000, HFPLL, 1, 0x46 }, L2(15), 1350000 },
|
||||
+#endif
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
static struct acpu_level tbl_faster[] __initdata = {
|
||||
+#ifdef CONFIG_LOW_CPUCLOCKS
|
||||
+ { 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 775000 },
|
||||
+ { 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 800000 },
|
||||
+ //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 850000 },
|
||||
+ { 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 825000 },
|
||||
+#else
|
||||
{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 850000 },
|
||||
+#endif
|
||||
{ 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 875000 },
|
||||
{ 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 },
|
||||
{ 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 900000 },
|
||||
@@ -235,6 +319,13 @@ static struct acpu_level tbl_faster[] __initdata = {
|
||||
{ 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1112500 },
|
||||
{ 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1112500 },
|
||||
{ 1, { 1512000, HFPLL, 1, 0x38 }, L2(14), 1125000 },
|
||||
+#ifdef CONFIG_CPU_OVERCLOCK
|
||||
+ { 1, { 1620000, HFPLL, 1, 0x3C }, L2(15), 1150000 },
|
||||
+ { 1, { 1728000, HFPLL, 1, 0x40 }, L2(15), 1200000 },
|
||||
+ { 1, { 1836000, HFPLL, 1, 0x44 }, L2(15), 1250000 },
|
||||
+ { 1, { 1890000, HFPLL, 1, 0x45 }, L2(15), 1275000 },
|
||||
+ { 1, { 1944000, HFPLL, 1, 0x46 }, L2(15), 1300000 },
|
||||
+#endif
|
||||
{ 0, { 0 } }
|
||||
};
|
||||
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-krait.c b/arch/arm/mach-msm/acpuclock-krait.c
|
||||
index e3a3f54..97f6f39 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-krait.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-krait.c
|
||||
@@ -45,6 +45,12 @@
|
||||
#define PRI_SRC_SEL_HFPLL 1
|
||||
#define PRI_SRC_SEL_HFPLL_DIV2 2
|
||||
|
||||
+#ifdef CONFIG_LOW_CPUCLOCKS
|
||||
+#define FREQ_TABLE_SIZE 39
|
||||
+#else
|
||||
+#define FREQ_TABLE_SIZE 35
|
||||
+#endif
|
||||
+
|
||||
static DEFINE_MUTEX(driver_lock);
|
||||
static DEFINE_SPINLOCK(l2_lock);
|
||||
|
||||
@@ -913,7 +919,7 @@ static void __init bus_init(const struct l2_level *l2_level)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_CPU_FREQ_MSM
|
||||
-static struct cpufreq_frequency_table freq_table[NR_CPUS][35];
|
||||
+static struct cpufreq_frequency_table freq_table[NR_CPUS][FREQ_TABLE_SIZE];
|
||||
|
||||
static void __init cpufreq_table_init(void)
|
||||
{
|
||||
diff --git a/arch/arm/mach-msm/msm_dcvs.c b/arch/arm/mach-msm/msm_dcvs.c
|
||||
index 1a919fc..1d5e289 100644
|
||||
--- a/arch/arm/mach-msm/msm_dcvs.c
|
||||
+++ b/arch/arm/mach-msm/msm_dcvs.c
|
||||
@@ -146,7 +146,12 @@ static struct dcvs_core core_list[CORES_MAX];
|
||||
|
||||
static struct kobject *cores_kobj;
|
||||
|
||||
+#ifdef CONFIG_CPU_OVERCLOCK
|
||||
+#define DCVS_MAX_NUM_FREQS 20
|
||||
+#else
|
||||
#define DCVS_MAX_NUM_FREQS 15
|
||||
+#endif
|
||||
+
|
||||
static struct msm_dcvs_freq_entry cpu_freq_tbl[DCVS_MAX_NUM_FREQS];
|
||||
static unsigned num_cpu_freqs;
|
||||
static struct msm_dcvs_platform_data *dcvs_pdata;
|
||||
--
|
||||
2.10.2
|
||||
|
||||
|
||||
From f498c327190b1a30c25010e0ba3600470fc9251b Mon Sep 17 00:00:00 2001
|
||||
From: anarkia1976 <stefano.villa1976@gmail.com>
|
||||
Date: Wed, 5 Feb 2014 07:15:12 +0100
|
||||
Subject: [PATCH 2/4] msm: cpu: overclock: added ultra low (81Mhz) cpu clock
|
||||
frequencies
|
||||
|
||||
---
|
||||
arch/arm/mach-msm/acpuclock-8064.c | 4 ++++
|
||||
arch/arm/mach-msm/acpuclock-krait.c | 2 +-
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-8064.c b/arch/arm/mach-msm/acpuclock-8064.c
|
||||
index f40edd3..ba8fe72 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-8064.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-8064.c
|
||||
@@ -171,6 +171,7 @@ static struct l2_level l2_freq_tbl[] __initdata = {
|
||||
|
||||
static struct acpu_level tbl_slow[] __initdata = {
|
||||
#ifdef CONFIG_LOW_CPUCLOCKS
|
||||
+ { 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 },
|
||||
{ 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 875000 },
|
||||
{ 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 900000 },
|
||||
//{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 950000 },
|
||||
@@ -211,6 +212,7 @@ static struct acpu_level tbl_slow[] __initdata = {
|
||||
|
||||
static struct acpu_level tbl_nom[] __initdata = {
|
||||
#ifdef CONFIG_LOW_CPUCLOCKS
|
||||
+ { 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 },
|
||||
{ 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 825000 },
|
||||
{ 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 850000 },
|
||||
//{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 900000 },
|
||||
@@ -251,6 +253,7 @@ static struct acpu_level tbl_nom[] __initdata = {
|
||||
|
||||
static struct acpu_level tbl_fast[] __initdata = {
|
||||
#ifdef CONFIG_LOW_CPUCLOCKS
|
||||
+ { 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 },
|
||||
{ 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 775000 },
|
||||
{ 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 800000 },
|
||||
//{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 850000 },
|
||||
@@ -291,6 +294,7 @@ static struct acpu_level tbl_fast[] __initdata = {
|
||||
|
||||
static struct acpu_level tbl_faster[] __initdata = {
|
||||
#ifdef CONFIG_LOW_CPUCLOCKS
|
||||
+ { 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 },
|
||||
{ 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 775000 },
|
||||
{ 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 800000 },
|
||||
//{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 850000 },
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-krait.c b/arch/arm/mach-msm/acpuclock-krait.c
|
||||
index 97f6f39..695b709 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-krait.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-krait.c
|
||||
@@ -46,7 +46,7 @@
|
||||
#define PRI_SRC_SEL_HFPLL_DIV2 2
|
||||
|
||||
#ifdef CONFIG_LOW_CPUCLOCKS
|
||||
-#define FREQ_TABLE_SIZE 39
|
||||
+#define FREQ_TABLE_SIZE 40
|
||||
#else
|
||||
#define FREQ_TABLE_SIZE 35
|
||||
#endif
|
||||
--
|
||||
2.10.2
|
||||
|
||||
|
||||
From 0eb77b9339850d3a7a9854197f2d02756270e5af Mon Sep 17 00:00:00 2001
|
||||
From: anarkia1976 <stefano.villa1976@gmail.com>
|
||||
Date: Sun, 12 Jan 2014 21:12:55 +0100
|
||||
Subject: [PATCH 3/4] ak_mako_defconfig: enable LOW_CPU and CPU_OVERCLOCK
|
||||
|
||||
---
|
||||
arch/arm/configs/cyanogen_mako_defconfig | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/configs/cyanogen_mako_defconfig b/arch/arm/configs/cyanogen_mako_defconfig
|
||||
index 316b320..1059cb6 100644
|
||||
--- a/arch/arm/configs/cyanogen_mako_defconfig
|
||||
+++ b/arch/arm/configs/cyanogen_mako_defconfig
|
||||
@@ -451,6 +451,8 @@ CONFIG_MSM_IPC_ROUTER_SMD_XPRT=y
|
||||
# CONFIG_MSM_IPC_ROUTER_SECURITY is not set
|
||||
# CONFIG_MSM_DALRPC is not set
|
||||
# CONFIG_MSM_CPU_FREQ_SET_MIN_MAX is not set
|
||||
+CONFIG_LOW_CPUCLOCKS=y
|
||||
+CONFIG_CPU_OVERCLOCK=y
|
||||
CONFIG_MSM_AVS_HW=y
|
||||
# CONFIG_MSM_HW3D is not set
|
||||
CONFIG_AMSS_7X25_VERSION_2009=y
|
||||
--
|
||||
2.10.2
|
||||
|
||||
|
||||
From cc891d49f60d6d0ad4d570c14711db9a568b49e5 Mon Sep 17 00:00:00 2001
|
||||
From: anarkia1976 <stefano.villa1976@gmail.com>
|
||||
Date: Wed, 5 Feb 2014 07:12:48 +0100
|
||||
Subject: [PATCH 4/4] msm: cpu: overclock: use higher bus speed at lower CPU
|
||||
freqs
|
||||
|
||||
Thanks to @bedalus and @mrg666
|
||||
|
||||
Bedalus suggested that if lower CPU frequencies can offer higher bus
|
||||
speed,
|
||||
GPU use during games wouldn't require higher CPU frequency.
|
||||
My testing demonstrated 4C drop in CPU temp during 3DMark benchmark.
|
||||
Still needs to be tested for everyday use.
|
||||
---
|
||||
arch/arm/mach-msm/acpuclock-8064.c | 172 +++++++++++++++++++------------------
|
||||
1 file changed, 88 insertions(+), 84 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-msm/acpuclock-8064.c b/arch/arm/mach-msm/acpuclock-8064.c
|
||||
index ba8fe72..611776e 100644
|
||||
--- a/arch/arm/mach-msm/acpuclock-8064.c
|
||||
+++ b/arch/arm/mach-msm/acpuclock-8064.c
|
||||
@@ -131,6 +131,14 @@ static struct msm_bus_scale_pdata bus_scale_data __initdata = {
|
||||
.name = "acpuclk-8064",
|
||||
};
|
||||
|
||||
+#ifdef CONFIG_LOW_CPUCLOCKS
|
||||
+#define L2_BW_MID 6
|
||||
+#define L2_BW_HIGH 15
|
||||
+#else
|
||||
+#define L2_BW_MID 5
|
||||
+#define L2_BW_HIGH 14
|
||||
+#endif
|
||||
+
|
||||
static struct l2_level l2_freq_tbl[] __initdata = {
|
||||
#ifdef CONFIG_LOW_CPUCLOCKS
|
||||
[0] = { { 378000, HFPLL, 2, 0x1C }, 950000, 1050000, 1 },
|
||||
@@ -174,32 +182,31 @@ static struct acpu_level tbl_slow[] __initdata = {
|
||||
{ 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 },
|
||||
{ 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 875000 },
|
||||
{ 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 900000 },
|
||||
- //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 950000 },
|
||||
{ 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 925000 },
|
||||
#else
|
||||
{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 950000 },
|
||||
#endif
|
||||
- { 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 975000 },
|
||||
- { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 975000 },
|
||||
- { 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 1000000 },
|
||||
- { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 1000000 },
|
||||
- { 0, { 648000, HFPLL, 1, 0x18 }, L2(5), 1025000 },
|
||||
- { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 1025000 },
|
||||
- { 0, { 756000, HFPLL, 1, 0x1C }, L2(5), 1075000 },
|
||||
- { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 1075000 },
|
||||
- { 0, { 864000, HFPLL, 1, 0x20 }, L2(5), 1100000 },
|
||||
- { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 1100000 },
|
||||
- { 0, { 972000, HFPLL, 1, 0x24 }, L2(5), 1125000 },
|
||||
- { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 1125000 },
|
||||
- { 0, { 1080000, HFPLL, 1, 0x28 }, L2(14), 1175000 },
|
||||
- { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 1175000 },
|
||||
- { 0, { 1188000, HFPLL, 1, 0x2C }, L2(14), 1200000 },
|
||||
- { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 1200000 },
|
||||
- { 0, { 1296000, HFPLL, 1, 0x30 }, L2(14), 1225000 },
|
||||
- { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 1225000 },
|
||||
- { 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1237500 },
|
||||
- { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1237500 },
|
||||
- { 1, { 1512000, HFPLL, 1, 0x38 }, L2(14), 1250000 },
|
||||
+ { 0, { 432000, HFPLL, 2, 0x20 }, L2(L2_BW_MID), 975000 },
|
||||
+ { 1, { 486000, HFPLL, 2, 0x24 }, L2(L2_BW_MID), 975000 },
|
||||
+ { 0, { 540000, HFPLL, 2, 0x28 }, L2(L2_BW_MID), 1000000 },
|
||||
+ { 1, { 594000, HFPLL, 1, 0x16 }, L2(L2_BW_MID), 1000000 },
|
||||
+ { 0, { 648000, HFPLL, 1, 0x18 }, L2(L2_BW_MID), 1025000 },
|
||||
+ { 1, { 702000, HFPLL, 1, 0x1A }, L2(L2_BW_HIGH), 1025000 },
|
||||
+ { 0, { 756000, HFPLL, 1, 0x1C }, L2(L2_BW_HIGH), 1075000 },
|
||||
+ { 1, { 810000, HFPLL, 1, 0x1E }, L2(L2_BW_HIGH), 1075000 },
|
||||
+ { 0, { 864000, HFPLL, 1, 0x20 }, L2(L2_BW_HIGH), 1100000 },
|
||||
+ { 1, { 918000, HFPLL, 1, 0x22 }, L2(L2_BW_HIGH), 1100000 },
|
||||
+ { 0, { 972000, HFPLL, 1, 0x24 }, L2(L2_BW_HIGH), 1125000 },
|
||||
+ { 1, { 1026000, HFPLL, 1, 0x26 }, L2(L2_BW_HIGH), 1125000 },
|
||||
+ { 0, { 1080000, HFPLL, 1, 0x28 }, L2(L2_BW_HIGH), 1175000 },
|
||||
+ { 1, { 1134000, HFPLL, 1, 0x2A }, L2(L2_BW_HIGH), 1175000 },
|
||||
+ { 0, { 1188000, HFPLL, 1, 0x2C }, L2(L2_BW_HIGH), 1200000 },
|
||||
+ { 1, { 1242000, HFPLL, 1, 0x2E }, L2(L2_BW_HIGH), 1200000 },
|
||||
+ { 0, { 1296000, HFPLL, 1, 0x30 }, L2(L2_BW_HIGH), 1225000 },
|
||||
+ { 1, { 1350000, HFPLL, 1, 0x32 }, L2(L2_BW_HIGH), 1225000 },
|
||||
+ { 0, { 1404000, HFPLL, 1, 0x34 }, L2(L2_BW_HIGH), 1237500 },
|
||||
+ { 1, { 1458000, HFPLL, 1, 0x36 }, L2(L2_BW_HIGH), 1237500 },
|
||||
+ { 1, { 1512000, HFPLL, 1, 0x38 }, L2(L2_BW_HIGH), 1250000 },
|
||||
#ifdef CONFIG_CPU_OVERCLOCK
|
||||
{ 1, { 1620000, HFPLL, 1, 0x3C }, L2(15), 1300000 },
|
||||
{ 1, { 1728000, HFPLL, 1, 0x40 }, L2(15), 1350000 },
|
||||
@@ -215,32 +222,31 @@ static struct acpu_level tbl_nom[] __initdata = {
|
||||
{ 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 },
|
||||
{ 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 825000 },
|
||||
{ 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 850000 },
|
||||
- //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 900000 },
|
||||
{ 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 875000 },
|
||||
#else
|
||||
{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 900000 },
|
||||
#endif
|
||||
- { 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 925000 },
|
||||
- { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 925000 },
|
||||
- { 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 950000 },
|
||||
- { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 950000 },
|
||||
- { 0, { 648000, HFPLL, 1, 0x18 }, L2(5), 975000 },
|
||||
- { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 975000 },
|
||||
- { 0, { 756000, HFPLL, 1, 0x1C }, L2(5), 1025000 },
|
||||
- { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 1025000 },
|
||||
- { 0, { 864000, HFPLL, 1, 0x20 }, L2(5), 1050000 },
|
||||
- { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 1050000 },
|
||||
- { 0, { 972000, HFPLL, 1, 0x24 }, L2(5), 1075000 },
|
||||
- { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 1075000 },
|
||||
- { 0, { 1080000, HFPLL, 1, 0x28 }, L2(14), 1125000 },
|
||||
- { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 1125000 },
|
||||
- { 0, { 1188000, HFPLL, 1, 0x2C }, L2(14), 1150000 },
|
||||
- { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 1150000 },
|
||||
- { 0, { 1296000, HFPLL, 1, 0x30 }, L2(14), 1175000 },
|
||||
- { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 1175000 },
|
||||
- { 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1187500 },
|
||||
- { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1187500 },
|
||||
- { 1, { 1512000, HFPLL, 1, 0x38 }, L2(14), 1200000 },
|
||||
+ { 0, { 432000, HFPLL, 2, 0x20 }, L2(L2_BW_MID), 925000 },
|
||||
+ { 1, { 486000, HFPLL, 2, 0x24 }, L2(L2_BW_MID), 925000 },
|
||||
+ { 0, { 540000, HFPLL, 2, 0x28 }, L2(L2_BW_MID), 950000 },
|
||||
+ { 1, { 594000, HFPLL, 1, 0x16 }, L2(L2_BW_MID), 950000 },
|
||||
+ { 0, { 648000, HFPLL, 1, 0x18 }, L2(L2_BW_MID), 975000 },
|
||||
+ { 1, { 702000, HFPLL, 1, 0x1A }, L2(L2_BW_HIGH), 975000 },
|
||||
+ { 0, { 756000, HFPLL, 1, 0x1C }, L2(L2_BW_HIGH), 1025000 },
|
||||
+ { 1, { 810000, HFPLL, 1, 0x1E }, L2(L2_BW_HIGH), 1025000 },
|
||||
+ { 0, { 864000, HFPLL, 1, 0x20 }, L2(L2_BW_HIGH), 1050000 },
|
||||
+ { 1, { 918000, HFPLL, 1, 0x22 }, L2(L2_BW_HIGH), 1050000 },
|
||||
+ { 0, { 972000, HFPLL, 1, 0x24 }, L2(L2_BW_HIGH), 1075000 },
|
||||
+ { 1, { 1026000, HFPLL, 1, 0x26 }, L2(L2_BW_HIGH), 1075000 },
|
||||
+ { 0, { 1080000, HFPLL, 1, 0x28 }, L2(L2_BW_HIGH), 1125000 },
|
||||
+ { 1, { 1134000, HFPLL, 1, 0x2A }, L2(L2_BW_HIGH), 1125000 },
|
||||
+ { 0, { 1188000, HFPLL, 1, 0x2C }, L2(L2_BW_HIGH), 1150000 },
|
||||
+ { 1, { 1242000, HFPLL, 1, 0x2E }, L2(L2_BW_HIGH), 1150000 },
|
||||
+ { 0, { 1296000, HFPLL, 1, 0x30 }, L2(L2_BW_HIGH), 1175000 },
|
||||
+ { 1, { 1350000, HFPLL, 1, 0x32 }, L2(L2_BW_HIGH), 1175000 },
|
||||
+ { 0, { 1404000, HFPLL, 1, 0x34 }, L2(L2_BW_HIGH), 1187500 },
|
||||
+ { 1, { 1458000, HFPLL, 1, 0x36 }, L2(L2_BW_HIGH), 1187500 },
|
||||
+ { 1, { 1512000, HFPLL, 1, 0x38 }, L2(L2_BW_HIGH), 1200000 },
|
||||
#ifdef CONFIG_CPU_OVERCLOCK
|
||||
{ 1, { 1620000, HFPLL, 1, 0x3C }, L2(15), 1250000 },
|
||||
{ 1, { 1728000, HFPLL, 1, 0x40 }, L2(15), 1300000 },
|
||||
@@ -256,32 +262,31 @@ static struct acpu_level tbl_fast[] __initdata = {
|
||||
{ 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 },
|
||||
{ 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 775000 },
|
||||
{ 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 800000 },
|
||||
- //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 850000 },
|
||||
{ 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 825000 },
|
||||
#else
|
||||
{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 850000 },
|
||||
#endif
|
||||
- { 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 875000 },
|
||||
- { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 },
|
||||
- { 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 900000 },
|
||||
- { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 900000 },
|
||||
- { 0, { 648000, HFPLL, 1, 0x18 }, L2(5), 925000 },
|
||||
- { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 925000 },
|
||||
- { 0, { 756000, HFPLL, 1, 0x1C }, L2(5), 975000 },
|
||||
- { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 975000 },
|
||||
- { 0, { 864000, HFPLL, 1, 0x20 }, L2(5), 1000000 },
|
||||
- { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 1000000 },
|
||||
- { 0, { 972000, HFPLL, 1, 0x24 }, L2(5), 1025000 },
|
||||
- { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 1025000 },
|
||||
- { 0, { 1080000, HFPLL, 1, 0x28 }, L2(14), 1075000 },
|
||||
- { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 1075000 },
|
||||
- { 0, { 1188000, HFPLL, 1, 0x2C }, L2(14), 1100000 },
|
||||
- { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 1100000 },
|
||||
- { 0, { 1296000, HFPLL, 1, 0x30 }, L2(14), 1125000 },
|
||||
- { 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 1125000 },
|
||||
- { 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1137500 },
|
||||
- { 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1137500 },
|
||||
- { 1, { 1512000, HFPLL, 1, 0x38 }, L2(14), 1150000 },
|
||||
+ { 0, { 432000, HFPLL, 2, 0x20 }, L2(L2_BW_MID), 875000 },
|
||||
+ { 1, { 486000, HFPLL, 2, 0x24 }, L2(L2_BW_MID), 875000 },
|
||||
+ { 0, { 540000, HFPLL, 2, 0x28 }, L2(L2_BW_MID), 900000 },
|
||||
+ { 1, { 594000, HFPLL, 1, 0x16 }, L2(L2_BW_MID), 900000 },
|
||||
+ { 0, { 648000, HFPLL, 1, 0x18 }, L2(L2_BW_MID), 925000 },
|
||||
+ { 1, { 702000, HFPLL, 1, 0x1A }, L2(L2_BW_HIGH), 925000 },
|
||||
+ { 0, { 756000, HFPLL, 1, 0x1C }, L2(L2_BW_HIGH), 975000 },
|
||||
+ { 1, { 810000, HFPLL, 1, 0x1E }, L2(L2_BW_HIGH), 975000 },
|
||||
+ { 0, { 864000, HFPLL, 1, 0x20 }, L2(L2_BW_HIGH), 1000000 },
|
||||
+ { 1, { 918000, HFPLL, 1, 0x22 }, L2(L2_BW_HIGH), 1000000 },
|
||||
+ { 0, { 972000, HFPLL, 1, 0x24 }, L2(L2_BW_HIGH), 1025000 },
|
||||
+ { 1, { 1026000, HFPLL, 1, 0x26 }, L2(L2_BW_HIGH), 1025000 },
|
||||
+ { 0, { 1080000, HFPLL, 1, 0x28 }, L2(L2_BW_HIGH), 1075000 },
|
||||
+ { 1, { 1134000, HFPLL, 1, 0x2A }, L2(L2_BW_HIGH), 1075000 },
|
||||
+ { 0, { 1188000, HFPLL, 1, 0x2C }, L2(L2_BW_HIGH), 1100000 },
|
||||
+ { 1, { 1242000, HFPLL, 1, 0x2E }, L2(L2_BW_HIGH), 1100000 },
|
||||
+ { 0, { 1296000, HFPLL, 1, 0x30 }, L2(L2_BW_HIGH), 1125000 },
|
||||
+ { 1, { 1350000, HFPLL, 1, 0x32 }, L2(L2_BW_HIGH), 1125000 },
|
||||
+ { 0, { 1404000, HFPLL, 1, 0x34 }, L2(L2_BW_HIGH), 1137500 },
|
||||
+ { 1, { 1458000, HFPLL, 1, 0x36 }, L2(L2_BW_HIGH), 1137500 },
|
||||
+ { 1, { 1512000, HFPLL, 1, 0x38 }, L2(L2_BW_HIGH), 1150000 },
|
||||
#ifdef CONFIG_CPU_OVERCLOCK
|
||||
{ 1, { 1620000, HFPLL, 1, 0x3C }, L2(15), 1200000 },
|
||||
{ 1, { 1728000, HFPLL, 1, 0x40 }, L2(15), 1250000 },
|
||||
@@ -297,28 +302,27 @@ static struct acpu_level tbl_faster[] __initdata = {
|
||||
{ 1, { 81000, HFPLL, 2, 0x06 }, L2(0), 750000 },
|
||||
{ 1, { 162000, HFPLL, 2, 0x0C }, L2(0), 775000 },
|
||||
{ 1, { 270000, HFPLL, 2, 0x14 }, L2(0), 800000 },
|
||||
- //{ 1, { 378000, HFPLL, 2, 0x1C }, L2(0), 850000 },
|
||||
{ 1, { 384000, PLL_8, 0, 0x00 }, L2(1), 825000 },
|
||||
#else
|
||||
{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 850000 },
|
||||
#endif
|
||||
- { 0, { 432000, HFPLL, 2, 0x20 }, L2(5), 875000 },
|
||||
- { 1, { 486000, HFPLL, 2, 0x24 }, L2(5), 875000 },
|
||||
- { 0, { 540000, HFPLL, 2, 0x28 }, L2(5), 900000 },
|
||||
- { 1, { 594000, HFPLL, 1, 0x16 }, L2(5), 900000 },
|
||||
- { 0, { 648000, HFPLL, 1, 0x18 }, L2(5), 925000 },
|
||||
- { 1, { 702000, HFPLL, 1, 0x1A }, L2(5), 925000 },
|
||||
- { 0, { 756000, HFPLL, 1, 0x1C }, L2(5), 962500 },
|
||||
- { 1, { 810000, HFPLL, 1, 0x1E }, L2(5), 962500 },
|
||||
- { 0, { 864000, HFPLL, 1, 0x20 }, L2(5), 975000 },
|
||||
- { 1, { 918000, HFPLL, 1, 0x22 }, L2(5), 975000 },
|
||||
- { 0, { 972000, HFPLL, 1, 0x24 }, L2(5), 1000000 },
|
||||
- { 1, { 1026000, HFPLL, 1, 0x26 }, L2(5), 1000000 },
|
||||
- { 0, { 1080000, HFPLL, 1, 0x28 }, L2(14), 1050000 },
|
||||
- { 1, { 1134000, HFPLL, 1, 0x2A }, L2(14), 1050000 },
|
||||
- { 0, { 1188000, HFPLL, 1, 0x2C }, L2(14), 1075000 },
|
||||
- { 1, { 1242000, HFPLL, 1, 0x2E }, L2(14), 1075000 },
|
||||
- { 0, { 1296000, HFPLL, 1, 0x30 }, L2(14), 1100000 },
|
||||
+ { 0, { 432000, HFPLL, 2, 0x20 }, L2(L2_BW_MID), 875000 },
|
||||
+ { 1, { 486000, HFPLL, 2, 0x24 }, L2(L2_BW_MID), 875000 },
|
||||
+ { 0, { 540000, HFPLL, 2, 0x28 }, L2(L2_BW_MID), 900000 },
|
||||
+ { 1, { 594000, HFPLL, 1, 0x16 }, L2(L2_BW_MID), 900000 },
|
||||
+ { 0, { 648000, HFPLL, 1, 0x18 }, L2(L2_BW_MID), 925000 },
|
||||
+ { 1, { 702000, HFPLL, 1, 0x1A }, L2(L2_BW_HIGH), 925000 },
|
||||
+ { 0, { 756000, HFPLL, 1, 0x1C }, L2(L2_BW_HIGH), 962500 },
|
||||
+ { 1, { 810000, HFPLL, 1, 0x1E }, L2(L2_BW_HIGH), 962500 },
|
||||
+ { 0, { 864000, HFPLL, 1, 0x20 }, L2(L2_BW_HIGH), 975000 },
|
||||
+ { 1, { 918000, HFPLL, 1, 0x22 }, L2(L2_BW_HIGH), 975000 },
|
||||
+ { 0, { 972000, HFPLL, 1, 0x24 }, L2(L2_BW_HIGH), 1000000 },
|
||||
+ { 1, { 1026000, HFPLL, 1, 0x26 }, L2(L2_BW_HIGH), 1000000 },
|
||||
+ { 0, { 1080000, HFPLL, 1, 0x28 }, L2(L2_BW_HIGH), 1050000 },
|
||||
+ { 1, { 1134000, HFPLL, 1, 0x2A }, L2(L2_BW_HIGH), 1050000 },
|
||||
+ { 0, { 1188000, HFPLL, 1, 0x2C }, L2(L2_BW_HIGH), 1075000 },
|
||||
+ { 1, { 1242000, HFPLL, 1, 0x2E }, L2(L2_BW_HIGH), 1075000 },
|
||||
+ { 0, { 1296000, HFPLL, 1, 0x30 }, L2(L2_BW_HIGH), 1100000 },
|
||||
{ 1, { 1350000, HFPLL, 1, 0x32 }, L2(14), 1100000 },
|
||||
{ 0, { 1404000, HFPLL, 1, 0x34 }, L2(14), 1112500 },
|
||||
{ 1, { 1458000, HFPLL, 1, 0x36 }, L2(14), 1112500 },
|
||||
--
|
||||
2.10.2
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user