From dec234f4753995026908af90dd6eb8613092d90d Mon Sep 17 00:00:00 2001 From: Robin Peng Date: Tue, 28 Mar 2023 10:19:48 +0000 Subject: [PATCH] init zumapro from zuma sha 4daedb8feb4d4 Bug: 272725898 Change-Id: I1e1ab5d15e7f4b2b59e28f2e52e07cd7e12f25b3 --- Android.bp | 36 + Android.mk | 30 + BoardConfig-common.mk | 427 +++++++ CleanSpec.mk | 85 ++ NOTICE | 190 +++ aosp_common.mk | 51 + compatibility_matrix.xml | 84 ++ component-overrides.xml | 23 + conf/Android.bp | 84 ++ conf/egl.cfg | 1 + conf/fstab.modem | 4 + conf/fstab.persist | 5 + conf/fstab.postinstall | 4 + conf/fstab.zumapro.in | 25 + conf/init.debug.rc | 55 + conf/init.exynos.nanohub.rc | 20 + conf/init.factory.rc | 19 + conf/init.freq.userdebug.rc | 69 + conf/init.recovery.device.rc | 16 + conf/init.zumapro.rc | 1065 ++++++++++++++++ conf/init.zumapro.usb.rc | 194 +++ conf/recovery.wipe | 3 + conf/soundtrigger_conf.h | 109 ++ conf/ueventd.zumapro.rc | 225 ++++ default-permissions.xml | 130 ++ device-common.mk | 55 + device-shipping-common.mk | 16 + device.mk | 1132 +++++++++++++++++ device_framework_matrix_product.xml | 236 ++++ display/display_colordata_cal0.pb | Bin 0 -> 28276 bytes dumpstate/Android.bp | 32 + dumpstate/OWNERS | 9 + dumpstate/README.txt | 1 + dumpstate/dump_cma.sh | 9 + dumpstate/dump_gsa.sh | 8 + dumpstate/dump_power.sh | 411 ++++++ dumpstate/dump_wlan.sh | 3 + dumpstate/item.mk | 6 + factory/factory_post_boot/Android.bp | 25 + .../factory_post_boot/factory_post_boot.sh | 4 + factory/framework/Android.bp | 15 + factory/framework/AndroidManifest.xml | 24 + .../res/drawable-nodpi/default_wallpaper.png | Bin 0 -> 22697 bytes factory/launcher3/Android.bp | 15 + factory/launcher3/AndroidManifest.xml | 25 + .../res/xml/default_workspace_5x5.xml | 41 + factory/settings/Android.bp | 15 + factory/settings/AndroidManifest.xml | 25 + factory/settings/res/values/defaults.xml | 26 + factory_common.mk | 96 ++ fingerprint/fpc1540/fingerprint_config.mk | 18 + .../fpc1540/fingerprint_config_factory.mk | 21 + fingerprint/fpc1540/fpc1540.mk | 8 + fingerprint/fpc1540/fpc1540_factory.mk | 10 + fingerprint/udfps.mk | 28 + fingerprint/udfps_factory.mk | 22 + firmware/BCM.btaddr | 1 + firmware/BCM4362A2_001.003.006.0027.0033.hcd | Bin 0 -> 84460 bytes ...001.010.0101.0000_Google_eval_USI_ES10.hcd | Bin 0 -> 493788 bytes ....0000_Google_eval_USI_ES10_ePA_Updated.hcd | Bin 0 -> 285777 bytes health/Android.bp | 67 + health/Health.cpp | 264 ++++ ...android.hardware.health-service.zumapro.rc | 17 + ...ndroid.hardware.health-service.zumapro.xml | 7 + ...ardware.health-service.zumapro_recovery.rc | 7 + init.hardware.wlc.rc.userdebug | 24 + interfaces/boot/1.0/Android.bp | 66 + interfaces/boot/1.0/BootControl.cpp | 272 ++++ interfaces/boot/1.0/BootControl.h | 59 + interfaces/boot/1.0/GptUtils.cpp | 199 +++ interfaces/boot/1.0/GptUtils.h | 79 ++ ...droid.hardware.boot@1.0-service-zumapro.rc | 4 + interfaces/boot/1.0/service.cpp | 47 + interfaces/boot/1.2/Android.bp | 83 ++ interfaces/boot/1.2/BootControl.cpp | 501 ++++++++ interfaces/boot/1.2/BootControl.h | 88 ++ interfaces/boot/1.2/DevInfo.h | 61 + interfaces/boot/1.2/GptUtils.cpp | 193 +++ interfaces/boot/1.2/GptUtils.h | 79 ++ ...droid.hardware.boot@1.2-service-zumapro.rc | 7 + interfaces/boot/1.2/service.cpp | 50 + keymaster/Android.bp | 40 + keymaster/wait_for_strongbox.cpp | 59 + keymaster/wait_for_strongbox.rc | 9 + manifest.xml | 40 + manifest_media.xml | 12 + manifest_media_aosp.xml | 11 + media_codecs.xml | 82 ++ media_codecs_aosp_c2.xml | 256 ++++ media_codecs_bo_c2.xml | 65 + media_codecs_performance.xml | 18 + media_codecs_performance_c2.xml | 279 ++++ media_profiles.xml | 895 +++++++++++++ modem/userdebug.mk | 1 + modem_ml/modem_ml_models_user.conf | 3 + modem_ml/modem_ml_models_userdebug.conf | 3 + .../SettingsProvider/res/values/defaults.xml | 23 + .../apps/PixelLogger/res/values/arrays.xml | 7 + .../apps/PixelLogger/res/values/config.xml | 10 + .../PixelLogger/res/values/configmessages.xml | 19 + .../apps/ModemService/res/values/config.xml | 21 + .../apps/PixelLogger/res/values/arrays.xml | 6 + .../apps/PixelLogger/res/values/config.xml | 5 + .../deferred_setup_closing_img.xml | 119 ++ .../res/drawable-nodpi/placeholder.png | Bin 0 -> 4645 bytes .../drawable/deferred_setup_closing_img.xml | 121 ++ .../drawable/deferred_setup_welcome_img.xml | 167 +++ .../res/drawable/ic_deferred_setup_icon.xml | 35 + .../SetupWizard/res/drawable/ic_language.xml | 26 + .../res/drawable/ic_logo_googleg.xml | 35 + .../res/drawable/ic_network_signal.xml | 39 + .../res/layout/esim_intro_activity.xml | 55 + .../SetupWizard/res/layout/items_esim.xml | 74 ++ .../res/layout/sim_missing_activity.xml | 80 ++ .../res/layout/welcome_activity.xml | 124 ++ .../welcome_activity_pre_transition.xml | 23 + .../SetupWizard/res/raw/esim_illustration.mp4 | Bin 0 -> 84148 bytes .../SetupWizard/res/raw/sim_illustration.mp4 | Bin 0 -> 48632 bytes .../apps/SetupWizard/res/raw/welcome_bg.mp4 | Bin 0 -> 787739 bytes .../res/transition/welcome_enter.xml | 27 + .../SetupWizard/res/values-af/strings.xml | 22 + .../SetupWizard/res/values-am/strings.xml | 22 + .../SetupWizard/res/values-ar/strings.xml | 22 + .../SetupWizard/res/values-as/strings.xml | 22 + .../SetupWizard/res/values-az/strings.xml | 22 + .../res/values-b+sr+Latn/strings.xml | 22 + .../SetupWizard/res/values-be/strings.xml | 22 + .../SetupWizard/res/values-bg/strings.xml | 22 + .../SetupWizard/res/values-bn/strings.xml | 22 + .../SetupWizard/res/values-bs/strings.xml | 22 + .../SetupWizard/res/values-ca/strings.xml | 22 + .../SetupWizard/res/values-cs/strings.xml | 22 + .../SetupWizard/res/values-da/strings.xml | 22 + .../SetupWizard/res/values-de/strings.xml | 22 + .../SetupWizard/res/values-el/strings.xml | 22 + .../SetupWizard/res/values-en-rAU/strings.xml | 22 + .../SetupWizard/res/values-en-rCA/strings.xml | 22 + .../SetupWizard/res/values-en-rGB/strings.xml | 22 + .../SetupWizard/res/values-en-rIN/strings.xml | 22 + .../SetupWizard/res/values-en-rXC/strings.xml | 22 + .../SetupWizard/res/values-es-rUS/strings.xml | 22 + .../SetupWizard/res/values-es/strings.xml | 22 + .../SetupWizard/res/values-et/strings.xml | 22 + .../SetupWizard/res/values-eu/strings.xml | 22 + .../SetupWizard/res/values-fa/strings.xml | 22 + .../SetupWizard/res/values-fi/strings.xml | 22 + .../SetupWizard/res/values-fr-rCA/strings.xml | 22 + .../SetupWizard/res/values-fr/strings.xml | 22 + .../SetupWizard/res/values-gl/strings.xml | 22 + .../SetupWizard/res/values-gu/strings.xml | 22 + .../SetupWizard/res/values-hi/strings.xml | 22 + .../SetupWizard/res/values-hr/strings.xml | 22 + .../SetupWizard/res/values-hu/strings.xml | 22 + .../SetupWizard/res/values-hy/strings.xml | 22 + .../SetupWizard/res/values-in/strings.xml | 22 + .../SetupWizard/res/values-is/strings.xml | 22 + .../SetupWizard/res/values-it/strings.xml | 22 + .../SetupWizard/res/values-iw/strings.xml | 22 + .../SetupWizard/res/values-ja/strings.xml | 22 + .../SetupWizard/res/values-ka/strings.xml | 22 + .../SetupWizard/res/values-kk/strings.xml | 22 + .../SetupWizard/res/values-km/strings.xml | 22 + .../SetupWizard/res/values-kn/strings.xml | 22 + .../SetupWizard/res/values-ko/strings.xml | 22 + .../SetupWizard/res/values-ky/strings.xml | 22 + .../SetupWizard/res/values-lo/strings.xml | 22 + .../SetupWizard/res/values-lt/strings.xml | 22 + .../SetupWizard/res/values-lv/strings.xml | 22 + .../res/values-mcc204-mnc04/config.xml | 23 + .../res/values-mcc310-mnc004/config.xml | 23 + .../res/values-mcc311-mnc480/config.xml | 23 + .../SetupWizard/res/values-mk/strings.xml | 22 + .../SetupWizard/res/values-ml/strings.xml | 22 + .../SetupWizard/res/values-mn/strings.xml | 22 + .../SetupWizard/res/values-mr/strings.xml | 22 + .../SetupWizard/res/values-ms/strings.xml | 22 + .../SetupWizard/res/values-my/strings.xml | 22 + .../SetupWizard/res/values-nb/strings.xml | 22 + .../SetupWizard/res/values-ne/strings.xml | 22 + .../SetupWizard/res/values-nl/strings.xml | 22 + .../SetupWizard/res/values-or/strings.xml | 22 + .../SetupWizard/res/values-pa/strings.xml | 22 + .../SetupWizard/res/values-pl/strings.xml | 22 + .../SetupWizard/res/values-pt-rBR/strings.xml | 22 + .../SetupWizard/res/values-pt-rPT/strings.xml | 22 + .../SetupWizard/res/values-pt/strings.xml | 22 + .../SetupWizard/res/values-ro/strings.xml | 22 + .../SetupWizard/res/values-ru/strings.xml | 22 + .../SetupWizard/res/values-si/strings.xml | 22 + .../SetupWizard/res/values-sk/strings.xml | 22 + .../SetupWizard/res/values-sl/strings.xml | 22 + .../SetupWizard/res/values-sq/strings.xml | 22 + .../SetupWizard/res/values-sr/strings.xml | 22 + .../SetupWizard/res/values-sv/strings.xml | 22 + .../SetupWizard/res/values-sw/strings.xml | 22 + .../SetupWizard/res/values-ta/strings.xml | 22 + .../SetupWizard/res/values-te/strings.xml | 22 + .../SetupWizard/res/values-th/strings.xml | 22 + .../SetupWizard/res/values-tl/strings.xml | 22 + .../SetupWizard/res/values-tr/strings.xml | 22 + .../SetupWizard/res/values-uk/strings.xml | 22 + .../SetupWizard/res/values-ur/strings.xml | 22 + .../SetupWizard/res/values-uz/strings.xml | 22 + .../SetupWizard/res/values-vi/strings.xml | 22 + .../SetupWizard/res/values-zh-rCN/strings.xml | 22 + .../SetupWizard/res/values-zh-rHK/strings.xml | 22 + .../SetupWizard/res/values-zh-rTW/strings.xml | 22 + .../SetupWizard/res/values-zu/strings.xml | 22 + .../apps/SetupWizard/res/values/config.xml | 40 + .../apps/SetupWizard/res/values/strings.xml | 24 + .../base/core/res/res/values/arrays.xml | 36 + .../base/core/res/res/values/config.xml | 283 +++++ .../base/core/res/res/values/dimens.xml | 21 + .../ic_5g_plus_mobiledata.xml | 36 + .../ic_5g_plus_mobiledata.xml | 36 + .../res/values-mcc310-mnc004/strings.xml | 22 + .../res/values-mcc311-mnc480/strings.xml | 22 + .../res/values-mcc440-mnc20/config.xml | 26 + .../res/drawable/rounded_corner_bottom.xml | 24 + .../res/drawable/rounded_corner_top.xml | 24 + .../packages/SystemUI/res/values/config.xml | 30 + .../packages/SystemUI/res/values/dimens.xml | 32 + .../apps/Settings/res/values/bools.xml | 20 + .../apps/Settings/res/values/config.xml | 25 + .../services/Telephony/res/values/config.xml | 34 + pixelstats/Android.bp | 42 + pixelstats/pixelstats-vendor.zumapro.rc | 8 + pixelstats/service.cpp | 87 ++ powerstats/Android.bp | 47 + powerstats/ZumaCommonDataProviders.cpp | 683 ++++++++++ .../include/ZumaProCommonDataProviders.h | 39 + radio/config/default.cfg | 1 + radio/config/default.nprf | Bin 0 -> 9061 bytes radio/config/default_metrics.xml | 191 +++ radio/config/logging.conf | 1 + radio/gnss_blanking.csv | 4 + rro_overlays/ConnectivityOverlay/Android.bp | 9 + .../ConnectivityOverlay/AndroidManifest.xml | 27 + .../ConnectivityOverlay/res/values/config.xml | 26 + .../EuiccSupportPixelOverlay/Android.bp | 18 + .../AndroidManifest.xml | 26 + .../res/values/config.xml | 37 + storage/Android.bp | 33 + storage/storage.zumapro.rc | 7 + storage/ufs_firmware_update.sh | 17 + task_profiles.json | 293 +++++ usb/gadget/Android.bp | 49 + usb/gadget/UsbGadget.cpp | 550 ++++++++ usb/gadget/UsbGadget.h | 129 ++ .../android.hardware.usb.gadget-service.rc | 19 + .../android.hardware.usb.gadget-service.xml | 10 + usb/gadget/service_gadget.cpp | 42 + usb/usb/Android.bp | 66 + usb/usb/Usb.cpp | 1022 +++++++++++++++ usb/usb/Usb.h | 99 ++ usb/usb/android.hardware.usb-service.rc | 45 + usb/usb/android.hardware.usb-service.xml | 10 + usb/usb/service.cpp | 37 + vibrator/Android.mk | 17 + widevine/device.mk | 4 + wifi/coex_table.xml | 351 +++++ wifi/qcom/BoardConfig-wifi.mk | 46 + wifi/qcom/p2p_supplicant_overlay.conf | 2 + wifi/qcom/wpa_supplicant_overlay.conf | 10 + 264 files changed, 17032 insertions(+) create mode 100644 Android.bp create mode 100644 Android.mk create mode 100644 BoardConfig-common.mk create mode 100644 CleanSpec.mk create mode 100644 NOTICE create mode 100644 aosp_common.mk create mode 100644 compatibility_matrix.xml create mode 100644 component-overrides.xml create mode 100644 conf/Android.bp create mode 100644 conf/egl.cfg create mode 100644 conf/fstab.modem create mode 100644 conf/fstab.persist create mode 100644 conf/fstab.postinstall create mode 100644 conf/fstab.zumapro.in create mode 100644 conf/init.debug.rc create mode 100644 conf/init.exynos.nanohub.rc create mode 100644 conf/init.factory.rc create mode 100644 conf/init.freq.userdebug.rc create mode 100644 conf/init.recovery.device.rc create mode 100644 conf/init.zumapro.rc create mode 100644 conf/init.zumapro.usb.rc create mode 100644 conf/recovery.wipe create mode 100644 conf/soundtrigger_conf.h create mode 100644 conf/ueventd.zumapro.rc create mode 100644 default-permissions.xml create mode 100644 device-common.mk create mode 100644 device-shipping-common.mk create mode 100644 device.mk create mode 100644 device_framework_matrix_product.xml create mode 100644 display/display_colordata_cal0.pb create mode 100644 dumpstate/Android.bp create mode 100644 dumpstate/OWNERS create mode 100644 dumpstate/README.txt create mode 100644 dumpstate/dump_cma.sh create mode 100644 dumpstate/dump_gsa.sh create mode 100644 dumpstate/dump_power.sh create mode 100644 dumpstate/dump_wlan.sh create mode 100644 dumpstate/item.mk create mode 100644 factory/factory_post_boot/Android.bp create mode 100644 factory/factory_post_boot/factory_post_boot.sh create mode 100644 factory/framework/Android.bp create mode 100644 factory/framework/AndroidManifest.xml create mode 100644 factory/framework/res/drawable-nodpi/default_wallpaper.png create mode 100644 factory/launcher3/Android.bp create mode 100644 factory/launcher3/AndroidManifest.xml create mode 100644 factory/launcher3/res/xml/default_workspace_5x5.xml create mode 100644 factory/settings/Android.bp create mode 100644 factory/settings/AndroidManifest.xml create mode 100644 factory/settings/res/values/defaults.xml create mode 100644 factory_common.mk create mode 100644 fingerprint/fpc1540/fingerprint_config.mk create mode 100644 fingerprint/fpc1540/fingerprint_config_factory.mk create mode 100644 fingerprint/fpc1540/fpc1540.mk create mode 100644 fingerprint/fpc1540/fpc1540_factory.mk create mode 100644 fingerprint/udfps.mk create mode 100644 fingerprint/udfps_factory.mk create mode 100644 firmware/BCM.btaddr create mode 100644 firmware/BCM4362A2_001.003.006.0027.0033.hcd create mode 100644 firmware/BCM4389C0_003.001.010.0101.0000_Google_eval_USI_ES10.hcd create mode 100644 firmware/BCM4389C1_003.002.009.0050.0000_Google_eval_USI_ES10_ePA_Updated.hcd create mode 100644 health/Android.bp create mode 100644 health/Health.cpp create mode 100644 health/android.hardware.health-service.zumapro.rc create mode 100644 health/android.hardware.health-service.zumapro.xml create mode 100644 health/android.hardware.health-service.zumapro_recovery.rc create mode 100644 init.hardware.wlc.rc.userdebug create mode 100644 interfaces/boot/1.0/Android.bp create mode 100644 interfaces/boot/1.0/BootControl.cpp create mode 100644 interfaces/boot/1.0/BootControl.h create mode 100644 interfaces/boot/1.0/GptUtils.cpp create mode 100644 interfaces/boot/1.0/GptUtils.h create mode 100644 interfaces/boot/1.0/android.hardware.boot@1.0-service-zumapro.rc create mode 100644 interfaces/boot/1.0/service.cpp create mode 100644 interfaces/boot/1.2/Android.bp create mode 100644 interfaces/boot/1.2/BootControl.cpp create mode 100644 interfaces/boot/1.2/BootControl.h create mode 100644 interfaces/boot/1.2/DevInfo.h create mode 100644 interfaces/boot/1.2/GptUtils.cpp create mode 100644 interfaces/boot/1.2/GptUtils.h create mode 100644 interfaces/boot/1.2/android.hardware.boot@1.2-service-zumapro.rc create mode 100644 interfaces/boot/1.2/service.cpp create mode 100644 keymaster/Android.bp create mode 100644 keymaster/wait_for_strongbox.cpp create mode 100644 keymaster/wait_for_strongbox.rc create mode 100644 manifest.xml create mode 100644 manifest_media.xml create mode 100644 manifest_media_aosp.xml create mode 100644 media_codecs.xml create mode 100644 media_codecs_aosp_c2.xml create mode 100644 media_codecs_bo_c2.xml create mode 100644 media_codecs_performance.xml create mode 100644 media_codecs_performance_c2.xml create mode 100644 media_profiles.xml create mode 100644 modem/userdebug.mk create mode 100644 modem_ml/modem_ml_models_user.conf create mode 100644 modem_ml/modem_ml_models_userdebug.conf create mode 100644 overlay-factory/frameworks/base/packages/SettingsProvider/res/values/defaults.xml create mode 100644 overlay-factory/vendor/google/apps/PixelLogger/res/values/arrays.xml create mode 100644 overlay-factory/vendor/google/apps/PixelLogger/res/values/config.xml create mode 100644 overlay-factory/vendor/google/apps/PixelLogger/res/values/configmessages.xml create mode 100644 overlay-vendor/vendor/google/apps/ModemService/res/values/config.xml create mode 100644 overlay-vendor/vendor/google/apps/PixelLogger/res/values/arrays.xml create mode 100644 overlay-vendor/vendor/google/apps/PixelLogger/res/values/config.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/drawable-ldrtl/deferred_setup_closing_img.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/drawable-nodpi/placeholder.png create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/deferred_setup_closing_img.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/deferred_setup_welcome_img.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_deferred_setup_icon.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_language.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_logo_googleg.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_network_signal.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/layout/esim_intro_activity.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/layout/items_esim.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/layout/sim_missing_activity.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/layout/welcome_activity.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/layout/welcome_activity_pre_transition.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/raw/esim_illustration.mp4 create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/raw/sim_illustration.mp4 create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/raw/welcome_bg.mp4 create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/transition/welcome_enter.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-af/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-am/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-ar/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-as/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-az/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-b+sr+Latn/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-be/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-bg/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-bn/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-bs/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-ca/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-cs/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-da/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-de/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-el/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-en-rAU/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-en-rCA/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-en-rGB/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-en-rIN/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-en-rXC/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-es-rUS/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-es/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-et/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-eu/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-fa/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-fi/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-fr-rCA/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-fr/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-gl/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-gu/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-hi/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-hr/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-hu/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-hy/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-in/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-is/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-it/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-iw/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-ja/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-ka/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-kk/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-km/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-kn/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-ko/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-ky/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-lo/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-lt/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-lv/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-mcc204-mnc04/config.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-mcc310-mnc004/config.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-mcc311-mnc480/config.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-mk/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-ml/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-mn/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-mr/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-ms/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-my/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-nb/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-ne/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-nl/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-or/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-pa/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-pl/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-pt-rBR/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-pt-rPT/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-pt/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-ro/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-ru/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-si/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-sk/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-sl/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-sq/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-sr/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-sv/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-sw/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-ta/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-te/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-th/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-tl/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-tr/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-uk/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-ur/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-uz/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-vi/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-zh-rCN/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-zh-rHK/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-zh-rTW/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values-zu/strings.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values/config.xml create mode 100644 overlay-vendor/vendor/google/apps/SetupWizard/res/values/strings.xml create mode 100644 overlay/frameworks/base/core/res/res/values/arrays.xml create mode 100644 overlay/frameworks/base/core/res/res/values/config.xml create mode 100644 overlay/frameworks/base/core/res/res/values/dimens.xml create mode 100644 overlay/frameworks/base/packages/SettingsLib/res/drawable-mcc310-mnc004/ic_5g_plus_mobiledata.xml create mode 100644 overlay/frameworks/base/packages/SettingsLib/res/drawable-mcc311-mnc480/ic_5g_plus_mobiledata.xml create mode 100644 overlay/frameworks/base/packages/SettingsLib/res/values-mcc310-mnc004/strings.xml create mode 100644 overlay/frameworks/base/packages/SettingsLib/res/values-mcc311-mnc480/strings.xml create mode 100644 overlay/frameworks/base/packages/SettingsLib/res/values-mcc440-mnc20/config.xml create mode 100644 overlay/frameworks/base/packages/SystemUI/res/drawable/rounded_corner_bottom.xml create mode 100644 overlay/frameworks/base/packages/SystemUI/res/drawable/rounded_corner_top.xml create mode 100644 overlay/frameworks/base/packages/SystemUI/res/values/config.xml create mode 100644 overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml create mode 100755 overlay/packages/apps/Settings/res/values/bools.xml create mode 100755 overlay/packages/apps/Settings/res/values/config.xml create mode 100644 overlay/packages/services/Telephony/res/values/config.xml create mode 100644 pixelstats/Android.bp create mode 100644 pixelstats/pixelstats-vendor.zumapro.rc create mode 100644 pixelstats/service.cpp create mode 100644 powerstats/Android.bp create mode 100644 powerstats/ZumaCommonDataProviders.cpp create mode 100644 powerstats/include/ZumaProCommonDataProviders.h create mode 100644 radio/config/default.cfg create mode 100644 radio/config/default.nprf create mode 100644 radio/config/default_metrics.xml create mode 100644 radio/config/logging.conf create mode 100644 radio/gnss_blanking.csv create mode 100644 rro_overlays/ConnectivityOverlay/Android.bp create mode 100644 rro_overlays/ConnectivityOverlay/AndroidManifest.xml create mode 100644 rro_overlays/ConnectivityOverlay/res/values/config.xml create mode 100644 rro_overlays/EuiccSupportPixelOverlay/Android.bp create mode 100644 rro_overlays/EuiccSupportPixelOverlay/AndroidManifest.xml create mode 100644 rro_overlays/EuiccSupportPixelOverlay/res/values/config.xml create mode 100644 storage/Android.bp create mode 100644 storage/storage.zumapro.rc create mode 100755 storage/ufs_firmware_update.sh create mode 100644 task_profiles.json create mode 100644 usb/gadget/Android.bp create mode 100644 usb/gadget/UsbGadget.cpp create mode 100644 usb/gadget/UsbGadget.h create mode 100644 usb/gadget/android.hardware.usb.gadget-service.rc create mode 100644 usb/gadget/android.hardware.usb.gadget-service.xml create mode 100644 usb/gadget/service_gadget.cpp create mode 100644 usb/usb/Android.bp create mode 100644 usb/usb/Usb.cpp create mode 100644 usb/usb/Usb.h create mode 100644 usb/usb/android.hardware.usb-service.rc create mode 100644 usb/usb/android.hardware.usb-service.xml create mode 100644 usb/usb/service.cpp create mode 100644 vibrator/Android.mk create mode 100644 widevine/device.mk create mode 100644 wifi/coex_table.xml create mode 100644 wifi/qcom/BoardConfig-wifi.mk create mode 100644 wifi/qcom/p2p_supplicant_overlay.conf create mode 100644 wifi/qcom/wpa_supplicant_overlay.conf diff --git a/Android.bp b/Android.bp new file mode 100644 index 0000000..e719cab --- /dev/null +++ b/Android.bp @@ -0,0 +1,36 @@ +soong_namespace { + imports: [ + "hardware/google/interfaces", + "hardware/google/pixel", + ], +} + +package { + default_applicable_licenses: ["device_google_zumapro_license"], +} + +// Added automatically by a large-scale-change that took the approach of +// 'apply every license found to every target'. While this makes sure we respect +// every license restriction, it may not be entirely correct. +// +// e.g. GPL in an MIT project might only apply to the contrib/ directory. +// +// Please consider splitting the single license below into multiple licenses, +// taking care not to lose any license_kind information, and overriding the +// default license using the 'licenses: [...]' property on targets as needed. +// +// For unused files, consider creating a 'fileGroup' with "//visibility:private" +// to attach the license to, and including a comment whether the files may be +// used in the current project. +// See: http://go/android-license-faq +license { + name: "device_google_zumapro_license", + visibility: [":__subpackages__"], + license_kinds: [ + "SPDX-license-identifier-Apache-2.0", + "SPDX-license-identifier-BSD", + ], + license_text: [ + "NOTICE", + ], +} diff --git a/Android.mk b/Android.mk new file mode 100644 index 0000000..fc070c6 --- /dev/null +++ b/Android.mk @@ -0,0 +1,30 @@ +# +# Copyright (C) 2011 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. +# + +# WARNING: Everything listed here will be built on ALL platforms, +# including x86, the universal, and the SDK. Modules must be uniquely +# named (liblights.panda), and must build everywhere, or limit themselves +# to only building on ARM if they include assembly. Individual makefiles +# are responsible for having their own logic, for fine-grained control. + +LOCAL_PATH := $(call my-dir) + +# if some modules are built directly from this directory (not subdirectories), +# their rules should be written here. + +ifeq ($(USES_DEVICE_GOOGLE_ZUMAPRO),true) + include $(call first-makefiles-under,$(LOCAL_PATH)) +endif diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk new file mode 100644 index 0000000..fd963b7 --- /dev/null +++ b/BoardConfig-common.mk @@ -0,0 +1,427 @@ +# +# Copyright (C) 2019 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +include build/make/target/board/BoardConfigMainlineCommon.mk +include build/make/target/board/BoardConfigPixelCommon.mk + +# Should be uncommented after fixing vndk-sp violation is fixed. +PRODUCT_FULL_TREBLE_OVERRIDE := true + +# HACK : To fix up after bring up multimedia devices. +TARGET_SOC := zumapro + +TARGET_SOC_NAME := google + +USES_DEVICE_GOOGLE_ZUMAPRO := true + +TARGET_ARCH := arm64 +TARGET_ARCH_VARIANT := armv8-2a +TARGET_CPU_ABI := arm64-v8a +TARGET_CPU_VARIANT := cortex-a55 +TARGET_CPU_VARIANT_RUNTIME := cortex-a55 + +BOARD_KERNEL_CMDLINE += dyndbg=\"func alloc_contig_dump_pages +p\" +BOARD_KERNEL_CMDLINE += earlycon=exynos4210,0x10870000 console=ttySAC0,115200 androidboot.console=ttySAC0 printk.devkmsg=on +BOARD_KERNEL_CMDLINE += cma_sysfs.experimental=Y +BOARD_KERNEL_CMDLINE += cgroup_disable=memory +BOARD_KERNEL_CMDLINE += rcupdate.rcu_expedited=1 rcu_nocbs=all +BOARD_KERNEL_CMDLINE += stack_depot_disable=off page_pinner=on +BOARD_KERNEL_CMDLINE += swiotlb=1024 +BOARD_BOOTCONFIG += androidboot.boot_devices=13200000.ufs + +TARGET_NO_BOOTLOADER := true +TARGET_NO_RADIOIMAGE := true +BOARD_PREBUILT_BOOTIMAGE := $(wildcard $(TARGET_KERNEL_DIR)/boot.img) +ifneq (,$(BOARD_PREBUILT_BOOTIMAGE)) +TARGET_NO_KERNEL := true +else +TARGET_NO_KERNEL := false +endif +BOARD_USES_GENERIC_KERNEL_IMAGE := true +BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT := true +BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT := true +TARGET_RECOVERY_WIPE := device/google/zumapro/conf/recovery.wipe + +# This is the fstab file that will be included in the recovery image. Note that +# recovery doesn't care about the encryption settings, so it doesn't matter +# whether we use the normal or the fips fstab here. +TARGET_RECOVERY_FSTAB_GENRULE := gen_fstab.zumapro-sw-encrypt + +TARGET_RECOVERY_PIXEL_FORMAT := ABGR_8888 +TARGET_RECOVERY_UI_MARGIN_HEIGHT := 165 +TARGET_RECOVERY_UI_LIB := \ + librecovery_ui_pixel \ + libfstab + +AB_OTA_UPDATER := true + +AB_OTA_PARTITIONS += \ + system \ + system_dlkm \ + system_ext \ + product \ + vbmeta_system + +ifneq ($(PRODUCT_BUILD_BOOT_IMAGE),false) +AB_OTA_PARTITIONS += boot +endif +ifneq ($(PRODUCT_BUILD_INIT_BOOT_IMAGE), false) +AB_OTA_PARTITIONS += init_boot +endif +ifneq ($(PRODUCT_BUILD_VENDOR_BOOT_IMAGE),false) +AB_OTA_PARTITIONS += vendor_boot +AB_OTA_PARTITIONS += dtbo +endif +ifeq ($(PRODUCT_BUILD_VENDOR_KERNEL_BOOT_IMAGE),true) +AB_OTA_PARTITIONS += vendor_kernel_boot +endif +ifneq ($(PRODUCT_BUILD_VBMETA_IMAGE),false) +AB_OTA_PARTITIONS += vbmeta +endif +ifneq ($(PRODUCT_BUILD_PVMFW_IMAGE),false) +AB_OTA_PARTITIONS += pvmfw +endif + +# EMULATOR common modules +BOARD_EMULATOR_COMMON_MODULES := liblight + +OVERRIDE_RS_DRIVER := libRSDriverArm.so +BOARD_EGL_CFG := device/google/zumapro/conf/egl.cfg +#BOARD_USES_HGL := true +USE_OPENGL_RENDERER := true +NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3 +BOARD_USES_EXYNOS5_COMMON_GRALLOC := true +BOARD_USES_EXYNOS_GRALLOC_VERSION := 4 +#BOARD_USES_EXYNOS_GRALLOC_VERSION := $(DEVICE_USES_EXYNOS_GRALLOC_VERSION) +BOARD_USES_ALIGN_RESTRICTION := false +BOARD_USES_GRALLOC_ION_SYNC := true + +# This should be the same value as USE_SWIFTSHADER in device.mk +BOARD_USES_SWIFTSHADER := false + +# Gralloc4 +ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4) +ifeq ($(BOARD_USES_SWIFTSHADER),true) +TARGET_DISABLE_TRIPLE_BUFFERING := true +$(call soong_config_set,arm_gralloc,gralloc_arm_no_external_afbc,true) +$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_basic,false) +$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_wideblk,false) +$(call soong_config_set,arm_gralloc,gralloc_init_afbc,false) +$(call soong_config_set,arm_gralloc,dpu_support_1010102_afbc,false) +else +$(call soong_config_set,arm_gralloc,gralloc_arm_no_external_afbc,false) +$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_basic,true) +$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_wideblk,true) +$(call soong_config_set,arm_gralloc,gralloc_init_afbc,true) +$(call soong_config_set,arm_gralloc,dpu_support_1010102_afbc,true) +endif # ifeq ($(BOARD_USES_SWIFTSHADER),true) +$(call soong_config_set,arm_gralloc,gralloc_ion_sync_on_lock,$(BOARD_USES_GRALLOC_ION_SYNC)) +endif # ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4) + +# libVendorGraphicbuffer +ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4) +$(call soong_config_set,vendorgraphicbuffer,gralloc_version,four) +else +$(call soong_config_set,vendorgraphicbuffer,gralloc_version,three) +endif + +#display_unit_test +ifeq ($(USES_DEVICE_GOOGLE_ZUMAPRO),true) +$(call soong_config_set,display_unit_test,soc,zumapro) +endif + +# Graphics +#BOARD_USES_EXYNOS_DATASPACE_FEATURE := true + +# Enable chain partition for system. +BOARD_AVB_VBMETA_SYSTEM := system system_dlkm system_ext product +BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem +BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA2048 +BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) +BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1 + +# Enable chained vbmeta for boot images +BOARD_AVB_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem +BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA2048 +BOARD_AVB_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) +BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION := 2 + +# Enable chained vbmeta for init_boot images +BOARD_AVB_INIT_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem +BOARD_AVB_INIT_BOOT_ALGORITHM := SHA256_RSA2048 +BOARD_AVB_INIT_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) +BOARD_AVB_INIT_BOOT_ROLLBACK_INDEX_LOCATION := 4 + +TARGET_USERIMAGES_USE_EXT4 := true +TARGET_USERIMAGES_USE_F2FS := true +BOARD_USERDATAIMAGE_PARTITION_SIZE := 11796480000 +BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs +PRODUCT_FS_COMPRESSION := 1 +BOARD_FLASH_BLOCK_SIZE := 4096 +BOARD_MOUNT_SDCARD_RW := true + +# system.img +BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := ext4 + +# product.img +BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4 +TARGET_COPY_OUT_PRODUCT := product + +# system_ext.img +BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4 +TARGET_COPY_OUT_SYSTEM_EXT := system_ext + +# persist.img +BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := f2fs + +######################## +# Video Codec +######################## +# 1. Exynos C2 +BOARD_USE_CODEC2_HIDL_1_2 := true +BOARD_USE_CSC_FILTER := false +BOARD_USE_DEC_SW_CSC := true +BOARD_USE_ENC_SW_CSC := true +BOARD_SUPPORT_MFC_ENC_RGB := true +BOARD_USE_BLOB_ALLOCATOR := false +BOARD_SUPPORT_MFC_ENC_BT2020 := true +BOARD_SUPPORT_FLEXIBLE_P010 := true + +######################## + +BOARD_SUPER_PARTITION_SIZE := 8531214336 +BOARD_SUPER_PARTITION_GROUPS := google_dynamic_partitions +# Set size to BOARD_SUPER_PARTITION_SIZE - overhead (4MiB) (b/182237294) +BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE := 8527020032 +BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST := \ + system \ + system_dlkm \ + system_ext \ + product \ + vendor \ + vendor_dlkm + +# Set error limit to BOARD_SUPER_PARTITON_SIZE - 500MB +BOARD_SUPER_PARTITION_ERROR_LIMIT := 8006926336 + +# Build a separate system_dlkm partition +BOARD_USES_SYSTEM_DLKMIMAGE := true +BOARD_SYSTEM_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4 +TARGET_COPY_OUT_SYSTEM_DLKM := system_dlkm + +# +# AUDIO & VOICE +# +BOARD_USES_GENERIC_AUDIO := true + +$(call soong_config_set,aoc_audio_func,ext_hidl,true) + +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +$(call soong_config_set,aoc_audio_func,dump_usecase_data,true) +$(call soong_config_set,aoc_audio_func,hal_socket_control,true) +$(call soong_config_set,aoc_audio_func,record_tunning_keys,true) +endif + +ifneq (,$(filter aosp_%,$(TARGET_PRODUCT))) +$(call soong_config_set,aoc_audio_func,aosp_build,true) +endif + +# Primary AudioHAL Configuration +#BOARD_USE_COMMON_AUDIOHAL := true +#BOARD_USE_CALLIOPE_AUDIOHAL := false +#BOARD_USE_AUDIOHAL := true + +# Compress Offload Configuration +#BOARD_USE_OFFLOAD_AUDIO := true +#BOARD_USE_OFFLOAD_EFFECT := false + +# SoundTriggerHAL Configuration +#BOARD_USE_SOUNDTRIGGER_HAL := false + +# Vibrator HAL actuator model configuration +$(call soong_config_set,haptics,actuator_model,$(ACTUATOR_MODEL)) +$(call soong_config_set,haptics,adaptive_haptics_feature,$(ADAPTIVE_HAPTICS_FEATURE)) + +# HWComposer +BOARD_HWC_VERSION := hwc3 +TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK := false +BOARD_HDMI_INCAPABLE := true +TARGET_USES_HWC2 := true +HWC_SUPPORT_RENDER_INTENT := true +HWC_SUPPORT_COLOR_TRANSFORM := true +#BOARD_USES_DISPLAYPORT := true +# if AFBC is enabled, must set ro.vendor.ddk.set.afbc=1 +BOARD_USES_EXYNOS_AFBC_FEATURE := true +#BOARD_USES_HDRUI_GLES_CONVERSION := true + +BOARD_LIBACRYL_DEFAULT_COMPOSITOR := fimg2d_zumapro +BOARD_LIBACRYL_G2D_HDR_PLUGIN := libacryl_hdr_plugin + +# HWCServices +BOARD_USES_HWC_SERVICES := true + +# WiFiDisplay +# BOARD_USES_VIRTUAL_DISPLAY := true +# BOARD_USES_VDS_EXYNOS_HWC := true +# BOARD_USES_WIFI_DISPLAY:= true +# BOARD_USES_EGL_SURFACE_FOR_COMPOSITION_MIXED := true +# BOARD_USES_VDS_YUV420SPM := true +# BOARD_USES_VDS_OTHERFORMAT := true +# BOARD_USES_VDS_DEBUG_FLAG := true +# BOARD_USES_DISABLE_COMPOSITIONTYPE_GLES := true +# BOARD_USES_SECURE_ENCODER_ONLY := true +# BOARD_USES_TSMUX := true + +# SCALER +BOARD_USES_DEFAULT_CSC_HW_SCALER := true +BOARD_DEFAULT_CSC_HW_SCALER := 4 +BOARD_USES_SCALER_M2M1SHOT := true + +# Device Tree +BOARD_USES_DT := true +BOARD_INCLUDE_DTB_IN_BOOTIMG := true +BOARD_PREBUILT_DTBIMAGE_DIR := $(TARGET_KERNEL_DIR) +BOARD_PREBUILT_DTBOIMAGE := $(BOARD_PREBUILT_DTBIMAGE_DIR)/dtbo.img + +# PLATFORM LOG +TARGET_USES_LOGD := true + +# LIBHWJPEG +#TARGET_USES_UNIVERSAL_LIBHWJPEG := true +#LIBHWJPEG_HWSCALER_ID := 0 + +#Keymaster +#BOARD_USES_KEYMASTER_VER1 := true + +#FMP +#BOARD_USES_FMP_DM_CRYPT := true +#BOARD_USES_FMP_FSCRYPTO := true +BOARD_USES_METADATA_PARTITION := true + +# SKIA +#BOARD_USES_SKIA_MULTITHREADING := true +#BOARD_USES_FIMGAPI_V5X := true + +# SECCOMP Policy +BOARD_SECCOMP_POLICY = device/google/zumapro/seccomp_policy + +#CURL +BOARD_USES_CURL := true + +# Sensor HAL +BOARD_USES_EXYNOS_SENSORS_DUMMY := true + +# VISION +# Exynos vision framework (EVF) +#TARGET_USES_EVF := true +# HW acceleration +#TARGET_USES_VPU_KERNEL := true +#TARGET_USES_SCORE_KERNEL := true +#TARGET_USES_CL_KERNEL := false + +# exynos RIL +TARGET_EXYNOS_RIL_SOURCE := true +ENABLE_VENDOR_RIL_SERVICE := true + +# GNSS +# BOARD_USES_EXYNOS_GNSS_DUMMY := true + +# Bluetooth defines +# TODO(b/123695868): Remove the need for this +BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := \ + build/make/target/board/mainline_arm64/bluetooth + +#VNDK +BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true +BOARD_VNDK_VERSION := current + +# H/W align restriction of MM IPs +BOARD_EXYNOS_S10B_FORMAT_ALIGN := 64 + +# NeuralNetworks +GPU_SOURCE_PRESENT := $(wildcard vendor/arm/mali/valhall) +GPU_PREBUILD_PRESENT := $(wildcard vendor/google_devices/zumapro/prebuilts/gpu) +ifneq (,$(strip $(GPU_SOURCE_PRESENT) $(GPU_PREBUILD_PRESENT))) +ARMNN_COMPUTE_CL_ENABLE := 1 +else +ARMNN_COMPUTE_CL_ENABLE := 0 +endif +ARMNN_COMPUTE_NEON_ENABLE := 1 + +# Boot.img +BOARD_RAMDISK_USE_LZ4 := true +#BOARD_KERNEL_BASE := 0x80000000 +#BOARD_KERNEL_PAGESIZE := 2048 +#BOARD_KERNEL_OFFSET := 0x80000 +#BOARD_RAMDISK_OFFSET := 0x4000000 +BOARD_BOOT_HEADER_VERSION := 4 +BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION) + +BOARD_INIT_BOOT_HEADER_VERSION := 4 +BOARD_MKBOOTIMG_INIT_ARGS += --header_version $(BOARD_INIT_BOOT_HEADER_VERSION) + +# Enable AVB2.0 +BOARD_AVB_ENABLE := true +BOARD_BOOTIMAGE_PARTITION_SIZE := 0x04000000 +BOARD_INIT_BOOT_IMAGE_PARTITION_SIZE := 0x800000 +BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 0x04000000 +BOARD_DTBOIMG_PARTITION_SIZE := 0x01000000 + +# Build vendor kernel boot image +BOARD_VENDOR_KERNEL_BOOTIMAGE_PARTITION_SIZE := 0x04000000 + +# Vendor ramdisk image for kernel development +BOARD_BUILD_VENDOR_RAMDISK_IMAGE := true + +KERNEL_MODULE_DIR := $(TARGET_KERNEL_DIR) +KERNEL_MODULES := $(wildcard $(KERNEL_MODULE_DIR)/*.ko) + +BOARD_SYSTEM_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/system_dlkm.modules.blocklist +BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.blocklist + +BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_kernel_boot.modules.load)) +ifndef BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD +$(error vendor_kernel_boot.modules.load not found or empty) +endif +BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD))) + +BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.load)) +ifndef BOARD_VENDOR_KERNEL_MODULES_LOAD +$(error vendor_dlkm.modules.load not found or empty) +endif +BOARD_VENDOR_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_VENDOR_KERNEL_MODULES_LOAD))) + +BOARD_SYSTEM_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/system_dlkm.modules.load)) +ifndef BOARD_SYSTEM_KERNEL_MODULES_LOAD +$(error system_dlkm.modules.load not found or empty) +endif +BOARD_SYSTEM_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_SYSTEM_KERNEL_MODULES_LOAD))) + +# Using BUILD_COPY_HEADERS +BUILD_BROKEN_USES_BUILD_COPY_HEADERS := true + +include device/google/zumapro-sepolicy/zumapro-sepolicy.mk + +# Battery options +BOARD_KERNEL_CMDLINE += at24.write_timeout=100 + +# Enable larger logbuf +BOARD_KERNEL_CMDLINE += log_buf_len=1024K + +# Protected VM firmware +BOARD_PVMFWIMAGE_PARTITION_SIZE := 0x00100000 + +# pick up library for cleaning digital car keys on factory reset +-include vendor/google_devices/gs-common/proprietary/BoardConfigVendor.mk diff --git a/CleanSpec.mk b/CleanSpec.mk new file mode 100644 index 0000000..09e0169 --- /dev/null +++ b/CleanSpec.mk @@ -0,0 +1,85 @@ +# Copyright (C) 2012 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# If you don't need to do a full clean build but would like to touch +# a file or delete some intermediate files, add a clean step to the end +# of the list. These steps will only be run once, if they haven't been +# run before. +# +# E.g.: +# $(call add-clean-step, touch -c external/sqlite/sqlite3.h) +# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates) +# +# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with +# files that are missing or have been moved. +# +# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory. +# Use $(OUT_DIR) to refer to the "out" directory. +# +# If you need to re-do something that's already mentioned, just copy +# the command and add it to the bottom of the list. E.g., if a change +# that you made last week required touching a file and a change you +# made today requires touching the same file, just copy the old +# touch step and add it to the end of the list. +# +# ************************************************ +# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST +# ************************************************ + +# For example: +#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates) +#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates) +#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f) +#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*) +$(call add-clean-step, find $(PRODUCT_OUT) -name "*.apk" | xargs rm) + +# ************************************************ +# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST +# ************************************************ +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libsurfaceflinger_intermediates) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libui_intermediates) +$(call add-clean-step, rm -f $(PRODUCT_OUT)/root/default.prop) +$(call add-clean-step, rm -f $(TARGET_OUT)/build.prop) +$(call add-clean-step, rm -f $(PRODUCT_OUT)/system/etc/mixer_paths_lb.xml) +$(call add-clean-step, rm -f $(PRODUCT_OUT)/system/etc/permissions/android.hardware.camera.xml) + +$(call add-clean-step, rm -f $(PRODUCT_OUT)/root/*) +# Power HAL 1.0 +$(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/init/android.hardware.power@1.0-service.rc) +$(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.power@1.0-service) +# Power HAL HIDL +$(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/etc/init/android.hardware.power@1.3-service.pixel-libperfmgr.rc) + +# Health storage HAL +$(call add-clean-step, find $(PRODUCT_OUT) -type f -name "*android.hardware.health.storage@1.0*" -print0 | xargs -0 rm -f) + +# Update to USB HAL 1.3 +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.usb@1.2-service.slider) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/etc/init/android.hardware.usb@1.2-service.slider.rc) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/etc/vintf/manifest/android.hardware.usb@1.2-service.slider.xml) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.usb@1.3-service.slider) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/etc/init/android.hardware.usb@1.3-service.slider.rc) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/etc/vintf/manifest/android.hardware.usb@1.3-service.slider.xml) + +# Power Stats HAL 1.0 to AIDL +$(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/bin/hw/android.hardware.power.stats@1.0-service.zumapro) +$(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/etc/init/android.hardware.power.stats@1.0-service.zumapro.rc) +$(call add-clean-step, rm -f $(PRODUCT_OUT)/vendor/etc/vintf/manifest/android.hardware.power.stats@1.0-service.zumapro.xml) + +# Health HAL to AIDL +$(call add-clean-step, find $(PRODUCT_OUT)/system -type f -name "*charger*" -print0 | xargs -0 rm -f) +$(call add-clean-step, find $(PRODUCT_OUT)/vendor -type f -name "*health@*" -print0 | xargs -0 rm -f) +$(call add-clean-step, find $(PRODUCT_OUT)/recovery/root -type f -name "*charger*" -print0 | xargs -0 rm -f) +$(call add-clean-step, find $(PRODUCT_OUT)/recovery/root -type f -name "*health@*" -print0 | xargs -0 rm -f) diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..316b4eb --- /dev/null +++ b/NOTICE @@ -0,0 +1,190 @@ + + Copyright (c) 2014, The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + + 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. + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + diff --git a/aosp_common.mk b/aosp_common.mk new file mode 100644 index 0000000..9a552e8 --- /dev/null +++ b/aosp_common.mk @@ -0,0 +1,51 @@ +# +# Copyright 2020 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. +# + +# +# All components inherited here go to system image +# +$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/generic_system.mk) + +# Enable CSI checking +PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := relaxed + +# +# All components inherited here go to system_ext image +# +$(call inherit-product, $(SRC_TARGET_DIR)/product/handheld_system_ext.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony_system_ext.mk) + +# +# All components inherited here go to product image +# +$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_product.mk) + +# +# All components inherited here go to vendor image +# +# TODO(b/136525499): move *_vendor.mk into the vendor makefile later +$(call inherit-product, $(SRC_TARGET_DIR)/product/handheld_vendor.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony_vendor.mk) + +#$(call inherit-product, device/google/zumapro/device.mk) +#$(call inherit-product-if-exists, vendor/google_devices/zumapro/proprietary/device-vendor.mk) + +# TODO: fix +# PRODUCT_RESTRICT_VENDOR_FILES := all + +# b/189477034: Bypass build time check on uses_libs until vendor fixes all their apps +PRODUCT_BROKEN_VERIFY_USES_LIBRARIES := true diff --git a/compatibility_matrix.xml b/compatibility_matrix.xml new file mode 100644 index 0000000..264e854 --- /dev/null +++ b/compatibility_matrix.xml @@ -0,0 +1,84 @@ + + + + android.frameworks.displayservice + 1.0 + + IDisplayService + default + + + + android.frameworks.schedulerservice + 1.0 + + ISchedulingPolicyService + default + + + + android.frameworks.sensorservice + 1.0 + + ISensorManager + default + + + + android.hardware.graphics.composer + 2.1 + + IComposer + vr + + + + android.hidl.allocator + 1.0 + + IAllocator + ashmem + + + + android.hidl.manager + 1.0 + + IServiceManager + default + + + + android.hidl.memory + 1.0 + + IMapper + ashmem + + + + android.hidl.token + 1.0 + + ITokenManager + default + + + + android.system.wifi.keystore + 1.0 + + IKeystore + default + + + + 0.0.0 + + diff --git a/component-overrides.xml b/component-overrides.xml new file mode 100644 index 0000000..9aa38e7 --- /dev/null +++ b/component-overrides.xml @@ -0,0 +1,23 @@ + + + + + + + + + + diff --git a/conf/Android.bp b/conf/Android.bp new file mode 100644 index 0000000..f355e29 --- /dev/null +++ b/conf/Android.bp @@ -0,0 +1,84 @@ +/* + * Copyright (C) 2021 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. + */ + +// By default this device uses hardware-wrapped keys for storage encryption, +// which is intended to offer increased security over the traditional method +// (software keys). However, hardware-wrapped keys aren't compatible with +// FIPS-140 certification of the encryption hardware, and hence we have to +// disable the use of them in FIPS mode. This requires having two fstab files: +// one for the default mode, and one for FIPS mode selectable via +// androidboot.fstab_suffix on the kernel command line. These fstabs should be +// identical with the exception of the encryption settings, so to keep them in +// sync the rules below generate them from a template file. + +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "device_google_zumapro_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: ["device_google_zumapro_license"], +} + +genrule { + name: "gen_fstab.zumapro-hw-encrypt", + srcs: ["fstab.zumapro.in"], + out: ["fstab.zumapro"], + cmd: "sed -e s/@fileencryption@/fileencryption=:aes-256-hctr2:inlinecrypt_optimized+wrappedkey_v0/" + + " -e s/@inlinecrypt@/inlinecrypt/ " + + " -e s/@metadata_encryption@/metadata_encryption=:wrappedkey_v0/ $(in) > $(out)", +} + +genrule { + name: "gen_fstab.zumapro-sw-encrypt", + srcs: ["fstab.zumapro.in"], + out: ["fstab.zumapro"], + cmd: "sed -e s/@fileencryption@/fileencryption=aes-256-xts:aes-256-hctr2/" + + " -e s/@inlinecrypt@// " + + " -e s/@metadata_encryption@/metadata_encryption=/ $(in) > $(out)", +} + +genrule { + name: "gen_fstab.zumapro-no-encrypt", + srcs: ["fstab.zumapro.in"], + out: ["fstab.zumapro"], + cmd: "sed -e s/@fileencryption@//" + + " -e s/@inlinecrypt@// " + + " -e s/@metadata_encryption@// $(in) > $(out)", +} + +genrule { + name: "gen_fstab.zumapro-fips", + srcs: ["fstab.zumapro.in"], + out: ["fstab.zumapro-fips"], + cmd: "sed -e s/@fileencryption@/fileencryption=aes-256-xts/" + + " -e s/@inlinecrypt@/inlinecrypt/ " + + " -e s/@metadata_encryption@/metadata_encryption=aes-256-xts/ $(in) > $(out)", +} + +prebuilt_etc { + name: "fstab.zumapro", + src: ":gen_fstab.zumapro-hw-encrypt", + vendor: true, + vendor_ramdisk_available: true, +} + +prebuilt_etc { + name: "fstab.zumapro-fips", + src: ":gen_fstab.zumapro-fips", + vendor: true, + vendor_ramdisk_available: true, +} diff --git a/conf/egl.cfg b/conf/egl.cfg new file mode 100644 index 0000000..4515dfd --- /dev/null +++ b/conf/egl.cfg @@ -0,0 +1 @@ +0 1 mali diff --git a/conf/fstab.modem b/conf/fstab.modem new file mode 100644 index 0000000..a5e5fd4 --- /dev/null +++ b/conf/fstab.modem @@ -0,0 +1,4 @@ +# Android fstab file. +# +# Create the specific fstab file for modem partition as flexibility +/dev/block/platform/13200000.ufs/by-name/modem /mnt/vendor/modem_img ext4 ro,defaults,context=u:object_r:modem_img_file:s0,barrier=1 wait,slotselect diff --git a/conf/fstab.persist b/conf/fstab.persist new file mode 100644 index 0000000..46437c1 --- /dev/null +++ b/conf/fstab.persist @@ -0,0 +1,5 @@ +# Android fstab file. +# +# Keep persist in an fstab file, since we need to run fsck on it after abnormal shutdown. +/dev/block/platform/13200000.ufs/by-name/persist /mnt/vendor/persist f2fs noatime,nosuid,nodev,sync wait,check,formattable +/dev/block/platform/13200000.ufs/by-name/persist /mnt/vendor/persist ext4 noatime,nosuid,nodev,data=journal,commit=1 wait,check,formattable,metadata_csum diff --git a/conf/fstab.postinstall b/conf/fstab.postinstall new file mode 100644 index 0000000..955fba7 --- /dev/null +++ b/conf/fstab.postinstall @@ -0,0 +1,4 @@ +# Android fstab file. +# +# +system /postinstall ext4 ro,nosuid,nodev,noexec slotselect_other,logical,avb_keys=/product/etc/security/avb/system_other.avbpubkey diff --git a/conf/fstab.zumapro.in b/conf/fstab.zumapro.in new file mode 100644 index 0000000..e749162 --- /dev/null +++ b/conf/fstab.zumapro.in @@ -0,0 +1,25 @@ +# Android fstab file. +# +# The filesystem that contains the filesystem checker binary (typically /system) cannot +# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK +# +# +system /system ext4 ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 +# During compliance testing, the previous line would fail (because GSI is ext4), and the next line would be used to mount GSI. +system /system ext4 ro,barrier=1 wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 +system_dlkm /system_dlkm ext4 ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 +system_ext /system_ext ext4 ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 +product /product ext4 ro wait,slotselect,avb=vbmeta_system,logical,first_stage_mount,readahead_size_kb=128 +vendor /vendor ext4 ro wait,slotselect,avb=vbmeta_vendor,logical,first_stage_mount,readahead_size_kb=128 +vendor_dlkm /vendor_dlkm ext4 ro wait,slotselect,avb=vbmeta,logical,first_stage_mount +/dev/block/platform/13200000.ufs/by-name/boot /boot emmc defaults slotselect,avb=boot,first_stage_mount +/dev/block/platform/13200000.ufs/by-name/init_boot /init_boot emmc defaults slotselect,avb=init_boot,first_stage_mount +/dev/block/platform/13200000.ufs/by-name/efs /mnt/vendor/efs f2fs noatime,sync wait,check,formattable +/dev/block/platform/13200000.ufs/by-name/efs_backup /mnt/vendor/efs_backup f2fs noatime,sync wait,check,formattable +/dev/block/platform/13200000.ufs/by-name/modem_userdata /mnt/vendor/modem_userdata f2fs noatime,sync wait,check,formattable +/dev/block/platform/13200000.ufs/by-name/misc /misc emmc defaults wait +/dev/block/platform/13200000.ufs/by-name/metadata /metadata f2fs noatime,nosuid,nodev,sync wait,check,formattable,first_stage_mount +#/dev/block/platform/13200000.ufs/by-name/pvmfw /pvmfw emmc defaults wait,slotselect,avb=pvmfw,first_stage_mount +/dev/block/platform/13200000.ufs/by-name/userdata /data f2fs noatime,nosuid,nodev,discard,reserve_root=32768,resgid=1065,fsync_mode=nobarrier,compress_extension=apk,compress_extension=apex,compress_extension=so,compress_extension=vdex,compress_extension=odex,@inlinecrypt@,atgc,checkpoint_merge,compress_cache latemount,wait,check,quota,formattable,sysfs_path=/dev/sys/block/bootdevice,checkpoint=fs,reservedsize=128M,fscompress,readahead_size_kb=128,@fileencryption@,@metadata_encryption@,keydirectory=/metadata/vold/metadata_encryption,zoned_device +/dev/block/platform/13200000.ufs/by-name/vbmeta /vbmeta emmc defaults slotselect,first_stage_mount +/devices/platform/11210000.usb* auto vfat defaults voldmanaged=usb:auto diff --git a/conf/init.debug.rc b/conf/init.debug.rc new file mode 100644 index 0000000..0fed4ff --- /dev/null +++ b/conf/init.debug.rc @@ -0,0 +1,55 @@ +on early-init + mount debugfs /sys/kernel/debug /sys/kernel/debug + +# SJTAG +on init + chown system system /sys/devices/platform/sjtag_ap/interface/access_lvl + chown system system /sys/devices/platform/sjtag_ap/interface/auth + chown system system /sys/devices/platform/sjtag_ap/interface/begin + chown system system /sys/devices/platform/sjtag_ap/interface/dbg_domain + chown system system /sys/devices/platform/sjtag_ap/interface/dbg_itvl + chown system system /sys/devices/platform/sjtag_ap/interface/end + chown system system /sys/devices/platform/sjtag_ap/interface/pubkey + chown system system /sys/devices/platform/sjtag_gsa/interface/access_lvl + chown system system /sys/devices/platform/sjtag_gsa/interface/auth + chown system system /sys/devices/platform/sjtag_gsa/interface/begin + chown system system /sys/devices/platform/sjtag_gsa/interface/dbg_domain + chown system system /sys/devices/platform/sjtag_gsa/interface/dbg_itvl + chown system system /sys/devices/platform/sjtag_gsa/interface/end + chown system system /sys/devices/platform/sjtag_gsa/interface/pubkey + +on property:vendor.debug.ramdump.force_crash=true + write /sys/kernel/pixel_debug/trigger "null" + +on property:power.battery_input.suspended=true + write /sys/kernel/debug/google_charger/input_suspend 1 + +on property:power.battery_input.suspended=false + write /sys/kernel/debug/google_charger/input_suspend 0 + +# Bluetooth +on post-fs-data + chown bluetooth system /dev/logbuffer_btlpm + chown bluetooth system /dev/logbuffer_tty18 + +# pKVM performance is different on A0 and B0 chips. +# Add extra tag to metrics collected on A0 to separate the results. +on property:ro.revision=PROTO1.0 + setprop debug.hypervisor.metrics_tag "hwrev_a0" +on property:ro.revision=PROTO1.1 + setprop debug.hypervisor.metrics_tag "hwrev_a0" +on property:ro.revision=EVT1.0 + setprop debug.hypervisor.metrics_tag "hwrev_a0" + +# A0 chips require pKVM for a hardware issue workaround. Set pKVM to 'enabled' +# in /misc partition on first boot to signal to tests that this device should +# not be booted with pKVM disabled. +service vendor.force_pkvm /vendor/bin/misc_writer --set-enable-pkvm + disabled + oneshot +on property:persist.sys.device_provisioned=1 && property:ro.revision=PROTO1.0 + start vendor.force_pkvm +on property:persist.sys.device_provisioned=1 && property:ro.revision=PROTO1.1 + start vendor.force_pkvm +on property:persist.sys.device_provisioned=1 && property:ro.revision=EVT1.0 + start vendor.force_pkvm diff --git a/conf/init.exynos.nanohub.rc b/conf/init.exynos.nanohub.rc new file mode 100644 index 0000000..9a58229 --- /dev/null +++ b/conf/init.exynos.nanohub.rc @@ -0,0 +1,20 @@ +on post-fs +## ensure correct calibration file permissions + chown root system /mnt/vendor/persist/sensorcal.json + chmod 0640 /mnt/vendor/persist/sensorcal.json + start vendor.flash-nanohub-fw + +on post-fs-data + mkdir /data/vendor/sensor + chown root system /data/vendor/sensor + chmod 0770 /data/vendor/sensor + +service vendor.flash-nanohub-fw /vendor/bin/nanoapp_cmd download + oneshot + disabled + user root + group system + +on post-fs-data + mkdir /data/system/nanohub_lock/ + restorecon /data/system/nanohub_lock diff --git a/conf/init.factory.rc b/conf/init.factory.rc new file mode 100644 index 0000000..ed294fd --- /dev/null +++ b/conf/init.factory.rc @@ -0,0 +1,19 @@ +# Factory specific init.rc + +on early-init + mount debugfs /sys/kernel/debug /sys/kernel/debug + +on init + export PATH /product/bin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/system_ext/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin:/vendor/bin/factory + +on boot + # FTM log folder + mkdir /data/ftmlog 0775 system system + + # Audio test folder + mkdir /data/AudioTest 0775 system system + +on property:sys.boot_completed=1 + # Bump nnapi min clamp & add adbd to it for factory (b/222226268) + write /proc/vendor_sched/nnapi_uclamp_min 512 + exec - root root -- /vendor/bin/factory/factory_post_boot diff --git a/conf/init.freq.userdebug.rc b/conf/init.freq.userdebug.rc new file mode 100644 index 0000000..0eb79be --- /dev/null +++ b/conf/init.freq.userdebug.rc @@ -0,0 +1,69 @@ +# Non Persistent Soft Max Freq +on property:vendor.softmaxfreq.cl0=* + write /sys/devices/platform/exynos-acme/freq_qos_max "0 ${vendor.softmaxfreq.cl0}" + +on property:vendor.softmaxfreq.cl1=* + write /sys/devices/platform/exynos-acme/freq_qos_max "4 ${vendor.softmaxfreq.cl1}" + +on property:vendor.softmaxfreq.cl2=* + write /sys/devices/platform/exynos-acme/freq_qos_max "8 ${vendor.softmaxfreq.cl2}" + +on property:vendor.softmaxfreq.bci=* + write /sys/devices/platform/170000a0.devfreq_bci/devfreq/170000a0.devfreq_bci/exynos_data/soft_max_freq "${vendor.softmaxfreq.bci}" + +on property:vendor.softmaxfreq.dsu=* + write /sys/devices/platform/17000090.devfreq_dsu/devfreq/17000090.devfreq_dsu/exynos_data/soft_max_freq "${vendor.softmaxfreq.dsu}" + +on property:vendor.softmaxfreq.mif=* + write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/soft_max_freq "${vendor.softmaxfreq.mif}" + +# Persistent Soft Max Freq overrides +on property:persist.vendor.softmaxfreq.cl0=* + setprop vendor.softmaxfreq.cl0 "${persist.vendor.softmaxfreq.cl0}" + +on property:persist.vendor.softmaxfreq.cl1=* + setprop vendor.softmaxfreq.cl1 "${persist.vendor.softmaxfreq.cl1}" + +on property:persist.vendor.softmaxfreq.cl2=* + setprop vendor.softmaxfreq.cl2 "${persist.vendor.softmaxfreq.cl2}" + +on property:persist.vendor.softmaxfreq.bci=* + setprop vendor.softmaxfreq.bci "${persist.vendor.softmaxfreq.bci}" + +on property:persist.vendor.softmaxfreq.dsu=* + setprop vendor.softmaxfreq.dsu "${persist.vendor.softmaxfreq.dsu}" + +on property:persist.vendor.softmaxfreq.mif=* + setprop vendor.softmaxfreq.mif "${persist.vendor.softmaxfreq.mif}" + +on property:vendor.softmaxfreq.all=* + setprop vendor.softmaxfreq.cl0 "9999999" + setprop vendor.softmaxfreq.cl1 "9999999" + setprop vendor.softmaxfreq.cl2 "9999999" + setprop vendor.softmaxfreq.bci "9999999" + setprop vendor.softmaxfreq.dsu "9999999" + setprop vendor.softmaxfreq.mif "9999999" + +on property:vendor.lockfreq.max=* + write /sys/devices/platform/exynos-acme/freq_qos_min "0 9999999" + write /sys/devices/platform/exynos-acme/freq_qos_max "0 9999999" + write /sys/devices/platform/exynos-acme/freq_qos_min "0 9999999" + write /sys/devices/platform/exynos-acme/freq_qos_min "4 9999999" + write /sys/devices/platform/exynos-acme/freq_qos_max "4 9999999" + write /sys/devices/platform/exynos-acme/freq_qos_min "4 9999999" + write /sys/devices/platform/exynos-acme/freq_qos_min "8 9999999" + write /sys/devices/platform/exynos-acme/freq_qos_max "8 9999999" + write /sys/devices/platform/exynos-acme/freq_qos_min "8 9999999" + write /sys/devices/platform/170000a0.devfreq_bci/devfreq/170000a0.devfreq_bci/exynos_data/soft_max_freq "9999999" + write /sys/devices/platform/170000a0.devfreq_bci/devfreq/170000a0.devfreq_bci/exynos_data/debug_scaling_devfreq_min "9999999" + write /sys/devices/platform/170000a0.devfreq_bci/devfreq/170000a0.devfreq_bci/exynos_data/debug_scaling_devfreq_max "9999999" + write /sys/devices/platform/170000a0.devfreq_bci/devfreq/170000a0.devfreq_bci/exynos_data/debug_scaling_devfreq_min "9999999" + write /sys/devices/platform/17000090.devfreq_dsu/devfreq/17000090.devfreq_dsu/exynos_data/soft_max_freq "9999999" + write /sys/devices/platform/17000090.devfreq_dsu/devfreq/17000090.devfreq_dsu/exynos_data/debug_scaling_devfreq_min "9999999" + write /sys/devices/platform/17000090.devfreq_dsu/devfreq/17000090.devfreq_dsu/exynos_data/debug_scaling_devfreq_max "9999999" + write /sys/devices/platform/17000090.devfreq_dsu/devfreq/17000090.devfreq_dsu/exynos_data/debug_scaling_devfreq_min "9999999" + write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/soft_max_freq "9999999" + write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/debug_scaling_devfreq_min "9999999" + write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/debug_scaling_devfreq_max "9999999" + write /sys/devices/platform/17000010.devfreq_mif/devfreq/17000010.devfreq_mif/exynos_data/debug_scaling_devfreq_min "9999999" + diff --git a/conf/init.recovery.device.rc b/conf/init.recovery.device.rc new file mode 100644 index 0000000..592efbd --- /dev/null +++ b/conf/init.recovery.device.rc @@ -0,0 +1,16 @@ +on init + wait /sys/devices/platform/11210000.usb/11210000.dwc3/driver 10 + setprop sys.usb.controller "11210000.dwc3" + setprop sys.usb.configfs 1 + +on init && property:ro.debuggable=1 && property:ro.boot.mode=recovery + start recovery-console + +service recovery-console /system/bin/sh + class core + console + disabled + user root + group root shell log readproc + seclabel u:r:su:s0 + setenv HOSTNAME console diff --git a/conf/init.zumapro.rc b/conf/init.zumapro.rc new file mode 100644 index 0000000..97f35d9 --- /dev/null +++ b/conf/init.zumapro.rc @@ -0,0 +1,1065 @@ +import /vendor/etc/init/hw/init.zumapro.usb.rc +import android.hardware.drm@1.2-service.widevine.rc +import init.exynos.sensorhub.rc + +on early-init + mount_all /vendor/etc/fstab.persist --early + +on init + # CPU0 cannot be offline + chmod 0444 /sys/devices/system/cpu/cpu0/online + + # Set teo as cpu idle governor + write /sys/devices/system/cpu/cpuidle/current_governor teo + + # Boot time fs tuning + write /sys/block/sda/queue/iostats 0 + write /sys/block/sda/queue/scheduler bfq + write /sys/block/sda/queue/iosched/slice_idle 0 + write /sys/block/sda/queue/nr_requests 256 + write /dev/sys/fs/by-name/userdata/data_io_flag 56 + write /dev/sys/fs/by-name/userdata/node_io_flag 56 + + chown system system /proc/vendor_sched/set_task_group_bg + chown system system /proc/vendor_sched/set_task_group_cam + chown system system /proc/vendor_sched/set_task_group_fg + chown system system /proc/vendor_sched/set_task_group_nnapi + chown system system /proc/vendor_sched/set_task_group_sys + chown system system /proc/vendor_sched/set_task_group_sysbg + chown system system /proc/vendor_sched/set_task_group_ta + chown system system /proc/vendor_sched/set_task_group_rt + chown system system /proc/vendor_sched/set_task_group_sf + chown system system /proc/vendor_sched/set_task_group_dex2oat + chown system system /proc/vendor_sched/set_task_group_cam_power + chown system system /proc/vendor_sched/set_task_group_ota + chown system system /proc/vendor_sched/set_proc_group_bg + chown system system /proc/vendor_sched/set_proc_group_cam + chown system system /proc/vendor_sched/set_proc_group_fg + chown system system /proc/vendor_sched/set_proc_group_nnapi + chown system system /proc/vendor_sched/set_proc_group_sys + chown system system /proc/vendor_sched/set_proc_group_sysbg + chown system system /proc/vendor_sched/set_proc_group_ta + chown system system /proc/vendor_sched/set_proc_group_rt + chown system system /proc/vendor_sched/set_proc_group_sf + chown system system /proc/vendor_sched/set_proc_group_dex2oat + chown system system /proc/vendor_sched/set_proc_group_cam_power + chown system system /proc/vendor_sched/set_proc_group_ota + chown system system /proc/vendor_sched/prefer_idle_set + chown system system /proc/vendor_sched/prefer_idle_clear + chown system system /proc/vendor_sched/pmu_poll_enable + chown system system /proc/vendor_sched/pmu_poll_time + chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold + chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold + chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency + chown system system /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/pmu_limit_enable + chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/lcpi_threshold + chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold + chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency + chown system system /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/pmu_limit_enable + chown system system /sys/devices/system/cpu/cpufreq/policy8/sched_pixel/lcpi_threshold + chown system system /sys/devices/system/cpu/cpufreq/policy8/sched_pixel/spc_threshold + chown system system /sys/devices/system/cpu/cpufreq/policy8/sched_pixel/limit_frequency + chown system system /sys/devices/system/cpu/cpufreq/policy8/sched_pixel/pmu_limit_enable + + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/memlat_cpuidle_state_aware + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/memlat_cpuidle_state_aware + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/memlat_cpuidle_state_aware + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/memlat_cpuidle_state_aware + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/memlat_cpuidle_state_aware + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/memlat_cpuidle_state_aware + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/memlat_cpuidle_state_aware + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/memlat_cpuidle_state_aware + chown system system /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu8_memlat@17000010/memlat_cpuidle_state_aware + + chmod 0220 /proc/vendor_sched/set_task_group_bg + chmod 0220 /proc/vendor_sched/set_task_group_cam + chmod 0220 /proc/vendor_sched/set_task_group_fg + chmod 0220 /proc/vendor_sched/set_task_group_nnapi + chmod 0220 /proc/vendor_sched/set_task_group_sys + chmod 0220 /proc/vendor_sched/set_task_group_sysbg + chmod 0220 /proc/vendor_sched/set_task_group_ta + chmod 0220 /proc/vendor_sched/set_task_group_rt + chmod 0220 /proc/vendor_sched/set_task_group_sf + chmod 0220 /proc/vendor_sched/set_task_group_dex2oat + chmod 0220 /proc/vendor_sched/set_task_group_cam_power + chmod 0220 /proc/vendor_sched/set_task_group_ota + chmod 0220 /proc/vendor_sched/set_proc_group_bg + chmod 0220 /proc/vendor_sched/set_proc_group_cam + chmod 0220 /proc/vendor_sched/set_proc_group_fg + chmod 0220 /proc/vendor_sched/set_proc_group_nnapi + chmod 0220 /proc/vendor_sched/set_proc_group_sys + chmod 0220 /proc/vendor_sched/set_proc_group_sysbg + chmod 0220 /proc/vendor_sched/set_proc_group_ta + chmod 0220 /proc/vendor_sched/set_proc_group_rt + chmod 0220 /proc/vendor_sched/set_proc_group_sf + chmod 0220 /proc/vendor_sched/set_proc_group_dex2oat + chmod 0220 /proc/vendor_sched/set_proc_group_cam_power + chmod 0220 /proc/vendor_sched/set_proc_group_ota + chmod 0220 /proc/vendor_sched/prefer_idle_set + chmod 0220 /proc/vendor_sched/prefer_idle_clear + chmod 0220 /proc/vendor_sched/pmu_poll_enable + chmod 0220 /proc/vendor_sched/pmu_poll_time + + wait /dev/block/platform/${ro.boot.boot_devices} + symlink /dev/block/platform/${ro.boot.boot_devices} /dev/block/bootdevice + + # to access UFS/eMMC sysfs directly + symlink /sys/devices/platform/${ro.boot.boot_devices} /dev/sys/block/bootdevice + + # Disable UFS powersaving + write /dev/sys/block/bootdevice/clkgate_enable 0 + + start vendor.keymaster-4-0 + + # ZRAM setup + write /sys/block/zram0/comp_algorithm lz77eh + write /proc/sys/vm/page-cluster 0 + + # Some user code relies on ro.boot.hardware.revision + setprop ro.boot.hardware.revision ${ro.revision} + + # Allow PAI targeting per hardware SKU + setprop ro.oem.key1 ${ro.boot.hardware.sku} + + # Property used by vintf for sku specific manifests + # Property used by NFC for sku specific configurations + setprop ro.boot.product.hardware.sku ${ro.boot.hardware.sku} + + # Support legacy paths + symlink /data/app /factory + + # Apply network parameters for high data performance. + write /proc/sys/net/core/rmem_default 327680 + write /proc/sys/net/core/rmem_max 8388608 + write /proc/sys/net/core/wmem_default 327680 + write /proc/sys/net/core/wmem_max 8388608 + write /proc/sys/net/core/optmem_max 20480 + write /proc/sys/net/core/netdev_max_backlog 10000 + write /proc/sys/net/ipv4/tcp_rmem "2097152 4194304 8388608" + write /proc/sys/net/ipv4/tcp_wmem "262144 524288 8388608" + write /proc/sys/net/ipv4/tcp_mem "44259 59012 88518" + write /proc/sys/net/ipv4/udp_mem "88518 118025 177036" + + write /sys/class/net/rmnet0/queues/rx-0/rps_cpus fe + write /sys/class/net/rmnet1/queues/rx-0/rps_cpus fe + write /sys/class/net/rmnet2/queues/rx-0/rps_cpus fe + write /sys/class/net/rmnet3/queues/rx-0/rps_cpus fe + write /sys/class/net/rmnet4/queues/rx-0/rps_cpus fe + write /sys/class/net/rmnet5/queues/rx-0/rps_cpus fe + write /sys/class/net/rmnet6/queues/rx-0/rps_cpus fe + write /sys/class/net/rmnet7/queues/rx-0/rps_cpus fe + + # Create UDS structure for base VR services. + mkdir /dev/socket/pdx 0775 system system + mkdir /dev/socket/pdx/system 0775 system system + mkdir /dev/socket/pdx/system/buffer_hub 0775 system system + mkdir /dev/socket/pdx/system/performance 0775 system system + mkdir /dev/socket/pdx/system/vr 0775 system system + mkdir /dev/socket/pdx/system/vr/display 0775 system system + mkdir /dev/socket/pdx/system/vr/pose 0775 system system + mkdir /dev/socket/pdx/system/vr/sensors 0775 system system + + # Boot time 183626384 + write /proc/vendor_sched/ta_uclamp_min 1024 + write /proc/vendor_sched/ta_prefer_idle 1 + write /proc/vendor_sched/fg_uclamp_min 1024 + write /proc/vendor_sched/fg_prefer_idle 1 + write /proc/vendor_sched/sys_uclamp_min 1024 + write /proc/vendor_sched/sys_prefer_idle 1 + + # governor setting + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor sched_pixel + write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/up_rate_limit_us 500 + write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us 5000 + write /sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_scale_pow 2 + write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor sched_pixel + write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/up_rate_limit_us 500 + write /sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us 20000 + write /sys/devices/system/cpu/cpu8/cpufreq/scaling_governor sched_pixel + write /sys/devices/system/cpu/cpu8/cpufreq/sched_pixel/up_rate_limit_us 500 + write /sys/devices/system/cpu/cpu8/cpufreq/sched_pixel/down_rate_limit_us 20000 + + + # memlat cpuidle awareness setting + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/memlat_cpuidle_state_aware 2 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/memlat_cpuidle_state_aware 2 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/memlat_cpuidle_state_aware 2 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/memlat_cpuidle_state_aware 2 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/memlat_cpuidle_state_aware 2 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/memlat_cpuidle_state_aware 2 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/memlat_cpuidle_state_aware 2 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/memlat_cpuidle_state_aware 2 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu8_memlat@17000010/memlat_cpuidle_state_aware 2 + + # RT uclamp setting + write /proc/sys/kernel/sched_util_clamp_min_rt_default 0 + + # change permissions and default values for camera-daemon cpu controller + chown system system /dev/cpuctl/camera-daemon/cpu.uclamp.min + chown system system /dev/cpuctl/camera-daemon/cpu.uclamp.max + chown root root /dev/cpuctl/camera-daemon/cpu.uclamp.latency_sensitive + chown system system /dev/cpuctl/camera-daemon/cgroup.procs + + mkdir /dev/cpuset/camera-daemon-high-group + write /dev/cpuset/camera-daemon-high-group/cpus 0-8 + write /dev/cpuset/camera-daemon-high-group/mems 0 + chown system system /dev/cpuset/camera-daemon-high-group/tasks + chmod 0664 /dev/cpuset/camera-daemon-high-group/tasks + + mkdir /dev/cpuset/camera-daemon-mid-group + write /dev/cpuset/camera-daemon-mid-group/cpus 0-8 + write /dev/cpuset/camera-daemon-mid-group/mems 0 + chown system system /dev/cpuset/camera-daemon-mid-group/tasks + chmod 0664 /dev/cpuset/camera-daemon-mid-group/tasks + + mkdir /dev/cpuset/camera-daemon-mid-high-group + write /dev/cpuset/camera-daemon-mid-high-group/cpus 0-8 + write /dev/cpuset/camera-daemon-mid-high-group/mems 0 + chown system system /dev/cpuset/camera-daemon-mid-high-group/tasks + chmod 0664 /dev/cpuset/camera-daemon-mid-high-group/tasks + + write /proc/vendor_sched/cam_prefer_idle 1 + write /proc/vendor_sched/cam_uclamp_min 1 + + chown system system /dev/cpuset/cgroup.procs + + # nanohub sensor + chmod 0664 /dev/nanohub + chmod 0664 /dev/nanohub_comms + chown system system /dev/nanohub + chown system system /dev/nanohub_comms + + # Dump maxfg + chown system system /sys/class/power_supply/maxfg/m5_model_state + chown system system /sys/class/power_supply/maxfg_base/m5_model_state + + # pca9468 : slider+77729: 6-0057; slider+MW A1: 5-0057 + chown system system /d/regmap/5-0057-pca9468-mains/registers + chown system system /d/regmap/6-0057-pca9468-mains/registers + + # Dump eeprom + chown system system /sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom + chown system system /sys/devices/platform/10970000.hsi2c/i2c-4/4-0050/eeprom + chown system system /sys/devices/platform/10da0000.hsi2c/i2c-6/6-0050/eeprom + chown system system /sys/devices/platform/10c90000.hsi2c/i2c-7/7-0050/eeprom + chown system system /dev/battery_history + chmod 0644 /dev/battery_history + + # Loading common kernel modules in background + start init_display + + # Charge stats (write 0) + chown system system /sys/class/power_supply/battery/charge_stats + + # Pca Charge stats (write 0) + chown system system /sys/class/power_supply/pca9468-mains/device/chg_stats + + # Wireless Charge stats (write 0) + chown system system /sys/class/power_supply/wireless/device/charge_stats + + # Permission for wireless charging + chown system system /sys/class/power_supply/wireless/capacity + chown system system /sys/class/power_supply/wireless/device/rtx + chown system system /sys/class/power_supply/wireless/device/rxdata + chown system system /sys/class/power_supply/wireless/device/txdata + chown system system /sys/class/power_supply/wireless/device/rxlen + chown system system /sys/class/power_supply/wireless/device/txlen + chown system system /sys/class/power_supply/wireless/device/ccreset + chown system system /sys/class/power_supply/wireless/device/status + chown system system /sys/class/power_supply/wireless/device/version + chown system system /sys/class/power_supply/wireless/device/features + chown system system /sys/class/power_supply/wireless/device/authtype + + # Adaptive charge + chown system system /sys/class/power_supply/battery/charge_deadline + + # Charging policy + chown system system /sys/class/power_supply/battery/charging_policy + + # Battery Defender + chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_cnt + chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_dry_run + chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_enable + chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_recharge_soc + chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_trickle_reset_sec + chown system system /sys/devices/platform/google,battery/power_supply/battery/bd_clear + chown system system /sys/devices/platform/google,battery/power_supply/battery/health_safety_margin + chown system system /sys/devices/platform/google,charger/bd_drainto_soc + chown system system /sys/devices/platform/google,charger/bd_recharge_soc + chown system system /sys/devices/platform/google,charger/bd_recharge_voltage + chown system system /sys/devices/platform/google,charger/bd_resume_abs_temp + chown system system /sys/devices/platform/google,charger/bd_resume_soc + chown system system /sys/devices/platform/google,charger/bd_resume_temp + chown system system /sys/devices/platform/google,charger/bd_resume_time + chown system system /sys/devices/platform/google,charger/bd_temp_dry_run + chown system system /sys/devices/platform/google,charger/bd_temp_enable + chown system system /sys/devices/platform/google,charger/bd_trigger_temp + chown system system /sys/devices/platform/google,charger/bd_trigger_time + chown system system /sys/devices/platform/google,charger/bd_trigger_voltage + chown system system /sys/devices/platform/google,charger/bd_clear + chown system system /sys/devices/platform/google,charger/charge_start_level + chown system system /sys/devices/platform/google,charger/charge_stop_level + chown system system /sys/devices/platform/google,cpm/dc_ctl + + # Power Stats HAL + chown system system /dev/bbd_pwrstat + + # Add a boost for NNAPI HAL + write /proc/vendor_sched/nnapi_prefer_idle 0 + write /proc/vendor_sched/nnapi_uclamp_min 512 + + # Add memlat governor settings + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu8_memlat@17000010/polling_interval 10 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/mem_latency/ratio_ceil 1800 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/mem_latency/ratio_ceil 1800 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/mem_latency/ratio_ceil 1800 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/mem_latency/ratio_ceil 1800 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/mem_latency/ratio_ceil 3700 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/mem_latency/ratio_ceil 3700 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/mem_latency/ratio_ceil 3700 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/mem_latency/ratio_ceil 3700 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu8_memlat@17000010/mem_latency/ratio_ceil 3400 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu0_memlat@17000010/mem_latency/stall_floor 3000 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu1_memlat@17000010/mem_latency/stall_floor 3000 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu2_memlat@17000010/mem_latency/stall_floor 3000 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu3_memlat@17000010/mem_latency/stall_floor 3000 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu4_memlat@17000010/mem_latency/stall_floor 2400 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu5_memlat@17000010/mem_latency/stall_floor 2400 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu6_memlat@17000010/mem_latency/stall_floor 2400 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu7_memlat@17000010/mem_latency/stall_floor 2400 + write /sys/class/devfreq/gs_memlat_devfreq:devfreq_mif_cpu8_memlat@17000010/mem_latency/stall_floor 800 + + # Add dsulat governor settings + write /sys/class/devfreq/gs_dsulat_devfreq:devfreq_dsu_lat@17000090/dsu_latency/ratio_ceil_cl0 700 + write /sys/class/devfreq/gs_dsulat_devfreq:devfreq_dsu_lat@17000090/dsu_latency/ratio_ceil_cl1 1000 + write /sys/class/devfreq/gs_dsulat_devfreq:devfreq_dsu_lat@17000090/dsu_latency/ratio_ceil_cl2 3000 + + # Add dsulat governor settings + write /sys/class/devfreq/gs_dsulat_devfreq:devfreq_dsu_lat@17000090/dsu_latency/ratio_ceil_cl0 700 + write /sys/class/devfreq/gs_dsulat_devfreq:devfreq_dsu_lat@17000090/dsu_latency/ratio_ceil_cl1 1000 + write /sys/class/devfreq/gs_dsulat_devfreq:devfreq_dsu_lat@17000090/dsu_latency/ratio_ceil_cl2 3000 + + # Give pixelstats group access to PCIe link statistics counters + chown system system /sys/devices/platform/12100000.pcie/link_stats/complete_timeout_irqs + chown system system /sys/devices/platform/12100000.pcie/link_stats/link_down_irqs + chown system system /sys/devices/platform/12100000.pcie/link_stats/link_recovery_failures + chown system system /sys/devices/platform/12100000.pcie/link_stats/link_up_failures + chown system system /sys/devices/platform/13120000.pcie/link_stats/complete_timeout_irqs + chown system system /sys/devices/platform/13120000.pcie/link_stats/link_down_irqs + chown system system /sys/devices/platform/13120000.pcie/link_stats/link_recovery_failures + chown system system /sys/devices/platform/13120000.pcie/link_stats/link_up_failures + + # Write MTE config + # Little Cores: + write /sys/devices/system/cpu/cpu0/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu1/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu2/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu3/mte_tcf_preferred sync + # Mid Cores: + write /sys/devices/system/cpu/cpu4/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu5/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu6/mte_tcf_preferred sync + write /sys/devices/system/cpu/cpu7/mte_tcf_preferred sync + # Big Core: sync more performance is prohibitively bad + write /sys/devices/system/cpu/cpu8/mte_tcf_preferred asymm + + # Change GSA log group for dumpstate + chown root system /sys/devices/platform/16490000.gsa-ns/log_main + chown root system /sys/devices/platform/16490000.gsa-ns/log_intermediate + +on post-fs + # Ensure device is ready and start storageproxyd + wait /dev/sg1 + start storageproxyd + +on late-fs + # Start bootanimation class before mount + start bootanim + class_start animation + + # Mount RW partitions which need run fsck + mount_all --late + +on post-fs-data + # Modem temperature driver + chown radio system /sys/devices/platform/cp-tm1/cp_temp + + # Log data folder + mkdir /data/vendor 0771 radio system + mkdir /data/vendor/log 0771 radio system + mkdir /data/vendor/log/cbd 0771 radio system + mkdir /data/vendor/log/rfsd 0771 radio system + + mkdir /data/exynos/log 0771 radio system + mkdir /data/vendor/rild 0771 radio system + mkdir /data/vendor/dump 0771 radio system + mkdir /data/vendor/slog 0771 system system + + # PixelLogger log paths. + mkdir /data/vendor/radio 773 system radio + mkdir /data/vendor/radio/logs 773 system radio + mkdir /data/vendor/radio/logs/always-on 777 system radio + + # Modem extended log folder + mkdir /data/vendor/radio/extended_logs 0770 radio system + + # Modem MDS log folder + mkdir /data/vendor/radio/mds 0771 radio system + + # Modem SIM log folder + mkdir /data/vendor/radio/sim 0771 radio system + + # Unzipped modem images folder + mkdir /data/vendor/radio/image 0771 radio system + + # Modem stat folder + mkdir /data/vendor/modem_stat 0771 radio system + write /data/vendor/modem_stat/debug.txt "" + chown radio system /data/vendor/modem_stat/debug.txt + chmod 0664 /data/vendor/modem_stat/debug.txt + + # Modem replay folder + mkdir /mnt/vendor/modem_userdata/replay 0775 radio system + + # Write display MIPI frequency from Modem + chown system system /sys/devices/platform/19440000.drmdsim/hs_clock + chown system system /sys/devices/platform/19450000.drmdsim/hs_clock + chmod 0664 /sys/devices/platform/19440000.drmdsim/hs_clock + chmod 0664 /sys/devices/platform/19450000.drmdsim/hs_clock + + # IPSEC PIDDIR for VoWiFi + mkdir /data/vendor/misc 0771 root system + mkdir /data/vendor/misc/vpn 0771 root system + + # Permissions Camera + mkdir /data/vendor/camera 0770 system camera + mkdir /data/vendor/camera/catpipe 0770 system camera + chmod 0755 /sys/kernel/debug/tracing + restorecon /sys/kernel/debug/tracing/trace_marker + + # ranging sensor + chown system system /dev/stmvl53l1_ranging + chmod 0660 /dev/stmvl53l1_ranging + + # Factory calibration files + chmod 0771 /mnt/vendor/persist/camera + chmod 0771 /mnt/vendor/persist/camera/OTP_calibration + chmod 0771 /mnt/vendor/persist/camera/pdaf_calibration_data + mkdir /mnt/vendor/persist/camera/rear 0771 system camera + chmod 0771 /mnt/vendor/persist/camera/rear + + # Audio dump and debug + mkdir /data/vendor/audio 0770 audio audio + + # Create the directories for Darwinn HAL. + mkdir /data/vendor/hal_neuralnetworks_darwinn 0770 system system + mkdir /data/vendor/hal_neuralnetworks_darwinn/checksum_cache 0770 system system + mkdir /data/vendor/edgetpu 0770 system system + mkdir /data/vendor/edgetpu/cache 0770 system system + + # Compatibility path for TPU + symlink /dev/edgetpu-soc /dev/edgetpu + +on zygote-start + # For PixelLogger configuration file. + chmod 0771 /data/vendor/wifi + write /proc/vendor_sched/sys_uclamp_min 0 + +on post-fs-data + # Create the directories used by the Wireless subsystem + mkdir /data/vendor/wifi 0771 wifi wifi + mkdir /data/vendor/wifi/wpa 0770 wifi wifi + mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi + +# Gatekeeper data + mkdir /data/vendor/gk 0771 system system + +# HWC data + mkdir /data/vendor/log/hwc 0771 system graphics + +# Video data + mkdir /data/vendor/media 0700 mediacodec mediacodec + +on post-fs-data + # GPS + mkdir /data/vendor/gps 0771 system system + chown system system /data/vendor/gps + rm /data/vendor/gps/gps_started + rm /data/vendor/gps/glonass_started + rm /data/vendor/gps/beidou_started + rm /data/vendor/gps/smd_started + rm /data/vendor/gps/sv_cno.info + + chown gps system /sys/devices/platform/111e0000.spi/spi_master/spi21/spi21.0/nstandby + chmod 0664 /dev/ttyBCM + chown gps system /dev/ttyBCM + chmod 0664 /dev/bbd_control + chown gps system /dev/bbd_control + chmod 0664 /dev/bbd_patch + chown gps system /dev/bbd_patch + chmod 0664 /dev/bbd_sensor + chown gps system /dev/bbd_sensor + +on early-boot + # Wait for insmod_sh to finish all common modules + wait_for_prop vendor.common.modules.ready 1 + + # Permission for Health Storage HAL + chown system system /dev/sys/block/bootdevice/manual_gc + + # Permission for Pixelstats + chown system system /dev/sys/block/bootdevice/slowio_read_cnt + chown system system /dev/sys/block/bootdevice/slowio_write_cnt + chown system system /dev/sys/block/bootdevice/slowio_unmap_cnt + chown system system /dev/sys/block/bootdevice/slowio_sync_cnt + + # logbuffer + chown system system /dev/logbuffer_maxfg + chown system system /dev/logbuffer_maxfg_monitor + chown system system /dev/logbuffer_maxq + chown system system /dev/logbuffer_rtx + chown system system /dev/logbuffer_ssoc + chown system system /dev/logbuffer_ttf + chown system system /dev/logbuffer_tcpm + chown system system /dev/logbuffer_usbpd + chown system system /dev/logbuffer_wireless + chown system system /dev/logbuffer_pca9468 + chown system system /dev/logbuffer_cpm + chown system system /dev/logbuffer_wc68 + chown system system /dev/logbuffer_pcie0 + chown system system /dev/logbuffer_pcie1 + chown system system /dev/logbuffer_bd + +on boot + + # Allow to access debugfs for system:system + chmod 0755 /sys/kernel/debug + chown system system /sys/kernel/debug + + #setprop ro.radio.noril no + + # default country code + setprop ro.boot.wificountrycode 00 + + # Set up kernel tracing, but disable it by default + chmod 0222 /sys/kernel/debug/tracing/trace_marker + write /sys/kernel/debug/tracing/tracing_on 0 + + # Trigger TMU to ACPM pi table update + write /sys/module/gs_thermal/parameters/update_acpm_pi_table 1 + + # Change permission for A-Box firmware logs file & GPR dump + chown audioserver system /sys/devices/platform/17c50000.abox/reset + chown audioserver system /sys/devices/platform/17c50000.abox/service + chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/gpr + chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_sram + chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_dram + chown audioserver system /sys/devices/platform/17c50000.abox/0.abox_debug/calliope_iva + chown audioserver system /sys/kernel/debug/abox/log-00 + +# Permission for USB SELECT + chown system system /sys/class/android_usb/android0/enable + chmod 0660 /sys/class/android_usb/android0/enable + chown system system /sys/class/android_usb/android0/idVendor + chmod 0660 /sys/class/android_usb/android0/idVendor + chown system system /sys/class/android_usb/android0/idProduct + chmod 0660 /sys/class/android_usb/android0/idProduct + chown system system /sys/class/android_usb/android0/f_diag/clients + chmod 0660 /sys/class/android_usb/android0/f_diag/clients + chown system system /sys/class/android_usb/android0/functions + chmod 0660 /sys/class/android_usb/android0/functions + chown system system /sys/class/android_usb/android0/bDeviceClass + chmod 0660 /sys/class/android_usb/android0/bDeviceClass + +# Permission for UART SWITCH + chmod 0660 /sys/class/sec/switch/uart_sel + chown system system /sys/class/sec/switch/uart_sel + +# VTS sysfs file permission + chown audioserver system /sys/devices/platform/13810000.vts/vts_svoice_model + chown audioserver system /sys/devices/platform/13810000.vts/vts_google_model + chmod 0660 /sys/devices/platform/13810000.vts/vts_svoice_model + chmod 0660 /sys/devices/platform/13810000.vts/vts_google_model + +on property:persist.vendor.radio.no_modem_board=1 + setprop ro.radio.noril yes + +on fs + mount_all --early + restorecon_recursive /mnt/vendor/efs + chown radio system /mnt/vendor/efs + restorecon_recursive /mnt/vendor/efs_backup + chown radio system /mnt/vendor/efs_backup + restorecon_recursive /mnt/vendor/modem_userdata + chown radio system /mnt/vendor/modem_userdata + + # Mount modem partition + mount_all /vendor/etc/fstab.modem --early + restorecon_recursive /mnt/vendor/modem_img + + restorecon_recursive /mnt/vendor/persist + restorecon_recursive /mnt/vendor/persist/aoc + restorecon_recursive /mnt/vendor/persist/audio + restorecon_recursive /mnt/vendor/persist/sensors + restorecon_recursive /mnt/vendor/persist/battery + restorecon_recursive /mnt/vendor/persist/camera + restorecon_recursive /mnt/vendor/persist/modem + # Set up display-related directories and permissions + # Add restorecon_recursive command to make sure the restorecon label is persist_display_file. + restorecon_recursive /mnt/vendor/persist/display + mkdir /mnt/vendor/persist/data/sfs 0700 system system + mkdir /mnt/vendor/persist/data/tz 0700 system system + mkdir /mnt/vendor/persist/touch 0770 system system + +# Permissions for ION + chmod 0660 /sys/class/ion_cma/ion_video_ext/isolated + chown system system /sys/class/ion_cma/ion_video_ext/isolated + +# Permissions for hwcomposer + chown system system /sys/class/backlight/panel0-backlight/als_table + chown system system /sys/class/backlight/panel0-backlight/brightness + chown system system /sys/class/backlight/panel0-backlight/dimming_on + chown system system /sys/class/backlight/panel0-backlight/hbm_mode + chown system system /sys/class/backlight/panel0-backlight/local_hbm_mode + chown system system /sys/devices/platform/exynos-drm/primary-panel/gamma + chown system system /sys/devices/platform/exynos-drm/primary-panel/min_vrefresh + chown system system /sys/devices/platform/exynos-drm/primary-panel/idle_delay_ms + chown system system /sys/devices/platform/exynos-drm/primary-panel/panel_idle + chown system system /sys/devices/platform/exynos-drm/primary-panel/panel_need_handle_idle_exit + chown system system /sys/devices/platform/exynos-drm/primary-panel/op_hz + chown system system /sys/module/drm/parameters/vblankoffdelay + chown system system /sys/class/dqe0/atc/ambient_light + chown system system /sys/class/dqe0/atc/st + chown system system /sys/class/dqe0/atc/en + chown system system /sys/class/dqe0/atc/lt + chown system system /sys/class/dqe0/atc/ns + chown system system /sys/class/dqe0/atc/dither + chown system system /sys/class/dqe0/atc/pl_w1 + chown system system /sys/class/dqe0/atc/pl_w2 + chown system system /sys/class/dqe0/atc/ctmode + chown system system /sys/class/dqe0/atc/pp_en + chown system system /sys/class/dqe0/atc/upgrade_on + chown system system /sys/class/dqe0/atc/tdr_max + chown system system /sys/class/dqe0/atc/tdr_min + chown system system /sys/class/dqe0/atc/back_light + chown system system /sys/class/dqe0/atc/dstep + chown system system /sys/class/dqe0/atc/scale_mode + chown system system /sys/class/dqe0/atc/threshold_1 + chown system system /sys/class/dqe0/atc/threshold_2 + chown system system /sys/class/dqe0/atc/threshold_3 + chown system system /sys/class/dqe0/atc/gain_limit + chown system system /sys/class/dqe0/atc/lt_calc_ab_shift + + chown system system /sys/devices/platform/19470000.drmdecon/early_wakeup + chmod 0660 /sys/devices/platform/19470000.drmdecon/early_wakeup + + chown system system /sys/devices/platform/19470000.drmdecon/hibernation + chmod 0644 /sys/devices/platform/19470000.drmdecon/hibernation + +# Copy DRM Key +# copy /system/app/wv.keys /factory/wv.keys + +# Permission for DRM Key +# chmod 0644 /factory/wv.keys + +# Permission for flashlight control for HAL3.3 +# The Istor espresso board does not have the flash led h/w, So the below permission line are blocked. +# If you want to test the flashlight in board which have the flash led h/w, Enable the below blocked lines. + chmod 0660 /sys/class/camera/flash/rear_torch_flash + chown system camera /sys/class/camera/flash/rear_torch_flash +#load ecd firmware + write /proc/ecd/load_firmware 1 + +service abox /vendor/bin/main_abox 17c50000.abox + class late_start + user audioserver + group audioserver + seclabel u:r:abox:s0 + +# on userdebug and eng builds, enable kgdb on the serial console +on property:ro.debuggable=1 + write /sys/module/kgdboc/parameters/kgdboc ttyFIQ1 + write /sys/module/fiq_debugger/parameters/kgdb_enable 1 + +# Touch +on property:vendor.device.modules.ready=1 + chown system system /sys/class/spi_master/spi20/spi20.0/stm_fts_cmd + chown system system /sys/class/spi_master/spi20/spi20.0/glove_mode + chown system system /sys/devices/virtual/sec/tsp/fw_version + chown system system /sys/devices/virtual/sec/tsp/cmd + chown system system /sys/devices/virtual/sec/tsp/cmd_result + chown system system /sys/devices/virtual/sec/tsp/status + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/force_active + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/fw_ver + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ms_base + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ms_diff + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ms_raw + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/self_test + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ss_base + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ss_diff + chown system system /sys/devices/virtual/goog_touch_interface/gti.0/ss_raw + # Allow access to touch + chown system input /dev/touch_offload + chmod 660 /dev/touch_offload + +# Route touch_sensitivity_mode to persist +on property:debug.touch_sensitivity_mode=0 + setprop persist.vendor.touch_sensitivity_mode 0 + +on property:debug.touch_sensitivity_mode=1 + setprop persist.vendor.touch_sensitivity_mode 1 + +on property:init.svc.vendor.charger=running + stop keymaster-4-0 + + setprop sys.usb.configfs 1 + setprop vendor.setup.power 1 + + # keep one little and one big + write /sys/devices/system/cpu/cpu1/online 0 + write /sys/devices/system/cpu/cpu2/online 0 + write /sys/devices/system/cpu/cpu3/online 0 + write /sys/devices/system/cpu/cpu4/online 0 + write /sys/devices/system/cpu/cpu5/online 0 + write /sys/devices/system/cpu/cpu7/online 0 + +on property:sys.boot_completed=1 + + # Runtime fs tuning + write /sys/block/sda/queue/nr_requests 128 + write /sys/block/sda/queue/iostats 1 + write /sys/block/sda/queue/iosched/slice_idle 0 + write /dev/sys/fs/by-name/userdata/data_io_flag 8 + write /dev/sys/fs/by-name/userdata/node_io_flag 8 + + # Permission for Pixelstats + chown system system /dev/sys/fs/by-name/userdata/compr_written_block + chown system system /dev/sys/fs/by-name/userdata/compr_saved_block + chown system system /dev/sys/fs/by-name/userdata/compr_new_inode + chown system system /dev/sys/fs/by-name/userdata/gc_segment_mode + chown system system /dev/sys/fs/by-name/userdata/gc_reclaimed_segments + chown system system /dev/sys/fs/by-name/userdata/peak_atomic_write + chown system system /dev/sys/fs/by-name/userdata/committed_atomic_block + chown system system /dev/sys/fs/by-name/userdata/revoked_atomic_block + + # Enable ZRAM on boot_complete + swapon_all /vendor/etc/fstab.${ro.board.platform} + write /proc/sys/vm/swappiness 100 + + # Back to default VM settings + write /proc/sys/vm/dirty_expire_centisecs 3000 + write /proc/sys/vm/dirty_background_ratio 10 + + # Enable UFS powersaving + write /dev/sys/block/bootdevice/clkgate_enable 1 + + # Setup final cpuset + write /dev/cpuset/top-app/cpus 0-8 + write /dev/cpuset/foreground/cpus 0-7 + write /dev/cpuset/background/cpus 0-3 + write /dev/cpuset/system-background/cpus 0-3 + write /dev/cpuset/restricted/cpus 0-3 + write /dev/cpuset/camera-daemon/cpus 0-8 + setprop vendor.powerhal.init 1 + + # Setup final cpu.uclamp + write /proc/vendor_sched/ta_uclamp_min 1 + write /proc/vendor_sched/fg_uclamp_min 0 + write /proc/vendor_sched/sys_prefer_idle 0 + # cfs_rq clamp is using tg->uclamp setting + # align it with the vendor_group setting + write /proc/vendor_sched/bg_uclamp_max 512 + write /dev/cpuctl/background/cpu.uclamp.max 50 + write /proc/vendor_sched/bg_group_throttle 512 + write /proc/vendor_sched/sysbg_uclamp_max 512 + write /dev/cpuctl/system-background/cpu.uclamp.max 50 + write /proc/vendor_sched/sysbg_group_throttle 512 + write /proc/vendor_sched/dex2oat_uclamp_max 615 + write /dev/cpuctl/dex2oat/cpu.uclamp.max 60 + write /proc/vendor_sched/dex2oat_group_throttle 615 + write /proc/vendor_sched/ota_uclamp_max 410 + write /proc/vendor_sched/ota_group_throttle 410 + + # Set PMU freq limit parameters + write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/lcpi_threshold 2 + write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/spc_threshold 59 + write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/limit_frequency 1401000 + write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/lcpi_threshold 6 + write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/spc_threshold 64 + write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/limit_frequency 1826000 + write /sys/devices/system/cpu/cpufreq/policy8/sched_pixel/lcpi_threshold 5 + write /sys/devices/system/cpu/cpufreq/policy8/sched_pixel/spc_threshold 69 + write /sys/devices/system/cpu/cpufreq/policy8/sched_pixel/limit_frequency 2507000 + write /proc/vendor_sched/pmu_poll_time 10 + + # Disable PMU freq limit + write /sys/devices/system/cpu/cpufreq/policy0/sched_pixel/pmu_limit_enable 1 + write /sys/devices/system/cpu/cpufreq/policy4/sched_pixel/pmu_limit_enable 1 + write /sys/devices/system/cpu/cpufreq/policy8/sched_pixel/pmu_limit_enable 1 + write /proc/vendor_sched/pmu_poll_enable 0 + + # Setup groups for SF (RT used for SF RE, SF used for SF main) + write /proc/vendor_sched/rt_uclamp_min 125 + write /proc/vendor_sched/rt_prefer_idle 1 + write /proc/vendor_sched/sf_uclamp_min 30 + write /proc/vendor_sched/sf_prefer_idle 1 + + # Setup cpu.shares to throttle background groups (bg ~ 5% sysbg ~ 5% dex2oat ~2.5%) + write /dev/cpuctl/background/cpu.shares 1024 + write /dev/cpuctl/system-background/cpu.shares 1024 + write /dev/cpuctl/dex2oat/cpu.shares 512 + write /dev/cpuctl/system/cpu.shares 20480 + # We only have system and background groups holding tasks and the groups below are empty + write /dev/cpuctl/camera-daemon/cpu.shares 20480 + write /dev/cpuctl/foreground/cpu.shares 20480 + write /dev/cpuctl/nnapi-hal/cpu.shares 20480 + write /dev/cpuctl/rt/cpu.shares 20480 + write /dev/cpuctl/top-app/cpu.shares 20480 + + # gvotables for dumpstate + chown system system /sys/kernel/debug/gvotables + + # Permission for wireless charging + chown system system /sys/class/power_supply/wireless/capacity + chown system system /sys/class/power_supply/wireless/device/rtx + chown system system /sys/class/power_supply/wireless/device/rxdata + chown system system /sys/class/power_supply/wireless/device/txdata + chown system system /sys/class/power_supply/wireless/device/rxlen + chown system system /sys/class/power_supply/wireless/device/txlen + chown system system /sys/class/power_supply/wireless/device/ccreset + chown system system /sys/class/power_supply/wireless/device/status + chown system system /sys/class/power_supply/wireless/device/version + + # AOC reset permission + chown root system /sys/devices/platform/19000000.aoc/reset + chmod 0220 /sys/devices/platform/19000000.aoc/reset + + # AOC UDFPS clock compensation permission + chown system system /sys/devices/platform/17000000.aoc/control/udfps_set_clock_source + chmod 220 /sys/devices/platform/17000000.aoc/control/udfps_set_clock_source + chown system system /sys/devices/platform/17000000.aoc/control/udfps_get_osc_freq + chmod 440 /sys/devices/platform/17000000.aoc/control/udfps_get_osc_freq + chown system system /sys/devices/platform/17000000.aoc/control/udfps_get_disp_freq + chmod 440 /sys/devices/platform/17000000.aoc/control/udfps_get_disp_freq + + # write serialno to battery path for pairing + write /sys/class/power_supply/battery/dev_sn ${ro.boot.serialno} + + # Disable GPU firmware logging + write /sys/devices/platform/1f000000.mali/firmware_config/Log\ verbosity/cur 0 + +#Enable SICD + write /sys/devices/system/cpu/cpupm/cpupm/sicd 1 + +# IMS WiFi Calling + service charonservice /system/vendor/bin/charon + class main + user root + disabled + seclabel u:r:charonservice:s0 + +on property:vendor.charon.exec=1 + rm /data/vendor/misc/vpn/charon.pid + chmod 0666 /dev/tun + start charonservice + +on property:vendor.charon.exec=0 + stop charonservice + rm /data/vendor/misc/vpn/charon.pid + +# charger driver exposes now finer grain control, map demo mode to those properties +# NOTE: demo mode can only be exit wiping data (which reset the persist properties) +on property:sys.retaildemo.enabled=1 + setprop persist.vendor.charge.stop.level 35 + setprop persist.vendor.charge.start.level 30 + +# Test Harness Mode default battery profile. +on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=0 + setprop persist.vendor.charge.stop.level 70 + setprop persist.vendor.charge.start.level 35 + setprop vendor.battery.defender.disable 1 + +# Extremely restricted battery profile. +on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=1 + setprop persist.vendor.charge.stop.level 50 + setprop persist.vendor.charge.start.level 35 + setprop vendor.battery.defender.disable 1 + +# Normal behavior (as if the device was a regular device) +on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=2 + setprop persist.vendor.charge.stop.level 100 + setprop persist.vendor.charge.start.level 0 + +# Unrestricted, allows charging to 100% +on property:persist.sys.test_harness=1 && property:persist.vendor.testing_battery_profile=3 + setprop persist.vendor.charge.stop.level 100 + setprop persist.vendor.charge.start.level 0 + setprop vendor.battery.defender.disable 1 + +# bugreport is triggered by holding down volume down, volume up and power +service bugreport /system/bin/dumpstate -d -p -z + class main + disabled + oneshot + keycodes 114 115 116 + +# Proxy for Secure Storage +on post-fs-data + mkdir /data/vendor/rebootescrow 0770 hsm hsm + mkdir /data/vendor/ss 0770 root system + mkdir /mnt/vendor/persist/ss 0770 root system + restorecon_recursive /mnt/vendor/persist/ss + symlink /mnt/vendor/persist/ss /data/vendor/ss/persist + chown root system /data/vendor/ss/persist + chmod 0770 /data/vendor/ss/persist + symlink /dev/block/platform/13200000\.ufs/by-name/trusty_persist /data/vendor/ss/persist/0 + chown system system /data/vendor/ss/persist/0 + + restart storageproxyd + +service storageproxyd /vendor/bin/storageproxyd -d /dev/trusty-ipc-dev0 \ + -r /dev/sg1 -p /data/vendor/ss -t ufs + class early_hal + user system + group system + +# Write build info to kdebuginfo +on property:ro.build.fingerprint=* + write /sys/module/debug_kinfo/parameters/build_info ${ro.build.fingerprint} + +# Bluetooth +on post-fs-data + chown bluetooth system /sys/devices/platform/175b0000.serial/serial0/serial0-0/bluetooth/hci0/rfkill0/state + chown bluetooth system /sys/devices/platform/odm/odm:btbcm/rfkill/rfkill0/state + chown bluetooth system /sys/devices/platform/odm/odm:btbcm/rfkill/rfkill2/state + chown bluetooth system /proc/bluetooth/sleep/btwake + chown bluetooth system /proc/bluetooth/sleep/lpm + chown bluetooth system /proc/bluetooth/sleep/btwrite + +# ODPM +on fs + chown system system /sys/devices/platform/acpm_mfd_bus@18100000/i2c-7/i2c-s2mpg12mfd/s2mpg12-meter/s2mpg12-odpm/iio\:device0/enabled_rails + chown system system /sys/devices/platform/acpm_mfd_bus@18110000/i2c-8/i2c-s2mpg13mfd/s2mpg13-meter/s2mpg13-odpm/iio\:device1/enabled_rails + +on post-fs-data + mkdir /data/vendor/powerstats 0771 system system + chown system system /data/vendor/powerstats + +on property:vendor.thermal.link_ready=1 + # BCL + write /sys/devices/platform/cpupm/cpupm/cpd_cl1 0 #Disable power down + write /sys/devices/platform/cpupm/cpupm/cpd_cl2 0 #Disable power down + write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_light_clk_ratio 0xfff041c1 #OCP + write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu1_heavy_clk_ratio 0xfff041c0 #DFS + write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_heavy_clk_ratio 0xfff041c0 #DFS + write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_light_clk_ratio 0xfff041c1 #OCP + write /sys/devices/virtual/pmic/mitigation/clock_ratio/cpu2_light_clk_ratio 0xfff041c3 #OCP + write /sys/devices/virtual/pmic/mitigation/clock_ratio/gpu_heavy_clk_ratio 0xfff04380 #DFS + write /sys/devices/virtual/pmic/mitigation/clock_ratio/tpu_heavy_clk_ratio 0xfff041c0 #DFS + write /sys/devices/virtual/pmic/mitigation/triggered_lvl/smpl_lvl 3100 + write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_cpu2_lvl 12000 + write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_gpu_lvl 9000 + write /sys/devices/virtual/pmic/mitigation/triggered_lvl/soft_ocp_tpu_lvl 8500 + write /sys/devices/virtual/pmic/mitigation/clock_div/tpu_clk_div 0x1 + write /sys/devices/virtual/pmic/mitigation/clock_div/gpu_clk_div 0x1 + write /sys/devices/virtual/pmic/mitigation/clock_div/cpu2_clk_div 0x1 + write /sys/devices/platform/cpupm/cpupm/cpd_cl1 1 #Enable power down + write /sys/devices/platform/cpupm/cpupm/cpd_cl2 1 #Enable power down + chown system system /dev/thermal/tz-by-name/soc/mode + chown system system /dev/thermal/tz-by-name/vdroop2/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/vdroop2/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/vdroop1/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/vdroop1/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/smpl_gm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/smpl_gm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/ocp_cpu1/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/ocp_cpu1/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/ocp_cpu2/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/ocp_cpu2/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/ocp_tpu/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/ocp_tpu/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/ocp_gpu/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/ocp_gpu/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/soft_ocp_cpu1/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/soft_ocp_cpu1/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/soft_ocp_cpu2/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/soft_ocp_cpu2/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/soft_ocp_tpu/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/soft_ocp_tpu/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/soft_ocp_gpu/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/soft_ocp_gpu/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/soc/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/soc/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/batoilo/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/batoilo/trip_point_0_hyst + # Thermal + chown system system /dev/thermal/tz-by-name/disp_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/disp_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/north_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/north_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/cam_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/cam_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/charge_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/charge_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/soc_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/soc_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/neutral_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/neutral_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/usb_pwr_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/usb_pwr_therm/trip_point_0_hyst + chown system system /dev/thermal/tz-by-name/quiet_therm/trip_point_0_temp + chown system system /dev/thermal/tz-by-name/quiet_therm/trip_point_0_hyst + chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-0/user_vote + chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-1/user_vote + chown system system /dev/thermal/cdev-by-name/thermal-cpufreq-2/user_vote + chown system system /dev/thermal/cdev-by-name/thermal-gpufreq-0/user_vote + chown system system /dev/thermal/cdev-by-name/gxp-cooling/user_vote + chown system system /dev/thermal/cdev-by-name/tpu_cooling/user_vote + chown system system /dev/thermal/cdev-by-name/fcc/cur_state + chown system system /dev/thermal/cdev-by-name/dc_icl/cur_state + chown system system /dev/thermal/cdev-by-name/wlc_fcc/cur_state + chown system system /dev/thermal/cdev-by-name/chg_mdis/cur_state + chown system system /dev/thermal/cdev-by-name/usbc-port/cur_state + +on charger + # Use charger thermal config + setprop vendor.thermal.config "thermal_info_config_charge.json" + + # Wait for insmod_sh to finish all common modules + wait_for_prop vendor.common.modules.ready 1 + + # Create thermal symlink in off charging mode + mkdir /dev/thermal 0750 system system + mkdir /dev/thermal/tz-by-name 0750 system system + mkdir /dev/thermal/cdev-by-name 0750 system system + start vendor.thermal.symlinks + +on property:vendor.disable.bcl.control=1 + write /sys/devices/virtual/pmic/mitigation/instruction/enable_mitigation 0 + +on property:vendor.disable.bcl.control=0 + write /sys/devices/virtual/pmic/mitigation/instruction/enable_mitigation 1 + +# UDFPS +on post-fs-data && property:ro.vendor.factory=1 + # HBM mode for UDFPS factory apk + chmod 666 /d/dri/0/DSI-1/panel/reg/payload + chmod 666 /d/dri/0/DSI-1/panel/reg/count + chmod 666 /d/dri/0/DSI-1/panel/reg/address + chmod 666 /d/dri/0/DSI-1/panel/hbm_mode + chmod 666 /sys/class/backlight/panel0-backlight/local_hbm_max_timeout + chmod 666 /sys/class/backlight/panel0-backlight/local_hbm_mode + chmod 666 /sys/class/backlight/panel0-backlight/hbm_mode + +# UFS +on property:ro.boot.mode=charger && property:init.svc.vendor.charger=running + # Enable UFS powersaving in Off Mode Charger + write /dev/sys/block/bootdevice/clkgate_enable 1 diff --git a/conf/init.zumapro.usb.rc b/conf/init.zumapro.usb.rc new file mode 100644 index 0000000..0f5d22c --- /dev/null +++ b/conf/init.zumapro.usb.rc @@ -0,0 +1,194 @@ +on early-boot + mkdir /config/usb_gadget/g1 + mkdir /config/usb_gadget/g1/strings/0x409 + mkdir /config/usb_gadget/g1/configs/b.1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno} + write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer} + write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model} + write /config/usb_gadget/g1/configs/b.1/MaxPower 0x384 + write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1 + write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100" + + # ffs function + mkdir /config/usb_gadget/g1/functions/ffs.adb 0770 shell shell + mkdir /config/usb_gadget/g1/functions/ffs.mtp + mkdir /config/usb_gadget/g1/functions/ffs.ptp + mkdir /dev/usb-ffs 0775 shell shell + mkdir /dev/usb-ffs/adb 0770 shell shell + mkdir /dev/usb-ffs/mtp 0770 mtp mtp + mkdir /dev/usb-ffs/ptp 0770 mtp mtp + mount functionfs adb /dev/usb-ffs/adb rmode=0770,fmode=0660,uid=2000,gid=2000,no_disconnect=1 + mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1 + mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1 + setprop sys.usb.mtp.device_type 3 + setprop sys.usb.mtp.batchcancel true + symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 + + # mtp function + mkdir /config/usb_gadget/g1/functions/mtp.gs0 + + # ptp function + mkdir /config/usb_gadget/g1/functions/ptp.gs1 + + # accessory function + mkdir /config/usb_gadget/g1/functions/accessory.gs2 + + # audio_source function + mkdir /config/usb_gadget/g1/functions/audio_source.gs3 + + # rndis function + mkdir /config/usb_gadget/g1/functions/rndis.gs4 + # Modify class/subclass/protocol for rndis.gs4 + # Remote NDIS: Class: Wireless Controller (0xe0), Subclass: 0x1, Protocol: 0x3 + write /config/usb_gadget/g1/functions/rndis.gs4/class e0 + write /config/usb_gadget/g1/functions/rndis.gs4/subclass 01 + write /config/usb_gadget/g1/functions/rndis.gs4/protocol 03 + write /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.ncm/compatible_id RNDIS + write /config/usb_gadget/g1/functions/rndis.gs4/ifname rndis%d + setprop vendor.usb.rndis.config rndis.gs4 + + # midi function + mkdir /config/usb_gadget/g1/functions/midi.gs5 + + # acm function + mkdir /config/usb_gadget/g1/functions/acm.gs6 + + # dm function + mkdir /config/usb_gadget/g1/functions/dm.gs7 + + # uts function + mkdir /config/usb_gadget/g1/functions/uts.gs8 + + # ncm function + mkdir /config/usb_gadget/g1/functions/ncm.gs9 + write /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/compatible_id WINNCM + write /config/usb_gadget/g1/functions/ncm.gs9/ifname ncm%d + + # etr_miu function + mkdir /config/usb_gadget/g1/functions/etr_miu.gs11 + + # acm function for uwb + mkdir /config/usb_gadget/g1/functions/acm.uwb0 + + # chown file/folder permission + chown system system /config/usb_gadget/ + chown system system /config/usb_gadget/g1 + chown system system /config/usb_gadget/g1/UDC + chown system system /config/usb_gadget/g1/bDeviceClass + chown system system /config/usb_gadget/g1/bDeviceProtocol + chown system system /config/usb_gadget/g1/bDeviceSubClass + chown system system /config/usb_gadget/g1/bMaxPacketSize0 + chown system system /config/usb_gadget/g1/bcdDevice + chown system system /config/usb_gadget/g1/bcdUSB + chown system system /config/usb_gadget/g1/configs + chown system system /config/usb_gadget/g1/configs/b.1 + chown system system /config/usb_gadget/g1/configs/b.1/MaxPower + chown system system /config/usb_gadget/g1/configs/b.1/bmAttributes + chown system system /config/usb_gadget/g1/configs/b.1/strings + chown system system /config/usb_gadget/g1/functions + chown system system /config/usb_gadget/g1/functions/accessory.gs2 + chown system system /config/usb_gadget/g1/functions/acm.gs6 + chown system system /config/usb_gadget/g1/functions/acm.gs6/port_num + chown system system /config/usb_gadget/g1/functions/acm.uwb0 + chown system system /config/usb_gadget/g1/functions/acm.uwb0/port_num + chown system system /config/usb_gadget/g1/functions/audio_source.gs3 + chown system system /config/usb_gadget/g1/functions/dm.gs7 + chown system system /config/usb_gadget/g1/functions/ffs.adb + chown system system /config/usb_gadget/g1/functions/ffs.mtp + chown system system /config/usb_gadget/g1/functions/ffs.ptp + chown system system /config/usb_gadget/g1/functions/midi.gs5 + chown system system /config/usb_gadget/g1/functions/midi.gs5/buflen + chown system system /config/usb_gadget/g1/functions/midi.gs5/id + chown system system /config/usb_gadget/g1/functions/midi.gs5/in_ports + chown system system /config/usb_gadget/g1/functions/midi.gs5/index + chown system system /config/usb_gadget/g1/functions/midi.gs5/out_ports + chown system system /config/usb_gadget/g1/functions/midi.gs5/qlen + chown system system /config/usb_gadget/g1/functions/mtp.gs0 + chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc + chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP + chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/compatible_id + chown system system /config/usb_gadget/g1/functions/mtp.gs0/os_desc/interface.MTP/sub_compatible_id + chown system system /config/usb_gadget/g1/functions/ncm.gs9 + chown system system /config/usb_gadget/g1/functions/ncm.gs9/dev_addr + chown system system /config/usb_gadget/g1/functions/ncm.gs9/host_addr + chown system system /config/usb_gadget/g1/functions/ncm.gs9/ifname + chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc + chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm + chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/compatible_id + chown system system /config/usb_gadget/g1/functions/ncm.gs9/os_desc/interface.ncm/sub_compatible_id + chown system system /config/usb_gadget/g1/functions/ncm.gs9/qmult + chown system system /config/usb_gadget/g1/functions/ptp.gs1 + chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc + chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP + chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/compatible_id + chown system system /config/usb_gadget/g1/functions/ptp.gs1/os_desc/interface.MTP/sub_compatible_id + chown system system /config/usb_gadget/g1/functions/rndis.gs4 + chown system system /config/usb_gadget/g1/functions/rndis.gs4/class + chown system system /config/usb_gadget/g1/functions/rndis.gs4/dev_addr + chown system system /config/usb_gadget/g1/functions/rndis.gs4/host_addr + chown system system /config/usb_gadget/g1/functions/rndis.gs4/ifname + chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc + chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis + chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis/compatible_id + chown system system /config/usb_gadget/g1/functions/rndis.gs4/os_desc/interface.rndis/sub_compatible_id + chown system system /config/usb_gadget/g1/functions/rndis.gs4/protocol + chown system system /config/usb_gadget/g1/functions/rndis.gs4/qmult + chown system system /config/usb_gadget/g1/functions/rndis.gs4/subclass + chown system system /config/usb_gadget/g1/idProduct + chown system system /config/usb_gadget/g1/idVendor + chown system system /config/usb_gadget/g1/max_speed + chown system system /config/usb_gadget/g1/os_desc + chown system system /config/usb_gadget/g1/os_desc/b.1 + chown system system /config/usb_gadget/g1/os_desc/b_vendor_code + chown system system /config/usb_gadget/g1/os_desc/qw_sign + chown system system /config/usb_gadget/g1/os_desc/use + chown system system /config/usb_gadget/g1/strings + chown system system /config/usb_gadget/g1/strings/0x409 + chown system system /config/usb_gadget/g1/strings/0x409/manufacturer + chown system system /config/usb_gadget/g1/strings/0x409/product + chown system system /config/usb_gadget/g1/strings/0x409/serialnumber + setprop vendor.usb.functions.ready 1 + +on boot + # Use USB Gadget HAL + setprop sys.usb.configfs 2 + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idProduct 0x4EE7 + write /config/usb_gadget/g1/idVendor 0x18D1 + +on property:vendor.usb.config=* + start usbd + +on property:persist.vendor.usb.usbradio.config=* + start usbd + +on charger + mkdir /config/usb_gadget/g1 + mkdir /config/usb_gadget/g1/strings/0x409 + mkdir /config/usb_gadget/g1/configs/b.1 + write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno} + write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer} + write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model} + write /config/usb_gadget/g1/configs/b.1/MaxPower 0x384 + write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1 + write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100" + mkdir /config/usb_gadget/g1/functions/midi.gs5 + symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 + setprop sys.usb.controller "11210000.dwc3" + setprop sys.usb.configfs 1 + +on property:ro.bootmode=charger + setprop sys.usb.config charger + +on property:sys.usb.config=charger && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x4eea + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "midi" + symlink /config/usb_gadget/g1/functions/midi.gs5 /config/usb_gadget/g1/configs/b.1/f1 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + +on property:ro.bootmode=usbuwb + setprop persist.vendor.usb.usbradio.config uwb_acm diff --git a/conf/recovery.wipe b/conf/recovery.wipe new file mode 100644 index 0000000..9ee7a1e --- /dev/null +++ b/conf/recovery.wipe @@ -0,0 +1,3 @@ +# All the partitions to be wiped (in order) under recovery. +/dev/block/by-name/userdata +/dev/block/by-name/metadata diff --git a/conf/soundtrigger_conf.h b/conf/soundtrigger_conf.h new file mode 100644 index 0000000..1263c60 --- /dev/null +++ b/conf/soundtrigger_conf.h @@ -0,0 +1,109 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef __EXYNOS_SOUNDTRIGGERCONF_H__ +#define __EXYNOS_SOUNDTRIGGERCONF_H__ + +/********************************************************************/ +/** ALSA Framework Sound Card & Sound Device Information */ +/** */ +/** You can find Sound Device Name from /dev/snd. */ +/** Sound Device Name consist of Card Number & Device Number. */ +/** */ +/********************************************************************/ + +/* Sound Card and Mixer card Numbers based on Target Device */ +/* You have to match this number with real kernel information */ +#define VTS_SOUND_CARD 0 +#define VTS_MIXER_CARD 0 + +/* PCM Nodes number for seamless and normal recording*/ +#define VTS_TRICAP_DEVICE_NODE 13 +#define VTS_RECORD_DEVICE_NODE 14 + +/* sysfs file paths for loading model binaries into VTS kernel driver */ +#define VTS_HOTWORD_MODEL "/sys/devices/platform/13810000.vts/vts_google_model" +#define VTS_SVOICE_MODEL "/sys/devices/platform/13810000.vts/vts_svoice_model" + +#define AUDIO_PRIMARY_HAL_LIBRARY_PATH "/vendor/lib/libaudioproxy.so" + +// VTS Capture(Input) PCM Configuration +#define DEFAULT_VTS_CHANNELS 1 // Mono +#define DEFAULT_VTS_SAMPLING_RATE 16000 // 16KHz + +#define PRIMARY_VTS_PERIOD_SIZE 160 // 160 frames, 10ms in case of 16KHz Stream +#define PRIMARY_VTS_PERIOD_COUNT 1024 // Buffer count => Total 327680 Bytes = 160 * 1(Mono) * 2(16bit PCM) * 1024(Buffer count) + +/* VTS mixer controls */ +#define VTS_ACTIVE_KEYPHRASE_CTL_NAME "VTS Active Keyphrase" /* default: 0-"SVOICE", 1-"GOOGLE", 2-"SENSORY" */ +#define VTS_EXECUTION_MODE_CTL_NAME "VTS Execution Mode" /* 0-"OFF-MODE", 1-"VOICE-TRIG-MODE", 2-"SOUND-DECTECT-MODE", 3-"VT-ALWAYS-MODE" 4-"GOOGLE-TRI-MODE */ +#define VTS_VOICERECOGNIZE_START_CTL_NAME "VTS VoiceRecognize Start" /* 0-"Off", 1-On" */ +#define VTS_VOICETRIGGER_VALUE_CTL_NAME "VTS VoiceTrigger Value" /* 0 ~ 2000 ms*/ + +#define MAIN_MIC_CONTROL_COUNT 8 +#define HEADSET_MIC_CONTROL_COUNT 8 +#define MODEL_RECOGNIZE_CONTROL_COUNT 4 + +/* MIC Mixer controls for VTS */ +char *main_mic_ctlname[] = { + "VTS DMIC SEL", + "VTS DMIC IF RCH EN", + "VTS DMIC IF LCH EN", + "VTS SYS SEL", + "VTS HPF EN", + "VTS HPF SEL", + "DMIC1 Switch", + "VTS Virtual Output Mux", +}; + +char *headset_mic_ctlname[] = { + "AUXPDM1 Rate", + "AUXPDM1 Input", + "AUXPDM1 Output Switch", + "AUXPDM Switch", + "VTS DMIC SEL", + "VTS DMIC IF RCH EN", + "VTS DMIC IF LCH EN", + "VTS SYS SEL", + "VTS HPF EN", + "VTS HPF SEL", +}; + +/* MIC Mixer control values */ +/* FIXME : Double check this values */ +int main_mic_ctlvalue[] = { + 0, //"VTS DMIC SEL", + 1, //"VTS DMIC IF RCH EN", + 1, //"VTS DMIC IF LCH EN", + 1, //"VTS SYS SEL", + 1, //"VTS HPF EN", + 1, //"VTS HPF SEL", + 1, //"DMIC1 Switch", + 1, //"VTS Virtual Output Mux", +}; + +int headset_mic_ctlvalue[] = { + 3, //"AUXPDM1 Rate", + 0, //"AUXPDM1 Input", + 1, //"AUXPDM1 Output Switch", + 1, //"AUXPDM Switch", + 1, //"VTS DMIC SEL", + 1, //"VTS DMIC IF RCH EN", + 1, //"VTS DMIC IF LCH EN", + 1, //"VTS SYS SEL", + 1, //"VTS HPF EN", + 1, //"VTS HPF SEL", +}; +#endif // __EXYNOS_SOUNDTRIGGERCONF_H__ diff --git a/conf/ueventd.zumapro.rc b/conf/ueventd.zumapro.rc new file mode 100644 index 0000000..80ee743 --- /dev/null +++ b/conf/ueventd.zumapro.rc @@ -0,0 +1,225 @@ +/dev/mali0 0666 system system +/dev/ion 0666 system system +/dev/ump 0666 system graphics +/dev/exynos-mem 0660 system graphics +/dev/video0 0660 system camera +/dev/video1 0660 system camera +/dev/video2 0660 system camera +/dev/video3 0660 system camera +/dev/video20 0660 system system +# media0 is used for GSC, DECON, etc +/dev/media0 0660 system camera +# media1 is used for DECON Ext WB +/dev/media1 0660 system graphics +# Various devices use the v4l-subdev interface +# We declare all such nodes simultaneously here +/dev/v4l-subdev0 0660 system camera +/dev/v4l-subdev1 0660 system camera +/dev/v4l-subdev2 0660 system camera +/dev/v4l-subdev3 0660 system camera +/dev/v4l-subdev4 0660 system camera +/dev/v4l-subdev5 0660 system camera +/dev/v4l-subdev6 0660 system camera +/dev/v4l-subdev7 0660 system camera +/dev/v4l-subdev8 0660 system camera +/dev/v4l-subdev9 0660 system camera +/dev/v4l-subdev10 0660 system camera +/dev/v4l-subdev11 0660 system camera +/dev/v4l-subdev12 0660 system camera +/dev/v4l-subdev13 0660 system camera +/dev/v4l-subdev14 0660 system camera +/dev/v4l-subdev15 0660 system camera +/dev/v4l-subdev16 0660 system camera +/dev/v4l-subdev17 0660 system camera +/dev/v4l-subdev18 0660 system camera +/dev/v4l-subdev19 0660 system camera +# v4l-subdev20 is used for DECON Ext WB +/dev/v4l-subdev20 0660 system graphics +/dev/v4l-subdev21 0660 system graphics +/dev/v4l-subdev32 0660 system graphics + +# gscalers +/dev/video23 0660 media graphics +/dev/video26 0660 media graphics +/dev/video24 0660 media graphics +/dev/video27 0660 media graphics +/dev/video29 0660 media graphics +/dev/video30 0660 media graphics +# video31 is used for DECON Ext WB +/dev/video31 0660 media graphics + +# mscalers +/dev/video50 0660 mediacodec drmrpc +/dev/m2m1shot_scaler0 0660 mediacodec drmrpc + +/dev/video55 0666 system graphics +/dev/g2d 0660 system graphics +/dev/fimg2d 0666 system graphics +/dev/i2c-2 0660 system system +/dev/HPD 0660 system system + +# wfd +/dev/tsmux 0660 media graphics +/dev/repeater 0660 media graphics + +# mfc +/dev/video6 0660 mediacodec mediadrm +/dev/video7 0660 mediacodec mediadrm +/dev/video8 0660 mediacodec mediadrm +/dev/video9 0660 mediacodec mediadrm +/dev/video10 0660 mediacodec mediadrm +/dev/video11 0660 mediacodec mediadrm + +# camera +/dev/media2 0660 media media +/dev/hdcp2 0660 media media + +# jpeg +/dev/m2m1shot_jpeg 0660 media media +/dev/video12 0660 system system + +# audio +/dev/seiren 0660 system audio +/dev/acd-audio_output_tuning 0660 system audio +/dev/acd-audio_bulk_tx 0660 system audio +/dev/acd-audio_bulk_rx 0660 system audio +/dev/acd-audio_input_tuning 0660 system audio +/dev/acd-audio_input_bulk_tx 0660 system audio +/dev/acd-audio_input_bulk_rx 0660 system audio +/dev/acd-sound_trigger 0660 system audio +/dev/acd-hotword_notification 0660 system audio +/dev/acd-hotword_pcm 0660 system audio +/dev/acd-ambient_pcm 0660 system audio +/dev/acd-model_data 0660 system audio +/dev/acd-debug 0660 system audio +/dev/acd-audio_tap* 0660 system audio +/dev/acd-audio_dcdoff_ref 0660 system audio +/dev/amcs 0660 system audio +/dev/acd-audio_rtp_* 0660 system radio + +# Secure MEM driver +/dev/s5p-smem 0660 drm drmrpc + +# cbd +/dev/block/by-name/modem 0640 root radio +/dev/block/by-name/modem_a 0640 root radio +/dev/block/by-name/modem_b 0640 root radio + +# DM tools +/dev/umts_dm0 0660 system system +/dev/umts_router 0660 system system +/dev/ttyGS0 0660 system system +/dev/ttyGS1 0660 system system +/dev/ttyGS2 0660 system system + +# IPC RIL +/dev/umts_boot0 0660 radio system +/dev/umts_ipc0 0660 radio radio +/dev/umts_ipc1 0660 radio radio +/dev/umts_rfs0 0660 radio radio + +# IPC OEM +/dev/oem_ipc* 0660 radio radio +/dev/oem_test 0660 radio radio + +# interactive governor parameters +/sys/devices/system/cpu/cpu* cpufreq/interactive/timer_rate 0660 system system +/sys/devices/system/cpu/cpu* cpufreq/interactive/timer_slack 0660 system system +/sys/devices/system/cpu/cpu* cpufreq/interactive/min_sample_time 0660 system system +/sys/devices/system/cpu/cpu* cpufreq/interactive/hispeed_freq 0660 system system +/sys/devices/system/cpu/cpu* cpufreq/interactive/target_loads 0660 system system +/sys/devices/system/cpu/cpu* cpufreq/interactive/go_hispeed_load 0660 system system +/sys/devices/system/cpu/cpu* cpufreq/interactive/above_hispeed_delay 0660 system system +/sys/devices/system/cpu/cpu* cpufreq/interactive/boost 0660 system system +/sys/devices/system/cpu/cpu* cpufreq/interactive/boostpulse 0200 system system +/sys/devices/system/cpu/cpu* cpufreq/interactive/input_boost 0660 system system +/sys/devices/system/cpu/cpu* cpufreq/interactive/boostpulse_duration 0660 system system +/sys/devices/system/cpu/cpu* cpufreq/interactive/io_is_busy 0660 system system + +# Vision (VPU, SCORE) +/dev/vertex0 0660 media media +/dev/vertex1 0660 media media + +# AoC +/dev/aoc 0660 system system + +# Sensors (USF) +/dev/acd-com.google.usf 0660 system system +/dev/acd-com.google.usf.non_wake_up 0660 system system + +# LWIS +/dev/lwis* 0660 system system + +# NFC +/dev/st21nfc 0660 nfc nfc + +# UWB +/dev/uci 0660 uwb uwb + +# SecureElement +/dev/st54spi 0660 secure_element secure_element + +#bigwave +/dev/bigwave 0660 mediacodec mediadrm + +# Trusty +/dev/trusty-ipc-dev0 0660 system drmrpc +/dev/trusty-log0 0660 system system +/dev/block/platform/13200000\.ufs/by-name/trusty_persist 0660 system system + +# RPMB +/dev/sg1 0660 system system + +# Citadel +/dev/gsc0 0660 hsm hsm + +# Storage: for factory reset protection feature +/dev/block/by-name/frp 0660 system system + +# Storage: for UDFPS calibration data sideload feature +/dev/block/by-name/mfg_data 0660 system system + +# TPU +/dev/edgetpu-soc 0660 system system + +# DSP +/dev/gxp 0666 system camera + +# TOE +/dev/dit2 0660 radio radio + +# Bluetooth +/dev/ttySAC18 0660 bluetooth system +/dev/btpower 0660 bluetooth system + +# BT Wifi Coexistence +/dev/wbrc 0660 system system + +# TUI +/dev/tui-driver 0660 system system + +# DMA-BUF heaps +/dev/dma_heap/crypto 0444 system graphics +/dev/dma_heap/crypto-uncached 0444 system graphics +/dev/dma_heap/faceauth_dsp-secure 0444 system graphics +/dev/dma_heap/faceauth_tpu-secure 0444 system graphics +/dev/dma_heap/faimg-secure 0444 system graphics +/dev/dma_heap/famodel-secure 0444 system graphics +/dev/dma_heap/faprev-secure 0444 system graphics +/dev/dma_heap/farawimg-secure 0444 system graphics +/dev/dma_heap/tui-secure 0444 system graphics +/dev/dma_heap/vframe-secure 0444 system drmrpc +/dev/dma_heap/vscaler-secure 0444 system graphics +/dev/dma_heap/vstream-secure 0444 system drmrpc +/dev/dma_heap/sensor_direct_heap 0444 system graphics +/dev/dma_heap/aaudio_playback_heap 0444 system audio +/dev/dma_heap/aaudio_capture_heap 0444 system audio + +# Direct Charging +/dev/logbuffer_pca9468_tcpm 0600 system system + +# Raw HID devices +/dev/hidraw* 0660 system system + +# Wlan +/dev/wlan 0660 wifi wifi diff --git a/default-permissions.xml b/default-permissions.xml new file mode 100644 index 0000000..8a0f653 --- /dev/null +++ b/default-permissions.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +        +        + + + + + + +    + + + + + + + + + + diff --git a/device-common.mk b/device-common.mk new file mode 100644 index 0000000..c230ef2 --- /dev/null +++ b/device-common.mk @@ -0,0 +1,55 @@ +# +# Copyright (C) 2020 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +-include vendor/google_devices/zumapro/proprietary/telephony/device-vendor.mk +include device/google/zumapro/device.mk + +# Telephony +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.telephony.carrierlock.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.carrierlock.xml + +# Android Verified Boot +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.software.verified_boot.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.verified_boot.xml + +# Factory OTA +-include vendor/unbundled_google/packages/FactoryOtaPrebuilt/factoryota.mk + +# Set system properties identifying the chipset +PRODUCT_VENDOR_PROPERTIES += ro.soc.manufacturer=Google +PRODUCT_VENDOR_PROPERTIES += ro.soc.model=ZUMAPRO + +PRODUCT_PRODUCT_PROPERTIES += \ + persist.vendor.testing_battery_profile=2 + +# The default value of this variable is false and should only be set to true when +# the device allows users to retain eSIM profiles after factory reset of user data. +PRODUCT_PRODUCT_PROPERTIES += \ + masterclear.allow_retain_esim_profiles_after_fdr=true + +# ZramWriteback +-include hardware/google/pixel/mm/device_gki.mk + +# Set thermal warm reset +PRODUCT_PRODUCT_PROPERTIES += \ + ro.thermal_warmreset = true + +# Indicate that the bootloader supports the MTE developer option switch +# (MISC_MEMTAG_MODE_MEMTAG_ONCE), with the exception of _fullmte products that +# force enable MTE. +ifeq (,$(filter %_fullmte,$(TARGET_PRODUCT))) +PRODUCT_PRODUCT_PROPERTIES += ro.arm64.memtag.bootctl_supported=1 +endif diff --git a/device-shipping-common.mk b/device-shipping-common.mk new file mode 100644 index 0000000..445df19 --- /dev/null +++ b/device-shipping-common.mk @@ -0,0 +1,16 @@ +# +# Copyright (C) 2020 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +include device/google/zumapro/device-common.mk diff --git a/device.mk b/device.mk new file mode 100644 index 0000000..f52336a --- /dev/null +++ b/device.mk @@ -0,0 +1,1132 @@ +# +# Copyright (C) 2011 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +include device/google/gs-common/device.mk +include device/google/gs-common/gs_watchdogd/watchdog.mk +include device/google/gs-common/ramdump/ramdump.mk +include device/google/gs-common/soc/soc.mk +include device/google/gs-common/modem/modem.mk +include device/google/gs-common/aoc/aoc.mk +include device/google/gs-common/trusty/trusty.mk +include device/google/gs-common/pcie/pcie.mk +include device/google/gs-common/storage/storage.mk +include device/google/gs-common/thermal/thermal.mk +include device/google/gs-common/performance/perf.mk +include device/google/gs-common/pixel_metrics/pixel_metrics.mk +include device/google/gs-common/soc/freq.mk +include device/google/gs-common/gps/dump/log.mk +include device/google/gs-common/display/dump.mk +include device/google/gs-common/gxp/dump.mk +include device/google/gs-common/camera/dump.mk +include device/google/gs-common/radio/dump.mk +include device/google/gs-common/gear/dumpstate/aidl.mk + +include device/google/zumapro/dumpstate/item.mk + +ifneq ($(BOARD_WITHOUT_RADIO),true) +include device/google/gs-common/gps/brcm/device_v2.mk +endif + +TARGET_BOARD_PLATFORM := zumapro +ALLOW_MISSING_DEPENDENCIES := true + +AB_OTA_POSTINSTALL_CONFIG += \ + RUN_POSTINSTALL_system=true \ + POSTINSTALL_PATH_system=system/bin/otapreopt_script \ + FILESYSTEM_TYPE_system=ext4 \ +POSTINSTALL_OPTIONAL_system=true + +# Set Vendor SPL to match platform +VENDOR_SECURITY_PATCH = $(PLATFORM_SECURITY_PATCH) + +# Set boot SPL +BOOT_SECURITY_PATCH = $(PLATFORM_SECURITY_PATCH) + +# TODO(b/207450311): Remove this flag once implemented +USE_PIXEL_GRALLOC := false +ifeq ($(USE_PIXEL_GRALLOC),true) + PRODUCT_SOONG_NAMESPACES += hardware/google/gchips/GrallocHAL +endif + +PRODUCT_SOONG_NAMESPACES += \ + hardware/google/av \ + hardware/google/gchips \ + hardware/google/gchips/gralloc4 \ + hardware/google/graphics/common \ + hardware/google/graphics/zumapro \ + hardware/google/interfaces \ + hardware/google/pixel \ + device/google/zumapro \ + device/google/zumapro/powerstats \ + system/chre/host/hal_generic \ + vendor/google/whitechapel/tools \ + vendor/google/interfaces \ + vendor/google_devices/common/proprietary/confirmatioui_hal \ + vendor/google_nos/host/android \ + vendor/google_nos/test/system-test-harness \ + vendor/google/camera + +LOCAL_KERNEL := $(TARGET_KERNEL_DIR)/Image.lz4 + +# Set the environment variable to switch the Keymint HAL service to Rust +TRUSTY_KEYMINT_IMPL := rust + +# OEM Unlock reporting +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ + ro.oem_unlock_supported=1 + +# Include vendor telephony soong namespace +PRODUCT_SOONG_NAMESPACES += \ + vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY) + +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +#Set IKE logs to verbose for WFC +PRODUCT_PROPERTY_OVERRIDES += log.tag.IKE=VERBOSE + +#Set Shannon IMS logs to debug +PRODUCT_PROPERTY_OVERRIDES += log.tag.SHANNON_IMS=DEBUG + +#Set Shannon QNS logs to debug +PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS=DEBUG +PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS-ims=DEBUG +PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS-emergency=DEBUG +PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS-mms=DEBUG +PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS-xcap=DEBUG +PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS-HC=DEBUG + +# Modem userdebug +include device/google/zumapro/modem/userdebug.mk +endif + +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +# b/36703476: Set default log size to 1M +PRODUCT_PROPERTY_OVERRIDES += \ + ro.logd.size=1M +# b/114766334: persist all logs by default rotating on 30 files of 1MiB +PRODUCT_PROPERTY_OVERRIDES += \ + logd.logpersistd=logcatd \ + logd.logpersistd.size=30 +endif + +# From system.property +PRODUCT_PROPERTY_OVERRIDES += \ + ro.telephony.default_network=27 \ + persist.vendor.ril.db_ecc.use.iccid_to_plmn=1 \ + persist.vendor.ril.db_ecc.id.type=5 + #rild.libpath=/system/lib64/libsec-ril.so \ + #rild.libargs=-d /dev/umts_ipc0 + +# SIT-RIL Logging setting +PRODUCT_PROPERTY_OVERRIDES += \ + persist.vendor.ril.log_mask=3 \ + persist.vendor.ril.log.base_dir=/data/vendor/radio/sit-ril \ + persist.vendor.ril.log.chunk_size=5242880 \ + persist.vendor.ril.log.num_file=3 + +# Enable reboot free DSDS +PRODUCT_PRODUCT_PROPERTIES += \ + persist.radio.reboot_on_modem_change=false + +# Configure DSDS by default +PRODUCT_PRODUCT_PROPERTIES += \ + persist.radio.multisim.config=dsds + +# Enable Early Camping +PRODUCT_PRODUCT_PROPERTIES += \ + persist.vendor.ril.camp_on_earlier=1 + +# Enable SET_SCREEN_STATE request +PRODUCT_PROPERTY_OVERRIDES += \ + persist.vendor.ril.enable_set_screen_state=1 + +# Set the Bluetooth Class of Device +# Service Field: 0x5A -> 90 +# Bit 14: LE audio +# Bit 17: Networking +# Bit 19: Capturing +# Bit 20: Object Transfer +# Bit 22: Telephony +# MAJOR_CLASS: 0x42 -> 66 (Phone) +# MINOR_CLASS: 0x0C -> 12 (Smart Phone) +PRODUCT_PRODUCT_PROPERTIES += \ + bluetooth.device.class_of_device=90,66,12 + +# Set supported Bluetooth profiles to enabled +PRODUCT_PRODUCT_PROPERTIES += \ + bluetooth.profile.asha.central.enabled=true \ + bluetooth.profile.a2dp.source.enabled=true \ + bluetooth.profile.avrcp.target.enabled=true \ + bluetooth.profile.bap.broadcast.assist.enabled=true \ + bluetooth.profile.bap.unicast.server.enabled=true \ + bluetooth.profile.bas.client.enabled=true \ + bluetooth.profile.csip.set_coordinator.enabled=true \ + bluetooth.profile.gatt.enabled=true \ + bluetooth.profile.hap.client.enabled=true \ + bluetooth.profile.hfp.ag.enabled=true \ + bluetooth.profile.hid.device.enabled=true \ + bluetooth.profile.hid.host.enabled=true \ + bluetooth.profile.map.server.enabled=true \ + bluetooth.profile.mcp.server.enabled=true \ + bluetooth.profile.opp.enabled=true \ + bluetooth.profile.pan.nap.enabled=true \ + bluetooth.profile.pan.panu.enabled=true \ + bluetooth.profile.pbap.server.enabled=true \ + bluetooth.profile.sap.server.enabled=true \ + bluetooth.profile.tbs.server.enabled=true \ + bluetooth.profile.vc.server.enabled=true + +# Carrier configuration default location +PRODUCT_PROPERTY_OVERRIDES += \ + persist.vendor.radio.config.carrier_config_dir=/mnt/vendor/modem_img/images/default/confpack + +PRODUCT_PROPERTY_OVERRIDES += \ + telephony.active_modems.max_count=2 + +USE_LASSEN_OEMHOOK := true + +# Use for GRIL +USES_LASSEN_MODEM := true + +ifeq ($(USES_GOOGLE_DIALER_CARRIER_SETTINGS),true) +USE_GOOGLE_DIALER := true +USE_GOOGLE_CARRIER_SETTINGS := true +endif + +# Audio client implementation for RIL +USES_GAUDIO := true + +# ###################### +# GRAPHICS - GPU (begin) + +# Must match BOARD_USES_SWIFTSHADER in BoardConfig.mk +USE_SWIFTSHADER := false + +# HWUI +TARGET_USES_VULKAN = true + +PRODUCT_SOONG_NAMESPACES += \ + vendor/arm/mali/valhall + +$(call soong_config_set,pixel_mali,soc,$(TARGET_BOARD_PLATFORM)) +$(call soong_config_set,arm_gralloc,soc,$(TARGET_BOARD_PLATFORM)) + +include device/google/gs101/neuralnetwork/neuralnetwork.mk + +PRODUCT_PACKAGES += \ + csffw_image_prebuilt__firmware_prebuilt_ttux_mali_csffw.bin \ + libGLES_mali \ + vulkan.mali \ + libOpenCL \ + libgpudataproducer + +ifeq ($(USE_SWIFTSHADER),true) +PRODUCT_PACKAGES += \ + libEGL_angle \ + libGLESv1_CM_angle \ + libGLESv2_angle \ + vulkan.pastel + +PRODUCT_VENDOR_PROPERTIES += \ + ro.hardware.egl=angle \ + ro.hardware.vulkan=pastel +else +PRODUCT_VENDOR_PROPERTIES += \ + ro.hardware.vulkan=mali +endif + +# Mali Configuration Properties +# b/221255664 prevents setting PROTECTED_MAX_CORE_COUNT=2 +PRODUCT_VENDOR_PROPERTIES += \ + vendor.mali.protected_max_core_count=1 \ + vendor.mali.protected_tls_max=67108864 \ + vendor.mali.platform_agt_frequency_khz=24576 + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \ + frameworks/native/data/etc/android.hardware.vulkan.version-1_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \ + frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \ + frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \ + frameworks/native/data/etc/android.software.vulkan.deqp.level-2021-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \ + frameworks/native/data/etc/android.software.opengles.deqp.level-2021-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml + +#endif + +PRODUCT_VENDOR_PROPERTIES += \ + ro.opengles.version=196610 \ + graphics.gpu.profiler.support=true \ + debug.renderengine.backend=skiavkthreaded \ + +# GRAPHICS - GPU (end) +# #################### + +# Device Manifest, Device Compatibility Matrix for Treble +DEVICE_MANIFEST_FILE := \ + device/google/zumapro/manifest.xml + +ifneq (,$(filter aosp_%,$(TARGET_PRODUCT))) +DEVICE_MANIFEST_FILE += \ + device/google/zumapro/manifest_media_aosp.xml + +PRODUCT_COPY_FILES += \ + device/google/zumapro/media_codecs_aosp_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_c2.xml +else +DEVICE_MANIFEST_FILE += \ + device/google/zumapro/manifest_media.xml + +PRODUCT_COPY_FILES += \ + device/google/zumapro/media_codecs_bo_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_c2.xml \ + device/google/zumapro/media_codecs_aosp_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_aosp_c2.xml +endif + +DEVICE_MATRIX_FILE := \ + device/google/zumapro/compatibility_matrix.xml + +DEVICE_PACKAGE_OVERLAYS += device/google/zumapro/overlay + +# This will be updated to 34 (Android U) for shipping +PRODUCT_SHIPPING_API_LEVEL := 33 + +# RKP VINTF +-include vendor/google_nos/host/android/hals/keymaster/aidl/strongbox/RemotelyProvisionedComponent-citadel.mk + +# Enforce the Product interface +PRODUCT_PRODUCT_VNDK_VERSION := current +PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE := true + +# Init files +PRODUCT_COPY_FILES += \ + $(LOCAL_KERNEL):kernel \ + device/google/zumapro/conf/init.zumapro.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.zumapro.usb.rc \ + device/google/zumapro/conf/ueventd.zumapro.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc + +PRODUCT_COPY_FILES += \ + device/google/zumapro/conf/init.zumapro.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.zumapro.rc + +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +PRODUCT_COPY_FILES += \ + device/google/zumapro/conf/init.debug.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.debug.rc +PRODUCT_COPY_FILES += \ + device/google/zumapro/conf/init.freq.userdebug.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.freq.userdebug.rc +endif + +# Recovery files +PRODUCT_COPY_FILES += \ + device/google/zumapro/conf/init.recovery.device.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.zumapro.rc + +# Fstab files +PRODUCT_PACKAGES += \ + fstab.zumapro \ + fstab.zumapro.vendor_ramdisk \ + fstab.zumapro-fips \ + fstab.zumapro-fips.vendor_ramdisk + +PRODUCT_COPY_FILES += \ + device/google/$(TARGET_BOARD_PLATFORM)/conf/fstab.persist:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.persist \ + device/google/$(TARGET_BOARD_PLATFORM)/conf/fstab.modem:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.modem + +include device/google/gs-common/insmod/insmod.mk + +# Insmod config files +PRODUCT_COPY_FILES += \ + $(call find-copy-subdir-files,init.insmod.*.cfg,$(TARGET_KERNEL_DIR),$(TARGET_COPY_OUT_VENDOR_DLKM)/etc) + +# For creating dtbo image +PRODUCT_HOST_PACKAGES += \ + mkdtimg + +PRODUCT_PACKAGES += \ + messaging + +# Contexthub HAL +PRODUCT_PACKAGES += \ + android.hardware.contexthub-service.generic + +# CHRE tools +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +PRODUCT_PACKAGES += \ + chre_power_test_client \ + chre_test_client +endif + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.context_hub.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.context_hub.xml + +## Enable the CHRE Daemon +CHRE_USF_DAEMON_ENABLED := true +PRODUCT_PACKAGES += \ + chre \ + preloaded_nanoapps.json + +# Filesystem management tools +PRODUCT_PACKAGES += \ + linker.vendor_ramdisk \ + tune2fs.vendor_ramdisk \ + resize2fs.vendor_ramdisk + +# Userdata Checkpointing OTA GC +PRODUCT_PACKAGES += \ + checkpoint_gc + +# Vendor verbose logging default property +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +PRODUCT_PROPERTY_OVERRIDES += \ + persist.vendor.verbose_logging_enabled=true +else +PRODUCT_PROPERTY_OVERRIDES += \ + persist.vendor.verbose_logging_enabled=false +endif + +# CP Logging properties +PRODUCT_PROPERTY_OVERRIDES += \ + ro.vendor.sys.modem.logging.loc = /data/vendor/slog \ + persist.vendor.sys.silentlog.tcp = "On" \ + ro.vendor.cbd.modem_removable = "1" \ + ro.vendor.cbd.modem_type = "s5100sit" \ + persist.vendor.sys.modem.logging.br_num=5 \ + persist.vendor.sys.modem.logging.enable=true + +# Enable silent CP crash handling +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +PRODUCT_PROPERTY_OVERRIDES += \ + persist.vendor.ril.crash_handling_mode=1 +else +PRODUCT_PROPERTY_OVERRIDES += \ + persist.vendor.ril.crash_handling_mode=2 +endif + +# Add support dual SIM mode +PRODUCT_PROPERTY_OVERRIDES += \ + persist.vendor.radio.multisim_switch_support=true + +# RPMB TA +PRODUCT_PACKAGES += \ + tlrpmb + +# Touch firmware +#PRODUCT_COPY_FILES += \ + device/google/zumapro/firmware/touch/s6sy761.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/s6sy761.fw +# Touch +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml + +# Sensors +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \ + frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \ + frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \ + frameworks/native/data/etc/android.hardware.sensor.dynamic.head_tracker.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.dynamic.head_tracker.xml \ + frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \ + frameworks/native/data/etc/android.hardware.sensor.hifi_sensors.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.hifi_sensors.xml \ + frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml\ + frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml \ + frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \ + frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml + +# Add sensor HAL AIDL product packages +PRODUCT_PACKAGES += android.hardware.sensors-service.multihal + +# USB HAL +PRODUCT_PACKAGES += \ + android.hardware.usb-service +PRODUCT_PACKAGES += \ + android.hardware.usb.gadget-service + +# MIDI feature +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml + +# default usb debug functions +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +PRODUCT_PROPERTY_OVERRIDES += \ + persist.vendor.usb.usbradio.config=dm +endif + +# adpf 16ms update rate +PRODUCT_PRODUCT_PROPERTIES += \ + vendor.powerhal.adpf.rate=16666666 + +PRODUCT_COPY_FILES += \ + device/google/zumapro/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json + +-include hardware/google/pixel/power-libperfmgr/aidl/device.mk + +# IRQ rebalancing. +include hardware/google/pixel/rebalance_interrupts/rebalance_interrupts.mk + +# PowerStats HAL +PRODUCT_PACKAGES += \ + android.hardware.power.stats-service.pixel + +# +# Audio HALs +# + +# Audio Configurations +#USE_LEGACY_LOCAL_AUDIO_HAL := false +#USE_XML_AUDIO_POLICY_CONF := 1 + +# Enable AAudio MMAP/NOIRQ data path. +PRODUCT_PROPERTY_OVERRIDES += aaudio.mmap_policy=2 +PRODUCT_PROPERTY_OVERRIDES += aaudio.mmap_exclusive_policy=2 +PRODUCT_PROPERTY_OVERRIDES += aaudio.hw_burst_min_usec=2000 + +# Calliope firmware overwrite +#PRODUCT_COPY_FILES += \ + device/google/zumapro/firmware/calliope_dram.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_dram.bin \ + device/google/zumapro/firmware/calliope_sram.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_sram.bin \ + device/google/zumapro/firmware/calliope_dram_2.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_dram_2.bin \ + device/google/zumapro/firmware/calliope_sram_2.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_sram_2.bin \ + device/google/zumapro/firmware/calliope2.dt:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope2.dt \ + +# Cannot reference variables defined in BoardConfig.mk, uncomment this if +# BOARD_USE_OFFLOAD_AUDIO and BOARD_USE_OFFLOAD_EFFECT are true +## AudioEffectHAL library +#PRODUCT_PACKAGES += \ +# libexynospostprocbundle + +# Cannot reference variables defined in BoardConfig.mk, uncomment this if +# BOARD_USE_SOUNDTRIGGER_HAL is true +#PRODUCT_PACKAGES += \ +# sound_trigger.primary.maran9820 + +# A-Box Service Daemon +#PRODUCT_PACKAGES += main_abox + +# Libs +PRODUCT_PACKAGES += \ + com.android.future.usb.accessory + +PRODUCT_PACKAGES += \ + android.hardware.graphics.mapper@4.0-impl \ + android.hardware.graphics.allocator-V1-service + +PRODUCT_PACKAGES += \ + memtrack.$(TARGET_BOARD_PLATFORM) \ + libion_exynos \ + libion + +PRODUCT_PACKAGES += \ + libhwjpeg + +# Video Editor +PRODUCT_PACKAGES += \ + VideoEditorGoogle + +# WideVine modules +include device/google/zumapro/widevine/device.mk +PRODUCT_PACKAGES += \ + liboemcrypto \ + +RIPCURRENTPRO_PRODUCT := %ripcurrentpro +ifneq (,$(filter $(RIPCURRENTPRO_PRODUCT), $(TARGET_PRODUCT))) + LOCAL_TARGET_PRODUCT := ripcurrentpro +else + # WAR: continue defaulting to slider build on zumapro + LOCAL_TARGET_PRODUCT := slider +endif + +$(call soong_config_set,google3a_config,soc,zumapro) +$(call soong_config_set,google3a_config,gcam_awb,true) +$(call soong_config_set,google3a_config,ghawb_truetone,true) + +ifneq ($(wildcard vendor/google/services/LyricCameraHAL/src),) +$(call soong_config_set,lyric,soc,zumapro) +$(call soong_config_set,lyric,use_lyric_camera_hal,true) +$(call soong_config_set,lyric,kernel_version,v515) +# lyric::tuning_product is set in device-specific makefiles, +# such as device/google/${DEVICE}/device-${DEVICE}.mk + +$(call soong_config_set,gch,hwl_library,lyric) +endif + +# WiFi +PRODUCT_PACKAGES += \ + android.hardware.wifi-service \ + wificond \ + libwpa_client + +# Connectivity +PRODUCT_PACKAGES += \ + ConnectivityOverlay + +PRODUCT_PACKAGES_DEBUG += \ + f2fs_io \ + check_f2fs \ + f2fs.fibmap \ + dump.f2fs + +# Storage health HAL +PRODUCT_PACKAGES += \ + android.hardware.health.storage-service.default + +# Battery Mitigation +include device/google/gs-common/battery_mitigation/bcl.mk +# storage pixelstats +-include hardware/google/pixel/pixelstats/device.mk + +# Enable project quotas and casefolding for emulated storage without sdcardfs +$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk) + +$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/android_t_baseline.mk) +PRODUCT_VIRTUAL_AB_COMPRESSION_METHOD := gz + +# Enforce generic ramdisk allow list +$(call inherit-product, $(SRC_TARGET_DIR)/product/generic_ramdisk.mk) + +# Titan-M +ifeq (,$(filter true, $(BOARD_WITHOUT_DTLS))) +include device/google/gs-common/dauntless/gsc.mk +endif + +PRODUCT_PACKAGES_DEBUG += \ + WvInstallKeybox + +# Copy Camera HFD Setfiles +#PRODUCT_COPY_FILES += \ + device/google/zumapro/firmware/camera/libhfd/default_configuration.hfd.cfg.json:$(TARGET_COPY_OUT_VENDOR)/firmware/default_configuration.hfd.cfg.json \ + device/google/zumapro/firmware/camera/libhfd/pp_cfg.json:$(TARGET_COPY_OUT_VENDOR)/firmware/pp_cfg.json \ + device/google/zumapro/firmware/camera/libhfd/tracker_cfg.json:$(TARGET_COPY_OUT_VENDOR)/firmware/tracker_cfg.json \ + device/google/zumapro/firmware/camera/libhfd/WithLightFixNoBN.SDNNmodel:$(TARGET_COPY_OUT_VENDOR)/firmware/WithLightFixNoBN.SDNNmodel + +# WiFi +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \ + frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \ + frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml \ + frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \ + frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \ + frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml \ + frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \ + frameworks/native/data/etc/android.hardware.camera.concurrent.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.concurrent.xml \ + frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml\ + frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml\ + +#PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \ + frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \ + frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \ + frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \ + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \ + frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \ + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml \ + +PRODUCT_PROPERTY_OVERRIDES += \ + debug.slsi_platform=1 \ + debug.hwc.winupdate=1 + +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +PRODUCT_PACKAGES += displaycolor_service +endif + +PRODUCT_PROPERTY_OVERRIDES += \ + debug.sf.disable_backpressure=0 \ + debug.sf.enable_gl_backpressure=1 \ + debug.sf.enable_sdr_dimming=1 + +# Camera +PRODUCT_PROPERTY_OVERRIDES += \ + vendor.camera.multicam.enable_p23_multicam=true + +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.use_phase_offsets_as_durations=1 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.late.sf.duration=10500000 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.late.app.duration=16600000 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.early.sf.duration=16600000 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.early.app.duration=16600000 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.sf.duration=16600000 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.app.duration=16600000 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.frame_rate_multiple_threshold=120 + +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.enable_layer_caching=true +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms?=80 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_touch_timer_ms=200 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_display_power_timer_ms=1000 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_content_detection_for_refresh_rate=true +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.max_frame_buffer_acquired_buffers=3 + +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.supports_background_blur=1 +PRODUCT_SYSTEM_PROPERTIES += ro.launcher.blur.appLaunch=0 + +# Must align with HAL types Dataspace +# The data space of wide color gamut composition preference is Dataspace::DISPLAY_P3 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.wcg_composition_dataspace=143261696 + +# Display +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.has_wide_color_display=true +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.has_HDR_display=true +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_color_management=true +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.protected_contents=true +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.display_update_imminent_timeout_ms=50 + +# force to blend in P3 mode +PRODUCT_PROPERTY_OVERRIDES += \ + persist.sys.sf.native_mode=2 \ + persist.sys.sf.color_mode=9 +PRODUCT_COPY_FILES += \ + device/google/zumapro/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb + +# limit DPP downscale ratio +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.hwc.dpp.downscale=2 + +# Cannot reference variables defined in BoardConfig.mk, uncomment this if +# BOARD_USES_EXYNOS_DSS_FEATURE is true +## set the dss enable status setup +#PRODUCT_PROPERTY_OVERRIDES += \ +# ro.exynos.dss=1 + +# Cannot reference variables defined in BoardConfig.mk, uncomment this if +# BOARD_USES_EXYNOS_AFBC_FEATURE is true +# set the dss enable status setup +PRODUCT_PROPERTY_OVERRIDES += \ + ro.vendor.ddk.set.afbc=1 + +PRODUCT_CHARACTERISTICS := nosdcard + +# WIFI COEX +PRODUCT_COPY_FILES += \ + device/google/zumapro/wifi/coex_table.xml:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/coex_table.xml + +PRODUCT_PACKAGES += hostapd +PRODUCT_PACKAGES += wpa_supplicant +PRODUCT_PACKAGES += wpa_supplicant.conf + +WIFI_PRIV_CMD_UPDATE_MBO_CELL_STATUS := enabled + +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +PRODUCT_PACKAGES += wpa_cli +PRODUCT_PACKAGES += hostapd_cli +endif + +#################################### +## VIDEO +#################################### + +# Video +PRODUCT_SOONG_NAMESPACES += vendor/google/media/bigwave + +$(call soong_config_set,bigw,soc,$(TARGET_BOARD_PLATFORM)) + +PRODUCT_PACKAGES += \ + google.hardware.media.c2@2.0-service \ + libgc2_bw_store \ + libgc2_bw_base \ + libgc2_bw_av1_dec \ + libgc2_bw_av1_enc \ + libbw_av1dec \ + libbw_av1enc \ + libgc2_bw_cwl \ + libgc2_bw_log \ + libgc2_bw_utils + +# 1. Codec 2.0 +# for settings used by different C2 hal +include device/google/gs-common/mediacodec/common/mediacodec_common.mk +# for Exynos C2 Hal +include device/google/gs-common/mediacodec/samsung/mediacodec_samsung.mk + +PRODUCT_COPY_FILES += \ + device/google/zumapro/media_codecs_performance_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_c2.xml \ + +PRODUCT_PROPERTY_OVERRIDES += \ + debug.stagefright.c2-poolmask=458752 \ + debug.c2.use_dmabufheaps=1 \ + media.c2.dmabuf.padding=512 \ + debug.stagefright.ccodec_delayed_params=1 \ + ro.vendor.gpu.dataspace=1 + +# Create input surface on the framework side +PRODUCT_PROPERTY_OVERRIDES += \ + debug.stagefright.c2inputsurface=-1 \ + +# 2. OpenMAX IL +PRODUCT_COPY_FILES += \ + device/google/zumapro/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ + device/google/zumapro/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml +#################################### + +# Telephony +#PRODUCT_COPY_FILES += \ + frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml + +# CBD (CP booting deamon) +CBD_USE_V2 := true +CBD_PROTOCOL_SIT := true + +# setup dalvik vm configs. +$(call inherit-product, frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk) + +PRODUCT_TAGS += dalvik.gc.type-precise + +# Exynos OpenVX framework +PRODUCT_PACKAGES += \ + libexynosvision + +ifeq ($(TARGET_USES_CL_KERNEL),true) +PRODUCT_PACKAGES += \ + libopenvx-opencl +endif + +# Trusty (KM, GK, Storage) +$(call inherit-product, system/core/trusty/trusty-storage.mk) +$(call inherit-product, system/core/trusty/trusty-base.mk) + +# Trusty unit test tool +PRODUCT_PACKAGES_DEBUG += \ + trusty-ut-ctrl \ + tipc-test \ + trusty_stats_test \ + +include device/google/gs101/confirmationui/confirmationui.mk + +# Trusty Metrics Daemon +PRODUCT_SOONG_NAMESPACES += \ + vendor/google/trusty/common + +PRODUCT_PACKAGES += \ + trusty_metricsd + +$(call soong_config_set,google_displaycolor,displaycolor_platform,zumapro) +PRODUCT_PACKAGES += \ + android.hardware.composer.hwc3-service.pixel \ + libdisplaycolor + +# Storage: for factory reset protection feature +PRODUCT_PROPERTY_OVERRIDES += \ + ro.frp.pst=/dev/block/by-name/frp + +# System props to enable Bluetooth Quality Report (BQR) feature +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +PRODUCT_PRODUCT_PROPERTIES += \ + persist.bluetooth.bqr.event_mask?=262174 \ + persist.bluetooth.bqr.min_interval_ms=500 +else +PRODUCT_PRODUCT_PROPERTIES += \ + persist.bluetooth.bqr.event_mask?=30 \ + persist.bluetooth.bqr.min_interval_ms=500 +endif + +#VNDK +PRODUCT_PACKAGES += \ + vndk-libs + +PRODUCT_ENFORCE_RRO_TARGETS := \ + framework-res + +# Dynamic Partitions +PRODUCT_USE_DYNAMIC_PARTITIONS := true + +# Use FUSE passthrough +PRODUCT_PRODUCT_PROPERTIES += \ + persist.sys.fuse.passthrough.enable=true + +# Use /product/etc/fstab.postinstall to mount system_other +PRODUCT_PRODUCT_PROPERTIES += \ + ro.postinstall.fstab.prefix=/product + +PRODUCT_COPY_FILES += \ + device/google/zumapro/conf/fstab.postinstall:$(TARGET_COPY_OUT_PRODUCT)/etc/fstab.postinstall + +# fastbootd +PRODUCT_PACKAGES += \ + android.hardware.fastboot@1.1-impl.pixel \ + fastbootd + +#google iwlan +PRODUCT_PACKAGES += \ + Iwlan + +#Iwlan test app for userdebug/eng builds +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +PRODUCT_PACKAGES += \ + IwlanTestApp +endif + +PRODUCT_PACKAGES += \ + whitelist \ + libstagefright_hdcp \ + libskia_opt + +#PRODUCT_PACKAGES += \ + mfc_fw.bin \ + calliope_sram.bin \ + calliope_dram.bin \ + calliope_iva.bin \ + vts.bin + +# This will be called only if IMSService is building with source code for dev branches. +$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)/shannon-ims/device-vendor.mk) + +PRODUCT_PACKAGES += ShannonIms + +#RCS Test Messaging App +PRODUCT_PACKAGES_DEBUG += \ + TestRcsApp + +PRODUCT_PACKAGES += ShannonRcs + +ifeq (,$(filter aosp_% factory_%,$(TARGET_PRODUCT))) +#ImsMediaAoc library +FEATURE_TYPE := oem_audio +SOONG_CONFIG_NAMESPACES += audio_lib +SOONG_CONFIG_audio_lib += \ + audio_type + +SOONG_CONFIG_audio_lib_audio_type := $(FEATURE_TYPE) +endif + +# ImsMedia +PRODUCT_PACKAGES += \ + ImsMediaService \ + libimsmedia + +# Boot Control HAL +PRODUCT_PACKAGES += \ + android.hardware.boot@1.2-impl-zumapro \ + android.hardware.boot@1.2-service-zumapro + +# Exynos RIL and telephony +# Multi SIM(DSDS) +SIM_COUNT := 2 +SUPPORT_MULTI_SIM := true +# Support NR +SUPPORT_NR := true +# Support 5G on both stacks +SUPPORT_NR_DS := true +# Using IRadio 2.1 +USE_RADIO_HAL_2_1 := true + +#$(call inherit-product, vendor/google_devices/telephony/common/device-vendor.mk) +#$(call inherit-product, vendor/google_devices/zumapro/proprietary/device-vendor.mk) + +ifneq ($(BOARD_WITHOUT_RADIO),true) +$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)/common/device-vendor.mk) +endif + +$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk) +#$(call inherit-product, hardware/google_devices/exynos5/exynos5.mk) +#$(call inherit-product-if-exists, hardware/google_devices/zumapro/zumapro.mk) +#$(call inherit-product-if-exists, vendor/google_devices/common/exynos-vendor.mk) +#$(call inherit-product-if-exists, hardware/broadcom/wlan/bcmdhd/firmware/bcm4375/device-bcm.mk) +include device/google/gs-common/sensors/sensors.mk +$(call inherit-product-if-exists, vendor/google/services/LyricCameraHAL/src/build/device-vendor.mk) +$(call inherit-product-if-exists, vendor/google/camera/devices/whi/device-vendor.mk) + +PRODUCT_COPY_FILES += \ + device/google/zumapro/default-permissions.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/default-permissions/default-permissions.xml \ + device/google/zumapro/component-overrides.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sysconfig/component-overrides.xml \ + frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \ + +ifneq ($(BOARD_WITHOUT_RADIO),true) +# modem_svc_sit daemon +PRODUCT_PACKAGES += modem_svc_sit + +# modem_ml_svc_sit daemon +PRODUCT_PACKAGES += modem_ml_svc_sit + +# modem ML models configs +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +PRODUCT_COPY_FILES += \ + device/google/zumapro/modem_ml/modem_ml_models_userdebug.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_models.conf +else +PRODUCT_COPY_FILES += \ + device/google/zumapro/modem_ml/modem_ml_models_user.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem_ml_models.conf +endif + +# modem logging binary/configs +PRODUCT_PACKAGES += modem_logging_control + +# modem logging configs +PRODUCT_COPY_FILES += \ + device/google/zumapro/radio/config/logging.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/logging.conf \ + device/google/zumapro/radio/config/default.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.cfg \ + device/google/zumapro/radio/config/default.nprf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.nprf \ + device/google/zumapro/radio/config/default_metrics.xml:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default_metrics.xml +endif + +# ARM NN files +ARM_COMPUTE_CL_ENABLE := 1 + +# Vibrator Diag +PRODUCT_PACKAGES_DEBUG += \ + diag-vibrator \ + diag-vibrator-cs40l25a \ + diag-vibrator-drv2624 \ + $(NULL) + +PRODUCT_PACKAGES += \ + android.hardware.health-service.zumapro \ + android.hardware.health-service.zumapro_recovery \ + +# Audio +# Audio HAL Server & Default Implementations +include device/google/gs-common/audio/hidl_zuma.mk + +## AoC soong +PRODUCT_SOONG_NAMESPACES += \ + vendor/google/whitechapel/aoc + +$(call soong_config_set,aoc,target_soc,$(TARGET_BOARD_PLATFORM)) +$(call soong_config_set,aoc,target_product,$(TARGET_PRODUCT)) + +# +## Audio properties +PRODUCT_PROPERTY_OVERRIDES += \ + ro.config.vc_call_vol_steps=7 \ + ro.config.media_vol_steps=25 \ + ro.audio.monitorRotation = true \ + ro.audio.offload_wakelock=false + +# vndservicemanager and vndservice no longer included in API 30+, however needed by vendor code. +# See b/148807371 for reference +PRODUCT_PACKAGES += vndservicemanager +PRODUCT_PACKAGES += vndservice + +## TinyTools, debug tool and cs35l41 speaker calibration tool for Audio +ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) +PRODUCT_PACKAGES += \ + tinyplay \ + tinycap \ + tinymix \ + tinypcminfo \ + tinyhostless \ + cplay \ + aoc_hal \ + aoc_tuning_inft \ + mahal_test \ + ma_aoc_tuning_test \ + crus_sp_cal +endif + +PRODUCT_PACKAGES += \ + google.hardware.media.c2@1.0-service \ + libgc2_store \ + libgc2_base \ + libgc2_av1_dec \ + libbo_av1 \ + libgc2_cwl \ + libgc2_utils + +## Start packet router +include device/google/gs101/telephony/pktrouter.mk + +# Thermal HAL +include hardware/google/pixel/thermal/device.mk +PRODUCT_PROPERTY_OVERRIDES += persist.vendor.enable.thermal.genl=true + +# EdgeTPU +include device/google/gs-common/edgetpu/edgetpu.mk +# Config variables for TPU chip on device. +$(call soong_config_set,edgetpu_config,chip,rio) +# TPU firmware +PRODUCT_PACKAGES += edgetpu-rio.fw + +# Connectivity Thermal Power Manager +PRODUCT_PACKAGES += \ + ConnectivityThermalPowerManager + +# A/B support +PRODUCT_PACKAGES += \ + otapreopt_script \ + cppreopts.sh \ + update_engine \ + update_engine_sideload \ + update_verifier + +# pKVM +$(call inherit-product, packages/modules/Virtualization/apex/product_packages.mk) +PRODUCT_BUILD_PVMFW_IMAGE := true + +# Enable to build standalone vendor_kernel_boot image. +PRODUCT_BUILD_VENDOR_KERNEL_BOOT_IMAGE := true + +# Enable watchdog timeout loop breaker. +PRODUCT_PROPERTY_OVERRIDES += \ + framework_watchdog.fatal_window.second=600 \ + framework_watchdog.fatal_count=3 + +# Enable zygote critical window. +PRODUCT_PROPERTY_OVERRIDES += \ + zygote.critical_window.minute=10 + +# Suspend properties +PRODUCT_PROPERTY_OVERRIDES += \ + suspend.short_suspend_threshold_millis=5000 + +# Enable Incremental on the device +PRODUCT_PROPERTY_OVERRIDES += \ + ro.incremental.enable=true + +# Project +include hardware/google/pixel/common/pixel-common-device.mk + +# Pixel Logger +ifneq ($(BOARD_WITHOUT_RADIO),true) +include hardware/google/pixel/PixelLogger/PixelLogger.mk +else +BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/logger_app +endif + +# sscoredump +include hardware/google/pixel/sscoredump/device.mk + +# RadioExt Version +USES_RADIOEXT_V1_6 = true + +# Wifi ext +include hardware/google/pixel/wifi_ext/device.mk + +# Battery Stats Viewer +PRODUCT_PACKAGES_DEBUG += BatteryStatsViewer + +# Install product specific framework compatibility matrix +# (TODO: b/169535506) This includes the FCM for system_ext and product partition. +# It must be split into the FCM of each partition. +DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/zumapro/device_framework_matrix_product.xml + +# Keymint configuration +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.software.device_id_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_id_attestation.xml \ + frameworks/native/data/etc/android.hardware.device_unique_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.device_unique_attestation.xml + +# Call deleteAllKeys if vold detects a factory reset +PRODUCT_VENDOR_PROPERTIES += ro.crypto.metadata_init_delete_all_keys.enabled?=true + +# Use HCTR2 for filenames encryption on adoptable storage. +PRODUCT_PROPERTY_OVERRIDES += \ + ro.crypto.volume.options=aes-256-xts:aes-256-hctr2 + +# Hardware Info Collection +include hardware/google/pixel/HardwareInfo/HardwareInfo.mk + +# UFS: the script is used to select the corresponding firmware to run FFU. +PRODUCT_PACKAGES_DEBUG += ufs_firmware_update.sh + +# RIL extension service +ifeq (,$(filter aosp_% factory_%,$(TARGET_PRODUCT))) +include device/google/gs-common/pixel_ril/ril.mk +endif + +# Touch service +include hardware/google/pixel/input/twoshay.mk diff --git a/device_framework_matrix_product.xml b/device_framework_matrix_product.xml new file mode 100644 index 0000000..7daa998 --- /dev/null +++ b/device_framework_matrix_product.xml @@ -0,0 +1,236 @@ + + + android.hardware.biometrics.face + + IFace + default + + + + android.hardware.biometrics.fingerprint + + IFingerprint + default + + + + android.hardware.contexthub + 1 + + IContextHub + default + + + + android.hardware.graphics.composer3 + 2 + + IComposer + default + + + + android.hardware.radio + 1.2 + + ISap + slot2 + + + + android.hardware.radio.config + 1.1 + + IRadioConfig + default + + + + android.hardware.vibrator + 2 + + IVibrator + dual + + + + android.hardware.wifi.hostapd + 1 + + IHostapd + default + + + + android.vendor.samsung_slsi.telephony.hardware.radio + 1.1 + + IOemSamsungslsi + slot1 + slot2 + + + + com.fingerprints33.extension + 1.0 + + IFingerprintAuthenticator + default + + + IFingerprintCalibration + default + + + IFingerprintEngineering + default + + + IFingerprintNavigation + default + + + IFingerprintRecalibration + default + + + IFingerprintSenseTouch + default + + + IFingerprintSensorTest + default + + + + com.google.face.debug + 2 + + IDebugHost + default + + + IDebugManager + default + + + + com.google.edgetpu + 2 + + IEdgeTpuVendorService + default + + + + com.google.edgetpu.dba + 1 + + IDevice + default + + + + com.google.hardware.pixel.display + 8 + + IDisplay + default + + + + com.google.input.algos.spd + + IScreenProtectorDetectorService + default + + + + com.google.input + + ITouchContextService + default + + + + hardware.qorvo.uwb + + IUwbVendor + default + + + + vendor.goodix.hardware.biometrics.fingerprint + 2.1 + + IGoodixFingerprintDaemon + default + + + + hardware.google.bluetooth.bt_channel_avoidance + 1.0 + + IBTChannelAvoidance + default + + + + hardware.google.bluetooth.sar + 1.1 + + IBluetoothSar + default + + + + hardware.google.bluetooth.ccc + 1.0 + + IBluetoothCcc + default + + + + vendor.google.google_battery + 2 + + IGoogleBattery + default + + + + vendor.google.radioext + 1.6 + + IRadioExt + default + + + + vendor.google.wifi_ext + 1 + + IWifiExt + default + + + + vendor.samsung_slsi.telephony.hardware.oemservice + 1.0 + + IOemService + dm0 + dm1 + sced0 + + + + vendor.samsung_slsi.telephony.hardware.radioExternal + 1.1 + + IOemSlsiRadioExternal + rilExternal + + + diff --git a/display/display_colordata_cal0.pb b/display/display_colordata_cal0.pb new file mode 100644 index 0000000000000000000000000000000000000000..b266f90ec557327ddf0c9d08fce64f911b61ebde GIT binary patch literal 28276 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 literal 0 HcmV?d00001 diff --git a/dumpstate/Android.bp b/dumpstate/Android.bp new file mode 100644 index 0000000..ab47899 --- /dev/null +++ b/dumpstate/Android.bp @@ -0,0 +1,32 @@ +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +sh_binary { + name: "dump_wlan.sh", + src: "dump_wlan.sh", + vendor: true, + sub_dir: "dump", +} + +sh_binary { + name: "dump_power.sh", + src: "dump_power.sh", + vendor: true, + sub_dir: "dump", +} + +sh_binary { + name: "dump_cma.sh", + src: "dump_cma.sh", + vendor: true, + sub_dir: "dump", +} + +sh_binary { + name: "dump_gsa.sh", + src: "dump_gsa.sh", + vendor: true, + sub_dir: "dump", +} + diff --git a/dumpstate/OWNERS b/dumpstate/OWNERS new file mode 100644 index 0000000..5859d10 --- /dev/null +++ b/dumpstate/OWNERS @@ -0,0 +1,9 @@ +aaronding@google.com +rurumihong@google.com +adamshih@google.com +wilsonsung@google.com +lucaswei@google.com +cyanhsieh@google.com +rogerliao@google.com +cyuanjen@google.com +robinpeng@google.com diff --git a/dumpstate/README.txt b/dumpstate/README.txt new file mode 100644 index 0000000..b279bda --- /dev/null +++ b/dumpstate/README.txt @@ -0,0 +1 @@ +Please refer to go/pixel-recycle to modularize your code in this space. diff --git a/dumpstate/dump_cma.sh b/dumpstate/dump_cma.sh new file mode 100644 index 0000000..63e497e --- /dev/null +++ b/dumpstate/dump_cma.sh @@ -0,0 +1,9 @@ +#!/vendor/bin/sh +echo "------ CMA info ------" +for d in $(ls -d /d/cma/*); do + echo --- $d + echo --- count; cat $d/count + echo --- used; cat $d/used + echo --- bitmap; cat $d/bitmap +done + diff --git a/dumpstate/dump_gsa.sh b/dumpstate/dump_gsa.sh new file mode 100644 index 0000000..a0d4232 --- /dev/null +++ b/dumpstate/dump_gsa.sh @@ -0,0 +1,8 @@ +#!/vendor/bin/sh + +echo "--- GSA MAIN LOG" +cat /sys/devices/platform/16490000.gsa-ns/log_main + +echo "--- GSA INTERMEDIATE LOG" +cat /sys/devices/platform/16490000.gsa-ns/log_intermediate + diff --git a/dumpstate/dump_power.sh b/dumpstate/dump_power.sh new file mode 100644 index 0000000..8c9cdec --- /dev/null +++ b/dumpstate/dump_power.sh @@ -0,0 +1,411 @@ +#!/vendor/bin/sh +build_type="$(getprop ro.build.type)" + +echo "\n------ Power Stats Times ------" +echo -n "Boot: " && /vendor/bin/uptime -s && echo -n "Now: " && date; + +echo "\n------ ACPM stats ------" +for f in /sys/devices/platform/acpm_stats/*_stats ; do + echo "\n\n$f" + cat $f +done + +echo "\n------ CPU PM stats ------" +cat "/sys/devices/system/cpu/cpupm/cpupm/time_in_state" + +echo "\n------ GENPD summary ------" +cat "/d/pm_genpd/pm_genpd_summary" + +echo "\n------ Power supply property battery ------" +cat "/sys/class/power_supply/battery/uevent" +echo "\n------ Power supply property dc ------" +cat "/sys/class/power_supply/dc/uevent" +echo "\n------ Power supply property gcpm ------" +cat "/sys/class/power_supply/gcpm/uevent" +echo "\n------ Power supply property gcpm_pps ------" +cat "/sys/class/power_supply/gcpm_pps/uevent" +echo "\n------ Power supply property main-charger ------" +cat "/sys/class/power_supply/main-charger/uevent" +echo "\n------ Power supply property dc-mains ------" +cat "/sys/class/power_supply/dc-mains/uevent" +echo "\n------ Power supply property tcpm ------" +cat "/sys/class/power_supply/tcpm-source-psy-8-0025/uevent" +echo "\n------ Power supply property usb ------" +cat "/sys/class/power_supply/usb/uevent" +echo "\n------ Power supply property wireless ------" +cat "/sys/class/power_supply/wireless/uevent" + +if [ -d "/sys/class/power_supply/maxfg" ] +then + echo "\n------ Power supply property maxfg ------" + cat "/sys/class/power_supply/maxfg/uevent" + echo "\n------ m5_state ------" + cat "/sys/class/power_supply/maxfg/m5_model_state" + echo "\n------ maxfg ------" + cat "/dev/logbuffer_maxfg" + echo "\n------ maxfg ------" + cat "/dev/logbuffer_maxfg_monitor" +else + echo "\n------ Power supply property maxfg_base ------" + cat "/sys/class/power_supply/maxfg_base/uevent" + echo "\n------ Power supply property maxfg_flip ------" + cat "/sys/class/power_supply/maxfg_flip/uevent" + echo "\n------ m5_state ------" + cat "/sys/class/power_supply/maxfg_base/m5_model_state" + echo "\n------ maxfg_base ------" + cat "/dev/logbuffer_maxfg_base" + echo "\n------ maxfg_flip ------" + cat "/dev/logbuffer_maxfg_flip" + echo "\n------ maxfg_base ------" + cat "/dev/logbuffer_maxfg_base_monitor" + echo "\n------ maxfg_flip ------" + cat "/dev/logbuffer_maxfg_flip_monitor" +fi + +if [ -e "/dev/maxfg_history" ] +then + echo "\n------ Maxim FG History ------" + cat "/dev/maxfg_history" +fi + +if [ -d "/sys/class/power_supply/dock" ] +then + echo "\n------ Power supply property dock ------" + cat "/sys/class/power_supply/dock/uevent" +fi + +if [ -e "/dev/logbuffer_tcpm" ] +then + echo "\n------ Logbuffer TCPM ------" + cat "/dev/logbuffer_tcpm" + if [ -d "/sys/kernel/debug/tcpm" ] + then + echo "\n------ TCPM logs ------" + cat /sys/kernel/debug/tcpm/* + else + echo "\n------ TCPM logs ------" + cat /sys/kernel/debug/usb/tcpm* + fi +fi + +echo "\n------ TCPC ------" +for f in /sys/devices/platform/10d60000.hsi2c/i2c-*/i2c-max77759tcpc +do + echo "registers:" + cat $f/registers + echo "frs:" + cat $f/frs + echo "auto_discharge:" + cat $f/auto_discharge + echo "bc12_enabled:" + cat $f/bc12_enabled + echo "cc_toggle_enable:" + cat $f/cc_toggle_enable + echo "contaminant_detection:" + cat $f/contaminant_detection + echo "contaminant_detection_status:" + cat $f/contaminant_detection_status +done + +echo "\n------ PD Engine ------" +cat "/dev/logbuffer_usbpd" +echo "\n------ PPS-google_cpm ------" +cat "/dev/logbuffer_cpm" +echo "\n------ PPS-dc ------" +cat "/dev/logbuffer_pca9468" + +if [ -e "/dev/logbuffer_wc68" ] +then + echo "\n------ WC68 ------" + cat "/dev/logbuffer_wc68" +fi + +echo "\n------ Battery Health ------" +cat "/sys/class/power_supply/battery/health_index_stats" +echo "\n------ BMS ------" +cat "/dev/logbuffer_ssoc" +echo "\n------ TTF ------" +cat "/dev/logbuffer_ttf" +echo "\n------ TTF details ------" +cat "/sys/class/power_supply/battery/ttf_details" +echo "\n------ TTF stats ------" +cat "/sys/class/power_supply/battery/ttf_stats" +echo "\n------ aacr_state ------" +cat "/sys/class/power_supply/battery/aacr_state" +echo "\n------ maxq ------" +cat "/dev/logbuffer_maxq" +echo "\n------ TEMP/DOCK-DEFEND ------" +cat "/dev/logbuffer_bd" + +echo "\n------ TRICKLE-DEFEND Config ------" +cd /sys/devices/platform/google,battery/power_supply/battery/ +for f in `ls bd_*` +do + echo $f: `cat $f` +done + +echo "\n------ DWELL-DEFEND Config ------" +cd /sys/devices/platform/google,charger/ +for f in `ls charge_s*` +do + echo "$f: `cat $f`" +done + +echo "\n------ TEMP-DEFEND Config ------" +cd /sys/devices/platform/google,charger/ +for f in `ls bd_*` +do + echo "$f: `cat $f`" +done + +if [ $build_type = "userdebug" ] +then + echo "\n------ DC_registers dump ------" + cat "/sys/class/power_supply/dc-mains/device/registers_dump" + echo "\n------ max77759_chg registers dump ------" + cat "/d/max77759_chg/registers" + echo "\n------ max77729_pmic registers dump ------" + cat "/d/max77729_pmic/registers" + echo "\n------ Charging table dump ------" + cat "/d/google_battery/chg_raw_profile" + + echo "\n------ fg_model ------" + for f in /d/maxfg* + do + regs=`cat $f/fg_model` + echo $f: + echo "$regs" + done + + echo "\n------ fg_alo_ver ------" + for f in /d/maxfg* + do + regs=`cat $f/algo_ver` + echo $f: + echo "$regs" + done + + echo "\n------ fg_model_ok ------" + for f in /d/maxfg* + do + regs=`cat $f/model_ok` + echo $f: + echo "$regs" + done + + echo "\n------ fg registers ------" + for f in /d/maxfg* + do + regs=`cat $f/registers` + echo $f: + echo "$regs" + done + + echo "\n------ Maxim FG NV RAM ------" + for f in /d/maxfg* + do + regs=`cat $f/nv_registers` + echo $f: + echo "$regs" + done +fi + +echo "\n------ Battery EEPROM ------" +if [ -e "/sys/devices/platform/10970000.hsi2c/i2c-4/4-0050/eeprom" ] +then + xxd /sys/devices/platform/10970000.hsi2c/i2c-4/4-0050/eeprom +fi + +if [ -e "/sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom" ] +then + xxd /sys/devices/platform/10970000.hsi2c/i2c-5/5-0050/eeprom +fi + +if [ -e "/sys/devices/platform/10da0000.hsi2c/i2c-6/6-0050/eeprom" ] +then + xxd /sys/devices/platform/10da0000.hsi2c/i2c-6/6-0050/eeprom +fi + +if [ -e "/sys/devices/platform/10da0000.hsi2c/i2c-7/7-0050/eeprom" ] +then + xxd /sys/devices/platform/10da0000.hsi2c/i2c-7/7-0050/eeprom +fi + +if [ -e "/sys/devices/platform/10c90000.hsi2c/i2c-7/7-0050/eeprom" ] +then + xxd /sys/devices/platform/10c90000.hsi2c/i2c-7/7-0050/eeprom +fi + +echo "\n------ Charger Stats ------" +cat "/sys/class/power_supply/battery/charge_details" +if [ $build_type = "userdebug" ] +then + echo "\n------ Google Charger ------" + cd /sys/kernel/debug/google_charger/ + for f in `ls pps_*` + do + echo "$f: `cat $f`" + done + echo "\n------ Google Battery ------" + cd /sys/kernel/debug/google_battery/ + for f in `ls ssoc_*` + do + echo "$f: `cat $f`" + done +fi + +echo "\n------ WLC logs ------" +cat "/dev/logbuffer_wireless" +echo "\n------ WLC VER ------" +cat "/sys/class/power_supply/wireless/device/version" +echo "\n------ WLC STATUS ------" +cat "/sys/class/power_supply/wireless/device/status" +echo "\n------ WLC FW Version ------" +cat "/sys/class/power_supply/wireless/device/fw_rev" +echo "\n------ RTX ------" +cat "/dev/logbuffer_rtx" + +if [ $build_type = "userdebug" ] +then + echo "\n------ gvotables ------" + cat /sys/kernel/debug/gvotables/*/status +fi + +echo "\n------ Lastmeal ------" +cat "/data/vendor/mitigation/lastmeal.txt" +echo "\n------ Thismeal ------" +cat "/data/vendor/mitigation/thismeal.txt" +echo "\n------ Mitigation Stats ------" +echo "Source\t\tCount\tSOC\tTime\tVoltage" +for f in `ls /sys/devices/virtual/pmic/mitigation/last_triggered_count/*` +do + count=`cat $f` + a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/last_triggered_count\//} + b=${f/last_triggered_count/last_triggered_capacity} + c=${f/last_triggered_count/last_triggered_timestamp/} + d=${f/last_triggered_count/last_triggered_voltage/} + cnt=`cat $f` + cap=`cat ${b/count/cap}` + ti=`cat ${c/count/time}` + volt=`cat ${d/count/volt}` + echo "${a/_count/} \t$cnt\t$cap\t$ti\t$volt" +done + +echo "\n------ Clock Divider Ratio ------" +echo \"Source\t\tRatio\" +for f in `ls /sys/devices/virtual/pmic/mitigation/clock_ratio/*` +do ratio=`cat $f` + a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/clock_ratio\//} + echo "${a/_ratio/} \t$ratio" +done + +echo "\n------ Clock Stats ------" +echo "Source\t\tStats" +for f in `ls /sys/devices/virtual/pmic/mitigation/clock_stats/*` +do + stats=`cat $f` + a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/clock_stats\//}; + echo "${a/_stats/} \t$stats" +done + +echo "\n------ Triggered Level ------" +echo "Source\t\tLevel" +for f in `ls /sys/devices/virtual/pmic/mitigation/triggered_lvl/*` +do + lvl=`cat $f` + a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/triggered_lvl\//} + echo "${a/_lvl/} \t$lvl" +done + +echo "\n------ Instruction ------" +for f in `ls /sys/devices/virtual/pmic/mitigation/instruction/*` +do + val=`cat $f` + a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/instruction\//} + echo "$a=$val" +done + +echo "\n------ IRQ Duration Counts ------" +echo "Source\t\t\t\tlt_5ms_cnt\tbt_5ms_to_10ms_cnt\tgt_10ms_cnt\tCode\tCurrent Threshold (uA)\tCurrent Reading (uA)" + +lt=`cat /sys/devices/virtual/pmic/mitigation/irq_dur_cnt/less_than_5ms_count` +bt=`cat /sys/devices/virtual/pmic/mitigation/irq_dur_cnt/between_5ms_to_10ms_count` +gt=`cat /sys/devices/virtual/pmic/mitigation/irq_dur_cnt/greater_than_10ms_count` +lpf_cur_m=`cat /sys/devices/platform/acpm_mfd_bus@15500000/i2c-0/0-001f/s2mpg14-meter/s2mpg14-odpm/iio:device0/lpf_current` +lpf_cur_s=`cat /sys/devices/platform/acpm_mfd_bus@15510000/i2c-1/1-002f/s2mpg15-meter/s2mpg15-odpm/iio:device1/lpf_current` + +lpf_cur_main=(${lpf_cur_m/\\n/;}) +lpf_cur_sub=(${lpf_cur_s/\\n/;}) + +IFS_PRE=$IFS +IFS=$'\n' +lt_a=($lt) +bt_a=($bt) +gt_a=($gt) +IFS=$IFS_PRE + + +for f in `ls /sys/devices/virtual/pmic/mitigation/main_pwrwarn/*` +do + count=`cat $f` + a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/main_pwrwarn\//} + s=${a/main_pwrwarn_threshold/} + arr=(${count//=/ }) + code=${arr[0]} + threshold=${arr[1]} + main_array[$s]="$code\t$threshold" +done + +i=1 +main_current=() +for f in "${main_array[@]}" +do + idx=$i + idx2=$idx+1 + main_current+=(${lpf_cur_main[$idx2]}) + i=$i+2 +done + +for f in `ls /sys/devices/virtual/pmic/mitigation/sub_pwrwarn/*` +do + count=`cat $f` + a=${f/\/sys\/devices\/virtual\/pmic\/mitigation\/sub_pwrwarn\//} + s=${a/sub_pwrwarn_threshold/} + arr=(${count//=/ }) + code=${arr[0]}; + threshold=${arr[1]}; + sub_array[$s]="$code\t$threshold" +done +i=1 +sub_current=() +for f in "${sub_array[@]}" +do + idx=$i + idx2=$idx+1 + sub_current+=(${lpf_cur_sub[$idx2]}) + i=$i+2 +done + +rows=${#lt_a[@]} +for i in `seq 0 $rows` +do + n="${lt_a[i]%:*}" + l="${lt_a[i]#*": "}" + b="${bt_a[i]#*": "}" + g="${gt_a[i]#*": "}" + if [ $i -lt 9 ] + then + echo "$n \t\t$l\t\t$b\t\t\t$g" + elif [ $i -ge 9 ] && [ $i -lt 21 ] + then + j=$i-9 + thresh="${main_array[j]}" + current="${main_current[j]}" + echo "$n \t$l\t\t$b\t\t\t$g\t\t$thresh \t\t$current" + else + j=$i-21 + thresh="${sub_array[j]}" + current="${sub_current[j]}" + echo "$n \t$l\t\t$b\t\t\t$g\t\t$thresh \t\t$current" + fi +done diff --git a/dumpstate/dump_wlan.sh b/dumpstate/dump_wlan.sh new file mode 100644 index 0000000..4741ac8 --- /dev/null +++ b/dumpstate/dump_wlan.sh @@ -0,0 +1,3 @@ +#!/vendor/bin/sh +echo "--- wlan WIP ---" + diff --git a/dumpstate/item.mk b/dumpstate/item.mk new file mode 100644 index 0000000..124fd1c --- /dev/null +++ b/dumpstate/item.mk @@ -0,0 +1,6 @@ +PRODUCT_PACKAGES += dump_wlan.sh \ + dump_power.sh + +PRODUCT_PACKAGES_DEBUG += dump_cma.sh \ + dump_gsa.sh + diff --git a/factory/factory_post_boot/Android.bp b/factory/factory_post_boot/Android.bp new file mode 100644 index 0000000..cbbebda --- /dev/null +++ b/factory/factory_post_boot/Android.bp @@ -0,0 +1,25 @@ +// +// Copyright (C) 2022 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 { + default_applicable_licenses: ["Android-Apache-2.0"], +} +sh_binary { + name: "factory_post_boot", + src: "factory_post_boot.sh", + vendor: true, + sub_dir: "factory", +} + diff --git a/factory/factory_post_boot/factory_post_boot.sh b/factory/factory_post_boot/factory_post_boot.sh new file mode 100644 index 0000000..82dfcfb --- /dev/null +++ b/factory/factory_post_boot/factory_post_boot.sh @@ -0,0 +1,4 @@ +#!/vendor/bin/sh + +# Add adbd to nnapi vendor cgroup. (b/222226268) +echo `pidof adbd` > /proc/vendor_sched/set_task_group_nnapi diff --git a/factory/framework/Android.bp b/factory/framework/Android.bp new file mode 100644 index 0000000..b9204cb --- /dev/null +++ b/factory/framework/Android.bp @@ -0,0 +1,15 @@ +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "//device/google/zumapro:device_google_zumapro_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: [ + "//device/google/zumapro:device_google_zumapro_license", + ], +} + +runtime_resource_overlay { + name: "FactoryOverlayFrameworkRes", + product_specific: true, +} diff --git a/factory/framework/AndroidManifest.xml b/factory/framework/AndroidManifest.xml new file mode 100644 index 0000000..73875be --- /dev/null +++ b/factory/framework/AndroidManifest.xml @@ -0,0 +1,24 @@ + + + + + + + diff --git a/factory/framework/res/drawable-nodpi/default_wallpaper.png b/factory/framework/res/drawable-nodpi/default_wallpaper.png new file mode 100644 index 0000000000000000000000000000000000000000..93b787e3f40db2e87177bb7f11c98491ddefd6cf GIT binary patch literal 22697 zcmeI3&5ImG6u@gSh^{7>lb{}k34)?M{r&08#LdpGyW+%Uv*HGVNl$n6ZnHDpV|Qh;Y^PRUpaDyp&9%~EoZymPF$7OC z%#vwWWZg71^VO0f$+{@1qACfB>S&UqDW$=uT%RYus)-*s>y70>I3m@`+ga9iL~(C# zud=6B;$%ydZQB+lMN|}l^bpehD06#4l%DE48Tx79)Jwu{7RFJD`gL3JZdNOoX`s<( z@Lrv6vpEVCr2~3|qu6u1qFj;0PDh+(nP%&FJjkh*>BfE+i|aUzcM}hj?x&_ZTDnX| zH+b74I9j@lqim`xGG}~8)8hNy$fmoSv~$qDC*n5lkT@w}AWsF*-Hx+3-HvC39I11N z(*kE(D$X<=ucU$dg4_N+@nbLaoe=~_4tzy3R7=o2!xm)Ov;`Y$ zmf*=+OEG+_Wd+hOV8Pi$pw%eN+{nXZ{A6^MkOc8n3oEv&30_O_1T8Qv!D>mW;90iq z1=w@3IdWYvpK#s4Nq8Ci%SqhHw@uegQcRa{tvp=AqkT4Dn{NUqoE(!a`-b6TQ?QLd z6*NN+1Y0Hp(`?OjJw^9@+pCHb=HoGu0M)*lkQ~m~bhKt5S%xQ>f+D#}AFZoel3-hb zE9;(SnPxDIRd6vc8tAk z9MwrCHv~x&6k|iy9mQ}IU64#iA}g#vlDyY!CutmHdv1akw#X)|_m7UXVJ0apF6Ku? z>7}OYg%M3JFAx15Hk=*6+jgTZ?AOJi;jn=D}!iEbHR$1B2EtD94WtX-OzPauZnClYq1vgaC@^6k_siI zhk&eTgkx^Ss-~KrFPKUSN$+FRf@)ye-!6q>InRXsR#J+S{{qCk#;5iEM3NjGKo9fB z_?;f6SH>3vVSw;Oz{TgoXaN@kgf9XvJ|9L4xELUO5pePOFj~OH0O5;(i_eGA0xkv! zUj$ryK8zM{F+lht;NtUPw1A5N!WRJ-pAVx2TnrGt2)Ous7%kvpfbd1Y#plCl0T%;= zF9I$;A4Utf7$AHRaPj#tTEN8s;fsKa&xg?hE(Qo+1YCSRj23V)K=>ly;`3p&fQtdb z7XcTa52FQK3=qBuxcGb+E#P8+@I}DI=fh|L7XySZ0xmuuMhmzYAbb&U@%b=Xz{LRJ zi(FjuUcX201EZ5SkJCpvAh&uEYW!r-$MqW>`gler7l+AZ z;nsI^Y(cY(j%N5a6Xca0L23oNHifrfdmB-T?bGgL4icq z0Tf73AVGmdHUbn#P$1ES2n7-pNOT=QfdmB-T?bGgL4gDX64?k)AU%o&(q}gwpt+x) V627^4>qDCER+r8;zB+U1+JA^*q(uM# literal 0 HcmV?d00001 diff --git a/factory/launcher3/Android.bp b/factory/launcher3/Android.bp new file mode 100644 index 0000000..90209a7 --- /dev/null +++ b/factory/launcher3/Android.bp @@ -0,0 +1,15 @@ +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "//device/google/zumapro:device_google_zumapro_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: [ + "//device/google/zumapro:device_google_zumapro_license", + ], +} + +runtime_resource_overlay { + name: "FactoryOverlayLauncher3", + product_specific: true, +} diff --git a/factory/launcher3/AndroidManifest.xml b/factory/launcher3/AndroidManifest.xml new file mode 100644 index 0000000..3f28585 --- /dev/null +++ b/factory/launcher3/AndroidManifest.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/factory/launcher3/res/xml/default_workspace_5x5.xml b/factory/launcher3/res/xml/default_workspace_5x5.xml new file mode 100644 index 0000000..ba1427a --- /dev/null +++ b/factory/launcher3/res/xml/default_workspace_5x5.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + diff --git a/factory/settings/Android.bp b/factory/settings/Android.bp new file mode 100644 index 0000000..0666039 --- /dev/null +++ b/factory/settings/Android.bp @@ -0,0 +1,15 @@ +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "//device/google/zumapro:device_google_zumapro_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: [ + "//device/google/zumapro:device_google_zumapro_license", + ], +} + +runtime_resource_overlay { + name: "FactoryOverlaySettings", + product_specific: true, +} diff --git a/factory/settings/AndroidManifest.xml b/factory/settings/AndroidManifest.xml new file mode 100644 index 0000000..72e7838 --- /dev/null +++ b/factory/settings/AndroidManifest.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/factory/settings/res/values/defaults.xml b/factory/settings/res/values/defaults.xml new file mode 100644 index 0000000..b7febd9 --- /dev/null +++ b/factory/settings/res/values/defaults.xml @@ -0,0 +1,26 @@ + + + + 0 + true + false + false + false + confirmed + diff --git a/factory_common.mk b/factory_common.mk new file mode 100644 index 0000000..10bc6de --- /dev/null +++ b/factory_common.mk @@ -0,0 +1,96 @@ +# +# Copyright 2020 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. +# + +$(call inherit-product, device/google/zumapro/aosp_common.mk) +$(call inherit-product-if-exists, vendor/google_devices/zumapro/factory/pixel/device-factory.mk) + +PRODUCT_PROPERTY_OVERRIDES += service.adb.root=1 \ + vendor.disable.thermal.control=1 \ + ro.vendor.factory=1 + +# Factory Libraries of Audio +PRODUCT_PACKAGES += audioroute libaudioroutelite + +# Enable fatp by default for factory builds +PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \ + persist.vendor.camera.fatp.enable=1 + +# Disable camera related features for factory builds +PRODUCT_PROPERTY_OVERRIDES += \ + persist.vendor.camera.af.ignore_gyro=1 \ + vendor.camera.debug.bypass_face_ssd_processor=1 \ + vendor.camera.debug.csi_ebuf_enable=0 \ + vendor.camera.debug.enable_face_detection=0 \ + vendor.camera.debug.force_dpm_on=0 \ + vendor.camera.debug.force_eis_on=0 \ + vendor.camera.debug.force_eaf_on=0 \ + vendor.camera.debug.force_mesh_warp_on=0 \ + vendor.camera.debug.force_rectiface_node_on=0 \ + vendor.camera.debug.force_steadiface_on=0 \ + vendor.camera.debug.force_tnr_on=0 \ + vendor.camera.debug.force_segmentation_node_on=0 \ + vendor.camera.debug.enable_saliency=0 \ + vendor.camera.debug.force_local_tone_mapping_on=0 \ + vendor.camera.debug.local_tone_mapping_controller_v1.mode=0 \ + vendor.camera.debug.enable_scene_detection=0 + +# Disable ScreenDecorations for factory builds +PRODUCT_PROPERTY_OVERRIDES += \ + debug.disable_screen_decorations=true + +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms?=80 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_touch_timer_ms=200 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_display_power_timer_ms=1000 +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_content_detection_for_refresh_rate=true + +# Disable dimming in factory +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.0.brightness.dimming.usage=2 + + +# factory should always has SELinux permissive +BOARD_BOOTCONFIG += androidboot.selinux=permissive +BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive + +# Disable DebugFS restrictions in factory builds +PRODUCT_SET_DEBUGFS_RESTRICTIONS := false + +# Disable Bluetooth as default in factory build +DEVICE_PACKAGE_OVERLAYS += device/google/zumapro/overlay-factory + +PRODUCT_COPY_FILES += \ + device/google/zumapro/conf/init.factory.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.factory.rc + +BOARD_SEPOLICY_DIRS += hardware/google/pixel-sepolicy/factory_boost + +# Add factory-friendly changes +PRODUCT_PACKAGES += \ + FactoryOverlaySettings \ + FactoryOverlayLauncher3 \ + FactoryOverlayFrameworkRes \ + factory_post_boot + +# To prevent rebooting due to crashing services +PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \ + init.svc_debug.no_fatal.zygote=true \ + persist.device_config.configuration.disable_rescue_party=true + +# PixelLogger for RF testing +PRODUCT_PACKAGES_DEBUG += \ + PixelLogger \ + +# ModemDiagnosticSystem for desense tool +PRODUCT_PACKAGES += \ + ModemDiagnosticSystem \ diff --git a/fingerprint/fpc1540/fingerprint_config.mk b/fingerprint/fpc1540/fingerprint_config.mk new file mode 100644 index 0000000..1584e11 --- /dev/null +++ b/fingerprint/fpc1540/fingerprint_config.mk @@ -0,0 +1,18 @@ +# ---------------------------- +# Add feature flags below +# ---------------------------- +FPC_CONFIG_BUILD_VERSION=33 +FPC_CONFIG_CAPACITIVE=1 +FPC_CONFIG_MAX_NR_TEMPLATES=5 +FPC_CONFIG_SENSE_TOUCH_CALIBRATION_PATH=/data/fpc/calibration_sense_touch.dat +FPC_CONFIG_TA_FS=1 +FPC_DEFECTIVE_PIXEL_LIST_SIZE=5000 +FPC_SENSOR_SDK_LOG_LEVEL=3 +FPC_TEE_RUNTIME=TRUSTY +LIBFPC_NAME=libfpc1541_S_nav_debug.a +FPC_CONFIG_DEBUG=1 +FPC_CONFIG_PRODUCT_DEFAULT=FPC_PRODUCT_TYPE1541_S + +# +# File included from device//<>/.mk +# Packages to include into the build diff --git a/fingerprint/fpc1540/fingerprint_config_factory.mk b/fingerprint/fpc1540/fingerprint_config_factory.mk new file mode 100644 index 0000000..85b1064 --- /dev/null +++ b/fingerprint/fpc1540/fingerprint_config_factory.mk @@ -0,0 +1,21 @@ +# ---------------------------- +# Add feature flags below +# ---------------------------- +FPC_CONFIG_BUILD_VERSION=33 +FPC_CONFIG_CAPACITIVE=1 +FPC_CONFIG_MAX_NR_TEMPLATES=5 +FPC_CONFIG_NAVIGATION=0 +FPC_CONFIG_SENSE_TOUCH_CALIBRATION_PATH=/data/fpc/calibration_sense_touch.dat +FPC_CONFIG_SENSORTEST=1 +FPC_CONFIG_TA_FS=1 +FPC_DEFECTIVE_PIXEL_LIST_SIZE=5000 +FPC_SENSOR_SDK_LOG_LEVEL=3 +FPC_TEE_RUNTIME=TRUSTY +LIBFPC_NAME=libfpc1541_S_nav_debug.a +FPC_CONFIG_DEBUG=1 +FPC_CONFIG_ENGINEERING=1 +FPC_CONFIG_PRODUCT_DEFAULT=FPC_PRODUCT_TYPE1541_S + +# +# File included from device//<>/.mk +# Packages to include into the build diff --git a/fingerprint/fpc1540/fpc1540.mk b/fingerprint/fpc1540/fpc1540.mk new file mode 100644 index 0000000..f1075f7 --- /dev/null +++ b/fingerprint/fpc1540/fpc1540.mk @@ -0,0 +1,8 @@ +# Fingerprint +include device/google/zumapro/fingerprint/fpc1540/fingerprint_config.mk + +PRODUCT_PACKAGES += \ + android.hardware.biometrics.fingerprint@2.1-service.fpc \ + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml diff --git a/fingerprint/fpc1540/fpc1540_factory.mk b/fingerprint/fpc1540/fpc1540_factory.mk new file mode 100644 index 0000000..f2e4baa --- /dev/null +++ b/fingerprint/fpc1540/fpc1540_factory.mk @@ -0,0 +1,10 @@ +# Fingerprint +include device/google/zumapro/fingerprint/fpc1540/fingerprint_config_factory.mk + +PRODUCT_PACKAGES += \ + fpc_tee_test\ + SensorTestTool \ + +PRODUCT_PACKAGES += \ + com.fingerprints.extension.xml \ + com.fingerprints.extension \ diff --git a/fingerprint/udfps.mk b/fingerprint/udfps.mk new file mode 100644 index 0000000..61f138f --- /dev/null +++ b/fingerprint/udfps.mk @@ -0,0 +1,28 @@ +# +# Copyright (C) 2020 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. +# + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml + +# Include the Goodix AIDL HAL namespaces. +PRODUCT_SOONG_NAMESPACES += vendor/goodix/udfps/g6_trusty +PRODUCT_SOONG_NAMESPACES += vendor/goodix/udfps/g6_aidl_trusty + +$(call soong_config_set,fp_hal_feature,biometric_suez_support,true) + +PRODUCT_PACKAGES += \ + android.hardware.biometrics.fingerprint@2.1-service.goodix \ + android.hardware.biometrics.fingerprint-service.goodix diff --git a/fingerprint/udfps_factory.mk b/fingerprint/udfps_factory.mk new file mode 100644 index 0000000..41aebe0 --- /dev/null +++ b/fingerprint/udfps_factory.mk @@ -0,0 +1,22 @@ +# +# Copyright (C) 2020 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. +# + +PRODUCT_PACKAGES += \ + GF_delmar_factory \ + udfps_test + +PRODUCT_PROPERTY_OVERRIDES += \ + gf.debug.dump_data=1 diff --git a/firmware/BCM.btaddr b/firmware/BCM.btaddr new file mode 100644 index 0000000..4bf70eb --- /dev/null +++ b/firmware/BCM.btaddr @@ -0,0 +1 @@ +22:22:3b:ff:0d:50 diff --git a/firmware/BCM4362A2_001.003.006.0027.0033.hcd b/firmware/BCM4362A2_001.003.006.0027.0033.hcd new file mode 100644 index 0000000000000000000000000000000000000000..27b0dbc2453b63e9cfc974bf98cf799ea9a4057e GIT binary patch literal 84460 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 literal 0 HcmV?d00001 diff --git a/firmware/BCM4389C0_003.001.010.0101.0000_Google_eval_USI_ES10.hcd b/firmware/BCM4389C0_003.001.010.0101.0000_Google_eval_USI_ES10.hcd new file mode 100644 index 0000000000000000000000000000000000000000..8e73e47173927491f07a401a818b2728dc2d64df GIT binary patch literal 493788 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¥5?G)#6>2} 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%0ADH)ts8%?WAux&X4xB|mrZCH^PZ-vaKYUZTc| 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

