Repository cleanup

This commit is contained in:
Tad 2017-05-31 18:51:32 -04:00
parent ee867dad1c
commit 1fe7864416
288 changed files with 0 additions and 953708 deletions

View File

@ -1,42 +0,0 @@
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

View File

@ -1,53 +0,0 @@
Last Updated: 08/11/2016
General changes
- Changed network connectivity check URL to personal server (with logging disabled on server)
- Compiled with UBERTC GCC 4.9 and AOSP NDK 4.9 using JustArchi's v4.1 optimization flags
- Compiled with OpenJDK 8
- Doze is significantly more aggressive
- Instant shutdown after 5 failed unlock attempts
- Fixed Profiles failing to change to user's prefered network type
- Miscellaneous hardening
- Removed Cyanogen AmbientSDK from various repos and packages
- Removed CyanogenMod analytics from various repos and packages
- Removed Gello from supported devices
- Removed unnecessary/outdated packages
- Replaced outdated AOSP webview with newer Chromium-based webview
- Browser
- Changed default home page to DuckDuckGo
- Changed default search engine to DuckDuckGo
- Link preloading is disabled by default
- Plugins are disabled by default
- Removed referrer flags from DuckDuckGo
- Removed RLZ tracking
- Search result preloading is disabled by default
- Camera2
- Location recording is disabled by default
- Settings
- NFC and NDEF are disabled by default
- Passwords are hidden by default
- Senisitive notification content is hidden by default
Device Changes
- bacon
- Kernel
- Overclocked from 2.45Ghz to 2.95Ghz
- No thats not a typo, its actually pretty stable
- Underclocked from 300Mhz to 268Mhz
- Device
- Basic performance/battery build.prop optimizations
- Removed bundled Google Widevine DRM and Microsoft PlayReady DRM firmware files
- Removed as many unnecessary proprietary Qualcomm blobs (CNE/DPM/Location/QTI)
- mako
- Device
- Enabled LTE support
- Increase speaker and microphone volume by 4dB
- Fixed dexopt related bootloop
To Do
- Implement ARMORED (TRESOR)
- Implement DNScrypt support
- Implement MAC address and hostname randomization
- Remove CMStats from Trebuchet, currently only disabled code still there
- Remove DRM server
- Remove RemoteFolder from Trebuchet
- Remove unnecessary proprietary blobs

View File

@ -1,48 +0,0 @@
Last Updated: 12/23/2016
Credits: CyanogenMod, CopperheadOS, OmniROM, TeamWin, F-Droid, MicroG, anarkia1976, bhb27, Daniel Micay, dirtyhank, Evisceration, Felipe de Leon, flar2, franciscofranco, hellsgod, mar-v-in, nikhil18, Paul Reioux, savoca, stefano.villa1976, WedyDQ10, XileForce
General Changes
- Added support for Chromium monochrome
- Builds are dex-preopted on supported devices
- Builds are signed with private release-keys
- Bundled in our custom DNS blocklist
- Compiled with OpenJDK 8
- Doze is re-enabled on devices without real Google Play Services
- Hardened IPv4 and IPv6 stacks
- Hardened special file systems
- Hardened SQLite
- Nuked CMAnalytics from orbit
- Removed unnecessary/outdated/insecure packages. Warning: No Browser is included, please install getChromium or IceCat from F-Droid
- Updated Chromium WebView on arm64 devices
- F-Droid
- F-Droid and FDroidPrivilegedExtension are included by default
- FDroidPrivilegedExtension ONLY allows access to our signed version of F-Droid
- MicroG
- GmsCore, GsfProxy, and FakeStore are included by default
- Required signature spoofing permission is ONLY granted to signed system apps unlike other ROMs
- Settings
- NFC and NDEF are disabled by default
- Passwords are hidden by default
Device Changes
- bacon
- Overclocked from 2.45Ghz to 2.95Ghz (=+2.02Ghz)
- Underclocked from 300Mhz to 268Mhz
- Qualcomm DIAG enabled
- Removed bundled Google Widevine DRM and Microsoft PlayReady DRM firmware files
- bullhead
- Overclocked a57 from 1.82Ghz to 2.01Ghz, overclocked a53 from 1.44Ghz to 1.63Ghz (=+1.14Ghz)
- Underclocked both from 384Mhz to 300Mhz
- MMC performance slightly increased
- clark
- Overclocked a57 from 1.82Ghz to 2.01Ghz, overclocked a53 from 1.44Ghz to 1.63Ghz (=+1.14Ghz)
- Underclocked both from 384Mhz to 300Mhz
- MMC performance slightly increased
- Removed bundled Google Widevine DRM and Microsoft PlayReady DRM firmware files
- mako
- Overclocked from 1.51Ghz to 1.94Ghz (=+1.72Ghz)
- Underclocked from 384Mhz to 81Mhz
- Enabled LTE support (Requires LTE hybrid modem to be flashed)
- hammerhead
- Overclocked from 2.26Ghz to 2.95Ghz (=+2.75Ghz)
- shamu
- Overclocked from 2.64Ghz to 2.88Ghz (=+0.96Ghz)
- Underclocked from 300Mhz to 35Mhz

View File

@ -1,137 +0,0 @@
<?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>

View File

@ -1,156 +0,0 @@
<?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_Browser" />
<remove-project name="CyanogenMod/android_packages_apps_CMBugreport" />
<remove-project name="CyanogenMod/android_packages_apps_FMRadio" />
<remove-project name="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.1" /> -->
<!-- <project path="external/busybox" name="omnirom/android_external_busybox" remote="github" revision="android-7.1" />-->
<!-- 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/amazon/hdx-common" name="CyanogenMod/android_device_amazon_hdx-common" 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/amazon/hdx-common" name="CyanogenMod/android_kernel_amazon_hdx-common" 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" />
<!-- Amazon Kindle Fire HDX 7 3rd Gen (Thor)-->
<project path="device/amazon/thor" name="CyanogenMod/android_device_amazon_thor" 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/amazon" name="TheMuppets/proprietary_vendor_amazon" remote="github" />
<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>

View File

@ -1,14 +0,0 @@
<?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" revision="android-7.1" />
<project path="vendor/motorola" name="DonkeyCoyote/proprietary_vendor_motorola" remote="github" revision="android-7.1" />
<project path="vendor/oneplus" name="DonkeyCoyote/proprietary_vendor_oneplus" remote="github" revision="android-7.1" />
<project path="vendor/oppo" name="DonkeyCoyote/proprietary_vendor_oppo" remote="github" revision="android-7.1" />
<project path="vendor/qcom/binaries" name="DonkeyCoyote/proprietary_vendor_qcom_binaries" remote="github" revision="android-7.1" />
<!-- END OF DEVICE REPOS -->
</manifest>

View File

@ -1,104 +0,0 @@
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

View File

@ -1,26 +0,0 @@
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 \

View File

@ -1,50 +0,0 @@
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,

View File

@ -1,154 +0,0 @@
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

View File

@ -1,22 +0,0 @@
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;

View File

@ -1,31 +0,0 @@
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}&amp;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&amp;t=cyanogenmod</item>
+ <item>https://duckduckgo.com/?q={searchTerms}%20r:uk</item>
<item>UTF-8</item>
<item></item>
</string-array>

View File

@ -1,36 +0,0 @@
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" />

View File

@ -1,23 +0,0 @@
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}&amp;source=android-home</string>
+ <string name="homepage_base" translatable="false">https://duckduckgo.com/</string>
<!-- Bookmarks -->
<string-array name="bookmarks" translatable="false">

View File

@ -1,22 +0,0 @@
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>

View File

@ -1,22 +0,0 @@
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>

View File

@ -1,36 +0,0 @@
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" />

View File

@ -1,203 +0,0 @@
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;
- }
-
}

View File

@ -1,24 +0,0 @@
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. */

View File

@ -1,25 +0,0 @@
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";

File diff suppressed because it is too large Load Diff

View File

@ -1,36 +0,0 @@
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) {

View File

@ -1,756 +0,0 @@
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;
+ }
+ }
+}

View File

@ -1,198 +0,0 @@
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);

View File

@ -1,73 +0,0 @@
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");
}

View File

@ -1,24 +0,0 @@
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"

View File

@ -1,26 +0,0 @@
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

View File

@ -1,35 +0,0 @@
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

View File

@ -1,22 +0,0 @@
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);

View File

@ -1,23 +0,0 @@
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>

View File

@ -1,107 +0,0 @@
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

View File

@ -1,103 +0,0 @@
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,

View File

@ -1,28 +0,0 @@
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

View File

@ -1,26 +0,0 @@
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

View File

@ -1,26 +0,0 @@
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

View File

@ -1,19 +0,0 @@
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

View File

@ -1,26 +0,0 @@
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

View File

@ -1,26 +0,0 @@
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

View File

@ -1,91 +0,0 @@
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

View File

@ -1,67 +0,0 @@
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

View File

@ -1,71 +0,0 @@
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

View File

@ -1,71 +0,0 @@
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

View File

@ -1,40 +0,0 @@
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

View File

@ -1,226 +0,0 @@
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

View File

@ -1,49 +0,0 @@
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

View File

@ -1,40 +0,0 @@
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

View File

@ -1,198 +0,0 @@
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

View File

@ -1,26 +0,0 @@
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

View File

@ -1,97 +0,0 @@
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

View File

@ -1,104 +0,0 @@
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

View File

@ -1,535 +0,0 @@
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

View File

@ -1,36 +0,0 @@
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

View File

@ -1,604 +0,0 @@
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:&#160;</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

View File

@ -1,231 +0,0 @@
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

View File

@ -1,120 +0,0 @@
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

View File

@ -1,971 +0,0 @@
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

View File

@ -1,954 +0,0 @@
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

View File

@ -1,954 +0,0 @@
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

View File

@ -1,944 +0,0 @@
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

View File

@ -1,89 +0,0 @@
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

View File

@ -1,26 +0,0 @@
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

View File

@ -1,47 +0,0 @@
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

View File

@ -1,25 +0,0 @@
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

View File

@ -1,27 +0,0 @@
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

View File

@ -1,33 +0,0 @@
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

View File

@ -1,135 +0,0 @@
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

View File

@ -1,72 +0,0 @@
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),

View File

@ -1,103 +0,0 @@
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

View File

@ -1,53 +0,0 @@
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

View File

@ -1,37 +0,0 @@
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

View File

@ -1,37 +0,0 @@
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

View File

@ -1,39 +0,0 @@
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

View File

@ -1,24 +0,0 @@
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

View File

@ -1,68 +0,0 @@
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

View File

@ -1,32 +0,0 @@
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

View File

@ -1,48 +0,0 @@
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

View File

@ -1,25 +0,0 @@
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

View File

@ -1,27 +0,0 @@
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

View File

@ -1,27 +0,0 @@
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

View File

@ -1,49 +0,0 @@
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

View File

@ -1,97 +0,0 @@
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

View File

@ -1,54 +0,0 @@
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

View File

@ -1,26 +0,0 @@
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

View File