ZZ=9JhLG7G}Sf_cYfuV!+ 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 literal 0 HcmV?d00001 diff --git a/firmware/BCM4389C1_003.002.009.0050.0000_Google_eval_USI_ES10_ePA_Updated.hcd b/firmware/BCM4389C1_003.002.009.0050.0000_Google_eval_USI_ES10_ePA_Updated.hcd new file mode 100644 index 0000000000000000000000000000000000000000..47120b343134fa78f1ff10486742b4d54ee82bbf GIT binary patch literal 285777 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 z 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 Q{wL+2{cJ{;nkc3J0UTK*4gdfE literal 0 HcmV?d00001 diff --git a/health/Android.bp b/health/Android.bp new file mode 100644 index 0000000..97cdece --- /dev/null +++ b/health/Android.bp @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "//device/google/zumapro:device_google_zumapro_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: [ + "//device/google/zumapro:device_google_zumapro_license", + ], +} + +cc_defaults { + name: "android.hardware.health-service.zumapro-defaults", + defaults: [ + "libhealth_aidl_impl_user", + "libhealth_aidl_charger_defaults", + ], + relative_install_path: "hw", + vintf_fragments: ["android.hardware.health-service.zumapro.xml"], + srcs: [ + "Health.cpp", + ], + + cflags: [ + "-Wall", + "-Werror", + ], + + static_libs: [ + "libhealth_aidl_impl", + ], +} + +cc_binary { + name: "android.hardware.health-service.zumapro", + defaults: ["android.hardware.health-service.zumapro-defaults"], + proprietary: true, + init_rc: ["android.hardware.health-service.zumapro.rc"], + overrides: ["charger"], + shared_libs: [ + "libpixelhealth", + ], +} + +cc_binary { + name: "android.hardware.health-service.zumapro_recovery", + defaults: ["android.hardware.health-service.zumapro-defaults"], + recovery: true, + init_rc: ["android.hardware.health-service.zumapro_recovery.rc"], + overrides: ["charger.recovery"], +} diff --git a/health/Health.cpp b/health/Health.cpp new file mode 100644 index 0000000..848dfe9 --- /dev/null +++ b/health/Health.cpp @@ -0,0 +1,264 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#define LOG_TAG "android.hardware.health@2.1-impl-zumapro" +#include + +#include +#include +#include +#include +#include +#include + +// Recovery doesn't have libpixelhealth and charger mode +#ifndef __ANDROID_RECOVERY__ +#include +#include +#include +#include +#include +#include +#endif // !__ANDROID_RECOVERY__ + +#include +#include +#include +#include +#include + +namespace { + +using namespace std::literals; + +using aidl::android::hardware::health::DiskStats; +using aidl::android::hardware::health::HalHealthLoop; +using aidl::android::hardware::health::HealthInfo; +using aidl::android::hardware::health::StorageInfo; +using android::hardware::health::InitHealthdConfig; + +#ifndef __ANDROID_RECOVERY__ +using aidl::android::hardware::health::charger::ChargerCallback; +using aidl::android::hardware::health::charger::ChargerModeMain; +using hardware::google::pixel::health::BatteryDefender; +using hardware::google::pixel::health::BatteryMetricsLogger; +using hardware::google::pixel::health::DeviceHealth; +using hardware::google::pixel::health::LowBatteryShutdownMetrics; +using hardware::google::pixel::health::ChargerDetect; + +#define FG_DIR "/sys/class/power_supply/battery" +constexpr char kBatteryResistance[] {FG_DIR "/resistance"}; +constexpr char kBatteryOCV[] {FG_DIR "/voltage_ocv"}; +constexpr char kVoltageAvg[] {FG_DIR "/voltage_now"}; + +#define WLC_DIR "/sys/class/power_supply/wireless" + +static BatteryDefender battDefender(WLC_DIR "/present", + "/sys/devices/platform/google,charger/charge_start_level", + "/sys/devices/platform/google,charger/charge_stop_level"); +static BatteryMetricsLogger battMetricsLogger(kBatteryResistance, kBatteryOCV); +static LowBatteryShutdownMetrics shutdownMetrics(kVoltageAvg); +static DeviceHealth deviceHealth; +#endif // !__ANDROID_RECOVERY__ + +#define UFS_DIR "/dev/sys/block/bootdevice" +constexpr char kUfsHealthEol[]{UFS_DIR "/health_descriptor/eol_info"}; +constexpr char kUfsHealthLifetimeA[]{UFS_DIR "/health_descriptor/life_time_estimation_a"}; +constexpr char kUfsHealthLifetimeB[]{UFS_DIR "/health_descriptor/life_time_estimation_b"}; +constexpr char kUfsVersion[]{UFS_DIR "/device_descriptor/specification_version"}; +constexpr char kDiskStatsFile[]{"/sys/block/sda/stat"}; + +static std::string ufs_version; +static uint16_t eol; +static uint16_t lifetimeA; +static uint16_t lifetimeB; +static std::chrono::system_clock::time_point ufs_last_query_time; +constexpr auto kUfsQueryIntervalHours = std::chrono::hours{24}; + +#ifndef __ANDROID_RECOVERY__ +static bool needs_wlc_updates = false; +constexpr char kWlcCapacity[]{WLC_DIR "/capacity"}; +#endif // !__ANDROID_RECOVERY__ + +std::ifstream assert_open(const std::string &path) { + std::ifstream stream(path); + if (!stream.is_open()) { + LOG(WARNING) << "Cannot read " << path; + } + return stream; +} + +template +void read_value_from_file(const std::string &path, T *field) { + auto stream = assert_open(path); + stream.unsetf(std::ios_base::basefield); + stream >> *field; +} + +void read_ufs_version(StorageInfo *info) { + if (ufs_version.empty()) { + uint64_t value; + read_value_from_file(kUfsVersion, &value); + std::stringstream ss; + ss << "ufs " << std::hex << value; + ufs_version = ss.str(); + LOG(INFO) << "ufs: " << ufs_version << " detected"; + } + info->version = ufs_version; +} + +#ifdef __ANDROID_RECOVERY__ +void private_healthd_board_init(struct healthd_config *) {} +int private_healthd_board_battery_update(HealthInfo *) { return 0; } +#else // !__ANDROID__RECOVERY__ + +static bool FileExists(const std::string &filename) { + struct stat buffer; + + return stat(filename.c_str(), &buffer) == 0; +} + +void private_healthd_board_init(struct healthd_config *hc) { + std::string tcpmPsyName; + ChargerDetect::populateTcpmPsyName(&tcpmPsyName); + hc->ignorePowerSupplyNames.push_back(android::String8(tcpmPsyName.c_str())); + needs_wlc_updates = FileExists(kWlcCapacity); + if (needs_wlc_updates == false) { + battDefender.setWirelessNotSupported(); + } +} + +int private_healthd_board_battery_update(HealthInfo *health_info) { + deviceHealth.update(health_info); + battMetricsLogger.logBatteryProperties(*health_info); + shutdownMetrics.logShutdownVoltage(*health_info); + // Allow BatteryDefender to override online properties + ChargerDetect::onlineUpdate(health_info); + battDefender.update(health_info); + + if (needs_wlc_updates && + !android::base::WriteStringToFile(std::to_string(health_info->batteryLevel), kWlcCapacity)) + LOG(INFO) << "Unable to write battery level to wireless capacity"; + + return 0; +} +#endif // __ANDROID_RECOVERY__ + +void private_get_storage_info(std::vector *vec_storage_info) { + vec_storage_info->resize(1); + StorageInfo *storage_info = &vec_storage_info->at(0); + + read_ufs_version(storage_info); + + auto time_now = std::chrono::system_clock::now(); + auto time_delta = time_now - ufs_last_query_time; + auto hoursElapsed = std::chrono::duration_cast(time_delta); + if (hoursElapsed >= kUfsQueryIntervalHours) { + ufs_last_query_time = time_now; + read_value_from_file(kUfsHealthEol, &eol); + read_value_from_file(kUfsHealthLifetimeA, &lifetimeA); + read_value_from_file(kUfsHealthLifetimeB, &lifetimeB); + LOG(INFO) << "ufs: eol=" << eol << " lifetimeA=" << lifetimeA << " lifetimeB=" << lifetimeB; + } + storage_info->eol = eol; + storage_info->lifetimeA = lifetimeA; + storage_info->lifetimeB = lifetimeB; + + return; +} + +void private_get_disk_stats(std::vector *vec_stats) { + vec_stats->resize(1); + DiskStats *stats = &vec_stats->at(0); + + auto stream = assert_open(kDiskStatsFile); + // Regular diskstats entries + stream >> stats->reads >> stats->readMerges >> stats->readSectors >> + stats->readTicks >> stats->writes >> stats->writeMerges >> + stats->writeSectors >> stats->writeTicks >> stats->ioInFlight >> + stats->ioTicks >> stats->ioInQueue; + return; +} +} // anonymous namespace + +namespace aidl::android::hardware::health::implementation { +class HealthImpl : public Health { + public: + HealthImpl(std::string_view instance_name, std::unique_ptr&& config) + : Health(std::move(instance_name), std::move(config)) {} + + ndk::ScopedAStatus getDiskStats(std::vector* out) override; + ndk::ScopedAStatus getStorageInfo(std::vector* out) override; + + protected: + void UpdateHealthInfo(HealthInfo* health_info) override; + +}; + +void HealthImpl::UpdateHealthInfo(HealthInfo* health_info) { + private_healthd_board_battery_update(health_info); +} + +ndk::ScopedAStatus HealthImpl::getStorageInfo(std::vector* out) +{ + private_get_storage_info(out); + if (out->empty()) { + return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); + } + return ndk::ScopedAStatus::ok(); +} + +ndk::ScopedAStatus HealthImpl::getDiskStats(std::vector* out) +{ + private_get_disk_stats(out); + if (out->empty()) { + return ndk::ScopedAStatus::fromExceptionCode(EX_UNSUPPORTED_OPERATION); + } + return ndk::ScopedAStatus::ok(); +} + +} // namespace aidl::android::hardware::health::implementation + +int main(int argc, char **argv) { + using ::aidl::android::hardware::health::implementation::HealthImpl; + + // Use kernel logging in recovery +#ifdef __ANDROID_RECOVERY__ + android::base::InitLogging(argv, android::base::KernelLogger); +#endif + + auto config = std::make_unique(); + InitHealthdConfig(config.get()); + + private_healthd_board_init(config.get()); + + auto binder = + ndk::SharedRefBase::make("default"sv, std::move(config)); + + if (argc >= 2 && argv[1] == "--charger"sv) { + // In regular mode, start charger UI. +#ifndef __ANDROID_RECOVERY__ + LOG(INFO) << "Starting charger mode with UI."; + return ChargerModeMain(binder, std::make_shared(binder)); +#endif + // In recovery, ignore --charger arg. + LOG(INFO) << "Starting charger mode without UI."; + } else { + LOG(INFO) << "Starting health HAL."; + } + + auto hal_health_loop = std::make_shared(binder, binder); + return hal_health_loop->StartLoop(); +} diff --git a/health/android.hardware.health-service.zumapro.rc b/health/android.hardware.health-service.zumapro.rc new file mode 100644 index 0000000..f7175f8 --- /dev/null +++ b/health/android.hardware.health-service.zumapro.rc @@ -0,0 +1,17 @@ +service vendor.health-zumapro /vendor/bin/hw/android.hardware.health-service.zumapro + class hal + user system + group system + capabilities WAKE_ALARM BLOCK_SUSPEND + file /dev/kmsg w + +service vendor.charger /vendor/bin/hw/android.hardware.health-service.zumapro --charger + class charger + seclabel u:r:charger_vendor:s0 + user system + group system wakelock input + capabilities SYS_BOOT + file /dev/kmsg w + file /sys/fs/pstore/console-ramoops-0 r + file /sys/fs/pstore/console-ramoops r + file /proc/last_kmsg r diff --git a/health/android.hardware.health-service.zumapro.xml b/health/android.hardware.health-service.zumapro.xml new file mode 100644 index 0000000..98026cb --- /dev/null +++ b/health/android.hardware.health-service.zumapro.xml @@ -0,0 +1,7 @@ + + + android.hardware.health + 1 + IHealth/default + + diff --git a/health/android.hardware.health-service.zumapro_recovery.rc b/health/android.hardware.health-service.zumapro_recovery.rc new file mode 100644 index 0000000..c0cd085 --- /dev/null +++ b/health/android.hardware.health-service.zumapro_recovery.rc @@ -0,0 +1,7 @@ +service vendor.health-zumapro /system/bin/hw/android.hardware.health-service.zumapro_recovery + class hal + seclabel u:r:hal_health_default:s0 + user system + group system + capabilities WAKE_ALARM BLOCK_SUSPEND + file /dev/kmsg w diff --git a/init.hardware.wlc.rc.userdebug b/init.hardware.wlc.rc.userdebug new file mode 100644 index 0000000..dee7b6b --- /dev/null +++ b/init.hardware.wlc.rc.userdebug @@ -0,0 +1,24 @@ +# +# Copyright (C) 2018 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +on property:sys.boot_completed=1 && property:persist.vendor.limit.wlc.current=1 + write /sys/class/power_supply/dc/current_max 75000 + +on property:sys.boot_completed=1 && property:persist.vendor.limit.wlc.current=0 + write /sys/class/power_supply/dc/current_max 1100000 + +on property:vendor.disable.wlc=1 + write /sys/class/power_supply/wireless/online 0 diff --git a/interfaces/boot/1.0/Android.bp b/interfaces/boot/1.0/Android.bp new file mode 100644 index 0000000..c62eabd --- /dev/null +++ b/interfaces/boot/1.0/Android.bp @@ -0,0 +1,66 @@ +// +// Copyright (C) 2019 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 { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "//device/google/zumapro:device_google_zumapro_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: [ + "//device/google/zumapro:device_google_zumapro_license", + ], +} + +cc_binary { + name: "android.hardware.boot@1.0-service-zumapro", + defaults: ["hidl_defaults"], + relative_install_path: "hw", + vendor: true, + init_rc: ["android.hardware.boot@1.0-service-zumapro.rc"], + srcs: [ + "BootControl.cpp", + "GptUtils.cpp", + "service.cpp" + ], + shared_libs: [ + "libbase", + "liblog", + "libhidlbase", + "libutils", + "libcutils", + "libz", + "android.hardware.boot@1.0", + ], +} + +cc_library { + name: "android.hardware.boot@1.0-impl-zumapro", + recovery: true, + srcs: [ + "BootControl.cpp", + "GptUtils.cpp", + ], + relative_install_path: "hw", + shared_libs: [ + "libbase", + "liblog", + "libhidlbase", + "libutils", + "libcutils", + "libz", + "android.hardware.boot@1.0", + ], +} diff --git a/interfaces/boot/1.0/BootControl.cpp b/interfaces/boot/1.0/BootControl.cpp new file mode 100644 index 0000000..1f155c9 --- /dev/null +++ b/interfaces/boot/1.0/BootControl.cpp @@ -0,0 +1,272 @@ +/* + * Copyright (C) 2019 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. + */ + +#define LOG_TAG "bootcontrolhal" + +#include "BootControl.h" +#include "GptUtils.h" + +#include +#include +#include + +namespace android { +namespace hardware { +namespace boot { +namespace V1_0 { +namespace implementation { + +namespace { + +#define BOOT_A_PATH "/dev/block/by-name/boot_a" +#define BOOT_B_PATH "/dev/block/by-name/boot_b" + +// slot flags +#define AB_ATTR_PRIORITY_SHIFT 52 +#define AB_ATTR_PRIORITY_MASK (3UL << AB_ATTR_PRIORITY_SHIFT) +#define AB_ATTR_ACTIVE_SHIFT 54 +#define AB_ATTR_ACTIVE (1UL << AB_ATTR_ACTIVE_SHIFT) +#define AB_ATTR_RETRY_COUNT_SHIFT (55) +#define AB_ATTR_RETRY_COUNT_MASK (7UL << AB_ATTR_RETRY_COUNT_SHIFT) +#define AB_ATTR_SUCCESSFUL (1UL << 58) +#define AB_ATTR_UNBOOTABLE (1UL << 59) + +#define AB_ATTR_MAX_PRIORITY 3UL +#define AB_ATTR_MAX_RETRY_COUNT 3UL + +static std::string getDevPath(uint32_t slot) { + char real_path[PATH_MAX]; + + const char *path = slot == 0 ? BOOT_A_PATH : BOOT_B_PATH; + + int ret = readlink(path, real_path, sizeof real_path); + if (ret < 0) { + ALOGE("readlink failed for boot device %s\n", strerror(errno)); + return std::string(); + } + + std::string dp(real_path); + // extract /dev/sda.. part + return dp.substr(0, sizeof "/dev/block/sdX" - 1); +} + +static bool isSlotFlagSet(uint32_t slot, uint64_t flag) { + std::string dev_path = getDevPath(slot); + if (dev_path.empty()) { + ALOGI("Could not get device path for slot %d\n", slot); + return false; + } + + GptUtils gpt(dev_path); + if (gpt.Load()) { + ALOGI("failed to load gpt data\n"); + return false; + } + + gpt_entry *e = gpt.GetPartitionEntry(slot ? "boot_b" : "boot_a"); + if (e == nullptr) { + ALOGI("failed to get gpt entry\n"); + return false; + } + + return !!(e->attr & flag); +} + +static int setSlotFlag(uint32_t slot, uint64_t flag) { + std::string dev_path = getDevPath(slot); + if (dev_path.empty()) { + ALOGI("Could not get device path for slot %d\n", slot); + return -1; + } + + GptUtils gpt(dev_path); + if (gpt.Load()) { + ALOGI("failed to load gpt data\n"); + return -1; + } + + gpt_entry *e = gpt.GetPartitionEntry(slot ? "boot_b" : "boot_a"); + if (e == nullptr) { + ALOGI("failed to get gpt entry\n"); + return -1; + } + + e->attr |= flag; + gpt.Sync(); + + return 0; +} + +} + +// Methods from ::android::hardware::boot::V1_0::IBootControl follow. +Return BootControl::getNumberSlots() { + uint32_t slots = 0; + + if (access(BOOT_A_PATH, F_OK) == 0) + slots++; + + if (access(BOOT_B_PATH, F_OK) == 0) + slots++; + + return slots; +} + +Return BootControl::getCurrentSlot() { + char suffix[PROPERTY_VALUE_MAX]; + property_get("ro.boot.slot_suffix", suffix, "_a"); + return std::string(suffix) == "_b" ? 1 : 0; +} + +Return BootControl::markBootSuccessful(markBootSuccessful_cb _hidl_cb) { + if (getNumberSlots() == 0) { + // no slots, just return true otherwise Android keeps trying + _hidl_cb({true, ""}); + return Void(); + } + int ret = setSlotFlag(getCurrentSlot(), AB_ATTR_SUCCESSFUL); + ret ? _hidl_cb({false, "Failed to set successfull flag"}) : _hidl_cb({true, ""}); + return Void(); +} + +Return BootControl::setActiveBootSlot(uint32_t slot, setActiveBootSlot_cb _hidl_cb) { + if (slot >= 2) { + _hidl_cb({false, "Invalid slot"}); + return Void(); + } + + std::string dev_path = getDevPath(slot); + if (dev_path.empty()) { + _hidl_cb({false, "Could not get device path for slot"}); + return Void(); + } + + GptUtils gpt(dev_path); + if (gpt.Load()) { + _hidl_cb({false, "failed to load gpt data"}); + return Void(); + } + + gpt_entry *active_entry = gpt.GetPartitionEntry(slot == 0 ? "boot_a" : "boot_b"); + gpt_entry *inactive_entry = gpt.GetPartitionEntry(slot == 0 ? "boot_b" : "boot_a"); + if (active_entry == nullptr || inactive_entry == nullptr) { + _hidl_cb({false, "failed to get entries for boot partitions"}); + return Void(); + } + + ALOGV("slot active attributes %lx\n", active_entry->attr); + ALOGV("slot inactive attributes %lx\n", inactive_entry->attr); + + char boot_dev[PROPERTY_VALUE_MAX]; + property_get("ro.boot.bootdevice", boot_dev, ""); + if (boot_dev[0] == '\0') { + _hidl_cb({false, "invalid ro.boot.bootdevice prop"}); + return Void(); + } + + std::string boot_lun_path = std::string("/sys/devices/platform/") + + boot_dev + "/pixel/boot_lun_enabled"; + int fd = open(boot_lun_path.c_str(), O_RDWR); + if (fd < 0) { + // Try old path for kernels < 5.4 + // TODO: remove once kernel 4.19 support is deprecated + std::string boot_lun_path = std::string("/sys/devices/platform/") + + boot_dev + "/attributes/boot_lun_enabled"; + fd = open(boot_lun_path.c_str(), O_RDWR); + if (fd < 0) { + _hidl_cb({false, "failed to open ufs attr boot_lun_enabled"}); + return Void(); + } + } + + // update attributes for active and inactive + inactive_entry->attr &= ~AB_ATTR_ACTIVE; + active_entry->attr = AB_ATTR_ACTIVE | (AB_ATTR_MAX_PRIORITY << AB_ATTR_PRIORITY_SHIFT) | + (AB_ATTR_MAX_RETRY_COUNT << AB_ATTR_RETRY_COUNT_SHIFT); + + // + // bBootLunEn + // 0x1 => Boot LU A = enabled, Boot LU B = disable + // 0x2 => Boot LU A = disable, Boot LU B = enabled + // + int ret = android::base::WriteStringToFd(slot == 0 ? "1" : "2", fd); + close(fd); + if (ret < 0) { + _hidl_cb({false, "faied to write boot_lun_enabled attribute"}); + return Void(); + } + + _hidl_cb({true, ""}); + return Void(); +} + +Return BootControl::setSlotAsUnbootable(uint32_t slot, setSlotAsUnbootable_cb _hidl_cb) { + if (slot >= 2) { + _hidl_cb({false, "Invalid slot"}); + return Void(); + } + + std::string dev_path = getDevPath(slot); + if (dev_path.empty()) { + _hidl_cb({false, "Could not get device path for slot"}); + return Void(); + } + + GptUtils gpt(dev_path); + gpt.Load(); + + gpt_entry *e = gpt.GetPartitionEntry(slot ? "boot_b" : "boot_a"); + e->attr |= AB_ATTR_UNBOOTABLE; + + gpt.Sync(); + + _hidl_cb({true, ""}); + return Void(); +} + +Return<::android::hardware::boot::V1_0::BoolResult> BootControl::isSlotBootable(uint32_t slot) { + if (getNumberSlots() == 0) + return BoolResult::FALSE; + if (slot >= getNumberSlots()) + return BoolResult::INVALID_SLOT; + return isSlotFlagSet(slot, AB_ATTR_UNBOOTABLE) ? BoolResult::FALSE : BoolResult::TRUE; +} + +Return<::android::hardware::boot::V1_0::BoolResult> BootControl::isSlotMarkedSuccessful(uint32_t slot) { + if (getNumberSlots() == 0) { + // just return true so that we don't we another call trying to mark it as successful + // when there is no slots + return BoolResult::TRUE; + } + if (slot >= getNumberSlots()) + return BoolResult::INVALID_SLOT; + return isSlotFlagSet(slot, AB_ATTR_SUCCESSFUL) ? BoolResult::TRUE : BoolResult::FALSE; +} + +Return BootControl::getSuffix(uint32_t slot, getSuffix_cb _hidl_cb) { + _hidl_cb(slot == 0 ? "_a" : slot == 1 ? "_b" : ""); + return Void(); +} + +extern "C" IBootControl* HIDL_FETCH_IBootControl(const char*) { + return new BootControl(); +} + +} // namespace implementation +} // namespace V1_0 +} // namespace boot +} // namespace hardware +} // namespace android diff --git a/interfaces/boot/1.0/BootControl.h b/interfaces/boot/1.0/BootControl.h new file mode 100644 index 0000000..eb81cb0 --- /dev/null +++ b/interfaces/boot/1.0/BootControl.h @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2019 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. + */ + +#pragma once + +#include +#include +#include + +namespace android { +namespace hardware { +namespace boot { +namespace V1_0 { +namespace implementation { + +using ::android::hardware::hidl_array; +using ::android::hardware::hidl_memory; +using ::android::hardware::hidl_string; +using ::android::hardware::hidl_vec; +using ::android::hardware::Return; +using ::android::hardware::Void; +using ::android::sp; + +struct BootControl : public IBootControl { + // Methods from ::android::hardware::boot::V1_0::IBootControl follow. + Return getNumberSlots() override; + Return getCurrentSlot() override; + Return markBootSuccessful(markBootSuccessful_cb _hidl_cb) override; + Return setActiveBootSlot(uint32_t slot, setActiveBootSlot_cb _hidl_cb) override; + Return setSlotAsUnbootable(uint32_t slot, setSlotAsUnbootable_cb _hidl_cb) override; + Return<::android::hardware::boot::V1_0::BoolResult> isSlotBootable(uint32_t slot) override; + Return<::android::hardware::boot::V1_0::BoolResult> isSlotMarkedSuccessful(uint32_t slot) override; + Return getSuffix(uint32_t slot, getSuffix_cb _hidl_cb) override; + + // Methods from ::android::hidl::base::V1_0::IBase follow. + +}; + +// FIXME: most likely delete, this is only for passthrough implementations +extern "C" IBootControl* HIDL_FETCH_IBootControl(const char* name); + +} // namespace implementation +} // namespace V1_0 +} // namespace boot +} // namespace hardware +} // namespace android diff --git a/interfaces/boot/1.0/GptUtils.cpp b/interfaces/boot/1.0/GptUtils.cpp new file mode 100644 index 0000000..f893617 --- /dev/null +++ b/interfaces/boot/1.0/GptUtils.cpp @@ -0,0 +1,199 @@ +/* + * Copyright (C) 2019 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. + */ + +#define LOG_TAG "bootcontrolhal" + +#include "GptUtils.h" + +#include +#include +#include +#include +#include + +namespace android { +namespace hardware { +namespace boot { +namespace V1_0 { +namespace implementation { + +namespace { + +static int ValidateGptHeader(gpt_header *gpt) +{ + if (gpt->signature != GPT_SIGNATURE) { + ALOGE("invalid gpt signature 0x%lx\n", gpt->signature); + return -1; + } + + if (gpt->header_size != sizeof(gpt_header)) { + ALOGE("invalid gpt header size %u\n", gpt->header_size); + return -1; + } + + if (gpt->entry_size != sizeof(gpt_entry)) { + ALOGE("invalid gpt entry size %u\n", gpt->entry_size); + return -1; + } + + return 0; +} + +} + +GptUtils::GptUtils(const std::string dev_path) : dev_path(dev_path), fd(0) {} + +int GptUtils::Load(void) +{ + fd = open(dev_path.c_str(), O_RDWR); + if (fd < 0) { + ALOGE("failed to open block dev %s, %d\n", dev_path.c_str(), errno); + return -1; + } + + int ret = ioctl(fd, BLKSSZGET, &block_size); + if (ret < 0) { + ALOGE("failed to get block size %d\n", errno); + return -1; + } + + // read primary header + lseek64(fd, block_size, SEEK_SET); + ret = read(fd, &gpt_primary, sizeof gpt_primary); + if (ret < 0) { + ALOGE("failed to read gpt primary header %d\n", errno); + return -1; + } + + if (ValidateGptHeader(&gpt_primary)) { + ALOGE("error validating gpt header\n"); + return -1; + } + + // read partition entries + entry_array.resize(gpt_primary.entry_count); + uint32_t entries_size = gpt_primary.entry_size * gpt_primary.entry_count; + lseek64(fd, block_size * gpt_primary.start_lba, SEEK_SET); + ret = read(fd, entry_array.data(), entries_size); + if (ret < 0) { + ALOGE("failed to read gpt partition entries %d\n", errno); + return -1; + } + + // read gpt back header + lseek64(fd, block_size * gpt_primary.backup_lba, SEEK_SET); + ret = read(fd, &gpt_backup, sizeof gpt_backup); + if (ret < 0) { + ALOGE("failed to read gpt backup header %d\n", errno); + return -1; + } + + if (ValidateGptHeader(&gpt_backup)) { + ALOGW("error validating gpt backup\n"); // just warn about it, not fail + } + + // Create map + auto get_name = [](const uint16_t *efi_name) { + char name[37] = {}; + for (int i = 0; efi_name[i] && i < sizeof name - 1; ++i) + name[i] = efi_name[i]; + return std::string(name); + }; + + for (auto const &e: entry_array) { + if (e.name[0] == 0) + break; // stop at the first partition with no name + std::string s = get_name(e.name); + entries[s] = const_cast(&e); + } + + return 0; +} + +gpt_entry *GptUtils::GetPartitionEntry(std::string name) +{ + return entries.find(name) != entries.end() ? entries[name] : nullptr; +} + +int GptUtils::Sync(void) +{ + if (!fd) + return -1; + + // calculate crc and check if we need to update gpt + gpt_primary.entries_crc32 = crc32(0, reinterpret_cast(entry_array.data()), + entry_array.size() * sizeof(gpt_entry)); + + // save old crc + uint32_t crc = gpt_primary.crc32; + gpt_primary.crc32 = 0; + + gpt_primary.crc32 = crc32(0, reinterpret_cast(&gpt_primary), sizeof gpt_primary); + if (crc == gpt_primary.crc32) + return 0; // nothing to do (no changes) + + ALOGI("updating GPT\n"); + + lseek64(fd, block_size * gpt_primary.current_lba, SEEK_SET); + int ret = write(fd, &gpt_primary, sizeof gpt_primary); + if (ret < 0) { + ALOGE("failed to write gpt primary header %d\n", errno); + return -1; + } + + lseek64(fd, block_size * gpt_primary.start_lba, SEEK_SET); + ret = write(fd, entry_array.data(), entry_array.size() * sizeof(gpt_entry)); + if (ret < 0) { + ALOGE("failed to write gpt partition entries %d\n", errno); + return -1; + } + + //update GPT backup entries and backup + lseek64(fd, block_size * gpt_backup.start_lba, SEEK_SET); + ret = write(fd, entry_array.data(), entry_array.size() * sizeof(gpt_entry)); + if (ret < 0) { + ALOGE("failed to write gpt backup partition entries %d\n", errno); + return -1; + } + + gpt_backup.entries_crc32 = gpt_primary.entries_crc32; + gpt_backup.crc32 = 0; + gpt_backup.crc32 = crc32(0, reinterpret_cast(&gpt_backup), sizeof gpt_backup); + lseek64(fd, block_size * gpt_primary.backup_lba, SEEK_SET); + ret = write(fd, &gpt_backup, sizeof gpt_backup); + if (ret < 0) { + ALOGE("failed to write gpt backup header %d\n", errno); + return -1; + } + + fsync(fd); + + return 0; +} + +GptUtils::~GptUtils() +{ + if (fd) { + Sync(); + close(fd); + } +} + +} // namespace implementation +} // namespace V1_0 +} // namespace boot +} // namespace hardware +} // namespace android diff --git a/interfaces/boot/1.0/GptUtils.h b/interfaces/boot/1.0/GptUtils.h new file mode 100644 index 0000000..d969d9d --- /dev/null +++ b/interfaces/boot/1.0/GptUtils.h @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2019 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. + */ + +#pragma once + +#include +#include +#include + +namespace android { +namespace hardware { +namespace boot { +namespace V1_0 { +namespace implementation { + +#define GPT_SIGNATURE 0x5452415020494645UL + +typedef struct { + uint8_t type_guid[16]; + uint8_t guid[16]; + uint64_t first_lba; + uint64_t last_lba; + uint64_t attr; + uint16_t name[36]; +} __attribute__((packed)) gpt_entry; + +typedef struct { + uint64_t signature; + uint32_t revision; + uint32_t header_size; + uint32_t crc32; + uint32_t reserved; + uint64_t current_lba; + uint64_t backup_lba; + uint64_t first_usable_lba; + uint64_t last_usable_lba; + uint8_t disk_guid[16]; + uint64_t start_lba; + uint32_t entry_count; + uint32_t entry_size; + uint32_t entries_crc32; +} __attribute__((packed)) gpt_header; + +class GptUtils { + public: + GptUtils(const std::string dev_path); + int Load(void); + gpt_entry *GetPartitionEntry(std::string name); + int Sync(void); + ~GptUtils(); + + private: + std::string dev_path; + int fd; + uint32_t block_size; + gpt_header gpt_primary; + gpt_header gpt_backup; + std::vector entry_array; + std::mapentries; +}; + +} // namespace implementation +} // namespace V1_0 +} // namespace boot +} // namespace hardware +} // namespace android diff --git a/interfaces/boot/1.0/android.hardware.boot@1.0-service-zumapro.rc b/interfaces/boot/1.0/android.hardware.boot@1.0-service-zumapro.rc new file mode 100644 index 0000000..df0972a --- /dev/null +++ b/interfaces/boot/1.0/android.hardware.boot@1.0-service-zumapro.rc @@ -0,0 +1,4 @@ +service vendor.boot-hal-1-0 /vendor/bin/hw/android.hardware.boot@1.0-service-zumapro + class early_hal + user root + group root diff --git a/interfaces/boot/1.0/service.cpp b/interfaces/boot/1.0/service.cpp new file mode 100644 index 0000000..9dcd78c --- /dev/null +++ b/interfaces/boot/1.0/service.cpp @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2016 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. + */ +#define LOG_TAG "android.hardware.boot@1.0-service" + +#include +#include +#include +#include +#include "BootControl.h" + +using ::android::status_t; + +using ::android::hardware::boot::V1_0::IBootControl; + +using ::android::hardware::boot::V1_0::implementation::BootControl; + +int main (int /* argc */, char * /* argv */ []) { + // This function must be called before you join to ensure the proper + // number of threads are created. The threadpool will never exceed + // size one because of this call. + ::android::hardware::configureRpcThreadpool(1 /*threads*/, true /*willJoin*/); + + ::android::sp bootctrl = new BootControl(); + const status_t status = bootctrl->registerAsService(); + if (status != ::android::OK) { + return 1; // or handle error + } + + // Adds this thread to the threadpool, resulting in one total + // thread in the threadpool. We could also do other things, but + // would have to specify 'false' to willJoin in configureRpcThreadpool. + ::android::hardware::joinRpcThreadpool(); + return 1; // joinRpcThreadpool should never return +} diff --git a/interfaces/boot/1.2/Android.bp b/interfaces/boot/1.2/Android.bp new file mode 100644 index 0000000..249c6c7 --- /dev/null +++ b/interfaces/boot/1.2/Android.bp @@ -0,0 +1,83 @@ +// +// Copyright (C) 2020 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 { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "//device/google/zumapro:device_google_zumapro_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: [ + "//device/google/zumapro:device_google_zumapro_license", + ], +} + +cc_binary { + name: "android.hardware.boot@1.2-service-zumapro", + defaults: ["hidl_defaults"], + relative_install_path: "hw", + vendor: true, + init_rc: ["android.hardware.boot@1.2-service-zumapro.rc"], + srcs: [ + "BootControl.cpp", + "GptUtils.cpp", + "service.cpp" + ], + shared_libs: [ + "libbase", + "liblog", + "libhidlbase", + "libutils", + "libcutils", + "libz", + "libtrusty", + "android.hardware.boot@1.0", + "android.hardware.boot@1.1", + "android.hardware.boot@1.2", + ], + static_libs: [ + "libboot_control", + "libbootloader_message_vendor", + "libfstab", + ], +} + +cc_library { + name: "android.hardware.boot@1.2-impl-zumapro", + stem: "android.hardware.boot@1.0-impl-1.2-impl-zumapro", + recovery: true, + srcs: [ + "BootControl.cpp", + "GptUtils.cpp", + ], + relative_install_path: "hw", + shared_libs: [ + "libbase", + "liblog", + "libhidlbase", + "libutils", + "libcutils", + "libz", + "libtrusty", + "android.hardware.boot@1.0", + "android.hardware.boot@1.1", + "android.hardware.boot@1.2", + ], + static_libs: [ + "libboot_control", + "libbootloader_message_vendor", + "libfstab", + ], +} diff --git a/interfaces/boot/1.2/BootControl.cpp b/interfaces/boot/1.2/BootControl.cpp new file mode 100644 index 0000000..7782075 --- /dev/null +++ b/interfaces/boot/1.2/BootControl.cpp @@ -0,0 +1,501 @@ +/* + * Copyright (C) 2020 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. + */ + +#define LOG_TAG "bootcontrolhal" + +#include "BootControl.h" + +#include +#include +#include +#include +#include +#include +#include + +#include "DevInfo.h" +#include "GptUtils.h" + +namespace android { +namespace hardware { +namespace boot { +namespace V1_2 { +namespace implementation { + +using android::bootable::GetMiscVirtualAbMergeStatus; +using android::bootable::InitMiscVirtualAbMessageIfNeeded; +using android::bootable::SetMiscVirtualAbMergeStatus; +using android::hardware::boot::V1_0::BoolResult; +using android::hardware::boot::V1_0::CommandResult; +using android::hardware::boot::V1_1::MergeStatus; + +namespace { + +// clang-format off + +#define BOOT_A_PATH "/dev/block/by-name/boot_a" +#define BOOT_B_PATH "/dev/block/by-name/boot_b" +#define DEVINFO_PATH "/dev/block/by-name/devinfo" + +// slot flags +#define AB_ATTR_PRIORITY_SHIFT 52 +#define AB_ATTR_PRIORITY_MASK (3UL << AB_ATTR_PRIORITY_SHIFT) +#define AB_ATTR_ACTIVE_SHIFT 54 +#define AB_ATTR_ACTIVE (1UL << AB_ATTR_ACTIVE_SHIFT) +#define AB_ATTR_RETRY_COUNT_SHIFT (55) +#define AB_ATTR_RETRY_COUNT_MASK (7UL << AB_ATTR_RETRY_COUNT_SHIFT) +#define AB_ATTR_SUCCESSFUL (1UL << 58) +#define AB_ATTR_UNBOOTABLE (1UL << 59) + +#define AB_ATTR_MAX_PRIORITY 3UL +#define AB_ATTR_MAX_RETRY_COUNT 3UL + +// clang-format on + +static std::string getDevPath(uint32_t slot) { + char real_path[PATH_MAX]; + + const char *path = slot == 0 ? BOOT_A_PATH : BOOT_B_PATH; + + int ret = readlink(path, real_path, sizeof real_path); + if (ret < 0) { + ALOGE("readlink failed for boot device %s\n", strerror(errno)); + return std::string(); + } + + std::string dp(real_path); + // extract /dev/sda.. part + return dp.substr(0, sizeof "/dev/block/sdX" - 1); +} + +static bool isSlotFlagSet(uint32_t slot, uint64_t flag) { + std::string dev_path = getDevPath(slot); + if (dev_path.empty()) { + ALOGI("Could not get device path for slot %d\n", slot); + return false; + } + + GptUtils gpt(dev_path); + if (gpt.Load()) { + ALOGI("failed to load gpt data\n"); + return false; + } + + gpt_entry *e = gpt.GetPartitionEntry(slot ? "boot_b" : "boot_a"); + if (e == nullptr) { + ALOGI("failed to get gpt entry\n"); + return false; + } + + return !!(e->attr & flag); +} + +static bool setSlotFlag(uint32_t slot, uint64_t flag) { + std::string dev_path = getDevPath(slot); + if (dev_path.empty()) { + ALOGI("Could not get device path for slot %d\n", slot); + return false; + } + + GptUtils gpt(dev_path); + if (gpt.Load()) { + ALOGI("failed to load gpt data\n"); + return false; + } + + gpt_entry *e = gpt.GetPartitionEntry(slot ? "boot_b" : "boot_a"); + if (e == nullptr) { + ALOGI("failed to get gpt entry\n"); + return false; + } + + e->attr |= flag; + gpt.Sync(); + + return true; +} + +static bool is_devinfo_valid; +static bool is_devinfo_initialized; +static std::mutex devinfo_lock; +static devinfo_t devinfo; + +static bool isDevInfoValid() { + const std::lock_guard lock(devinfo_lock); + + if (is_devinfo_initialized) { + return is_devinfo_valid; + } + + is_devinfo_initialized = true; + + android::base::unique_fd fd(open(DEVINFO_PATH, O_RDONLY)); + android::base::ReadFully(fd, &devinfo, sizeof devinfo); + + if (devinfo.magic != DEVINFO_MAGIC) { + return is_devinfo_valid; + } + + uint32_t version = ((uint32_t)devinfo.ver_major << 16) | devinfo.ver_minor; + // only version 3.3+ supports A/B data + if (version >= 0x0003'0003) { + is_devinfo_valid = true; + } + + return is_devinfo_valid; +} + +static bool DevInfoSync() { + if (!isDevInfoValid()) { + return false; + } + + android::base::unique_fd fd(open(DEVINFO_PATH, O_WRONLY | O_DSYNC)); + return android::base::WriteFully(fd, &devinfo, sizeof devinfo); +} + +static void DevInfoInitSlot(devinfo_ab_slot_data_t &slot_data) { + slot_data.retry_count = AB_ATTR_MAX_RETRY_COUNT; + slot_data.unbootable = 0; + slot_data.successful = 0; + slot_data.active = 1; + slot_data.fastboot_ok = 0; +} + +static int blow_otp_AR(bool secure) { + static const char *dev_name = "/dev/trusty-ipc-dev0"; + static const char *otp_name = "com.android.trusty.otp_manager.tidl"; + int fd = 1, ret = 0; + uint32_t cmd = secure? OTP_CMD_write_antirbk_secure_ap : OTP_CMD_write_antirbk_non_secure_ap; + fd = tipc_connect(dev_name, otp_name); + if (fd < 0) { + ALOGI("Failed to connect to OTP_MGR ns TA - is it missing?\n"); + ret = -1; + return ret; + } + + struct otp_mgr_req_base req = { + .command = cmd, + .resp_payload_size = 0, + }; + struct iovec iov[] = { + { + .iov_base = &req, + .iov_len = sizeof(req), + }, + }; + + int rc = tipc_send(fd, iov, 1, NULL, 0); + if (rc != sizeof(req)) { + ALOGI("Send fail! %x\n", rc); + return rc; + } + + struct otp_mgr_rsp_base resp; + rc = read(fd, &resp, sizeof(resp)); + if (rc < 0) { + ALOGI("Read fail! %x\n", rc); + return rc; + } + + if (rc < sizeof(resp)) { + ALOGI("Not enough data! %x\n", rc); + return -EIO; + } + + if (resp.command != (cmd | OTP_RESP_BIT)) { + ALOGI("Wrong command! %x\n", resp.command); + return -EINVAL; + } + + if (resp.result != 0) { + fprintf(stderr, "AR writing error! %x\n", resp.result); + return -EINVAL; + } + + tipc_close(fd); + return 0; +} + +static bool blowAR() { + int ret = blow_otp_AR(true); + if (ret) { + ALOGI("Blow secure anti-rollback OTP failed"); + return false; + } + + ret = blow_otp_AR(false); + if (ret) { + ALOGI("Blow non-secure anti-rollback OTP failed"); + return false; + } + + return true; +} +} // namespace + +// Methods from ::android::hardware::boot::V1_0::IBootControl follow. +Return BootControl::getNumberSlots() { + uint32_t slots = 0; + + if (access(BOOT_A_PATH, F_OK) == 0) + slots++; + + if (access(BOOT_B_PATH, F_OK) == 0) + slots++; + + return slots; +} + +Return BootControl::getCurrentSlot() { + char suffix[PROPERTY_VALUE_MAX]; + property_get("ro.boot.slot_suffix", suffix, "_a"); + return std::string(suffix) == "_b" ? 1 : 0; +} + +Return BootControl::markBootSuccessful(markBootSuccessful_cb _hidl_cb) { + if (getNumberSlots() == 0) { + // no slots, just return true otherwise Android keeps trying + _hidl_cb({true, ""}); + return Void(); + } + + bool ret; + if (isDevInfoValid()) { + auto const slot = getCurrentSlot(); + devinfo.ab_data.slots[slot].successful = 1; + ret = DevInfoSync(); + } else { + ret = setSlotFlag(getCurrentSlot(), AB_ATTR_SUCCESSFUL); + } + + if (!ret) { + _hidl_cb({false, "Failed to set successful flag"}); + return Void(); + } + + if (!blowAR()) { + ALOGE("Failed to blow anti-rollback counter"); + // Ignore the error, since ABL will re-trigger it on reboot + } + + _hidl_cb({true, ""}); + return Void(); +} + +Return BootControl::setActiveBootSlot(uint32_t slot, setActiveBootSlot_cb _hidl_cb) { + if (slot >= 2) { + _hidl_cb({false, "Invalid slot"}); + return Void(); + } + + if (isDevInfoValid()) { + auto &active_slot_data = devinfo.ab_data.slots[slot]; + auto &inactive_slot_data = devinfo.ab_data.slots[!slot]; + + inactive_slot_data.active = 0; + DevInfoInitSlot(active_slot_data); + + if (!DevInfoSync()) { + _hidl_cb({false, "Could not update DevInfo data"}); + return Void(); + } + } else { + std::string dev_path = getDevPath(slot); + if (dev_path.empty()) { + _hidl_cb({false, "Could not get device path for slot"}); + return Void(); + } + + GptUtils gpt(dev_path); + if (gpt.Load()) { + _hidl_cb({false, "failed to load gpt data"}); + return Void(); + } + + gpt_entry *active_entry = gpt.GetPartitionEntry(slot == 0 ? "boot_a" : "boot_b"); + gpt_entry *inactive_entry = gpt.GetPartitionEntry(slot == 0 ? "boot_b" : "boot_a"); + if (active_entry == nullptr || inactive_entry == nullptr) { + _hidl_cb({false, "failed to get entries for boot partitions"}); + return Void(); + } + + ALOGV("slot active attributes %lx\n", active_entry->attr); + ALOGV("slot inactive attributes %lx\n", inactive_entry->attr); + + // update attributes for active and inactive + inactive_entry->attr &= ~AB_ATTR_ACTIVE; + active_entry->attr = AB_ATTR_ACTIVE | (AB_ATTR_MAX_PRIORITY << AB_ATTR_PRIORITY_SHIFT) | + (AB_ATTR_MAX_RETRY_COUNT << AB_ATTR_RETRY_COUNT_SHIFT); + } + + char boot_dev[PROPERTY_VALUE_MAX]; + property_get("ro.boot.bootdevice", boot_dev, ""); + if (boot_dev[0] == '\0') { + _hidl_cb({false, "invalid ro.boot.bootdevice prop"}); + return Void(); + } + + std::string boot_lun_path = + std::string("/sys/devices/platform/") + boot_dev + "/pixel/boot_lun_enabled"; + int fd = open(boot_lun_path.c_str(), O_RDWR | O_DSYNC); + if (fd < 0) { + // Try old path for kernels < 5.4 + // TODO: remove once kernel 4.19 support is deprecated + std::string boot_lun_path = + std::string("/sys/devices/platform/") + boot_dev + "/attributes/boot_lun_enabled"; + fd = open(boot_lun_path.c_str(), O_RDWR | O_DSYNC); + if (fd < 0) { + _hidl_cb({false, "failed to open ufs attr boot_lun_enabled"}); + return Void(); + } + } + + // + // bBootLunEn + // 0x1 => Boot LU A = enabled, Boot LU B = disable + // 0x2 => Boot LU A = disable, Boot LU B = enabled + // + int ret = android::base::WriteStringToFd(slot == 0 ? "1" : "2", fd); + close(fd); + if (ret < 0) { + _hidl_cb({false, "faied to write boot_lun_enabled attribute"}); + return Void(); + } + + _hidl_cb({true, ""}); + return Void(); +} + +Return BootControl::setSlotAsUnbootable(uint32_t slot, setSlotAsUnbootable_cb _hidl_cb) { + if (slot >= 2) { + _hidl_cb({false, "Invalid slot"}); + return Void(); + } + + if (isDevInfoValid()) { + auto &slot_data = devinfo.ab_data.slots[slot]; + slot_data.unbootable = 1; + if (!DevInfoSync()) { + _hidl_cb({false, "Could not update DevInfo data"}); + return Void(); + } + } else { + std::string dev_path = getDevPath(slot); + if (dev_path.empty()) { + _hidl_cb({false, "Could not get device path for slot"}); + return Void(); + } + + GptUtils gpt(dev_path); + gpt.Load(); + + gpt_entry *e = gpt.GetPartitionEntry(slot ? "boot_b" : "boot_a"); + e->attr |= AB_ATTR_UNBOOTABLE; + + gpt.Sync(); + } + + _hidl_cb({true, ""}); + return Void(); +} + +Return<::android::hardware::boot::V1_0::BoolResult> BootControl::isSlotBootable(uint32_t slot) { + if (getNumberSlots() == 0) + return BoolResult::FALSE; + if (slot >= getNumberSlots()) + return BoolResult::INVALID_SLOT; + + bool unbootable; + if (isDevInfoValid()) { + auto &slot_data = devinfo.ab_data.slots[slot]; + unbootable = !!slot_data.unbootable; + } else { + unbootable = isSlotFlagSet(slot, AB_ATTR_UNBOOTABLE); + } + + return unbootable ? BoolResult::FALSE : BoolResult::TRUE; +} + +Return<::android::hardware::boot::V1_0::BoolResult> BootControl::isSlotMarkedSuccessful( + uint32_t slot) { + if (getNumberSlots() == 0) { + // just return true so that we don't we another call trying to mark it as successful + // when there is no slots + return BoolResult::TRUE; + } + if (slot >= getNumberSlots()) + return BoolResult::INVALID_SLOT; + + bool successful; + if (isDevInfoValid()) { + auto &slot_data = devinfo.ab_data.slots[slot]; + successful = !!slot_data.successful; + } else { + successful = isSlotFlagSet(slot, AB_ATTR_SUCCESSFUL); + } + + return successful ? BoolResult::TRUE : BoolResult::FALSE; +} + +Return BootControl::getSuffix(uint32_t slot, getSuffix_cb _hidl_cb) { + _hidl_cb(slot == 0 ? "_a" : slot == 1 ? "_b" : ""); + return Void(); +} + +// Methods from ::android::hardware::boot::V1_1::IBootControl follow. +bool BootControl::Init() { + return InitMiscVirtualAbMessageIfNeeded(); +} + +Return BootControl::setSnapshotMergeStatus( + ::android::hardware::boot::V1_1::MergeStatus status) { + return SetMiscVirtualAbMergeStatus(getCurrentSlot(), status); +} + +Return<::android::hardware::boot::V1_1::MergeStatus> BootControl::getSnapshotMergeStatus() { + MergeStatus status; + if (!GetMiscVirtualAbMergeStatus(getCurrentSlot(), &status)) { + return MergeStatus::UNKNOWN; + } + return status; +} + +// Methods from ::android::hardware::boot::V1_2::IBootControl follow. +Return BootControl::getActiveBootSlot() { + if (getNumberSlots() == 0) + return 0; + + if (isDevInfoValid()) + return devinfo.ab_data.slots[1].active ? 1 : 0; + return isSlotFlagSet(1, AB_ATTR_ACTIVE) ? 1 : 0; +} + +// Methods from ::android::hidl::base::V1_0::IBase follow. + +IBootControl *HIDL_FETCH_IBootControl(const char * /* name */) { + auto module = new BootControl(); + + module->Init(); + + return module; +} + +} // namespace implementation +} // namespace V1_2 +} // namespace boot +} // namespace hardware +} // namespace android diff --git a/interfaces/boot/1.2/BootControl.h b/interfaces/boot/1.2/BootControl.h new file mode 100644 index 0000000..45b7efa --- /dev/null +++ b/interfaces/boot/1.2/BootControl.h @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2020 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. + */ + +#pragma once + +#include +#include +#include + +namespace android { +namespace hardware { +namespace boot { +namespace V1_2 { +namespace implementation { + +using ::android::sp; +using ::android::hardware::hidl_array; +using ::android::hardware::hidl_memory; +using ::android::hardware::hidl_string; +using ::android::hardware::hidl_vec; +using ::android::hardware::Return; +using ::android::hardware::Void; + +struct BootControl : public IBootControl { + bool Init(); + + // Methods from ::android::hardware::boot::V1_0::IBootControl follow. + Return getNumberSlots() override; + Return getCurrentSlot() override; + Return markBootSuccessful(markBootSuccessful_cb _hidl_cb) override; + Return setActiveBootSlot(uint32_t slot, setActiveBootSlot_cb _hidl_cb) override; + Return setSlotAsUnbootable(uint32_t slot, setSlotAsUnbootable_cb _hidl_cb) override; + Return<::android::hardware::boot::V1_0::BoolResult> isSlotBootable(uint32_t slot) override; + Return<::android::hardware::boot::V1_0::BoolResult> isSlotMarkedSuccessful( + uint32_t slot) override; + Return getSuffix(uint32_t slot, getSuffix_cb _hidl_cb) override; + + // Methods from ::android::hardware::boot::V1_1::IBootControl follow. + Return setSnapshotMergeStatus( + ::android::hardware::boot::V1_1::MergeStatus status) override; + Return<::android::hardware::boot::V1_1::MergeStatus> getSnapshotMergeStatus() override; + + // Methods from ::android::hardware::boot::V1_2::IBootControl follow. + Return getActiveBootSlot() override; + + // Methods from ::android::hidl::base::V1_0::IBase follow. +}; + +// FIXME: most likely delete, this is only for passthrough implementations +extern "C" IBootControl *HIDL_FETCH_IBootControl(const char *name); + +enum otpmgr_command : uint32_t { + OTP_REQ_SHIFT = 1, + OTP_RESP_BIT = 1, + OTP_CMD_write_antirbk_non_secure_ap = (7 << OTP_REQ_SHIFT), + OTP_CMD_write_antirbk_secure_ap = (8 << OTP_REQ_SHIFT), +}; + +struct otp_mgr_req_base { + uint32_t command; + uint32_t resp_payload_size; + uint8_t handle; +}__packed; + +struct otp_mgr_rsp_base { + uint32_t command; + uint32_t resp_payload_size; + int result; +}__packed; + +} // namespace implementation +} // namespace V1_2 +} // namespace boot +} // namespace hardware +} // namespace android diff --git a/interfaces/boot/1.2/DevInfo.h b/interfaces/boot/1.2/DevInfo.h new file mode 100644 index 0000000..a09a83a --- /dev/null +++ b/interfaces/boot/1.2/DevInfo.h @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2021 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. + */ + +#pragma once + +namespace android { +namespace hardware { +namespace boot { +namespace V1_2 { +namespace implementation { + +// +// definitions taken from ABL code +// + +constexpr uint32_t DEVINFO_MAGIC = 0x49564544; +constexpr size_t DEVINFO_AB_SLOT_COUNT = 2; + +struct devinfo_ab_slot_data_t { + uint8_t retry_count; + uint8_t unbootable : 1; + uint8_t successful : 1; + uint8_t active : 1; + uint8_t fastboot_ok : 1; + uint8_t : 4; + uint8_t unused[2]; +} __attribute__((packed)); + +typedef struct { + devinfo_ab_slot_data_t slots[DEVINFO_AB_SLOT_COUNT]; +} __attribute__((packed)) devinfo_ab_data_t; + +struct devinfo_t { + uint32_t magic; + uint16_t ver_major; + uint16_t ver_minor; + uint8_t unused[40]; + devinfo_ab_data_t ab_data; + uint8_t unused1[72]; // use remaining up to complete 128 bytes +} __attribute__((packed)); + +static_assert(sizeof(devinfo_t) == 128, "invalid devinfo struct size"); + +} // namespace implementation +} // namespace V1_2 +} // namespace boot +} // namespace hardware +} // namespace android diff --git a/interfaces/boot/1.2/GptUtils.cpp b/interfaces/boot/1.2/GptUtils.cpp new file mode 100644 index 0000000..25088e7 --- /dev/null +++ b/interfaces/boot/1.2/GptUtils.cpp @@ -0,0 +1,193 @@ +/* + * Copyright (C) 2019 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. + */ + +#define LOG_TAG "bootcontrolhal" + +#include "GptUtils.h" + +#include +#include +#include +#include +#include + +namespace android { +namespace hardware { +namespace boot { +namespace V1_2 { +namespace implementation { + +namespace { + +static int ValidateGptHeader(gpt_header *gpt) { + if (gpt->signature != GPT_SIGNATURE) { + ALOGE("invalid gpt signature 0x%lx\n", gpt->signature); + return -1; + } + + if (gpt->header_size != sizeof(gpt_header)) { + ALOGE("invalid gpt header size %u\n", gpt->header_size); + return -1; + } + + if (gpt->entry_size != sizeof(gpt_entry)) { + ALOGE("invalid gpt entry size %u\n", gpt->entry_size); + return -1; + } + + return 0; +} + +} // namespace + +GptUtils::GptUtils(const std::string dev_path) : dev_path(dev_path), fd(0) {} + +int GptUtils::Load(void) { + fd = open(dev_path.c_str(), O_RDWR); + if (fd < 0) { + ALOGE("failed to open block dev %s, %d\n", dev_path.c_str(), errno); + return -1; + } + + int ret = ioctl(fd, BLKSSZGET, &block_size); + if (ret < 0) { + ALOGE("failed to get block size %d\n", errno); + return -1; + } + + // read primary header + lseek64(fd, block_size, SEEK_SET); + ret = read(fd, &gpt_primary, sizeof gpt_primary); + if (ret < 0) { + ALOGE("failed to read gpt primary header %d\n", errno); + return -1; + } + + if (ValidateGptHeader(&gpt_primary)) { + ALOGE("error validating gpt header\n"); + return -1; + } + + // read partition entries + entry_array.resize(gpt_primary.entry_count); + uint32_t entries_size = gpt_primary.entry_size * gpt_primary.entry_count; + lseek64(fd, block_size * gpt_primary.start_lba, SEEK_SET); + ret = read(fd, entry_array.data(), entries_size); + if (ret < 0) { + ALOGE("failed to read gpt partition entries %d\n", errno); + return -1; + } + + // read gpt back header + lseek64(fd, block_size * gpt_primary.backup_lba, SEEK_SET); + ret = read(fd, &gpt_backup, sizeof gpt_backup); + if (ret < 0) { + ALOGE("failed to read gpt backup header %d\n", errno); + return -1; + } + + if (ValidateGptHeader(&gpt_backup)) { + ALOGW("error validating gpt backup\n"); // just warn about it, not fail + } + + // Create map + auto get_name = [](const uint16_t *efi_name) { + char name[37] = {}; + for (int i = 0; efi_name[i] && i < sizeof name - 1; ++i) name[i] = efi_name[i]; + return std::string(name); + }; + + for (auto const &e : entry_array) { + if (e.name[0] == 0) + break; // stop at the first partition with no name + std::string s = get_name(e.name); + entries[s] = const_cast(&e); + } + + return 0; +} + +gpt_entry *GptUtils::GetPartitionEntry(std::string name) { + return entries.find(name) != entries.end() ? entries[name] : nullptr; +} + +int GptUtils::Sync(void) { + if (!fd) + return -1; + + // calculate crc and check if we need to update gpt + gpt_primary.entries_crc32 = crc32(0, reinterpret_cast(entry_array.data()), + entry_array.size() * sizeof(gpt_entry)); + + // save old crc + uint32_t crc = gpt_primary.crc32; + gpt_primary.crc32 = 0; + + gpt_primary.crc32 = crc32(0, reinterpret_cast(&gpt_primary), sizeof gpt_primary); + if (crc == gpt_primary.crc32) + return 0; // nothing to do (no changes) + + ALOGI("updating GPT\n"); + + lseek64(fd, block_size * gpt_primary.current_lba, SEEK_SET); + int ret = write(fd, &gpt_primary, sizeof gpt_primary); + if (ret < 0) { + ALOGE("failed to write gpt primary header %d\n", errno); + return -1; + } + + lseek64(fd, block_size * gpt_primary.start_lba, SEEK_SET); + ret = write(fd, entry_array.data(), entry_array.size() * sizeof(gpt_entry)); + if (ret < 0) { + ALOGE("failed to write gpt partition entries %d\n", errno); + return -1; + } + + // update GPT backup entries and backup + lseek64(fd, block_size * gpt_backup.start_lba, SEEK_SET); + ret = write(fd, entry_array.data(), entry_array.size() * sizeof(gpt_entry)); + if (ret < 0) { + ALOGE("failed to write gpt backup partition entries %d\n", errno); + return -1; + } + + gpt_backup.entries_crc32 = gpt_primary.entries_crc32; + gpt_backup.crc32 = 0; + gpt_backup.crc32 = crc32(0, reinterpret_cast(&gpt_backup), sizeof gpt_backup); + lseek64(fd, block_size * gpt_primary.backup_lba, SEEK_SET); + ret = write(fd, &gpt_backup, sizeof gpt_backup); + if (ret < 0) { + ALOGE("failed to write gpt backup header %d\n", errno); + return -1; + } + + fsync(fd); + + return 0; +} + +GptUtils::~GptUtils() { + if (fd) { + Sync(); + close(fd); + } +} + +} // namespace implementation +} // namespace V1_2 +} // namespace boot +} // namespace hardware +} // namespace android diff --git a/interfaces/boot/1.2/GptUtils.h b/interfaces/boot/1.2/GptUtils.h new file mode 100644 index 0000000..a2bed33 --- /dev/null +++ b/interfaces/boot/1.2/GptUtils.h @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2019 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. + */ + +#pragma once + +#include +#include +#include + +namespace android { +namespace hardware { +namespace boot { +namespace V1_2 { +namespace implementation { + +#define GPT_SIGNATURE 0x5452415020494645UL + +typedef struct { + uint8_t type_guid[16]; + uint8_t guid[16]; + uint64_t first_lba; + uint64_t last_lba; + uint64_t attr; + uint16_t name[36]; +} __attribute__((packed)) gpt_entry; + +typedef struct { + uint64_t signature; + uint32_t revision; + uint32_t header_size; + uint32_t crc32; + uint32_t reserved; + uint64_t current_lba; + uint64_t backup_lba; + uint64_t first_usable_lba; + uint64_t last_usable_lba; + uint8_t disk_guid[16]; + uint64_t start_lba; + uint32_t entry_count; + uint32_t entry_size; + uint32_t entries_crc32; +} __attribute__((packed)) gpt_header; + +class GptUtils { + public: + GptUtils(const std::string dev_path); + int Load(void); + gpt_entry *GetPartitionEntry(std::string name); + int Sync(void); + ~GptUtils(); + + private: + std::string dev_path; + int fd; + uint32_t block_size; + gpt_header gpt_primary; + gpt_header gpt_backup; + std::vector entry_array; + std::map entries; +}; + +} // namespace implementation +} // namespace V1_2 +} // namespace boot +} // namespace hardware +} // namespace android diff --git a/interfaces/boot/1.2/android.hardware.boot@1.2-service-zumapro.rc b/interfaces/boot/1.2/android.hardware.boot@1.2-service-zumapro.rc new file mode 100644 index 0000000..08ec540 --- /dev/null +++ b/interfaces/boot/1.2/android.hardware.boot@1.2-service-zumapro.rc @@ -0,0 +1,7 @@ +service vendor.boot-hal-1-2 /vendor/bin/hw/android.hardware.boot@1.2-service-zumapro + interface android.hardware.boot@1.0::IBootControl default + interface android.hardware.boot@1.1::IBootControl default + interface android.hardware.boot@1.2::IBootControl default + class early_hal + user root + group root diff --git a/interfaces/boot/1.2/service.cpp b/interfaces/boot/1.2/service.cpp new file mode 100644 index 0000000..f07682e --- /dev/null +++ b/interfaces/boot/1.2/service.cpp @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2020 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. + */ + +#define LOG_TAG "android.hardware.boot@1.2-service" + +#include +#include +#include +#include + +#include "BootControl.h" + +using ::android::status_t; + +using ::android::hardware::boot::V1_2::IBootControl; + +using ::android::hardware::boot::V1_2::implementation::BootControl; +// using ::android::hardware::boot::implementation::BootControl; + +int main(int /* argc */, char * /* argv */[]) { + // This function must be called before you join to ensure the proper + // number of threads are created. The threadpool will never exceed + // size one because of this call. + ::android::hardware::configureRpcThreadpool(1 /*threads*/, true /*willJoin*/); + + ::android::sp bootctrl = new BootControl(); + const status_t status = bootctrl->registerAsService(); + if (status != ::android::OK) { + return 1; // or handle error + } + + // Adds this thread to the threadpool, resulting in one total + // thread in the threadpool. We could also do other things, but + // would have to specify 'false' to willJoin in configureRpcThreadpool. + ::android::hardware::joinRpcThreadpool(); + return 1; // joinRpcThreadpool should never return +} diff --git a/keymaster/Android.bp b/keymaster/Android.bp new file mode 100644 index 0000000..b041ec7 --- /dev/null +++ b/keymaster/Android.bp @@ -0,0 +1,40 @@ +// +// Copyright (C) 2018 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package { + // See: http://go/android-license-faq + // A large-scale-change added 'default_applicable_licenses' to import + // all of the 'license_kinds' from "//device/google/zumapro:device_google_zumapro_license" + // to get the below license kinds: + // SPDX-license-identifier-Apache-2.0 + default_applicable_licenses: [ + "//device/google/zumapro:device_google_zumapro_license", + ], +} + +cc_binary { + name: "wait_for_strongbox", + init_rc: ["wait_for_strongbox.rc"], + relative_install_path: "hw", + srcs: [ "wait_for_strongbox.cpp" ], + cflags: [ "-Werror", "-Wall" ], + shared_libs: [ + "android.hardware.keymaster@4.0", + "libbase", + "libkeymaster4_1support", + "libutils", + ], + proprietary: true, +} diff --git a/keymaster/wait_for_strongbox.cpp b/keymaster/wait_for_strongbox.cpp new file mode 100644 index 0000000..c0f4094 --- /dev/null +++ b/keymaster/wait_for_strongbox.cpp @@ -0,0 +1,59 @@ +/* + ** Copyright 2018, The Android Open Source Project + ** + ** Licensed under the Apache License, Version 2.0 (the "License"); + ** you may not use this file except in compliance with the License. + ** You may obtain a copy of the License at + ** + ** http://www.apache.org/licenses/LICENSE-2.0 + ** + ** Unless required by applicable law or agreed to in writing, software + ** distributed under the License is distributed on an "AS IS" BASIS, + ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ** See the License for the specific language governing permissions and + ** limitations under the License. + */ + +#include + +#define LOG_TAG "wait_for_strongbox" +#include + +#include + +using android::hardware::keymaster::V4_1::SecurityLevel; +using android::hardware::keymaster::V4_1::support::Keymaster; + +useconds_t kWaitTimeMicroseconds = 1 * 1000; // 1 milliseconds + +int main() { + for (unsigned cycleCount = 0; /* Forever */; ++cycleCount) { + auto keymasters = Keymaster::enumerateAvailableDevices(); + + bool foundStrongBox = false; + bool foundTee = false; + for (auto &dev : keymasters) { + SecurityLevel securityLevel = dev->halVersion().securityLevel; + uint8_t majorVersion = dev->halVersion().majorVersion; + if (securityLevel == SecurityLevel::STRONGBOX && majorVersion == 4) { + foundStrongBox = true; + } + if (securityLevel == SecurityLevel::TRUSTED_ENVIRONMENT && majorVersion == 4) { + foundTee = true; + } + } + + if (foundTee && foundStrongBox) { + return 0; + } + if (cycleCount % 10 == 1) { + if (!foundStrongBox) { + LOG(WARNING) << "Still waiting for StrongBox Keymaster"; + } + if (!foundTee) { + LOG(WARNING) << "Still waiting for TEE Keymaster"; + } + } + usleep(kWaitTimeMicroseconds); + } +} diff --git a/keymaster/wait_for_strongbox.rc b/keymaster/wait_for_strongbox.rc new file mode 100644 index 0000000..c02fc46 --- /dev/null +++ b/keymaster/wait_for_strongbox.rc @@ -0,0 +1,9 @@ +# Wait for both Trusty and Strongbox HALs to be up +service wait_for_strongbox /vendor/bin/hw/wait_for_strongbox + user root + group root system + priority -20 + ioprio rt 0 + +on late-fs + exec_start wait_for_strongbox diff --git a/manifest.xml b/manifest.xml new file mode 100644 index 0000000..6cd9fa5 --- /dev/null +++ b/manifest.xml @@ -0,0 +1,40 @@ + + + android.hardware.graphics.mapper + passthrough + 4.0 + + IMapper + default + + + + android.hardware.boot + hwbinder + @1.2::IBootControl/default + + + android.hardware.neuralnetworks + hwbinder + 1.3 + + IDevice + google-armnn + + @1.3::IDevice/google-armnn + + + com.google.input.algos.spd + + IScreenProtectorDetectorService + default + + + + com.google.input + + ITouchContextService + default + + + diff --git a/manifest_media.xml b/manifest_media.xml new file mode 100644 index 0000000..195d587 --- /dev/null +++ b/manifest_media.xml @@ -0,0 +1,12 @@ + + + android.hardware.media.c2 + hwbinder + 1.2 + + IComponentStore + default + default1 + + + diff --git a/manifest_media_aosp.xml b/manifest_media_aosp.xml new file mode 100644 index 0000000..9a1a3db --- /dev/null +++ b/manifest_media_aosp.xml @@ -0,0 +1,11 @@ + + + android.hardware.media.c2 + hwbinder + 1.2 + + IComponentStore + default + + + diff --git a/media_codecs.xml b/media_codecs.xml new file mode 100644 index 0000000..87a42ef --- /dev/null +++ b/media_codecs.xml @@ -0,0 +1,82 @@ + + + + + + + + diff --git a/media_codecs_aosp_c2.xml b/media_codecs_aosp_c2.xml new file mode 100644 index 0000000..c2e37a7 --- /dev/null +++ b/media_codecs_aosp_c2.xml @@ -0,0 +1,256 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/media_codecs_bo_c2.xml b/media_codecs_bo_c2.xml new file mode 100644 index 0000000..9ada728 --- /dev/null +++ b/media_codecs_bo_c2.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/media_codecs_performance.xml b/media_codecs_performance.xml new file mode 100644 index 0000000..9cb4210 --- /dev/null +++ b/media_codecs_performance.xml @@ -0,0 +1,18 @@ + + + + + diff --git a/media_codecs_performance_c2.xml b/media_codecs_performance_c2.xml new file mode 100644 index 0000000..2c6663e --- /dev/null +++ b/media_codecs_performance_c2.xml @@ -0,0 +1,279 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/media_profiles.xml b/media_profiles.xml new file mode 100644 index 0000000..cc6e3f4 --- /dev/null +++ b/media_profiles.xml @@ -0,0 +1,895 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modem/userdebug.mk b/modem/userdebug.mk new file mode 100644 index 0000000..ba4c0e9 --- /dev/null +++ b/modem/userdebug.mk @@ -0,0 +1 @@ +PRODUCT_PACKAGES += vcd diff --git a/modem_ml/modem_ml_models_user.conf b/modem_ml/modem_ml_models_user.conf new file mode 100644 index 0000000..88ab2bc --- /dev/null +++ b/modem_ml/modem_ml_models_user.conf @@ -0,0 +1,3 @@ +#name,version,ml_type,compute_enable,compute_timer,train_enable,train_timer,monitor_enable_monitor_timer,execution_type,execution_timer +sample_linear_reg,0,LEGACY,true,5000,false,0,false,0,SYNCHRONOUS_REGULAR,5000 +sample_fully_conn,0,LEGACY,true,5000,false,0,false,0,SYNCHRONOUS_REGULAR,5000 diff --git a/modem_ml/modem_ml_models_userdebug.conf b/modem_ml/modem_ml_models_userdebug.conf new file mode 100644 index 0000000..640bfeb --- /dev/null +++ b/modem_ml/modem_ml_models_userdebug.conf @@ -0,0 +1,3 @@ +#name,version,ml_type,compute_enable,compute_timer,train_enable,train_timer,monitor_enable_monitor_timer,execution_type,execution_timer +sample_linear_reg,0,LEGACY,true,5000,true,5000,true,5000,SYNCHRONOUS_REGULAR,5000 +sample_fully_conn,0,LEGACY,true,5000,true,5000,true,5000,SYNCHRONOUS_REGULAR,5000 diff --git a/overlay-factory/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/overlay-factory/frameworks/base/packages/SettingsProvider/res/values/defaults.xml new file mode 100644 index 0000000..3f3258f --- /dev/null +++ b/overlay-factory/frameworks/base/packages/SettingsProvider/res/values/defaults.xml @@ -0,0 +1,23 @@ + + + + + false + + diff --git a/overlay-factory/vendor/google/apps/PixelLogger/res/values/arrays.xml b/overlay-factory/vendor/google/apps/PixelLogger/res/values/arrays.xml new file mode 100644 index 0000000..20a8365 --- /dev/null +++ b/overlay-factory/vendor/google/apps/PixelLogger/res/values/arrays.xml @@ -0,0 +1,7 @@ + + + shannondm + cnss_diag + brcm_gps + + diff --git a/overlay-factory/vendor/google/apps/PixelLogger/res/values/config.xml b/overlay-factory/vendor/google/apps/PixelLogger/res/values/config.xml new file mode 100644 index 0000000..ee2e1e8 --- /dev/null +++ b/overlay-factory/vendor/google/apps/PixelLogger/res/values/config.xml @@ -0,0 +1,10 @@ + + + shannondm + Built-in Mask #1 + + + cnss_diag.conf + + true + diff --git a/overlay-factory/vendor/google/apps/PixelLogger/res/values/configmessages.xml b/overlay-factory/vendor/google/apps/PixelLogger/res/values/configmessages.xml new file mode 100644 index 0000000..578cfc5 --- /dev/null +++ b/overlay-factory/vendor/google/apps/PixelLogger/res/values/configmessages.xml @@ -0,0 +1,19 @@ + + + + + + + This will collect audio from your voice calls. Would you like to proceed? + + + This may collect audio from your voice calls. Would you like to proceed? + Pixel_Default.nprf + Built-in Mask #0 + Built-in Mask #1 + Built-in Mask #2 + Built-in Mask #3 + + Privacy Warning + You are loading a user defined logging config. This may collect audio from your voice calls. Would you like to proceed? + diff --git a/overlay-vendor/vendor/google/apps/ModemService/res/values/config.xml b/overlay-vendor/vendor/google/apps/ModemService/res/values/config.xml new file mode 100644 index 0000000..7266f91 --- /dev/null +++ b/overlay-vendor/vendor/google/apps/ModemService/res/values/config.xml @@ -0,0 +1,21 @@ + + + + false + 1 + 0 + + + 0 + 3 + + + false + + + + 3 + 4 + diff --git a/overlay-vendor/vendor/google/apps/PixelLogger/res/values/arrays.xml b/overlay-vendor/vendor/google/apps/PixelLogger/res/values/arrays.xml new file mode 100644 index 0000000..79f0587 --- /dev/null +++ b/overlay-vendor/vendor/google/apps/PixelLogger/res/values/arrays.xml @@ -0,0 +1,6 @@ + + + qxdm + cnss_diag + + diff --git a/overlay-vendor/vendor/google/apps/PixelLogger/res/values/config.xml b/overlay-vendor/vendor/google/apps/PixelLogger/res/values/config.xml new file mode 100644 index 0000000..80c0abe --- /dev/null +++ b/overlay-vendor/vendor/google/apps/PixelLogger/res/values/config.xml @@ -0,0 +1,5 @@ + + + + cnss_diag.conf + diff --git a/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable-ldrtl/deferred_setup_closing_img.xml b/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable-ldrtl/deferred_setup_closing_img.xml new file mode 100644 index 0000000..983fc64 --- /dev/null +++ b/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable-ldrtl/deferred_setup_closing_img.xml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable-nodpi/placeholder.png b/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable-nodpi/placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..ec4f14d1a6ce034c50a0577f95a1c3833c6190f3 GIT binary patch literal 4645 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 literal 0 HcmV?d00001 diff --git a/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/deferred_setup_closing_img.xml b/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/deferred_setup_closing_img.xml new file mode 100644 index 0000000..284de8a --- /dev/null +++ b/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/deferred_setup_closing_img.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/deferred_setup_welcome_img.xml b/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/deferred_setup_welcome_img.xml new file mode 100644 index 0000000..c2b0ba1 --- /dev/null +++ b/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/deferred_setup_welcome_img.xml @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_deferred_setup_icon.xml b/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_deferred_setup_icon.xml new file mode 100644 index 0000000..990ed48 --- /dev/null +++ b/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_deferred_setup_icon.xml @@ -0,0 +1,35 @@ + + + + + + + + + diff --git a/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_language.xml b/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_language.xml new file mode 100644 index 0000000..6cc9a72 --- /dev/null +++ b/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_language.xml @@ -0,0 +1,26 @@ + + + + + + diff --git a/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_logo_googleg.xml b/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_logo_googleg.xml new file mode 100644 index 0000000..36454fa --- /dev/null +++ b/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_logo_googleg.xml @@ -0,0 +1,35 @@ + + + + + + + + + diff --git a/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_network_signal.xml b/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_network_signal.xml new file mode 100644 index 0000000..73bbac1 --- /dev/null +++ b/overlay-vendor/vendor/google/apps/SetupWizard/res/drawable/ic_network_signal.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + diff --git a/overlay-vendor/vendor/google/apps/SetupWizard/res/layout/esim_intro_activity.xml b/overlay-vendor/vendor/google/apps/SetupWizard/res/layout/esim_intro_activity.xml new file mode 100644 index 0000000..f35062b --- /dev/null +++ b/overlay-vendor/vendor/google/apps/SetupWizard/res/layout/esim_intro_activity.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + diff --git a/overlay-vendor/vendor/google/apps/SetupWizard/res/layout/items_esim.xml b/overlay-vendor/vendor/google/apps/SetupWizard/res/layout/items_esim.xml new file mode 100644 index 0000000..1d60d9d --- /dev/null +++ b/overlay-vendor/vendor/google/apps/SetupWizard/res/layout/items_esim.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + diff --git a/overlay-vendor/vendor/google/apps/SetupWizard/res/layout/sim_missing_activity.xml b/overlay-vendor/vendor/google/apps/SetupWizard/res/layout/sim_missing_activity.xml new file mode 100644 index 0000000..18d7447 --- /dev/null +++ b/overlay-vendor/vendor/google/apps/SetupWizard/res/layout/sim_missing_activity.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/overlay-vendor/vendor/google/apps/SetupWizard/res/layout/welcome_activity.xml b/overlay-vendor/vendor/google/apps/SetupWizard/res/layout/welcome_activity.xml new file mode 100644 index 0000000..060b38f --- /dev/null +++ b/overlay-vendor/vendor/google/apps/SetupWizard/res/layout/welcome_activity.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

(<*DOQ}e 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