@ -1,484 +0,0 @@
From 28793d3021e480bba68fe8b76d9848a6b8aee5d5 Mon Sep 17 00:00:00 2001
From: flar2 <asegaert@gmail.com>
Date: Tue, 3 Nov 2015 21:21:34 -0500
Subject: [PATCH 1/3] msm8992 initial overclocking
---
arch/arm/boot/dts/qcom/msm8992-regulator.dtsi | 30 ++++++++++++--------
arch/arm/boot/dts/qcom/msm8992.dtsi | 40 +++++++++++++++++++-------
drivers/clk/qcom/clock-cpu-8994.c | 8 +++---
drivers/cpufreq/qcom-cpufreq.c | 41 +++++++++++++++++++++++++++
4 files changed, 93 insertions(+), 26 deletions(-)
diff --git a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
index d5f6860..23b23ba 100644
--- a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
@@ -605,7 +605,7 @@
regulator-name = "apc0_corner";
qcom,cpr-fuse-corners = <4>;
regulator-min-microvolt = <1>;
- regulator-max-microvolt = <10>;
+ regulator-max-microvolt = <12>;
qcom,cpr-voltage-ceiling = <900000 900000 1000000 1180000>;
qcom,cpr-voltage-floor = <640000 700000 800000 850000>;
@@ -669,15 +669,15 @@
qcom,cpr-init-voltage-ref = <900000 900000 1000000 1230000>;
qcom,cpr-init-voltage-step = <10000>;
- qcom,cpr-corner-map = <1 1 2 2 3 3 4 4 4 4>;
+ qcom,cpr-corner-map = <1 1 2 2 3 3 4 4 4 4 4 4>;
qcom,cpr-voltage-ceiling-override =
<0xFFFFFFFF 0 800000 800000 900000 900000
1000000 1000000 1115000 1115000
- 1180000 1180000>;
+ 1180000 1180000 1180000 1180000>;
qcom,cpr-voltage-floor-override =
<0xFFFFFFFF 0 640000 655000 700000 735000
800000 835000 850000 875000
- 950000 1000000>;
+ 950000 1000000 1000000 1000000>;
qcom,cpr-fuse-version-map =
<0 0xffffffff 0 0 0 0 0>,
<0 0xffffffff 1 0 0 0 0>,
@@ -759,10 +759,12 @@
<7 864000000>,
<8 960000000>,
<9 1248000000>,
- <10 1440000000>;
+ <10 1440000000>,
+ <11 1536000000>,
+ <12 1632000000>;
qcom,cpr-speed-bin-max-corners =
<0 0 2 4 6 9>,
- <1 0 2 4 6 10>;
+ <1 0 2 4 6 12>;
qcom,cpr-enable;
};
@@ -774,7 +776,7 @@
regulator-name = "apc1_corner";
qcom,cpr-fuse-corners = <4>;
regulator-min-microvolt = <1>;
- regulator-max-microvolt = <15>;
+ regulator-max-microvolt = <17>;
qcom,cpr-voltage-ceiling = <900000 900000 1000000 1180000>;
qcom,cpr-voltage-floor = <640000 640000 745000 850000>;
@@ -841,17 +843,19 @@
qcom,cpr-init-voltage-ref = <900000 900000 1000000 1230000>;
qcom,cpr-init-voltage-step = <10000>;
- qcom,cpr-corner-map = <1 2 2 2 2 3 3 3 4 4 4 4 4 4 4>;
+ qcom,cpr-corner-map = <1 2 2 2 2 3 3 3 4 4 4 4 4 4 4 4 4>;
qcom,cpr-voltage-ceiling-override =
<0xFFFFFFFF 0 900000 900000 900000 900000
900000 1000000 1000000 1000000
1115000 1115000 1115000 1115000
- 1115000 1115000 1180000>;
+ 1115000 1115000 1180000 1180000
+ 1180000>;
qcom,cpr-voltage-floor-override =
<0xFFFFFFFF 0 640000 640000 665000 690000
735000 745000 770000 785000
850000 860000 880000 900000
- 920000 935000 1000000>;
+ 920000 935000 1000000 1000000
+ 1000000>;
qcom,cpr-fuse-version-map =
<0xffffffff 0xffffffff 0 4 4 4 4>,
<0xffffffff 0xffffffff 1 4 4 4 4>,
@@ -908,9 +912,11 @@
<12 1536000000>,
<13 1632000000>,
<14 1689600000>,
- <15 1824000000>;
+ <15 1824000000>,
+ <16 1958400000>,
+ <17 2016000000>;
qcom,cpr-speed-bin-max-corners =
- <0xFFFFFFFF 0 1 5 8 15>;
+ <0xFFFFFFFF 0 1 5 8 17>;
qcom,cpr-enable;
};
diff --git a/arch/arm/boot/dts/qcom/msm8992.dtsi b/arch/arm/boot/dts/qcom/msm8992.dtsi
index 5ba420c..8892b56 100644
--- a/arch/arm/boot/dts/qcom/msm8992.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8992.dtsi
@@ -852,7 +852,9 @@
< 787200 3509 >,
< 864000 4173 >,
< 960000 5271 >,
- < 1440000 7102 >;
+ < 1440000 7102 >,
+ < 1536000 7102 >,
+ < 1632000 7102 >;
cpu-to-dev-map-4 =
< 384000 1525 >,
< 633600 2288 >,
@@ -860,16 +862,22 @@
< 864000 4173 >,
< 960000 5271 >,
< 1344000 5928 >,
- < 1824000 7102 >;
+ < 1824000 7102 >,
+ < 1958400 7102 >,
+ < 2016000 7102 >;
};
mincpubw-cpufreq {
target-dev = <&mincpubw>;
cpu-to-dev-map-0 =
- < 1440000 1525 >;
+ < 1440000 1525 >,
+ < 1536000 1525 >,
+ < 1632000 1525 >;
cpu-to-dev-map-4 =
< 1689600 1525 >,
- < 1824000 5928 >;
+ < 1824000 1525 >,
+ < 1958400 1525 >,
+ < 2016000 5928 >;
};
cci-cpufreq {
@@ -880,7 +888,9 @@
< 787200 384000 >,
< 864000 556800 >,
< 960000 729600 >,
- < 1440000 787200 >;
+ < 1440000 787200 >,
+ < 1536000 787200 >,
+ < 1632000 787200 >;
cpu-to-dev-map-4 =
< 384000 134400 >,
< 480000 300000 >,
@@ -888,7 +898,9 @@
< 768000 556800 >,
< 960000 600000 >,
< 1440000 729600 >,
- < 1824000 787200 >;
+ < 1824000 787200 >,
+ < 1958400 787200 >,
+ < 2016000 787200 >;
};
};
@@ -915,7 +927,9 @@
< 864000 >,
< 960000 >,
< 1248000 >,
- < 1440000 >;
+ < 1440000 >,
+ < 1536000 >,
+ < 1632000 >;
qcom,cpufreq-table-4 =
< 384000 >,
@@ -930,7 +944,9 @@
< 1536000 >,
< 1632000 >,
< 1689600 >,
- < 1824000 >;
+ < 1824000 >,
+ < 1958400 >,
+ < 2016000 >;
};
@@ -968,7 +984,9 @@
< 864000000 7>,
< 960000000 8>,
< 1248000000 9>,
- < 1440000000 10>;
+ < 1440000000 10>,
+ < 1536000000 11>,
+ < 1632000000 12>;
qcom,a57-speedbin0-v0 =
< 0 0>,
< 384000000 5>,
@@ -983,7 +1001,9 @@
< 1536000000 12>,
< 1632000000 13>,
< 1689600000 14>,
- < 1824000000 15>;
+ < 1824000000 15>,
+ < 1958400000 16>,
+ < 2016000000 17>;
qcom,cci-speedbin0-v0 =
< 0 0>,
< 134400000 2>,
diff --git a/drivers/clk/qcom/clock-cpu-8994.c b/drivers/clk/qcom/clock-cpu-8994.c
index 6eb346b..de3d72f 100644
--- a/drivers/clk/qcom/clock-cpu-8994.c
+++ b/drivers/clk/qcom/clock-cpu-8994.c
@@ -191,13 +191,13 @@ static struct pll_clk a57_pll0 = {
.test_ctl_lo_val = 0x00010000,
},
.min_rate = 1209600000,
- .max_rate = 1996800000,
+ .max_rate = 2073600000,
.base = &vbases[C1_PLL_BASE],
.c = {
.parent = &xo_ao.c,
.dbg_name = "a57_pll0",
.ops = &clk_ops_variable_rate_pll,
- VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 1996800000),
+ VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 2073600000),
CLK_INIT(a57_pll0.c),
},
};
@@ -229,13 +229,13 @@ static struct pll_clk a57_pll1 = {
/* Necessary since we'll be setting a rate before handoff on V1 */
.src_rate = 19200000,
.min_rate = 1209600000,
- .max_rate = 1996800000,
+ .max_rate = 2073600000,
.base = &vbases[C1_PLL_BASE],
.c = {
.parent = &xo_ao.c,
.dbg_name = "a57_pll1",
.ops = &clk_ops_variable_rate_pll,
- VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 1996800000),
+ VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 2073600000),
CLK_INIT(a57_pll1.c),
},
};
diff --git a/drivers/cpufreq/qcom-cpufreq.c b/drivers/cpufreq/qcom-cpufreq.c
index e30b0cb..dd3a589 100644
--- a/drivers/cpufreq/qcom-cpufreq.c
+++ b/drivers/cpufreq/qcom-cpufreq.c
@@ -31,6 +31,40 @@
static DEFINE_MUTEX(l2bw_lock);
+static unsigned long arg_cpu_max_a53 = 1440000;
+
+static int __init cpufreq_read_cpu_max_a53(char *cpu_max_a53)
+{
+ unsigned long ui_khz;
+ int ret;
+
+ ret = kstrtoul(cpu_max_a53, 0, &ui_khz);
+ if (ret)
+ return -EINVAL;
+
+ arg_cpu_max_a53 = ui_khz;
+ printk("cpu_max_a53=%lu\n", arg_cpu_max_a53);
+ return ret;
+}
+__setup("cpu_max_a53=", cpufreq_read_cpu_max_a53);
+
+static unsigned long arg_cpu_max_a57 = 1824000;
+
+static int __init cpufreq_read_cpu_max_a57(char *cpu_max_a57)
+{
+ unsigned long ui_khz;
+ int ret;
+
+ ret = kstrtoul(cpu_max_a57, 0, &ui_khz);
+ if (ret)
+ return -EINVAL;
+
+ arg_cpu_max_a57 = ui_khz;
+ printk("cpu_max_a57=%lu\n", arg_cpu_max_a57);
+ return ret;
+}
+__setup("cpu_max_a57=", cpufreq_read_cpu_max_a57);
+
static struct clk *cpu_clk[NR_CPUS];
static struct clk *l2_clk;
static DEFINE_PER_CPU(struct cpufreq_frequency_table *, freq_table);
@@ -364,6 +398,13 @@ static struct cpufreq_frequency_table *cpufreq_parse_dt(struct device *dev,
if (i > 0 && f <= ftbl[i-1].frequency)
break;
+ //Custom max freq
+ if ((cpu < 4 && f > arg_cpu_max_a53) ||
+ (cpu >= 4 && f > arg_cpu_max_a57)) {
+ nf = i;
+ break;
+ }
+
ftbl[i].driver_data = i;
ftbl[i].frequency = f;
}
--
2.9.3
From 9dfe99b9f8eead920f7cdefdb2ae7b1cea776d9b Mon Sep 17 00:00:00 2001
From: dirtyhank <dirtyhank@gmail.com>
Date: Thu, 14 Jan 2016 12:56:07 +0100
Subject: [PATCH 2/3] CPU underclocking
Based on underclocking to Nexus 6P by anarkia1976
---
arch/arm/boot/dts/qcom/msm8992-regulator.dtsi | 6 +++---
arch/arm/boot/dts/qcom/msm8992.dtsi | 14 +++++++++++---
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
index 23b23ba..1ef9eb3 100644
--- a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
@@ -750,7 +750,7 @@
qcom,cpr-voltage-scaling-factor-max = <0 0 2000 2000>;
qcom,cpr-quot-adjust-scaling-factor-max = <0 2000 2000 2000>;
qcom,cpr-corner-frequency-map =
- <1 300000000>,
+ <1 302400000>,
<2 384000000>,
<3 460800000>,
<4 600000000>,
@@ -898,8 +898,8 @@
qcom,cpr-voltage-scaling-factor-max = <0 0 2000 2000>;
qcom,cpr-quot-adjust-scaling-factor-max = <0 0 2000 2000>;
qcom,cpr-corner-frequency-map =
- <1 300000000>, /* SVS Fmin for "SVS2" */
- <2 300000000>,
+ <1 302400000>, /* SVS Fmin for "SVS2" */
+ <2 302400000>,
<3 384000000>,
<4 480000000>,
<5 633600000>,
diff --git a/arch/arm/boot/dts/qcom/msm8992.dtsi b/arch/arm/boot/dts/qcom/msm8992.dtsi
index 8892b56..f6a39cd 100644
--- a/arch/arm/boot/dts/qcom/msm8992.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8992.dtsi
@@ -796,7 +796,7 @@
governor = "cpufreq";
freq-tbl-khz =
< 134400 >,
- < 300000 >,
+ < 302400 >,
< 384000 >,
< 556800 >,
< 600000 >,
@@ -856,7 +856,8 @@
< 1536000 7102 >,
< 1632000 7102 >;
cpu-to-dev-map-4 =
- < 384000 1525 >,
+ < 302400 1525 >,
+ < 384000 1525 >,
< 633600 2288 >,
< 768000 3509 >,
< 864000 4173 >,
@@ -883,6 +884,7 @@
cci-cpufreq {
target-dev = <&cci_cache>;
cpu-to-dev-map-0 =
+ < 302400 134400 >,
< 384000 134400 >,
< 600000 300000 >,
< 787200 384000 >,
@@ -892,6 +894,7 @@
< 1536000 787200 >,
< 1632000 787200 >;
cpu-to-dev-map-4 =
+ < 302400 134400 >,
< 384000 134400 >,
< 480000 300000 >,
< 633600 384000 >,
@@ -919,6 +922,7 @@
qcom,governor-per-policy;
qcom,cpufreq-table-0 =
+ < 302400 >,
< 384000 >,
< 460800 >,
< 600000 >,
@@ -932,6 +936,7 @@
< 1632000 >;
qcom,cpufreq-table-4 =
+ < 302400 >,
< 384000 >,
< 480000 >,
< 633600 >,
@@ -966,6 +971,7 @@
vdd-dig-supply = <&pm8994_s2_corner_ao>;
qcom,a53-speedbin0-v0 =
< 0 0>,
+ < 302400000 1>,
< 384000000 2>,
< 460800000 3>,
< 600000000 4>,
@@ -976,6 +982,7 @@
< 1248000000 9>;
qcom,a53-speedbin1-v0 =
< 0 0>,
+ < 302400000 1>,
< 384000000 2>,
< 460800000 3>,
< 600000000 4>,
@@ -989,6 +996,7 @@
< 1632000000 12>;
qcom,a57-speedbin0-v0 =
< 0 0>,
+ < 302400000 5>,
< 384000000 5>,
< 480000000 5>,
< 633600000 5>,
@@ -1007,7 +1015,7 @@
qcom,cci-speedbin0-v0 =
< 0 0>,
< 134400000 2>,
- < 300000000 4>,
+ < 302400000 4>,
< 384000000 6>,
< 556800000 6>,
< 600000000 8>,
--
2.9.3
From b7e24657fb125b77bb5d9a39493040e1234c7c83 Mon Sep 17 00:00:00 2001
From: flar2 <asegaert@gmail.com>
Date: Mon, 21 Nov 2016 21:40:09 -0500
Subject: [PATCH 3/3] msm8992: bump oc voltages
---
arch/arm/boot/dts/qcom/msm8992-regulator.dtsi | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
index 1ef9eb3..d2a875b 100644
--- a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
@@ -673,11 +673,11 @@
qcom,cpr-voltage-ceiling-override =
<0xFFFFFFFF 0 800000 800000 900000 900000
1000000 1000000 1115000 1115000
- 1180000 1180000 1180000 1180000>;
+ 1180000 1180000 1180000 1200000>;
qcom,cpr-voltage-floor-override =
<0xFFFFFFFF 0 640000 655000 700000 735000
800000 835000 850000 875000
- 950000 1000000 1000000 1000000>;
+ 950000 1000000 1000000 1100000>;
qcom,cpr-fuse-version-map =
<0 0xffffffff 0 0 0 0 0>,
<0 0xffffffff 1 0 0 0 0>,
@@ -849,13 +849,13 @@
900000 1000000 1000000 1000000
1115000 1115000 1115000 1115000
1115000 1115000 1180000 1180000
- 1180000>;
+ 1200000>;
qcom,cpr-voltage-floor-override =
<0xFFFFFFFF 0 640000 640000 665000 690000
735000 745000 770000 785000
850000 860000 880000 900000
920000 935000 1000000 1000000
- 1000000>;
+ 1100000>;
qcom,cpr-fuse-version-map =
<0xffffffff 0xffffffff 0 4 4 4 4>,
<0xffffffff 0xffffffff 1 4 4 4 4>,
--
2.9.3

View File

@ -1,42 +0,0 @@
From f24f2dec25043cf7e6ef0f80a65dde45f2f131dd Mon Sep 17 00:00:00 2001
From: franciscofranco <franciscofranco.1990@gmail.com>
Date: Wed, 20 Jan 2016 01:45:39 +0000
Subject: [PATCH] IKSWM-6057: dts: mmc: remove wakeup on idle flag
Remove the wakeup-on-idle flag can improve the mmc
performance(verified with iozone). No current drain
and other system performance impact.
Change-Id: Ia90cdfb66569b5ee3713d2c9785a2b7a9d24760e
Signed-off-by: Lianwei Wang <a22439@motorola.com>
Reviewed-on: http://gerrit.mot.com/785887
SLTApproved: Slta Waiver <sltawvr@motorola.com>
SME-Granted: SME Approvals Granted
Tested-by: Jira Key <jirakey@motorola.com>
Reviewed-by: Zhi-Ming Yuan <a14194@motorola.com>
Submit-Approved: Jira Key <jirakey@motorola.com>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
---
arch/arm/boot/dts/qcom/msm8992.dtsi | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/arm/boot/dts/qcom/msm8992.dtsi b/arch/arm/boot/dts/qcom/msm8992.dtsi
index 5dedecb..dc70365 100644
--- a/arch/arm/boot/dts/qcom/msm8992.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8992.dtsi
@@ -1706,7 +1706,6 @@
qcom,cpu-dma-latency-us = <301 70>;
qcom,cpu-affinity = "affine_cores";
qcom,cpu-affinity-mask = <0x0f 0xf0>;
- qcom,wakeup-on-idle;
qcom,msm-bus,name = "sdhc1";
qcom,msm-bus,num-cases = <9>;
@@ -1746,7 +1745,6 @@
qcom,cpu-dma-latency-us = <301 70>;
qcom,cpu-affinity = "affine_cores";
qcom,cpu-affinity-mask = <0x0f 0xf0>;
- qcom,wakeup-on-idle;
qcom,msm-bus,name = "sdhc2";
qcom,msm-bus,num-cases = <8>;

View File

@ -1,757 +0,0 @@
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

View File

@ -1,609 +0,0 @@
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

View File

@ -1,834 +0,0 @@
From ebb9cfb12fea35189ba206f56925e499a4963896 Mon Sep 17 00:00:00 2001
From: hellsgod <hellsgod@gmx.ch>
Date: Wed, 22 Apr 2015 22:50:47 +0200
Subject: [PATCH 1/6] dts: Add some lower frequencies down to 35mhz
credits: XileForce, Imoseyon
---
arch/arm/boot/dts/qcom/apq8084.dtsi | 51 +++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/arch/arm/boot/dts/qcom/apq8084.dtsi b/arch/arm/boot/dts/qcom/apq8084.dtsi
index 51de8be..1e782d6 100644
--- a/arch/arm/boot/dts/qcom/apq8084.dtsi
+++ b/arch/arm/boot/dts/qcom/apq8084.dtsi
@@ -1127,6 +1127,9 @@
/* 2.7GHz RC1 */
qcom,speed2-pvs0-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 720000 37 >,
+ < 223200000 790000 56 >,
< 300000000 810000 76 >,
< 345600000 820000 88 >,
< 422400000 830000 109 >,
@@ -1162,6 +1165,9 @@
qcom,speed2-pvs1-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 710000 37 >,
+ < 223200000 780000 56 >,
< 300000000 800000 76 >,
< 345600000 810000 88 >,
< 422400000 820000 109 >,
@@ -1197,6 +1203,9 @@
qcom,speed2-pvs2-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 700000 37 >,
+ < 223200000 770000 56 >,
< 300000000 790000 76 >,
< 345600000 800000 88 >,
< 422400000 810000 109 >,
@@ -1232,6 +1241,9 @@
qcom,speed2-pvs3-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 690000 37 >,
+ < 223200000 760000 56 >,
< 300000000 780000 76 >,
< 345600000 790000 88 >,
< 422400000 800000 109 >,
@@ -1267,6 +1279,9 @@
qcom,speed2-pvs4-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 680000 37 >,
+ < 223200000 750000 56 >,
< 300000000 770000 76 >,
< 345600000 780000 88 >,
< 422400000 790000 109 >,
@@ -1302,6 +1317,9 @@
qcom,speed2-pvs5-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 670000 37 >,
+ < 223200000 740000 56 >,
< 300000000 760000 76 >,
< 345600000 770000 88 >,
< 422400000 780000 109 >,
@@ -1337,6 +1355,9 @@
qcom,speed2-pvs6-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 660000 37 >,
+ < 223200000 730000 56 >,
< 300000000 750000 76 >,
< 345600000 760000 88 >,
< 422400000 770000 109 >,
@@ -1372,6 +1393,9 @@
qcom,speed2-pvs7-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 650000 37 >,
+ < 223200000 720000 56 >,
< 300000000 740000 76 >,
< 345600000 750000 88 >,
< 422400000 760000 109 >,
@@ -1407,6 +1431,9 @@
qcom,speed2-pvs8-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 640000 37 >,
+ < 223200000 710000 56 >,
< 300000000 730000 76 >,
< 345600000 740000 88 >,
< 422400000 750000 109 >,
@@ -1442,6 +1469,9 @@
qcom,speed2-pvs9-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 630000 37 >,
+ < 223200000 700000 56 >,
< 300000000 720000 76 >,
< 345600000 730000 88 >,
< 422400000 740000 109 >,
@@ -1477,6 +1507,9 @@
qcom,speed2-pvs10-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 620000 37 >,
+ < 223200000 690000 56 >,
< 300000000 710000 76 >,
< 345600000 720000 88 >,
< 422400000 730000 109 >,
@@ -1512,6 +1545,9 @@
qcom,speed2-pvs11-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 610000 37 >,
+ < 223200000 680000 56 >,
< 300000000 700000 76 >,
< 345600000 710000 88 >,
< 422400000 720000 109 >,
@@ -1547,6 +1583,9 @@
qcom,speed2-pvs12-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 600000 37 >,
+ < 223200000 670000 56 >,
< 300000000 690000 76 >,
< 345600000 700000 88 >,
< 422400000 710000 109 >,
@@ -1582,6 +1621,9 @@
qcom,speed2-pvs13-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 590000 37 >,
+ < 223200000 660000 56 >,
< 300000000 680000 76 >,
< 345600000 690000 88 >,
< 422400000 700000 109 >,
@@ -1617,6 +1659,9 @@
qcom,speed2-pvs14-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 580000 37 >,
+ < 223200000 650000 56 >,
< 300000000 670000 76 >,
< 345600000 680000 88 >,
< 422400000 690000 109 >,
@@ -1652,6 +1697,9 @@
qcom,speed2-pvs15-bin-v1 =
< 0 0 0 >,
+ < 35800000 500000 17 >,
+ < 98300000 570000 37 >,
+ < 223200000 640000 56 >,
< 300000000 660000 76 >,
< 345600000 670000 88 >,
< 422400000 680000 109 >,
@@ -4297,6 +4345,9 @@
reg = <0 4>;
compatible = "qcom,msm-cpufreq";
qcom,cpufreq-table =
+ < 35800 35800 762 >,
+ < 98300 98300 762 >,
+ < 223200 223200 762 >,
< 300000 300000 1144 >,
< 422400 422400 2288 >,
< 652800 499200 3051 >,
--
2.9.3
From 143adae138c68fbcd53fa8dbc644ef4a0850879c Mon Sep 17 00:00:00 2001
From: bhb27 <fglfgl27@gmail.com>
Date: Thu, 25 Feb 2016 14:46:26 -0800
Subject: [PATCH 2/6] qcom:apq8084: OC to 2880 MHz
---
arch/arm/boot/dts/qcom/apq8084.dtsi | 198 ++++++++++++++++++++++++++++++------
1 file changed, 165 insertions(+), 33 deletions(-)
diff --git a/arch/arm/boot/dts/qcom/apq8084.dtsi b/arch/arm/boot/dts/qcom/apq8084.dtsi
index 1e782d6..c419bc3 100644
--- a/arch/arm/boot/dts/qcom/apq8084.dtsi
+++ b/arch/arm/boot/dts/qcom/apq8084.dtsi
@@ -1161,7 +1161,11 @@
< 2419200000 1105000 777 >,
< 2496000000 1120000 813 >,
< 2572800000 1135000 849 >,
- < 2649600000 1150000 886 >;
+ < 2649600000 1150000 886 >,
+ < 2688000000 1160000 917 >,
+ < 2764800000 1170000 952 >,
+ < 2841600000 1185000 980 >,
+ < 2880000000 1195000 1003 >;
qcom,speed2-pvs1-bin-v1 =
< 0 0 0 >,
@@ -1199,7 +1203,11 @@
< 2419200000 1095000 777 >,
< 2496000000 1110000 813 >,
< 2572800000 1125000 849 >,
- < 2649600000 1140000 886 >;
+ < 2649600000 1140000 886 >,
+ < 2688000000 1150000 917 >,
+ < 2764800000 1160000 952 >,
+ < 2841600000 1175000 980 >,
+ < 2880000000 1185000 1003 >;
qcom,speed2-pvs2-bin-v1 =
< 0 0 0 >,
@@ -1237,7 +1245,11 @@
< 2419200000 1085000 777 >,
< 2496000000 1100000 813 >,
< 2572800000 1115000 849 >,
- < 2649600000 1130000 886 >;
+ < 2649600000 1130000 886 >,
+ < 2688000000 1140000 917 >,
+ < 2764800000 1150000 952 >,
+ < 2841600000 1165000 980 >,
+ < 2880000000 1175000 1003 >;
qcom,speed2-pvs3-bin-v1 =
< 0 0 0 >,
@@ -1275,7 +1287,11 @@
< 2419200000 1075000 777 >,
< 2496000000 1090000 813 >,
< 2572800000 1105000 849 >,
- < 2649600000 1120000 886 >;
+ < 2649600000 1120000 886 >,
+ < 2688000000 1130000 917 >,
+ < 2764800000 1140000 952 >,
+ < 2841600000 1155000 980 >,
+ < 2880000000 1165000 1003 >;
qcom,speed2-pvs4-bin-v1 =
< 0 0 0 >,
@@ -1313,7 +1329,11 @@
< 2419200000 1065000 777 >,
< 2496000000 1080000 813 >,
< 2572800000 1095000 849 >,
- < 2649600000 1110000 886 >;
+ < 2649600000 1110000 886 >,
+ < 2688000000 1120000 917 >,
+ < 2764800000 1130000 952 >,
+ < 2841600000 1145000 980 >,
+ < 2880000000 1155000 1003 >;
qcom,speed2-pvs5-bin-v1 =
< 0 0 0 >,
@@ -1351,7 +1371,11 @@
< 2419200000 1055000 777 >,
< 2496000000 1070000 813 >,
< 2572800000 1085000 849 >,
- < 2649600000 1100000 886 >;
+ < 2649600000 1100000 886 >,
+ < 2688000000 1110000 917 >,
+ < 2764800000 1120000 952 >,
+ < 2841600000 1135000 980 >,
+ < 2880000000 1145000 1003 >;
qcom,speed2-pvs6-bin-v1 =
< 0 0 0 >,
@@ -1389,7 +1413,11 @@
< 2419200000 1045000 777 >,
< 2496000000 1060000 813 >,
< 2572800000 1075000 849 >,
- < 2649600000 1090000 886 >;
+ < 2649600000 1090000 886 >,
+ < 2688000000 1100000 917 >,
+ < 2764800000 1110000 952 >,
+ < 2841600000 1125000 980 >,
+ < 2880000000 1135000 1003 >;
qcom,speed2-pvs7-bin-v1 =
< 0 0 0 >,
@@ -1427,7 +1455,11 @@
< 2419200000 1035000 777 >,
< 2496000000 1050000 813 >,
< 2572800000 1065000 849 >,
- < 2649600000 1080000 886 >;
+ < 2649600000 1080000 886 >,
+ < 2688000000 1090000 917 >,
+ < 2764800000 1100000 952 >,
+ < 2841600000 1115000 980 >,
+ < 2880000000 1125000 1003 >;
qcom,speed2-pvs8-bin-v1 =
< 0 0 0 >,
@@ -1465,7 +1497,11 @@
< 2419200000 1025000 777 >,
< 2496000000 1040000 813 >,
< 2572800000 1055000 849 >,
- < 2649600000 1070000 886 >;
+ < 2649600000 1070000 886 >,
+ < 2688000000 1080000 917 >,
+ < 2764800000 1090000 952 >,
+ < 2841600000 1105000 980 >,
+ < 2880000000 1115000 1003 >;
qcom,speed2-pvs9-bin-v1 =
< 0 0 0 >,
@@ -1503,7 +1539,11 @@
< 2419200000 1015000 777 >,
< 2496000000 1030000 813 >,
< 2572800000 1045000 849 >,
- < 2649600000 1060000 886 >;
+ < 2649600000 1060000 886 >,
+ < 2688000000 1070000 917 >,
+ < 2764800000 1090000 952 >,
+ < 2841600000 1105000 980 >,
+ < 2880000000 1115000 1003 >;
qcom,speed2-pvs10-bin-v1 =
< 0 0 0 >,
@@ -1541,7 +1581,11 @@
< 2419200000 1005000 777 >,
< 2496000000 1020000 813 >,
< 2572800000 1035000 849 >,
- < 2649600000 1050000 886 >;
+ < 2649600000 1050000 886 >,
+ < 2688000000 1060000 917 >,
+ < 2764800000 1080000 952 >,
+ < 2841600000 1095000 980 >,
+ < 2880000000 1105000 1003 >;
qcom,speed2-pvs11-bin-v1 =
< 0 0 0 >,
@@ -1579,7 +1623,11 @@
< 2419200000 995000 777 >,
< 2496000000 1010000 813 >,
< 2572800000 1025000 849 >,
- < 2649600000 1040000 886 >;
+ < 2649600000 1040000 886 >,
+ < 2688000000 1050000 917 >,
+ < 2764800000 1060000 952 >,
+ < 2841600000 1075000 980 >,
+ < 2880000000 1085000 1003 >;
qcom,speed2-pvs12-bin-v1 =
< 0 0 0 >,
@@ -1617,7 +1665,11 @@
< 2419200000 985000 777 >,
< 2496000000 1000000 813 >,
< 2572800000 1015000 849 >,
- < 2649600000 1030000 886 >;
+ < 2649600000 1030000 886 >,
+ < 2688000000 1040000 917 >,
+ < 2764800000 1050000 952 >,
+ < 2841600000 1065000 980 >,
+ < 2880000000 1075000 1003 >;
qcom,speed2-pvs13-bin-v1 =
< 0 0 0 >,
@@ -1655,7 +1707,11 @@
< 2419200000 975000 777 >,
< 2496000000 990000 813 >,
< 2572800000 1005000 849 >,
- < 2649600000 1020000 886 >;
+ < 2649600000 1020000 886 >,
+ < 2688000000 1030000 917 >,
+ < 2764800000 1040000 952 >,
+ < 2841600000 1055000 980 >,
+ < 2880000000 1065000 1003 >;
qcom,speed2-pvs14-bin-v1 =
< 0 0 0 >,
@@ -1693,7 +1749,11 @@
< 2419200000 965000 777 >,
< 2496000000 980000 813 >,
< 2572800000 995000 849 >,
- < 2649600000 1010000 886 >;
+ < 2649600000 1010000 886 >,
+ < 2688000000 1020000 917 >,
+ < 2764800000 1030000 952 >,
+ < 2841600000 1045000 980 >,
+ < 2880000000 1055000 1003 >;
qcom,speed2-pvs15-bin-v1 =
< 0 0 0 >,
@@ -1731,7 +1791,11 @@
< 2419200000 955000 777 >,
< 2496000000 970000 813 >,
< 2572800000 985000 849 >,
- < 2649600000 1000000 886 >;
+ < 2649600000 1000000 886 >,
+ < 2688000000 1010000 917 >,
+ < 2764800000 1020000 952 >,
+ < 2841600000 1035000 980 >,
+ < 2880000000 1045000 1003 >;
/* 2.7GHz RC0 */
qcom,speed2-pvs0-bin-v0 =
@@ -1767,7 +1831,11 @@
< 2419200000 1105000 777 >,
< 2496000000 1120000 813 >,
< 2572800000 1135000 849 >,
- < 2649600000 1150000 886 >;
+ < 2649600000 1150000 886 >,
+ < 2688000000 1160000 917 >,
+ < 2764800000 1170000 952 >,
+ < 2841600000 1185000 980 >,
+ < 2880000000 1195000 1003 >;
qcom,speed2-pvs1-bin-v0 =
< 0 0 0 >,
@@ -1802,7 +1870,11 @@
< 2419200000 1095000 777 >,
< 2496000000 1110000 813 >,
< 2572800000 1125000 849 >,
- < 2649600000 1140000 886 >;
+ < 2649600000 1140000 886 >,
+ < 2688000000 1150000 917 >,
+ < 2764800000 1160000 952 >,
+ < 2841600000 1185000 980 >,
+ < 2880000000 1195000 1003 >;
qcom,speed2-pvs2-bin-v0 =
< 0 0 0 >,
@@ -1837,7 +1909,11 @@
< 2419200000 1085000 777 >,
< 2496000000 1100000 813 >,
< 2572800000 1115000 849 >,
- < 2649600000 1130000 886 >;
+ < 2649600000 1130000 886 >,
+ < 2688000000 1140000 917 >,
+ < 2764800000 1150000 952 >,
+ < 2841600000 1165000 980 >,
+ < 2880000000 1175000 1003 >;
qcom,speed2-pvs3-bin-v0 =
< 0 0 0 >,
@@ -1872,7 +1948,11 @@
< 2419200000 1075000 777 >,
< 2496000000 1090000 813 >,
< 2572800000 1105000 849 >,
- < 2649600000 1120000 886 >;
+ < 2649600000 1120000 886 >,
+ < 2688000000 1130000 917 >,
+ < 2764800000 1140000 952 >,
+ < 2841600000 1165000 980 >,
+ < 2880000000 1175000 1003 >;
qcom,speed2-pvs4-bin-v0 =
< 0 0 0 >,
@@ -1907,7 +1987,11 @@
< 2419200000 1065000 777 >,
< 2496000000 1080000 813 >,
< 2572800000 1095000 849 >,
- < 2649600000 1110000 886 >;
+ < 2649600000 1110000 886 >,
+ < 2688000000 1120000 917 >,
+ < 2764800000 1130000 952 >,
+ < 2841600000 1145000 980 >,
+ < 2880000000 1155000 1003 >;
qcom,speed2-pvs5-bin-v0 =
< 0 0 0 >,
@@ -1942,7 +2026,11 @@
< 2419200000 1055000 777 >,
< 2496000000 1070000 813 >,
< 2572800000 1085000 849 >,
- < 2649600000 1100000 886 >;
+ < 2649600000 1100000 886 >,
+ < 2688000000 1110000 917 >,
+ < 2764800000 1120000 952 >,
+ < 2841600000 1135000 980 >,
+ < 2880000000 1145000 1003 >;
qcom,speed2-pvs6-bin-v0 =
< 0 0 0 >,
@@ -1977,7 +2065,11 @@
< 2419200000 1045000 777 >,
< 2496000000 1060000 813 >,
< 2572800000 1075000 849 >,
- < 2649600000 1090000 886 >;
+ < 2649600000 1090000 886 >,
+ < 2688000000 1100000 917 >,
+ < 2764800000 1110000 952 >,
+ < 2841600000 1125000 980 >,
+ < 2880000000 1135000 1003 >;
qcom,speed2-pvs7-bin-v0 =
< 0 0 0 >,
@@ -2012,7 +2104,11 @@
< 2419200000 1035000 777 >,
< 2496000000 1050000 813 >,
< 2572800000 1065000 849 >,
- < 2649600000 1080000 886 >;
+ < 2649600000 1080000 886 >,
+ < 2688000000 1090000 917 >,
+ < 2764800000 1100000 952 >,
+ < 2841600000 1115000 980 >,
+ < 2880000000 1125000 1003 >;
qcom,speed2-pvs8-bin-v0 =
< 0 0 0 >,
@@ -2047,7 +2143,11 @@
< 2419200000 1025000 777 >,
< 2496000000 1040000 813 >,
< 2572800000 1055000 849 >,
- < 2649600000 1070000 886 >;
+ < 2649600000 1070000 886 >,
+ < 2688000000 1080000 917 >,
+ < 2764800000 1090000 952 >,
+ < 2841600000 1105000 980 >,
+ < 2880000000 1115000 1003 >;
qcom,speed2-pvs9-bin-v0 =
< 0 0 0 >,
@@ -2082,7 +2182,11 @@
< 2419200000 1015000 777 >,
< 2496000000 1030000 813 >,
< 2572800000 1045000 849 >,
- < 2649600000 1060000 886 >;
+ < 2649600000 1060000 886 >,
+ < 2688000000 1070000 917 >,
+ < 2764800000 1080000 952 >,
+ < 2841600000 1095000 980 >,
+ < 2880000000 1105000 1003 >;
qcom,speed2-pvs10-bin-v0 =
< 0 0 0 >,
@@ -2117,7 +2221,11 @@
< 2419200000 1005000 777 >,
< 2496000000 1020000 813 >,
< 2572800000 1035000 849 >,
- < 2649600000 1050000 886 >;
+ < 2649600000 1050000 886 >,
+ < 2688000000 1060000 917 >,
+ < 2764800000 1070000 952 >,
+ < 2841600000 1085000 980 >,
+ < 2880000000 1095000 1003 >;
qcom,speed2-pvs11-bin-v0 =
< 0 0 0 >,
@@ -2152,7 +2260,11 @@
< 2419200000 995000 777 >,
< 2496000000 1010000 813 >,
< 2572800000 1025000 849 >,
- < 2649600000 1040000 886 >;
+ < 2649600000 1040000 886 >,
+ < 2688000000 1050000 917 >,
+ < 2764800000 1060000 952 >,
+ < 2841600000 1075000 980 >,
+ < 2880000000 1085000 1003 >;
qcom,speed2-pvs12-bin-v0 =
< 0 0 0 >,
@@ -2187,7 +2299,11 @@
< 2419200000 985000 777 >,
< 2496000000 1000000 813 >,
< 2572800000 1015000 849 >,
- < 2649600000 1030000 886 >;
+ < 2649600000 1030000 886 >,
+ < 2688000000 1040000 917 >,
+ < 2764800000 1050000 952 >,
+ < 2841600000 1065000 980 >,
+ < 2880000000 1075000 1003 >;
qcom,speed2-pvs13-bin-v0 =
< 0 0 0 >,
@@ -2222,7 +2338,11 @@
< 2419200000 975000 777 >,
< 2496000000 990000 813 >,
< 2572800000 1005000 849 >,
- < 2649600000 1020000 886 >;
+ < 2649600000 1020000 886 >,
+ < 2688000000 1030000 917 >,
+ < 2764800000 1040000 952 >,
+ < 2841600000 1055000 980 >,
+ < 2880000000 1065000 1003 >;
qcom,speed2-pvs14-bin-v0 =
< 0 0 0 >,
@@ -2257,7 +2377,11 @@
< 2419200000 965000 777 >,
< 2496000000 980000 813 >,
< 2572800000 995000 849 >,
- < 2649600000 1010000 886 >;
+ < 2649600000 1010000 886 >,
+ < 2688000000 1020000 917 >,
+ < 2764800000 1030000 952 >,
+ < 2841600000 1045000 980 >,
+ < 2880000000 1055000 1003 >;
qcom,speed2-pvs15-bin-v0 =
< 0 0 0 >,
@@ -2292,7 +2416,11 @@
< 2419200000 955000 777 >,
< 2496000000 970000 813 >,
< 2572800000 985000 849 >,
- < 2649600000 1000000 886 >;
+ < 2649600000 1000000 886 >,
+ < 2688000000 1010000 917 >,
+ < 2764800000 1020000 952 >,
+ < 2841600000 1035000 980 >,
+ < 2880000000 1045000 1003 >;
/* 2.5GHz RC1 */
qcom,speed1-pvs0-bin-v1 =
@@ -4365,7 +4493,11 @@
< 2457600 1728000 16250 >,
< 2496000 1728000 16250 >,
< 2572800 1728000 16250 >,
- < 2649600 1728000 16250 >;
+ < 2649600 1728000 16250 >,
+ < 2688000 1728000 16250 >, /* overclock */
+ < 2764800 1728000 16250 >,
+ < 2841600 1728000 16250 >,
+ < 2880000 1728000 16250 >;
};
usb_otg: usb@f9a55000 {
--
2.9.3
From aeca3d3b8d3177ddf8aab303b54f5ef3a1d0ce05 Mon Sep 17 00:00:00 2001
From: XileForce <rdaguiar360@gmail.com>
Date: Mon, 11 May 2015 21:43:20 -0700
Subject: [PATCH 3/6] APQ8084: 2457600 Is Not A Real Frequency. Replace It With
2419200 2457600 does not exist in our voltage/current tables. Thus its
voltage cant be adjusted, nor am I sure what voltage it actually uses since
it isnt defined anywhere. Let's replace that with the existing, but currently
unused, 2419200 step.
---
arch/arm/boot/dts/qcom/apq8084.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/qcom/apq8084.dtsi b/arch/arm/boot/dts/qcom/apq8084.dtsi
index c419bc3..1fe7174 100644
--- a/arch/arm/boot/dts/qcom/apq8084.dtsi
+++ b/arch/arm/boot/dts/qcom/apq8084.dtsi
@@ -4490,7 +4490,7 @@
< 1728000 1651200 12145 >,
< 1958400 1728000 16250 >,
< 2265600 1728000 16250 >,
- < 2457600 1728000 16250 >,
+ < 2419200 1728000 16250 >,
< 2496000 1728000 16250 >,
< 2572800 1728000 16250 >,
< 2649600 1728000 16250 >,
--
2.9.3
From 591d576aba39ec8ecb3c4c564577490e451d8839 Mon Sep 17 00:00:00 2001
From: Felipe Leon <fglfgl27@gmail.com>
Date: Sat, 17 Dec 2016 03:30:45 -0800
Subject: [PATCH 4/6] apq8084: DTB Fix qcom,bcl table
---
arch/arm/boot/dts/qcom/apq8084.dtsi | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/boot/dts/qcom/apq8084.dtsi b/arch/arm/boot/dts/qcom/apq8084.dtsi
index 1fe7174..a5f2a26 100644
--- a/arch/arm/boot/dts/qcom/apq8084.dtsi
+++ b/arch/arm/boot/dts/qcom/apq8084.dtsi
@@ -5030,9 +5030,9 @@
qcom,ibat-monitor {
high-threshold-uamp = <3000000>;
low-threshold-uamp = <1000000>;
- mitigation-freq-khz = <1958400>;
- mitigation-gpu-freq-khz = <389000>;
- max-gpu-freq-khz = <600000>;
+ mitigation-freq-khz = <2880000>;
+ mitigation-gpu-freq-khz = <350000>;
+ max-gpu-freq-khz = <800000>;
ibat-channel = <0x15>;
adc-interval-usec = <3900>;
uv-to-ua-numerator = <2>;
--
2.9.3
From 170faa65e72f696aaa6a60cc9653c530c2225d32 Mon Sep 17 00:00:00 2001
From: Felipe de Leon <fglfgl27@gmail.com>
Date: Sat, 17 Dec 2016 04:04:13 -0800
Subject: [PATCH 5/6] boot: dtsi: Adds the current values for the cores in uA
for under and overclock
Current value based on calculos made using the stock values
orginal commit
bhb27/android_kernel_motorola_apq8084@0e332d0
bhb27/android_kernel_motorola_apq8084@9d21c12
---
arch/arm/boot/dts/qcom/apq8084.dtsi | 36 ++++++++++++++++++++++++++++--------
1 file changed, 28 insertions(+), 8 deletions(-)
diff --git a/arch/arm/boot/dts/qcom/apq8084.dtsi b/arch/arm/boot/dts/qcom/apq8084.dtsi
index a5f2a26..8b264bd 100644
--- a/arch/arm/boot/dts/qcom/apq8084.dtsi
+++ b/arch/arm/boot/dts/qcom/apq8084.dtsi
@@ -38,7 +38,8 @@
reg = <0x0>;
// The currents(uA) correspond to the frequencies in the
// frequency table.
- current = < 71000 //300000 kHz
+ current = < 64000 //268800 kHz underclock
+ 71000 //300000 kHz
83000 //422400 kHz
97000 //652800 kHz
106000 //729600 kHz
@@ -55,7 +56,11 @@
405000 //2457600 kHz
405000 //2496000 kHz
413000 //2572800 kHz
- 414000>; //2649600 kHz
+ 414000 //2649600 kHz
+ 420000 //2688000 kHz overclock
+ 432000 //2764800 kHz
+ 444000 //2841600 kHz
+ 450000>; //2880000 kHz
};
CPU1: cpu@1 {
@@ -64,7 +69,8 @@
reg = <0x1>;
// The currents(uA) correspond to the frequencies in the
// frequency table.
- current = < 40470 //300000 kHz
+ current = < 36260 //268800 kHz underclock
+ 40470 //300000 kHz
47309 //422400 kHz
55289 //652800 kHz
60419 //729600 kHz
@@ -81,7 +87,11 @@
230849 //2457600 kHz
230849 //2496000 kHz
235409 //2572800 kHz
- 235979>; //2649600 kHz
+ 414000 //2649600 kHz
+ 420000 //2688000 kHz overclock
+ 432000 //2764800 kHz
+ 444000 //2841600 kHz
+ 450000>; //2880000 kHz
};
CPU2: cpu@2 {
@@ -90,7 +100,8 @@
reg = <0x2>;
// The currents(uA) correspond to the frequencies in the
// frequency table.
- current = < 46860 //300000 kHz
+ current = < 41980 //268800 kHz underclock
+ 46860 //300000 kHz
54780 //422400 kHz
64020 //652800 kHz
69960 //729600 kHz
@@ -107,7 +118,11 @@
267300 //2457600 kHz
267300 //2496000 kHz
272580 //2572800 kHz
- 273240>; //2649600 kHz
+ 414000 //2649600 kHz
+ 420000 //2688000 kHz overclock
+ 432000 //2764800 kHz
+ 444000 //2841600 kHz
+ 450000>; //2880000 kHz
};
CPU3: cpu@3 {
@@ -116,7 +131,8 @@
reg = <0x3>;
// The currents(uA) correspond to the frequencies in the
// frequency table.
- current = < 53960 //300000 kHz
+ current = < 48340 //268800 kHz underclock
+ 53960 //300000 kHz
63080 //422400 kHz
73720 //652800 kHz
80560 //729600 kHz
@@ -133,7 +149,11 @@
307800 //2457600 kHz
307800 //2496000 kHz
313880 //2572800 kHz
- 314640>; //2649600 kHz
+ 414000 //2649600 kHz
+ 420000 //2688000 kHz overclock
+ 432000 //2764800 kHz
+ 444000 //2841600 kHz
+ 450000>; //2880000 kHz
};
};
memory {
--
2.9.3
From c170f85350b5bf5148283a85f27504496d063852 Mon Sep 17 00:00:00 2001
From: hellsgod <hellsgod@gmx.ch>
Date: Tue, 23 Jun 2015 08:42:24 +0200
Subject: [PATCH 6/6] arm/dt: shamu: Prevent BCL driver messing around with
cores
credits to neobuddy for the heads up!
---
arch/arm/boot/dts/qcom/apq8084.dtsi | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/arm/boot/dts/qcom/apq8084.dtsi b/arch/arm/boot/dts/qcom/apq8084.dtsi
index 8b264bd..26f95e4 100644
--- a/arch/arm/boot/dts/qcom/apq8084.dtsi
+++ b/arch/arm/boot/dts/qcom/apq8084.dtsi
@@ -5046,7 +5046,6 @@
qcom,bcl-enable;
qcom,ibat-vadc = <&pma8084_vadc>;
qcom,ibat-threshold-adc_tm = <&pma8084_adc_tm>;
- qcom,bcl-hotplug-list = <&CPU2 &CPU3>;
qcom,ibat-monitor {
high-threshold-uamp = <3000000>;
low-threshold-uamp = <1000000>;
--
2.9.3

View File

@ -1,484 +0,0 @@
From 28793d3021e480bba68fe8b76d9848a6b8aee5d5 Mon Sep 17 00:00:00 2001
From: flar2 <asegaert@gmail.com>
Date: Tue, 3 Nov 2015 21:21:34 -0500
Subject: [PATCH 1/3] msm8992 initial overclocking
---
arch/arm/boot/dts/qcom/msm8992-regulator.dtsi | 30 ++++++++++++--------
arch/arm/boot/dts/qcom/msm8992.dtsi | 40 +++++++++++++++++++-------
drivers/clk/qcom/clock-cpu-8994.c | 8 +++---
drivers/cpufreq/qcom-cpufreq.c | 41 +++++++++++++++++++++++++++
4 files changed, 93 insertions(+), 26 deletions(-)
diff --git a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
index d5f6860..23b23ba 100644
--- a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
@@ -605,7 +605,7 @@
regulator-name = "apc0_corner";
qcom,cpr-fuse-corners = <4>;
regulator-min-microvolt = <1>;
- regulator-max-microvolt = <10>;
+ regulator-max-microvolt = <12>;
qcom,cpr-voltage-ceiling = <900000 900000 1000000 1180000>;
qcom,cpr-voltage-floor = <640000 700000 800000 850000>;
@@ -669,15 +669,15 @@
qcom,cpr-init-voltage-ref = <900000 900000 1000000 1230000>;
qcom,cpr-init-voltage-step = <10000>;
- qcom,cpr-corner-map = <1 1 2 2 3 3 4 4 4 4>;
+ qcom,cpr-corner-map = <1 1 2 2 3 3 4 4 4 4 4 4>;
qcom,cpr-voltage-ceiling-override =
<0xFFFFFFFF 0 800000 800000 900000 900000
1000000 1000000 1115000 1115000
- 1180000 1180000>;
+ 1180000 1180000 1180000 1180000>;
qcom,cpr-voltage-floor-override =
<0xFFFFFFFF 0 640000 655000 700000 735000
800000 835000 850000 875000
- 950000 1000000>;
+ 950000 1000000 1000000 1000000>;
qcom,cpr-fuse-version-map =
<0 0xffffffff 0 0 0 0 0>,
<0 0xffffffff 1 0 0 0 0>,
@@ -759,10 +759,12 @@
<7 864000000>,
<8 960000000>,
<9 1248000000>,
- <10 1440000000>;
+ <10 1440000000>,
+ <11 1536000000>,
+ <12 1632000000>;
qcom,cpr-speed-bin-max-corners =
<0 0 2 4 6 9>,
- <1 0 2 4 6 10>;
+ <1 0 2 4 6 12>;
qcom,cpr-enable;
};
@@ -774,7 +776,7 @@
regulator-name = "apc1_corner";
qcom,cpr-fuse-corners = <4>;
regulator-min-microvolt = <1>;
- regulator-max-microvolt = <15>;
+ regulator-max-microvolt = <17>;
qcom,cpr-voltage-ceiling = <900000 900000 1000000 1180000>;
qcom,cpr-voltage-floor = <640000 640000 745000 850000>;
@@ -841,17 +843,19 @@
qcom,cpr-init-voltage-ref = <900000 900000 1000000 1230000>;
qcom,cpr-init-voltage-step = <10000>;
- qcom,cpr-corner-map = <1 2 2 2 2 3 3 3 4 4 4 4 4 4 4>;
+ qcom,cpr-corner-map = <1 2 2 2 2 3 3 3 4 4 4 4 4 4 4 4 4>;
qcom,cpr-voltage-ceiling-override =
<0xFFFFFFFF 0 900000 900000 900000 900000
900000 1000000 1000000 1000000
1115000 1115000 1115000 1115000
- 1115000 1115000 1180000>;
+ 1115000 1115000 1180000 1180000
+ 1180000>;
qcom,cpr-voltage-floor-override =
<0xFFFFFFFF 0 640000 640000 665000 690000
735000 745000 770000 785000
850000 860000 880000 900000
- 920000 935000 1000000>;
+ 920000 935000 1000000 1000000
+ 1000000>;
qcom,cpr-fuse-version-map =
<0xffffffff 0xffffffff 0 4 4 4 4>,
<0xffffffff 0xffffffff 1 4 4 4 4>,
@@ -908,9 +912,11 @@
<12 1536000000>,
<13 1632000000>,
<14 1689600000>,
- <15 1824000000>;
+ <15 1824000000>,
+ <16 1958400000>,
+ <17 2016000000>;
qcom,cpr-speed-bin-max-corners =
- <0xFFFFFFFF 0 1 5 8 15>;
+ <0xFFFFFFFF 0 1 5 8 17>;
qcom,cpr-enable;
};
diff --git a/arch/arm/boot/dts/qcom/msm8992.dtsi b/arch/arm/boot/dts/qcom/msm8992.dtsi
index 5ba420c..8892b56 100644
--- a/arch/arm/boot/dts/qcom/msm8992.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8992.dtsi
@@ -852,7 +852,9 @@
< 787200 3509 >,
< 864000 4173 >,
< 960000 5271 >,
- < 1440000 7102 >;
+ < 1440000 7102 >,
+ < 1536000 7102 >,
+ < 1632000 7102 >;
cpu-to-dev-map-4 =
< 384000 1525 >,
< 633600 2288 >,
@@ -860,16 +862,22 @@
< 864000 4173 >,
< 960000 5271 >,
< 1344000 5928 >,
- < 1824000 7102 >;
+ < 1824000 7102 >,
+ < 1958400 7102 >,
+ < 2016000 7102 >;
};
mincpubw-cpufreq {
target-dev = <&mincpubw>;
cpu-to-dev-map-0 =
- < 1440000 1525 >;
+ < 1440000 1525 >,
+ < 1536000 1525 >,
+ < 1632000 1525 >;
cpu-to-dev-map-4 =
< 1689600 1525 >,
- < 1824000 5928 >;
+ < 1824000 1525 >,
+ < 1958400 1525 >,
+ < 2016000 5928 >;
};
cci-cpufreq {
@@ -880,7 +888,9 @@
< 787200 384000 >,
< 864000 556800 >,
< 960000 729600 >,
- < 1440000 787200 >;
+ < 1440000 787200 >,
+ < 1536000 787200 >,
+ < 1632000 787200 >;
cpu-to-dev-map-4 =
< 384000 134400 >,
< 480000 300000 >,
@@ -888,7 +898,9 @@
< 768000 556800 >,
< 960000 600000 >,
< 1440000 729600 >,
- < 1824000 787200 >;
+ < 1824000 787200 >,
+ < 1958400 787200 >,
+ < 2016000 787200 >;
};
};
@@ -915,7 +927,9 @@
< 864000 >,
< 960000 >,
< 1248000 >,
- < 1440000 >;
+ < 1440000 >,
+ < 1536000 >,
+ < 1632000 >;
qcom,cpufreq-table-4 =
< 384000 >,
@@ -930,7 +944,9 @@
< 1536000 >,
< 1632000 >,
< 1689600 >,
- < 1824000 >;
+ < 1824000 >,
+ < 1958400 >,
+ < 2016000 >;
};
@@ -968,7 +984,9 @@
< 864000000 7>,
< 960000000 8>,
< 1248000000 9>,
- < 1440000000 10>;
+ < 1440000000 10>,
+ < 1536000000 11>,
+ < 1632000000 12>;
qcom,a57-speedbin0-v0 =
< 0 0>,
< 384000000 5>,
@@ -983,7 +1001,9 @@
< 1536000000 12>,
< 1632000000 13>,
< 1689600000 14>,
- < 1824000000 15>;
+ < 1824000000 15>,
+ < 1958400000 16>,
+ < 2016000000 17>;
qcom,cci-speedbin0-v0 =
< 0 0>,
< 134400000 2>,
diff --git a/drivers/clk/qcom/clock-cpu-8994.c b/drivers/clk/qcom/clock-cpu-8994.c
index 6eb346b..de3d72f 100644
--- a/drivers/clk/qcom/clock-cpu-8994.c
+++ b/drivers/clk/qcom/clock-cpu-8994.c
@@ -191,13 +191,13 @@ static struct pll_clk a57_pll0 = {
.test_ctl_lo_val = 0x00010000,
},
.min_rate = 1209600000,
- .max_rate = 1996800000,
+ .max_rate = 2073600000,
.base = &vbases[C1_PLL_BASE],
.c = {
.parent = &xo_ao.c,
.dbg_name = "a57_pll0",
.ops = &clk_ops_variable_rate_pll,
- VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 1996800000),
+ VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 2073600000),
CLK_INIT(a57_pll0.c),
},
};
@@ -229,13 +229,13 @@ static struct pll_clk a57_pll1 = {
/* Necessary since we'll be setting a rate before handoff on V1 */
.src_rate = 19200000,
.min_rate = 1209600000,
- .max_rate = 1996800000,
+ .max_rate = 2073600000,
.base = &vbases[C1_PLL_BASE],
.c = {
.parent = &xo_ao.c,
.dbg_name = "a57_pll1",
.ops = &clk_ops_variable_rate_pll,
- VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 1996800000),
+ VDD_DIG_FMAX_MAP2(LOW, 1593600000, NOMINAL, 2073600000),
CLK_INIT(a57_pll1.c),
},
};
diff --git a/drivers/cpufreq/qcom-cpufreq.c b/drivers/cpufreq/qcom-cpufreq.c
index e30b0cb..dd3a589 100644
--- a/drivers/cpufreq/qcom-cpufreq.c
+++ b/drivers/cpufreq/qcom-cpufreq.c
@@ -31,6 +31,40 @@
static DEFINE_MUTEX(l2bw_lock);
+static unsigned long arg_cpu_max_a53 = 1440000;
+
+static int __init cpufreq_read_cpu_max_a53(char *cpu_max_a53)
+{
+ unsigned long ui_khz;
+ int ret;
+
+ ret = kstrtoul(cpu_max_a53, 0, &ui_khz);
+ if (ret)
+ return -EINVAL;
+
+ arg_cpu_max_a53 = ui_khz;
+ printk("cpu_max_a53=%lu\n", arg_cpu_max_a53);
+ return ret;
+}
+__setup("cpu_max_a53=", cpufreq_read_cpu_max_a53);
+
+static unsigned long arg_cpu_max_a57 = 1824000;
+
+static int __init cpufreq_read_cpu_max_a57(char *cpu_max_a57)
+{
+ unsigned long ui_khz;
+ int ret;
+
+ ret = kstrtoul(cpu_max_a57, 0, &ui_khz);
+ if (ret)
+ return -EINVAL;
+
+ arg_cpu_max_a57 = ui_khz;
+ printk("cpu_max_a57=%lu\n", arg_cpu_max_a57);
+ return ret;
+}
+__setup("cpu_max_a57=", cpufreq_read_cpu_max_a57);
+
static struct clk *cpu_clk[NR_CPUS];
static struct clk *l2_clk;
static DEFINE_PER_CPU(struct cpufreq_frequency_table *, freq_table);
@@ -364,6 +398,13 @@ static struct cpufreq_frequency_table *cpufreq_parse_dt(struct device *dev,
if (i > 0 && f <= ftbl[i-1].frequency)
break;
+ //Custom max freq
+ if ((cpu < 4 && f > arg_cpu_max_a53) ||
+ (cpu >= 4 && f > arg_cpu_max_a57)) {
+ nf = i;
+ break;
+ }
+
ftbl[i].driver_data = i;
ftbl[i].frequency = f;
}
--
2.9.3
From 9dfe99b9f8eead920f7cdefdb2ae7b1cea776d9b Mon Sep 17 00:00:00 2001
From: dirtyhank <dirtyhank@gmail.com>
Date: Thu, 14 Jan 2016 12:56:07 +0100
Subject: [PATCH 2/3] CPU underclocking
Based on underclocking to Nexus 6P by anarkia1976
---
arch/arm/boot/dts/qcom/msm8992-regulator.dtsi | 6 +++---
arch/arm/boot/dts/qcom/msm8992.dtsi | 14 +++++++++++---
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
index 23b23ba..1ef9eb3 100644
--- a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
@@ -750,7 +750,7 @@
qcom,cpr-voltage-scaling-factor-max = <0 0 2000 2000>;
qcom,cpr-quot-adjust-scaling-factor-max = <0 2000 2000 2000>;
qcom,cpr-corner-frequency-map =
- <1 300000000>,
+ <1 302400000>,
<2 384000000>,
<3 460800000>,
<4 600000000>,
@@ -898,8 +898,8 @@
qcom,cpr-voltage-scaling-factor-max = <0 0 2000 2000>;
qcom,cpr-quot-adjust-scaling-factor-max = <0 0 2000 2000>;
qcom,cpr-corner-frequency-map =
- <1 300000000>, /* SVS Fmin for "SVS2" */
- <2 300000000>,
+ <1 302400000>, /* SVS Fmin for "SVS2" */
+ <2 302400000>,
<3 384000000>,
<4 480000000>,
<5 633600000>,
diff --git a/arch/arm/boot/dts/qcom/msm8992.dtsi b/arch/arm/boot/dts/qcom/msm8992.dtsi
index 8892b56..f6a39cd 100644
--- a/arch/arm/boot/dts/qcom/msm8992.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8992.dtsi
@@ -796,7 +796,7 @@
governor = "cpufreq";
freq-tbl-khz =
< 134400 >,
- < 300000 >,
+ < 302400 >,
< 384000 >,
< 556800 >,
< 600000 >,
@@ -856,7 +856,8 @@
< 1536000 7102 >,
< 1632000 7102 >;
cpu-to-dev-map-4 =
- < 384000 1525 >,
+ < 302400 1525 >,
+ < 384000 1525 >,
< 633600 2288 >,
< 768000 3509 >,
< 864000 4173 >,
@@ -883,6 +884,7 @@
cci-cpufreq {
target-dev = <&cci_cache>;
cpu-to-dev-map-0 =
+ < 302400 134400 >,
< 384000 134400 >,
< 600000 300000 >,
< 787200 384000 >,
@@ -892,6 +894,7 @@
< 1536000 787200 >,
< 1632000 787200 >;
cpu-to-dev-map-4 =
+ < 302400 134400 >,
< 384000 134400 >,
< 480000 300000 >,
< 633600 384000 >,
@@ -919,6 +922,7 @@
qcom,governor-per-policy;
qcom,cpufreq-table-0 =
+ < 302400 >,
< 384000 >,
< 460800 >,
< 600000 >,
@@ -932,6 +936,7 @@
< 1632000 >;
qcom,cpufreq-table-4 =
+ < 302400 >,
< 384000 >,
< 480000 >,
< 633600 >,
@@ -966,6 +971,7 @@
vdd-dig-supply = <&pm8994_s2_corner_ao>;
qcom,a53-speedbin0-v0 =
< 0 0>,
+ < 302400000 1>,
< 384000000 2>,
< 460800000 3>,
< 600000000 4>,
@@ -976,6 +982,7 @@
< 1248000000 9>;
qcom,a53-speedbin1-v0 =
< 0 0>,
+ < 302400000 1>,
< 384000000 2>,
< 460800000 3>,
< 600000000 4>,
@@ -989,6 +996,7 @@
< 1632000000 12>;
qcom,a57-speedbin0-v0 =
< 0 0>,
+ < 302400000 5>,
< 384000000 5>,
< 480000000 5>,
< 633600000 5>,
@@ -1007,7 +1015,7 @@
qcom,cci-speedbin0-v0 =
< 0 0>,
< 134400000 2>,
- < 300000000 4>,
+ < 302400000 4>,
< 384000000 6>,
< 556800000 6>,
< 600000000 8>,
--
2.9.3
From b7e24657fb125b77bb5d9a39493040e1234c7c83 Mon Sep 17 00:00:00 2001
From: flar2 <asegaert@gmail.com>
Date: Mon, 21 Nov 2016 21:40:09 -0500
Subject: [PATCH 3/3] msm8992: bump oc voltages
---
arch/arm/boot/dts/qcom/msm8992-regulator.dtsi | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
index 1ef9eb3..d2a875b 100644
--- a/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8992-regulator.dtsi
@@ -673,11 +673,11 @@
qcom,cpr-voltage-ceiling-override =
<0xFFFFFFFF 0 800000 800000 900000 900000
1000000 1000000 1115000 1115000
- 1180000 1180000 1180000 1180000>;
+ 1180000 1180000 1180000 1200000>;
qcom,cpr-voltage-floor-override =
<0xFFFFFFFF 0 640000 655000 700000 735000
800000 835000 850000 875000
- 950000 1000000 1000000 1000000>;
+ 950000 1000000 1000000 1100000>;
qcom,cpr-fuse-version-map =
<0 0xffffffff 0 0 0 0 0>,
<0 0xffffffff 1 0 0 0 0>,
@@ -849,13 +849,13 @@
900000 1000000 1000000 1000000
1115000 1115000 1115000 1115000
1115000 1115000 1180000 1180000
- 1180000>;
+ 1200000>;
qcom,cpr-voltage-floor-override =
<0xFFFFFFFF 0 640000 640000 665000 690000
735000 745000 770000 785000
850000 860000 880000 900000
920000 935000 1000000 1000000
- 1000000>;
+ 1100000>;
qcom,cpr-fuse-version-map =
<0xffffffff 0xffffffff 0 4 4 4 4>,
<0xffffffff 0xffffffff 1 4 4 4 4>,
--
2.9.3

View File

@ -1,42 +0,0 @@
From f24f2dec25043cf7e6ef0f80a65dde45f2f131dd Mon Sep 17 00:00:00 2001
From: franciscofranco <franciscofranco.1990@gmail.com>
Date: Wed, 20 Jan 2016 01:45:39 +0000
Subject: [PATCH] IKSWM-6057: dts: mmc: remove wakeup on idle flag
Remove the wakeup-on-idle flag can improve the mmc
performance(verified with iozone). No current drain
and other system performance impact.
Change-Id: Ia90cdfb66569b5ee3713d2c9785a2b7a9d24760e
Signed-off-by: Lianwei Wang <a22439@motorola.com>
Reviewed-on: http://gerrit.mot.com/785887
SLTApproved: Slta Waiver <sltawvr@motorola.com>
SME-Granted: SME Approvals Granted
Tested-by: Jira Key <jirakey@motorola.com>
Reviewed-by: Zhi-Ming Yuan <a14194@motorola.com>
Submit-Approved: Jira Key <jirakey@motorola.com>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
---
arch/arm/boot/dts/qcom/msm8992.dtsi | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/arm/boot/dts/qcom/msm8992.dtsi b/arch/arm/boot/dts/qcom/msm8992.dtsi
index 5dedecb..dc70365 100644
--- a/arch/arm/boot/dts/qcom/msm8992.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8992.dtsi
@@ -1706,7 +1706,6 @@
qcom,cpu-dma-latency-us = <301 70>;
qcom,cpu-affinity = "affine_cores";
qcom,cpu-affinity-mask = <0x0f 0xf0>;
- qcom,wakeup-on-idle;
qcom,msm-bus,name = "sdhc1";
qcom,msm-bus,num-cases = <9>;
@@ -1746,7 +1745,6 @@
qcom,cpu-dma-latency-us = <301 70>;
qcom,cpu-affinity = "affine_cores";
qcom,cpu-affinity-mask = <0x0f 0xf0>;
- qcom,wakeup-on-idle;
qcom,msm-bus,name = "sdhc2";
qcom,msm-bus,num-cases = <8>;

View File

@ -1,35 +0,0 @@
From 87a5b2ff5c53d13f937bdcb20ab462e4aaa61e3b Mon Sep 17 00:00:00 2001
From: Tad <tad@spotco.us>
Date: Fri, 18 Nov 2016 12:38:14 -0500
Subject: [PATCH] Enable overclock by default
Change-Id: Idc640d7f58271892ae91678de847d9d1fcc4b281
---
drivers/cpufreq/qcom-cpufreq.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/cpufreq/qcom-cpufreq.c b/drivers/cpufreq/qcom-cpufreq.c
index dd3a589..4cc8680 100644
--- a/drivers/cpufreq/qcom-cpufreq.c
+++ b/drivers/cpufreq/qcom-cpufreq.c
@@ -31,7 +31,7 @@
static DEFINE_MUTEX(l2bw_lock);
-static unsigned long arg_cpu_max_a53 = 1440000;
+static unsigned long arg_cpu_max_a53 = 1632000;
static int __init cpufreq_read_cpu_max_a53(char *cpu_max_a53)
{
@@ -48,7 +48,7 @@ static int __init cpufreq_read_cpu_max_a53(char *cpu_max_a53)
}
__setup("cpu_max_a53=", cpufreq_read_cpu_max_a53);
-static unsigned long arg_cpu_max_a57 = 1824000;
+static unsigned long arg_cpu_max_a57 = 2016000;
static int __init cpufreq_read_cpu_max_a57(char *cpu_max_a57)
{
--
2.9.3

View File

@ -1,709 +0,0 @@
From 0b95ae785c6f1df0e7466a1922f5f3ff858897ae Mon Sep 17 00:00:00 2001
From: Tad <tad@spotco.us>
Date: Sat, 17 Oct 2015 20:49:57 -0400
Subject: [PATCH] Overclocked to 2.8Ghz, underclocked to 268Mhz
---
arch/arm/boot/dts/msm8974-v2.dtsi | 2 +-
arch/arm/boot/dts/msm8974pro-pm8941.dtsi | 8 +-
.../arm/boot/dts/msm8974pro-pma8084-regulator.dtsi | 16 +-
arch/arm/boot/dts/msm8974pro.dtsi | 190 ++++++++++++++++++---
4 files changed, 179 insertions(+), 37 deletions(-)
diff --git a/arch/arm/boot/dts/msm8974-v2.dtsi b/arch/arm/boot/dts/msm8974-v2.dtsi
index dbb3bd6..40a730e 100644
--- a/arch/arm/boot/dts/msm8974-v2.dtsi
+++ b/arch/arm/boot/dts/msm8974-v2.dtsi
@@ -123,7 +123,7 @@
<1880000 2068000>,
<3008000 3309000>,
<3760000 4136000>,
- <4468000 2457000>;
+ <4468000 2457600>;
qcom,dec-ocmem-ab-ib = <0 0>,
<176000 519000>,
<456000 519000>,
diff --git a/arch/arm/boot/dts/msm8974pro-pm8941.dtsi b/arch/arm/boot/dts/msm8974pro-pm8941.dtsi
index b502078..79729ea 100644
--- a/arch/arm/boot/dts/msm8974pro-pm8941.dtsi
+++ b/arch/arm/boot/dts/msm8974pro-pm8941.dtsi
@@ -39,22 +39,22 @@
};
&krait0_vreg {
- regulator-max-microvolt = <1120000>;
+ regulator-max-microvolt = <1250000>;
qcom,ldo-delta-voltage = <12500>;
};
&krait1_vreg {
- regulator-max-microvolt = <1120000>;
+ regulator-max-microvolt = <1250000>;
qcom,ldo-delta-voltage = <12500>;
};
&krait2_vreg {
- regulator-max-microvolt = <1120000>;
+ regulator-max-microvolt = <1250000>;
qcom,ldo-delta-voltage = <12500>;
};
&krait3_vreg {
- regulator-max-microvolt = <1120000>;
+ regulator-max-microvolt = <1250000>;
qcom,ldo-delta-voltage = <12500>;
};
diff --git a/arch/arm/boot/dts/msm8974pro-pma8084-regulator.dtsi b/arch/arm/boot/dts/msm8974pro-pma8084-regulator.dtsi
index 433d466..428a520 100644
--- a/arch/arm/boot/dts/msm8974pro-pma8084-regulator.dtsi
+++ b/arch/arm/boot/dts/msm8974pro-pma8084-regulator.dtsi
@@ -492,9 +492,9 @@
<0xf908a800 0x1000>; /* APCS_ALIAS0_KPSS_MDD */
reg-names = "acs", "mdd";
regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <1120000>;
+ regulator-max-microvolt = <1250000>;
qcom,headroom-voltage = <150000>;
- qcom,retention-voltage = <675000>;
+ qcom,retention-voltage = <600000>;
qcom,ldo-default-voltage = <750000>;
qcom,ldo-threshold-voltage = <850000>;
qcom,ldo-delta-voltage = <12500>;
@@ -508,9 +508,9 @@
<0xf909a800 0x1000>; /* APCS_ALIAS1_KPSS_MDD */
reg-names = "acs", "mdd";
regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <1120000>;
+ regulator-max-microvolt = <1250000>;
qcom,headroom-voltage = <150000>;
- qcom,retention-voltage = <675000>;
+ qcom,retention-voltage = <600000>;
qcom,ldo-default-voltage = <750000>;
qcom,ldo-threshold-voltage = <850000>;
qcom,ldo-delta-voltage = <12500>;
@@ -524,9 +524,9 @@
<0xf90aa800 0x1000>; /* APCS_ALIAS2_KPSS_MDD */
reg-names = "acs", "mdd";
regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <1120000>;
+ regulator-max-microvolt = <1250000>;
qcom,headroom-voltage = <150000>;
- qcom,retention-voltage = <675000>;
+ qcom,retention-voltage = <600000>;
qcom,ldo-default-voltage = <750000>;
qcom,ldo-threshold-voltage = <850000>;
qcom,ldo-delta-voltage = <12500>;
@@ -540,9 +540,9 @@
<0xf90ba800 0x1000>; /* APCS_ALIAS3_KPSS_MDD */
reg-names = "acs", "mdd";
regulator-min-microvolt = <500000>;
- regulator-max-microvolt = <1120000>;
+ regulator-max-microvolt = <1250000>;
qcom,headroom-voltage = <150000>;
- qcom,retention-voltage = <675000>;
+ qcom,retention-voltage = <600000>;
qcom,ldo-default-voltage = <750000>;
qcom,ldo-threshold-voltage = <850000>;
qcom,ldo-delta-voltage = <12500>;
diff --git a/arch/arm/boot/dts/msm8974pro.dtsi b/arch/arm/boot/dts/msm8974pro.dtsi
index e332793..8524180 100644
--- a/arch/arm/boot/dts/msm8974pro.dtsi
+++ b/arch/arm/boot/dts/msm8974pro.dtsi
@@ -91,6 +91,7 @@
qcom,clock-krait@f9016000 {
qcom,speed1-pvs0-bin-v0 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 74 >,
< 345600000 775000 85 >,
< 422400000 775000 104 >,
@@ -122,6 +123,7 @@
qcom,speed1-pvs1-bin-v0 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 74 >,
< 345600000 775000 85 >,
< 422400000 775000 104 >,
@@ -153,6 +155,7 @@
qcom,speed1-pvs2-bin-v0 =
< 0 0 0 >,
+ < 268800000 745000 68 >,
< 300000000 750000 74 >,
< 345600000 750000 85 >,
< 422400000 750000 104 >,
@@ -184,6 +187,7 @@
qcom,speed1-pvs3-bin-v0 =
< 0 0 0 >,
+ < 268800000 745000 68 >,
< 300000000 750000 74 >,
< 345600000 750000 85 >,
< 422400000 750000 104 >,
@@ -215,6 +219,7 @@
qcom,speed1-pvs4-bin-v0 =
< 0 0 0 >,
+ < 268800000 745000 68 >,
< 300000000 750000 74 >,
< 345600000 750000 85 >,
< 422400000 750000 104 >,
@@ -246,6 +251,7 @@
qcom,speed1-pvs5-bin-v0 =
< 0 0 0 >,
+ < 268800000 720000 68 >,
< 300000000 725000 74 >,
< 345600000 725000 85 >,
< 422400000 725000 104 >,
@@ -277,6 +283,7 @@
qcom,speed1-pvs6-bin-v0 =
< 0 0 0 >,
+ < 268800000 720000 68 >,
< 300000000 725000 74 >,
< 345600000 725000 85 >,
< 422400000 725000 104 >,
@@ -308,6 +315,7 @@
qcom,speed3-pvs0-bin-v0 =
< 0 0 0 >,
+ < 268800000 795000 68 >,
< 300000000 800000 76 >,
< 345600000 800000 87 >,
< 422400000 800000 106 >,
@@ -338,10 +346,14 @@
< 2265600000 1065000 700 >,
< 2342400000 1080000 734 >,
< 2419200000 1095000 769 >,
- < 2457600000 1100000 785 >;
+ < 2457600000 1100000 785 >,
+ < 2572800000 1145000 827 >,
+ < 2726400000 1205000 900 >,
+ < 2880000000 1235000 937 >;
qcom,speed3-pvs1-bin-v0 =
< 0 0 0 >,
+ < 268800000 795000 68 >,
< 300000000 800000 76 >,
< 345600000 800000 87 >,
< 422400000 800000 106 >,
@@ -372,10 +384,14 @@
< 2265600000 1040000 700 >,
< 2342400000 1055000 734 >,
< 2419200000 1070000 769 >,
- < 2457600000 1075000 785 >;
+ < 2457600000 1075000 785 >,
+ < 2572800000 1145000 827 >,
+ < 2726400000 1205000 900 >,
+ < 2880000000 1235000 937 >;
qcom,speed3-pvs2-bin-v0 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 106 >,
@@ -406,10 +422,14 @@
< 2265600000 1015000 700 >,
< 2342400000 1030000 734 >,
< 2419200000 1045000 769 >,
- < 2457600000 1050000 785 >;
+ < 2457600000 1050000 785 >,
+ < 2572800000 1125000 827 >,
+ < 2726400000 1195000 900 >,
+ < 2880000000 1225000 937 >;
qcom,speed3-pvs3-bin-v0 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 106 >,
@@ -440,10 +460,14 @@
< 2265600000 990000 700 >,
< 2342400000 1005000 734 >,
< 2419200000 1020000 769 >,
- < 2457600000 1025000 785 >;
+ < 2457600000 1025000 785 >,
+ < 2572800000 1115000 827 >,
+ < 2726400000 1185000 900 >,
+ < 2880000000 1215000 937 >;
qcom,speed3-pvs4-bin-v0 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 106 >,
@@ -474,10 +498,14 @@
< 2265600000 965000 700 >,
< 2342400000 980000 734 >,
< 2419200000 995000 769 >,
- < 2457600000 1000000 785 >;
+ < 2457600000 1000000 785 >,
+ < 2572800000 1075000 827 >,
+ < 2726400000 1175000 900 >,
+ < 2880000000 1205000 937 >;
qcom,speed3-pvs5-bin-v0 =
< 0 0 0 >,
+ < 268800000 745000 68 >,
< 300000000 750000 76 >,
< 345600000 750000 87 >,
< 422400000 750000 106 >,
@@ -508,10 +536,14 @@
< 2265600000 940000 700 >,
< 2342400000 955000 734 >,
< 2419200000 970000 769 >,
- < 2457600000 975000 785 >;
+ < 2457600000 975000 785 >,
+ < 2572800000 1025000 827 >,
+ < 2726400000 1175000 900 >,
+ < 2880000000 1195000 937 >;
qcom,speed3-pvs6-bin-v0 =
< 0 0 0 >,
+ < 268800000 745000 68 >,
< 300000000 750000 76 >,
< 345600000 750000 87 >,
< 422400000 750000 106 >,
@@ -542,10 +574,14 @@
< 2265600000 915000 700 >,
< 2342400000 930000 734 >,
< 2419200000 945000 769 >,
- < 2457600000 950000 785 >;
+ < 2457600000 950000 785 >,
+ < 2572800000 1010000 827 >,
+ < 2726400000 1155000 900 >,
+ < 2880000000 1175000 937 >;
qcom,speed1-pvs0-bin-v1 =
< 0 0 0 >,
+ < 268800000 795000 68 >,
< 300000000 800000 76 >,
< 345600000 810000 87 >,
< 422400000 820000 108 >,
@@ -577,6 +613,7 @@
qcom,speed1-pvs1-bin-v1 =
< 0 0 0 >,
+ < 268800000 795000 68 >,
< 300000000 800000 76 >,
< 345600000 800000 87 >,
< 422400000 810000 108 >,
@@ -608,6 +645,7 @@
qcom,speed1-pvs2-bin-v1 =
< 0 0 0 >,
+ < 268800000 795000 68 >,
< 300000000 800000 76 >,
< 345600000 800000 87 >,
< 422400000 800000 108 >,
@@ -639,6 +677,7 @@
qcom,speed1-pvs3-bin-v1 =
< 0 0 0 >,
+ < 268800000 795000 68 >,
< 300000000 800000 76 >,
< 345600000 800000 87 >,
< 422400000 800000 108 >,
@@ -670,6 +709,7 @@
qcom,speed1-pvs4-bin-v1 =
< 0 0 0 >,
+ < 268800000 795000 68 >,
< 300000000 800000 76 >,
< 345600000 800000 87 >,
< 422400000 800000 108 >,
@@ -701,6 +741,7 @@
qcom,speed1-pvs5-bin-v1 =
< 0 0 0 >,
+ < 268800000 795000 68 >,
< 300000000 800000 76 >,
< 345600000 800000 87 >,
< 422400000 800000 108 >,
@@ -732,6 +773,7 @@
qcom,speed1-pvs6-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 108 >,
@@ -763,6 +805,7 @@
qcom,speed1-pvs7-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 108 >,
@@ -794,6 +837,7 @@
qcom,speed1-pvs8-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 108 >,
@@ -825,6 +869,7 @@
qcom,speed1-pvs9-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 108 >,
@@ -856,6 +901,7 @@
qcom,speed1-pvs10-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 108 >,
@@ -887,6 +933,7 @@
qcom,speed1-pvs11-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 108 >,
@@ -918,6 +965,7 @@
qcom,speed1-pvs12-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 108 >,
@@ -949,6 +997,7 @@
qcom,speed1-pvs13-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 108 >,
@@ -980,6 +1029,7 @@
qcom,speed1-pvs14-bin-v1 =
< 0 0 0 >,
+ < 268800000 745000 68 >,
< 300000000 750000 76 >,
< 345600000 750000 87 >,
< 422400000 750000 108 >,
@@ -1011,6 +1061,7 @@
qcom,speed1-pvs15-bin-v1 =
< 0 0 0 >,
+ < 268800000 745000 68 >,
< 300000000 750000 76 >,
< 345600000 750000 87 >,
< 422400000 750000 108 >,
@@ -1042,6 +1093,7 @@
qcom,speed3-pvs0-bin-v1 =
< 0 0 0 >,
+ < 268800000 795000 68 >,
< 300000000 800000 76 >,
< 345600000 800000 87 >,
< 422400000 800000 106 >,
@@ -1072,10 +1124,14 @@
< 2265600000 1085000 716 >,
< 2342400000 1100000 751 >,
< 2419200000 1115000 786 >,
- < 2457600000 1120000 802 >;
+ < 2457600000 1120000 802 >,
+ < 2572800000 1175000 827 >,
+ < 2726400000 1225000 900 >,
+ < 2880000000 1265000 937 >;
qcom,speed3-pvs1-bin-v1 =
< 0 0 0 >,
+ < 268800000 795000 68 >,
< 300000000 800000 76 >,
< 345600000 800000 87 >,
< 422400000 800000 106 >,
@@ -1106,10 +1162,14 @@
< 2265600000 1075000 716 >,
< 2342400000 1090000 751 >,
< 2419200000 1105000 786 >,
- < 2457600000 1110000 802 >;
+ < 2457600000 1110000 802 >,
+ < 2572800000 1165000 827 >,
+ < 2726400000 1215000 900 >,
+ < 2880000000 1245000 937 >;
qcom,speed3-pvs2-bin-v1 =
< 0 0 0 >,
+ < 268800000 795000 68 >,
< 300000000 800000 76 >,
< 345600000 800000 87 >,
< 422400000 800000 106 >,
@@ -1140,10 +1200,14 @@
< 2265600000 1065000 716 >,
< 2342400000 1080000 751 >,
< 2419200000 1095000 786 >,
- < 2457600000 1100000 802 >;
+ < 2457600000 1100000 802 >,
+ < 2572800000 1145000 827 >,
+ < 2726400000 1185000 900 >,
+ < 2880000000 1215000 937 >;
qcom,speed3-pvs3-bin-v1 =
< 0 0 0 >,
+ < 268800000 795000 68 >,
< 300000000 800000 76 >,
< 345600000 800000 87 >,
< 422400000 800000 106 >,
@@ -1174,10 +1238,14 @@
< 2265600000 1055000 716 >,
< 2342400000 1070000 751 >,
< 2419200000 1085000 786 >,
- < 2457600000 1090000 802 >;
+ < 2457600000 1090000 802 >,
+ < 2572800000 1145000 827 >,
+ < 2726400000 1175000 900 >,
+ < 2880000000 1205000 937 >;
qcom,speed3-pvs4-bin-v1 =
< 0 0 0 >,
+ < 268800000 795000 68 >,
< 300000000 800000 76 >,
< 345600000 800000 87 >,
< 422400000 800000 106 >,
@@ -1208,10 +1276,14 @@
< 2265600000 1045000 716 >,
< 2342400000 1060000 751 >,
< 2419200000 1075000 786 >,
- < 2457600000 1080000 802 >;
+ < 2457600000 1080000 802 >,
+ < 2572800000 1135000 827 >,
+ < 2726400000 1165000 900 >,
+ < 2880000000 1195000 937 >;
qcom,speed3-pvs5-bin-v1 =
< 0 0 0 >,
+ < 268800000 795000 68 >,
< 300000000 800000 76 >,
< 345600000 800000 87 >,
< 422400000 800000 106 >,
@@ -1242,10 +1314,14 @@
< 2265600000 1035000 716 >,
< 2342400000 1050000 751 >,
< 2419200000 1065000 786 >,
- < 2457600000 1070000 802 >;
+ < 2457600000 1070000 802 >,
+ < 2572800000 1125000 827 >,
+ < 2726400000 1155000 900 >,
+ < 2880000000 1185000 937 >;
qcom,speed3-pvs6-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 106 >,
@@ -1276,10 +1352,14 @@
< 2265600000 1025000 716 >,
< 2342400000 1040000 751 >,
< 2419200000 1055000 786 >,
- < 2457600000 1060000 802 >;
+ < 2457600000 1060000 802 >,
+ < 2572800000 1115000 827 >,
+ < 2726400000 1145000 900 >,
+ < 2880000000 1175000 937 >;
qcom,speed3-pvs7-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 106 >,
@@ -1310,10 +1390,14 @@
< 2265600000 1015000 716 >,
< 2342400000 1030000 751 >,
< 2419200000 1045000 786 >,
- < 2457600000 1050000 802 >;
+ < 2457600000 1050000 802 >,
+ < 2572800000 1105000 827 >,
+ < 2726400000 1135000 900 >,
+ < 2880000000 1165000 937 >;
qcom,speed3-pvs8-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 106 >,
@@ -1344,10 +1428,14 @@
< 2265600000 1005000 716 >,
< 2342400000 1020000 751 >,
< 2419200000 1035000 786 >,
- < 2457600000 1040000 802 >;
+ < 2457600000 1040000 802 >,
+ < 2572800000 1095000 827 >,
+ < 2726400000 1125000 900 >,
+ < 2880000000 1155000 937 >;
qcom,speed3-pvs9-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 106 >,
@@ -1378,10 +1466,14 @@
< 2265600000 995000 716 >,
< 2342400000 1010000 751 >,
< 2419200000 1025000 786 >,
- < 2457600000 1030000 802 >;
+ < 2457600000 1030000 802 >,
+ < 2572800000 1085000 827 >,
+ < 2726400000 1115000 900 >,
+ < 2880000000 1145000 937 >;
qcom,speed3-pvs10-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 106 >,
@@ -1412,10 +1504,14 @@
< 2265600000 985000 716 >,
< 2342400000 1000000 751 >,
< 2419200000 1015000 786 >,
- < 2457600000 1020000 802 >;
+ < 2457600000 1020000 802 >,
+ < 2572800000 1075000 827 >,
+ < 2726400000 1105000 900 >,
+ < 2880000000 1135000 937 >;
qcom,speed3-pvs11-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 106 >,
@@ -1446,10 +1542,14 @@
< 2265600000 975000 716 >,
< 2342400000 990000 751 >,
< 2419200000 1005000 786 >,
- < 2457600000 1010000 802 >;
+ < 2457600000 1010000 802 >,
+ < 2572800000 1065000 827 >,
+ < 2726400000 1095000 900 >,
+ < 2880000000 1125000 937 >;
qcom,speed3-pvs12-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 106 >,
@@ -1480,10 +1580,14 @@
< 2265600000 965000 716 >,
< 2342400000 980000 751 >,
< 2419200000 995000 786 >,
- < 2457600000 1000000 802 >;
+ < 2457600000 1000000 802 >,
+ < 2572800000 1065000 827 >,
+ < 2726400000 1085000 900 >,
+ < 2880000000 1115000 937 >;
qcom,speed3-pvs13-bin-v1 =
< 0 0 0 >,
+ < 268800000 770000 68 >,
< 300000000 775000 76 >,
< 345600000 775000 87 >,
< 422400000 775000 106 >,
@@ -1514,10 +1618,14 @@
< 2265600000 955000 716 >,
< 2342400000 970000 751 >,
< 2419200000 985000 786 >,
- < 2457600000 990000 802 >;
+ < 2457600000 990000 802 >,
+ < 2572800000 1045000 827 >,
+ < 2726400000 1065000 900 >,
+ < 2880000000 1095000 937 >;
qcom,speed3-pvs14-bin-v1 =
< 0 0 0 >,
+ < 268800000 745000 68 >,
< 300000000 750000 76 >,
< 345600000 750000 87 >,
< 422400000 750000 106 >,
@@ -1548,10 +1656,14 @@
< 2265600000 945000 716 >,
< 2342400000 960000 751 >,
< 2419200000 975000 786 >,
- < 2457600000 980000 802 >;
+ < 2457600000 980000 802 >,
+ < 2572800000 1035000 827 >,
+ < 2726400000 1055000 900 >,
+ < 2880000000 1085000 937 >;
qcom,speed3-pvs15-bin-v1 =
< 0 0 0 >,
+ < 268800000 745000 68 >,
< 300000000 750000 76 >,
< 345600000 750000 87 >,
< 422400000 750000 106 >,
@@ -1582,9 +1694,39 @@
< 2265600000 935000 716 >,
< 2342400000 950000 751 >,
< 2419200000 965000 786 >,
- < 2457600000 970000 802 >;
+ < 2457600000 970000 802 >,
+ < 2572800000 1025000 827 >,
+ < 2726400000 1045000 900 >,
+ < 2880000000 1075000 937 >;
};
+ qcom,msm-cpufreq@0 {
+ reg = <0 4>;
+ compatible = "qcom,msm-cpufreq";
+ qcom,cpufreq-table =
+ < 268800 /* 75 MHz */ >,
+ < 300000 /* 75 MHz */ >,
+ < 422400 /* 150 MHz */ >,
+ < 652800 /* 200 MHz */ >,
+ < 729600 /* 307 MHz */ >,
+ < 883200 /* 307 MHz */ >,
+ < 960000 /* 460 MHz */ >,
+ < 1036800 /* 460 MHz */ >,
+ < 1190400 /* 460 MHz */ >,
+ < 1267200 /* 614 MHz */ >,
+ < 1497600 /* 614 MHz */ >,
+ < 1574400 /* 800 MHz */ >,
+ < 1728000 /* 800 MHz */ >,
+ < 1958400 /* 931 MHz */ >,
+ < 2265600 /* 931 MHz */ >,
+ < 2342400 /* 931 MHz */ >,
+ < 2419200 /* 931 MHz */ >,
+ < 2457600 /* 931 MHz */ >,
+ < 2572800 /* 931 MHz */ >,
+ < 2726400 /* 931 MHz */ >,
+ < 2880000 /* 931 MHz */ >;
+ };
+
i2c@f9928000 { /* BLSP-1 QUP-6 */
cell-index = <3>;
compatible = "qcom,i2c-qup";
@@ -1745,7 +1887,7 @@
<1880000 2068000>,
<3008000 3309000>,
<3760000 4136000>,
- <4468000 2457000>;
+ <4468000 2457600>;
qcom,dec-ocmem-ab-ib = <0 0>,
<176000 519000>,
<456000 519000>,
--
2.10.2

View File

@ -1,23 +0,0 @@
From 94d13624a7710818698d5787a7bcd7f8a272762b Mon Sep 17 00:00:00 2001
From: Tad <tad@spotco.us>
Date: Sat, 17 Oct 2015 20:50:31 -0400
Subject: [PATCH] Update defconfig
---
arch/arm/configs/cyanogenmod_bacon_defconfig | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm/configs/cyanogenmod_bacon_defconfig b/arch/arm/configs/cyanogenmod_bacon_defconfig
index 33ceebd..8cb1936 100644
--- a/arch/arm/configs/cyanogenmod_bacon_defconfig
+++ b/arch/arm/configs/cyanogenmod_bacon_defconfig
@@ -591,3 +591,6 @@ CONFIG_CRYPTO_TWOFISH=y
CONFIG_CRYPTO_DEV_QCRYPTO=y
CONFIG_CRYPTO_DEV_QCE=y
CONFIG_CRYPTO_DEV_QCEDEV=y
+
+CONFIG_DIAG_CHAR=y
+CONFIG_DIAG_OVER_USB=y
--
2.10.2

Some files were not shown because too many files have changed in this diff Show More