Repository: EssentialOpenSource/device_essential_mata Branch: master Commit: 7343aaa1ce95 Files: 452 Total size: 25.3 MB Directory structure: gitextract_rnbf7k_u/ ├── AndroidBoard.mk ├── AndroidProducts.mk ├── BoardConfig.mk ├── Image.gz-dtb ├── README.md ├── Vendor_2e17_Product_a001.kl ├── WCNSS_qcom_cfg.ini ├── android.sofware.nfc.beam.xml ├── audio/ │ ├── acdbdata/ │ │ ├── Bluetooth_cal.acdb │ │ ├── General_cal.acdb │ │ ├── Global_cal.acdb │ │ ├── Handset_cal.acdb │ │ ├── Hdmi_cal.acdb │ │ ├── Headset_cal.acdb │ │ ├── Speaker_cal.acdb │ │ └── workspaceFile.qwsp │ ├── audio_platform_info_mata.xml │ ├── audio_policy_configuration.xml │ ├── audio_policy_volumes.xml │ ├── default_volume_tables.xml │ ├── mixer_paths_tasha_mata.xml │ ├── msm8998.mk │ ├── smartamp/ │ │ ├── T9891_mu.drc │ │ ├── T9891_mu.vstep │ │ ├── T9891_rt.drc │ │ ├── T9891_rt.vstep │ │ ├── T9891_vo.drc │ │ ├── T9891_vo.vstep │ │ ├── TFA9891.cnt │ │ ├── TFA9891.cnt_preformat.ini │ │ ├── TFA9891.ini │ │ ├── TFA9891.speaker │ │ ├── TFA9891N1A_Dec2015.config │ │ └── TFA9891_N1A_11_1_31_NL3_HQ.patch │ └── sound_trigger_mixer_paths.xml ├── audio_effects.xml ├── base.mk ├── bdroid_buildcfg.h ├── compatibility_matrix.xml ├── config.fs ├── device-vendor.mk ├── dumpstate/ │ ├── Android.mk │ ├── DumpstateDevice.cpp │ ├── DumpstateDevice.h │ ├── android.hardware.dumpstate@1.0-service.mata.rc │ └── service.cpp ├── egl.cfg ├── essential-hiddenapi-package-whitelist.xml ├── etc/ │ ├── apns-conf.xml │ └── spn-conf.xml ├── excluded-input-devices.xml ├── fstab.mata ├── gpio-keys-mata.kl ├── healthd/ │ ├── Android.bp │ ├── HealthService.cpp │ ├── android.hardware.health@2.0-service.mata.rc │ └── images/ │ └── animation.txt ├── hostapd.accept ├── hostapd.conf ├── hostapd.deny ├── init.hardware.diag.rc.user ├── init.hardware.diag.rc.userdebug ├── init.recovery.mata.rc ├── manifest.xml ├── mata-disabled-until-used-preinstalled-carrier-app.xml ├── mata.mk ├── media/ │ ├── media_codecs.xml │ ├── media_codecs_performance.xml │ └── media_profiles_V1_0.xml ├── msm_irqbalance.conf ├── nfc/ │ ├── libnfc-brcm-mata.conf │ └── libnfc-nxp.conf ├── overlay/ │ ├── frameworks/ │ │ └── base/ │ │ ├── core/ │ │ │ └── res/ │ │ │ └── res/ │ │ │ ├── values/ │ │ │ │ ├── config.xml │ │ │ │ ├── dimens.xml │ │ │ │ └── strings.xml │ │ │ ├── values-mcc234-mnc15/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc234-mnc15-en-rGB/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc234-mnc15-en-rIN/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc262-mnc02/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc262-mnc02-en-rGB/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc262-mnc02-en-rIN/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc262-mnc04/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc262-mnc04-en-rGB/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc262-mnc04-en-rIN/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc262-mnc09/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc262-mnc09-en-rGB/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc262-mnc09-en-rIN/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc310-mnc004/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc310-mnc120/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc310-mnc260/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc310-mnc410/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc311-mnc480/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc311-mnc490/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc311-mnc870/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc312-mnc530/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc440-mnc20/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc460-mnc03/ │ │ │ │ └── config.xml │ │ │ ├── values-mcc460-mnc11/ │ │ │ │ └── config.xml │ │ │ └── xml/ │ │ │ └── power_profile.xml │ │ └── packages/ │ │ ├── Keyguard/ │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── config.xml │ │ ├── SettingsLib/ │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── arrays.xml │ │ ├── SettingsProvider/ │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── defaults.xml │ │ └── SystemUI/ │ │ └── res/ │ │ ├── values/ │ │ │ ├── config.xml │ │ │ └── dimens.xml │ │ ├── values-mcc208-mnc01/ │ │ │ └── config.xml │ │ ├── values-mcc302-mnc220/ │ │ │ └── config.xml │ │ ├── values-mcc310-mnc120/ │ │ │ └── config.xml │ │ ├── values-mcc311-mnc490/ │ │ │ └── config.xml │ │ ├── values-mcc311-mnc870/ │ │ │ └── config.xml │ │ ├── values-mcc312-mnc530/ │ │ │ └── config.xml │ │ └── values-mcc440-mnc20/ │ │ └── config.xml │ └── packages/ │ ├── apps/ │ │ ├── Bluetooth/ │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── config.xml │ │ ├── CellBroadcastReceiver/ │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── config.xml │ │ ├── Dialer/ │ │ │ └── InCallUI/ │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── config.xml │ │ ├── Phone/ │ │ │ └── res/ │ │ │ └── values/ │ │ │ └── config.xml │ │ └── Settings/ │ │ └── res/ │ │ ├── values/ │ │ │ ├── arrays.xml │ │ │ ├── bools.xml │ │ │ ├── config.xml │ │ │ ├── dimens.xml │ │ │ └── strings.xml │ │ ├── values-af/ │ │ │ └── strings.xml │ │ ├── values-am/ │ │ │ └── strings.xml │ │ ├── values-ar/ │ │ │ └── strings.xml │ │ ├── values-as/ │ │ │ └── strings.xml │ │ ├── values-az/ │ │ │ └── strings.xml │ │ ├── values-b+sr+Latn/ │ │ │ └── strings.xml │ │ ├── values-be/ │ │ │ └── strings.xml │ │ ├── values-bg/ │ │ │ └── strings.xml │ │ ├── values-bn/ │ │ │ └── strings.xml │ │ ├── values-bs/ │ │ │ └── strings.xml │ │ ├── values-ca/ │ │ │ └── strings.xml │ │ ├── values-cs/ │ │ │ └── strings.xml │ │ ├── values-da/ │ │ │ └── strings.xml │ │ ├── values-de/ │ │ │ └── strings.xml │ │ ├── values-el/ │ │ │ └── strings.xml │ │ ├── values-en-rAU/ │ │ │ └── strings.xml │ │ ├── values-en-rCA/ │ │ │ └── strings.xml │ │ ├── values-en-rGB/ │ │ │ └── strings.xml │ │ ├── values-en-rIN/ │ │ │ └── strings.xml │ │ ├── values-en-rXC/ │ │ │ └── strings.xml │ │ ├── values-es/ │ │ │ └── strings.xml │ │ ├── values-es-rUS/ │ │ │ └── strings.xml │ │ ├── values-et/ │ │ │ └── strings.xml │ │ ├── values-eu/ │ │ │ └── strings.xml │ │ ├── values-fa/ │ │ │ └── strings.xml │ │ ├── values-fi/ │ │ │ └── strings.xml │ │ ├── values-fr/ │ │ │ └── strings.xml │ │ ├── values-fr-rCA/ │ │ │ └── strings.xml │ │ ├── values-gl/ │ │ │ └── strings.xml │ │ ├── values-gu/ │ │ │ └── strings.xml │ │ ├── values-hi/ │ │ │ └── strings.xml │ │ ├── values-hr/ │ │ │ └── strings.xml │ │ ├── values-hu/ │ │ │ └── strings.xml │ │ ├── values-hy/ │ │ │ └── strings.xml │ │ ├── values-in/ │ │ │ └── strings.xml │ │ ├── values-is/ │ │ │ └── strings.xml │ │ ├── values-it/ │ │ │ └── strings.xml │ │ ├── values-iw/ │ │ │ └── strings.xml │ │ ├── values-ja/ │ │ │ └── strings.xml │ │ ├── values-ka/ │ │ │ └── strings.xml │ │ ├── values-kk/ │ │ │ └── strings.xml │ │ ├── values-km/ │ │ │ └── strings.xml │ │ ├── values-kn/ │ │ │ └── strings.xml │ │ ├── values-ko/ │ │ │ └── strings.xml │ │ ├── values-ky/ │ │ │ └── strings.xml │ │ ├── values-lo/ │ │ │ └── strings.xml │ │ ├── values-lt/ │ │ │ └── strings.xml │ │ ├── values-lv/ │ │ │ └── strings.xml │ │ ├── values-mcc310-mnc120/ │ │ │ └── arrays.xml │ │ ├── values-mcc311-mnc490/ │ │ │ └── arrays.xml │ │ ├── values-mcc311-mnc870/ │ │ │ └── arrays.xml │ │ ├── values-mcc312-mnc530/ │ │ │ └── arrays.xml │ │ ├── values-mcc440-mnc20/ │ │ │ └── arrays.xml │ │ ├── values-mk/ │ │ │ └── strings.xml │ │ ├── values-ml/ │ │ │ └── strings.xml │ │ ├── values-mn/ │ │ │ └── strings.xml │ │ ├── values-mr/ │ │ │ └── strings.xml │ │ ├── values-ms/ │ │ │ └── strings.xml │ │ ├── values-my/ │ │ │ └── strings.xml │ │ ├── values-nb/ │ │ │ └── strings.xml │ │ ├── values-ne/ │ │ │ └── strings.xml │ │ ├── values-nl/ │ │ │ └── strings.xml │ │ ├── values-or/ │ │ │ └── strings.xml │ │ ├── values-pa/ │ │ │ └── strings.xml │ │ ├── values-pl/ │ │ │ └── strings.xml │ │ ├── values-pt/ │ │ │ └── strings.xml │ │ ├── values-pt-rBR/ │ │ │ └── strings.xml │ │ ├── values-pt-rPT/ │ │ │ └── strings.xml │ │ ├── values-ro/ │ │ │ └── strings.xml │ │ ├── values-ru/ │ │ │ └── strings.xml │ │ ├── values-si/ │ │ │ └── strings.xml │ │ ├── values-sk/ │ │ │ └── strings.xml │ │ ├── values-sl/ │ │ │ └── strings.xml │ │ ├── values-sq/ │ │ │ └── strings.xml │ │ ├── values-sr/ │ │ │ └── strings.xml │ │ ├── values-sv/ │ │ │ └── strings.xml │ │ ├── values-sw/ │ │ │ └── strings.xml │ │ ├── values-ta/ │ │ │ └── strings.xml │ │ ├── values-te/ │ │ │ └── strings.xml │ │ ├── values-th/ │ │ │ └── strings.xml │ │ ├── values-tl/ │ │ │ └── strings.xml │ │ ├── values-tr/ │ │ │ └── strings.xml │ │ ├── values-uk/ │ │ │ └── strings.xml │ │ ├── values-ur/ │ │ │ └── strings.xml │ │ ├── values-uz/ │ │ │ └── strings.xml │ │ ├── values-vi/ │ │ │ └── strings.xml │ │ ├── values-zh-rCN/ │ │ │ └── strings.xml │ │ ├── values-zh-rHK/ │ │ │ └── strings.xml │ │ ├── values-zh-rTW/ │ │ │ └── strings.xml │ │ └── values-zu/ │ │ └── strings.xml │ └── services/ │ ├── Telecomm/ │ │ └── res/ │ │ └── values/ │ │ └── config.xml │ └── Telephony/ │ └── res/ │ ├── values/ │ │ └── config.xml │ ├── values-mcc234-mnc15/ │ │ └── strings.xml │ ├── values-mcc234-mnc15-en-rGB/ │ │ └── strings.xml │ ├── values-mcc234-mnc15-en-rIN/ │ │ └── strings.xml │ ├── values-mcc262-mnc02/ │ │ └── strings.xml │ ├── values-mcc262-mnc02-en-rGB/ │ │ └── strings.xml │ ├── values-mcc262-mnc02-en-rIN/ │ │ └── strings.xml │ ├── values-mcc262-mnc04/ │ │ └── strings.xml │ ├── values-mcc262-mnc04-en-rGB/ │ │ └── strings.xml │ ├── values-mcc262-mnc04-en-rIN/ │ │ └── strings.xml │ ├── values-mcc262-mnc09/ │ │ └── strings.xml │ ├── values-mcc262-mnc09-en-rGB/ │ │ └── strings.xml │ └── values-mcc262-mnc09-en-rIN/ │ └── strings.xml ├── p2p_supplicant_overlay.conf ├── power/ │ ├── AudioStreaming.h │ ├── CameraMode.h │ ├── InteractionHandler.cpp │ ├── InteractionHandler.h │ ├── Power.cpp │ ├── Power.h │ ├── android.hardware.power@1.3-service.mata-libperfmgr.rc │ ├── android.hardware.power@1.3-service.mata.xml │ ├── display-helper.cpp │ ├── display-helper.h │ └── service.cpp ├── powerhint.json ├── powerhint.xml ├── privapp-permissions-mata.xml ├── qca_cld3_wlan.ko ├── qti_whitelist.xml ├── radio/ │ └── filesmap ├── rootdir/ │ ├── Android.mk │ └── etc/ │ ├── hbtp_cmd.sh │ ├── init.crda.sh │ ├── init.mata.diag.rc │ ├── init.mata.rc │ ├── init.msm.usb.configfs.rc │ ├── init.qcom.early_boot.sh │ ├── init.qcom.post_boot.sh │ ├── init.qcom.ssr.sh │ ├── init.qcom.usb.rc │ ├── init.radio.sh │ ├── init.recovery.mata.rc │ └── ueventd.vendor.rc ├── sdllvm-lto-defs.mk ├── sec_config ├── seccomp/ │ ├── mediacodec-seccomp.policy │ └── mediaextractor-seccomp.policy ├── sensors/ │ └── hals.conf ├── sepolicy/ │ ├── private/ │ │ ├── app_zygote.te │ │ ├── dataservice_app.te │ │ ├── device.te │ │ ├── file_contexts │ │ ├── folio_daemon.te │ │ ├── genfs_contexts │ │ ├── init_elabel.te │ │ ├── migrate_legacy_obb_data.te │ │ ├── priv_app.te │ │ ├── property.te │ │ ├── property_contexts │ │ ├── radio.te │ │ ├── ramoops.te │ │ ├── seapp_contexts │ │ ├── service.te │ │ ├── service_contexts │ │ ├── system_server.te │ │ ├── system_suspend.te │ │ ├── untrusted_app_all.te │ │ └── wfdservice.te │ ├── public/ │ │ ├── dataservice_app.te │ │ ├── file.te │ │ ├── hwservice.te │ │ └── init_elabel.te │ └── vendor/ │ ├── adsprpcd.te │ ├── app.te │ ├── atfwd.te │ ├── attributes │ ├── audioserver.te │ ├── bluetooth.te │ ├── bootanim.te │ ├── btaddr_extract.te │ ├── cameraserver.te │ ├── certs/ │ │ └── Essential-platform.x509.pem │ ├── charger.te │ ├── chre.te │ ├── cnd.te │ ├── dataservice_app.te │ ├── device.te │ ├── domain.te │ ├── dumpstate.te │ ├── ephemeral_app.te │ ├── esed.te │ ├── essential_camera_app.te │ ├── file.te │ ├── file_contexts │ ├── fsck.te │ ├── gatekeeperd.te │ ├── genfs_contexts │ ├── gpuservice.te │ ├── hal_audio_default.te │ ├── hal_bluetooth_default.te │ ├── hal_bootctl.te │ ├── hal_bootctl_default.te │ ├── hal_camera.te │ ├── hal_camera_default.te │ ├── hal_cas_default.te │ ├── hal_contexthub.te │ ├── hal_drm_clearkey.te │ ├── hal_drm_default.te │ ├── hal_drm_widevine.te │ ├── hal_dumpstate_impl.te │ ├── hal_fingerprint.te │ ├── hal_fingerprint_default.te │ ├── hal_gatekeeper.te │ ├── hal_gnss_qti.te │ ├── hal_graphics_composer_default.te │ ├── hal_health_default.te │ ├── hal_imsrtp.te │ ├── hal_keymaster.te │ ├── hal_keymaster_qti.te │ ├── hal_light.te │ ├── hal_light_default.te │ ├── hal_memtrack_default.te │ ├── hal_neuralnetworks_hvx.te │ ├── hal_nfc_default.te │ ├── hal_oemlock_default.te │ ├── hal_power_default.te │ ├── hal_rcsservice.te │ ├── hal_sensors_default.te │ ├── hal_sidecar_essential_default.te │ ├── hal_tetheroffload_default.te │ ├── hal_thermal_default.te │ ├── hal_usb_default.te │ ├── hal_vibrator_default.te │ ├── hal_vr.te │ ├── hal_wifi_default.te │ ├── hal_wifi_supplicant_default.te │ ├── hbtp.te │ ├── hbtp_cmd.te │ ├── healthd.te │ ├── hvdcp.te │ ├── hwservice.te │ ├── hwservice_contexts │ ├── idmap.te │ ├── ims.te │ ├── incidentd.te │ ├── init-devstart-sh.te │ ├── init-insmod-sh.te │ ├── init-ipastart-sh.te │ ├── init.te │ ├── init_elabel.te │ ├── init_ese.te │ ├── init_power.te │ ├── init_radio.te │ ├── init_shell.te │ ├── installd.te │ ├── ioctl_defines │ ├── ioctl_macros │ ├── irqbalance.te │ ├── irsc_util.te │ ├── kernel.te │ ├── keys.conf │ ├── location.te │ ├── mac_permissions.xml │ ├── mediacodec.te │ ├── mediaextractor.te │ ├── move-widevine-data-sh.te │ ├── netd.te │ ├── netmgrd.te │ ├── netutils_wrapper.te │ ├── pd_services.te │ ├── per_mgr.te │ ├── per_proxy.te │ ├── perfd.te │ ├── platform_app.te │ ├── port-bridge.te │ ├── priv_app.te │ ├── property.te │ ├── property_contexts │ ├── qlogd.te │ ├── qmuxd.te │ ├── qtelephony.te │ ├── qti.te │ ├── qti_audio_app.te │ ├── radio.te │ ├── ramdump.te │ ├── recovery.te │ ├── rfs_access.te │ ├── rild.te │ ├── rmt_storage.te │ ├── seapp_contexts │ ├── sensors.te │ ├── service_contexts │ ├── shell.te │ ├── smlog_dump.te │ ├── ssr_diag.te │ ├── ssr_setup.te │ ├── surfaceflinger.te │ ├── system_app.te │ ├── system_server.te │ ├── tee.te │ ├── thermal-engine.te │ ├── time_daemon.te │ ├── timeservice_app.te │ ├── ueventd.te │ ├── update_engine_common.te │ ├── vendor_init.te │ ├── vndservice.te │ ├── vndservice_contexts │ ├── vold.te │ ├── wcnss_filter.te │ ├── wcnss_service.te │ ├── wifidisplayhalservice.te │ └── zygote.te ├── sound_trigger_platform_info.xml ├── sprint_whitelist.xml ├── system.prop ├── thermal/ │ ├── Android.mk │ ├── Thermal.cpp │ ├── Thermal.h │ ├── android.hardware.thermal@1.0-service.mata.rc │ ├── service.cpp │ ├── thermal-helper.cpp │ └── thermal-helper.h ├── uinput-fpc.kl ├── usb/ │ ├── Android.mk │ ├── Usb.cpp │ ├── Usb.h │ ├── android.hardware.usb@1.0-service.mata.rc │ └── service.cpp ├── utils.mk ├── vibrator/ │ ├── Android.bp │ ├── Vibrator.cpp │ ├── Vibrator.h │ ├── android.hardware.vibrator@1.2-service.mata.rc │ └── service.cpp ├── vold.fstab ├── whitelistedapps.xml ├── wifi_concurrency_cfg.txt ├── wpa_supplicant_overlay.conf └── wpa_supplicant_wcn.conf ================================================ FILE CONTENTS ================================================ ================================================ FILE: AndroidBoard.mk ================================================ LOCAL_PATH := $(call my-dir) #---------------------------------------------------------------------- # Copy additional target-specific files #---------------------------------------------------------------------- include $(CLEAR_VARS) LOCAL_MODULE := vold.fstab LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := $(LOCAL_MODULE) include $(BUILD_PREBUILT) include $(CLEAR_VARS) LOCAL_MODULE := fstab.mata LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := $(LOCAL_MODULE) LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC) include $(BUILD_PREBUILT) include $(CLEAR_VARS) LOCAL_MODULE := wpa_supplicant_overlay.conf LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := $(LOCAL_MODULE) LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc/wifi include $(BUILD_PREBUILT) include $(CLEAR_VARS) LOCAL_MODULE := p2p_supplicant_overlay.conf LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := $(LOCAL_MODULE) LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc/wifi include $(BUILD_PREBUILT) include $(CLEAR_VARS) LOCAL_MODULE := hostapd_default.conf LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/hostapd LOCAL_SRC_FILES := hostapd.conf include $(BUILD_PREBUILT) include $(CLEAR_VARS) LOCAL_MODULE := hostapd.accept LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/hostapd LOCAL_SRC_FILES := hostapd.accept include $(BUILD_PREBUILT) include $(CLEAR_VARS) LOCAL_MODULE := hostapd.deny LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/hostapd LOCAL_SRC_FILES := hostapd.deny include $(BUILD_PREBUILT) include $(CLEAR_VARS) LOCAL_MODULE := wifi_concurrency_cfg.txt LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := $(LOCAL_MODULE) LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/wifi include $(BUILD_PREBUILT) # Create symbolic links for WLAN $(shell mkdir -p $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld; \ ln -sf /vendor/etc/wifi/WCNSS_qcom_cfg.ini \ $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld/WCNSS_qcom_cfg.ini) #Create dsp directory $(shell mkdir -p $(TARGET_OUT_VENDOR)/lib/dsp) $(shell mkdir -p $(TARGET_OUT_VENDOR)/firmware_mnt) # Create symbolic links for msadp $(shell mkdir -p $(TARGET_OUT_VENDOR)/firmware; \ ln -sf /dev/block/bootdevice/by-name/msadp \ $(TARGET_OUT_VENDOR)/firmware/msadp) # Create symbolic links for wlan MAC address $(shell mkdir -p $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld; \ ln -sf /mnt/vendor/persist/wlan_mac.bin \ $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld/wlan_mac.bin) #---------------------------------------------------------------------- # Radio image #---------------------------------------------------------------------- radio_dir := $(LOCAL_PATH)/radio RADIO_FILES := $(shell cd $(radio_dir) ; ls) $(foreach f, $(RADIO_FILES), \ $(call add-radio-file,radio/$(f))) ================================================ FILE: AndroidProducts.mk ================================================ COMMON_LUNCH_CHOICES := mata-userdebug PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/mata.mk ================================================ FILE: BoardConfig.mk ================================================ # config.mk # # Product-specific compile-time definitions. # TARGET_BOARD_PLATFORM := msm8998 TARGET_ARCH := arm64 TARGET_ARCH_VARIANT := armv8-a TARGET_CPU_ABI := arm64-v8a TARGET_CPU_ABI2 := TARGET_CPU_VARIANT := cortex-a73 TARGET_2ND_ARCH := arm TARGET_2ND_ARCH_VARIANT := armv8-a TARGET_2ND_CPU_ABI := armeabi-v7a TARGET_2ND_CPU_ABI2 := armeabi TARGET_2ND_CPU_VARIANT := cortex-a73 TARGET_NO_BOOTLOADER := true TARGET_USES_UEFI := true TARGET_NO_KERNEL := false -include $(QCPATH)/common/msm8998/BoardConfigVendor.mk TARGET_ENABLE_PROPRIETARY_SMARTCARD_SERVICE := false CONFIG_EAP_PROXY_DUAL_SIM := false BOARD_HAVE_QCOM_FM := false BOARD_ANT_WIRELESS_DEVICE := # Some framework code requires this to enable BT BOARD_HAVE_BLUETOOTH := true USE_OPENGL_RENDERER := true BOARD_USE_LEGACY_UI := true TARGET_USERIMAGES_USE_EXT4 := true BOARD_BOOTIMAGE_PARTITION_SIZE := 0x04000000 #A/B related defines AB_OTA_UPDATER := true BOARD_BUILD_SYSTEM_ROOT_IMAGE := true TARGET_NO_RECOVERY := true BOARD_USES_RECOVERY_AS_BOOT := true BOARD_SYSTEMIMAGE_PARTITION_SIZE := 4294967296 BOARD_SYSTEMIMAGE_JOURNAL_SIZE := 0 BOARD_SYSTEMIMAGE_EXTFS_INODE_COUNT := 5120 BOARD_USERDATAIMAGE_PARTITION_SIZE := 10737418240 BOARD_PERSISTIMAGE_PARTITION_SIZE := 33554432 BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := ext4 BOARD_FLASH_BLOCK_SIZE := 131072 # (BOARD_KERNEL_PAGESIZE * 64) BOARD_VENDORIMAGE_PARTITION_SIZE := 1073741824 BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4 TARGET_COPY_OUT_VENDOR := vendor BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true TARGET_USES_ION := true TARGET_USES_NEW_ION_API :=true TARGET_USES_HWC2 := true TARGET_USES_GRALLOC1 := true TARGET_USES_QCOM_DISPLAY_BSP := true TARGET_USES_COLOR_METADATA := true CAMERA_DAEMON_NOT_PRESENT := true BOARD_KERNEL_CMDLINE += quiet BOARD_KERNEL_CMDLINE += androidboot.hardware=mata user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 sched_enable_hmp=1 sched_enable_power_aware=1 service_locator.enable=1 swiotlb=2048 androidboot.configfs=true androidboot.usbcontroller=a800000.dwc3 BOARD_KERNEL_CMDLINE += loop.max_part=7 BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive BOARD_KERNEL_CMDLINE += firmware_class.path=/vendor/firmware_mnt/image BOARD_SECCOMP_POLICY := device/essential/mata/seccomp BOARD_EGL_CFG := device/essential/mata/egl.cfg BOARD_KERNEL_BASE := 0x00000000 BOARD_KERNEL_PAGESIZE := 4096 BOARD_KERNEL_OFFSET := 0x80000 BOARD_KERNEL_TAGS_OFFSET := 0x02500000 BOARD_RAMDISK_OFFSET := 0x02700000 BOARD_MKBOOTIMG_ARGS := --kernel_offset $(BOARD_KERNEL_OFFSET) --ramdisk_offset $(BOARD_RAMDISK_OFFSET) --tags_offset $(BOARD_KERNEL_TAGS_OFFSET) TARGET_KERNEL_ARCH := arm64 TARGET_KERNEL_HEADER_ARCH := arm64 TARGET_KERNEL_CROSS_COMPILE_PREFIX := aarch64-linux-android- TARGET_USES_UNCOMPRESSED_KERNEL := false MAX_EGL_CACHE_KEY_SIZE := 12*1024 MAX_EGL_CACHE_SIZE := 2048*1024 TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS := true MAX_VIRTUAL_DISPLAY_DIMENSION := 4096 BOARD_USES_GENERIC_AUDIO := true BOARD_QTI_CAMERA_32BIT_ONLY := true TARGET_NO_RPC := true TARGET_PLATFORM_DEVICE_BASE := /devices/soc.0/ TARGET_INIT_VENDOR_LIB := libinit_msm TARGET_INIT_COLDBOOT_TIMEOUT := 8 NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3 TARGET_KERNEL_APPEND_DTB := true TARGET_COMPILE_WITH_MSM_KERNEL := false BOARD_USES_EASEL := true #Enable PD locater/notifier TARGET_PD_SERVICE_ENABLED := true #Enable peripheral manager TARGET_PER_MGR_ENABLED := true #Enable SSC Feature TARGET_USES_SSC := true # Disable DLKM TARGET_KERNEL_DLKM_DISABLE := true #Add NON-HLOS files for ota upgrade ADD_RADIO_FILES := true #Enable CPUSets ENABLE_CPUSETS := true # We are not using WiPower BOARD_USES_WIPOWER := false BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/essential/mata TARGET_RECOVERY_FSTAB := device/essential/mata/fstab.mata BOARD_SEPOLICY_DIRS := device/essential/mata/sepolicy # Override TARGET_BOOTLOADER_BOARD_NAME := Mata # List of partitions to be updated during A/B AB_OTA_PARTITIONS := boot system vendor # Install odex files into the other system image BOARD_USES_SYSTEM_OTHER_ODEX := true BOARD_ROOT_EXTRA_SYMLINKS := /vendor/lib/dsp:/dsp BOARD_ROOT_EXTRA_SYMLINKS += /vendor/firmware_mnt:/firmware BOARD_ROOT_EXTRA_SYMLINKS += /mnt/vendor/persist:/persist BOARD_SEPOLICY_DIRS += device/essential/mata/sepolicy/vendor BOARD_PLAT_PUBLIC_SEPOLICY_DIR := device/essential/mata/sepolicy/public BOARD_PLAT_PRIVATE_SEPOLICY_DIR := device/essential/mata/sepolicy/private INTERNAL_LOCAL_CLANG_EXCEPTION_PROJECTS := vendor/qcom/proprietary/ BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := default BOARD_VENDOR_QCOM_LOC_PDK_FEATURE_SET := true # RenderScript OVERRIDE_RS_DRIVER := libRSDriver_adreno.so # Use MKE2FS TARGET_USES_MKE2FS := true # Audio BOARD_USES_ALSA_AUDIO := true USE_XML_AUDIO_POLICY_CONF := 1 AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true AUDIO_FEATURE_ENABLED_SND_MONITOR := true AUDIO_FEATURE_ENABLED_USB_TUNNEL := true BOARD_VNDK_VERSION := current # Recovery margin TARGET_RECOVERY_UI_MARGIN_HEIGHT := 120 TARGET_RECOVERY_UI_MARGIN_WIDTH := 64 # Charger marging TARGET_HEALTHD_DRAW_SPLIT_OFFSET := 80 # Add dual interface support WIFI_HIDL_FEATURE_DUAL_INTERFACE := true # Use 64 bits version for DRM service TARGET_ENABLE_MEDIADRM_64 := true BOARD_PREBUILT_VENDORIMAGE := device/essential/mata/vendor-QQ1A.200105.088.img BUILD_BROKEN_USES_BUILD_COPY_HEADERS := true ================================================ FILE: Image.gz-dtb ================================================ [File too large to display: 13.5 MB] ================================================ FILE: README.md ================================================ # Build AOSP code The provided vendor images was tested with 11.0.0_r3 ## Getting the sources ### To build latest Android 11 AOSP tag * Clone the latest AOSP code (For example android-11.0.0_r3 tag) ``` repo init -u https://android.googlesource.com/platform/manifest -b android-11.0.0_r3 ``` * Add Essential mata repo (master branch) ``` mkdir -p device/essential cd device/essential git clone https://github.com/EssentialOpenSource/device_essential_mata.git mata ``` * Revert https://android.googlesource.com/platform/system/sepolicy/+/61178550157fce18861ddd59fa9a6a29cf06c583%5E%21/#F2 BOARD_SEPOLICY_VERS := 29.0 doesn't build and without it the wrong mapping (1000) is created and 29.0 one is empty. For now, reverting this patch for the AOSP build (OK with GSI) ## Building * Download prebuilt [vendor-QQ1A.200105.088.img](https://storage.googleapis.com/essential-static/vendor-QQ1A.200105.088.zip) * Extract in device/essential/mata * Start a build ``` source build/envsetup.sh lunch mata-userdebug make -j16 ``` * Flash boot, system and vendor (unlock device only) # To flash GSI * Get the latest [GSI for Android 11/Android 10](https://developer.android.com/topic/generic-system-image/releases) * Tested with QJR1.191112.001 and RPP1.200123.016.A1 * Flash the userdebug open source build (see above) * Disable verity (GSI image don't have any verity metadata) ``` adb root adb disable-verity ``` * Flash GSI system image ``` fastboot flash system_a system.img ``` * Erase userdata ``` fastboot format userdata ``` * Reboot ================================================ FILE: Vendor_2e17_Product_a001.kl ================================================ # Function A key 164 MEDIA_PLAY_PAUSE # Function B key 115 VOLUME_UP # Function C key 114 VOLUME_DOWN # Function D key 582 VOICE_ASSIST ================================================ FILE: WCNSS_qcom_cfg.ini ================================================ # This file allows user to override the factory # defaults for the WLAN Driver # Enable IMPS or not gEnableImps=1 # Enable BMPS or not gEnableBmps=1 # Phy Mode (auto, b, g, n, etc) # Valid values are 0-9, with 0 = Auto, 4 = 11n, 9 = 11ac # 1 = 11abg, 2 = 11b, 3 = 11g, 5 = 11g only, 6 = 11n only # 7 = 11b only 8 = 11ac only. gDot11Mode=0 # Assigned MAC Addresses - This will be used until NV items are in place # Each byte of MAC address is represented in Hex format as XX Intf0MacAddress=000AF58989FF Intf1MacAddress=000AF58989FE Intf2MacAddress=000AF58989FD Intf3MacAddress=000AF58989FC # UAPSD service interval for VO,VI, BE, BK traffic InfraUapsdVoSrvIntv=0 InfraUapsdViSrvIntv=0 InfraUapsdBeSrvIntv=0 InfraUapsdBkSrvIntv=0 # Flag to allow STA send AddTspec even when ACM is Off gAddTSWhenACMIsOff=1 #Flag to enable HostARPOffload feature or not hostArpOffload=1 #Flag to enable HostNSOffload feature or not hostNSOffload=1 # 802.11n Protection flag gEnableApProt=1 #Enable OBSS protection gEnableApOBSSProt=1 #Enable/Disable UAPSD for SoftAP gEnableApUapsd=1 # Fixed Rate gFixedRate=0 # Maximum Tx power # gTxPowerCap=30 # Fragmentation Threshold # gFragmentationThreshold=2346 # RTS threshold RTSThreshold=1048576 # Intra-BSS forward gDisableIntraBssFwd=0 # WMM Enable/Disable WmmIsEnabled=0 # 802.11d support g11dSupportEnabled=0 # 802.11h support g11hSupportEnabled=1 # DFS Master Capability gEnableDFSMasterCap=1 # ESE Support and fast transition EseEnabled=0 ImplicitQosIsEnabled=0 gNeighborScanTimerPeriod=200 gNeighborLookupThreshold=76 gNeighborScanChannelMinTime=20 gNeighborScanChannelMaxTime=30 gMaxNeighborReqTries=3 # Legacy (non-ESE, non-802.11r) Fast Roaming Support # To enable, set FastRoamEnabled=1 # To disable, set FastRoamEnabled=0 FastRoamEnabled=1 # Check if the AP to which we are roaming is better than current AP in # terms of RSSI. Checking is disabled if set to Zero.Otherwise it will # use this value as to how better the RSSI of the new/roamable AP should # be for roaming RoamRssiDiff=3 # To enable, set gRoamIntraBand=1 (Roaming within band) # To disable, set gRoamIntraBand=0 (Roaming across band) gRoamIntraBand=0 #Short Guard Interval Enable/disable gShortGI20Mhz=1 gShortGI40Mhz=1 #Auto Shutdown Value in seconds. A value of 0 means Auto shutoff is disabled gAPAutoShutOff=0 #Auto Shutdown wlan : Value in Seconds. 0 means disabled. Max 1 day = 86400 sec gWlanAutoShutdown = 0 # Not used. gApAutoChannelSelection=0 #Preferred band (both or 2.4 only or 5 only) BandCapability=0 #Channel Bonding gChannelBondingMode5GHz=1 #Say gGoKeepAlivePeriod(5 seconds) and gGoLinkMonitorPeriod(10 seconds). #For every 10 seconds DUT send Qos Null frame(i.e., Keep Alive frame if link #is idle for last 10 seconds.) For both active and power save clients. #Power save clients: DUT set TIM bit from 10th second onwards and till client #honors TIM bit. If doesn't honor for 5 seconds then DUT remove client. #Active clients: DUT send Qos Null frame for 10th seconds onwards if it is not #success still we try on 11th second if not tries on 12th and so on till 15th #second. Hence before disconnection DUT will send 5 NULL frames. Hence in any #case DUT will detect client got removed in (10+5) seconds. #i.e., (gGoKeepAlivePeriod + gGoLinkMonitorPeriod).. #gGoLinkMonitorPeriod/ gApLinkMonitorPeriod is period where link is idle and #it is period where we send NULL frame. #gApLinkMonitorPeriod = 10 #gGoLinkMonitorPeriod = 10 #gGoKeepAlivePeriod/gApKeepAlivePeriod is time to spend to check whether frame #are succeed to send or not. Hence total effective detection time is # (gGoLinkMonitorPeriod + gGoKeepAlivePeriod) / # (gApLinkMonitorPeriod + gApKeepAlivePeriod) gGoKeepAlivePeriod = 20 gApKeepAlivePeriod = 20 #If set will start with active scan after driver load, otherwise will start with #passive scan to find out the domain gEnableBypass11d=1 #If set to 0, will not scan DFS channels gEnableDFSChnlScan=1 # Enable DFS channel roam # 0: DISABLE, 1: ENABLED_NORMAL, 2: ENABLED_ACTIVE gAllowDFSChannelRoam=1 gVhtChannelWidth=2 #Data Inactivity Timeout when in powersave (in ms) gDataInactivityTimeout=200 # Set txchainmask and rxchainmask # These parameters are used only if gEnable2x2 is 0 # Valid values are 1,2 # Set gSetTxChainmask1x1=1 or gSetRxChainmask1x1=1 to select chain0. # Set gSetTxChainmask1x1=2 or gSetRxChainmask1x1=2 to select chain1. gSetTxChainmask1x1=1 gSetRxChainmask1x1=1 # Scan Timing Parameters # gPassiveMaxChannelTime=110 # gPassiveMinChannelTime=60 gActiveMaxChannelTime=40 gActiveMinChannelTime=20 #If set to 0, MCC is not allowed. gEnableMCCMode=1 # MCC to SCC Switch mode: # 0-Disable # 1-Enable # 2-Force SCC if same band, with SAP restart # 3-Force SCC if same band, without SAP restart by sending (E)CSA # 4-Force SCC if same band (or) use SAP mandatory channel for DBS, # without SAP restart by sending (E)CSA gWlanMccToSccSwitchMode = 0 # 1=enable STBC; 0=disable STBC gEnableRXSTBC=1 # 1=enable tx STBC; 0=disable gEnableTXSTBC=1 # 1=enable rx LDPC; 0=disable gEnableRXLDPC=1 #Enable/Disable Tx beamforming gTxBFEnable=1 #Enable/Disable Tx beamformee in SAP mode gEnableTxBFeeSAP=1 # Enable Tx beamforming in VHT20MHz # Valid values are 0,1. If commented out, the default value is 0. # 0=disable, 1=enable gEnableTxBFin20MHz=1 #Enable/Disable SU Tx beamformer support. gEnableTxSUBeamformer=1 gEnableFastRoamInConcurrency=1 #Enable/Disable PER based roaming gper_roam_enabled=0 #Maxium Channel time in msec gMaxMediumTime = 6000 # 802.11K support gRrmEnable=1 #Enable Power Save offload gEnablePowerSaveOffload=2 #Enable firmware uart print gEnablefwprint=0 # Firmware log mode # Valid values are 0,1,2 # 0=Disable, 1=WMI, 2=DIAG gEnablefwlog=1 # Maximum Receive AMPDU size (VHT only. Valid values: # 0->8k 1->16k 2->32k 3->64k 4->128k) gVhtAmpduLenExponent=7 # Maximum MPDU length (VHT only. Valid values: # 0->3895 octets, 1->7991 octets, 2->11454 octets) gVhtMpduLen=2 # Maximum number of wow filters required #gMaxWoWFilters=22 # WOW Enable/Disable. # 0 - Disable both magic pattern match and pattern byte match. # 1 - Enable magic pattern match on all interfaces. # 2 - Enable pattern byte match on all interfaces. # 3 - Enable both magic pattern and pattern byte match on all interfaces. # Default value of gEnableWoW is 3. # gEnableWoW=0 # Enable or Disable MCC Adaptive Scheduler at the FW # 1=Enable (default), 0=Disable gEnableMCCAdaptiveScheduler=1 #Enable or Disable p2p device address administered isP2pDeviceAddrAdministrated=0 # Set Thermal Power limit TxPower2g=10 TxPower5g=10 # Remove Overlap channel restriction gEnableOverLapCh=0 #Enable VHT on 2.4Ghz gEnableVhtFor24GHzBand=1 #Maximum number of offload peers supported # gMaxOffloadPeers=2 # controlling the following offload patterns # through ini parameter. Default value is 1 # to disable set it to zero. ssdp = 0 # Setup multicast pattern for mDNS 224.0.0.251, # SSDP 239.255.255.250 and LLMNR 224.0.0.252 ssdp=0 #Enable Memory Deep Sleep gEnableMemDeepSleep=1 # Regulatory Setting; 0=STRICT; 1=CUSTOM gRegulatoryChangeCountry=1 # RA filtering rate limit param, the current value would not # help if the lifetime in RA is less than 3*60=3min. Then # we need to change it, though it is uncommon. # gRAFilterEnable=0 gRArateLimitInterval=600 # Maximum number of concurrent connections gMaxConcurrentActiveSessions=3 # Disable/Enable GreenAP # 0 to disable, 1 to enable, default: 1 gEnableGreenAp=0 # Radar PRI multiplier gDFSradarMappingPriMultiplier=4 gPNOScanSupport=1 #Enable/Disable LPASS support # 0 to disable, 1 to enable gEnableLpassSupport=1 # Whether userspace country code setting shld have priority gCountryCodePriority=1 # Enable(1)/Disable(0) SIFS burst gEnableSifsBurst=1 # Enable or Disable Multi-user MIMO # 1=Enable (default), 0=Disable gEnableMuBformee=1 # Enable/Disable channel avoidance for SAP in SCC scenario # 0 - disable # 1 - enable gSapSccChanAvoidance=0 # Inactivity time (in ms) to end TX Service Period while in IBSS power save mode gIbssTxSpEndInactivityTime=10 # Enable support for TDLS # 0 - disable # 1 - enable gEnableTDLSSupport=1 # Enable support for Implicit Trigger of TDLS. That is, wlan driver shall # initiate TDLS Discovery towards a peer whenever setup criteria (throughput # and RSSI) is met and then will initiate teardown when teardown criteria # (idle packet count and RSSI) is met. # 0 - disable # 1 - enable gEnableTDLSImplicitTrigger=1 # Enable TDLS External Control. That is, user space application has to # first configure a peer MAC in wlan driver towards which TDLS is desired. # Device will establish TDLS only towards those configured peers whenever # TDLS criteria (throughput and RSSI threshold) is met and teardown TDLS # when teardown criteria (idle packet count and RSSI) is met. However, # device will accept TDLS connection if it is initiated from any other peer, # even if that peer is not configured. # 0 - disable # 1 - enable # For TDLS External Control, Implicit Trigger must also be enabled. gTDLSExternalControl=1 # Enable support for TDLS off-channel operation # 0 - disable # 1 - enable # TDLS off-channel operation will be invoked when there is only one # TDLS connection. gEnableTDLSOffChannel=1 # Enable or Disable Random MAC (Spoofing) # 1=Enable, 0=Disable (default) gEnableMacAddrSpoof=1 ################ Datapath feature set Begin ################ # Bus bandwidth threshold values in terms of number of packets gBusBandwidthHighThreshold=2000 gBusBandwidthMediumThreshold=500 gBusBandwidthLowThreshold=150 # Bus bandwidth compute timeout value in ms gBusBandwidthComputeInterval=100 # VHT Tx/Rx MCS values # Valid values are 0,1,2. If commented out, the default value is 0. # 0=MCS0-7, 1=MCS0-8, 2=MCS0-9 gVhtRxMCS=2 gVhtTxMCS=2 # VHT Tx/Rx MCS values for 2x2 # Valid values are 0,1,2. If commented out, the default value is 0. # 0=MCS0-7, 1=MCS0-8, 2=MCS0-9 gEnable2x2=1 gVhtRxMCS2x2=2 gVhtTxMCS2x2=2 #IPA config is a bit mask and following are the configurations. #bit0 IPA Enable #bit1 IPA PRE Filter enable #bit2 IPv6 enable #bit3 IPA Resource Manager (RM) enable #bit4 IPA Clock scaling enable #bit5 IPA uC ENABLE #bit6 IPA uC STA ENABLE #bit8 IPA Real Time Debugging gIPAConfig=0x7d gIPADescSize=800 # Enable/Disable RX full reorder offload gReorderOffloadSupported=1 # Enable CE classification # 1 - enable(default) 0 - disable gCEClassifyEnable=1 # Enable Rx handling options # Rx_thread=1 RPS=2(default for ROME) NAPI=4(default for ihelium) rx_mode=4 # Enable(Tx) fastpath for data traffic. # 1 - enable(default) 0 - disable gEnableFastPath=1 # This flag enables IP, TCP and UDP checksum offload # 1 - enable(default) 0 - disable gEnableIpTcpUdpChecksumOffload=1 # Enable TCP Segmentation Offload # 1 - enable 0 - disable TSOEnable=1 # Enable Large Recieve Offload # 1 - enable(default) 0 - disable LROEnable=1 # Enable HT MPDU Density # 4 for 2 micro sec ght_mpdu_density=4 # Enable flow steering to enable multiple CEs for Rx flows. # Multiple Rx CEs<==>Multiple Rx IRQs<==>probably different CPUs. # Parallel Rx paths. # 1 - enable 0 - disable(default) gEnableFlowSteering=1 ################ Datapath feature set End ################ ################ NAN feature set start ################### # Enable NAN discovery (NAN 1.0) # 1 - enable 0 - disable(default) gEnableNanSupport=1 ################ NAN feature set end ##################### # Turn on STA + AP/STA gEnableConcurrentSTA=wlan1 adaptive_dwell_mode_enabled=1 hostscan_adaptive_dwell_mode=1 adapt_dwell_lpf_weight=80 adapt_dwell_wifi_act_threshold=10 # Enable/Disable DTIM Synth # 1- Enable DTIM Synth # 0- Disable DTIM Synth gEnableLPRx=0 ################ CR for roam reduction ################### groam_dense_rssi_thresh_offset=0 ################ CR for roam reduction ################### END # Note: Configuration parser would not read anything past the END marker ================================================ FILE: android.sofware.nfc.beam.xml ================================================ ================================================ FILE: audio/acdbdata/workspaceFile.qwsp ================================================ Z0ABAB+LCAAAAAAABADtXdlu20qavh9g3sHwA4y5yJYFOA1QZDEiIopqkpJ95oZQ25puT3zswHG6p99+SEmWyaq/9qIj2XUuDhKF/Fj1r7X8y9X10/P34sfqdl1Fq5fVyXWxXD//TKIvp4PTv/znf5ycXAVhNI7vH9bVfPXyj5+b34hfT37U//9ymtYI1fjh1/rl6enlH9Xt6uG/Vrd3fzs9OeO/9nX9uH5ePUi+9PD0N9l3JqvHu5/rF8mX7v68l3xjvZL/TPFjvfq+fiZeujoDuHAVRMX8JF3979Nzev/49Pzl1K2c0/1HchRU06Qodz/sfjp5+feP9ZfT8ub05HH1Z/2nYBElWRVm83lV/7h/uH68zObZNPv6R+fBWTZDm6dPTxohcf7PcRzX8V3vtIX8z1qE7p8ev5x6bcAacvzwdPu9gzdJvk6qchJVOSqCdD5FeQd46I7eCLeBOHsdFneo5U2VZrMMGu254mjTJKy+BsmsAxf6Ndz943j18/52eb/+15fTl+df6+6wQTQUzIou0iAQeK2eV5Lk2Iuu2hBqrMk8JvH8SA0vHUd52IVyLgTekxUD2mSC5Cv24oWO/BQlyhEoQRdWgqwE0SVomSUh2kjQ/ePfH9bp/S26ffzZAY6HrrQM1YBbZJzcCA1PT+7+XT91f5s+3f16WAsQfI8WE2gjDTScgrHjiL2IMx7FPmUYcoK1/8Aym2IfGChjFSkKMeVDyFGGqxna2AYXG586IGhoUDxUBqy1vMtW19VRjOjX6qFWi7heLT7erjHNkF9NWM04GM0wLso7QA8DlHZYv1E3qIyFrAh/YpI+KK3i6QLNQrQ8xxTNBxXt3CraMShavDxvpKfmLzbZUYuXl20OW08EeSK6egxA9fCtehyDelg/JO6HXk1JhJuSoCX3I5opkdhUbw6a0nASdCc9pBzJuPwN9WJaJg0eoXG+G/ewb5SaazqvUQsUVRGKg3qgXeiLMWXO3Q8y7NZyTiwf4kv5owkFo6Xqsqwds3asRzuWZtFiikC90DvH+et+kVDN82zpYTo3tDpnde5ddW4H6GPM8HUBBxigxvaEri/usKUlF7I7lGPaUFTjPAuiIonQCWYyLq3JsCbjXU1GI5dticRk/rJzAvQxdHJ/rbPddzR3S8uuyfTPlXce9ipP4Cqvwug9csZHfJuXVpttMrH+G9kLi+O13NurPIKpzfFB68zPHqOCukHG2mxMWYeartN8oE3B2fpfwd3d+m43XnVTu2eQ04LvwNWAUVAG1TJB19g/1P+UzEqUx0GITpLq/q6FTcQcNPSAga7ONiMWsfC4kI06QrafwzgrJyZmMSBsLevxkUdot/akaf6pL74NPJkZhwNf7vFBHwSiOt3ehBtJzdonzlHZRDIvRZSgoP4UxxlKTdm5ND5lkRVQa6Fhdv4j8rzNhKCDq7GehHzoSrFw6GqxUNNVVriz9Kyz/JzO0voCu6Iw4SzBbfeh+MuRE8o9HtkVhf6Uj3lFoedfXcy7+ta7QoeNh+JawwFgHqxrta7Vulbu49a18h+3rpXjWq/OmlTRt7+2EkdzKHE0N5E4mh9M4mhOTxz1wdHy7wrn4+5ta+iJXO7lzb1lhMAFh/S5/xaSsO/NUcPfV/eP1d36x/rxbvX48uX0j/VPo8l7IP7vjMzMWamdA5DHrKBvy+PD5PEcBd9SVDMaYvPQsvmDsHmnys2NK8HnofMR1LmaohgLHnfODTK7+URe8wj/Bo3hH1yg3s4PthFDHkaWyK4CuJzGaTY+TFa3lgEUZqMPYD8ssyFHQWF4/AEY/mEcxpFIVhpOmpA0aJ05PrwNbpEXVZkvUJWiKAmq12c6+NHIoQy8+1XqB4rCj2DooacBHRUujOr7NEoLoIqn6sljz6eLopqgIJpPslnXRFyOYO/CX0osk7xcBNPkvzGxuAzORYwOWqJ8jL0oYq3GQVFU4ywrSuxl9dDBDXmKZquGT2UEW+KDJQ7XAUhQJSprmZnfAAZlAG9cOVmjLWdDDYSHd0p2Wcs9/D84jxQVXhUuijJLCVvp+qStxK5AT1b/vP1ZrZ7Xqx0eVwJqoxxg++7hefsLXGKEkzS5wSjgD9zOUbkZkkoBgqItMS1QIt/eVxMcyk66PTE1YI5KSsy7yOKyWW7Pm1XRIu0ScRwjOhs0t28t/XQ3d/2OY1TSe2GorpSZ45txBaIbTSlx1Tq/IWXCtTLx2WSibSk2PxbzSf3LXjAcx7tkG4t3p5O6EYXguvPd3RxfWG9mzP3E7Vl4+EWipDBxSG2Cqp/aBMUhpgmeqSVJNpv+0cbfWhbvQkMYwNHKxtPgRNGJsaynmQdFd4a+zgzDOOxWnhr5PjTF3ETc2cgHIsNYjxOnBuzHzcdrxklelYtZMvta/3FaYuI/8sAYPTO08qRi9EaeVIzeyLMxegKPa8XoKXm0YpKhcXaD2bChqobP8yx8rc2URDj6Tm0ue+TQyCcKBrAfJ06w2I/LpQ75cvz3Af6zHpcKOx5BYcd9RQ/ibSfmUm0n5vhZaHgBF9HhH1n2ebnyUm8d/6yi9f+sfj28dNfsSL6gqLHxSgR1zqWCOllskTxJ/u1skbzy7X+88/Xq+5/rl/Vz93LuEg5ENX+rCG8MXuPqsHfx6zDp2TbXqM2MifIe0SV8AWdepN5pws2tF3bFBF+KvtcMs/rFoqjQX8GLs7H6TdY8R2ly83YB2nX7EaIFU/GuszZriiyOp1kQVSiOUVi2dyROXP9n9JjvwM93RFgoseVm3qG++8UO7U5WYiCsq2sJGN1DEZzpVTIryqCpk4gnuztSJxJCq65t4R+BZl/7ilczPGQhHjqUNRdTYW1DnNZEP3AVLYxstiGObYjz6TXj8CuDHk4Bb9sQxyqabYhzOPWrMfWwDXGOWD2sHzqohji2kYvVP6t/tJHYRi5W5z6FztlGLkexELaNXKzJOBST8QkbudgWHB9a52wLDmHdEIrjaV30seN4tg/m7Is+mZv5PSAUaRMP4eTVC4aW5ntNWIZVvkSYbhEBpPDL+LUtQuxU4P2LxfxbDjF9JMv0PSIYEY/iQBmQjPVH6ELe5OR0qSRigOEXSTt6aST/Nqeb1kA+OySnmVbUBIyYHC5pgs3kI+d0E2ymyMf+A9dLjN6CkhATdzhjDYG8XpKegZ1iXr9KqFiMV+yXWHi82TNy4RFIh+IJje6ASasnG8evdmbNUO9Ws3croeWZjbtDZVev7Pd2KSeYHnm09Xa/yw5Fq4adP1Hibfu0aiQBB9awWcPG+IA1bJ/csDH2wtuslLa12/zCtYnbTITW4Jr/2rmoA5G9ajHNrstg+g3jF5EcSZGcMo1r8SlRWCYZRihE5I7BRwtoFlbhDDs7ctkDeDuOKWtCptU0SRM86SF2z3XY0soAixEv9SvehyCDJd9cLx6Dh36YglJwKZDwOSIzDaPGy9OuafbwlFCxjIntyOLxVk3meVbuh4mroXceKo20A770qnJSLZPmb9gELjhFvAAodEOBitVpkQZRVStTrb3XKAd55iFXjWeT6wa9O1SfvV5pXiuyxSyqwmlQFEmchAGho54X6c13k2nCnLBC3mPvIw+C2uSApRm9c1hPeeNtELtALq7aqnmOjcpyjU/ONj6hyvnoDjeOhVRcoTxkjFrIjUvBMVWVMRc2TAr1sQ2MWsjrTIuUxfX6n+ksr/WOJsdMljegb8TabjGCb2gxx2bphY68njTgbEwVle4MeTGddz7xit9UBQgcp5MPxMiyw0jPmQc2CUci1E4sFWruNzOs1zhFKZQJJR00zoqKrb+OrX+1gpqkI3ZZ+3iVsXVIvv3LhrKvv+xlqfUjYGXekspZnYLoM+naFIXsWGhq4CBLeo+gc6Vx0vsK8rZFJBbc3o/zEq35m/znWb325NEolaw4b0ln5oPTABtWq0lLQe03JBDma+Xls8jLm7vRy5M1GehiMsxFMcil5xAXcwEurPAWjFz8OBTDYS2Gg1qUQlpkVEA3I9bqwCHpgGGxVQ6qPAQtoDJTJftVyqtoZb5ahTokhdLLdv3svkUrx9UqwiEpgvUs4sZCJZ9VeJu7rYMdToLuZIeUIxGXt8VdTMukQSM0y3fx4+B3O/gR7xRFPyLuIxNY1ySpuSBrpayVMmilhLN+ZVy9fsav1S2rWxq6pZzhy4STz++lyJludu8hGBTVpb9WVq81C9YsaJgFE1m8R6J7+wsSRvdJxT2CvQajEIbaBuPobsI0Mr7tQc0h2WOtLO/PeWBJ9jTEDkLgRgA8s8lvVUy+o9ewFwA01q5XPAqA31Tw3Q6SclZMiEBDCsvVA+XqvlkExFi4/oFl7DEwdqeujcshODt0jltlqymKsZNsRzGZjvKBvOYL/gUaiz+oAGF9ibF10NARiJs/YBHq1zjgtBofGnMLvBU5wV44meNYLIRlb9v4U1gcHzWLP4QTOHhJapqc1XtqaHUoUHTh/YZa5EVV5ot6U4yiJIAz+6IRXCSsk19Ohy8KP4KBh54ycFS4MKbv0+jLxWzatb21MOugXo4EkvQArjEbbPGUn9IOi/MaqwWWgoBsiFI02x18CiPYDh4gSTimV5gWUVnLx/wGUOoBvOVjBoS0TDz1vBzeb9jFIvXc+4C8gEY723e0/5qNbN99pBq9Uvu5BxFqGyo7S70eqccwUbXeqD3NTKYvqvgM9XuiGu7YaL6Ma4eYchWV4Fe55Y/g1zQKDoF4ymWdYDjV4q0wGrfSE/yasUpdMLxaWTGKAJkqskbhrqkSazC8sYplMDyvch2FPUoVRWkj4Jbdw1/kFQ0UjhXQLNIqO64DJaeOJBy3cpk0Mz1bxJ7tgIaXNezeFJ22oh/TqFdodvGgZLMUSrAatFlq5Vet2bJmy5qtT2e25KqkUgYpVCOVwm6JCqlwaJ5QfVRKGKNwdVSRAwEjRU6NlzjtHoXwC5yKz9RccVNijKqlTblAYoVNxWlgqqgpMXCRkqbES7JlQeXmaaSY6TuOWbOMKTFSXhFTwZHp1yLtvRIpySTxip7iVDBXg7Tn8RqoJdpvJdHO/CXriIpfjBZeFS6KMksJOrg+eSmP1Q9lH85HhRtgYZjD8zYa53A/nKTJDebB/cG+uto4KydGbggl4MD7WeEJgRerwm9TYiglRs+5KRYeSZHFZRNx1dSdnS7SLknGMaINSiter7UBd93tilZZMvUYoScEpphgWLLpF/P6vMQCa0lOupaTB81JU/WmRb0b5too1aXFRLDZFlRZHE+zerWL4rjekxatITtxHMfK4meYdaqGVfVuXFhEmaFf7+rQaYFkwoNgRdm9k+HA2Vwls6IMmioP3UXtyHVMu9LNj8V8Uv/S1tvL3+dN9Zc1RrXmMI16l2M74biAh6O8yorbbPDwNMejEomP6djjEJMAz4R5yGbTP9rYW3vgXSgzHxznfo/bNWktpBorCsqg9jXoukuKs803lCaXB0V3Xr7GvKgLK7nJdX6u/yGZ1VoYByE6Sar7u5bMYz2qWA+PHKLxGOvhCH/46gwaHk55kCxxklflYpbMvtZ/nOJH7iPPhejT7e6jQJ2R50lM2CM6q7EeJjsIqlMnjMNuTceR7/dDEJ8YNuthojch6+ELNYIoeKJikqFxdoPZoqGazm6W/ruidUmEY+/mdtmT+o78kQyJiXZurIfHMg/LGAafMAysh5HMw3HPMtRu+bKpFdQ5InU7xwwSW9M9OFgyh5ScUlePh66E2R82tzPGbJXIeqWdlmVOV/D6k1rToCwff7+TDh2T3KLX1upBKkNVH0BTJ2otrV4GL2GpQtJSMR4ekA0ptcgCFivrgyQDieVTOJBYPoUDk8snwpBvrEXclzYPZDwr0Dy9f5dW4U7NU3ZqH8nc222Z9YLWC3IGb72g9YJCYz90L+hiPtC3PtD6QOsDrQ/kD976wCP2gRhBgkNwgOGAMG+KDvDth05z7vE0C79hnbnx0NimeFdTpL7Eqwt4Dnb3dkYHAXMIQIljocAB1aQP5cCIRZC343KFYGkR+NJA3GBk8IqHhSiTHiHNFZmUCTnwrQdi9wKjaCkbkxotpIRGr58nxyherTwFNFpdPAUoRqUXJapJ3XuwoTRW2jRgbn4sTEFO1h4UYbQZcDFNsHB2T5WurTZ106BEsxArr3eBlNjfgk0XZdcTDIeOEmaEpgE2uiE4bT4SnA9AMp2PtCvnNs+KsjYSGKaa6uwxN8V/MMhQCZIVakg6HC4cMwhTAY8WSimphcLRpqqmUWZfy9FjmcBLpS/IxD4xkWgRfwp85sdHqnpUMsZPlcfCm3SOFEJxfypjkttRc/SMHU6oMDzpXTMXTny3yYaS2qXRoLCONB08hBzIQjEGxm3fLrX2Z9bCkGKlQKa9Gh61ToOUp2UXW1AbGaWamhQYu02UlMiy63KojQpsOKU2KrDyiBrhwaJXUq5EuLaDMjMpjaKkaCfQDFCNF2CRGbWpgv3A1GYJ9v5SmyBYO0Zqgjtr0cRcfkUzlCf4NGX3jQJtv9Tmyqi/oqZe9PI2ihYcqpikJm1g0zopsnV6PzcNWukGIHZkFUygC68WHtCGV3FVI3P/yvcSy/NNr70ixcbXFsFLmfm+IkY4YlsIRzKIYHc8NYUDCy+pyTO1MJCamPCKBSkaLHajdDVQzU7QtDWxbpdb2uoYLDGn4FDeDE+9rsWXtbELHgUIcV692yU+Zbisn8YSGSw2prBP3J1yNOETbTzXjQRvhdoo2wwNDMcXwinSLCsnr0BhNivz7nLDdTvOV/xsYx4sCtQcKTfADHwPPxWkoKbjSdh9sbPbGQgM7LpWoy0v64HEXffr+kOFo43mugm43PM2PatE2BglFIQAvuJjDoefrC+1oRaqbCOl4uPxNUR73wlAg86c7LIoXi1QuLmHBYTLd0fgvocNPA7KRjGTMsu7YJHSFReW65Qi7BzSN4E6xVE9pYM6zbwsMZv3eiPZIa53rnqwq5rlyLmwEc8O3ANdnRERAW+xCZtfd49endU+fb7949dFUkWrl9Xmn67Orp+evxc/VrfrzY9/+X9ObEsvZ0ABAA== ================================================ FILE: audio/audio_platform_info_mata.xml ================================================ ================================================ FILE: audio/audio_policy_configuration.xml ================================================ Speaker Earpiece Telephony Tx Built-In Mic Built-In Back Mic Telephony Rx Speaker ================================================ FILE: audio/audio_policy_volumes.xml ================================================ 0,-1800 20,-1200 60,-600 100,0 0,-2800 40,-2000 70,-1500 100,0 0,-1800 20,-1200 60,-600 100,0 0,-1800 20,-1200 60,-600 100,0 1,-4950 33,-3350 66,-1700 100,0 1,-2400 33,-1800 66,-1200 100,-600 1,-4950 33,-3350 66,-1700 100,0 1,-4950 33,-3350 66,-1700 100,0 1,-4950 33,-3350 66,-1700 100,0 1,-4200 40,-2700 60,-1700 100,0 1,-4950 33,-3350 66,-1700 100,0 1,-4950 33,-3350 66,-1700 100,0 1,-5000 20,-4000 60,-2000 100,0 1,-6500 30,-4500 91,-1500 100,0 1,-5000 20,-4000 60,-2000 100,0 1,-6000 20,-5000 60,-3000 100,-1000 1,-4950 33,-3350 66,-1700 100,0 1,-4200 40,-2700 60,-1700 100,0 1,-4950 33,-3350 66,-1700 100,0 1,-4950 33,-3350 66,-1700 100,0 1,-4950 33,-3350 66,-1700 100,0 1,-4200 40,-2700 60,-1700 100,0 1,-4950 33,-3350 66,-1700 100,0 1,-4950 33,-3350 66,-1700 100,0 0,-4200 33,-2800 66,-1400 100,0 0,-2400 33,-1600 66,-800 100,0 0,-4200 33,-2800 66,-1400 100,0 1,-4950 33,-3350 66,-1700 100,0 1,-3200 33,-2600 66,-2000 100,-1200 1,-4950 33,-3350 66,-1700 100,0 1,-3000 33,-2600 66,-2200 100,-1800 1,-4950 33,-3350 66,-1700 100,0 1,-3000 33,-2600 66,-2200 100,-1800 ================================================ FILE: audio/default_volume_tables.xml ================================================ 0,0 100,0 0,-9600 100,-9600 1,-2400 33,-1800 66,-1200 100,-600 1,-7800 40,-4000 91,-1000 100,0 1,-5000 20,-4000 60,-2000 100,0 1,-7800 40,-4000 91,-1000 100,0 1,-5000 20,-4000 60,-2000 100,0 1,-7800 40,-4000 91,-1000 100,0 ================================================ FILE: audio/mixer_paths_tasha_mata.xml ================================================ ================================================ FILE: audio/msm8998.mk ================================================ BOARD_USES_ALSA_AUDIO := true # Default AOSP build USE_XML_AUDIO_POLICY_CONF := 1 AUDIO_FEATURE_ENABLED_COMPRESS_VOIP := true BOARD_SUPPORTS_SOUND_TRIGGER := true AUDIO_USE_LL_AS_PRIMARY_OUTPUT := true AUDIO_FEATURE_ENABLED_VBAT_MONITOR := true AUDIO_FEATURE_ENABLED_ANC_HEADSET := true AUDIO_FEATURE_ENABLED_CUSTOMSTEREO := true AUDIO_FEATURE_ENABLED_FLUENCE := true AUDIO_FEATURE_ENABLED_HDMI_EDID := true AUDIO_FEATURE_ENABLED_HDMI_PASSTHROUGH := true AUDIO_FEATURE_ENABLED_DISPLAY_PORT := true AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := false AUDIO_FEATURE_ENABLED_HFP := true AUDIO_FEATURE_ENABLED_INCALL_MUSIC := false AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true AUDIO_FEATURE_ENABLED_KPI_OPTIMIZE := true AUDIO_FEATURE_ENABLED_ACDB_LICENSE := true AUDIO_FEATURE_ENABLED_DEV_ARBI := false MM_AUDIO_ENABLED_FTM := true TARGET_USES_QCOM_MM_AUDIO := true AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true AUDIO_FEATURE_ENABLED_GEF_SUPPORT := true BOARD_SUPPORTS_QAHW := true AUDIO_FEATURE_ENABLED_RAS := true AUDIO_FEATURE_ENABLED_DYNAMIC_LOG := true AUDIO_FEATURE_ENABLED_SND_MONITOR := true AUDIO_FEATURE_ENABLED_PROXY_DEVICE := true AUDIO_FEATURE_ENABLED_USB_TUNNEL_AUDIO := true ##AUDIO_FEATURE_FLAGS #XML Audio configuration files ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1) PRODUCT_COPY_FILES += \ $(TOPDIR)frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \ $(TOPDIR)frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \ $(TOPDIR)frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml endif # Reduce client buffer size for fast audio output tracks PRODUCT_PROPERTY_OVERRIDES += \ af.fast_track_multiplier=1 # Set ADM buffering for low latency usecase PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.adm.buffering.ms=3 # Low latency audio buffer size in frames PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio_hal.period_size=192 ##fluencetype can be "fluence" or "fluencepro" or "none" PRODUCT_PROPERTY_OVERRIDES += \ ro.qc.sdk.audio.fluencetype=fluencepro \ persist.audio.fluence.voicecall=true \ persist.audio.fluence.voicecomm=true \ persist.audio.fluence.voicerec=false \ persist.audio.fluence.speaker=true \ #disable tunnel encoding PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.tunnel.encode=false #Disable RAS Feature by default PRODUCT_PROPERTY_OVERRIDES += \ persist.vendor.audio.ras.enabled=false #Buffer size in kbytes for compress offload playback PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.offload.buffer.size.kb=32 #Enable audio track offload by default PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.offload.track.enable=true #Enable music through deep buffer PRODUCT_PROPERTY_OVERRIDES += \ audio.deep_buffer.media=true #enable voice path for PCM VoIP by default PRODUCT_PROPERTY_OVERRIDES += \ vendor.voice.path.for.pcm.voip=true #Enable multi channel aac through offload PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.offload.multiaac.enable=true #Enable DS2, Hardbypass feature for Dolby PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.dolby.ds2.enabled=false\ vendor.audio.dolby.ds2.hardbypass=false #Disable Multiple offload sesison PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.offload.multiple.enabled=false #Disable Compress passthrough playback PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.offload.passthrough=false #Disable surround sound recording PRODUCT_PROPERTY_OVERRIDES += \ ro.vendor.audio.sdk.ssr=false #enable dsp gapless mode by default PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.offload.gapless.enabled=true #enable pbe effects PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.safx.pbe.enabled=true #parser input buffer size(256kb) in byte stream mode PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.parser.ip.buffer.size=262144 #flac sw decoder 24 bit decode capability PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.flac.sw.decoder.24bit=true #split a2dp DSP supported encoder list PRODUCT_PROPERTY_OVERRIDES += \ persist.vendor.bt.a2dp_offload_cap=sbc-aptx-aptxhd-aac #enable software decoders for ALAC and APE PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.use.sw.alac.decoder=true PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.use.sw.ape.decoder=true #enable hw aac encoder by default PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.hw.aac.encoder=true #Disable FM a2dp concurrency PRODUCT_PROPERTY_OVERRIDES += \ vendor.fm.a2dp.conc.disabled=true #audio becoming noisy intent broadcast delay PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.noisy.broadcast.delay=600 #offload pausetime out duration to 3 secs to inline with other outputs PRODUCT_PROPERTY_OVERRIDES += \ vendor.audio.offload.pstimeout.secs=3 # for HIDL related packages PRODUCT_PACKAGES += \ android.hardware.audio@2.0-service \ android.hardware.audio@2.0-impl \ android.hardware.audio.effect@2.0-impl \ android.hardware.soundtrigger@2.0-impl ================================================ FILE: audio/smartamp/TFA9891.cnt_preformat.ini ================================================ [system] customer=FIH application=speaker type=mono device=left [left] bus=0 dev=0x34 _000DCCV=1 _001CHS12=3 patch=TFA9891_N1A_11_1_31_NL3_HQ.patch config=TFA9891N1A_Dec2015.config speaker=TFA9891.speaker &002profile=music &003profile=voice &004profile=ringtone &005profile=bypass [music] _006I2SDOE=0 _007DOLS=3 _008CHSA=2 _009BSSBY=0 vstep=T9891_mu.vstep drc=T9891_mu.drc filter[10]=lowpass,1400.0,0.8,1.3 filter[11]=peak,900.0,1.0,-5.0 filter[12]=lowshelf,500.0,0.7,-1.8 [voice] _010I2SDOE=1 _011DOLS=2 _012CHSA=2 _013BSSBY=0 vstep=T9891_vo.vstep drc=T9891_vo.drc filter[10]=lowpass,1400.0,0.8,1.3 filter[11]=peak,900.0,1.0,-5.0 filter[12]=lowshelf,500.0,0.7,-1.8 [ringtone] _014I2SDOE=0 _015DOLS=3 _016CHSA=2 _017BSSBY=0 vstep=T9891_rt.vstep drc=T9891_rt.drc filter[10]=lowpass,1400.0,0.8,1.3 filter[11]=peak,900.0,1.0,-5.0 filter[12]=lowshelf,500.0,0.7,-1.8 [bypass] _018CHSA=0 _019BSSBY=1 ================================================ FILE: audio/smartamp/TFA9891.ini ================================================ [system] customer=FIH application=speaker type=mono device=left [left] bus=0 dev=0x34 DCCV=1 CHS12=3 patch=TFA9891_N1A_11_1_31_NL3_HQ.patch config=TFA9891N1A_Dec2015.config speaker=TFA9891.speaker profile=music profile=voice profile=ringtone profile=bypass [music] I2SDOE=0 DOLS=3 CHSA=2 BSSBY=0 vstep=T9891_mu.vstep drc=T9891_mu.drc filter[10]=lowpass,1400.0,0.8,1.3 filter[11]=peak,900.0,1.0,-5.0 filter[12]=lowshelf,500.0,0.7,-1.8 [voice] I2SDOE=1 DOLS=2 CHSA=2 BSSBY=0 vstep=T9891_vo.vstep drc=T9891_vo.drc filter[10]=lowpass,1400.0,0.8,1.3 filter[11]=peak,900.0,1.0,-5.0 filter[12]=lowshelf,500.0,0.7,-1.8 [ringtone] I2SDOE=0 DOLS=3 CHSA=2 BSSBY=0 vstep=T9891_rt.vstep drc=T9891_rt.drc filter[10]=lowpass,1400.0,0.8,1.3 filter[11]=peak,900.0,1.0,-5.0 filter[12]=lowshelf,500.0,0.7,-1.8 [bypass] CHSA=0 BSSBY=1 ================================================ FILE: audio/sound_trigger_mixer_paths.xml ================================================ ================================================ FILE: audio_effects.xml ================================================ ================================================ FILE: base.mk ================================================ # Board platforms lists to be used for # TARGET_BOARD_PLATFORM specific featurization QCOM_BOARD_PLATFORMS := msm8998 TARGET_USE_VENDOR_CAMERA_EXT := true #List of targets that use video hw MSM_VIDC_TARGET_LIST := msm8998 #List of targets that use master side content protection MASTER_SIDE_CP_TARGET_LIST := msm8998 # Below projects/packages with LOCAL_MODULEs will be used by # PRODUCT_PACKAGES to build LOCAL_MODULEs that are tagged with # optional tag, which will not be available on target unless # explicitly list here. Where project corresponds to the vars here # in CAPs. #ALSA ALSA_HARDWARE := alsa.msm8974 AUDIO_HARDWARE := audio.a2dp.default AUDIO_HARDWARE += audio.usb.default AUDIO_HARDWARE += audio.r_submix.default AUDIO_HARDWARE += audio.primary.msm8998 #AMPLOADER AMPLOADER := amploader #BRCTL BRCTL := brctl BRTCL += libbridge #BSON BSON := libbson #BT BT := javax.btobex BT += libattrib_static BT += libbt-vendor BT += libbt-hidlclient BT += btaddr_extract #C2DColorConvert C2DCC := libc2dcolorconvert CHROMIUM := libwebviewchromium CHROMIUM += libwebviewchromium_loader CHROMIUM += libwebviewchromium_plat_support #CIMAX CIMAX := libcimax_spi #CONNECTIVITY CONNECTIVITY := libcnefeatureconfig CONNECTIVITY += services-ext #CURL CURL := libcurl CURL += curl #DATA_OS DATA_OS := librmnetctl #E2FSPROGS E2FSPROGS := e2fsck #EBTABLES EBTABLES := ebtables EBTABLES += ethertypes EBTABLES += libebtc #FASTPOWERON FASTPOWERON := FastBoot #HDMID HDMID := hdmid #HOSTAPD HOSTAPD := hostapd HOSTAPD += hostapd_cli HOSTAPD += nt_password_hash HOSTAPD += hlr_auc_gw HOSTAPD += hostapd.conf HOSTAPD += hostapd_default.conf HOSTAPD += hostapd.deny HOSTAPD += hostapd.accept #I420COLORCONVERT I420CC := libI420colorconvert #INIT INIT += init.qcom.sensor.sh INIT += init.mata.rc INIT += init.recovery.mata.rc INIT += init.qcom.sh INIT += vold.fstab INIT += init.qcom.usb.rc INIT += init.msm.usb.configfs.rc INIT += ssr_setup INIT += fstab.mata INIT += init.qcom.vendor.rc INIT += init.target.vendor.rc #IPROUTE2 IPROUTE2 := ip IPROUTE2 += libiprouteutil #IPACM IPACM += ipacm IPACM += IPACM_cfg.xml IPACM += ipacm-diag #IPTABLES IPTABLES := libiptc IPTABLES += libext IPTABLES += iptables #KEYPADS KEYPAD := gpio-keys.kl KEYPAD += qpnp_pon.kl #KS KS := ks KS += qcks KS += efsks #LIB_NL LIB_NL := libnl_2 #LIB_XML2 LIB_XML2 := libxml2 #LIBCAMERA LIBCAMERA := camera.msm8998 LIBCAMERA += libcamera LIBCAMERA += libmmcamera_interface LIBCAMERA += libmmcamera_interface2 LIBCAMERA += libmmjpeg_interface LIBCAMERA += libmmlib2d_interface LIBCAMERA += libqomx_core LIBCAMERA += org.codeaurora.camera #LIBCOPYBIT LIBCOPYBIT := copybit.msm8998 #LIBGESTURES LIBGESTURES := libgestures LIBGESTURES += gestures.msm8960 #LIBGRALLOC LIBGRALLOC := gralloc.msm8998 LIBGRALLOC += libmemalloc #memtrack LIBMEMTRACK := memtrack.msm8998 #LIBLIGHTS LIBLIGHTS := lights.msm8998 #LIBHWCOMPOSER LIBHWCOMPOSER := hwcomposer.msm8998 #LIBAUDIOPARAM -- Exposing AudioParameter as dynamic library for SRS TruMedia to work LIBAUDIOPARAM := libaudioparameter #LIBAUDIORESAMPLER -- High-quality audio resampler LIBAUDIORESAMPLER := libaudio-resampler #LIBOPENCOREHW LIBOPENCOREHW := libopencorehw #LIBOVERLAY LIBOVERLAY := liboverlay LIBOVERLAY += overlay.default #LIBGENLOCK LIBGENLOCK := libgenlock #LIBPERFLOCK LIBPERFLOCK := org.codeaurora.Performance #LIBQCOMUI LIBQCOMUI := libQcomUI #LIBQDUTILS LIBQDUTILS := libqdutils LIBQDUTILS := libqdutils.system #LIBQDMETADATA LIBQDMETADATA := libqdMetaData LIBQDMETADATA += libqdMetaData.system #LIBPOWER -- Add HIDL Packages LIBPOWER := android.hardware.power@1.3-service.mata-libperfmgr LIBPOWER += libqti-perfd-client #LLVM for RenderScript #use qcom LLVM $(call inherit-product-if-exists, external/llvm/llvm-select.mk) #LOC_API LOC_API := libloc_api-rpc-qc #MM_AUDIO MM_AUDIO := libOmxAacDec MM_AUDIO += libOmxAacEnc MM_AUDIO += libOmxAmrEnc MM_AUDIO += libOmxEvrcEnc MM_AUDIO += libOmxMp3Dec MM_AUDIO += libOmxQcelp13Enc MM_AUDIO += libOmxAc3HwDec MM_AUDIO += libstagefright_soft_flacdec #MM_CORE MM_CORE := libmm-omxcore MM_CORE += libOmxCore #MM_VIDEO MM_VIDEO := beat MM_VIDEO += liblasic MM_VIDEO += libOmxVdec MM_VIDEO += libOmxVdecHevc MM_VIDEO += libOmxVenc MM_VIDEO += libOmxVidEnc MM_VIDEO += libOmxSwVdec MM_VIDEO += libOmxSwVencMpeg4 MM_VIDEO += libstagefrighthw MM_VIDEO += mm-vdec-omx-property-mgr #OPENCORE OPENCORE := libomx_aacdec_sharedlibrary OPENCORE += libomx_avcdec_sharedlibrary OPENCORE += libomx_m4vdec_sharedlibrary OPENCORE += libomx_mp3dec_sharedlibrary OPENCORE += libopencore_author OPENCORE += libopencore_common OPENCORE += libopencore_download OPENCORE += libopencore_downloadreg OPENCORE += libopencore_mp4local OPENCORE += libopencore_mp4localreg OPENCORE += libopencore_net_support OPENCORE += libopencore_player OPENCORE += libopencore_rtsp OPENCORE += libopencore_rtspreg OPENCORE += libpvplayer_engine OPENCORE += libpvauthorengine OPENCORE += pvplayer OPENCORE += pvplayer_engine_test #PPP PPP := ip-up-vpn PROTOBUF := libprotobuf-cpp-full #PVOMX PVOMX := libqcomm_omx PVOMX += 01_qcomm_omx #RF4CE RF4CE := RemoTI_RNP.cfg RF4CE += rf4ce #STK STK := Stk #STM LOG STMLOG := libstm-log #THERMAL_HAL THERMAL_HAL := thermal.msm8998 #VR_HAL VR_HAL := vr.msm8998 #QRGND QRGND := qrngd QRGND += qrngp #WPA WPA := wpa_supplicant.conf WPA += wpa_supplicant_wcn.conf WPA += wpa_supplicant_ath6kl.conf WPA += wpa_supplicant WPA += hs20-osu-client #ZLIB ZLIB := gzip ZLIB += libunz #Charger CHARGER := charger CHARGER += charger_res_images CHARGER += essential_charger_res_animation #VT_JNI VT_JNI := libvt_jni VT_JNI += libimscamera_jni # VT QTI Permissions VT_QTI_PERMISSIONS := qti_permissions.xml #RCS RCS := rcs_service_aidl RCS += rcs_service_aidl.xml RCS += rcs_service_aidl_static RCS += rcs_service_api RCS += rcs_service_api.xml #IMS SETTINGS IMS_SETTINGS := imssettings #IMS Extension module for Android Telephony IMS_EXT := ims-ext-common IMS_EXT += ConfURIDialer #CRDA CRDA := crda CRDA += regdbdump CRDA += regulatory.bin CRDA += linville.key.pub.pem CRDA += init.crda.sh #FSTMAN FSTMAN := fstman FSTMAN += fstman.ini PRODUCT_PACKAGES := \ AccountAndSyncSettings \ AlarmProvider \ Bluetooth \ CellBroadcastReceiver \ CertInstaller \ DrmProvider \ Email \ LatinIME \ netutils-wrapper-1.0 \ Phone \ Provision \ Settings \ Sync \ SystemUI \ Updater \ CalendarProvider \ SyncProvider \ IM \ VoiceDialer #GNSS HAL PRODUCT_PACKAGES += \ gps.conf \ libgps.utils \ libgnss \ liblocation_api \ android.hardware.gnss@1.0-impl-qti \ android.hardware.gnss@1.0-service-qti PRODUCT_PACKAGES_DEBUG := \ CellBroadcastReceiverTests \ SnapdragonCamera \ WfdClient \ QSensorTest PRODUCT_PACKAGES += $(ALSA_HARDWARE) PRODUCT_PACKAGES += $(AUDIO_HARDWARE) PRODUCT_PACKAGES += $(AMPLOADER) PRODUCT_PACKAGES += $(BRCTL) PRODUCT_PACKAGES += $(BSON) PRODUCT_PACKAGES += $(BT) PRODUCT_PACKAGES += $(C2DCC) PRODUCT_PACKAGES += $(CHROMIUM) PRODUCT_PACKAGES += $(CIMAX) PRODUCT_PACKAGES += $(RCS) PRODUCT_PACKAGES += $(CONNECTIVITY) PRODUCT_PACKAGES += $(CHARGER) PRODUCT_PACKAGES += $(CURL) PRODUCT_PACKAGES += $(DATA_OS) PRODUCT_PACKAGES += $(E2FSPROGS) PRODUCT_PACKAGES += $(EBTABLES) PRODUCT_PACKAGES += $(FASTPOWERON) PRODUCT_PACKAGES += $(GPS_HARDWARE) PRODUCT_PACKAGES += $(HDMID) PRODUCT_PACKAGES += $(HOSTAPD) PRODUCT_PACKAGES += $(I420CC) PRODUCT_PACKAGES += $(INIT) PRODUCT_PACKAGES += $(IPROUTE2) PRODUCT_PACKAGES += $(IPTABLES) PRODUCT_PACKAGES += $(KERNEL_TESTS) PRODUCT_PACKAGES += $(KEYPAD) PRODUCT_PACKAGES += $(KS) PRODUCT_PACKAGES += $(LIB_NL) PRODUCT_PACKAGES += $(LIB_XML2) PRODUCT_PACKAGES += $(LIBCAMERA) PRODUCT_PACKAGES += $(LIBGESTURES) PRODUCT_PACKAGES += $(LIBCOPYBIT) PRODUCT_PACKAGES += $(LIBGRALLOC) PRODUCT_PACKAGES += $(LIBMEMTRACK) PRODUCT_PACKAGES += $(LIBLIGHTS) PRODUCT_PACKAGES += $(LIBAUDIOPARAM) PRODUCT_PACKAGES += $(LIBAUDIORESAMPLER) PRODUCT_PACKAGES += $(LIBOPENCOREHW) PRODUCT_PACKAGES += $(LIBOVERLAY) PRODUCT_PACKAGES += $(LIBHWCOMPOSER) PRODUCT_PACKAGES += $(LIBGENLOCK) PRODUCT_PACKAGES += $(LIBPERFLOCK) PRODUCT_PACKAGES += $(LIBQCOMUI) PRODUCT_PACKAGES += $(LIBQDUTILS) PRODUCT_PACKAGES += $(LIBQDMETADATA) PRODUCT_PACKAGES += $(LIBPOWER) PRODUCT_PACKAGES += $(LOC_API) PRODUCT_PACKAGES += $(MEDIA_PROFILES) PRODUCT_PACKAGES += $(MM_AUDIO) PRODUCT_PACKAGES += $(MM_CORE) PRODUCT_PACKAGES += $(MM_VIDEO) PRODUCT_PACKAGES += $(OPENCORE) PRODUCT_PACKAGES += $(PPP) PRODUCT_PACKAGES += $(PROTOBUF) PRODUCT_PACKAGES += $(PVOMX) PRODUCT_PACKAGES += $(RF4CE) PRODUCT_PACKAGES += $(SENSORS_HARDWARE) PRODUCT_PACKAGES += $(STK) PRODUCT_PACKAGES += $(STMLOG) PRODUCT_PACKAGES += $(THERMAL_HAL) PRODUCT_PACKAGES += $(TSLIB_EXTERNAL) PRODUCT_PACKAGES += $(VR_HAL) PRODUCT_PACKAGES += $(QRGND) PRODUCT_PACKAGES += $(UPDATER) PRODUCT_PACKAGES += $(WPA) PRODUCT_PACKAGES += $(ZLIB) PRODUCT_PACKAGES += $(VT_JNI) PRODUCT_PACKAGES += $(VT_QTI_PERMISSIONS) PRODUCT_PACKAGES += $(IMS_SETTINGS) PRODUCT_PACKAGES += $(CRDA) PRODUCT_PACKAGES += $(IPACM) PRODUCT_PACKAGES += $(FSTMAN) PRODUCT_PACKAGES += $(IMS_EXT) # Temp workarround for b/36603742 PRODUCT_PACKAGES += android.hidl.manager@1.0-java PRODUCT_PACKAGES += android.hardware.drm@1.0-impl PRODUCT_PACKAGES += android.hardware.drm@1.0-service # Live Wallpapers PRODUCT_PACKAGES += \ LiveWallpapers \ WallpaperPicker \ VisualizationWallpapers \ librs_jni # Filesystem management tools PRODUCT_PACKAGES += \ make_ext4fs \ setup_fs # Qcril configuration file PRODUCT_PACKAGES += qcril.db # GPT utils library PRODUCT_PACKAGES += libgptutils # vcard jar PRODUCT_PACKAGES += vcard 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.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\ frameworks/native/data/etc/android.hardware.telephony.gsm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.gsm.xml \ frameworks/native/data/etc/android.hardware.telephony.cdma.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.cdma.xml \ frameworks/native/data/etc/android.hardware.telephony.ims.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.ims.xml \ frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml \ frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.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.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml \ frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.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.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml \ frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml \ 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.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \ frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml # Bluetooth configuration files #PRODUCT_COPY_FILES += \ system/bluetooth/data/audio.conf:system/etc/bluetooth/audio.conf \ system/bluetooth/data/auto_pairing.conf:system/etc/bluetooth/auto_pairing.conf \ system/bluetooth/data/blacklist.conf:system/etc/bluetooth/blacklist.conf \ system/bluetooth/data/input.conf:system/etc/bluetooth/input.conf \ system/bluetooth/data/network.conf:system/etc/bluetooth/network.conf \ #ifeq ($(BOARD_HAVE_BLUETOOTH_BLUEZ),true) #PRODUCT_COPY_FILES += \ system/bluetooth/data/stack.conf:system/etc/bluetooth/stack.conf #endif # BOARD_HAVE_BLUETOOTH_BLUEZ # gps/location secuity configuration file PRODUCT_COPY_FILES += \ device/essential/mata/sec_config:$(TARGET_COPY_OUT_VENDOR)/etc/sec_config #copy codecs_xxx.xml to (TARGET_COPY_OUT_VENDOR)/etc/ PRODUCT_COPY_FILES += \ frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_audio.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml \ frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_video.xml \ device/essential/mata/media/media_profiles_V1_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml PRODUCT_COPY_FILES += \ frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml \ frameworks/native/data/etc/com.android.nfc_extras.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.nfc_extras.xml \ frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \ frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.vulkan.level-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \ frameworks/native/data/etc/android.hardware.vulkan.version-1_1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \ frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml # include additional build utilities -include device/essential/mata/utils.mk #skip boot jars check SKIP_BOOT_JARS_CHECK := true ifeq ($(TARGET_BUILD_VARIANT),user) PRODUCT_DEFAULT_PROPERTY_OVERRIDES+= \ ro.adb.secure=1 endif # Add Sprint flags is present $(call inherit-product-if-exists, vendor/harman/sprint.mk) $(call inherit-product-if-exists, vendor/harman/sprint-flags.mk) # OEM Unlock reporting PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \ ro.oem_unlock_supported=1 PRODUCT_CHARACTERISTICS := nosdcard TARGET_USES_QCOM_BSP_ATEL := false # VNDK-SP: PRODUCT_PACKAGES += \ vndk-sp \ TARGET_FS_CONFIG_GEN := device/essential/mata/config.fs ================================================ FILE: bdroid_buildcfg.h ================================================ /* * * Copyright (c) 2013, The Linux Foundation. All rights reserved. * Not a Contribution, Apache license notifications and license are retained * for attribution purposes only. * * 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. */ #ifndef _BDROID_BUILDCFG_H #define _BDROID_BUILDCFG_H #define BTM_DEF_LOCAL_NAME "Essential Phone" // Wide-band speech support #define BTIF_HF_WBS_PREFERRED TRUE // Google VSC spec support #define BLE_VND_INCLUDED TRUE #endif ================================================ FILE: compatibility_matrix.xml ================================================ android.frameworks.schedulerservice 1.0 ISchedulingPolicyService default android.frameworks.sensorservice 1.0 ISensorManager default 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 ================================================ FILE: config.fs ================================================ [vendor/bin/wcnss_filter] mode: 0755 user: AID_BLUETOOTH group: AID_BLUETOOTH caps: BLOCK_SUSPEND [system/bin/cnss-daemon] mode: 0755 user: AID_BLUETOOTH group: AID_BLUETOOTH caps: NET_BIND_SERVICE [vendor/bin/pm-service] mode: 0755 user: AID_SYSTEM group: AID_SYSTEM caps: NET_BIND_SERVICE [system/bin/pm-service] mode: 0755 user: AID_SYSTEM group: AID_SYSTEM caps: NET_BIND_SERVICE [vendor/bin/pd-mapper] mode: 0755 user: AID_SYSTEM group: AID_SYSTEM caps: NET_BIND_SERVICE [system/bin/pd-mapper] mode: 0755 user: AID_SYSTEM group: AID_SYSTEM caps: NET_BIND_SERVICE [vendor/bin/imsdatadaemon] mode: 0755 user: AID_SYSTEM group: AID_SYSTEM caps: NET_BIND_SERVICE [vendor/bin/ims_rtp_daemon] mode: 0755 user: AID_SYSTEM group: AID_RADIO caps: NET_BIND_SERVICE [vendor/bin/cnd] mode: 0755 user: AID_SYSTEM group: AID_SYSTEM caps: NET_BIND_SERVICE BLOCK_SUSPEND NET_ADMIN [vendor/bin/slim_daemon] mode: 0755 user: AID_GPS group: AID_GPS caps: NET_BIND_SERVICE [vendor/bin/xtwifi-client] mode: 0755 user: AID_GPS group: AID_GPS caps: NET_BIND_SERVICE BLOCK_SUSPEND [firmware/] mode: 0771 user: AID_SYSTEM group: AID_SYSTEM caps: 0 [persist/] mode: 0771 user: AID_SYSTEM group: AID_SYSTEM caps: 0 [dsp/] mode: 0771 user: AID_MEDIA group: AID_MEDIA caps: 0 ================================================ FILE: device-vendor.mk ================================================ # This file lists all qcom products and defines the QC_PROP flag which # is used to enable projects inside $(QC_PROP_ROOT) directory. # Also, This file intended for use by device/product makefiles # to pick and choose the optional proprietary modules # Root of Qualcomm Proprietary component tree QC_PROP_ROOT := vendor/qcom/proprietary SDCLANG_LTO_DEFS := device/essential/mata/sdllvm-lto-defs.mk PRODUCT_LIST := mata PRODUCT_LIST += msm8998 ifneq ($(strip $(TARGET_VENDOR)),) PRODUCT_LIST += $(TARGET_PRODUCT) endif XML_CONF_PATH := vendor/qcom/proprietary/telephony-apps/etc ifneq ($(wildcard $(XML_CONF_PATH)),) PRODUCT_COPY_FILES := $(XML_CONF_PATH)/cdma_call_conf.xml:system/etc/cdma_call_conf.xml $(PRODUCT_COPY_FILES) endif TARGET_BOARD_PLATFORM := msm8998 $(call inherit-product-if-exists, $(QC_PROP_ROOT)/android-perf/profiles.mk) #Include other rules if any $(call inherit-product-if-exists, $(QC_PROP_ROOT)/common-noship/build/generate_extra_images_prop.mk) #prebuilt javalib ifneq ($(wildcard $(QC_PROP_ROOT)/common/build/prebuilt_javalib.mk),) BUILD_PREBUILT_JAVALIB := $(QC_PROP_ROOT)/common/build/prebuilt_javalib.mk else BUILD_PREBUILT_JAVALIB := $(BUILD_PREBUILT) endif # Each line here corresponds to an optional LOCAL_MODULE built by # Android.mk(s) in the proprietary projects. Where project # corresponds to the vars here in CAPs. # These modules are tagged with optional as their LOCAL_MODULE_TAGS # wouldn't be present in your on target images, unless listed here # explicitly. #ADSPRPC ADSPRPC := libadsprpc ADSPRPC += libadsp_default_listener ADSPRPC += libssc_default_listener ADSPRPC += adsprpcd #BT BT := btnvtool BT += dun-server BT += hci_qcomm_init BT += liboi_sbc_decoder BT += sapd BT += wcnss_filter BT += android.hardware.bluetooth@1.0-service BT += android.hardware.bluetooth@1.0-impl BT += android.hardware.bluetooth@1.0-service.rc #CNE CNE := andsfCne.xml CNE += cnd CNE += cneapiclient CNE += cneapiclient.xml CNE += CNEService CNE += com.quicinc.cne CNE += com.quicinc.cne.xml CNE += com.quicinc.cneapiclient CNE += libcne CNE += libcneapiclient CNE += libcneqmiutils CNE += libcneoplookup CNE += libmasc CNE += libvendorconn CNE += libwms CNE += libwqe CNE += libxml CNE += ROW_profile1.xml CNE += ROW_profile2.xml CNE += ROW_profile3.xml CNE += ROW_profile4.xml CNE += ROW_profile5.xml CNE += ROW_profile6.xml CNE += ROW_profile7.xml CNE += ATT_profile1.xml CNE += ATT_profile2.xml CNE += ATT_profile3.xml CNE += ATT_profile4.xml CNE += ATT_profile5.xml CNE += ATT_profile6.xml CNE += VZW_profile1.xml CNE += VZW_profile2.xml CNE += VZW_profile3.xml CNE += VZW_profile4.xml CNE += VZW_profile5.xml CNE += VZW_profile6.xml CNE += SwimConfig.xml CNE += com.quicinc.cne.api@1.0 CNE += com.quicinc.cne.server@1.0 CNE += com.quicinc.cne.server@2.0 CNE += com.quicinc.cne.constants@1.0 CNE += com.quicinc.cne.constants@2.0 CNE += com.quicinc.cne.api-V1.0-java # CNE rely on Latency HIDL LATENCY := vendor.qti.hardware.data.latency@1.0 LATENCY += vendor.qti.hardware.data.latency@1.0_vendor LATENCY += vendor.qti.hardware.data.latency-V1.0-java LATENCY += vendor.qti.hardware.data.latency.xml #DATA DATA := ATFWD-daemon DATA += dsdnsutil DATA += dsi_config.xml DATA += libconfigdb DATA += libdsnet DATA += libdsnetutil DATA += libdsprofile DATA += libdss DATA += libdssock DATA += libdsutils DATA += libnetmgr DATA += libqcmaputils DATA += netmgrd DATA += netmgr_config.xml DATA += port-bridge DATA += qti #DISPLAY DISPLAY := libsdmextension DISPLAY += libqseed3 DISPLAY += libsdm-disp-apis DISPLAY += libsdm-color DISPLAY += libsdm-diag DISPLAY += vendor.display.config@1.0_vendor #DIAG DIAG := diag_klog DIAG += diag_mdlog DIAG += diag_socket_log DIAG += diag_qshrink4_daemon DIAG += diag_uart_log DIAG += libdiag_system DIAG += libdiagjni #hvdcp 3.0 daemon HVDCP_OPTI := hvdcp_opti # To create XTRA daemon (linked to libizat_core) AOSP_GPS := xtra-daemon AOSP_GPS += libizat_core # Support library from vendor/qcom/opensource/location/ # Those are the implementation of the API, definied on the HAL AOSP_GPS += libloc_api_v02 AOSP_GPS += libloc_ds_api AOSP_GPS += liblbs_core AOSP_GPS += libgeofence AOSP_GPS += libflp AOSP_GPS += libloc_pla # loc_launcher will start the right daemons, per izat.conf AOSP_GPS += loc_launcher AOSP_GPS += izat.conf # LOWI is needed for Free-WiFi Scan information AOSP_GPS += lowi-server AOSP_GPS += liblowi_client AOSP_GPS += liblowi_wifihal AOSP_GPS += liblowi_wifihal_nl # sap.conf provide the sensor information for the GPS AOSP_GPS += sap.conf AOSP_GPS += flp.conf #GsmaNfcService GSMA_NFC := GsmaNfcService GSMA_NFC += com.gsma.services.nfc GSMA_NFC += com.gsma.services.nfc.xml GSMA_NFC += com.gsma.services.utils GSMA_NFC += com.gsma.services.utils.xml #HBTP HBTP := hbtp_daemon HBTP += hbtpcfg_qtc800s.dat HBTP += hbtpcfg_rohm.dat HBTP += qtc800s_dsp.bin HBTP += libhbtpdsp HBTP += libhbtpclient HBTP += libhbtpfrmwk HBTP += libfastrpc_utf_stub HBTP += libFastRPC_UTF_Forward_skel HBTP += libFastRPC_UTF_Forward_Qtc2_skel HBTP += libhbtpjni HBTP += vendor.qti.hardware.improvetouch.touchcompanion@1.0 HBTP += vendor.qti.hardware.improvetouch.touchcompanion@1.0_vendor HBTP += vendor.qti.hardware.improvetouch.touchcompanion@1.0-service HBTP += vendor.qti.hardware.improvetouch.gesturemanager@1.0 HBTP += vendor.qti.hardware.improvetouch.gesturemanager@1.0_vendor HBTP += vendor.qti.hardware.improvetouch.gesturemanager@1.0-service HBTP += vendor.qti.hardware.improvetouch.blobmanager@1.0 HBTP += vendor.qti.hardware.improvetouch.blobmanager@1.0_vendor HBTP += vendor.qti.hardware.improvetouch.blobmanager@1.0-service HBTP += loader.cfg #HY11_HY22 diff HY11_HY22_diff += libacdb-fts HY11_HY22_diff += libdatactrl HY11_HY22_diff += libevent_observer HY11_HY22_diff += libimsmedia_jni HY11_HY22_diff += libsettings HY11_HY22_diff += libwfdavenhancements HY11_HY22_diff += libacdb-fts HY11_HY22_diff += libacdbrtac HY11_HY22_diff += libadiertac HY11_HY22_diff += libdatactrl HY11_HY22_diff += libdiag HY11_HY22_diff += libevent_observer HY11_HY22_diff += libimsmedia_jni HY11_HY22_diff += libwbc_jni HY11_HY22_diff += libmmcamera2_c2d_module HY11_HY22_diff += libmmcamera2_cpp_module HY11_HY22_diff += libmmcamera2_iface_modules HY11_HY22_diff += libmmcamera2_imglib_modules HY11_HY22_diff += libmmcamera2_isp_modules HY11_HY22_diff += libmmcamera2_pp_buf_mgr HY11_HY22_diff += libmmcamera2_pproc_modules HY11_HY22_diff += libmmcamera2_sensor_modules HY11_HY22_diff += libmmcamera2_stats_lib HY11_HY22_diff += libmmcamera_eztune_module HY11_HY22_diff += libmmcamera_ppbase_module HY11_HY22_diff += libmmcamera_sw2d_lib HY11_HY22_diff += libmmcamera_thread_services HY11_HY22_diff += libmmcamera_tuning_lookup HY11_HY22_diff += libomx-dts HY11_HY22_diff += libqdi HY11_HY22_diff += libqdp HY11_HY22_diff += libqmi_client_qmux HY11_HY22_diff += libremosaic_daemon HY11_HY22_diff += libsensor_reg HY11_HY22_diff += libsettings HY11_HY22_diff += libtime_genoff HY11_HY22_diff += libwfdavenhancements HY11_HY22_diff += libwfdmmsink HY11_HY22_diff += libwfduibcsinkinterface HY11_HY22_diff += libwfduibcsink HY11_HY22_diff += libpdnotifier HY11_HY22_diff += libperfgluelayer HY11_HY22_diff += libqti-gt-prop HY11_HY22_diff += vendor.qti.hardware.radio.atcmdfwd@1.0_vendor HY11_HY22_diff += radioconfig HY11_HY22_diff += LteDirectDiscovery.xml HY11_HY22_diff += radioconfig.xml HY11_HY22_diff += radioconfiginterface.xml HY11_HY22_diff += cdma_call_conf.xml HY11_HY22_diff += spn-conf.xml HY11_HY22_diff += libsns_low_lat_stream_skel_system HY11_HY22_diff += libqti-util_system # IMS Telephony Libs # Defined as the ims provider in the overlay IMS_TEL := ims.xml IMS_TEL += imslibrary IMS_TEL += ims #IMS_VT IMS_VT := lib-imsvt IMS_VT += lib-imscamera IMS_VT += lib-imsvtextutils IMS_VT += lib-imsvtutils IMS_VT += lib-imsvideocodec IMS_VT += librcc # Vzw Specific RCS APIs (Android Telephony) IMS_TEL_RCS := qti-vzw-ims-internal IMS_TEL_RCS += qti-vzw-ims-internal.xml IMS_TEL_RCS += qti-vzw-ims-common IMS_TEL_RCS += qti-vzw-ims-common.xml #IMS_RCS IMS_RCS := imsrcsd IMS_RCS += lib-uceservice IMS_RCS += lib-imsrcs-v2 IMS_RCS += lib-imsxml IMS_RCS += lib-imscmservice IMS_RCS += uceShimService IMS_RCS += whitelist_com.qualcomm.qti.uceShimService IMS_RCS += com.qualcomm.qti.imscmservice@1.0 IMS_RCS += com.qualcomm.qti.imscmservice@1.0_vendor #IMS_NEWARCH IMS_NEWARCH := imsdatadaemon IMS_NEWARCH += imsqmidaemon IMS_NEWARCH += ims_rtp_daemon IMS_NEWARCH += lib-dplmedia IMS_NEWARCH += lib-imsdpl IMS_NEWARCH += lib-imsqimf IMS_NEWARCH += lib-imsSDP IMS_NEWARCH += lib-rtpcommon IMS_NEWARCH += lib-rtpcore IMS_NEWARCH += lib-rtpdaemoninterface IMS_NEWARCH += lib-rtpsl IMS_NEWARCH += vendor.qti.imsrtpservice@1.0-service-Impl IMS_NEWARCH += vendor.qti.imsrtpservice@1.0 IMS_NEWARCH += vendor.qti.imsrtpservice@1.0_vendor #IMS_REGMGR IMS_REGMGR := RegmanagerApi #MDM_HELPER MDM_HELPER := mdm_helper #MDM_HELPER_PROXY MDM_HELPER_PROXY := mdm_helper_proxy #MM_AUDIO MM_AUDIO := audiod MM_AUDIO += AudioFilter MM_AUDIO += libacdbloader MM_AUDIO += libacdbmapper MM_AUDIO += libalsautils MM_AUDIO += libatu MM_AUDIO += libaudcal MM_AUDIO += libaudioalsa MM_AUDIO += libaudioeq MM_AUDIO += libaudioparsers MM_AUDIO += libcsd-client MM_AUDIO += lib_iec_60958_61937 MM_AUDIO += libmm-audio-resampler MM_AUDIO += libstagefright_soft_qtiflacdec MM_AUDIO += libOmxAacDec MM_AUDIO += libOmxAacEnc MM_AUDIO += libOmxAdpcmDec MM_AUDIO += libOmxAmrDec MM_AUDIO += libOmxAmrEnc MM_AUDIO += libOmxAmrRtpDec MM_AUDIO += libOmxAmrwbDec MM_AUDIO += libOmxAmrwbplusDec MM_AUDIO += libOmxEvrcDec MM_AUDIO += libOmxEvrcEnc MM_AUDIO += libOmxEvrcHwDec MM_AUDIO += libOmxMp3Dec MM_AUDIO += libOmxQcelp13Dec MM_AUDIO += libOmxQcelp13Enc MM_AUDIO += libOmxQcelpHwDec MM_AUDIO += libOmxVp8Dec MM_AUDIO += libOmxWmaDec MM_AUDIO += libOmxAlacDec MM_AUDIO += libOmxApeDec MM_AUDIO += libOmxAlacDecSw MM_AUDIO += libOmxApeDecSw MM_AUDIO += libOmxDsdDec MM_AUDIO += libvoem-jni MM_AUDIO += mm-omx-devmgr MM_AUDIO += QCAudioManager MM_AUDIO += liblistensoundmodel MM_AUDIO += liblistensoundmodel2 MM_AUDIO += liblistenjni MM_AUDIO += liblisten MM_AUDIO += liblistenhardware MM_AUDIO += STApp MM_AUDIO += libqtigef MM_AUDIO += libqcbassboost MM_AUDIO += libqcvirt MM_AUDIO += libqcreverb MM_AUDIO += libasphere MM_AUDIO += audiosphere MM_AUDIO += audiosphere.xml MM_AUDIO += audio_effects.conf MM_AUDIO += libFlacSwDec MM_AUDIO += libAlacSwDec MM_AUDIO += libApeSwDec MM_AUDIO += libdsd2pcm MM_AUDIO += audioflacapp MM_AUDIO += libqct_resampler MM_AUDIO += libaudiodevarb MM_AUDIO += audiod MM_AUDIO += libsmwrapper MM_AUDIO += libadpcmdec MM_AUDIO += libmulawdec MM_AUDIO += sound_trigger.primary.msm8998 MM_AUDIO += libnative_audio_latency_jni MM_AUDIO += libhwdaphal MM_AUDIO += libqcomvisualizer MM_AUDIO += libqcomvoiceprocessing MM_AUDIO += libqcompostprocbundle MM_AUDIO += libadm MM_AUDIO += libsurround_3mic_proc MM_AUDIO += surround_sound_rec_AZ.cfg MM_AUDIO += surround_sound_rec_5.1.cfg MM_AUDIO += libdrc MM_AUDIO += drc_cfg_AZ.txt MM_AUDIO += drc_cfg_5.1.txt MM_AUDIO += libgcs-osal MM_AUDIO += libgcs-calwrapper MM_AUDIO += libgcs-ipc MM_AUDIO += libgcs MM_AUDIO += cmudict.bin MM_AUDIO += poc_64_hmm.gmm MM_AUDIO += noisesample.bin MM_AUDIO += antispoofing.bin MM_AUDIO += libshoebox MM_AUDIO += libvr_amb_engine MM_AUDIO += libvr_object_engine MM_AUDIO += libvr_sam_wrapper MM_AUDIO += libvraudio MM_AUDIO += libvraudio_client #MM_CAMERA MM_CAMERA := cpp_firmware_v1_1_1.fw MM_CAMERA += cpp_firmware_v1_1_6.fw MM_CAMERA += cpp_firmware_v1_2_0.fw MM_CAMERA += cpp_firmware_v1_2_A.fw MM_CAMERA += cpp_firmware_v1_6_0.fw MM_CAMERA += cpp_firmware_v1_4_0.fw MM_CAMERA += cpp_firmware_v1_5_0.fw MM_CAMERA += cpp_firmware_v1_5_1.fw MM_CAMERA += cpp_firmware_v1_5_2.fw MM_CAMERA += cpp_firmware_v1_8_0.fw MM_CAMERA += cpp_firmware_v1_10_0.fw MM_CAMERA += cpp_firmware_v1_12_0.fw MM_CAMERA += libflash_pmic MM_CAMERA += libactuator_ak7371 MM_CAMERA += libactuator_ak7371_mono MM_CAMERA += libois_lc898122 MM_CAMERA += libadsp_denoise_skel MM_CAMERA += libadsp_hvx_add_constant MM_CAMERA += libadsp_hvx_add_constant.so MM_CAMERA += libadsp_hvx_stats MM_CAMERA += libadsp_hvx_stats.so MM_CAMERA += libadsp_hvx_callback_skel MM_CAMERA += libadsp_hvx_stub MM_CAMERA += libadsp_hvx_skel MM_CAMERA += libadsp_hvx_skel.so MM_CAMERA += libadsp_fd_skel MM_CAMERA += libadsp_hvx_zzhdr_BGGR MM_CAMERA += libadsp_hvx_zzhdr_BGGR.so MM_CAMERA += libadsp_hvx_zzhdr_RGGB MM_CAMERA += libadsp_hvx_zzhdr_RGGB.so MM_CAMERA += libchromatix_imx258_common MM_CAMERA += libchromatix_imx258_cpp_hfr_60 MM_CAMERA += libchromatix_imx258_cpp_hfr_90 MM_CAMERA += libchromatix_imx258_cpp_hfr_120 MM_CAMERA += libchromatix_imx258_cpp_liveshot MM_CAMERA += libchromatix_imx258_cpp_preview MM_CAMERA += libchromatix_imx258_cpp_snapshot MM_CAMERA += libchromatix_imx258_cpp_video MM_CAMERA += libchromatix_imx258_cpp_video_4k MM_CAMERA += libchromatix_imx258_default_video MM_CAMERA += libchromatix_imx258_hfr_60 MM_CAMERA += libchromatix_imx258_hfr_90 MM_CAMERA += libchromatix_imx258_hfr_120 MM_CAMERA += libchromatix_imx258_liveshot MM_CAMERA += libchromatix_imx258_postproc MM_CAMERA += libchromatix_imx258_preview MM_CAMERA += libchromatix_imx258_snapshot MM_CAMERA += libchromatix_imx258_video_4k MM_CAMERA += libchromatix_imx258_4k_preview_3a MM_CAMERA += libchromatix_imx258_4k_video_3a MM_CAMERA += libchromatix_imx258_default_preview_3a MM_CAMERA += libchromatix_imx258_default_video_3a MM_CAMERA += libchromatix_imx258_hfr_60_3a MM_CAMERA += libchromatix_imx258_hfr_90_3a MM_CAMERA += libchromatix_imx258_hfr_120_3a MM_CAMERA += libchromatix_imx258_zsl_preview_3a MM_CAMERA += libchromatix_imx258_zsl_video_3a MM_CAMERA += libchromatix_imx258_mono_common MM_CAMERA += libchromatix_imx258_mono_cpp_hfr_60 MM_CAMERA += libchromatix_imx258_mono_cpp_hfr_90 MM_CAMERA += libchromatix_imx258_mono_cpp_hfr_120 MM_CAMERA += libchromatix_imx258_mono_cpp_liveshot MM_CAMERA += libchromatix_imx258_mono_cpp_preview MM_CAMERA += libchromatix_imx258_mono_cpp_snapshot MM_CAMERA += libchromatix_imx258_mono_cpp_video MM_CAMERA += libchromatix_imx258_mono_cpp_video_4k MM_CAMERA += libchromatix_imx258_mono_default_video MM_CAMERA += libchromatix_imx258_mono_hfr_60 MM_CAMERA += libchromatix_imx258_mono_hfr_90 MM_CAMERA += libchromatix_imx258_mono_hfr_120 MM_CAMERA += libchromatix_imx258_mono_liveshot MM_CAMERA += libchromatix_imx258_mono_postproc MM_CAMERA += libchromatix_imx258_mono_preview MM_CAMERA += libchromatix_imx258_mono_snapshot MM_CAMERA += libchromatix_imx258_mono_video_4k MM_CAMERA += libchromatix_imx258_mono_4k_preview_3a MM_CAMERA += libchromatix_imx258_mono_4k_video_3a MM_CAMERA += libchromatix_imx258_mono_default_preview_3a MM_CAMERA += libchromatix_imx258_mono_default_video_3a MM_CAMERA += libchromatix_imx258_mono_hfr_60_3a MM_CAMERA += libchromatix_imx258_mono_hfr_90_3a MM_CAMERA += libchromatix_imx258_mono_hfr_120_3a MM_CAMERA += libchromatix_imx258_mono_zsl_preview_3a MM_CAMERA += libchromatix_imx258_mono_zsl_video_3a MM_CAMERA += libedgesmooth MM_CAMERA += libedge_smooth_hvx_stub MM_CAMERA += libedge_smooth_skel MM_CAMERA += libmmcamera_hvx_add_constant MM_CAMERA += libmmcamera_hvx_grid_sum MM_CAMERA += libmmcamera_hvx_zzHDR MM_CAMERA += libmmcamera MM_CAMERA += libmmcamera_dbg MM_CAMERA += libmmcamera_cac_lib MM_CAMERA += libmmcamera_cac2_lib MM_CAMERA += libmmcamera_chromaflash_lib MM_CAMERA += libmmcamera_edgesmooth_lib MM_CAMERA += libmmcamera_quadracfa MM_CAMERA += libremosaiclib MM_CAMERA += libmmcamera_eeprom_util MM_CAMERA += libmmcamera_facedetection_lib MM_CAMERA += libmmcamera_faceproc MM_CAMERA += libmmcamera_faceproc2 MM_CAMERA += libswregistrationalgo MM_CAMERA += libmmcamera_faceproc_system MM_CAMERA += libmmcamera_faceproc2_system MM_CAMERA += libswregistrationalgo_system MM_CAMERA += libmmcamera_frameproc MM_CAMERA += libmmcamera_hdr_gb_lib MM_CAMERA += libmmcamera_hdr_lib MM_CAMERA += libmmcamera_hi256 MM_CAMERA += libmmcamera_imglib MM_CAMERA += libmmcamera_paaf_lib MM_CAMERA += libmmcamera_depth_map MM_CAMERA += libdepthmapwrapper MM_CAMERA += libdualcameraddm_system MM_CAMERA += libmmcamera_imx258 MM_CAMERA += libmmcamera_imx258_gt24c32_eeprom MM_CAMERA += libmmcamera_imx258_mono MM_CAMERA += libmmcamera_imx258_mono_gt24c32_eeprom MM_CAMERA += libmmcamera_imx268 MM_CAMERA += libmmcamera_dcrf_lib MM_CAMERA += libmmcamera_llvd #MM_CAMERA += libmmcamera_bokeh MM_CAMERA += libmmcamera_sw_tnr MM_CAMERA += libmmcamera_s5k3m2xm MM_CAMERA += libmmcamera_isp_abf44 MM_CAMERA += libmmcamera_isp_abf46 MM_CAMERA += libmmcamera_isp_abf47 MM_CAMERA += libmmcamera_isp_abf48 MM_CAMERA += libmmcamera_isp_aec_bg_stats47 MM_CAMERA += libmmcamera_isp_abcc44 MM_CAMERA += libmmcamera_isp_bcc44 MM_CAMERA += libmmcamera_isp_black_level47 MM_CAMERA += libmmcamera_isp_bpc40 MM_CAMERA += libmmcamera_isp_bcc40 MM_CAMERA += libmmcamera_isp_bpc44 MM_CAMERA += libmmcamera_isp_bpc47 MM_CAMERA += libmmcamera_isp_bpc48 MM_CAMERA += libmmcamera_isp_be_stats44 MM_CAMERA += libmmcamera_isp_bf_scale_stats44 MM_CAMERA += libmmcamera_isp_bf_scale_stats46 MM_CAMERA += libmmcamera_isp_bf_stats44 MM_CAMERA += libmmcamera_isp_bf_stats47 MM_CAMERA += libmmcamera_isp_bhist_stats44 MM_CAMERA += libmmcamera_isp_bg_stats44 MM_CAMERA += libmmcamera_isp_bg_stats46 MM_CAMERA += libmmcamera_isp_black_level48 MM_CAMERA += libmmcamera_isp_cac47 MM_CAMERA += libmmcamera_isp_cs_stats44 MM_CAMERA += libmmcamera_isp_cs_stats46 MM_CAMERA += libmmcamera_isp_chroma_enhan40 MM_CAMERA += libmmcamera_isp_chroma_suppress40 MM_CAMERA += libmmcamera_isp_clamp_encoder40 MM_CAMERA += libmmcamera_isp_clamp_viewfinder40 MM_CAMERA += libmmcamera_isp_clamp_video40 MM_CAMERA += libmmcamera_isp_clf44 MM_CAMERA += libmmcamera_isp_clf46 MM_CAMERA += libmmcamera_isp_color_correct40 MM_CAMERA += libmmcamera_isp_color_correct46 MM_CAMERA += libmmcamera_isp_color_xform_encoder40 MM_CAMERA += libmmcamera_isp_color_xform_viewfinder40 MM_CAMERA += libmmcamera_isp_color_xform_encoder46 MM_CAMERA += libmmcamera_isp_color_xform_viewfinder46 MM_CAMERA += libmmcamera_isp_color_xform_video46 MM_CAMERA += libmmcamera_isp_demosaic40 MM_CAMERA += libmmcamera_isp_demosaic44 MM_CAMERA += libmmcamera_isp_demosaic47 MM_CAMERA += libmmcamera_isp_demosaic48 MM_CAMERA += libmmcamera_isp_demux40 MM_CAMERA += libmmcamera_isp_demux48 MM_CAMERA += libmmcamera_isp_fovcrop_encoder40 MM_CAMERA += libmmcamera_isp_fovcrop_viewfinder40 MM_CAMERA += libmmcamera_isp_fovcrop_encoder46 MM_CAMERA += libmmcamera_isp_fovcrop_viewfinder46 MM_CAMERA += libmmcamera_isp_fovcrop_video46 MM_CAMERA += libmmcamera_isp_gamma40 MM_CAMERA += libmmcamera_isp_gamma44 MM_CAMERA += libmmcamera_isp_gamma46 MM_CAMERA += libmmcamera_isp_gic46 MM_CAMERA += libmmcamera_isp_gic48 MM_CAMERA += libmmcamera_isp_gtm46 MM_CAMERA += libmmcamera_isp_hdr_be_stats46 MM_CAMERA += libmmcamera_isp_hdr46 MM_CAMERA += libmmcamera_isp_hdr48 MM_CAMERA += libmmcamera_isp_hdr_bhist_stats44 MM_CAMERA += libmmcamera_isp_ihist_stats44 MM_CAMERA += libmmcamera_isp_ihist_stats46 MM_CAMERA += libmmcamera_isp_linearization40 MM_CAMERA += libmmcamera_isp_luma_adaptation40 MM_CAMERA += libmmcamera_isp_ltm44 MM_CAMERA += libmmcamera_isp_ltm47 MM_CAMERA += libmmcamera_isp_mce40 MM_CAMERA += libmmcamera_isp_mesh_rolloff40 MM_CAMERA += libmmcamera_isp_mesh_rolloff44 MM_CAMERA += libmmcamera_isp_pedestal_correct46 MM_CAMERA += libmmcamera_isp_pdaf48 MM_CAMERA += libmmcamera_isp_rs_stats44 MM_CAMERA += libmmcamera_isp_scaler_encoder40 MM_CAMERA += libmmcamera_isp_scaler_viewfinder40 MM_CAMERA += libmmcamera_isp_snr47 MM_CAMERA += libmmcamera_isp_rs_stats46 MM_CAMERA += libmmcamera_isp_scaler_encoder44 MM_CAMERA += libmmcamera_isp_scaler_viewfinder44 MM_CAMERA += libmmcamera_isp_scaler_encoder46 MM_CAMERA += libmmcamera_isp_scaler_viewfinder46 MM_CAMERA += libmmcamera_isp_scaler_video46 MM_CAMERA += libmmcamera_isp_sce40 MM_CAMERA += libmmcamera_isp_sub_module MM_CAMERA += libmmcamera_isp_wb40 MM_CAMERA += libmmcamera_isp_wb46 MM_CAMERA += libmmcamera_mt9m114 MM_CAMERA += libmmcamera_optizoom_lib MM_CAMERA += libmmcamera_pdaf MM_CAMERA += libmmcamera_pdafcamif MM_CAMERA += libmmcamera_plugin MM_CAMERA += libmmcamera_sp1628 MM_CAMERA += libmmcamera_statsproc31 MM_CAMERA += libmmcamera_stillmore_lib MM_CAMERA += libmmcamera_target MM_CAMERA += libmmcamera_trueportrait_lib MM_CAMERA += libmmcamera_ubifocus_lib MM_CAMERA += libmmcamera_wavelet_lib MM_CAMERA += libmmcamera2_dcrf MM_CAMERA += libmmcamera2_frame_algorithm MM_CAMERA += libmmcamera2_q3a_core MM_CAMERA += libmmcamera2_q3a_release MM_CAMERA += libmmcamera2_is MM_CAMERA += libmmcamera2_stats_algorithm MM_CAMERA += libmmcamera2_stats_release MM_CAMERA += libmmcamera-core MM_CAMERA += libmm-qcamera MM_CAMERA += liboemcamera MM_CAMERA += libmmcamera2_mct MM_CAMERA += libqcamera MM_CAMERA += libseemore_hexagon_skel MM_CAMERA += libtm_interface MM_CAMERA += v4l2-qcamera-app MM_CAMERA += libmmcamera_tintless_algo MM_CAMERA += libmmcamera_tintless_bg_pca_algo MM_CAMERA += libmmcamera2_mct_shimlayer MM_CAMERA += libmmcamera_csidtg MM_CAMERA += libmmcamera_eebinparse MM_CAMERA += libmmcamera_imglib_faceproc_adspstub MM_CAMERA += libmmcamera_isp_abf40 MM_CAMERA += libmmcamera_isp_template MM_CAMERA += libmmcamera_dummyalgo MM_CAMERA += libactuator_bu64297 MM_CAMERA += libactuator_dw9761b MM_CAMERA += libactuator_dw9763 MM_CAMERA += libchromatix_csidtg_common MM_CAMERA += libchromatix_csidtg_cpp_preview MM_CAMERA += libchromatix_csidtg_postproc MM_CAMERA += libchromatix_csidtg_preview MM_CAMERA += libchromatix_csidtg_zsl_preview MM_CAMERA += camera_config.xml MM_CAMERA += imx258_chromatix.xml MM_CAMERA += imx258_mono_chromatix.xml MM_CAMERA += sensors.hal.tof MM_CAMERA += libchromaflash MM_CAMERA += liboptizoom MM_CAMERA += libseemore MM_CAMERA += libblurbuster MM_CAMERA += libclearsight MM_CAMERA += libts_face_beautify_hal_system MM_CAMERA += libubifocus_system MM_CAMERA += libdualcameraddm_system MM_CAMERA += libchromaflash_system MM_CAMERA += liboptizoom_system MM_CAMERA += libseemore_system ifneq ($(TARGET_SCVE_DISABLED),true) MM_CAMERA += libjni_trackingfocus MM_CAMERA += libjni_panorama endif MM_CAMERA += libjni_makeupV2 MM_CAMERA += libjni_sharpshooter MM_CAMERA += libjni_stillmore MM_CAMERA += libjni_optizoom MM_CAMERA += libjni_chromaflash MM_CAMERA += libjni_ubifocus MM_CAMERA += libjni_blurbuster MM_CAMERA += libllvd_smore MM_CAMERA += libllvd_sw_tnr MM_CAMERA += libdualcameraddm MM_CAMERA += libvideobokeh MM_CAMERA += libubifocus MM_CAMERA += libjni_dualcamera MM_CAMERA += libts_detected_face_hal MM_CAMERA += libts_detected_face_jni MM_CAMERA += libts_face_beautify_hal MM_CAMERA += libts_face_beautify_jni MM_CAMERA += libjni_clearsight MM_CAMERA += imx268_chromatix.xml MM_CAMERA += libchromatix_imx268_common MM_CAMERA += libchromatix_imx268_cpp_hfr_60 MM_CAMERA += libchromatix_imx268_cpp_hfr_90 MM_CAMERA += libchromatix_imx268_cpp_hfr_120 MM_CAMERA += libchromatix_imx268_cpp_liveshot MM_CAMERA += libchromatix_imx268_cpp_preview MM_CAMERA += libchromatix_imx268_cpp_snapshot MM_CAMERA += libchromatix_imx268_cpp_video MM_CAMERA += libchromatix_imx268_cpp_video_4k MM_CAMERA += libchromatix_imx268_default_video MM_CAMERA += libchromatix_imx268_hfr_60 MM_CAMERA += libchromatix_imx268_hfr_90 MM_CAMERA += libchromatix_imx268_hfr_120 MM_CAMERA += libchromatix_imx268_liveshot MM_CAMERA += libchromatix_imx268_postproc MM_CAMERA += libchromatix_imx268_preview MM_CAMERA += libchromatix_imx268_snapshot MM_CAMERA += libchromatix_imx268_video_4k MM_CAMERA += libchromatix_imx268_4k_preview_3a MM_CAMERA += libchromatix_imx268_4k_video_3a MM_CAMERA += libchromatix_imx268_default_preview_3a MM_CAMERA += libchromatix_imx268_default_video_3a MM_CAMERA += libchromatix_imx268_hfr_60_3a MM_CAMERA += libchromatix_imx268_hfr_90_3a MM_CAMERA += libchromatix_imx268_hfr_120_3a MM_CAMERA += libchromatix_imx268_zsl_preview_3a MM_CAMERA += libchromatix_imx268_zsl_video_3a #Gallery MM_CAMERA += libfiltergenerator MM_CAMERA += libhazebuster MM_CAMERA += libtrueportrait MM_CAMERA += libseestraight MM_CAMERA += libtruescanner MM_CAMERA += libjni_filtergenerator MM_CAMERA += libjni_hazebuster MM_CAMERA += libjni_trueportrait MM_CAMERA += libjni_seestraight MM_CAMERA += libjni_truescanner_v2 #CamX MM_CAMERA += CAMERA_ICP.elf MM_CAMERA += camera.qcom MM_CAMERA += com.qti.chi.override MM_CAMERA += com.qti.node.memcpy MM_CAMERA += com.qti.node.swregistration MM_CAMERA += com.qti.sensormodule.liteon_imx318.bin MM_CAMERA += com.qti.sensormodule.semco_imx258.bin MM_CAMERA += imx318tuned.bin MM_CAMERA += libcamxosutils #to be removed after source code merges MM_CAMERA += libcamxstaticaecalgo MM_CAMERA += libcamxstaticafalgo MM_CAMERA += libcamxstaticafdalgo MM_CAMERA += libcamxstaticasdalgo MM_CAMERA += libcamxstaticawbalgo MM_CAMERA += libcom.qti.stats.aec MM_CAMERA += libcom.qti.stats.af MM_CAMERA += libcom.qti.stats.awb #end of can be removed after source code merges MM_CAMERA += libcom.qti.stats.asd MM_CAMERA += libcom.qti.stats.pdlib MM_CAMERA += libcom.qtistatic.stats.asd MM_CAMERA += com.qtistatic.stats.aec MM_CAMERA += com.qtistatic.stats.af MM_CAMERA += com.qtistatic.stats.awb MM_CAMERA += com.qti.stats.aec MM_CAMERA += com.qti.stats.af MM_CAMERA += com.qti.stats.awb MM_CAMERA += libcamxstatscore MM_CAMERA += libcamxstatsparser MM_CAMERA += libcamxutils MM_CAMERA += libsync MM_CAMERA += stripinglib MM_CAMERA += systemdefault.bin MM_CAMERA += titan17x_usecases.bin #MM_CORE MM_CORE := libdisp-aba MM_CORE += libmm-abl MM_CORE += libmm-abl-oem MM_CORE += libscale MM_CORE += mm-pp-daemon MM_CORE += libmm-hdcpmgr MM_CORE += libvpu MM_CORE += libvfmclientutils MM_CORE += libmm-qdcm MM_CORE += libmm-disp-apis MM_CORE += libmm-als #MM_COLOR_CONVERSION MM_COLOR_CONVERSION := libtile2linear #MM_COLOR_CONVERTOR MM_COLOR_CONVERTOR := libmm-color-convertor MM_COLOR_CONVERTOR += libI420colorconvert #MM_GESTURES MM_GESTURES := gesture_mouse.idc MM_GESTURES += GestureOverlayService MM_GESTURES += GestureTouchInjectionConfig MM_GESTURES += GestureTouchInjectionService MM_GESTURES += libgesture-core MM_GESTURES += libmmgesture-activity-trigger MM_GESTURES += libmmgesture-bus MM_GESTURES += libmmgesture-camera MM_GESTURES += libmmgesture-camera-factory MM_GESTURES += libmmgesture-client MM_GESTURES += libmmgesture-jni MM_GESTURES += libmmgesture-linux MM_GESTURES += libmmgesture-service MM_GESTURES += mm-gesture-daemon #MM_GRAPHICS MM_GRAPHICS := a225_pfp.fw MM_GRAPHICS += a225_pm4.fw MM_GRAPHICS += a225p5_pm4.fw MM_GRAPHICS += a300_pfp.fw MM_GRAPHICS += a300_pm4.fw MM_GRAPHICS += a330_pfp.fw MM_GRAPHICS += a330_pm4.fw MM_GRAPHICS += a420_pfp.fw MM_GRAPHICS += a420_pm4.fw MM_GRAPHICS += a530_pfp.fw MM_GRAPHICS += a530_pm4.fw MM_GRAPHICS += a530v1_pfp.fw MM_GRAPHICS += a530v1_pm4.fw MM_GRAPHICS += a530_gpmu.fw2 MM_GRAPHICS += a530v2_seq.fw2 MM_GRAPHICS += a530v3_gpmu.fw2 MM_GRAPHICS += a530v3_seq.fw2 MM_GRAPHICS += a530_zap.b00 MM_GRAPHICS += a530_zap.b01 MM_GRAPHICS += a530_zap.b02 MM_GRAPHICS += a530_zap.mdt MM_GRAPHICS += a530_zap.elf MM_GRAPHICS += a512_zap.b00 MM_GRAPHICS += a512_zap.b01 MM_GRAPHICS += a512_zap.b02 MM_GRAPHICS += a512_zap.mdt MM_GRAPHICS += a512_zap.elf MM_GRAPHICS += a508_zap.b00 MM_GRAPHICS += a508_zap.b01 MM_GRAPHICS += a508_zap.b02 MM_GRAPHICS += a508_zap.mdt MM_GRAPHICS += a508_zap.elf MM_GRAPHICS += a506_zap.b00 MM_GRAPHICS += a506_zap.b01 MM_GRAPHICS += a506_zap.b02 MM_GRAPHICS += a506_zap.mdt MM_GRAPHICS += a506_zap.elf MM_GRAPHICS += a540_gpmu.fw2 MM_GRAPHICS += a630_sqe.fw MM_GRAPHICS += a630_gmu.bin MM_GRAPHICS += a630_zap.b00 MM_GRAPHICS += a630_zap.b01 MM_GRAPHICS += a630_zap.b02 MM_GRAPHICS += a630_zap.elf MM_GRAPHICS += a630_zap.mdt MM_GRAPHICS += a615_zap.b00 MM_GRAPHICS += a615_zap.b01 MM_GRAPHICS += a615_zap.b02 MM_GRAPHICS += a615_zap.elf MM_GRAPHICS += a615_zap.mdt MM_GRAPHICS += eglsubAndroid MM_GRAPHICS += eglSubDriverAndroid MM_GRAPHICS += gpu_dcvsd MM_GRAPHICS += leia_pfp_470.fw MM_GRAPHICS += leia_pm4_470.fw MM_GRAPHICS += libadreno_utils MM_GRAPHICS += libC2D2 MM_GRAPHICS += libCB MM_GRAPHICS += libc2d2_z180 MM_GRAPHICS += libc2d2_a3xx MM_GRAPHICS += libEGL_adreno MM_GRAPHICS += libc2d30-a3xx MM_GRAPHICS += libc2d30-a4xx MM_GRAPHICS += libc2d30-a5xx MM_GRAPHICS += libc2d30_bltlib MM_GRAPHICS += libc2d30 MM_GRAPHICS += libgsl MM_GRAPHICS += libGLESv2_adreno MM_GRAPHICS += libGLESv2S3D_adreno MM_GRAPHICS += libGLESv1_CM_adreno MM_GRAPHICS += libllvm-a3xx MM_GRAPHICS += libllvm-arm MM_GRAPHICS += libllvm-glnext MM_GRAPHICS += libllvm-qcom MM_GRAPHICS += libOpenVG MM_GRAPHICS += libOpenCL MM_GRAPHICS += libplayback_adreno MM_GRAPHICS += libq3dtools_adreno MM_GRAPHICS += libq3dtools_esx MM_GRAPHICS += libQTapGLES MM_GRAPHICS += libsc-a2xx MM_GRAPHICS += libsc-a3xx MM_GRAPHICS += libsc-adreno.a MM_GRAPHICS += ProfilerPlaybackTools MM_GRAPHICS += yamato_pfp.fw MM_GRAPHICS += yamato_pm4.fw MM_GRAPHICS += librs_adreno MM_GRAPHICS += libRSDriver_adreno MM_GRAPHICS += libbccQTI MM_GRAPHICS += android.hardware.renderscript@1.0-impl MM_GRAPHICS += libintrinsics_skel MM_GRAPHICS += librs_adreno_sha1 MM_GRAPHICS += libESXEGL_adreno MM_GRAPHICS += libESXGLESv1_CM_adreno MM_GRAPHICS += libESXGLESv2_adreno MM_GRAPHICS += libRBEGL_adreno MM_GRAPHICS += libRBGLESv1_CM_adreno MM_GRAPHICS += libRBGLESv2_adreno MM_GRAPHICS += vulkan.msm8998 MM_GRAPHICS += libllvm-qgl #MM_HTTP MM_HTTP := libmmipstreamaal MM_HTTP += libmmipstreamnetwork MM_HTTP += libmmipstreamutils MM_HTTP += libmmiipstreammmihttp MM_HTTP += libmmhttpstack MM_HTTP += libmmipstreamsourcehttp MM_HTTP += libmmqcmediaplayer MM_HTTP += libmmipstreamdeal #MM_DRMPLAY MM_DRMPLAY := drmclientlib MM_DRMPLAY += libDrmPlay #MM_MUX MM_MUX := libFileMux #MM_OSAL MM_OSAL := libmmosal MM_OSAL += libmmosal_proprietary #MM_PARSER MM_PARSER := libmmparser_lite #MM_QSM MM_QSM := libmmQSM #MM_RTP MM_RTP := libmmrtpdecoder MM_RTP += libmmrtpencoder #MM_STEREOLIB MM_STEREOLIB := libmmstereo #MM_STILL MM_STILL := libadsp_jpege_skel MM_STILL += libgemini MM_STILL += libimage-jpeg-dec-omx-comp MM_STILL += libimage-jpeg-enc-omx-comp MM_STILL += libimage-omx-common MM_STILL += libjpegdhw MM_STILL += libjpegehw MM_STILL += libmmipl MM_STILL += libmmjpeg MM_STILL += libmmjps MM_STILL += libmmmpo MM_STILL += libmmmpod MM_STILL += libmmqjpeg_codec MM_STILL += libmmstillomx MM_STILL += libqomx_jpegenc MM_STILL += libqomx_jpegdec MM_STILL += test_gemini MM_STILL += libjpegdmahw MM_STILL += libmmqjpegdma MM_STILL += libqomx_jpegenc_pipe #MM_VIDEO ifneq ($(call is-board-platform,sdm845),true) MM_VIDEO := ast-mm-vdec-omx-test7k MM_VIDEO += iv_h264_dec_lib MM_VIDEO += iv_mpeg4_dec_lib MM_VIDEO += libh264decoder MM_VIDEO += libHevcSwDecoder MM_VIDEO += liblasic MM_VIDEO += libmm-adspsvc MM_VIDEO += libmp4decoder MM_VIDEO += libmp4decodervlddsp MM_VIDEO += libOmxH264Dec MM_VIDEO += libOmxIttiamVdec MM_VIDEO += libOmxIttiamVenc MM_VIDEO += libOmxMpeg4Dec MM_VIDEO += libOmxOn2Dec MM_VIDEO += libOmxrv9Dec MM_VIDEO += libon2decoder MM_VIDEO += librv9decoder MM_VIDEO += libVenusMbiConv MM_VIDEO += venc-device-android MM_VIDEO += venus-v1.b00 MM_VIDEO += venus-v1.b01 MM_VIDEO += venus-v1.b02 MM_VIDEO += venus-v1.b03 MM_VIDEO += venus-v1.b04 MM_VIDEO += venus-v1.mdt MM_VIDEO += venus-v1.mbn MM_VIDEO += venus.b00 MM_VIDEO += venus.b01 MM_VIDEO += venus.b02 MM_VIDEO += venus.b03 MM_VIDEO += venus.b04 MM_VIDEO += venus.mbn MM_VIDEO += venus.mdt MM_VIDEO += vidc_1080p.fw MM_VIDEO += vidc.b00 MM_VIDEO += vidc.b01 MM_VIDEO += vidc.b02 MM_VIDEO += vidc.b03 MM_VIDEO += vidcfw.elf MM_VIDEO += vidc.mdt MM_VIDEO += vidc_720p_command_control.fw MM_VIDEO += vidc_720p_h263_dec_mc.fw MM_VIDEO += vidc_720p_h264_dec_mc.fw MM_VIDEO += vidc_720p_h264_enc_mc.fw MM_VIDEO += vidc_720p_mp4_dec_mc.fw MM_VIDEO += vidc_720p_mp4_enc_mc.fw MM_VIDEO += vidc_720p_vc1_dec_mc.fw MM_VIDEO += vt-sim-test MM_VIDEO += libgpustats MM_VIDEO += libvqzip endif MM_VIDEO += libOmxVidEnc MM_VIDEO += libOmxWmvDec MM_VIDEO += libMpeg4SwEncoder MM_VIDEO += libswvdec MM_VIDEO += libVC1DecDsp_skel MM_VIDEO += libVC1DecDsp_skel.so MM_VIDEO += libVC1Dec MM_VIDEO += libVC1Dec.so MM_VIDEO += libavenhancements MM_VIDEO += libfastcrc MM_VIDEO += libstreamparser MM_VIDEO += libvideoutils MM_VIDEO += libUBWC #MM_VPU MM_VPU := vpu.b00 MM_VPU += vpu.b01 MM_VPU += vpu.b02 MM_VPU += vpu.b03 MM_VPU += vpu.b04 MM_VPU += vpu.b05 MM_VPU += vpu.b06 MM_VPU += vpu.b07 MM_VPU += vpu.b08 MM_VPU += vpu.b09 MM_VPU += vpu.b10 MM_VPU += vpu.b11 MM_VPU += vpu.b12 MM_VPU += vpu.mbn MM_VPU += vpu.mdt #MODEM_APIS MODEM_APIS := libadc MODEM_APIS += libauth MODEM_APIS += libcm MODEM_APIS += libdsucsd MODEM_APIS += libfm_wan_api MODEM_APIS += libgsdi_exp MODEM_APIS += libgstk_exp MODEM_APIS += libisense MODEM_APIS += libloc_api MODEM_APIS += libmmgsdilib MODEM_APIS += libmmgsdisessionlib MODEM_APIS += libmvs MODEM_APIS += libnv MODEM_APIS += liboem_rapi MODEM_APIS += libpbmlib MODEM_APIS += libpdapi MODEM_APIS += libpdsm_atl MODEM_APIS += libping_mdm MODEM_APIS += libplayready MODEM_APIS += librfm_sar MODEM_APIS += libsnd MODEM_APIS += libtime_remote_atom MODEM_APIS += libvoem_if MODEM_APIS += libwidevine MODEM_APIS += libwms MODEM_APIS += libcommondefs MODEM_APIS += libcm_fusion MODEM_APIS += libcm_mm_fusion MODEM_APIS += libdsucsdappif_apis_fusion MODEM_APIS += liboem_rapi_fusion MODEM_APIS += libpbmlib_fusion MODEM_APIS += libping_lte_rpc MODEM_APIS += libwms_fusion #MSM_IRQBALANCE MSM_IRQBALANCE := msm_irqbalance #PD_LOCATER - Service locater binary/libs PD_LOCATER := pd-mapper PD_LOCATER += libpdmapper PD_LOCATER += libjson # 3rd party support library #PERIPHERAL MANAGER: PERMGR := pm-service PERMGR += libperipheral_client PERMGR += pm-proxy #PROFILER PROFILER := profiler_tester PROFILER += profiler_daemon PROFILER += libprofiler_msmadc #QCRIL QCRIL := libril-qc-1 QCRIL += libril-qc-qmi-1 QCRIL += libril-qc-hal-qmi QCRIL += libril-qcril-hook-oem QCRIL += qcrilhook QCRIL += qcrilmsgtunnel QCRIL += qcrilhook.xml QCRIL += libwmsts QCRIL += libril-qc-radioconfig QCRIL += libril-qc-ltedirectdisc QCRIL += librilqmiservices QCRIL += libsettings QCRIL += liblqe QCRIL += lib_remote_simlock QCRIL += vendor.qti.hardware.radio.am@1.0_vendor QCRIL += vendor.qti.hardware.radio.ims@1.0_vendor QCRIL += vendor.qti.hardware.radio.lpa@1.0_vendor QCRIL += vendor.qti.hardware.radio.qcrilhook@1.0_vendor QCRIL += vendor.qti.hardware.radio.qtiradio@1.0_vendor #QMI QMI := check_system_health QMI := irsc_util QMI += libidl QMI += libqcci_legacy QMI += libqmi QMI += libqmi_cci QMI += libqmi_client_helper QMI += libqmi_common_so QMI += libqmi_csi QMI += libqmi_encdec QMI += libsmemlog QMI += libmdmdetect QMI += libqmiservices QMI += qmiproxy QMI += qmi_config.xml QMI += libqmi_cci_system #QOSMGR QOSMGR := qosmgr QOSMGR += qosmgr_rules.xml #QVR QVR := qvrservice_6dof_config.xml QVR += qvrservice_6dof_config_stereo.xml QVR += qvrservice_config.txt QVR += ov7251_640x480_cam_config.xml QVR += ov9282_stereo_1280x400_cam_config.xml QVR += ov9282_stereo_2560x800_cam_config.xml QVR += libqvrservice_ov7251_hvx_tuning QVR += libqvrservice_ov9282_hvx_tuning QVR += qvrservice QVR += qvrcameratseq QVR += qvrcameratseq64 QVR += libqvr_adsp_driver_stub QVR += libqvr_adsp_driver_skel QVR += libqvrservice QVR += libqvrservice_client QVR += libqvrcamera_client QVR += libqvrservice_hvxcameraclient #REMOTEFS REMOTEFS := rmt_storage RFS_ACCESS := rfs_access #RNGD RNGD := rngd #SCVE SCVE := _conf_eng_num_sym_font40_4transd_zscore_morph_.trn2876.trn SCVE += _conf_eng_num_sym_font40_conc2_meshrn__de__1_1__zscore_morph.trn10158.trn SCVE += _conf_eng_num_sym_font40_rbp_data5100_patch500_5x5_24x24_dim727.trn31585.trn SCVE += _eng_font40_4transmeshrnorm6x6_leaflda85_ligature_ext14_c70_sp1lI_newxml3.trn31299.trn SCVE += _numpunc_font40_4transmeshrnorm_leafnum1.trn9614.trn SCVE += _numpunc_font40_conc2_DEFn__BGTouchy6x6n__1_1__morph.trn32025.trn SCVE += _numpunc_parteng_font40_4transmeshr_morph.trn400.trn SCVE += character.cost SCVE += CharType.dat SCVE += chinese.lm SCVE += chinese_address_20150304.bin SCVE += ChinesePunctuation.rst SCVE += cnn_small5_synthrev_sw_sampled2_bin SCVE += dcnConfigForEngCNN.txt SCVE += dcnConfigForMultiCNN.txt SCVE += english_address_20150213.bin SCVE += english_dictionary_20150213.bin SCVE += forestData.bin SCVE += glvq_kor_2197classes_576_100dim_i42_centroidNorm.dat SCVE += glvq_kor_consonant_19classes_64_16dim_i0_linearNorm.dat SCVE += GLVQDecoder_fixed.ohie SCVE += gModel.dat SCVE += gModel_system.dat SCVE += gModel.dat_system SCVE += hGLVQ_kor_RLF80_float.hie SCVE += korean.lm SCVE += korean_address_20150129.bin SCVE += korean_dictionary_20150414.bin SCVE += LDA_kor_2197classes_576dim_centroidNorm.dat SCVE += LDA_kor_consonant_19classes_64dim_linearNorm.dat SCVE += libhvxMathVIO SCVE += libhvxMathVIO.so SCVE += libobjectMattingApp_skel SCVE += libobjectMattingApp_skel.so SCVE += libscveBlobDescriptor SCVE += libscveBlobDescriptor_skel SCVE += libscveBlobDescriptor_skel.so SCVE += libscveBlobDescriptor_stub SCVE += libscveCleverCapture SCVE += libscveCleverCapture_skel SCVE += libscveCleverCapture_skel.so SCVE += libscveCleverCapture_stub SCVE += libscveCommon SCVE += libscveCommon_stub SCVE += libscveFaceLandmark_skel SCVE += libscveFaceLandmark_skel.so SCVE += libscveFaceLandmarks SCVE += libscveFaceLandmarks_stub SCVE += libscveFaceRecognition SCVE += libscveFaceRecognition_skel SCVE += libscveFaceRecognition_skel.so SCVE += libscveFaceRecognition_stub SCVE += libscveImageCloning SCVE += libscveImageCorrection SCVE += libscveImageRemoval SCVE += libscveMotionVector SCVE += libscveObjectMatting SCVE += libscveObjectMatting_stub SCVE += libscveObjectSegmentation SCVE += libscveObjectSegmentation_skel SCVE += libscveObjectSegmentation_skel.so SCVE += libscveObjectSegmentation_stub SCVE += libscveObjectTracker SCVE += libscveObjectTracker_stub SCVE += libscvePanorama SCVE += libscvePanorama_lite SCVE += libscveScan3D SCVE += libscveT2T_skel SCVE += libscveT2T_skel.so SCVE += libscveTextReco SCVE += libscveTextReco_skel SCVE += libscveTextReco_skel.so SCVE += libscveTextReco_stub SCVE += libscveTextRecoPostProcessing SCVE += libscveVideoSummary SCVE += libscveVideoSummary_skel SCVE += libscveVideoSummary_skel.so SCVE += libscveVideoSummary_stub SCVE += libobjectMattingApp_skel_system SCVE += libobjectMattingApp_skel_system.so SCVE += libscveBlobDescriptor_system SCVE += libscveBlobDescriptor_skel_system SCVE += libscveBlobDescriptor_skel_system.so SCVE += libscveBlobDescriptor_stub_system SCVE += libscveCleverCapture_system SCVE += libscveCleverCapture_skel_system SCVE += libscveCleverCapture_skel_system.so SCVE += libscveCleverCapture_stub_system SCVE += libscveCommon_system SCVE += libscveCommon_stub_system SCVE += libscveFaceLandmark_skel_system SCVE += libscveFaceLandmark_skel_system.so SCVE += libscveFaceLandmarks_system SCVE += libscveFaceLandmarks_stub_system SCVE += libscveFaceRecognition_system SCVE += libscveFaceRecognition_skel_system SCVE += libscveFaceRecognition_skel_system.so SCVE += libscveFaceRecognition_stub_system SCVE += libscveImageCloning_system SCVE += libscveImageCorrection_system SCVE += libscveImageRemoval_system SCVE += libscveMotionVector_system SCVE += libscveObjectMatting_system SCVE += libscveObjectMatting_stub_system SCVE += libscveObjectSegmentation_system SCVE += libscveObjectSegmentation_skel_system SCVE += libscveObjectSegmentation_skel_system.so SCVE += libscveObjectSegmentation_stub_system SCVE += libscveObjectTracker_system SCVE += libscveObjectTracker_stub_system SCVE += libscvePanorama_system SCVE += libscvePanorama_lite_system SCVE += libscveScan3D_system SCVE += libhvxMathVIO_system SCVE += libhvxMathVIO_system.so SCVE += libscveT2T_skel_system SCVE += libscveT2T_skel_system.so SCVE += libscveTextReco_system SCVE += libscveTextReco_skel_system SCVE += libscveTextReco_skel_system.so SCVE += libscveTextReco_stub_system SCVE += libscveTextRecoPostProcessing_system SCVE += libscveVideoSummary_system SCVE += libscveVideoSummary_skel_system SCVE += libscveVideoSummary_skel_system.so SCVE += libscveVideoSummary_stub_system SCVE += nontextremoval_eng.model SCVE += nontextremoval_multilang.model SCVE += punRangeData.rst #SECUREMSM SECUREMSM := SECUREMSM += aostlmd SECUREMSM += chamomile_provision SECUREMSM += dbAccess SECUREMSM += default_qti_regular_37.bin SECUREMSM += default_qti_regular_43.bin SECUREMSM += default_qti_regular_90.bin SECUREMSM += e2image_blocks SECUREMSM += filefrag_blocks SECUREMSM += gatekeeper.msm8998 SECUREMSM += keystore.msm8998 SECUREMSM += libChamomilePA SECUREMSM += libcppf SECUREMSM += libdrmprplugin SECUREMSM += libdrmprplugin_customer SECUREMSM += libFidoCrypto_system SECUREMSM += libFidoCrypto_vendor SECUREMSM += libFidoCryptoJNI SECUREMSM += libFIDOKeyProvisioning SECUREMSM += libFidoSuiJNI SECUREMSM += libprdrmdecrypt SECUREMSM += libprdrmdecrypt_customer SECUREMSM += libprmediadrmdecrypt SECUREMSM += libprmediadrmdecrypt_customer SECUREMSM += libprmediadrmplugin SECUREMSM += libprmediadrmplugin_customer SECUREMSM += libdrmfs SECUREMSM += libdrmMinimalfs SECUREMSM += libdrmMinimalfsHelper SECUREMSM += libdrmtime SECUREMSM += libgoogletest SECUREMSM += libGPreqcancel SECUREMSM += libGPreqcancel_svc SECUREMSM += libGPTEE_system SECUREMSM += libGPTEE_vendor SECUREMSM += libtzplayready SECUREMSM += libbase64 SECUREMSM += libtzplayready_customer SECUREMSM += libprpk3 SECUREMSM += libprdrmengine SECUREMSM += libtzdrmgenprov SECUREMSM += liboemcrypto SECUREMSM += liboemcrypto.a SECUREMSM += libQSEEComAPI SECUREMSM += libQSEEComAPIStatic SECUREMSM += libMcClient SECUREMSM += libMcCommon SECUREMSM += libMcDriverDevice SECUREMSM += libMcRegistry SECUREMSM += libmdtp SECUREMSM += libmdtp_crypto SECUREMSM += libmdtpdemojni SECUREMSM += libPaApi SECUREMSM += libqmp_sphinx_jni SECUREMSM += libqmp_sphinxlog SECUREMSM += libqmpart SECUREMSM += librmp SECUREMSM += libpvr SECUREMSM += librpmb SECUREMSM += librpmbStatic SECUREMSM += librpmbStaticHelper SECUREMSM += libSampleAuthJNI SECUREMSM += libSampleExtAuthJNI SECUREMSM += libsecotacommon SECUREMSM += libsecotanservice SECUREMSM += libSecureSampleAuthJNI SECUREMSM += libSecureExtAuthJNI SECUREMSM += lib-sec-disp SECUREMSM += libsi SECUREMSM += libsmcinvokecred SECUREMSM += libspcom SECUREMSM += libspiris SECUREMSM += libspl SECUREMSM += spdaemon SECUREMSM += sec_nvm SECUREMSM += libssd SECUREMSM += libssdStatic SECUREMSM += libssdStaticHelper SECUREMSM += libqsappsver SECUREMSM += libTLV SECUREMSM += libtzcom SECUREMSM += libqisl #SECUREMSM += seccamd SECUREMSM += mcDriverDaemon SECUREMSM += qfipsverify SECUREMSM += qfipsverify.hmac SECUREMSM += bootimg.hmac SECUREMSM += libDevHealth SECUREMSM += libHealthAuthClient SECUREMSM += libHealthAuthJNI SECUREMSM += liblmclient SECUREMSM += HealthAuthService SECUREMSM += qseecomd SECUREMSM += SampleAuthenticatorService SECUREMSM += SampleExtAuthService SECUREMSM += SecotaAPI SECUREMSM += secotad SECUREMSM += SecotaService SECUREMSM += SecureExtAuthService SECUREMSM += smcinvoked SECUREMSM += smcinvokepkgmgr SECUREMSM += soter_client SECUREMSM += StoreKeybox SECUREMSM += sphinxproxy SECUREMSM += TelemetryService SECUREMSM += tbaseLoader SECUREMSM += hdcp1prov SECUREMSM += libhdcp1prov SECUREMSM += hdcp2p2prov SECUREMSM += libhdcp2p2prov SECUREMSM += tloc_daemon SECUREMSM += kb_parser SECUREMSM += libhdcpsrm SECUREMSM += libcpion #SENSORS SENSORS := activity_recognition.msm8998 SENSORS += sensor_def_qcomdev.conf SENSORS += sensors_settings SENSORS += libsnsdiaglog SENSORS += sensors.mata SENSORS += sensors.qcom SENSORS += libssc SENSORS += libsensorslog SENSORS += libsensor1 SENSORS += libcalmodule_common SENSORS += calmodule.cfg SENSORS += sensor_calibrate SENSORS += android.hardware.sensors@1.0-service SENSORS += android.hardware.sensors@1.0-impl SENSORS += libsns_low_lat_stream_stub SENSORS += libsns_low_lat_stream_skel SENSORS += libssc_system SENSORS += libsensorslog_system SENSORS += libsnsdiaglog_system SENSORS += sensors_config_module #SS_RESTART SS_RESTART := ssr_diag #SVGT SVGT := libsvgecmascriptBindings SVGT += libsvgutils SVGT += libsvgabstraction SVGT += libsvgscriptEngBindings SVGT += libsvgnativeandroid SVGT += libsvgt SVGT += libsvgcore #SWDEC2DTO3D SW2DTO3D := libswdec_2dto3d #SYSTEM HEALTH MONITOR SYSTEM_HEALTH_MONITOR := libsystem_health_mon #TELEPHONY_APPS TELEPHONY_APPS := datastatusnotification TELEPHONY_APPS += QtiTelephonyService TELEPHONY_APPS += QtiAudioService TELEPHONY_APPS += telephonyservice.xml TELEPHONY_APPS += embms TELEPHONY_APPS += embms.xml TELEPHONY_APPS += libimscamera_jni TELEPHONY_APPS += libimsmedia_jni #TFTP TFTP := tftp_server #THERMAL-ENGINE THERMAL-ENGINE := thermal-engine THERMAL-ENGINE += libthermalclient THERMAL-ENGINE += thermal-engine.conf #TIME_SERVICES TIME_SERVICES := time_daemon TimeService libTimeService #TINY xml TINYXML := libtinyxml #TINYXML2 TINYXML2 := libtinyxml2 #VERIZON VERIZON_PREINSTALL := DMService VERIZON_PREINSTALL += ConnMO VERIZON_PREINSTALL += VzwOmaTrigger #VPP VPP := DE.o.msm8937 VPP += DE.o.msm8953 VPP += DE.o.sdm660 VPP += libhcp_rpc_skel VPP += libhcp_rpc_skel.so VPP += libmmsw_detail_enhancement VPP += libmmsw_math VPP += libmmsw_opencl VPP += libmmsw_platform VPP += libOmxVpp VPP += libvpplibrary VPP += libvpphcp VPP += libvpphvx VPP += libvpp_frc VPP += libvpp_frc.so VPP += libvpp_svc_skel VPP += libvpp_svc_skel.so VPP += libvppclient VPP += vendor.qti.hardware.vpp@1.1 #WFD WFD := capability.xml WFD += libwfdmminterface WFD += libmmwfdsinkinterface WFD += libmmwfdsrcinterface WFD += libwfdmmservice WFD += libwfduibcinterface WFD += libwfduibcsrcinterface WFD += libwfduibcsrc WFD += libOmxMux WFD += libwfdcommonutils WFD += libwfdhdcpcp WFD += libwfdlinkstub WFD += libwfdmmsrc WFD += libwfdmmutils WFD += libwfdnative WFD += libwfdsm WFD += libwfdservice WFD += libwfdrtsp WFD += libextendedremotedisplay WFD += libOmxVideoDSMode WFD += WfdCommon WFD += WfdService WFD += wfdconfig.xml WFD += wfdconfigsink.xml WFD += WfdP2pCommon WFD += WfdP2pService WFD += com.qualcomm.wfd.permissions.xml WFD += wfdservice WFD += libqti-wl WFD += com.qualcomm.qti.wifidisplayhal@1.0-halimpl WFD += com.qualcomm.qti.wifidisplayhal@1.0 WFD += com.qualcomm.qti.wifidisplayhal@1.0_system WFD += wifidisplayhalservice WFD += libwfdhaldsmanager WFD += libwfdmodulehdcpsession WFD += libwfdavenhancements WFD += libwfdcodecv4l2 WFD += libwfdcommonutils_proprietary WFD += wfdservice.rc WFD += com.qualcomm.qti.wifidisplayhal@1.0-service.rc WFD += libwfdconfigutils WFD += libtinyalsa WFD += libstagefright_soft_aacenc WFD += libaacwrapper WFD += libion WFD += libdisplayconfig #WLAN WLAN := libAniAsf WLAN += cfg.dat ifneq ($(BOARD_HAS_ATH_WLAN_AR6320), true) WLAN += ptt_socket_app BUILD_PTT_SOCKET_APP:=1 endif WLAN += qcom_cfg_default.ini WLAN += qcom_cfg.ini WLAN += qcom_fw.bin WLAN += qcom_wapi_fw.bin WLAN += qcom_wlan_nv.bin WLAN += WCNSS_cfg.dat WLAN += WCNSS_qcom_cfg.ini WLAN += WCNSS_qcom_wlan_nv.bin WLAN += pktlogconf WLAN += athdiag WLAN += cld-fwlog-record WLAN += cld-fwlog-netlink WLAN += cld-fwlog-parser WLAN += cnss-daemon WLAN += libwifi-hal-qcom WLAN += libwpa_client WLAN += libqsap_sdk WLAN += hal_proxy_daemon WLAN += e_loop WLAN += myftm WLAN += vendor_cmd_tool WLAN += icm WLAN += libwpa_drv_oem WLAN += android.hardware.wifi@1.0-service #SPRINT SPRINT_PREINSTALL := MobileInstaller SPRINT_PREINSTALL += SMF SPRINT_PREINSTALL += libsmf REDBEND_PREINSTALL += OMADMDIL REDBEND_PREINSTALL += libsmm SPRINT_PREINSTALL += Dialer SPRINT_OEM := sprint-telephony-common SPRINT_OEM += sprint-services SPRINT_OEM += SprintHiddenMenu SPRINT_OEM += ChameleonProvider SPRINT_OEM += DataDispatcher SPRINT_OEM += PhoneDataHandler SPRINT_OEM += SystemDataHandler SPRINT_OEM += ChameleonProvider SPRINT_OEM += com.ts.android.chameleon.chameleonshare SPRINT_OEM += com.ts.android.chameleon.chameleonshare.xml SPRINT_OEM += com.ts.android.chameleon.dataservice SPRINT_OEM += com.ts.android.chameleon.dataservice.xml SPRINT_OEM += OemTelephonyApp PRODUCT_PACKAGES += $(ADSPRPC) PRODUCT_PACKAGES += $(BT) PRODUCT_PACKAGES += $(CNE) PRODUCT_PACKAGES += $(DATA) PRODUCT_PACKAGES += $(DIAG) PRODUCT_PACKAGES += $(DISPLAY) PRODUCT_PACKAGES += $(AOSP_GPS) PRODUCT_PACKAGES += $(GSMA_NFC) PRODUCT_PACKAGES += $(HBTP) PRODUCT_PACKAGES += $(HVDCP_OPTI) PRODUCT_PACKAGES += $(HY11_HY22_diff) #PRODUCT_PACKAGES += $(IMS_VT) PRODUCT_PACKAGES += $(IMS_TEL) PRODUCT_PACKAGES += $(IMS_TEL_RCS) PRODUCT_PACKAGES += $(IMS_RCS) PRODUCT_PACKAGES += $(IMS_NEWARCH) PRODUCT_PACKAGES += $(IMS_REGMGR) PRODUCT_PACKAGES += $(LATENCY) PRODUCT_PACKAGES += $(MDM_HELPER) PRODUCT_PACKAGES += $(MDM_HELPER_PROXY) PRODUCT_PACKAGES += $(MM_AUDIO) PRODUCT_PACKAGES += $(MM_CAMERA) PRODUCT_PACKAGES += $(MM_CORE) PRODUCT_PACKAGES += $(MM_COLOR_CONVERSION) PRODUCT_PACKAGES += $(MM_COLOR_CONVERTOR) PRODUCT_PACKAGES += $(MM_DRMPLAY) PRODUCT_PACKAGES += $(MM_GESTURES) PRODUCT_PACKAGES += $(MM_GRAPHICS) PRODUCT_PACKAGES += $(MM_HTTP) PRODUCT_PACKAGES += $(MM_STA) PRODUCT_PACKAGES += $(MM_MUX) PRODUCT_PACKAGES += $(MM_OSAL) PRODUCT_PACKAGES += $(MM_PARSER) PRODUCT_PACKAGES += $(MM_QSM) PRODUCT_PACKAGES += $(MM_RTP) PRODUCT_PACKAGES += $(MM_STEREOLIB) PRODUCT_PACKAGES += $(MM_STILL) PRODUCT_PACKAGES += $(MM_VIDEO) PRODUCT_PACKAGES += $(MM_VPU) PRODUCT_PACKAGES += $(MODEM_APIS) PRODUCT_PACKAGES += $(MSM_IRQBALANCE) PRODUCT_PACKAGES += $(PD_LOCATER) PRODUCT_PACKAGES += $(PERMGR) PRODUCT_PACKAGES += $(PERF) PRODUCT_PACKAGES += $(PROFILER) PRODUCT_PACKAGES += $(QCRIL) PRODUCT_PACKAGES += $(QMI) PRODUCT_PACKAGES += $(QOSMGR) PRODUCT_PACKAGES += $(QVR) PRODUCT_PACKAGES += $(REMOTEFS) PRODUCT_PACKAGES += $(RFS_ACCESS) PRODUCT_PACKAGES += $(RIDL_BINS) PRODUCT_PACKAGES += $(RNGD) PRODUCT_PACKAGES += $(SCVE) PRODUCT_PACKAGES += $(SECUREMSM) PRODUCT_PACKAGES += $(SENSORS) PRODUCT_PACKAGES += $(SCS_PROP) PRODUCT_PACKAGES += $(SS_RESTART) PRODUCT_PACKAGES += $(SVGT) PRODUCT_PACKAGES += $(SW2DTO3D) PRODUCT_PACKAGES += $(SYSTEM_HEALTH_MONITOR) PRODUCT_PACKAGES += $(TELEPHONY_APPS) PRODUCT_PACKAGES += $(TFTP) PRODUCT_PACKAGES += $(THERMAL) PRODUCT_PACKAGES += $(THERMAL-ENGINE) PRODUCT_PACKAGES += $(TIME_SERVICES) PRODUCT_PACKAGES += $(TINYXML) PRODUCT_PACKAGES += $(TINYXML2) PRODUCT_PACKAGES += $(VPP) PRODUCT_PACKAGES += $(WFD) PRODUCT_PACKAGES += $(WLAN) PRODUCT_PACKAGES += $(VERIZON_PREINSTALL) PRODUCT_PACKAGES += $(SPRINT_PREINSTALL) PRODUCT_PACKAGES += $(SPRINT_OEM) PRODUCT_PACKAGES += $(REDBEND_PREINSTALL) ================================================ FILE: dumpstate/Android.mk ================================================ # # Copyright 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. # LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := android.hardware.dumpstate@1.0-service.mata LOCAL_INIT_RC := android.hardware.dumpstate@1.0-service.mata.rc LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_SRC_FILES := \ DumpstateDevice.cpp \ service.cpp LOCAL_SHARED_LIBRARIES := \ android.hardware.dumpstate@1.0 \ libbase \ libcutils \ libdumpstateutil \ libhidlbase \ libhidltransport \ libhwbinder \ liblog \ libutils LOCAL_MODULE_TAGS := optional LOCAL_PROPRIETARY_MODULE := true include $(BUILD_EXECUTABLE) ================================================ FILE: dumpstate/DumpstateDevice.cpp ================================================ /* * Copyright 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 "dumpstate" #include "DumpstateDevice.h" #include #include #include #include #include #include #include #include #include "DumpstateUtil.h" #include "DumpstateInternal.h" using android::os::dumpstate::CommandOptions; using android::os::dumpstate::DumpFileToFd; using android::os::dumpstate::PropertiesHelper; using android::os::dumpstate::RunCommandToFd; namespace android { namespace hardware { namespace dumpstate { namespace V1_0 { namespace implementation { #define COMMAND_DEV "/dev/ttyACM0" #define ATTACHED_FILE "/sys/class/sidecar/attached" #define POWER_CONTROL_FILE "/sys/class/sidecar/power_control" void DumpstateDevice::dumpAccessory(int fdFile) { char buffer[5]; ssize_t amt; std::string cmd = "bugreport"; bool isPowerSet = false; /* If attached, power the accessory */ int fd = open(ATTACHED_FILE, O_RDONLY); if (fd >= 0) { memset(buffer,0,5); amt = read(fd, buffer, sizeof(buffer)); close(fd); if (atoi(buffer) == 1) { fd = open(POWER_CONTROL_FILE, O_RDWR); if (fd >= 0) { memset(buffer,0,5); amt = read(fd, buffer, sizeof(buffer)); if (atoi(buffer) == 0) { memset(buffer,0,5); int bytes = sprintf(buffer, "1\n"); amt = write(fd, buffer, (size_t)bytes); close(fd); isPowerSet = true; /* Sleep to allow the accessory to boot properly */ RunCommandToFd(fdFile, "", {"sleep", "10"}); } } else { ALOGI("Cannot open POWER CONTROL - %d", fd); } } else return; } /* Open command channel */ struct termios cnf; fd = open(COMMAND_DEV, O_RDWR | O_NOCTTY); if (fd < 0) { ALOGE(" No accessory currently connected\n"); return; } tcgetattr(fd, &cnf); cfmakeraw(&cnf); cnf.c_lflag |= ICANON; cnf.c_cc[VEOF] = 0xff; tcsetattr(fd, TCSANOW, &cnf); int len; ssize_t len_written; char byte; int ret = 0; len = strlen(cmd.c_str()) + 1; len_written = write(fd, cmd.c_str(), len); if (len_written != len) { ALOGE("!!!! Sending the request failed\n"); close(fd); return; } DumpFileFromFdToFd("Accessory", COMMAND_DEV, fd, fdFile, PropertiesHelper::IsDryRun()); close(fd); if (isPowerSet) { /* Turn off the power after use */ fd = open(POWER_CONTROL_FILE, O_RDWR); if (fd >= 0) { memset(buffer,0,5); int bytes = sprintf(buffer, "0\n"); amt = write(fd, buffer, (size_t)bytes); close(fd); } else { ALOGI("Cannot open POWER CONTROL - %d", fd); } } } // Methods from ::android::hardware::dumpstate::V1_0::IDumpstateDevice follow. Return DumpstateDevice::dumpstateBoard(const hidl_handle& handle) { if (handle == nullptr || handle->numFds < 1) { ALOGE("no FDs\n"); return Void(); } int fd = handle->data[0]; if (fd < 0) { ALOGE("invalid FD: %d\n", handle->data[0]); return Void(); } DumpFileToFd(fd, "CPU present", "/sys/devices/system/cpu/present"); DumpFileToFd(fd, "CPU online", "/sys/devices/system/cpu/online"); DumpFileToFd(fd, "INTERRUPTS", "/proc/interrupts"); DumpFileToFd(fd, "RPM Stats", "/d/rpm_stats"); DumpFileToFd(fd, "Power Management Stats", "/d/rpm_master_stats"); DumpFileToFd(fd, "CNSS Pre-Alloc", "/d/cnss-prealloc/status"); DumpFileToFd(fd, "SMD Log", "/d/ipc_logging/smd/log"); DumpFileToFd(fd, "BT Logs", "/d/ipc_logging/c171000.uart_pwr/log"); RunCommandToFd(fd, "ION HEAPS", {"/vendor/bin/sh", "-c", "for d in $(ls -d /d/ion/*); do for f in $(ls $d); do echo --- $d/$f; cat $d/$f; done; done"}); RunCommandToFd(fd, "Temperatures", {"/vendor/bin/sh", "-c", "for f in `ls /sys/class/thermal` ; do type=`cat /sys/class/thermal/$f/type` ; temp=`cat /sys/class/thermal/$f/temp` ; echo \"$type: $temp\" ; done"}); DumpFileToFd(fd, "cpu0-3 time-in-state", "/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state"); RunCommandToFd(fd, "cpu0-3 cpuidle", {"/vendor/bin/sh", "-c", "for d in $(ls -d /sys/devices/system/cpu/cpu0/cpuidle/state*); do echo \"$d: `cat $d/name` `cat $d/desc` `cat $d/time` `cat $d/usage`\"; done"}); DumpFileToFd(fd, "cpu4-8 time-in-state", "/sys/devices/system/cpu/cpu4/cpufreq/stats/time_in_state"); RunCommandToFd(fd, "cpu4-8 cpuidle", {"/vendor/bin/sh", "-c", "for d in $(ls -d /sys/devices/system/cpu/cpu4/cpuidle/state*); do echo \"$d: `cat $d/name` `cat $d/desc` `cat $d/time` `cat $d/usage`\"; done"}); dumpAccessory(fd); return Void(); }; } // namespace implementation } // namespace V1_0 } // namespace dumpstate } // namespace hardware } // namespace android ================================================ FILE: dumpstate/DumpstateDevice.h ================================================ /* * 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. */ #ifndef ANDROID_HARDWARE_DUMPSTATE_V1_0_DUMPSTATEDEVICE_H #define ANDROID_HARDWARE_DUMPSTATE_V1_0_DUMPSTATEDEVICE_H #include #include #include namespace android { namespace hardware { namespace dumpstate { namespace V1_0 { namespace implementation { using ::android::hardware::dumpstate::V1_0::IDumpstateDevice; using ::android::hardware::hidl_array; using ::android::hardware::hidl_handle; using ::android::hardware::hidl_string; using ::android::hardware::hidl_vec; using ::android::hardware::Return; using ::android::hardware::Void; using ::android::sp; struct DumpstateDevice : public IDumpstateDevice { // Methods from ::android::hardware::dumpstate::V1_0::IDumpstateDevice follow. Return dumpstateBoard(const hidl_handle& h) override; void dumpAccessory(int fd); }; } // namespace implementation } // namespace V1_0 } // namespace dumpstate } // namespace hardware } // namespace android #endif // ANDROID_HARDWARE_DUMPSTATE_V1_0_DUMPSTATEDEVICE_H ================================================ FILE: dumpstate/android.hardware.dumpstate@1.0-service.mata.rc ================================================ service dumpstate-1-0 /vendor/bin/hw/android.hardware.dumpstate@1.0-service.mata class hal user system group system ================================================ FILE: dumpstate/service.cpp ================================================ /* * 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.dumpstate@1.0-service.mata" #include #include #include "DumpstateDevice.h" using ::android::hardware::configureRpcThreadpool; using ::android::hardware::dumpstate::V1_0::IDumpstateDevice; using ::android::hardware::dumpstate::V1_0::implementation::DumpstateDevice; using ::android::hardware::joinRpcThreadpool; using ::android::OK; using ::android::sp; int main(int /* argc */, char* /* argv */ []) { sp dumpstate = new DumpstateDevice; configureRpcThreadpool(1, true /* will join */); if (dumpstate->registerAsService() != OK) { ALOGE("Could not register service."); return 1; } joinRpcThreadpool(); ALOGE("Service exited!"); return 1; } ================================================ FILE: egl.cfg ================================================ 0 0 android 0 1 adreno ================================================ FILE: essential-hiddenapi-package-whitelist.xml ================================================ ================================================ FILE: etc/apns-conf.xml ================================================ ================================================ FILE: etc/spn-conf.xml ================================================ ================================================ FILE: excluded-input-devices.xml ================================================ ================================================ FILE: fstab.mata ================================================ # Android fstab file. # /dev/block/platform/soc/1da4000.ufshc/by-name/system / ext4 ro,barrier=1 wait,slotselect,verify /dev/block/platform/soc/1da4000.ufshc/by-name/userdata /data ext4 noatime,nosuid,nodev,barrier=1,noauto_da_alloc wait,check,formattable,fileencryption=ice,quota /dev/block/platform/soc/1da4000.ufshc/by-name/misc /misc emmc defaults defaults /dev/block/platform/soc/1da4000.ufshc/by-name/modem /vendor/firmware_mnt vfat ro,shortname=lower,uid=1000,gid=1000,dmask=222,fmask=333,context=u:object_r:firmware_file:s0 wait,slotselect /dev/block/platform/soc/1da4000.ufshc/by-name/dsp /vendor/lib/dsp ext4 ro,nosuid,nodev,barrier=1,context=u:object_r:adsprpcd_file:s0 wait,slotselect /devices/*/xhci-hcd.0.auto* auto auto defaults voldmanaged=usb:auto /devices/*/0000:01:00.0* auto auto defaults voldmanaged=usb:auto /dev/block/platform/soc/1da4000.ufshc/by-name/persist /mnt/vendor/persist ext4 noatime,nosuid,nodev,barrier=1 wait /dev/block/zram0 none swap defaults zramsize=536870912,max_comp_streams=8 ================================================ FILE: gpio-keys-mata.kl ================================================ # Copyright (c) 2013, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # * Neither the name of The Linux Foundation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN key 115 VOLUME_UP key 114 VOLUME_DOWN key 116 POWER ================================================ FILE: healthd/Android.bp ================================================ /* * 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. */ cc_binary { name: "android.hardware.health@2.0-service.mata", init_rc: ["android.hardware.health@2.0-service.mata.rc"], proprietary: true, relative_install_path: "hw", srcs: [ "HealthService.cpp", ], cflags: [ "-Wall", "-Werror", ], static_libs: [ "android.hardware.health@2.0-impl", "android.hardware.health@1.0-convert", "libhealthservice", "libbatterymonitor", ], shared_libs: [ "libbase", "libcutils", "libbinder_ndk", "libutils", "android.hardware.health@2.0", ], header_libs: ["libhealthd_headers"], } ================================================ FILE: healthd/HealthService.cpp ================================================ /* * 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.0-service.mata" #include #include #include #include #include #include #include #include #include using android::hardware::health::V2_0::StorageInfo; using android::hardware::health::V2_0::DiskStats; void healthd_board_init(struct healthd_config*) { } int healthd_board_battery_update(struct android::BatteryProperties*) { return 1; } const char kUFSHealthFile[] = "/sys/kernel/debug/ufshcd0/dump_health_desc"; const char kUFSHealthVersionFile[] = "/sys/kernel/debug/ufshcd0/show_hba"; const char kDiskStatsFile[] = "/sys/block/sda/stat"; const char kUFSName[] = "UFS0"; /* * Implementation based on system/core/storaged/storaged_info.cc */ void get_storage_info(std::vector& vec_storage_info) { StorageInfo storage_info = {}; std::string buffer, version; storage_info.attr.isInternal = true; storage_info.attr.isBootDevice = true; storage_info.attr.name = std::string(kUFSName); if (!android::base::ReadFileToString(std::string(kUFSHealthVersionFile), &version)) { return; } std::vector lines = android::base::Split(version, "\n"); if (lines.empty()) { return; } char rev[8]; if (sscanf(lines[6].c_str(), "hba->ufs_version = 0x%7s\n", rev) < 1) { return; } storage_info.version = "ufs " + std::string(rev); if (!android::base::ReadFileToString(std::string(kUFSHealthFile), &buffer)) { return; } lines = android::base::Split(buffer, "\n"); if (lines.empty()) { return; } for (size_t i = 1; i < lines.size(); i++) { char token[32]; uint16_t val; int ret; if ((ret = sscanf(lines[i].c_str(), "Health Descriptor[Byte offset 0x%*d]: %31s = 0x%hx", token, &val)) < 2) { continue; } if (std::string(token) == "bPreEOLInfo") { storage_info.eol = val; } else if (std::string(token) == "bDeviceLifeTimeEstA") { storage_info.lifetimeA = val; } else if (std::string(token) == "bDeviceLifeTimeEstB") { storage_info.lifetimeB = val; } } vec_storage_info.resize(1); vec_storage_info[0] = storage_info; return; } /* * Implementation based on parse_disk_stats() in system/core/storaged_diskstats.cpp */ void get_disk_stats(std::vector& vec_stats) { const size_t kDiskStatsSize = 11; struct DiskStats stats = {}; stats.attr.isInternal = true; stats.attr.isBootDevice = true; stats.attr.name = std::string(kUFSName); std::string buffer; if (!android::base::ReadFileToString(std::string(kDiskStatsFile), &buffer)) { LOG(ERROR) << kDiskStatsFile << ": ReadFileToString failed."; return; } // Regular diskstats entries std::stringstream ss(buffer); for (uint i = 0; i < kDiskStatsSize; ++i) { ss >> *(reinterpret_cast(&stats) + i); } vec_stats.resize(1); vec_stats[0] = stats; return; } int main(void) { return health_service_main(); } ================================================ FILE: healthd/android.hardware.health@2.0-service.mata.rc ================================================ service vendor.health-hal-2-0 /vendor/bin/hw/android.hardware.health@2.0-service.mata class hal user system group system ================================================ FILE: healthd/images/animation.txt ================================================ animation: 2 1 charger/battery_scale frame: 1000 0 10 frame: 1000 0 20 frame: 1000 0 30 frame: 1000 0 40 frame: 1000 0 50 frame: 1000 0 60 frame: 1000 0 70 frame: 1000 0 80 frame: 1000 0 90 frame: 1000 0 100 frame: 1000 0 100 ================================================ FILE: hostapd.accept ================================================ # List of MAC addresses that are allowed to authenticate (IEEE 802.11) # with the AP. Optional VLAN ID can be assigned for clients based on the # MAC address if dynamic VLANs (hostapd.conf dynamic_vlan option) are used. ================================================ FILE: hostapd.conf ================================================ ##### hostapd configuration file ############################################## # Empty lines and lines starting with # are ignored # AP netdevice name (without 'ap' postfix, i.e., wlan0 uses wlan0ap for # management frames); ath0 for madwifi interface=wlan0 # In case of madwifi and nl80211 driver interfaces, an additional configuration # parameter, bridge, must be used to notify hostapd if the interface is # included in a bridge. This parameter is not used with Host AP driver. #bridge=br0 # Driver interface type (hostap/wired/madwifi/prism54/test/none/nl80211/bsd); # default: hostap). nl80211 is used with all Linux mac80211 drivers. # Use driver=none if building hostapd as a standalone RADIUS server that does # not control any wireless/wired driver. driver=nl80211 # hostapd event logger configuration # # Two output method: syslog and stdout (only usable if not forking to # background). # # Module bitfield (ORed bitfield of modules that will be logged; -1 = all # modules): # bit 0 (1) = IEEE 802.11 # bit 1 (2) = IEEE 802.1X # bit 2 (4) = RADIUS # bit 3 (8) = WPA # bit 4 (16) = driver interface # bit 5 (32) = IAPP # bit 6 (64) = MLME # # Levels (minimum value for logged events): # 0 = verbose debugging # 1 = debugging # 2 = informational messages # 3 = notification # 4 = warning # logger_syslog=-1 logger_syslog_level=2 logger_stdout=-1 logger_stdout_level=2 # Dump file for state information (on SIGUSR1) dump_file=/tmp/hostapd.dump # Interface for separate control program. If this is specified, hostapd # will create this directory and a UNIX domain socket for listening to requests # from external programs (CLI/GUI, etc.) for status information and # configuration. The socket file will be named based on the interface name, so # multiple hostapd processes/interfaces can be run at the same time if more # than one interface is used. # /var/run/hostapd is the recommended directory for sockets and by default, # hostapd_cli will use it when trying to connect with hostapd. ctrl_interface=/data/vendor/wifi/hostapd/ctrl # Access control for the control interface can be configured by setting the # directory to allow only members of a group to use sockets. This way, it is # possible to run hostapd as root (since it needs to change network # configuration and open raw sockets) and still allow GUI/CLI components to be # run as non-root users. However, since the control interface can be used to # change the network configuration, this access needs to be protected in many # cases. By default, hostapd is configured to use gid 0 (root). If you # want to allow non-root users to use the contron interface, add a new group # and change this value to match with that group. Add users that should have # control interface access to this group. # # This variable can be a group name or gid. #ctrl_interface_group=wheel #ctrl_interface_group=0 ##### IEEE 802.11 related configuration ####################################### # SSID to be used in IEEE 802.11 management frames ssid=QualcommSoftAP # Country code (ISO/IEC 3166-1). Used to set regulatory domain. # Set as needed to indicate country in which device is operating. # This can limit available channels and transmit power. #country_code=US # Enable IEEE 802.11d. This advertises the country_code and the set of allowed # channels and transmit power levels based on the regulatory limits. The # country_code setting must be configured with the correct country for # IEEE 802.11d functions. # (default: 0 = disabled) #ieee80211d=1 # Operation mode (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g, # n = IEEE 802.11n, g_only = IEEE 802.11g_only, n_only = IEEE 802.11n_only, # Default: IEEE 802.11n hw_mode=g # Channel number (IEEE 802.11) # (default: 0, i.e., not set) # Please note that some drivers (e.g., madwifi) do not use this value from # hostapd and the channel will need to be configuration separately with # iwconfig. channel=0 # Beacon interval in kus (1.024 ms) (default: 100; range 15..65535) beacon_int=100 # DTIM (delivery trafic information message) period (range 1..255): # number of beacons between DTIMs (1 = every beacon includes DTIM element) # (default: 2) dtim_period=2 # Maximum number of stations allowed in station table. New stations will be # rejected after the station table is full. IEEE 802.11 has a limit of 2007 # different association IDs, so this number should not be larger than that. # (default: 2007) max_num_sta=10 # RTS/CTS threshold; 2347 = disabled (default); range 0..2347 # If this field is not included in hostapd.conf, hostapd will not control # RTS threshold and 'iwconfig wlan# rts ' can be used to set it. #rts_threshold=2347 # Fragmentation threshold; 2346 = disabled (default); range 256..2346 # If this field is not included in hostapd.conf, hostapd will not control # fragmentation threshold and 'iwconfig wlan# frag ' can be used to set # it. #fragm_threshold=2346 # Rate configuration # Default is to enable all rates supported by the hardware. This configuration # item allows this list be filtered so that only the listed rates will be left # in the list. If the list is empty, all rates are used. This list can have # entries that are not in the list of rates the hardware supports (such entries # are ignored). The entries in this list are in 100 kbps, i.e., 11 Mbps = 110. # If this item is present, at least one rate have to be matching with the rates # hardware supports. # default: use the most common supported rate setting for the selected # hw_mode (i.e., this line can be removed from configuration file in most # cases) #supported_rates=10 20 55 110 60 90 120 180 240 360 480 540 # Basic rate set configuration # List of rates (in 100 kbps) that are included in the basic rate set. # If this item is not included, usually reasonable default set is used. # This basic rates set is currently used for g-only profile #basic_rates=60 # Short Preamble # This parameter can be used to enable optional use of short preamble for # frames sent at 2 Mbps, 5.5 Mbps, and 11 Mbps to improve network performance. # This applies only to IEEE 802.11b-compatible networks and this should only be # enabled if the local hardware supports use of short preamble. If any of the # associated STAs do not support short preamble, use of short preamble will be # disabled (and enabled when such STAs disassociate) dynamically. # 0 = do not allow use of short preamble (default) # 1 = allow use of short preamble #preamble=1 # Station MAC address -based authentication # Please note that this kind of access control requires a driver that uses # hostapd to take care of management frame processing and as such, this can be # used with driver=hostap or driver=nl80211, but not with driver=madwifi. # 0 = accept unless in deny list # 1 = deny unless in accept list # 2 = use external RADIUS server (accept/deny lists are searched first) macaddr_acl=0 # Accept/deny lists are read from separate files (containing list of # MAC addresses, one per line). Use absolute path name to make sure that the # files can be read on SIGHUP configuration reloads. accept_mac_file=/data/hostapd/hostapd.accept deny_mac_file=/data/hostapd/hostapd.deny # IEEE 802.11 specifies two authentication algorithms. hostapd can be # configured to allow both of these or only one. Open system authentication # should be used with IEEE 802.1X. # Bit fields of allowed authentication algorithms: # bit 0 = Open System Authentication # bit 1 = Shared Key Authentication (requires WEP) auth_algs=3 # Send empty SSID in beacons and ignore probe request frames that do not # specify full SSID, i.e., require stations to know SSID. # default: disabled (0) # 1 = send empty (length=0) SSID in beacon and ignore probe request for # broadcast SSID # 2 = clear SSID (ASCII 0), but keep the original length (this may be required # with some clients that do not support empty SSID) and ignore probe # requests for broadcast SSID ignore_broadcast_ssid=0 # TX queue parameters (EDCF / bursting) # default for all these fields: not set, use hardware defaults # tx_queue__ # queues: data0, data1, data2, data3, after_beacon, beacon # (data0 is the highest priority queue) # parameters: # aifs: AIFS (default 2) # cwmin: cwMin (1, 3, 7, 15, 31, 63, 127, 255, 511, 1023) # cwmax: cwMax (1, 3, 7, 15, 31, 63, 127, 255, 511, 1023); cwMax >= cwMin # burst: maximum length (in milliseconds with precision of up to 0.1 ms) for # bursting # # Default WMM parameters (IEEE 802.11 draft; 11-03-0504-03-000e): # These parameters are used by the access point when transmitting frames # to the clients. # # Low priority / AC_BK = background #tx_queue_data3_aifs=7 #tx_queue_data3_cwmin=15 #tx_queue_data3_cwmax=1023 #tx_queue_data3_burst=0 # Note: for IEEE 802.11b mode: cWmin=31 cWmax=1023 burst=0 # # Normal priority / AC_BE = best effort #tx_queue_data2_aifs=3 #tx_queue_data2_cwmin=15 #tx_queue_data2_cwmax=63 #tx_queue_data2_burst=0 # Note: for IEEE 802.11b mode: cWmin=31 cWmax=127 burst=0 # # High priority / AC_VI = video #tx_queue_data1_aifs=1 #tx_queue_data1_cwmin=7 #tx_queue_data1_cwmax=15 #tx_queue_data1_burst=3.0 # Note: for IEEE 802.11b mode: cWmin=15 cWmax=31 burst=6.0 # # Highest priority / AC_VO = voice #tx_queue_data0_aifs=1 #tx_queue_data0_cwmin=3 #tx_queue_data0_cwmax=7 #tx_queue_data0_burst=1.5 # Note: for IEEE 802.11b mode: cWmin=7 cWmax=15 burst=3.3 # # Special queues; normally not user configurable # #tx_queue_after_beacon_aifs=2 #tx_queue_after_beacon_cwmin=15 #tx_queue_after_beacon_cwmax=1023 #tx_queue_after_beacon_burst=0 # #tx_queue_beacon_aifs=2 #tx_queue_beacon_cwmin=3 #tx_queue_beacon_cwmax=7 #tx_queue_beacon_burst=1.5 # 802.1D Tag (= UP) to AC mappings # WMM specifies following mapping of data frames to different ACs. This mapping # can be configured using Linux QoS/tc and sch_pktpri.o module. # 802.1D Tag 802.1D Designation Access Category WMM Designation # 1 BK AC_BK Background # 2 - AC_BK Background # 0 BE AC_BE Best Effort # 3 EE AC_BE Best Effort # 4 CL AC_VI Video # 5 VI AC_VI Video # 6 VO AC_VO Voice # 7 NC AC_VO Voice # Data frames with no priority information: AC_BE # Management frames: AC_VO # PS-Poll frames: AC_BE # Default WMM parameters (IEEE 802.11 draft; 11-03-0504-03-000e): # for 802.11a or 802.11g networks # These parameters are sent to WMM clients when they associate. # The parameters will be used by WMM clients for frames transmitted to the # access point. # # note - txop_limit is in units of 32microseconds # note - acm is admission control mandatory flag. 0 = admission control not # required, 1 = mandatory # note - here cwMin and cmMax are in exponent form. the actual cw value used # will be (2^n)-1 where n is the value given here # wmm_enabled=1 # # Low priority / AC_BK = background wmm_ac_bk_cwmin=4 wmm_ac_bk_cwmax=10 wmm_ac_bk_aifs=7 wmm_ac_bk_txop_limit=0 wmm_ac_bk_acm=0 # Note: for IEEE 802.11b mode: cWmin=5 cWmax=10 # # Normal priority / AC_BE = best effort wmm_ac_be_aifs=3 wmm_ac_be_cwmin=4 wmm_ac_be_cwmax=10 wmm_ac_be_txop_limit=0 wmm_ac_be_acm=0 # Note: for IEEE 802.11b mode: cWmin=5 cWmax=7 # # High priority / AC_VI = video wmm_ac_vi_aifs=2 wmm_ac_vi_cwmin=3 wmm_ac_vi_cwmax=4 wmm_ac_vi_txop_limit=94 wmm_ac_vi_acm=0 # Note: for IEEE 802.11b mode: cWmin=4 cWmax=5 txop_limit=188 # # Highest priority / AC_VO = voice wmm_ac_vo_aifs=2 wmm_ac_vo_cwmin=2 wmm_ac_vo_cwmax=3 wmm_ac_vo_txop_limit=47 wmm_ac_vo_acm=0 # Note: for IEEE 802.11b mode: cWmin=3 cWmax=4 burst=102 # Static WEP key configuration # # The key number to use when transmitting. # It must be between 0 and 3, and the corresponding key must be set. # default: not set #wep_default_key=0 # The WEP keys to use. # A key may be a quoted string or unquoted hexadecimal digits. # The key length should be 5, 13, or 16 characters, or 10, 26, or 32 # digits, depending on whether 40-bit (64-bit), 104-bit (128-bit), or # 128-bit (152-bit) WEP is used. # Only the default key must be supplied; the others are optional. # default: not set #wep_key0=1234567890 #wep_key1=1234567890 #wep_key2=1234567890 #wep_key3=1234567890 # Station inactivity limit # # If a station does not send anything in ap_max_inactivity seconds, an # empty data frame is sent to it in order to verify whether it is # still in range. If this frame is not ACKed, the station will be # disassociated and then deauthenticated. This feature is used to # clear station table of old entries when the STAs move out of the # range. # # The station can associate again with the AP if it is still in range; # this inactivity poll is just used as a nicer way of verifying # inactivity; i.e., client will not report broken connection because # disassociation frame is not sent immediately without first polling # the STA with a data frame. # default: 300 (i.e., 5 minutes) #ap_max_inactivity=300 # Enable/disable internal bridge for packets between associated stations. # # When IEEE 802.11 is used in managed mode, packets are usually send through # the AP even if they are from a wireless station to another wireless station. # This functionality requires that the AP has a bridge functionality that sends # frames back to the same interface if their destination is another associated # station. In addition, broadcast/multicast frames from wireless stations will # be sent both to the host system net stack (e.g., to eventually wired network) # and back to the wireless interface. # # The internal bridge is implemented within the wireless kernel module and it # bypasses kernel filtering (netfilter/iptables/ebtables). If direct # communication between the stations needs to be prevented, the internal # bridge can be disabled by setting bridge_packets=0. # # Note: If this variable is not included in hostapd.conf, hostapd does not # change the configuration and iwpriv can be used to set the value with # 'iwpriv wlan# param 10 0' command. If the variable is in hostapd.conf, # hostapd will override possible iwpriv configuration whenever configuration # file is reloaded. # # default: do not control from hostapd (80211.o defaults to 1=enabled) #bridge_packets=1 # Maximum allowed Listen Interval (how many Beacon periods STAs are allowed to # remain asleep). Default: 65535 (no limit apart from field size) #max_listen_interval=100 # Client isolation can be used to prevent low-level bridging of frames between # associated stations in the BSS. By default, this bridging is allowed. #ap_isolate=1 ##### IEEE 802.11n related configuration ###################################### # ieee80211n: Whether IEEE 802.11n (HT) is enabled # 0 = disabled (default) # 1 = enabled # Note: You will also need to enable WMM for full HT functionality. ieee80211n=1 #require_ht=1 # ht_capab: HT capabilities (list of flags) # LDPC coding capability: [LDPC] = supported # Supported channel width set: [HT40-] = both 20 MHz and 40 MHz with secondary # channel below the primary channel; [HT40+] = both 20 MHz and 40 MHz # with secondary channel below the primary channel # (20 MHz only if neither is set) # Note: There are limits on which channels can be used with HT40- and # HT40+. Following table shows the channels that may be available for # HT40- and HT40+ use per IEEE 802.11n Annex J: # freq HT40- HT40+ # 2.4 GHz 5-13 1-7 (1-9 in Europe/Japan) # 5 GHz 40,48,56,64 36,44,52,60 # (depending on the location, not all of these channels may be available # for use) # Spatial Multiplexing (SM) Power Save: [SMPS-STATIC] or [SMPS-DYNAMIC] # (SMPS disabled if neither is set) # HT-greenfield: [GF] (disabled if not set) # Short GI for 20 MHz: [SHORT-GI-20] (disabled if not set) # Short GI for 40 MHz: [SHORT-GI-40] (disabled if not set) # Tx STBC: [TX-STBC] (disabled if not set) # Rx STBC: [RX-STBC1] (one spatial stream), [RX-STBC12] (one or two spatial # streams), or [RX-STBC123] (one, two, or three spatial streams); Rx STBC # disabled if none of these set # HT-delayed Block Ack: [DELAYED-BA] (disabled if not set) # Maximum A-MSDU length: [MAX-AMSDU-7935] for 7935 octets (3839 octets if not # set) # DSSS/CCK Mode in 40 MHz: [DSSS_CCK-40] = allowed (not allowed if not set) # PSMP support: [PSMP] (disabled if not set) # L-SIG TXOP protection support: [LSIG-TXOP-PROT] (disabled if not set) # QcHostapd: # LOWER byte for associated stations # UPPER byte for overlapping stations # each byte will have the following info # bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 # OBSS RIFS LSIG_TXOP NON_GF HT20 FROM_11G FROM_11B FROM_11A # bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 # OBSS RIFS LSIG_TXOP NON_GF HT_20 FROM_11G FROM_11B FROM_11A #ht_capab=[HT40-] [SHORT-GI-20] [SHORT-GI-40] ht_capab=[SHORT-GI-20] [HT40-] [HT40+] [GF] [DSSS_CCK-40] [LSIG-TXOP-PROT] #ht_capab=[LDPC] [HT40-] [HT40+] [SMPS-STATIC] [SMPS-DYNAMIC] [GF] [SHORT-GI-20] [SHORT-GI-40] [TX-STBC] [RX-STBC1] [RX-STBC12] [RX-STBC123] [DELAYED-BA] [MAX-AMSDU-7935] [DSSS_CCK-40] [PSMP] [LSIG-TXOP-PROT] ##### IEEE 802.1X-2004 related configuration ################################## # Require IEEE 802.1X authorization #ieee8021x=1 # IEEE 802.1X/EAPOL version # hostapd is implemented based on IEEE Std 802.1X-2004 which defines EAPOL # version 2. However, there are many client implementations that do not handle # the new version number correctly (they seem to drop the frames completely). # In order to make hostapd interoperate with these clients, the version number # can be set to the older version (1) with this configuration value. #eapol_version=2 # Optional displayable message sent with EAP Request-Identity. The first \0 # in this string will be converted to ASCII-0 (nul). This can be used to # separate network info (comma separated list of attribute=value pairs); see, # e.g., RFC 4284. #eap_message=hello #eap_message=hello\0networkid=netw,nasid=foo,portid=0,NAIRealms=example.com # WEP rekeying (disabled if key lengths are not set or are set to 0) # Key lengths for default/broadcast and individual/unicast keys: # 5 = 40-bit WEP (also known as 64-bit WEP with 40 secret bits) # 13 = 104-bit WEP (also known as 128-bit WEP with 104 secret bits) #wep_key_len_broadcast=5 #wep_key_len_unicast=5 # Rekeying period in seconds. 0 = do not rekey (i.e., set keys only once) #wep_rekey_period=300 # EAPOL-Key index workaround (set bit7) for WinXP Supplicant (needed only if # only broadcast keys are used) eapol_key_index_workaround=0 # EAP reauthentication period in seconds (default: 3600 seconds; 0 = disable # reauthentication). #eap_reauth_period=3600 # Use PAE group address (01:80:c2:00:00:03) instead of individual target # address when sending EAPOL frames with driver=wired. This is the most common # mechanism used in wired authentication, but it also requires that the port # is only used by one station. #use_pae_group_addr=1 ##### Integrated EAP server ################################################### # Optionally, hostapd can be configured to use an integrated EAP server # to process EAP authentication locally without need for an external RADIUS # server. This functionality can be used both as a local authentication server # for IEEE 802.1X/EAPOL and as a RADIUS server for other devices. # Use integrated EAP server instead of external RADIUS authentication # server. This is also needed if hostapd is configured to act as a RADIUS # authentication server. eap_server=1 # Path for EAP server user database #eap_user_file=/etc/hostapd.eap_user # CA certificate (PEM or DER file) for EAP-TLS/PEAP/TTLS #ca_cert=/etc/hostapd.ca.pem # Server certificate (PEM or DER file) for EAP-TLS/PEAP/TTLS #server_cert=/etc/hostapd.server.pem # Private key matching with the server certificate for EAP-TLS/PEAP/TTLS # This may point to the same file as server_cert if both certificate and key # are included in a single file. PKCS#12 (PFX) file (.p12/.pfx) can also be # used by commenting out server_cert and specifying the PFX file as the # private_key. #private_key=/etc/hostapd.server.prv # Passphrase for private key #private_key_passwd=secret passphrase # Enable CRL verification. # Note: hostapd does not yet support CRL downloading based on CDP. Thus, a # valid CRL signed by the CA is required to be included in the ca_cert file. # This can be done by using PEM format for CA certificate and CRL and # concatenating these into one file. Whenever CRL changes, hostapd needs to be # restarted to take the new CRL into use. # 0 = do not verify CRLs (default) # 1 = check the CRL of the user certificate # 2 = check all CRLs in the certificate path #check_crl=1 # dh_file: File path to DH/DSA parameters file (in PEM format) # This is an optional configuration file for setting parameters for an # ephemeral DH key exchange. In most cases, the default RSA authentication does # not use this configuration. However, it is possible setup RSA to use # ephemeral DH key exchange. In addition, ciphers with DSA keys always use # ephemeral DH keys. This can be used to achieve forward secrecy. If the file # is in DSA parameters format, it will be automatically converted into DH # params. This parameter is required if anonymous EAP-FAST is used. # You can generate DH parameters file with OpenSSL, e.g., # "openssl dhparam -out /etc/hostapd.dh.pem 1024" #dh_file=/etc/hostapd.dh.pem # Configuration data for EAP-SIM database/authentication gateway interface. # This is a text string in implementation specific format. The example # implementation in eap_sim_db.c uses this as the UNIX domain socket name for # the HLR/AuC gateway (e.g., hlr_auc_gw). In this case, the path uses "unix:" # prefix. #eap_sim_db=unix:/tmp/hlr_auc_gw.sock # Encryption key for EAP-FAST PAC-Opaque values. This key must be a secret, # random value. It is configured as a 16-octet value in hex format. It can be # generated, e.g., with the following command: # od -tx1 -v -N16 /dev/random | colrm 1 8 | tr -d ' ' #pac_opaque_encr_key=000102030405060708090a0b0c0d0e0f # EAP-FAST authority identity (A-ID) # A-ID indicates the identity of the authority that issues PACs. The A-ID # should be unique across all issuing servers. In theory, this is a variable # length field, but due to some existing implementations required A-ID to be # 16 octets in length, it is strongly recommended to use that length for the # field to provided interoperability with deployed peer implementation. This # field is configured in hex format. #eap_fast_a_id=101112131415161718191a1b1c1d1e1f # EAP-FAST authority identifier information (A-ID-Info) # This is a user-friendly name for the A-ID. For example, the enterprise name # and server name in a human-readable format. This field is encoded as UTF-8. #eap_fast_a_id_info=test server # Enable/disable different EAP-FAST provisioning modes: #0 = provisioning disabled #1 = only anonymous provisioning allowed #2 = only authenticated provisioning allowed #3 = both provisioning modes allowed (default) #eap_fast_prov=3 # EAP-FAST PAC-Key lifetime in seconds (hard limit) #pac_key_lifetime=604800 # EAP-FAST PAC-Key refresh time in seconds (soft limit on remaining hard # limit). The server will generate a new PAC-Key when this number of seconds # (or fewer) of the lifetime remains. #pac_key_refresh_time=86400 # EAP-SIM and EAP-AKA protected success/failure indication using AT_RESULT_IND # (default: 0 = disabled). #eap_sim_aka_result_ind=1 # Trusted Network Connect (TNC) # If enabled, TNC validation will be required before the peer is allowed to # connect. Note: This is only used with EAP-TTLS and EAP-FAST. If any other # EAP method is enabled, the peer will be allowed to connect without TNC. #tnc=1 ##### IEEE 802.11f - Inter-Access Point Protocol (IAPP) ####################### # Interface to be used for IAPP broadcast packets #iapp_interface=eth0 ##### RADIUS client configuration ############################################# # for IEEE 802.1X with external Authentication Server, IEEE 802.11 # authentication with external ACL for MAC addresses, and accounting # The own IP address of the access point (used as NAS-IP-Address) own_ip_addr=127.0.0.1 # Optional NAS-Identifier string for RADIUS messages. When used, this should be # a unique to the NAS within the scope of the RADIUS server. For example, a # fully qualified domain name can be used here. # When using IEEE 802.11r, nas_identifier must be set and must be between 1 and # 48 octets long. #nas_identifier=ap.example.com # RADIUS authentication server #auth_server_addr=127.0.0.1 #auth_server_port=1812 #auth_server_shared_secret=secret # RADIUS accounting server #acct_server_addr=127.0.0.1 #acct_server_port=1813 #acct_server_shared_secret=secret # Secondary RADIUS servers; to be used if primary one does not reply to # RADIUS packets. These are optional and there can be more than one secondary # server listed. #auth_server_addr=127.0.0.2 #auth_server_port=1812 #auth_server_shared_secret=secret2 # #acct_server_addr=127.0.0.2 #acct_server_port=1813 #acct_server_shared_secret=secret2 # Retry interval for trying to return to the primary RADIUS server (in # seconds). RADIUS client code will automatically try to use the next server # when the current server is not replying to requests. If this interval is set, # primary server will be retried after configured amount of time even if the # currently used secondary server is still working. #radius_retry_primary_interval=600 # Interim accounting update interval # If this is set (larger than 0) and acct_server is configured, hostapd will # send interim accounting updates every N seconds. Note: if set, this overrides # possible Acct-Interim-Interval attribute in Access-Accept message. Thus, this # value should not be configured in hostapd.conf, if RADIUS server is used to # control the interim interval. # This value should not be less 600 (10 minutes) and must not be less than # 60 (1 minute). #radius_acct_interim_interval=600 # Dynamic VLAN mode; allow RADIUS authentication server to decide which VLAN # is used for the stations. This information is parsed from following RADIUS # attributes based on RFC 3580 and RFC 2868: Tunnel-Type (value 13 = VLAN), # Tunnel-Medium-Type (value 6 = IEEE 802), Tunnel-Private-Group-ID (value # VLANID as a string). vlan_file option below must be configured if dynamic # VLANs are used. Optionally, the local MAC ACL list (accept_mac_file) can be # used to set static client MAC address to VLAN ID mapping. # 0 = disabled (default) # 1 = option; use default interface if RADIUS server does not include VLAN ID # 2 = required; reject authentication if RADIUS server does not include VLAN ID #dynamic_vlan=0 # VLAN interface list for dynamic VLAN mode is read from a separate text file. # This list is used to map VLAN ID from the RADIUS server to a network # interface. Each station is bound to one interface in the same way as with # multiple BSSIDs or SSIDs. Each line in this text file is defining a new # interface and the line must include VLAN ID and interface name separated by # white space (space or tab). #vlan_file=/etc/hostapd.vlan # Interface where 802.1q tagged packets should appear when a RADIUS server is # used to determine which VLAN a station is on. hostapd creates a bridge for # each VLAN. Then hostapd adds a VLAN interface (associated with the interface # indicated by 'vlan_tagged_interface') and the appropriate wireless interface # to the bridge. #vlan_tagged_interface=eth0 ##### RADIUS authentication server configuration ############################## # hostapd can be used as a RADIUS authentication server for other hosts. This # requires that the integrated EAP server is also enabled and both # authentication services are sharing the same configuration. # File name of the RADIUS clients configuration for the RADIUS server. If this # commented out, RADIUS server is disabled. #radius_server_clients=/etc/hostapd.radius_clients # The UDP port number for the RADIUS authentication server #radius_server_auth_port=1812 # Use IPv6 with RADIUS server (IPv4 will also be supported using IPv6 API) #radius_server_ipv6=1 ##### WPA/IEEE 802.11i configuration ########################################## # Enable WPA. Setting this variable configures the AP to require WPA (either # WPA-PSK or WPA-RADIUS/EAP based on other configuration). For WPA-PSK, either # wpa_psk or wpa_passphrase must be set and wpa_key_mgmt must include WPA-PSK. # For WPA-RADIUS/EAP, ieee8021x must be set (but without dynamic WEP keys), # RADIUS authentication server must be configured, and WPA-EAP must be included # in wpa_key_mgmt. # This field is a bit field that can be used to enable WPA (IEEE 802.11i/D3.0) # and/or WPA2 (full IEEE 802.11i/RSN): # bit0 = WPA # bit1 = IEEE 802.11i/RSN (WPA2) (dot11RSNAEnabled) #wpa=1 # WPA pre-shared keys for WPA-PSK. This can be either entered as a 256-bit # secret in hex format (64 hex digits), wpa_psk, or as an ASCII passphrase # (8..63 characters) that will be converted to PSK. This conversion uses SSID # so the PSK changes when ASCII passphrase is used and the SSID is changed. # wpa_psk (dot11RSNAConfigPSKValue) # wpa_passphrase (dot11RSNAConfigPSKPassPhrase) #wpa_psk=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef #wpa_passphrase=qualcomm # Optionally, WPA PSKs can be read from a separate text file (containing list # of (PSK,MAC address) pairs. This allows more than one PSK to be configured. # Use absolute path name to make sure that the files can be read on SIGHUP # configuration reloads. #wpa_psk_file=/etc/hostapd.wpa_psk # Set of accepted key management algorithms (WPA-PSK, WPA-EAP, or both). The # entries are separated with a space. WPA-PSK-SHA256 and WPA-EAP-SHA256 can be # added to enable SHA256-based stronger algorithms. # (dot11RSNAConfigAuthenticationSuitesTable) #wpa_key_mgmt=WPA-PSK #wpa_key_mgmt=WPA-EAP # Set of accepted cipher suites (encryption algorithms) for pairwise keys # (unicast packets). This is a space separated list of algorithms: # CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] # TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] # Group cipher suite (encryption algorithm for broadcast and multicast frames) # is automatically selected based on this configuration. If only CCMP is # allowed as the pairwise cipher, group cipher will also be CCMP. Otherwise, # TKIP will be used as the group cipher. # (dot11RSNAConfigPairwiseCiphersTable) # Pairwise cipher for WPA (v1) (default: TKIP) #wpa_pairwise=TKIP CCMP # Pairwise cipher for RSN/WPA2 (default: use wpa_pairwise value) #rsn_pairwise=CCMP # Time interval for rekeying GTK (broadcast/multicast encryption keys) in # seconds. (dot11RSNAConfigGroupRekeyTime) wpa_group_rekey=86400 # Rekey GTK when any STA that possesses the current GTK is leaving the BSS. # (dot11RSNAConfigGroupRekeyStrict) #wpa_strict_rekey=1 # Time interval for rekeying GMK (master key used internally to generate GTKs # (in seconds). #wpa_gmk_rekey=86400 # Maximum lifetime for PTK in seconds. This can be used to enforce rekeying of # PTK to mitigate some attacks against TKIP deficiencies. #wpa_ptk_rekey=600 # Enable IEEE 802.11i/RSN/WPA2 pre-authentication. This is used to speed up # roaming be pre-authenticating IEEE 802.1X/EAP part of the full RSN # authentication and key handshake before actually associating with a new AP. # (dot11RSNAPreauthenticationEnabled) #rsn_preauth=1 # # Space separated list of interfaces from which pre-authentication frames are # accepted (e.g., 'eth0' or 'eth0 wlan0wds0'. This list should include all # interface that are used for connections to other APs. This could include # wired interfaces and WDS links. The normal wireless data interface towards # associated stations (e.g., wlan0) should not be added, since # pre-authentication is only used with APs other than the currently associated # one. #rsn_preauth_interfaces=eth0 # peerkey: Whether PeerKey negotiation for direct links (IEEE 802.11e) is # allowed. This is only used with RSN/WPA2. # 0 = disabled (default) # 1 = enabled #peerkey=1 # ieee80211w: Whether management frame protection (MFP) is enabled # 0 = disabled (default) # 1 = optional # 2 = required #ieee80211w=0 # Association SA Query maximum timeout (in TU = 1.024 ms; for MFP) # (maximum time to wait for a SA Query response) # dot11AssociationSAQueryMaximumTimeout, 1...4294967295 #assoc_sa_query_max_timeout=1000 # Association SA Query retry timeout (in TU = 1.024 ms; for MFP) # (time between two subsequent SA Query requests) # dot11AssociationSAQueryRetryTimeout, 1...4294967295 #assoc_sa_query_retry_timeout=201 # okc: Opportunistic Key Caching (aka Proactive Key Caching) # Allow PMK cache to be shared opportunistically among configured interfaces # and BSSes (i.e., all configurations within a single hostapd process). # 0 = disabled (default) # 1 = enabled #okc=1 ##### IEEE 802.11r configuration ############################################## # Mobility Domain identifier (dot11FTMobilityDomainID, MDID) # MDID is used to indicate a group of APs (within an ESS, i.e., sharing the # same SSID) between which a STA can use Fast BSS Transition. # 2-octet identifier as a hex string. #mobility_domain=a1b2 # PMK-R0 Key Holder identifier (dot11FTR0KeyHolderID) # 1 to 48 octet identifier. # This is configured with nas_identifier (see RADIUS client section above). # Default lifetime of the PMK-RO in minutes; range 1..65535 # (dot11FTR0KeyLifetime) #r0_key_lifetime=10000 # PMK-R1 Key Holder identifier (dot11FTR1KeyHolderID) # 6-octet identifier as a hex string. #r1_key_holder=000102030405 # Reassociation deadline in time units (TUs / 1.024 ms; range 1000..65535) # (dot11FTReassociationDeadline) #reassociation_deadline=1000 # List of R0KHs in the same Mobility Domain # format: <128-bit key as hex string> # This list is used to map R0KH-ID (NAS Identifier) to a destination MAC # address when requesting PMK-R1 key from the R0KH that the STA used during the # Initial Mobility Domain Association. #r0kh=02:01:02:03:04:05 r0kh-1.example.com 000102030405060708090a0b0c0d0e0f #r0kh=02:01:02:03:04:06 r0kh-2.example.com 00112233445566778899aabbccddeeff # And so on.. One line per R0KH. # List of R1KHs in the same Mobility Domain # format: <128-bit key as hex string> # This list is used to map R1KH-ID to a destination MAC address when sending # PMK-R1 key from the R0KH. This is also the list of authorized R1KHs in the MD # that can request PMK-R1 keys. #r1kh=02:01:02:03:04:05 02:11:22:33:44:55 000102030405060708090a0b0c0d0e0f #r1kh=02:01:02:03:04:06 02:11:22:33:44:66 00112233445566778899aabbccddeeff # And so on.. One line per R1KH. # Whether PMK-R1 push is enabled at R0KH # 0 = do not push PMK-R1 to all configured R1KHs (default) # 1 = push PMK-R1 to all configured R1KHs whenever a new PMK-R0 is derived #pmk_r1_push=1 ##### Passive scanning ######################################################## # Scan different channels every N seconds. 0 = disable passive scanning. #passive_scan_interval=60 # Listen N usecs on each channel when doing passive scanning. # This value plus the time needed for changing channels should be less than # 32 milliseconds (i.e. 32000 usec) to avoid interruptions to normal # operations. Time needed for channel changing varies based on the used wlan # hardware. # default: disabled (0) #passive_scan_listen=10000 # Passive scanning mode: # 0 = scan all supported modes (802.11a/b/g/Turbo) (default) # 1 = scan only the mode that is currently used for normal operations #passive_scan_mode=1 # Maximum number of entries kept in AP table (either for passive scanning or # for detecting Overlapping Legacy BSS Condition). The oldest entry will be # removed when adding a new entry that would make the list grow over this # limit. Note! Wi-Fi certification for IEEE 802.11g requires that OLBC is # enabled, so this field should not be set to 0 when using IEEE 802.11g. # default: 255 #ap_table_max_size=255 # Number of seconds of no frames received after which entries may be deleted # from the AP table. Since passive scanning is not usually performed frequently # this should not be set to very small value. In addition, there is no # guarantee that every scan cycle will receive beacon frames from the # neighboring APs. # default: 60 #ap_table_expiration_time=3600 ##### Wi-Fi Protected Setup (WPS) ############################################# # WPS state # 0 = WPS disabled (default) # 1 = WPS enabled, not configured # 2 = WPS enabled, configured #wps_state=2 # AP can be configured into a locked state where new WPS Registrar are not # accepted, but previously authorized Registrars (including the internal one) # can continue to add new Enrollees. ap_setup_locked=1 # Universally Unique IDentifier (UUID; see RFC 4122) of the device # This value is used as the UUID for the internal WPS Registrar. If the AP # is also using UPnP, this value should be set to the device's UPnP UUID. # If not configured, UUID will be generated based on the local MAC address. #uuid=12345678-9abc-def0-1234-56789abcdef0 # Note: If wpa_psk_file is set, WPS is used to generate random, per-device PSKs # that will be appended to the wpa_psk_file. If wpa_psk_file is not set, the # default PSK (wpa_psk/wpa_passphrase) will be delivered to Enrollees. Use of # per-device PSKs is recommended as the more secure option (i.e., make sure to # set wpa_psk_file when using WPS with WPA-PSK). # When an Enrollee requests access to the network with PIN method, the Enrollee # PIN will need to be entered for the Registrar. PIN request notifications are # sent to hostapd ctrl_iface monitor. In addition, they can be written to a # text file that could be used, e.g., to populate the AP administration UI with # pending PIN requests. If the following variable is set, the PIN requests will # be written to the configured file. #wps_pin_requests=/var/run/hostapd_wps_pin_requests # Device Name # User-friendly description of device; up to 32 octets encoded in UTF-8 #device_name=Wireless AP # Manufacturer # The manufacturer of the device (up to 64 ASCII characters) #manufacturer=Qualcomm # Model Name # Model of the device (up to 32 ASCII characters) #model_name=QualcommSoftAP # Model Number # Additional device description (up to 32 ASCII characters) #model_number=123 # Serial Number # Serial number of the device (up to 32 characters) #serial_number=12345 # Primary Device Type # Used format: -- # categ = Category as an integer value # OUI = OUI and type octet as a 4-octet hex-encoded value; 0050F204 for # default WPS OUI # subcateg = OUI-specific Sub Category as an integer value # Examples: # 1-0050F204-1 (Computer / PC) # 1-0050F204-2 (Computer / Server) # 5-0050F204-1 (Storage / NAS) # 6-0050F204-1 (Network Infrastructure / AP) #device_type=6-0050F204-1 # OS Version # 4-octet operating system version number (hex string) #os_version=01020300 # Config Methods # List of the supported configuration methods config_methods=label display push_button keypad # Access point PIN for initial configuration and adding Registrars # If not set, hostapd will not allow external WPS Registrars to control the # access point. #ap_pin=12345670 # Skip building of automatic WPS credential # This can be used to allow the automatically generated Credential attribute to # be replaced with pre-configured Credential(s). #skip_cred_build=1 # Additional Credential attribute(s) # This option can be used to add pre-configured Credential attributes into M8 # message when acting as a Registrar. If skip_cred_build=1, this data will also # be able to override the Credential attribute that would have otherwise been # automatically generated based on network configuration. This configuration # option points to an external file that much contain the WPS Credential # attribute(s) as binary data. #extra_cred=hostapd.cred # Credential processing # 0 = process received credentials internally (default) # 1 = do not process received credentials; just pass them over ctrl_iface to # external program(s) # 2 = process received credentials internally and pass them over ctrl_iface # to external program(s) # Note: With wps_cred_processing=1, skip_cred_build should be set to 1 and # extra_cred be used to provide the Credential data for Enrollees. # # wps_cred_processing=1 will disabled automatic updates of hostapd.conf file # both for Credential processing and for marking AP Setup Locked based on # validation failures of AP PIN. An external program is responsible on updating # the configuration appropriately in this case. #wps_cred_processing=0 # AP Settings Attributes for M7 # By default, hostapd generates the AP Settings Attributes for M7 based on the # current configuration. It is possible to override this by providing a file # with pre-configured attributes. This is similar to extra_cred file format, # but the AP Settings attributes are not encapsulated in a Credential # attribute. #ap_settings=hostapd.ap_settings # WPS UPnP interface # If set, support for external Registrars is enabled. #upnp_iface=br0 # Friendly Name (required for UPnP) # Short description for end use. Should be less than 64 characters. #friendly_name=Qualcomm Access Point # Manufacturer URL (optional for UPnP) #manufacturer_url=http://www.qualcomm.com/ # Model Description (recommended for UPnP) # Long description for end user. Should be less than 128 characters. #model_description=Wireless Access Point # Model URL (optional for UPnP) #model_url=http://www.qualcomm.com/ # Universal Product Code (optional for UPnP) # 12-digit, all-numeric code that identifies the consumer package. #upc=123456789012 ##### Multiple BSSID support ################################################## # # Above configuration is using the default interface (wlan#, or multi-SSID VLAN # interfaces). Other BSSIDs can be added by using separator 'bss' with # default interface name to be allocated for the data packets of the new BSS. # # hostapd will generate BSSID mask based on the BSSIDs that are # configured. hostapd will verify that dev_addr & MASK == dev_addr. If this is # not the case, the MAC address of the radio must be changed before starting # hostapd (ifconfig wlan0 hw ether ). # # BSSIDs are assigned in order to each BSS, unless an explicit BSSID is # specified using the 'bssid' parameter. # If an explicit BSSID is specified, it must be chosen such that it: # - results in a valid MASK that covers it and the dev_addr # - is not the same as the MAC address of the radio # - is not the same as any other explicitly specified BSSID # # Please note that hostapd uses some of the values configured for the first BSS # as the defaults for the following BSSes. However, it is recommended that all # BSSes include explicit configuration of all relevant configuration items. # #bss=wlan0_0 #ssid=test2 # most of the above items can be used here (apart from radio interface specific # items, like channel) #bss=wlan0_1 #bssid=00:13:10:95:fe:0b # ... wowlan_triggers=any ================================================ FILE: hostapd.deny ================================================ # List of MAC addresses that are not allowed to authenticate (IEEE 802.11) # with the AP. ================================================ FILE: init.hardware.diag.rc.user ================================================ # # 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. # on post-fs-data # Modem logging collection mkdir /data/vendor/radio 0777 radio radio mkdir /data/vendor/radio/diag_logs 0777 system system # Contain user rules for DIAG access # For release-keys build, only works on Sprint SKU per requirements on property:debug.sys.logging=* setprop persist.sys.logging ${debug.sys.logging} on property:persist.sys.logging=2 setprop sys.usb.config diag,serial_cdev,rmnet,adb on property:ro.boot.diagclean=true && property:sys.boot_completed=1 rm /dev/diag ================================================ FILE: init.hardware.diag.rc.userdebug ================================================ # # 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. # on post-fs-data # Modem logging collection mkdir /data/vendor/radio 0777 radio radio mkdir /data/vendor/radio/diag_logs 0777 system system # Allow to use ##DIAG## in userdebug also on property:debug.sys.logging=* setprop persist.sys.logging ${debug.sys.logging} on property:persist.sys.logging=2 setprop sys.usb.config diag,serial_cdev,rmnet,adb service cnss_diag /vendor/bin/cnss_diag -q -f class main user system group system wifi inet net_admin sdcard_rw media_rw diag oneshot on property:vold.decrypt=trigger_restart_framework start cnss_diag ================================================ FILE: init.recovery.mata.rc ================================================ on fs wait /dev/block/platform/soc/${ro.boot.bootdevice} symlink /dev/block/platform/soc/${ro.boot.bootdevice} /dev/block/bootdevice on init mount configfs none /config mkdir /config/usb_gadget/g1 0770 shell shell write /config/usb_gadget/g1/idVendor 0x2e17 write /config/usb_gadget/g1/idProduct 0xc032 mkdir /config/usb_gadget/g1/strings/0x409 0770 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} mkdir /config/usb_gadget/g1/functions/ffs.adb write /config/usb_gadget/g1/os_desc/use 1 setprop sys.usb.configfs 1 on property:sys.usb.ffs.ready=1 mkdir /config/usb_gadget/g1/configs/b.1 0777 shell shell symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb" symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC "a800000.dwc3" ================================================ FILE: manifest.xml ================================================ android.hardware.audio hwbinder 2.0 IDevicesFactory default android.hardware.audio.effect hwbinder 2.0 IEffectsFactory default android.hardware.soundtrigger hwbinder 2.0 ISoundTriggerHw default android.hardware.media.omx hwbinder 1.0 IOmx default IOmxStore default android.hardware.renderscript passthrough 1.0 IDevice default android.hardware.graphics.allocator hwbinder 2.0 IAllocator default android.hardware.graphics.mapper passthrough 2.1 IMapper default android.hardware.graphics.composer hwbinder 2.1 IComposer default android.hardware.configstore hwbinder 1.0 ISurfaceFlingerConfigs default android.hardware.light hwbinder 2.0 ILight default android.hardware.memtrack hwbinder 1.0 IMemtrack default android.hardware.sensors hwbinder 1.0 ISensors default android.hardware.camera.provider hwbinder 2.4 ICameraProvider legacy/0 android.hardware.biometrics.fingerprint hwbinder 2.1 IBiometricsFingerprint default android.hardware.bluetooth hwbinder 1.0 IBluetoothHci default android.hardware.boot hwbinder 1.0 IBootControl default android.hardware.health hwbinder 2.0 IHealth default android.hardware.radio hwbinder 1.0 IRadio slot1 ISap slot1 android.hardware.secure_element hwbinder 1.0 ISecureElement SIM1 android.hardware.radio.deprecated hwbinder 1.0 IOemHook slot1 vendor.qti.hardware.radio.am hwbinder 1.0 IQcRilAudio slot1 android.hardware.gnss hwbinder 1.0 IGnss default vendor.qti.hardware.radio.atcmdfwd hwbinder 1.0 IAtCmdFwd AtCmdFwdService android.hardware.vibrator hwbinder 1.2 IVibrator default vendor.qti.imsrtpservice hwbinder 1.0 IRTPService imsrtpservice com.qualcomm.qti.uceservice hwbinder 1.0 IUceService com.qualcomm.qti.uceservice vendor.qti.hardware.radio.qtiradio hwbinder 1.0 IQtiRadio slot1 vendor.qti.hardware.improvetouch.touchcompanion hwbinder 1.0 ITouchCompanion TouchCompanionService vendor.qti.hardware.improvetouch.gesturemanager hwbinder 1.0 IGestureManager GestureManagerService vendor.qti.hardware.improvetouch.blobmanager hwbinder 1.0 IBlobManager BlobManagerService android.hardware.keymaster hwbinder 3.0 IKeymasterDevice default android.hardware.gatekeeper hwbinder 1.0 IGatekeeper default android.hardware.wifi.hostapd hwbinder 1.1 IHostapd default android.hardware.wifi.supplicant hwbinder 1.2 ISupplicant default android.hardware.wifi hwbinder 1.2 IWifi default vendor.qti.hardware.radio.ims hwbinder 1.0 IImsRadio imsradio0 vendor.qti.hardware.radio.qcrilhook hwbinder 1.0 IQtiOemHook oemhook0 vendor.qti.hardware.radio.config hwbinder 1.0 IConfig radioconfig0 android.hardware.usb hwbinder 1.0 IUsb default android.hardware.drm hwbinder 1.0 ICryptoFactory default IDrmFactory default @1.2::ICryptoFactory/clearkey @1.2::IDrmFactory/clearkey @1.2::ICryptoFactory/widevine @1.2::IDrmFactory/widevine android.hardware.dumpstate hwbinder 1.0 IDumpstateDevice default android.hardware.nfc hwbinder 1.1 INfc default com.quicinc.cne.server hwbinder 1.0 IServer cnd com.quicinc.cne.api hwbinder 1.0 IApiService cnd com.quicinc.cne.server hwbinder 2.0 IServer cnd com.qualcomm.qti.wifidisplayhal hwbinder 1.0 IHDCPSession wifidisplayhdcphal IDSManager wifidisplaydshal android.hardware.thermal hwbinder 1.0 IThermal default vendor.essential.hardware.sidecar hwbinder 1.0 ISidecar default ================================================ FILE: mata-disabled-until-used-preinstalled-carrier-app.xml ================================================ ================================================ FILE: mata.mk ================================================ LOCAL_KERNEL := device/essential/mata/Image.gz-dtb $(call inherit-product, $(SRC_TARGET_DIR)/product/gsi_release.mk) # Legacy GSI relax the compatible property checking PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE := false # Support addtional Q VNDK packages PRODUCT_EXTRA_VNDK_VERSIONS := 29 # Include Essential audio assets $(call inherit-product-if-exists, vendor/essential/apps/assets/sounds/audio.mk) # Sounds properties PRODUCT_PROPERTY_OVERRIDES += \ ro.config.ringtone=Sikkim.ogg \ ro.config.notification_sound=Sherwood.ogg \ ro.config.alarm_alert=Gallatin.ogg PRODUCT_COPY_FILES += \ $(LOCAL_KERNEL):kernel \ $(LOCAL_PATH)/init.recovery.mata.rc:root/init.recovery.mata.rc BOARD_VENDOR_KERNEL_MODULES := device/essential/mata/qca_cld3_wlan.ko TARGET_USES_QCOM_BSP := false DEVICE_PACKAGE_OVERLAYS += device/essential/mata/overlay PRODUCT_PROPERTY_OVERRIDES += \ ro.vendor.vndk.version=27.1.0 \ # Include vndk/vndk-sp/ll-ndk modules PRODUCT_PACKAGES += vndk_package TARGET_USES_AOSP_FOR_AUDIO := true TARGET_ENABLE_QC_AV_ENHANCEMENTS := false TARGET_DISABLE_DASH := true ENABLE_VENDOR_IMAGE := true ENABLE_AB := true TARGET_KERNEL_VERSION := 4.4 # Use AOSP configuration TARGET_USES_AOSP := true BOARD_FRP_PARTITION_NAME :=frp # Video codec configuration files PRODUCT_COPY_FILES += \ device/essential/mata/media/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \ device/essential/mata/media/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml # video seccomp policy files PRODUCT_COPY_FILES += \ device/essential/mata/seccomp/mediacodec-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \ device/essential/mata/seccomp/mediaextractor-seccomp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediaextractor.policy PRODUCT_PACKAGES += \ android.hardware.usb@1.0-service.mata # Exclude TOF sensor from InputManager PRODUCT_COPY_FILES += \ device/essential/mata/excluded-input-devices.xml:system/etc/excluded-input-devices.xml # Android_net PRODUCT_PACKAGES += \ libandroid_net \ libandroid_net_32 # Add support for whitelisted apps PRODUCT_COPY_FILES += device/essential/mata/whitelistedapps.xml:system/etc/whitelistedapps.xml TARGET_USES_QTIC := false #QTIC flag -include $(QCPATH)/common/config/qtic-config.mk # Add soft home, back and multitask keys PRODUCT_PROPERTY_OVERRIDES += \ qemu.hw.mainkeys=0 # Override heap growth limit due to high display density on device PRODUCT_PROPERTY_OVERRIDES += \ dalvik.vm.heapgrowthlimit=256m # Disable Data roaming by default PRODUCT_PROPERTY_OVERRIDES += \ ro.com.android.dataroaming=false # whitelisted Sprint app PRODUCT_COPY_FILES += \ device/essential/mata/sprint_whitelist.xml:system/etc/sysconfig/sprint_whitelist.xml # APN file PRODUCT_COPY_FILES += \ device/essential/mata/etc/apns-conf.xml:system/etc/apns-conf.xml $(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk) $(call inherit-product, device/essential/mata/base.mk) $(call inherit-product, device/essential/mata/device-vendor.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk) $(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk) PRODUCT_AAPT_CONFIG := normal PRODUCT_AAPT_PREF_CONFIG := 480dpi PRODUCT_AAPT_PREBUILT_DPI := xxxhdpi xxhdpi xhdpi hdpi PRODUCT_PROPERTY_OVERRIDES += \ ro.vendor.extension_library=libqti-perfd-client.so \ persist.radio.apm_sim_not_pwdn=1 \ persist.vendor.radio.sib16_support=1 \ persist.vendor.radio.custom_ecc=1 \ persist.vendor.radio.rat_on=other \ sys.vendor.shutdown.waittime=500 # whitelisted app PRODUCT_COPY_FILES += \ device/essential/mata/qti_whitelist.xml:system/etc/sysconfig/qti_whitelist.xml # system prop for opengles version # # 196608 is decimal for 0x30000 to report version 3 # 196609 is decimal for 0x30001 to report version 3.1 # 196610 is decimal for 0x30002 to report version 3.2 PRODUCT_PROPERTY_OVERRIDES += \ ro.opengles.version=196610 PRODUCT_NAME := mata # End-user-visible name for the overall product. Appears in the Settings > About screen. PRODUCT_DEVICE := mata # End-user-visible name for the end product PRODUCT_MODEL := PH-1 # The brand (e.g., carrier) the software is customized for, if any # This is the first part of the fingerprint # [BRAND/TARGET_PRODUCT/DEVICE:7.1.1/NMF26V/7:user/test-keys] PRODUCT_BRAND := essential # Name of the manufacturer PRODUCT_MANUFACTURER := Essential Products # Enable features in video HAL that can compile only on this platform TARGET_USES_MEDIA_EXTENSIONS := true # WLAN chipset WLAN_CHIPSET := qca_cld3 #Android EGL implementation PRODUCT_PACKAGES += libGLES_android PRODUCT_PACKAGES += telephony-ext PRODUCT_PACKAGES += libqmiextservices # system prop for Bluetooth SOC type PRODUCT_PROPERTY_OVERRIDES += \ qcom.bluetooth.soc=cherokee # FW for BT PRODUCT_PACKAGES += \ crbtfw11.tlv \ crnv11.bin \ crbtfw20.tlv \ crnv20.bin \ crbtfw21.tlv \ crnv21.bin DEVICE_MANIFEST_FILE := device/essential/mata/manifest.xml DEVICE_MATRIX_FILE := device/essential/mata/compatibility_matrix.xml # Audio, SmartAmp PRODUCT_PACKAGES += libtfa98xx climax PRODUCT_COPY_FILES += \ device/essential/mata/audio/mixer_paths_tasha_mata.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tasha.xml \ device/essential/mata/audio/audio_platform_info_mata.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \ device/essential/mata/audio/smartamp/TFA9891.ini:$(TARGET_COPY_OUT_VENDOR)/etc/firmware/TFA9891.ini \ device/essential/mata/audio/smartamp/TFA9891.cnt_preformat.ini:$(TARGET_COPY_OUT_VENDOR)/etc/firmware/TFA9891.cnt_preformat.ini \ device/essential/mata/audio/smartamp/TFA9891.cnt:$(TARGET_COPY_OUT_VENDOR)/firmware/TFA9891.cnt \ device/essential/mata/audio/smartamp/TFA9891_N1A_11_1_31_NL3_HQ.patch:$(TARGET_COPY_OUT_VENDOR)/etc/firmware/TFA9891_N1A_11_1_31_NL3_HQ.patch \ device/essential/mata/audio/smartamp/TFA9891N1A_Dec2015.config:$(TARGET_COPY_OUT_VENDOR)/etc/firmware/TFA9891N1A_Dec2015.config \ device/essential/mata/audio/smartamp/TFA9891.speaker:$(TARGET_COPY_OUT_VENDOR)/etc/firmware/TFA9891.speaker \ device/essential/mata/audio/smartamp/T9891_mu.drc:$(TARGET_COPY_OUT_VENDOR)/etc/firmware/T9891_mu.drc \ device/essential/mata/audio/smartamp/T9891_mu.vstep:$(TARGET_COPY_OUT_VENDOR)/etc/firmware/T9891_mu.vstep \ device/essential/mata/audio/smartamp/T9891_rt.drc:$(TARGET_COPY_OUT_VENDOR)/etc/firmware/T9891_rt.drc \ device/essential/mata/audio/smartamp/T9891_rt.vstep:$(TARGET_COPY_OUT_VENDOR)/etc/firmware/T9891_rt.vstep \ device/essential/mata/audio/smartamp/T9891_vo.drc:$(TARGET_COPY_OUT_VENDOR)/etc/firmware/T9891_vo.drc \ device/essential/mata/audio/smartamp/T9891_vo.vstep:$(TARGET_COPY_OUT_VENDOR)/etc/firmware/T9891_vo.vstep \ device/essential/mata/audio/acdbdata/Bluetooth_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Mata/Mata_Bluetooth_cal.acdb \ device/essential/mata/audio/acdbdata/General_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Mata/Mata_General_cal.acdb \ device/essential/mata/audio/acdbdata/Global_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Mata/Mata_Global_cal.acdb \ device/essential/mata/audio/acdbdata/Handset_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Mata/Mata_Handset_cal.acdb \ device/essential/mata/audio/acdbdata/Hdmi_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Mata/Mata_Hdmi_cal.acdb \ device/essential/mata/audio/acdbdata/Headset_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Mata/Mata_Headset_cal.acdb \ device/essential/mata/audio/acdbdata/Speaker_cal.acdb:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Mata/Mata_Speaker_cal.acdb \ device/essential/mata/audio/acdbdata/workspaceFile.qwsp:$(TARGET_COPY_OUT_VENDOR)/etc/acdbdata/Mata/Mata_workspaceFile.qwsp \ device/essential/mata/audio/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml # Audio volume control PRODUCT_COPY_FILES += \ device/essential/mata/audio/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \ device/essential/mata/audio/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml # Essential audio policy PRODUCT_COPY_FILES += \ device/essential/mata/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \ device/essential/mata/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml # Audio configuration file -include device/essential/mata/audio/msm8998.mk PRODUCT_PACKAGES += android.hardware.media.omx@1.0-impl # Sensor HAL conf file PRODUCT_COPY_FILES += \ device/essential/mata/sensors/hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/hals.conf # WLAN host driver PRODUCT_PACKAGES += $(WLAN_CHIPSET)_wlan.ko # WLAN driver configuration file PRODUCT_COPY_FILES += \ device/essential/mata/WCNSS_qcom_cfg.ini:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/WCNSS_qcom_cfg.ini \ device/essential/mata/wifi_concurrency_cfg.txt:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/wifi_concurrency_cfg.txt # MIDI feature PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml PRODUCT_PACKAGES += \ wpa_supplicant_overlay.conf \ p2p_supplicant_overlay.conf # Display/Graphics PRODUCT_PACKAGES += \ android.hardware.graphics.allocator@2.0-impl \ android.hardware.graphics.allocator@2.0-service \ android.hardware.graphics.mapper@2.0-impl-2.1 \ android.hardware.graphics.composer@2.1-impl \ android.hardware.graphics.composer@2.1-service \ android.hardware.memtrack@1.0-impl \ android.hardware.memtrack@1.0-service \ android.hardware.light@2.0-impl \ android.hardware.light@2.0-service \ android.hardware.configstore@1.0-service # Vibrator PRODUCT_PACKAGES += \ android.hardware.vibrator@1.2-service.mata \ # NFC packages PRODUCT_PACKAGES += \ NfcNci \ Tag \ com.android.nfc_extras \ android.hardware.nfc@1.1-service \ PRODUCT_PROPERTY_OVERRIDES += \ persist.vendor.nfc.uicc_enabled=true \ persist.vendor.radio.uicc_se_enabled=true PRODUCT_PACKAGES += \ SecureElement # NXP chip (NQ2xxx) PRODUCT_COPY_FILES += \ device/essential/mata/nfc/libnfc-nxp.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-nxp.conf \ device/essential/mata/nfc/libnfc-brcm-mata.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-nci.conf PRODUCT_PACKAGES += libpn548ad_fw.so # Camera configuration file. Shared by passthrough/binderized camera HAL PRODUCT_PACKAGES += camera.device@3.2-impl PRODUCT_PACKAGES += android.hardware.camera.provider@2.4-impl # Enable binderized camera HAL PRODUCT_PACKAGES += android.hardware.camera.provider@2.4-service # Sensor features 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.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.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.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.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.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 \ frameworks/native/data/etc/android.hardware.sensor.ambient_temperature.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.ambient_temperature.xml \ frameworks/native/data/etc/android.hardware.sensor.relative_humidity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.relative_humidity.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.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml PRODUCT_PACKAGES += libdiag_system # MSM IRQ Balancer configuration file PRODUCT_COPY_FILES += device/essential/mata/msm_irqbalance.conf:$(TARGET_COPY_OUT_VENDOR)/etc/msm_irqbalance.conf # Powerhint configuration file PRODUCT_COPY_FILES += device/essential/mata/powerhint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.xml # dm-verity configuration PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/bootdevice/by-name/system PRODUCT_VENDOR_VERITY_PARTITION := /dev/block/bootdevice/by-name/vendor $(call inherit-product, build/target/product/verity.mk) PRODUCT_FULL_TREBLE_OVERRIDE := true PRODUCT_VENDOR_MOVE_ENABLED := true #for wlan PRODUCT_PACKAGES += \ wificond \ wifilogd #A/B related packages PRODUCT_PACKAGES += update_engine \ update_engine_client \ update_verifier \ bootctrl.msm8998 \ bootctrl.msm8998.recovery \ android.hardware.boot@1.0-impl \ android.hardware.boot@1.0-impl.recovery \ android.hardware.boot@1.0-service PRODUCT_PACKAGES += \ update_engine_sideload # A/B OTA dexopt package PRODUCT_PACKAGES += otapreopt_script # A/B OTA dexopt update_engine hookup AB_OTA_POSTINSTALL_CONFIG += \ RUN_POSTINSTALL_system=true \ POSTINSTALL_PATH_system=system/bin/otapreopt_script \ FILESYSTEM_TYPE_system=ext4 \ POSTINSTALL_OPTIONAL_system=true #FEATURE_OPENGLES_EXTENSION_PACK support string config file PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml #inherit product from qcom $(call inherit-product-if-exists, vendor/qcom/proprietary/prebuilt_HY11/target/product/msm8998/prebuilt.mk) # Tell the system to enable copying odexes from other partition. PRODUCT_PACKAGES += \ cppreopts.sh PRODUCT_PROPERTY_OVERRIDES += \ ro.cp_system_other_odex=1 #Health packages PRODUCT_PACKAGES += android.hardware.health@2.0-service.mata PRODUCT_COPY_FILES += \ device/essential/mata/healthd/images/animation.txt:root/res/values/charger/animation.txt #Disable QTI KEYMASTER and GATEKEEPER HIDLs #We cannot use those during an OTA from N => O KMGK_USE_QTI_SERVICE := false #Enable AOSP KEYMASTER and GATEKEEPER HIDLs PRODUCT_PACKAGES += android.hardware.gatekeeper@1.0-impl \ android.hardware.gatekeeper@1.0-service \ android.hardware.keymaster@3.0-impl \ android.hardware.keymaster@3.0-service # Kernel modules install path # Change to dlkm when dlkm feature is fully enabled KERNEL_MODULES_INSTALL := system # Audio post-processing PRODUCT_PACKAGES += libvolumelistener #Thermal PRODUCT_PACKAGES += android.hardware.thermal@1.0-service.mata PRODUCT_COPY_FILES += \ device/essential/mata/rootdir/etc/init.qcom.post_boot.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qcom.post_boot.sh \ device/essential/mata/rootdir/etc/init.qcom.early_boot.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qcom.early_boot.sh \ device/essential/mata/rootdir/etc/ueventd.vendor.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc # NFC features PRODUCT_COPY_FILES += \ device/essential/mata/android.sofware.nfc.beam.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.sofware.nfc.beam.xml \ frameworks/native/data/etc/android.hardware.nfc.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.uicc.xml # Touch command handling script PRODUCT_COPY_FILES += \ device/essential/mata/rootdir/etc/hbtp_cmd.sh:$(TARGET_COPY_OUT_VENDOR)/bin/hbtp_cmd.sh # Essential legal page PRODUCT_PACKAGES += \ EssentialLegal # Essential FactoryProvisioning app PRODUCT_PACKAGES += \ FactoryProvisioning # Essential EssentialSUWOverlay PRODUCT_PACKAGES += \ EssentialSUWOverlay # Essential EssentialSuwWelcome PRODUCT_PACKAGES += \ EssentialSuwWelcome # Add spn-conf file PRODUCT_COPY_FILES += \ device/essential/mata/etc/spn-conf.xml:system/etc/spn-conf.xml # USB-C => Jack keylayout PRODUCT_COPY_FILES += \ device/essential/mata/Vendor_2e17_Product_a001.kl:system/usr/keylayout/Vendor_2e17_Product_a001.kl \ device/essential/mata/uinput-fpc.kl:system/usr/keylayout/uinput-fpc.kl # Hidden API Whitelist PRODUCT_COPY_FILES += \ device/essential/mata/essential-hiddenapi-package-whitelist.xml:system/etc/sysconfig/essential-hiddenapi-package-whitelist.xml # Carrier Apps list that are disabled until used PRODUCT_COPY_FILES += \ device/essential/mata/mata-disabled-until-used-preinstalled-carrier-app.xml:system/etc/sysconfig/mata-disabled-until-used-preinstalled-carrier-app.xml # Essential Camera & Gallery PRODUCT_PACKAGES += \ Klik # Essential Sidecar Service PRODUCT_PACKAGES += \ vendor.essential.hardware.sidecar@1.0_vendor \ vendor.essential.hardware.sidecar-V1.0-java \ vendor.essential.hardware.sidecar@1.0-service \ vendor.essential.hardware.sidecar@1.0-impl \ vendor-essential-hardware-sidecar.xml \ Score \ fastboot_target # Essential whitelist resource app PRODUCT_PACKAGES += \ EssentialResources # Essential Core Services PRODUCT_PACKAGES += \ Ecore # Prebuilt text classifier PRODUCT_PACKAGES += \ textclassifier.smartselection.bundle1 # APTx codecs $(call inherit-product-if-exists, vendor/essential/apps/aptX_codecs/aptx_codecs.mk) # Essential priv-app permission PRODUCT_COPY_FILES += \ device/essential/mata/privapp-permissions-mata.xml:system/etc/permissions/privapp-permissions-mata.xml \ # This needs to be set before including GMS packages # Cannot be set in the system.prop, the inclusion # is happening too late PRODUCT_SHIPPING_API_LEVEL := 25 # Custom bootanimation PRODUCT_COPY_FILES += \ device/essential/mata/bootanimation.zip:system/media/bootanimation.zip $(call inherit-product-if-exists, vendor/essential/mata/fpc_fingerprints/device/device.mk) # Silenced verbose logs PRODUCT_PROPERTY_OVERRIDES += \ persist.log.tag.improveTouch=INFO \ persist.log.tag.QCNEJ=WARNING \ persist.log.tag.ThermalEngine=WARNING PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.logging=0 \ persist.sys.crash_dumps=0 \ persist.sys.pstore_dumps=0 \ dalvik.vm.thread-trace-file=/data/anr/threads.txt # Dumpstate HAL PRODUCT_PACKAGES += \ android.hardware.dumpstate@1.0-service.mata # Build DRM HAL PRODUCT_PACKAGES += \ move_widevine_data.sh \ android.hardware.drm@1.2-service.widevine \ android.hardware.drm@1.2-service.clearkey # Add host packages PRODUCT_HOST_PACKAGES += \ brillo_update_payload \ delta_generator \ shflags \ simg2img # Add override for vendor build.prop # RIL info PRODUCT_PROPERTY_OVERRIDES += \ persist.cne.feature=1 \ persist.radio.VT_ENABLE=1 \ persist.radio.VT_HYBRID_ENABLE=1 \ persist.radio.data_con_rprt=true \ persist.rcs.supported=1 \ rild.libpath=/vendor/lib64/libril-qc-qmi-1.so \ persist.data.mode=concurrent \ persist.data.iwlan.enable=true \ ro.telephony.default_network=22 \ telephony.lteOnCdmaDevice=1 # Enable CameraHAL perfd usage PRODUCT_PROPERTY_OVERRIDES += \ persist.camera.perfd.enable=true # Get kernel-headers $(call inherit-product, hardware/qcom/msm8998/msm8998.mk) # Set the path for HAL headers SRC_CAMERA_HAL_DIR := hardware/qcom/camera/msm8998 SRC_DISPLAY_HAL_DIR := hardware/qcom/display/msm8998 SRC_MEDIA_HAL_DIR := hardware/qcom/media/msm8998 PRODUCT_COPY_FILES += \ device/essential/mata/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) PRODUCT_COPY_FILES += \ device/essential/mata/init.hardware.diag.rc.userdebug:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.mata.diag.rc else PRODUCT_COPY_FILES += \ device/essential/mata/init.hardware.diag.rc.user:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.mata.diag.rc endif # Enforce privapp-permissions whitelist PRODUCT_PROPERTY_OVERRIDES += \ ro.control_privapp_permissions=enforce # Subsystem silent restart PRODUCT_PROPERTY_OVERRIDES += \ persist.sys.ssr.restart_level=modem,slpi,adsp # Disable BT HAL v2 for now PRODUCT_PROPERTY_OVERRIDES += \ persist.bluetooth.bluetooth_audio_hal.disabled=true # Reset default locale PRODUCT_LOCALES := # MQA PRODUCT_PACKAGES += \ libhdaudio # Set lmkd options PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \ ro.lmk.low=1001 \ ro.lmk.medium=800 \ ro.lmk.critical=0 \ ro.lmk.critical_upgrade=false \ ro.lmk.upgrade_pressure=100 \ ro.lmk.downgrade_pressure=100 \ ro.lmk.kill_heaviest_task=true \ ro.lmk.kill_timeout_ms=100 \ ro.lmk.use_minfree_levels=true \ PRODUCT_PROPERTY_OVERRIDES += \ ro.build.shutdown_timeout=1 # Set density PRODUCT_PROPERTY_OVERRIDES += \ ro.sf.lcd_density=480 # GPIO mapping PRODUCT_COPY_FILES += \ device/essential/mata/gpio-keys-mata.kl:system/usr/keylayout/gpio-keys.kl # PowerHint values PRODUCT_COPY_FILES += \ device/essential/mata/powerhint.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.json # Installs gsi keys into ramdisk, to boot a GSI with verified boot. $(call inherit-product, $(SRC_TARGET_DIR)/product/gsi_keys.mk) ================================================ FILE: media/media_codecs.xml ================================================ ================================================ FILE: media/media_codecs_performance.xml ================================================ ================================================ FILE: media/media_profiles_V1_0.xml ================================================ ================================================ FILE: msm_irqbalance.conf ================================================ PRIO=1,1,1,1,0,0,0,0 #arch_timer, arm-pmu, arch_mem_timer, smem-rpm, mpm IGNORED_IRQ=19,22,39,200,203 #WLAN irqs BLACKLIST_IRQ=446,455,456 ================================================ FILE: nfc/libnfc-brcm-mata.conf ================================================ ############################################################################### # Application options NFC_DEBUG_ENABLED=1 ############################################################################### # File used for NFA storage NFA_STORAGE="/data/nfc" ############################################################################### # Force UICC to only listen to the following technology(s). # The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h. # Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B | NFA_TECHNOLOGY_MASK_F UICC_LISTEN_TECH_MASK=0x07 ############################################################################### # AID for Empty Select command # If specified, this AID will be substituted when an Empty SELECT command is # detected. The first byte is the length of the AID. Maximum length is 16. AID_FOR_EMPTY_SELECT={08:A0:00:00:01:51:00:00:00} ############################################################################### # When screen is turned off, specify the desired power state of the controller. # 0: power-off-sleep state; DEFAULT # 1: full-power state # 2: screen-off card-emulation (CE4/CE3/CE1 modes are used) SCREEN_OFF_POWER_STATE=1 ############################################################################### # Force tag polling for the following technology(s). # The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h. # Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_B | # NFA_TECHNOLOGY_MASK_F | NFA_TECHNOLOGY_MASK_ISO15693 | # NFA_TECHNOLOGY_MASK_B_PRIME | NFA_TECHNOLOGY_MASK_KOVIO | # NFA_TECHNOLOGY_MASK_ACTIVE # # Notable bits: # NFA_TECHNOLOGY_MASK_A 0x01 /* NFC Technology A */ # NFA_TECHNOLOGY_MASK_B 0x02 /* NFC Technology B */ # NFA_TECHNOLOGY_MASK_F 0x04 /* NFC Technology F */ # NFA_TECHNOLOGY_MASK_ISO15693 0x08 /* Proprietary Technology */ # NFA_TECHNOLOGY_MASK_KOVIO 0x20 /* Proprietary Technology */ # NFA_TECHNOLOGY_MASK_ACTIVE 0x40 /* NFC Technology Active */ POLLING_TECH_MASK=0x6F ############################################################################### # Force P2P to only listen for the following technology(s). # The bits are defined as tNFA_TECHNOLOGY_MASK in nfa_api.h. # Default is NFA_TECHNOLOGY_MASK_A | NFA_TECHNOLOGY_MASK_F | # NFA_TECHNOLOGY_MASK_ACTIVE # # Notable bits: # NFA_TECHNOLOGY_MASK_A 0x01 /* NFC Technology A */ # NFA_TECHNOLOGY_MASK_F 0x04 /* NFC Technology F */ # NFA_TECHNOLOGY_MASK_ACTIVE 0x40 /* NFC Technology Active */ P2P_LISTEN_TECH_MASK=0x45 PRESERVE_STORAGE=0x01 ############################################################################### # Override the stack default for NFA_EE_MAX_EE_SUPPORTED set in nfc_target.h. # The value is set to 3 by default as it assumes we will discover 0xF2, # 0xF3, and 0xF4. If a platform will exclude and SE, this value can be reduced # so that the stack will not wait any longer than necessary. # Maximum EE supported number # NXP PN547C2 0x02 # NXP PN65T 0x03 # NXP PN548C2 0x02 # NXP PN66T 0x03 NFA_MAX_EE_SUPPORTED=0x02 ############################################################################### # AID_MATCHING constants # AID_MATCHING_EXACT_ONLY 0x00 # AID_MATCHING_EXACT_OR_PREFIX 0x01 # AID_MATCHING_PREFIX_ONLY 0x02 # AID_MATCHING_EXACT_OR_SUBSET_OR_PREFIX 0x03 AID_MATCHING_MODE=0x03 ================================================ FILE: nfc/libnfc-nxp.conf ================================================ ## This file is used by NFC NXP NCI HAL(external/libnfc-nci/halimpl/pn547) ## and NFC Service Java Native Interface Extensions (packages/apps/Nfc/nci/jni/extns/pn547) ############################################################################### # Application options # Logging Levels # NXPLOG_DEFAULT_LOGLEVEL 0x01 # ANDROID_LOG_DEBUG 0x03 # ANDROID_LOG_WARN 0x02 # ANDROID_LOG_ERROR 0x01 # ANDROID_LOG_SILENT 0x00 NXPLOG_EXTNS_LOGLEVEL=0x03 NXPLOG_NCIHAL_LOGLEVEL=0x03 NXPLOG_NCIX_LOGLEVEL=0x03 NXPLOG_NCIR_LOGLEVEL=0x03 NXPLOG_FWDNLD_LOGLEVEL=0x03 NXPLOG_TML_LOGLEVEL=0x03 NFC_DEBUG_ENABLED=0 ############################################################################### # Nfc Device Node name NXP_NFC_DEV_NODE="/dev/nq-nci" ############################################################################### # Extension for Mifare reader enable MIFARE_READER_ENABLE=0x01 ############################################################################### # Firmware file type #.so file 0x01 #.bin file 0x02 NXP_FW_TYPE=0x01 ############################################################################### # System clock source selection configuration #define CLK_SRC_XTAL 1 #define CLK_SRC_PLL 2 NXP_SYS_CLK_SRC_SEL=0x01 ############################################################################### # System clock frequency selection configuration #define CLK_FREQ_13MHZ 1 #define CLK_FREQ_19_2MHZ 2 #define CLK_FREQ_24MHZ 3 #define CLK_FREQ_26MHZ 4 #define CLK_FREQ_38_4MHZ 5 #define CLK_FREQ_52MHZ 6 NXP_SYS_CLK_FREQ_SEL=0x00 ############################################################################### # The timeout value to be used for clock request acknowledgment # min value = 0x01 to max = 0x06 NXP_SYS_CLOCK_TO_CFG=0x06 ############################################################################### # NXP proprietary settings NXP_ACT_PROP_EXTN={2F, 02, 00} ############################################################################### # NFC forum profile settings NXP_NFC_PROFILE_EXTN={20, 02, 05, 01, A0, 44, 01, 00} ############################################################################### # NXP TVDD configurations settings # Allow NFCC to configure External TVDD, two configurations (1 and 2) supported, # out of them only one can be configured at a time. NXP_EXT_TVDD_CFG=0x02 ############################################################################### #config1:SLALM, 3.3V for both RM and CM NXP_EXT_TVDD_CFG_1={20, 02, 0B, 02, A0, 66, 01, 00, A0, 0E, 03, 02, 09, 00} ################################################################################ #config2: use DCDC in CE, use Tx_Pwr_Req, set CFG2 mode, SLALM, ############################################################################### # NXP RF ALMSL configuration settings for FW VERSION = 10.01.22 # # A0, 0D, 03, 00, 40, 01 RF_CLIF_CFG_BOOT CLIF_ANA_NFCLD_REG # A0, 0D, 06, 00, FF, 05, 04, 06, 00 RF_CLIF_CFG_BOOT SMU_PMU_REG (0x40024010) # A0, 0D, 06, 00, 35, FF, 01, FF, 02 RF_CLIF_CFG_BOOT CLIF_AGC_INPUT_REG # A0, 0D, 06, 00, 33, 07, 40, 00, 00 RF_CLIF_CFG_BOOT CLIF_AGC_CONFIG0_REG # A0, 0D, 03, 02, 40, 00 RF_CLIF_CFG_IDLE CLIF_ANA_NFCLD_REG # A0, 0D, 03, 04, 47, 02 RF_CLIF_CFG_INITIATOR CLIF_ANA_AGC_REG # A0, 0D, 06, 04, 35, F4, 01, F4, 01 RF_CLIF_CFG_INITIATOR CLIF_AGC_INPUT_REG # A0, 0D, 06, 05, 45, 80, 40, 00, 00 RF_CLIF_CFG_INITIATOR CLIF_ANA_CM_CONFIG_REG # A0, 0D, 06, 05, 35, FF, 01, FF, 02 RF_CLIF_CFG_INITIATOR CLIF_AGC_INPUT_REG # A0, 0D, 06, 05, 33, 07, 40, 00, 00 RF_CLIF_CFG_INITIATOR CLIF_AGC_CONFIG0_REG # A0, 0D, 06, 06, 44, A3, 90, 03, 00 RF_CLIF_CFG_TARGET CLIF_ANA_RX_REG # A0, 0D, 03, 06, 47, 02 RF_CLIF_CFG_TARGET CLIF_ANA_AGC_REG # A0, 0D, 06, 06, 35, FF, 03, FF, 03 RF_CLIF_CFG_TARGET CLIF_AGC_INPUT_REG # A0, 0D, 06, 06, 34, F7, 7F, 00, 10 RF_CLIF_CFG_TARGET CLIF_AGC_CONFIG1_REG # A0, 0D, 06, 06, 33, 03, 40, 00, 00 RF_CLIF_CFG_TARGET CLIF_AGC_CONFIG0_REG # A0, 0D, 06, 06, 30, C8, 00, 64, 00 RF_CLIF_CFG_TARGET CLIF_SIGPRO_ADCBCM_THRESHOLD_REG # A0, 0D, 06, 06, 2F, AF, 05, 80, 17 RF_CLIF_CFG_TARGET CLIF_SIGPRO_ADCBCM_CONFIG_REG # A0, 0D, 06, 06, 03, 00, 6D, 00, 20 RF_CLIF_CFG_TARGET CLIF_TRANSCEIVE_CONTROL_REG # A0, 0D, 06, 06, 45, 80, 40, 00, 00 RF_CLIF_CFG_TARGET CLIF_ANA_CM_CONFIG_REG # A0, 0D, 03, 06, 43, 20 RF_CLIF_CFG_TARGET CLIF_ANA_PBF_CONTROL_REG # A0, 0D, 06, 06, 42, 00, 02, FF, FF RF_CLIF_CFG_TARGET CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 03, 06, 41, 40 RF_CLIF_CFG_TARGET CLIF_ANA_TX_CLK_CONTROL_REG # A0, 0D, 03, 06, 37, 08 RF_CLIF_CFG_TARGET CLIF_TX_CONTROL_REG # A0, 0D, 03, 06, 16, 00 RF_CLIF_CFG_TARGET CLIF_TX_UNDERSHOOT_CONFIG_REG # A0, 0D, 03, 06, 15, 00 RF_CLIF_CFG_TARGET CLIF_TX_OVERSHOOT_CONFIG_REG # A0, 0D, 03, 06, 17, 08 RF_CLIF_CFG_TARGET CLIF_RX_CONFIG_REG # A0, 0D, 03, 06, 3F, 04 RF_CLIF_CFG_TARGET CLIF_TEST_CONTROL_REG # A0, 0D, 03, 06, 80, 03 RF_CLIF_CFG_TARGET CLIF_SPARE_REG # A0, 0D, 03, 07, 3F, 00 RF_CLIF_CFG_TARGET CLIF_TEST_CONTROL_REG # A0, 0D, 06, 07, 35, FF, 01, FF, 02 RF_CLIF_CFG_TARGET CLIF_AGC_INPUT_REG # A0, 0D, 03, 16, 41, 8E RF_CLIF_CFG_TECHNO_I_TXB CLIF_ANA_TX_CLK_CONTROL_REG # A0, 0D, 06, 18, 34, 00, 00, E1, 03 RF_CLIF_CFG_TECHNO_I_RXB CLIF_AGC_CONFIG1_REG # A0, 0D, 06, 18, 33, 0F, 83, 00, 00 RF_CLIF_CFG_TECHNO_I_RXB CLIF_AGC_CONFIG0_REG # A0, 0D, 03, 1A, 41, 8E RF_CLIF_CFG_TECHNO_I_TXF CLIF_ANA_TX_CLK_CONTROL_REG # A0, 0D, 06, 1C, 34, 00, 00, E1, 03 RF_CLIF_CFG_TECHNO_I_RXF_P CLIF_AGC_CONFIG1_REG # A0, 0D, 06, 1C, 33, 0F, 83, 00, 00 RF_CLIF_CFG_TECHNO_I_RXF_P CLIF_AGC_CONFIG0_REG # A0, 0D, 06, 20, 4A, 00, 00, 00, 00 RF_CLIF_CFG_TECHNO_I_TX15693CLIF_ANA_TX_SHAPE_CONTROL_REG # A0, 0D, 06, 20, 42, 88, 10, FF, FF RF_CLIF_CFG_TECHNO_I_TX15693CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 03, 20, 41, 82 RF_CLIF_CFG_TECHNO_I_TX15693CLIF_ANA_TX_CLK_CONTROL_REG # A0, 0D, 06, 32, 42, F8, 10, FF, FF RF_CLIF_CFG_BR_106_I_TXA CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 06, 32, 41, 82, 07, 00, 00 RF_CLIF_CFG_BR_106_I_TXA CLIF_ANA_TX_CLK_CONTROL_REG # A0, 0D, 03, 32, 16, 00 RF_CLIF_CFG_BR_106_I_TXA CLIF_TX_UNDERSHOOT_CONFIG_REG # A0, 0D, 03, 32, 15, 01 RF_CLIF_CFG_BR_106_I_TXA CLIF_TX_OVERSHOOT_CONFIG_REG # A0, 0D, 06, 32, 4A, 33, 07, 00, 08 RF_CLIF_CFG_BR_106_I_TXA CLIF_ANA_TX_SHAPE_CONTROL_REG # A0, 0D, 06, 34, 2D, 24, 47, 0C, 00 RF_CLIF_CFG_BR_106_I_RXA_P CLIF_SIGPRO_RM_CONFIG1_REG # A0, 0D, 06, 34, 34, 00, 00, EC, 03 RF_CLIF_CFG_BR_106_I_RXA_P CLIF_AGC_CONFIG1_REG # A0, 0D, 06, 34, 33, 0F, 01, 01, 70 RF_CLIF_CFG_BR_106_I_RXA_P CLIF_AGC_CONFIG0_REG # A0, 0D, 04, 34, 44, 21, 00 RF_CLIF_CFG_BR_106_I_RXA_P CLIF_ANA_RX_REG # A0, 0D, 06, 38, 4A, 33, 07, 00, 08 RF_CLIF_CFG_BR_212_I_TXA CLIF_ANA_TX_SHAPE_CONTROL_REG # A0, 0D, 06, 38, 42, 68, 10, FF, FF RF_CLIF_CFG_BR_212_I_TXA CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 04, 3A, 44, 26, 00 RF_CLIF_CFG_BR_212_I_RXA CLIF_ANA_RX_REG # A0, 0D, 06, 3A, 2D, 15, 47, 0D, 00 RF_CLIF_CFG_BR_212_I_RXA CLIF_SIGPRO_RM_CONFIG1_REG # A0, 0D, 06, 3A, 34, 00, 00, E1, 03 RF_CLIF_CFG_BR_212_I_RXA CLIF_AGC_CONFIG1_REG # A0, 0D, 06, 3A, 33, 0B, 83, 00, 00 RF_CLIF_CFG_BR_212_I_RXA CLIF_AGC_CONFIG0_REG # A0, 0D, 06, 3C, 4A, 52, 07, 00, 1B RF_CLIF_CFG_BR_424_I_TXA CLIF_ANA_TX_SHAPE_CONTROL_REG # A0, 0D, 06, 3C, 42, 68, 10, FF, FF RF_CLIF_CFG_BR_424_I_TXA CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 04, 3E, 44, 26, 00 RF_CLIF_CFG_BR_424_I_RXA CLIF_ANA_RX_REG # A0, 0D, 06, 3E, 2D, 15, 47, 0D, 00 RF_CLIF_CFG_BR_424_I_RXA CLIF_SIGPRO_RM_CONFIG1_REG # A0, 0D, 06, 3E, 34, 00, 00, E1, 03 RF_CLIF_CFG_BR_424_I_RXA CLIF_AGC_CONFIG1_REG # A0, 0D, 06, 3E, 33, 0B, 83, 00, 00 RF_CLIF_CFG_BR_424_I_RXA CLIF_AGC_CONFIG0_REG # A0, 0D, 03, 40, 41, 8E RF_CLIF_CFG_BR_848_I_TXA CLIF_ANA_TX_CLK_CONTROL_REG # A0, 0D, 06, 40, 42, F0, 10, FF, FF RF_CLIF_CFG_BR_848_I_TXA CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 06, 40, 4A, 12, 07, 00, 00 RF_CLIF_CFG_BR_848_I_TXA CLIF_ANA_TX_SHAPE_CONTROL_REG # A0, 0D, 04, 42, 44, 26, 00 RF_CLIF_CFG_BR_848_I_RXA CLIF_ANA_RX_REG # A0, 0D, 06, 42, 2D, 15, 47, 0D, 00 RF_CLIF_CFG_BR_848_I_RXA CLIF_SIGPRO_RM_CONFIG1_REG # A0, 0D, 06, 42, 34, 00, 00, E1, 03 RF_CLIF_CFG_BR_848_I_RXA CLIF_AGC_CONFIG1_REG # A0, 0D, 06, 42, 33, 0B, 83, 00, 00 RF_CLIF_CFG_BR_848_I_RXA CLIF_AGC_CONFIG0_REG # A0, 0D, 04, 46, 44, 26, 00 RF_CLIF_CFG_BR_106_I_RXB CLIF_ANA_RX_REG # A0, 0D, 06, 46, 2D, 15, 25, 0D, 00 RF_CLIF_CFG_BR_106_I_RXB CLIF_SIGPRO_RM_CONFIG1_REG # A0, 0D, 06, 44, 4A, 21, 07, 00, 07 RF_CLIF_CFG_BR_106_I_TXB CLIF_ANA_TX_SHAPE_CONTROL_REG # A0, 0D, 06, 44, 42, 88, 10, FF, FF RF_CLIF_CFG_BR_106_I_TXB CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 04, 4A, 44, 21, 00 RF_CLIF_CFG_BR_212_I_RXB CLIF_ANA_RX_REG # A0, 0D, 06, 4A, 2D, 15, 9D, 0D, 00 RF_CLIF_CFG_BR_212_I_RXB CLIF_SIGPRO_RM_CONFIG1_REG # A0, 0D, 06, 48, 4A, 21, 07, 00, 07 RF_CLIF_CFG_BR_212_I_TXB CLIF_ANA_TX_SHAPE_CONTROL_REG # A0, 0D, 06, 48, 42, 88, 10, FF, FF RF_CLIF_CFG_BR_212_I_TXB CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 04, 4E, 44, 26, 00 RF_CLIF_CFG_BR_424_I_RXB CLIF_ANA_RX_REG # A0, 0D, 06, 4E, 2D, 15, 25, 0D, 00 RF_CLIF_CFG_BR_424_I_RXB CLIF_SIGPRO_RM_CONFIG1_REG # A0, 0D, 06, 4C, 4A, 21, 07, 00, 07 RF_CLIF_CFG_BR_424_I_TXB CLIF_ANA_TX_SHAPE_CONTROL_REG # A0, 0D, 06, 4C, 42, 88, 10, FF, FF RF_CLIF_CFG_BR_424_I_TXB CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 04, 52, 44, 26, 00 RF_CLIF_CFG_BR_848_I_RXB CLIF_ANA_RX_REG # A0, 0D, 06, 52, 2D, 15, 25, 0D, 00 RF_CLIF_CFG_BR_848_I_RXB CLIF_SIGPRO_RM_CONFIG1_REG # A0, 0D, 06, 50, 42, 90, 10, FF, FF RF_CLIF_CFG_BR_848_I_TXB CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 06, 50, 4A, 21, 07, 00, 07 RF_CLIF_CFG_BR_848_I_TXB CLIF_ANA_TX_SHAPE_CONTROL_REG # A0, 0D, 06, 56, 2D, 05, 9E, 0C, 00 RF_CLIF_CFG_BR_212_I_RXF_P CLIF_SIGPRO_RM_CONFIG1_REG # A0, 0D, 04, 56, 44, 22, 00 RF_CLIF_CFG_BR_212_I_RXF_P CLIF_ANA_RX_REG # A0, 0D, 06, 5C, 2D, 05, 9E, 0C, 00 RF_CLIF_CFG_BR_424_I_RXF_P CLIF_SIGPRO_RM_CONFIG1_REG # A0, 0D, 04, 5C, 44, 26, 00 RF_CLIF_CFG_BR_424_I_RXF_P CLIF_ANA_RX_REG # A0, 0D, 06, 54, 42, 88, 10, FF, FF RF_CLIF_CFG_BR_212_I_TXF CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 06, 5A, 42, 90, 10, FF, FF RF_CLIF_CFG_BR_424_I_TXF CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 06, 98, 2F, CF, 05, 80, 17 RF_CLIF_CFG_GTM_B CLIF_SIGPRO_ADCBCM_CONFIG_REG # A0, 0D, 06, 98, 42, 00, 02, FF, FF RF_CLIF_CFG_GTM_B CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 06, 9A, 42, 00, 02, FF, FF RF_CLIF_CFG_GTM_FELICA CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 06, 30, 44, 12, 90, 03, 00 RF_CLIF_CFG_TECHNO_T_RXF CLIF_ANA_RX_REG # A0, 0D, 06, 6C, 44, A3, 90, 03, 00 RF_CLIF_CFG_BR_106_T_RXA CLIF_ANA_RX_REG # A0, 0D, 03, 70, 2E, 40 RF_CLIF_CFG_BR_212_T_RXA CLIF_SIGPRO_CM_CONFIG_REG # A0, 0D, 03, 70, 45, 30 RF_CLIF_CFG_BR_212_T_RXA CLIF_ANA_CM_CONFIG_REG # A0, 0D, 06, 70, 44, A3, 90, 03, 00 RF_CLIF_CFG_BR_212_T_RXA CLIF_ANA_RX_REG # A0, 0D, 06, 74, 2F, 6F, 05, 80, 12 RF_CLIF_CFG_BR_424_T_RXA CLIF_SIGPRO_ADCBCM_CONFIG_REG # A0, 0D, 06, 74, 30, D5, 00, 40, 00 RF_CLIF_CFG_BR_424_T_RXA CLIF_SIGPRO_ADCBCM_THRESHOLD_REG # A0, 0D, 06, 74, 44, A3, 90, 03, 00 RF_CLIF_CFG_BR_424_T_RXA CLIF_ANA_RX_REG # A0, 0D, 06, 78, 2F, 3F, 07, 80, C1 RF_CLIF_CFG_BR_848_T_RXA CLIF_SIGPRO_ADCBCM_CONFIG_REG # A0, 0D, 06, 78, 30, 50, 00, 10, 00 RF_CLIF_CFG_BR_848_T_RXA CLIF_SIGPRO_ADCBCM_THRESHOLD_REG # A0, 0D, 06, 78, 44, A3, 90, 03, 00 RF_CLIF_CFG_BR_848_T_RXA CLIF_ANA_RX_REG # A0, 0D, 06, 7C, 2F, CF, 05, 80, 17 RF_CLIF_CFG_BR_106_T_RXB CLIF_SIGPRO_ADCBCM_CONFIG_REG # A0, 0D, 06, 7C, 30, C8, 00, 64, 00 RF_CLIF_CFG_BR_106_T_RXB CLIF_SIGPRO_ADCBCM_THRESHOLD_REG # A0, 0D, 06, 7C, 44, A3, 90, 03, 00 RF_CLIF_CFG_BR_106_T_RXB CLIF_ANA_RX_REG # A0, 0D, 06, 80, 2F, CF, 05, 80, 17 RF_CLIF_CFG_BR_212_T_RXB CLIF_SIGPRO_ADCBCM_CONFIG_REG # A0, 0D, 06, 80, 30, C8, 00, 64, 00 RF_CLIF_CFG_BR_212_T_RXB CLIF_SIGPRO_ADCBCM_THRESHOLD_REG # A0, 0D, 06, 80, 44, A3, 90, 03, 00 RF_CLIF_CFG_BR_212_T_RXB CLIF_ANA_RX_REG # A0, 0D, 06, 84, 2F, CF, 05, 80, 17 RF_CLIF_CFG_BR_424_T_RXB CLIF_SIGPRO_ADCBCM_CONFIG_REG # A0, 0D, 06, 84, 30, C8, 00, 64, 00 RF_CLIF_CFG_BR_424_T_RXB CLIF_SIGPRO_ADCBCM_THRESHOLD_REG # A0, 0D, 06, 84, 44, A3, 90, 03, 00 RF_CLIF_CFG_BR_424_T_RXB CLIF_ANA_RX_REG # A0, 0D, 06, 88, 2F, B1, 05, 80, 17 RF_CLIF_CFG_BR_848_T_RXB CLIF_SIGPRO_ADCBCM_CONFIG_REG # A0, 0D, 06, 88, 30, A8, 00, 64, 00 RF_CLIF_CFG_BR_848_T_RXB CLIF_SIGPRO_ADCBCM_THRESHOLD_REG # A0, 0D, 06, 88, 44, A3, 90, 03, 00 RF_CLIF_CFG_BR_848_T_RXB CLIF_ANA_RX_REG # A0, 0D, 06, 8E, 44, 12, 90, 03, 00 RF_CLIF_CFG_BR_212_T_RXF CLIF_ANA_RX_REG # A0, 0D, 06, 94, 44, 12, 90, 03, 00 RF_CLIF_CFG_BR_424_T_RXF CLIF_ANA_RX_REG # A0, 0D, 06, 10, 35, FF, 01, FF, 02 RF_CLIF_CFG_T_ACTIVE CLIF_AGC_INPUT_REG # A0, 0D, 06, 10, 34, F7, 7F, 00, 00 RF_CLIF_CFG_T_ACTIVE CLIF_AGC_CONFIG1_REG # A0, 0D, 06, 6A, 42, F8, 10, FF, FF RF_CLIF_CFG_BR_106_T_TXA_A CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 06, 8C, 42, 88, 10, FF, FF RF_CLIF_CFG_BR_212_T_TXF_A CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 06, 92, 42, 90, 10, FF, FF RF_CLIF_CFG_BR_424_T_TXF_A CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 03, 24, 41, 40 RF_CLIF_CFG_TECHNO_T_TXA_P CLIF_ANA_TX_CLK_CONTROL_REG # A0, 0D, 06, 24, 42, 00, 02, FF, FF RF_CLIF_CFG_TECHNO_T_TXA_P CLIF_ANA_TX_AMPLITUDE_REG # A0, 0D, 03, 28, 41, 40 RF_CLIF_CFG_TECHNO_T_TXB CLIF_ANA_TX_CLK_CONTROL_REG # A0, 0D, 03, 8A, 41, 40 RF_CLIF_CFG_BR_212_T_TXF_P CLIF_ANA_TX_CLK_CONTROL_REG # A0, 0D, 03, 90, 41, 40 RF_CLIF_CFG_BR_424_T_TXF_P CLIF_ANA_TX_CLK_CONTROL_REG # A0, 0D, 03, 08, 40, 10 RF_CLIF_CFG_I_PASSIVE CLIF_ANA_NFCLD_REG # A0, 0D, 06, 08, 45, C0, 82, 00, 00 RF_CLIF_CFG_I_PASSIVE CLIF_ANA_CM_CONFIG_REG # A0, 0D, 06, 0A, 45, 80, 40, 00, 00 RF_CLIF_CFG_I_ACTIVE CLIF_ANA_CM_CONFIG_REG # A0, 0D, 06, 0A, 30, C8, 00, 64, 00 RF_CLIF_CFG_I_ACTIVE CLIF_SIGPRO_ADCBCM_THRESHOLD_REG # A0, 0D, 06, 0A, 2F, AF, 05, 80, 17 RF_CLIF_CFG_I_ACTIVE CLIF_SIGPRO_ADCBCM_CONFIG_REG # A0, 0D, 06, 0A, 34, 26, 65, E5, 03 RF_CLIF_CFG_I_ACTIVE CLIF_AGC_CONFIG1_REG # A0, 0D, 06, 0A, 33, 0F, 01, 00, 70 RF_CLIF_CFG_I_ACTIVE CLIF_AGC_CONFIG0_REG # A0, 0D, 03, 0A, 40, 00 RF_CLIF_CFG_I_ACTIVE CLIF_ANA_NFCLD_REG # # *** ALMSL FW VERSION = 10.01.22 *** NXP_RF_CONF_BLK_1={ 20, 02, F7, 20, A0, 0D, 03, 00, 40, 03, A0, 0D, 06, 00, FF, 05, 04, 06, 00, A0, 0D, 06, 00, 35, FF, 01, FF, 02, A0, 0D, 06, 00, 33, 07, 40, 00, 00, A0, 0D, 03, 02, 40, 00, A0, 0D, 03, 04, 47, 02, A0, 0D, 06, 04, 35, F4, 01, F4, 01, A0, 0D, 06, 05, 45, 80, 40, 00, 00, A0, 0D, 06, 05, 35, FF, 01, FF, 02, A0, 0D, 06, 05, 33, 07, 40, 00, 00, A0, 0D, 06, 06, 44, A3, 90, 03, 00, A0, 0D, 03, 06, 47, 02, A0, 0D, 06, 06, 35, FF, 03, FF, 03, A0, 0D, 06, 06, 34, F7, 7F, 00, 10, A0, 0D, 06, 06, 33, 03, 40, 00, 00, A0, 0D, 06, 06, 30, B0, 00, 10, 00, A0, 0D, 06, 06, 2F, AF, 05, 80, 17, A0, 0D, 06, 06, 03, 00, 72, 00, 20, A0, 0D, 06, 06, 45, 80, 40, 00, 00, A0, 0D, 03, 06, 43, 20, A0, 0D, 06, 06, 42, 00, 00, F1, F1, A0, 0D, 03, 06, 41, 40, A0, 0D, 03, 06, 37, 08, A0, 0D, 03, 06, 16, 00, A0, 0D, 03, 06, 15, 00, A0, 0D, 03, 06, 17, 08, A0, 0D, 03, 06, 3F, 04, A0, 0D, 03, 06, 80, 03, A0, 0D, 03, 07, 3F, 00, A0, 0D, 06, 07, 35, FF, 01, FF, 02, A0, 0D, 03, 16, 41, 8E, A0, 0D, 06, 18, 34, 00, 00, E1, 03 } NXP_RF_CONF_BLK_2={ 20, 02, FA, 1E, A0, 0D, 06, 18, 33, 0F, 83, 00, 00, A0, 0D, 03, 1A, 41, 8E, A0, 0D, 06, 1C, 34, 00, 00, E1, 03, A0, 0D, 06, 1C, 33, 0F, 83, 00, 00, A0, 0D, 06, 20, 4A, 00, 00, 00, 00, A0, 0D, 06, 20, 42, 88, 10, FF, FF, A0, 0D, 03, 20, 41, 82, A0, 0D, 06, 32, 42, F8, 10, FF, FF, A0, 0D, 06, 32, 41, 82, 07, 00, 00, A0, 0D, 03, 32, 16, 00, A0, 0D, 03, 32, 15, 01, A0, 0D, 06, 32, 4A, 33, 07, 00, 08, A0, 0D, 06, 34, 2D, 24, 27, 0C, 00, A0, 0D, 06, 34, 34, 00, 00, EC, 03, A0, 0D, 06, 34, 33, 0F, 01, 01, 70, A0, 0D, 04, 34, 44, 21, 00, A0, 0D, 06, 38, 4A, 33, 07, 00, 08, A0, 0D, 06, 38, 42, 68, 10, FF, FF, A0, 0D, 04, 3A, 44, 26, 00, A0, 0D, 06, 3A, 2D, 15, 47, 0D, 00, A0, 0D, 06, 3A, 34, 00, 00, E1, 03, A0, 0D, 06, 3A, 33, 0B, 83, 00, 00, A0, 0D, 06, 3C, 4A, 52, 07, 00, 1B, A0, 0D, 06, 3C, 42, 68, 10, FF, FF, A0, 0D, 04, 3E, 44, 26, 00, A0, 0D, 06, 3E, 2D, 15, 47, 0D, 00, A0, 0D, 06, 3E, 34, 00, 00, E1, 03, A0, 0D, 06, 3E, 33, 0B, 83, 00, 00, A0, 0D, 03, 40, 41, 8E, A0, 0D, 06, 40, 42, F0, 10, FF, FF } NXP_RF_CONF_BLK_3={ 20, 02, F8, 1D, A0, 0D, 06, 40, 4A, 12, 07, 00, 00, A0, 0D, 04, 42, 44, 26, 00, A0, 0D, 06, 42, 2D, 15, 47, 0D, 00, A0, 0D, 06, 42, 34, 00, 00, E1, 03, A0, 0D, 06, 42, 33, 0B, 83, 00, 00, A0, 0D, 04, 46, 44, 26, 00, A0, 0D, 06, 46, 2D, 15, 25, 0D, 00, A0, 0D, 06, 44, 4A, 21, 07, 00, 07, A0, 0D, 06, 44, 42, 88, 10, FF, FF, A0, 0D, 04, 4A, 44, 21, 00, A0, 0D, 06, 4A, 2D, 15, 9D, 0D, 00, A0, 0D, 06, 48, 4A, 21, 07, 00, 07, A0, 0D, 06, 48, 42, 88, 10, FF, FF, A0, 0D, 04, 4E, 44, 26, 00, A0, 0D, 06, 4E, 2D, 15, 25, 0D, 00, A0, 0D, 06, 4C, 4A, 21, 07, 00, 07, A0, 0D, 06, 4C, 42, 88, 10, FF, FF, A0, 0D, 04, 52, 44, 26, 00, A0, 0D, 06, 52, 2D, 15, 25, 0D, 00, A0, 0D, 06, 50, 42, 90, 10, FF, FF, A0, 0D, 06, 50, 4A, 21, 07, 00, 07, A0, 0D, 06, 56, 2D, 05, 9E, 0C, 00, A0, 0D, 04, 56, 44, 22, 00, A0, 0D, 06, 5C, 2D, 05, 9E, 0C, 00, A0, 0D, 04, 5C, 44, 26, 00, A0, 0D, 06, 54, 42, 88, 10, FF, FF, A0, 0D, 06, 5A, 42, 90, 10, FF, FF, A0, 0D, 06, 98, 2F, CF, 05, 80, 17, A0, 0D, 06, 98, 42, 00, 00, F1, F1 } NXP_RF_CONF_BLK_4={ 20, 02, F7, 1C, A0, 0D, 06, 9A, 42, 00, 02, F1, F1, A0, 0D, 06, 30, 44, 12, 90, 03, 00, A0, 0D, 06, 6C, 44, A3, 90, 03, 00, A0, 0D, 03, 70, 2E, 40, A0, 0D, 03, 70, 45, 30, A0, 0D, 06, 70, 44, A3, 90, 03, 00, A0, 0D, 06, 74, 2F, 6F, 05, 80, 12, A0, 0D, 06, 74, 30, D5, 00, 40, 00, A0, 0D, 06, 74, 44, A3, 90, 03, 00, A0, 0D, 06, 78, 2F, 3F, 07, 80, C1, A0, 0D, 06, 78, 30, 50, 00, 10, 00, A0, 0D, 06, 78, 44, A3, 90, 03, 00, A0, 0D, 06, 7C, 2F, CF, 05, 80, 17, A0, 0D, 06, 7C, 30, C8, 00, 64, 00, A0, 0D, 06, 7C, 44, A3, 90, 03, 00, A0, 0D, 06, 80, 2F, CF, 05, 80, 17, A0, 0D, 06, 80, 30, C8, 00, 64, 00, A0, 0D, 06, 80, 44, A3, 90, 03, 00, A0, 0D, 06, 84, 2F, CF, 05, 80, 17, A0, 0D, 06, 84, 30, C8, 00, 64, 00, A0, 0D, 06, 84, 44, A3, 90, 03, 00, A0, 0D, 06, 88, 2F, B1, 05, 80, 17, A0, 0D, 06, 88, 30, A8, 00, 64, 00, A0, 0D, 06, 88, 44, A3, 90, 03, 00, A0, 0D, 06, 8E, 44, 12, 90, 03, 00, A0, 0D, 06, 94, 44, 12, 90, 03, 00, A0, 0D, 06, 10, 35, FF, 01, FF, 02, A0, 0D, 06, 10, 34, F7, 7F, 00, 00 } NXP_RF_CONF_BLK_5={ 20, 02, 7F, 10, A0, 0D, 06, 6A, 42, F8, 10, FF, FF, A0, 0D, 06, 8C, 42, 88, 10, FF, FF, A0, 0D, 06, 92, 42, 90, 10, FF, FF, A0, 0D, 03, 24, 41, 40, A0, 0D, 06, 24, 42, 00, 00, F1, F1, A0, 0D, 03, 28, 41, 40, A0, 0D, 03, 8A, 41, 40, A0, 0D, 03, 90, 41, 40, A0, 0D, 03, 08, 40, 10, A0, 0D, 06, 08, 45, C0, 82, 00, 00, A0, 0D, 06, 0A, 45, 80, 40, 00, 00, A0, 0D, 06, 0A, 30, C8, 00, 64, 00, A0, 0D, 06, 0A, 2F, AF, 05, 80, 17, A0, 0D, 06, 0A, 34, 26, 65, E5, 03, A0, 0D, 06, 0A, 33, 0F, 01, 00, 70, A0, 0D, 03, 0A, 40, 00 } NXP_RF_CONF_BLK_6={ } ############################################################################### # NXP RF configuration ALM/PLM settings # This section needs to be updated with the correct values based on the platform #NXP_RF_CONF_BLK_1={ #} ############################################################################### # NXP RF configuration ALM/PLM settings # This section needs to be updated with the correct values based on the platform #NXP_RF_CONF_BLK_2={ #} ############################################################################### # NXP RF configuration ALM/PLM settings # This section needs to be updated with the correct values based on the platform #NXP_RF_CONF_BLK_3={ #} ############################################################################### # NXP RF configuration ALM/PLM settings # This section needs to be updated with the correct values based on the platform #NXP_RF_CONF_BLK_4={ #} ############################################################################### # NXP RF configuration ALM/PLM settings # This section needs to be updated with the correct values based on the platform #NXP_RF_CONF_BLK_5={ #} ############################################################################### # NXP RF configuration ALM/PLM settings # This section needs to be updated with the correct values based on the platform #NXP_RF_CONF_BLK_6={ #} ############################################################################### # Core configuration extensions # It includes # Wired mode settings A0ED, A0EE # Tag Detector A040, A041, A043 # Low Power mode A007 # Clock settings A002, A003 # PbF settings A008 NXP_CORE_CONF_EXTN={20, 02, 66, 11, A0, 02, 01, 01, A0, 09, 02, E8, 03, A0, 12, 01, 02, A0, 40, 01, 01, A0, 41, 01, 04, A0, 42, 01, 0F, A0, 43, 01, 03, A0, 5E, 01, 01, A0, 61, 01, 53, A0, 96, 01, 01, A0, DD, 01, 2D, A0, EC, 01, 01, A0, ED, 01, 00, A0, F2, 01, 01, A0, 07, 01, 03, A0, 1D, 11, 57, 33, 14, 17, 00, AA, 85, 00, 80, 55, 2A, 04, 00, 63, 00, 00, 00, A0, 1E, 11, 1F, 13, 14, 14, 00, 6F, 97, 00, 00, 00, 10, 04, 00, 63, 02, 00, 00 } ############################################################################### # Core configuration rf field filter settings to enable set to 01 to disable set to 00 last bit NXP_CORE_RF_FIELD={ 20, 02, 05, 01, A0, 62, 01, 01 } ############################################################################### # To enable i2c fragmentation set i2c fragmentation enable 0x01 to disable set # to 0x00 NXP_I2C_FRAGMENTATION_ENABLED=0x00 ############################################################################### # Core configuration settings NXP_CORE_CONF={ 20, 02, 2A, 0E, 28, 01, 00, 21, 01, 00, 30, 01, 08, 31, 01, 03, 32, 01, 60, 38, 01, 01, 33, 00, 54, 01, 06, 50, 01, 02, 5B, 01, 00, 80, 01, 01, 81, 01, 01, 82, 01, 0E, 18, 01, 01 } ############################################################################### #Enable SWP full power mode when phone is power off NXP_SWP_FULL_PWR_ON=0x00 ############################################################################### #Set the default Felica T3T System Code OffHost route Location : # host 0x00 # eSE 0x01 # UICC 0x02 # UICC2 0x03 DEFAULT_SYS_CODE_ROUTE=0x00 ############################################################################### #Set the default Felica T3T System Code : DEFAULT_SYS_CODE={FE,FF} ############################################################################### # AID Matching platform options # AID_MATCHING_L 0x01 # AID_MATCHING_K 0x02 AID_MATCHING_PLATFORM=0x01 ############################################################################### #CHINA_TIANJIN_RF_SETTING #Enable 0x01 #Disable 0x00 NXP_CHINA_TIANJIN_RF_ENABLED=0x01 ############################################################################### #SWP_SWITCH_TIMEOUT_SETTING # Allowed range of swp timeout setting is 0x00 to 0x3C [0 - 60]. # Timeout in milliseconds, for example # No Timeout 0x00 # 10 millisecond timeout 0x0A NXP_SWP_SWITCH_TIMEOUT=0x0A ############################################################################## # Extended APDU length for ISO_DEP ISO_DEP_MAX_TRANSCEIVE=0xFEFF ############################################################################### # Vendor Specific Proprietary Protocol & Discovery Configuration # Set to 0xFF if unsupported # byte[0] NCI_PROTOCOL_18092_ACTIVE # byte[1] NCI_PROTOCOL_B_PRIME # byte[2] NCI_PROTOCOL_DUAL # byte[3] NCI_PROTOCOL_15693 # byte[4] NCI_PROTOCOL_KOVIO # byte[5] NCI_PROTOCOL_MIFARE # byte[6] NCI_DISCOVERY_TYPE_POLL_KOVIO # byte[7] NCI_DISCOVERY_TYPE_POLL_B_PRIME # byte[8] NCI_DISCOVERY_TYPE_LISTEN_B_PRIME NFA_PROPRIETARY_CFG={05, FF, FF, 06, 81, 80, 70, FF, FF} ############################################################################### # Choose the presence-check algorithm for type-4 tag. If not defined, the default value is 1. # 0 NFA_RW_PRES_CHK_DEFAULT; Let stack selects an algorithm # 1 NFA_RW_PRES_CHK_I_BLOCK; ISO-DEP protocol's empty I-block # 2 NFA_RW_PRES_CHK_ISO_DEP_NAK; Type - 4 tag protocol iso-dep nak presence check # command is sent waiting for rsp and ntf. PRESENCE_CHECK_ALGORITHM=2 ############################################################################### DEFAULT_OFFHOST_ROUTE=0x02 OFF_HOST_SIM_PIPE_ID=0x0A ================================================ FILE: overlay/frameworks/base/core/res/res/values/config.xml ================================================ true "usb\\d" "rndis\\d" 192.168.42.2 192.168.42.254 192.168.43.2 192.168.43.254 192.168.44.2 192.168.44.254 192.168.45.2 192.168.45.254 192.168.46.2 192.168.46.254 192.168.47.2 192.168.47.254 192.168.48.2 192.168.48.254 192.168.49.2 192.168.49.254 192.168.50.2 192.168.50.254 192.168.51.2 192.168.51.254 "wifi,1,1,1,-1,true" "mobile,0,0,0,-1,true" "mobile_mms,2,0,4,60000,true" "mobile_supl,3,0,2,60000,true" "mobile_dun,4,0,2,60000,true" "mobile_hipri,5,0,3,60000,true" "mobile_fota,10,0,2,60000,true" "mobile_ims,11,0,2,60000,true" "mobile_cbs,12,0,2,60000,true" "bluetooth,7,7,2,-1,true" "mobile_emergency,15,0,5,-1,true" "1,1" "0,1" "7,1" "bnep\\d" "bt-pan" 0 1 5 7 true true true true true true true true true 2albba11 https://storage.googleapis.com/essential-static/2albba11.xml true false true true "lte:2097152,4194304,8388608,262144,524288,1048576" "lte_ca:2097152,4194304,8388608,4096,1048576,2097152" "umts:4094,87380,1220608,4096,16384,1220608" "hspa:4094,87380,1220608,4096,16384,1220608" "hsupa:4094,87380,1220608,4096,16384,1220608" "hsdpa:4094,87380,1220608,4096,16384,1220608" "hspap:4094,87380,1220608,4096,16384,1220608" "edge:4093,26280,35040,4096,16384,35040" "gprs:4092,8760,11680,4096,8760,11680" "evdo:4094,87380,524288,4096,16384,262144" 4 true false seemp.service "wlan0" "softap.*" true false false com.qualcomm.location com.qualcomm.location com.android.systemui/com.android.systemui.doze.DozeService true 17 true true false false true true true true 0 7 26 false 0 5 26 26 2000 4000 200% 1 2 3 8 16 50 1000 3500 5000 10 20 30 35 60 100 140 200 260 300 0 20 30 44 63 71 90 105 130 236 255 0 30 68 105 154 173 218 244 301 500 600 600 true #ff0000ff 6 90 1 "/system/framework/arm64/boot-framework.oat" "/system/framework/boot-framework.vdex" "/system/framework/oat/arm64/services.odex" "/system/framework/oat/arm64/services.vdex" "/system/framework/arm64/boot.oat" "/system/framework/boot.vdex" "/system/framework/arm64/boot-core-libart.oat" "/system/framework/boot-core-libart.vdex" true 3300 true true true 8 true com.essential.retail/.DemoPlayer true com.android.launcher3 true org.codeaurora.ims true "hwepoem:mtp:diag,serial_cdev,rmnet,adb" "hwepoem:mtp,adb:diag,serial_cdev,rmnet,adb" "hwepoem:ptp:diag,serial_cdev,rmnet,adb" "hwepoem:ptp,adb:diag,serial_cdev,rmnet,adb" "hwepoem:rndis:diag,serial_cdev,rmnet,adb" "hwepoem:rndis,adb:diag,serial_cdev,rmnet,adb" "hwepoem:adb:diag,serial_cdev,rmnet,adb" com.android.wallpaperpicker false M -70, 0 L -70, 137 L 70, 137 L 70, 0 Z false com.android.launcher3/com.android.quickstep.RecentsActivity true true 3 3 true true 1 "M50 0A50 50,0,1,1,50 100A50 50,0,1,1,50 0" true ================================================ FILE: overlay/frameworks/base/core/res/res/values/dimens.xml ================================================ 144px 28dp 144px 16px ================================================ FILE: overlay/frameworks/base/core/res/res/values/strings.xml ================================================ PH-1 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc234-mnc15/config.xml ================================================ 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc234-mnc15-en-rGB/config.xml ================================================ 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc234-mnc15-en-rIN/config.xml ================================================ 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc262-mnc02/config.xml ================================================ 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc262-mnc02-en-rGB/config.xml ================================================ 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc262-mnc02-en-rIN/config.xml ================================================ 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc262-mnc04/config.xml ================================================ 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc262-mnc04-en-rGB/config.xml ================================================ 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc262-mnc04-en-rIN/config.xml ================================================ 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc262-mnc09/config.xml ================================================ 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc262-mnc09-en-rGB/config.xml ================================================ 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc262-mnc09-en-rIN/config.xml ================================================ 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc310-mnc004/config.xml ================================================ 6 estph1 http://uaprof.vtext.com/essential/estph1/estph1.xml ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc310-mnc120/config.xml ================================================ 6 2ALBB-A11 SPRINT true 1 74 124 125 126 157 158 159 193 194 195 196 197 198 228 229 230 231 232 233 234 235 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc310-mnc260/config.xml ================================================ 1 4 7 9 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc310-mnc410/config.xml ================================================ 3 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc311-mnc480/config.xml ================================================ true 6 estph1 http://uaprof.vtext.com/essential/estph1/estph1.xml ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc311-mnc490/config.xml ================================================ 6 2ALBB-A11 VIRGIN true 1 74 124 125 126 157 158 159 193 194 195 196 197 198 228 229 230 231 232 233 234 235 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc311-mnc870/config.xml ================================================ 6 2ALBB-A11 BOOST true 1 74 124 125 126 157 158 159 193 194 195 196 197 198 228 229 230 231 232 233 234 235 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc312-mnc530/config.xml ================================================ 6 2ALBB-A11 SPRPRE true 1 74 124 125 126 157 158 159 193 194 195 196 197 198 228 229 230 231 232 233 234 235 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc440-mnc20/config.xml ================================================ SUPL_HOST=supl.google.com SUPL_PORT=7275 NTP_SERVER=time.izatcloud.net SUPL_VER=0x20000 SUPL_MODE=1 XTRA_VERSION_CHECK=0 ERR_ESTIMATE=0 XTRA_CA_PATH=/system/etc/security/cacerts DEBUG_LEVEL=2 INTERMEDIATE_POS=0 SUPL_ES=1 USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL=0 CAPABILITIES=0x37 LPP_PROFILE=0 NMEA_PROVIDER=0 SGLTE_TARGET=0 A_GLONASS_POS_PROTOCOL_SELECT=0x2 LPPE_CP_TECHNOLOGY=0 LPPE_UP_TECHNOLOGY=0 AGPS_CONFIG_INJECT=1 AP_TIMESTAMP_UNCERTAINTY=10 DR_SYNC_ENABLED=0 PPS_DEVICENAME=/dev/pps0 AP_CLOCK_PPM=100 MISSING_PULSE_TIME_DELTA=900 PROPAGATION_TIME_UNCERTAINTY=1 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc460-mnc03/config.xml ================================================ 6 ================================================ FILE: overlay/frameworks/base/core/res/res/values-mcc460-mnc11/config.xml ================================================ 6 ================================================ FILE: overlay/frameworks/base/core/res/res/xml/power_profile.xml ================================================ 0 60.0 248.2 61.46 0.48 2 200 24 200 588 45 200 90 3 2.5 4 4 300000 364800 441600 518400 595200 672000 748800 825600 883200 960000 1036800 1094400 1171200 1248000 1324800 1401600 1478400 1555200 1670400 1747200 1824000 1900800 300000 345600 422400 499200 576000 652800 729600 806400 902400 979200 1056000 1132800 1190400 1267200 1344000 1420800 1497600 1574400 1651200 1728000 1804800 1881600 1958400 2035200 2112000 2208000 2265600 2323200 2342400 2361600 2457600 4.73 60 10 23.4 25.3 27.1 28.6 30.5 32.8 34.7 37.2 40.0 42.9 45.4 48.8 52.8 57.6 61.4 65.1 70.0 79.9 87.8 96.4 103.0 15 48.8 55.9 62.7 69.9 76.3 82.8 89.8 97.3 105.1 112.2 118.6 129.9 141.9 154.9 171.9 187.6 207.0 228.2 248.7 263.6 304.4 334.9 371.4 411.2 474.3 496.1 511.5 524.3 536.1 542.4 3040 0.0002 0.002 0.02 0.2 2 ================================================ FILE: overlay/frameworks/base/packages/Keyguard/res/values/config.xml ================================================ false ================================================ FILE: overlay/frameworks/base/packages/SettingsLib/res/values/arrays.xml ================================================ 0 -1 ================================================ FILE: overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml ================================================ true 82 30000 true ================================================ FILE: overlay/frameworks/base/packages/SystemUI/res/values/config.xml ================================================ 405840 405854 405855 405856 405857 405858 405859 405860 405861 405862 405863 405864 405865 405866 405867 405868 405869 405870 405871 405872 405873 405874 -128 -120 -115 -110 -105 -44 true false wifi,cell,battery,dnd,flashlight,rotation,bt,airplane true false false false ================================================ FILE: overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml ================================================ 438dp ================================================ FILE: overlay/frameworks/base/packages/SystemUI/res/values-mcc208-mnc01/config.xml ================================================ true true true ================================================ FILE: overlay/frameworks/base/packages/SystemUI/res/values-mcc302-mnc220/config.xml ================================================ true false true ================================================ FILE: overlay/frameworks/base/packages/SystemUI/res/values-mcc310-mnc120/config.xml ================================================ wifi,cell,wfc,battery,dnd,flashlight,rotation,bt,airplane wifi,cell,battery,dnd,flashlight,rotation,bt,airplane,wfc,location,hotspot,inversion,saver,work,cast,night true ================================================ FILE: overlay/frameworks/base/packages/SystemUI/res/values-mcc311-mnc490/config.xml ================================================ wifi,cell,wfc,battery,dnd,flashlight,rotation,bt,airplane wifi,cell,battery,dnd,flashlight,rotation,bt,airplane,wfc,location,hotspot,inversion,saver,work,cast,night true ================================================ FILE: overlay/frameworks/base/packages/SystemUI/res/values-mcc311-mnc870/config.xml ================================================ wifi,cell,wfc,battery,dnd,flashlight,rotation,bt,airplane wifi,cell,battery,dnd,flashlight,rotation,bt,airplane,wfc,location,hotspot,inversion,saver,work,cast,night true ================================================ FILE: overlay/frameworks/base/packages/SystemUI/res/values-mcc312-mnc530/config.xml ================================================ wifi,cell,wfc,battery,dnd,flashlight,rotation,bt,airplane wifi,cell,battery,dnd,flashlight,rotation,bt,airplane,wfc,location,hotspot,inversion,saver,work,cast,night true ================================================ FILE: overlay/frameworks/base/packages/SystemUI/res/values-mcc440-mnc20/config.xml ================================================ false true true true ================================================ FILE: overlay/packages/apps/Bluetooth/res/values/config.xml ================================================ false true false true ================================================ FILE: overlay/packages/apps/CellBroadcastReceiver/res/values/config.xml ================================================ true true true ================================================ FILE: overlay/packages/apps/Dialer/InCallUI/res/values/config.xml ================================================ 6 ================================================ FILE: overlay/packages/apps/Phone/res/values/config.xml ================================================ true true true true 1 true ================================================ FILE: overlay/packages/apps/Settings/res/values/arrays.xml ================================================ @string/preferred_network_mode_td_scdma_lte_gsm_wcdma_cdma_evdo_choice @string/preferred_network_mode_cdma_lte_evdo_choice @string/preferred_network_mode_cdma_evdo_auto_choice @string/preferred_network_mode_gsm_wcdma_auto_choice "22" "8" "4" "3" ================================================ FILE: overlay/packages/apps/Settings/res/values/bools.xml ================================================ false true ================================================ FILE: overlay/packages/apps/Settings/res/values/config.xml ================================================ true false ================================================ FILE: overlay/packages/apps/Settings/res/values/dimens.xml ================================================ 50.35% 35% ================================================ FILE: overlay/packages/apps/Settings/res/values/strings.xml ================================================ https://support.essential.com Turn on Adaptive Battery Adaptive Battery To extend battery life, Adaptive Battery limits battery for infrequently used apps. Your tablet will learn how you use apps over time.\n\nNotifications may be delayed for these apps. To extend battery life, Adaptive Battery limits battery for infrequently used apps. Your device will learn how you use apps over time.\n\nNotifications may be delayed for these apps. Use Adaptive Battery Turn on Adaptive Battery Preferred network mode: GSM/WCDMA/LTE Preferred network mode: LTE/WCDMA Preferred network mode: WCDMA preferred Preferred network mode: WCDMA only GSM/WCDMA/LTE LTE/WCDMA GSM/WCDMA preferred WCDMA only Preferred network mode: Automatic Preferred network mode: LTE/CDMA Preferred network mode: CDMA Preferred network mode: CDMA Preferred network mode: GSM/UMTS Automatic LTE/CDMA CDMA GSM/UMTS ================================================ FILE: overlay/packages/apps/Settings/res/values-af/strings.xml ================================================ "Skakel Aanpasbare Battery aan" "Aanpasbare Battery" "Om die batterylewe te verleng, beperk Aanpasbare Battery die batterygebruik van programme wat selde gebruik word. Jou tablet sal mettertyd leer hoe jy programme gebruik.\n\nKennisgewings sal dalk vir hierdie programme vertraag word." "Om die batterylewe te verleng, beperk Aanpasbare Battery die batterygebruik van programme wat selde gebruik word. Jou toestel sal mettertyd leer hoe jy programme gebruik.\n\nKennisgewings sal dalk vir hierdie programme vertraag word." "Gebruik Aanpasbare Battery" "Skakel Aanpasbare Battery aan" ================================================ FILE: overlay/packages/apps/Settings/res/values-am/strings.xml ================================================ "ተለማማጅ ባትሪን ያብሩ" "ተለማማጅ ባትሪ" "የባትሪ ዕድሜን ለማራዘም ተለማማጅ ባትሪ በተደጋጋሚ ጥቅም ላይ ለማይውሉ መተግበሪያዎች ባትሪን ይገድባል። የእርስዎ ጡባዊ መተግበሪያዎችዎን እንዴት እንደሚጠቀሙ በጊዜ ሂደት ላይ ይማራል።\n\nማሳወቂያዎች ለእነዚህ መተግበሪያዎች ሊዘገዩ ይችካሉ።" "የባትሪ ዕድሜን ለማራዘም ተለማማጅ ባትሪ በተደጋጋሚ ጥቅም ላይ ለማይውሉ መተግበሪያዎች ባትሪን ይገድባል። የእርስዎ መሣሪያ መተግበሪያዎችዎን እንዴት እንደሚጠቀሙ በጊዜ ሂደት ላይ ይማራል።\n\nማሳወቂያዎች ለእነዚህ መተግበሪያዎች ሊዘገዩ ይችካሉ።" "ተለማማጅ ባትሪን ይጠቀሙ" "ተለማማጅ ባትሪን ያብሩ" ================================================ FILE: overlay/packages/apps/Settings/res/values-ar/strings.xml ================================================ "تفعيل البطارية التكيُّفية" "البطارية التكيُّفية" "لإطالة عمر البطارية، يعمل خيار \"البطارية التكيُّفية\" على تقييد استخدام البطارية للتطبيقات التي لا تستخدمها إلا نادرًا. وسيتعلم جهازك اللوحي كيفية استخدام التطبيقات مع مرور الوقت.\n\nقد تتأخر إشعارات هذه التطبيقات." "لإطالة عمر البطارية، يعمل خيار \"البطارية التكيُّفية\" على تقييد استخدام البطارية للتطبيقات التي لا تستخدمها إلا نادرًا. وسيتعلم جهازك كيفية استخدام التطبيقات مع مرور الوقت.\n\nقد تتأخر إشعارات هذه التطبيقات." "استخدام البطارية التكيُّفية" "تفعيل البطارية التكيُّفية" ================================================ FILE: overlay/packages/apps/Settings/res/values-as/strings.xml ================================================ "অভিযোজিত বেটাৰি অন কৰক" "অভিযোজিত বেটাৰি" "বেটাৰিৰ অৱস্থা উন্নত কৰিবলৈ অভিযোজিত বেটাৰিয়ে সঘনাই ব্য়ৱহাৰ নোহোৱা এপসমূহৰ বেটাৰিৰ ব্য়ৱহাৰ সীমিত কৰে। সময়ৰ লগত সংগতি ৰাখি আপোনাৰ টেবলেটে আপুনি কেনেকৈ এপসমূহ ব্য়ৱহাৰ কৰে সেয়া অনুমান কৰিব।\n\nএই এপসমূহৰ বাবে জাননীসমূহ পলম হ\'ব পাৰে।" "বেটাৰিৰ অৱস্থা উন্নত কৰিবলৈ অভিযোজিত বেটাৰিয়ে সঘনাই ব্য়ৱহাৰ নোহোৱা এপসমূহৰ বেটাৰিৰ ব্য়ৱহাৰ সীমিত কৰে। সময়ৰ লগত সংগতি ৰাখি আপোনাৰ ডিভাইচে আপুনি কেনেকৈ এপসমূহ ব্য়ৱহাৰ কৰে সেয়া অনুমান কৰিব।\n\nএই এপসমূহৰ বাবে জাননীসমূহ পলম হ\'ব পাৰে।" "অভিযোজিত বেটাৰি ব্যৱহাৰ কৰক" "অভিযোজিত বেটাৰি অন কৰক" ================================================ FILE: overlay/packages/apps/Settings/res/values-az/strings.xml ================================================ "Adaptiv Batareyanı aktiv edin" "Adaptiv Batareya" "Batareya ömrünü uzatmaq üçün Adaptiv Batareya Meneceri, daima istifadə edilən tətbiqlərin batareyadan istifadəsini məhdudlaşdırır. Planşet vaxt keçdikcə tətbiqlərdən istifadə etməyi öyrənəcək.\n\nHəmin tətbiqlərin bildirişləri gecikə bilər." "Batareya ömrünü uzatmaq üçün Adaptiv Batareya, daima istifadə edilən tətbiqlərin batareyadan istifadəsini məhdudlaşdırır. Cihaz vaxt keçdikcə tətbiqlərdən istifadə etməyi öyrənəcək.\n\nHəmin tətbiqlərin bildirişləri gecikə bilər." "Adaptiv Batareyadan istifadə edin" "Adaptiv Batareyanı aktiv edin" ================================================ FILE: overlay/packages/apps/Settings/res/values-b+sr+Latn/strings.xml ================================================ "Uključite prilagodljivu bateriju" "Prilagodljiva baterija" "Da biste produžili trajanje baterije, prilagodljiva baterija ograničava potrošnju baterije za aplikacije koje se ne koriste često. Tablet će vremenom naučiti kako da koristi aplikacije.\n\nObaveštenja o ovim aplikacijama mogu da kasne." "Da biste produžili trajanje baterije, prilagodljiva baterija ograničava potrošnju baterije za aplikacije koje se ne koriste često. Uređaj će vremenom naučiti kako da koristi aplikacije.\n\nObaveštenja o ovim aplikacijama mogu da kasne." "Koristi prilagodljivu bateriju" "Uključite prilagodljivu bateriju" ================================================ FILE: overlay/packages/apps/Settings/res/values-be/strings.xml ================================================ "Уключыць адаптацыю акумулятара" "Адаптацыя акумулятара" "Каб падоўжыць тэрмін службы акумулятара, адаптацыя акумулятара абмяжоўвае яго выкарыстанне праграмамі, якія запускаюцца рэдка. Ваш планшэт з часам прыстасуецца да таго, як вы карыстаецеся праграмамі.\n\nАпавяшчэнні для гэтых праграм могуць прыходзіць з затрымкай." "Каб падоўжыць тэрмін службы акумулятара, адаптацыя акумулятара абмяжоўвае яго выкарыстанне праграмамі, якія запускаюцца рэдка. Ваша прылада з часам прыстасуецца да таго, як вы карыстаецеся праграмамі.\n\nАпавяшчэнні для гэтых праграм могуць прыходзіць з затрымкай." "Выкарыстоўваць адаптацыю акумулятара" "Уключыць адаптацыю акумулятара" ================================================ FILE: overlay/packages/apps/Settings/res/values-bg/strings.xml ================================================ "Включете режима за адаптивна батерия" "Адаптивна батерия" "За да удължи живота на батерията, режимът за адаптивна батерия ограничава изразходването й от рядко използваните приложения. С течение на времето таблетът ви ще научи как използвате приложенията.\n\nМоже да има забавяне на известията от тези приложения." "За да удължи живота на батерията, режимът за адаптивна батерия ограничава изразходването й от рядко използваните приложения. С течение на времето устройството ви ще научи как използвате приложенията.\n\nМоже да има забавяне на известията от тези приложения." "Използване на режима за адаптивна батерия" "Включете режима за адаптивна батерия" ================================================ FILE: overlay/packages/apps/Settings/res/values-bn/strings.xml ================================================ "অ্যাডাপটিভ ব্যাটারি চালু করুন" "অ্যাডাপটিভ ব্যাটারি" "ব্যাটারি যাতে আরও বেশিক্ষণ চলে তার জন্য অ্যাডাপটিভ ব্যাটারি বৈশিষ্ট্যটি অনিয়মিত ব্যবহৃত অ্যাপের ব্যাটারির ব্যবহারে সীমা নির্দিষ্ট করে। আপনি কোন অ্যাপ কত নিয়মিত ব্যবহার করেন তা আপনার ট্যাবলেট ধীরে ধীরে শিখে নেবে।\n\nএই অ্যাপগুলির বিজ্ঞপ্তি আসতে দেরি হতে পারে।" "ব্যাটারি যাতে আরও বেশিক্ষণ চলে তার জন্য অ্যাডাপটিভ ব্যাটারি বৈশিষ্ট্যটি অনিয়মিত ব্যবহৃত অ্যাপের ব্যাটারি ব্যবহারে সীমা নির্দিষ্ট করে। আপনি কোন অ্যাপ কত নিয়মিত ব্যবহার করেন তা আপনার ডিভাইস ধীরে ধীরে শিখে নেবে।\n\nএই অ্যাপগুলির বিজ্ঞপ্তি আসতে দেরি হতে পারে।" "অ্যাডাপটিভ ব্যাটারি ব্যবহার করুন" "অ্যাডাপটিভ ব্যাটারি চালু করুন" ================================================ FILE: overlay/packages/apps/Settings/res/values-bs/strings.xml ================================================ "Uključite prilagodljivu bateriju" "Prilagodljiva baterija" "Da bi se produžio vijek trajanja baterije, prilagodljiva baterija ograničava upotrebu baterije za aplikacije koje se ne koriste često. Tablet će vremenom učiti na koji način koristite aplikacije.\n\nMoguće je da će obavještenja za te aplikacije kasniti." "Da bi se produžio vijek trajanja baterije, prilagodljiva baterija ograničava upotrebu baterije za aplikacije koje se ne koriste često. Uređaj će vremenom učiti na koji način koristite aplikacije.\n\nMoguće je da će obavještenja za te aplikacije kasniti." "Koristi prilagodljivu bateriju" "Uključite prilagodljivu bateriju" ================================================ FILE: overlay/packages/apps/Settings/res/values-ca/strings.xml ================================================ "Activa la bateria intel·ligent" "Bateria intel·ligent" "Per augmentar la durada de la bateria, la bateria intel·ligent en limita l\'ús a les aplicacions que no utilitzes habitualment. La teva tauleta aprendrà com fas servir les aplicacions al llarg del temps.\n\nÉs possible que rebis les notificacions d\'aquestes aplicacions amb retard." "Per augmentar la durada de la bateria, la bateria intel·ligent en limita l\'ús a les aplicacions que no utilitzes habitualment. El teu dispositiu aprendrà com fas servir les aplicacions al llarg del temps.\n\nÉs possible que rebis les notificacions d\'aquestes aplicacions amb retard." "Fes servir la bateria intel·ligent" "Activa la bateria intel·ligent" ================================================ FILE: overlay/packages/apps/Settings/res/values-cs/strings.xml ================================================ "Zapněte adaptivní baterii" "Adaptivní baterie" "Adaptivní baterie prodlužuje výdrž baterie tím, že omezuje využití baterie aplikacemi, které nepoužíváte tak často. Tablet postupem času sám zjistí, jak aplikace využíváte.\n\nOznámení z těchto aplikací se mohou zobrazovat se zpožděním." "Adaptivní baterie prodlužuje výdrž baterie tím, že omezuje využití baterie aplikacemi, které nepoužíváte tak často. Zařízení postupem času samo zjistí, jak aplikace využíváte.\n\nOznámení z těchto aplikací se mohou zobrazovat se zpožděním." "Použít adaptivní baterii" "Zapněte adaptivní baterii" ================================================ FILE: overlay/packages/apps/Settings/res/values-da/strings.xml ================================================ "Aktivér Selvjusterende batteri" "Selvjusterende batteri" "Selvjusterende batteri begrænser batteriforbruget for sjældent brugte app, så batteritiden forlænges. Din tablet lærer løbende, hvordan du bruger apps.\n\nUnderretninger fra disse apps kan være forsinkede." "Selvjusterende batteri begrænser batteriforbruget for sjældent brugte app, så batteritiden forlænges. Din enhed lærer løbende, hvordan du bruger apps.\n\nUnderretninger fra disse apps kan være forsinkede." "Brug Selvjusterende batteri" "Aktivér Selvjusterende batteri" ================================================ FILE: overlay/packages/apps/Settings/res/values-de/strings.xml ================================================ "Funktion \"Intelligenter Akku\" aktivieren" "Intelligenter Akku" "Um die Akkulaufzeit zu verlängern, schränkt die Funktion \"Intelligenter Akku\" die Akkunutzung für selten verwendete Apps ein. Dein Tablet lernt mit der Zeit, wie du deine Apps nutzt.\n\nBenachrichtigungen werden für die entsprechenden Apps eventuell verzögert angezeigt." "Um die Akkulaufzeit zu verlängern, schränkt die Funktion \"Intelligenter Akku\" die Akkunutzung für selten verwendete Apps ein. Dein Gerät lernt mit der Zeit, wie du deine Apps nutzt.\n\nBenachrichtigungen werden für die entsprechenden Apps eventuell verzögert angezeigt." "Funktion \"Intelligenter Akku\" verwenden" "Funktion \"Intelligenter Akku\" aktivieren" ================================================ FILE: overlay/packages/apps/Settings/res/values-el/strings.xml ================================================ "Ενεργοποίηση της λειτουργίας \"Προσαρμοστική μπαταρία\"" "Προσαρμοστική μπαταρία" "Για να επεκτείνει τη διάρκεια ζωής της μπαταρίας, η λειτουργία \"Προσαρμοστική μπαταρία\" περιορίζει την μπαταρία για εφαρμογές που δεν χρησιμοποιούνται συχνά. Το tablet θα μάθει πώς χρησιμοποιείτε τις εφαρμογές με την πάροδο του χρόνου.\n\nΟι ειδοποιήσεις για αυτές τις εφαρμογές ενδέχεται να εμφανίζονται με καθυστέρηση." "Για να επεκτείνει τη διάρκεια ζωής της μπαταρίας, η λειτουργία \"Προσαρμοστική μπαταρία\" περιορίζει την μπαταρία για εφαρμογές που δεν χρησιμοποιούνται συχνά. Η συσκευή σας θα μάθει πώς χρησιμοποιείτε τις εφαρμογές με την πάροδο του χρόνου.\n\nΟι ειδοποιήσεις για αυτές τις εφαρμογές ενδέχεται να εμφανίζονται με καθυστέρηση." "Χρήση της λειτουργίας \"Προσαρμοστική μπαταρία\"" "Ενεργοποίηση της λειτουργίας \"Προσαρμοστική μπαταρία\"" ================================================ FILE: overlay/packages/apps/Settings/res/values-en-rAU/strings.xml ================================================ "Turn on Adaptive Battery" "Adaptive Battery" "To extend battery life, Adaptive Battery limits battery for infrequently used apps. Your tablet will learn how you use apps over time.\n\nNotifications may be delayed for these apps." "To extend battery life, Adaptive Battery limits battery for infrequently used apps. Your device will learn how you use apps over time.\n\nNotifications may be delayed for these apps." "Use Adaptive Battery" "Turn on Adaptive Battery" ================================================ FILE: overlay/packages/apps/Settings/res/values-en-rCA/strings.xml ================================================ "Turn on Adaptive Battery" "Adaptive Battery" "To extend battery life, Adaptive Battery limits battery for infrequently used apps. Your tablet will learn how you use apps over time.\n\nNotifications may be delayed for these apps." "To extend battery life, Adaptive Battery limits battery for infrequently used apps. Your device will learn how you use apps over time.\n\nNotifications may be delayed for these apps." "Use Adaptive Battery" "Turn on Adaptive Battery" ================================================ FILE: overlay/packages/apps/Settings/res/values-en-rGB/strings.xml ================================================ "Turn on Adaptive Battery" "Adaptive Battery" "To extend battery life, Adaptive Battery limits battery for infrequently used apps. Your tablet will learn how you use apps over time.\n\nNotifications may be delayed for these apps." "To extend battery life, Adaptive Battery limits battery for infrequently used apps. Your device will learn how you use apps over time.\n\nNotifications may be delayed for these apps." "Use Adaptive Battery" "Turn on Adaptive Battery" ================================================ FILE: overlay/packages/apps/Settings/res/values-en-rIN/strings.xml ================================================ "Turn on Adaptive Battery" "Adaptive Battery" "To extend battery life, Adaptive Battery limits battery for infrequently used apps. Your tablet will learn how you use apps over time.\n\nNotifications may be delayed for these apps." "To extend battery life, Adaptive Battery limits battery for infrequently used apps. Your device will learn how you use apps over time.\n\nNotifications may be delayed for these apps." "Use Adaptive Battery" "Turn on Adaptive Battery" ================================================ FILE: overlay/packages/apps/Settings/res/values-en-rXC/strings.xml ================================================ "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‎‎‏‏‏‎‏‎‏‏‎‏‎‎‎‏‏‏‎‎‏‎‏‎‏‏‏‎‏‎‏‏‏‎‎‎‎Turn on Adaptive Battery‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‎‎‏‎‎‏‏‎‏‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‏‎‏‏‏‎‏‎Adaptive Battery‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‎‏‎‏‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‎‏‏‏‏‏‎‏‎‎‎To extend battery life, Adaptive Battery limits battery for infrequently used apps. Your tablet will learn how you use apps over time.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Notifications may be delayed for these apps.‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‏‎‏‎‎‎‏‎‏‎‎‎‎‏‏‎‎‏‎‏‏‎‎‎‏‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‎To extend battery life, Adaptive Battery limits battery for infrequently used apps. Your device will learn how you use apps over time.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Notifications may be delayed for these apps.‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‎‎‏‎‏‎‎‎‎‎‎‏‎‏‎‎‏‏‏‏‎‎‎‎‎‎‎‎‎‎‎‏‎‎‎‏‏‎‎‎‏‎‎‎‎‏‏‏‏‏‏‏‎Use Adaptive Battery‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‏‎‏‏‏‏‎‏‏‏‎‎‏‎‎‎‎‏‎‏‎‎‏‎‏‎‏‎‎‏‏‎‏‏‎‎‎‎‏‏‏‎‏‏‎‏‎‎‏‎‏‏‏‎‏‏‏‎‎‏‎‎‎‎Turn on Adaptive Battery‎‏‎‎‏‎" ================================================ FILE: overlay/packages/apps/Settings/res/values-es/strings.xml ================================================ "Activar batería inteligente" "Batería inteligente" "Para aumentar la duración de la batería, el gestor de batería inteligente limita el consumo por parte de aplicaciones que se utilizan con poca frecuencia. Con el tiempo, el tablet sabrá cómo utilizas las aplicaciones.\n\nEs posible que las notificaciones de estas aplicaciones te lleguen con retraso." "Para aumentar la duración de la batería, el gestor de batería inteligente limita el consumo por parte de aplicaciones que se utilizan con poca frecuencia. Con el tiempo, el dispositivo sabrá cómo utilizas las aplicaciones.\n\nEs posible que las notificaciones de estas aplicaciones te lleguen con retraso." "Usar batería inteligente" "Activar batería inteligente" ================================================ FILE: overlay/packages/apps/Settings/res/values-es-rUS/strings.xml ================================================ "Activar Batería automática" "Batería automática" "Para extender la duración de la batería, la función Batería automática limita el consumo por parte de las apps que no se usan con frecuencia. Con el tiempo, la tablet reconocerá cómo usas las apps.\n\nEs posible que se retrasen las notificaciones de esas apps." "Para extender la duración de la batería, la función Batería automática limita el consumo por parte de las apps que no se usan con frecuencia. Con el tiempo, tu dispositivo reconocerá cómo usas las apps.\n\nEs posible que se retrasen las notificaciones de esas apps." "Usar Batería automática" "Activar Batería automática" ================================================ FILE: overlay/packages/apps/Settings/res/values-et/strings.xml ================================================ "Kohanduva akuhalduri sisselülitamine" "Kohanduv akuhaldur" "Aku tööea pikendamiseks piirab kohanduv akuhaldur akukasutust harva kasutatavate rakenduste jaoks. Teie tahvelarvuti õpib aja jooksul, kuidas rakendusi kasutada.\n\nNende rakenduste märguanded võivad viibida." "Aku tööea pikendamiseks piirab kohanduv akuhaldur akukasutust harva kasutatavate rakenduste jaoks. Teie seade õpib aja jooksul, kuidas rakendusi kasutada.\n\nNende rakenduste märguanded võivad viibida." "Kohanduva akuhalduri kasutamine" "Kohanduva akuhalduri sisselülitamine" ================================================ FILE: overlay/packages/apps/Settings/res/values-eu/strings.xml ================================================ "Aktibatu bateria doigarria" "Bateria doigarria" "Bateriak gehiago iraun dezan, bateria doigarriak mugatu egiten du gutxitan erabiltzen dituzun aplikazioek erabiltzen duten bateria. Denborarekin, aplikazioak nola erabiltzen dituzun ikasiko du tabletak.\n\nBaliteke aplikazio horietan jakinarazpenak atzeratzea." "Bateriak gehiago iraun dezan, bateria doigarriak mugatu egiten du gutxitan erabiltzen dituzun aplikazioek erabiltzen duten bateria. Denborarekin, aplikazioak nola erabiltzen dituzun ikasiko du gailuak.\n\nBaliteke aplikazio horietan jakinarazpenak atzeratzea." "Erabili bateria doigarria" "Aktibatu bateria doigarria" ================================================ FILE: overlay/packages/apps/Settings/res/values-fa/strings.xml ================================================ "روشن کردن «باتری وفق‌پذیر»" "باتری وفق‌پذیر" "برای افزایش ماندگاری شارژ باتری، «باتری وفق‌پذیر» مصرف باتری برنامه‌هایی را که زیاد استفاده نمی‌شود محدود می‌کند. رایانه لوحی‌تان با گذشت زمان نحوه استفاده شما از برنامه‌ها را یاد می‌گیرد.\n\nممکن است اعلان‌های این برنامه‌ها با تأخیر همراه باشد." "برای افزایش ماندگاری شارژ باتری، «باتری وفق‌پذیر» مصرف باتری برنامه‌هایی را که زیاد استفاده نمی‌شود محدود می‌کند. دستگاهتان با گذشت زمان نحوه استفاده شما از برنامه‌ها را یاد می‌گیرد.\n\nممکن است اعلان‌های این برنامه‌ها با تأخیر همراه باشد." "استفاده از باتری وفق‌پذیر" "«باتری وفق‌پذیر» را روشن کنید" ================================================ FILE: overlay/packages/apps/Settings/res/values-fi/strings.xml ================================================ "Ota käyttöön mukautuva virta" "Mukautuva virta" "Mukautuva virta pidentää akun kestoa rajoittamalla harvoin käytettyjen sovellusten akunkäyttöä. Tabletti oppii, miten käytät sovelluksia.\n\nRajoitettujen sovellusten ilmoitukset voidaan näyttää viiveellä." "Mukautuva virta pidentää akun kestoa rajoittamalla harvoin käytettyjen sovellusten akunkäyttöä. Laite oppii, miten käytät sovelluksia.\n\nRajoitettujen sovellusten ilmoitukset voidaan näyttää viiveellä." "Käytä mukautuvaa virtaa" "Ota käyttöön mukautuva virta" ================================================ FILE: overlay/packages/apps/Settings/res/values-fr/strings.xml ================================================ "Activer la batterie adaptative" "Batterie adaptative" "Afin de prolonger l\'autonomie de la batterie, la batterie adaptative limite l\'utilisation de la batterie pour les applications peu utilisées. Votre tablette apprendra comment vous utilisez les applications au fil du temps.\n\nLes notifications peuvent être retardées pour ces applications." "Afin de prolonger l\'autonomie de la batterie, la batterie adaptative limite l\'utilisation de la batterie pour les applications peu utilisées. Votre appareil apprendra comment vous utilisez les applications au fil du temps.\n\nLes notifications peuvent être retardées pour ces applications." "Utiliser la batterie adaptative" "Activer la batterie adaptative" ================================================ FILE: overlay/packages/apps/Settings/res/values-fr-rCA/strings.xml ================================================ "Activer le gestionnaire de pile adaptatif" "Gestionnaire de pile adaptatif" "Pour prolonger l’autonomie de la pile, le gestionnaire de pile adaptatif limite son utilisation pour les applications peu utilisées. Votre tablette apprendra comment vous utilisez les applications au fil du temps.\n\nIl se peut que les notifications soient retardées pour ces applications." "Pour prolonger l’autonomie de la pile, le gestionnaire de pile adaptatif limite son utilisation pour les applications peu utilisées. Votre appareil apprendra comment vous utilisez les applications au fil du temps.\n\nIl se peut que les notifications soient retardées pour ces applications." "Utiliser le gestionnaire de pile adaptatif" "Activer le gestionnaire de pile adaptatif" ================================================ FILE: overlay/packages/apps/Settings/res/values-gl/strings.xml ================================================ "Activa a batería automática" "Batería automática" "Para aumentar a duración da batería, a batería automática limita o consumo das aplicacións que se utilizan con pouca frecuencia. Co paso do tempo, a tableta saberá como utilizas as aplicacións.\n\nÉ posible que as notificacións destas aplicacións se atrasen." "Para aumentar a duración da batería, a batería automática limita o consumo das aplicacións que se utilizan con pouca frecuencia. Co paso do tempo, o dispositivo saberá como utilizas as aplicacións.\n\nÉ posible que as notificacións destas aplicacións se atrasen." "Usar batería automática" "Activa a batería automática" ================================================ FILE: overlay/packages/apps/Settings/res/values-gu/strings.xml ================================================ "સુવિધાજનક બૅટરી ચાલુ કરો" "સુવિધાજનક બૅટરી" "બૅટરી આવરદાને વધારવા માટે, સુવિધાજનક બૅટરી વારંવાર ઉપયોગમાં ન લેવાતી ઍપ માટે બૅટરી મર્યાદિત કરે છે. સમય જતાં તમારું ટૅબ્લેટ જાણી લેશે કે તમે ઍપનો કેવી રીતે ઉપયોગ કરો છો.\n\nઆ ઍપ માટે નોટિફિકેશન વિલંબિત થઈ શકે છે." "બૅટરી આવરદાને વધારવા માટે, સુવિધાજનક બૅટરી વારંવાર ઉપયોગમાં ન લેવાતી ઍપ માટે બૅટરી મર્યાદિત કરે છે. સમય જતાં તમારું ઉપકરણ જાણી લેશે કે તમે ઍપનો કેવી રીતે ઉપયોગ કરો છો.\n\nઆ ઍપ માટે નોટિફિકેશન વિલંબિત થઈ શકે છે." "સુવિધાજનક બૅટરીનો ઉપયોગ કરો" "સુવિધાજનક બૅટરી ચાલુ કરો" ================================================ FILE: overlay/packages/apps/Settings/res/values-hi/strings.xml ================================================ "ज़रूरत के हिसाब से बैटरी के इस्तेमाल की सुविधा चालू करें" "ज़रूरत के हिसाब से बैटरी का इस्तेमाल" "बैटरी लाइफ़ बढ़ाने के लिए, ज़रूरत के हिसाब से बैटरी का इस्तेमाल करने की सुविधा, कभी-कभार इस्तेमाल होने वाले ऐप्लिकेशन पर बैटरी के इस्तेमाल से जुड़ी रोक लगाती है. समय के साथ आपके टैबलेट को यह पता चल जाएगा कि आप किस तरह से ऐप्लिकेशन इस्तेमाल करते हैं.\n\nइन ऐप्लिकेशन से जुड़ी सूचनाएं दिखने में देर हो सकती है." "बैटरी लाइफ़ बढ़ाने के लिए, ज़रूरत के हिसाब से बैटरी का इस्तेमाल करने की सुविधा, कभी-कभार इस्तेमाल होने वाले ऐप्लिकेशन पर बैटरी के इस्तेमाल से जुड़ी रोक लगाती है. समय के साथ आपके डिवाइस को यह पता चल जाएगा कि आप किस तरह से ऐप्लिकेशन इस्तेमाल करते हैं.\n\nइन ऐप्लिकेशन से जुड़ी सूचनाएं दिखने में देर हो सकती है." "ज़रूरत के हिसाब से बैटरी का इस्तेमाल करने की सुविधा आज़माएं" "ज़रूरत के हिसाब से बैटरी के इस्तेमाल की सुविधा चालू करें" ================================================ FILE: overlay/packages/apps/Settings/res/values-hr/strings.xml ================================================ "Uključite Adaptive Battery" "Adaptive Battery" "Da bi se produljilo trajanje baterije, Adaptive Battery ograničava potrošnju baterije za aplikacije koje se upotrebljavaju rjeđe. Tablet će s vremenom saznati kako upotrebljavate aplikacije.\n\nObavijesti za te aplikacije mogu kasniti." "Da bi se produljilo trajanje baterije, Adaptive Battery ograničava potrošnju baterije za aplikacije koje se upotrebljavaju rjeđe. Uređaj će s vremenom saznati kako upotrebljavate aplikacije.\n\nObavijesti za te aplikacije mogu kasniti." "Koristi Adaptive Battery" "Uključite Adaptive Battery" ================================================ FILE: overlay/packages/apps/Settings/res/values-hu/strings.xml ================================================ "Az Alkalmazkodó akkumulátor bekapcsolása" "Alkalmazkodó akkumulátor" "Az akkumulátor üzemidejének növelése érdekében az Alkalmazkodó akkumulátor korlátozza a ritkán használt alkalmazások akkumulátorhasználatát. A táblagép idővel megtanulja, hogy Ön hogyan használja az alkalmazásokat.\n\nElőfordulhat, hogy az érintett alkalmazások értesítései késnek majd." "Az akkumulátor üzemidejének növelése érdekében az Alkalmazkodó akkumulátor korlátozza a ritkán használt alkalmazások akkumulátorhasználatát. Az eszköz idővel megtanulja, hogy Ön hogyan használja az alkalmazásokat.\n\nElőfordulhat, hogy az érintett alkalmazások értesítései késnek majd." "Alkalmazkodó akkumulátor használata" "Az Alkalmazkodó akkumulátor bekapcsolása" ================================================ FILE: overlay/packages/apps/Settings/res/values-hy/strings.xml ================================================ "Միացրեք Adaptive Battery-ն" "Adaptive Battery" "Մարտկոցի աշխատաժամանակը երկարացնելու համար Adaptive Battery-ն սահմանափակում է հազվադեպ օգտագործվող հավելվածների ֆոնային աշխատանքը: Ժամանակի ընթացքում ձեր պլանշետը հիշում է, թե որ հավելվածներն եք հաճախ օգտագործում, որոնք՝ ոչ:\n\nՍահմանափակված հավելվածների ծանուցումները կարող են ուշացումով ստացվել:" "Մարտկոցի աշխատաժամանակը երկարացնելու համար Adaptive Battery-ն սահմանափակում է հազվադեպ օգտագործվող հավելվածների ֆոնային աշխատանքը: Ժամանակի ընթացքում ձեր սարքը հիշում է, թե որ հավելվածներն եք հաճախ օգտագործում, որոնք՝ ոչ:\n\nՍահմանափակված հավելվածների ծանուցումները կարող են ուշացումով ստացվել:" "Միացնել Adaptive Battery-ն" "Միացրեք Adaptive Battery-ն" ================================================ FILE: overlay/packages/apps/Settings/res/values-in/strings.xml ================================================ "Aktifkan Baterai Adaptif" "Baterai Adaptif" "Untuk memperpanjang masa pakai baterai, Baterai Adaptif membatasi baterai untuk aplikasi yang jarang dipakai. Tablet akan mempelajari cara Anda menggunakan aplikasi seiring waktu.\n\nNotifikasi dapat tertunda untuk aplikasi ini." "Untuk memperpanjang masa pakai baterai, Baterai Adaptif membatasi baterai untuk aplikasi yang jarang dipakai. Perangkat akan mempelajari cara Anda menggunakan aplikasi seiring waktu.\n\nNotifikasi dapat tertunda untuk aplikasi ini." "Gunakan Baterai Adaptif" "Aktifkan Baterai Adaptif" ================================================ FILE: overlay/packages/apps/Settings/res/values-is/strings.xml ================================================ "Kveikja á breytilegri rafhlöðustjórnun" "Breytileg rafhlöðustjórnun" "Til að lengja rafhlöðuendingu takmarkar breytileg rafhlöðustjórnun rafhlöðunotkun forrita sem eru notuð sjaldan. Spjaldtölvan lærir inn á forritanotkun þína með tímanum.\n\nTafir geta orðið á tilkynningum frá þessum forritum." "Til að lengja endingu rafhlöðunnar takmarkar breytileg rafhlöðustjórnun rafhlöðunotkun forrita sem eru notuð sjaldan. Tækið lærir inn á forritanotkun þína með tímanum.\n\nTafir geta orðið á tilkynningum frá þessum forritum." "Nota breytilega rafhlöðustjórnun" "Kveikja á breytilegri rafhlöðustjórnun" ================================================ FILE: overlay/packages/apps/Settings/res/values-it/strings.xml ================================================ "Attiva Batteria adattiva" "Batteria adattiva" "Per prolungare la durata della batteria, la funzione Batteria adattiva limita l\'utilizzo della batteria per le app usate di rado. Il tablet capirà come usi le app nel corso del tempo.\n\nPotresti ricevere in ritardo le notifiche relative a queste app." "Per prolungare la durata della batteria, la funzione Batteria adattiva limita l\'utilizzo della batteria per le app usate di rado. Il dispositivo capirà come usi le app nel corso del tempo.\n\nPotresti ricevere in ritardo le notifiche relative a queste app." "Usa Batteria adattiva" "Attiva Batteria adattiva" ================================================ FILE: overlay/packages/apps/Settings/res/values-iw/strings.xml ================================================ "‏הפעלת Adaptive Battery" "Adaptive Battery" "‏כדי להאריך את חיי הסוללה, התכונה Adaptive Battery מגבילה את השימוש בסוללה לאפליקציות שנעשה בהן שימוש לעיתים רחוקות. לאורך זמן, הטאבלט ילמד את אופן השימוש שלך באפליקציות.\n\nייתכן עיכוב בקבלת הודעות מאפליקציות אלה." "‏כדי להאריך את חיי הסוללה, התכונה Adaptive Battery מגבילה את השימוש בסוללה לאפליקציות שנעשה בהן שימוש לעיתים רחוקות. לאורך זמן, המכשיר ילמד את אופן השימוש שלך באפליקציות.\n\nייתכן עיכוב בקבלת הודעות מאפליקציות אלה." "‏שימוש ב-Adaptive Battery" "‏הפעלת Adaptive Battery" ================================================ FILE: overlay/packages/apps/Settings/res/values-ja/strings.xml ================================================ NFC/おサイフケータイ設定 NFC/おサイフケータイロック "ON" "OFF" ":USIM未挿入です" ":NFCの一部機能が利用できません" ":NFC非対応USIMです" NFC/おサイフケータイリモートロック設定 Reader/Writer, P2P "ON" "OFF" "設定できませんでした。" "OK" "自動調整バッテリーを ON にする" "自動調整バッテリー" "自動調整バッテリーで使用頻度の低いアプリの電池使用を制限すると、電池が長持ちします。時間の経過とともに、タブレットがアプリの使用状況を学習します。\n\nこのアプリの通知は遅れることがあります。" "自動調整バッテリーで使用頻度の低いアプリの電池使用を制限すると、電池が長持ちします。時間の経過とともに、端末がアプリの使用状況を学習します。\n\nこのアプリの通知は遅くなることがあります。" "自動調整バッテリーの使用" "自動調整バッテリーを ON にしてください" ================================================ FILE: overlay/packages/apps/Settings/res/values-ka/strings.xml ================================================ "Adaptive Battery-ს ჩართვა" "Adaptive Battery" "ბატარეის მუშაობის გასახანგრძლივებლად, Adaptive Battery ზღუდავს ბატარეის მოხმარებას იშვიათად გამოყენებული აპების მიერ. თქვენი ტაბლეტი დროთა განმავლობაში ისწავლის თქვენ მიერ აპების გამოყენების სპეციფიკას.\n\nასეთი აპებიდან შეტყობინებები შესაძლოა დაგვიანდეს." "ბატარეის მუშაობის გასახანგრძლივებლად, Adaptive Battery ზღუდავს ბატარეის მოხმარებას იშვიათად გამოყენებული აპების მიერ. თქვენი მოწყობილობა დროთა განმავლობაში ისწავლის თქვენ მიერ აპების გამოყენების სპეციფიკას.\n\nასეთი აპებიდან შეტყობინებები შესაძლოა დაგვიანდეს." "Adaptive Battery-ს გამოყენება" "Adaptive Battery-ს ჩართვა" ================================================ FILE: overlay/packages/apps/Settings/res/values-kk/strings.xml ================================================ "Adaptive Battery функциясын қосу" "Adaptive Battery" "Батарея ұзағырақ жұмыс істеуі үшін, Adaptive Battery функциясы сирек пайдаланылатын қолданбалардың батареяны қолдануын шектейді. Планшетіңіз қолданбалардың қалай пайдаланылатынын есіне сақтайды.\n\nБұл қолданбаларға хабарландырулар кешігіп келуі мүмкін." "Батарея ұзағырақ жұмыс істеуі үшін, Adaptive Battery функциясы сирек пайдаланылатын қолданбалардың батареяны қолдануын шектейді. Құрылғыңыз қолданбалардың қалай пайдаланылатынын есіне сақтайды.\n\nБұл қолданбаларға хабарландырулар кешігіп келуі мүмкін." "Adaptive Battery функциясын пайдалану" "Adaptive Battery функциясын қосу" ================================================ FILE: overlay/packages/apps/Settings/res/values-km/strings.xml ================================================ "បើក​កម្មវិធី​ថ្ម​មានភាពបត់បែន" "​កម្មវិធីថ្ម​មាន​ភាព​បត់បែន" "ដើម្បី​បង្កើន​រយៈពេល​ប្រើប្រាស់​ថាមពល​ថ្ម កម្មវិធី​​ថ្ម​មានភាព​បត់បែនដាក់​កម្រិត​លើ​ការប្រើប្រាស់ថ្ម​ចំពោះ​កម្មវិធី​ដែលមិន​សូវ​ប្រើ។ ថេប្លេតរបស់អ្នក​នឹង​ស្វែងយល់​ពី​របៀប​ដែល​អ្នក​ប្រើ​កម្មវិធី​ជាបន្តបន្ទាប់។\n\nការជូន​ដំណឹងអាច​មាន​ការពន្យារពេល​សម្រាប់​កម្មវិធី​ទាំងនេះ។" "ដើម្បី​បង្កើន​រយៈពេល​ប្រើប្រាស់​ថាមពល​ថ្ម កម្មវិធី​​ថ្ម​មានភាព​បត់បែនដាក់​កម្រិត​លើ​ការប្រើប្រាស់ថ្ម​ចំពោះ​កម្មវិធី​ដែលមិន​សូវ​ប្រើ។ ឧបករណ៍​របស់អ្នក​នឹង​ស្វែងយល់​ពី​របៀប​ដែល​អ្នក​ប្រើ​កម្មវិធី​ជាបន្តបន្ទាប់។\n\nការជូន​ដំណឹងអាច​មាន​ការពន្យារពេល​សម្រាប់​កម្មវិធី​ទាំងនេះ។" "ប្រើ​កម្មវិធី​ថ្ម​មាន​ភាព​បត់បែន" "បើក​កម្មវិធី​ថ្ម​មានភាពបត់បែន" ================================================ FILE: overlay/packages/apps/Settings/res/values-kn/strings.xml ================================================ "ಅಡಾಪ್ಟಿವ್‌ ಬ್ಯಾಟರಿಯನ್ನು ಆನ್ ಮಾಡಿ" "ಅಡಾಪ್ಟಿವ್‌ ಬ್ಯಾಟರಿ" "ಬ್ಯಾಟರಿ ಬಾಳಿಕೆಯನ್ನು ಹೆಚ್ಚಿಸಲು, ಅಡಾಪ್ಟಿವ್‌ ಬ್ಯಾಟರಿ ಮ್ಯಾನೇಜರ್ ಅಪರೂಪವಾಗಿ ಬಳಸುವ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಬ್ಯಾಟರಿಯನ್ನು ಸೀಮಿತಗೊಳಿಸುತ್ತದೆ. ಕಾಲಾಂತರದಲ್ಲಿ ನಿಮ್ಮ ಟ್ಯಾಬ್‌ಲೆಟ್ ನೀವು ಹೇಗೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಉಪಯೋಗಿಸುತ್ತೀರಿ ಎಂಬುದನ್ನು ಕಲಿಯುತ್ತದೆ.\n\nಈ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಅಧಿಸೂಚನೆಗಳು ವಿಳಂಬವಾಗಬಹುದು." "ಬ್ಯಾಟರಿ ಬಾಳಿಕೆಯನ್ನು ಹೆಚ್ಚಿಸಲು, ಅಡಾಪ್ಟಿವ್‌ ಬ್ಯಾಟರಿ ಮ್ಯಾನೇಜರ್ ಅಪರೂಪವಾಗಿ ಬಳಸುವ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಬ್ಯಾಟರಿಯನ್ನು ಸೀಮಿತಗೊಳಿಸುತ್ತದೆ. ಕಾಲಾಂತರದಲ್ಲಿ ನಿಮ್ಮ ಸಾಧನವು ನೀವು ಹೇಗೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಉಪಯೋಗಿಸುತ್ತೀರಿ ಎಂಬುದನ್ನು ಕಲಿಯುತ್ತದೆ.\n\nಈ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಅಧಿಸೂಚನೆಗಳು ವಿಳಂಬವಾಗಬಹುದು." "ಅಡಾಪ್ಟಿವ್‌ ಬ್ಯಾಟರಿಯನ್ನು ಉಪಯೋಗಿಸಿ" "ಅಡಾಪ್ಟಿವ್‌ ಬ್ಯಾಟರಿಯನ್ನು ಆನ್ ಮಾಡಿ" ================================================ FILE: overlay/packages/apps/Settings/res/values-ko/strings.xml ================================================ "배터리 자동 조절 사용 설정" "배터리 자동 조절" "배터리 자동 조절에서는 자주 사용하지 않는 앱의 배터리 사용량을 제한하여 배터리 수명을 늘립니다. 시간이 지남에 따라 태블릿에서 사용자의 앱 사용 방식을 학습합니다.\n\n제한된 앱의 알림이 지연될 수 있습니다." "배터리 자동 조절에서는 자주 사용하지 않는 앱의 배터리 사용량을 제한하여 배터리 수명을 늘립니다. 시간이 지남에 따라 기기에서 사용자의 앱 사용 방식을 학습합니다.\n\n제한된 앱의 알림이 지연될 수 있습니다." "배터리 자동 조절 사용" "배터리 자동 조절 사용 설정" ================================================ FILE: overlay/packages/apps/Settings/res/values-ky/strings.xml ================================================ "Ыңгайлаштырылуучу Battery\'ни күйгүзүңүз" "Ыңгайлаштырылуучу Battery" "Батареяны узакка жеткирүү үчүн, Adaptive Battery функциясы сейрек колдонулуучу колдонмолордун ишин чектеп коет. Планшетиңиз акырындык менен кайсы колдонмолор көбүрөөк, кайсылары азыраак колдонулуп жаткандыгын аныктайт.\n\nЧектелген колдонмолордун билдирмелери кечигип көрүнүшү мүмкүн." "Батареяны узакка жеткирүү үчүн, Adaptive Battery функциясы сейрек колдонулуучу колдонмолордун ишин чектеп коет. Түзмөгүңүз акырындык менен кайсы колдонмолор көбүрөөк, кайсылары азыраак колдонулуп жаткандыгын аныктайт.\n\nЧектелген колдонмолордун билдирмелери кечигип көрүнүшү мүмкүн." "Adaptive Battery функциясын иштетүү" "Ыңгайлаштырылуучу Battery\'ни күйгүзүңүз" ================================================ FILE: overlay/packages/apps/Settings/res/values-lo/strings.xml ================================================ "ເປີດໃຊ້ແບັດເຕີຣີແບບປັບຕົວໄດ້" "ແບັດເຕີຣີແບບປັບຕົວໄດ້" "ເພື່ອເພີ່ມອາຍຸແບັດເຕີຣີ, ແບັດເຕີຣີແບບປັບຕົວໄດ້ຈະຈຳກັດແບັດເຕີຣີສຳລັບແອັບທີ່ບໍ່ຄ່ອຍໄດ້ໃຊ້. ແທັບເລັດຂອງທ່ານຈະຮຽນຮູ້ວິທີທີ່ທ່ານໃຊ້ແອັບຕ່າງໆເມື່ອເວລາຜ່ານໄປ.\n\nການແຈ້ງເຕືອນອາດຊັກຊ້າສຳລັບແອັບເຫຼົ່ານີ້." "ເພື່ອເພີ່ມອາຍຸແບັດເຕີຣີ, ແບັດເຕີຣີແບບປັບຕົວໄດ້ຈະຈຳກັດແບັດເຕີຣີສຳລັບແອັບທີ່ບໍ່ຄ່ອຍໄດ້ໃຊ້. ອຸປະກອນຂອງທ່ານຈະຮຽນຮູ້ວິທີທີ່ທ່ານໃຊ້ແອັບຕ່າງໆເມື່ອເວລາຜ່ານໄປ.\n\nການແຈ້ງເຕືອນອາດຊັກຊ້າສຳລັບແອັບເຫຼົ່ານີ້." "ແບັດເຕີຣີແບບປັບຕົວໄດ້" "ເປີດໃຊ້ແບັດເຕີຣີແບບປັບຕົວໄດ້" ================================================ FILE: overlay/packages/apps/Settings/res/values-lt/strings.xml ================================================ "Įjunkite prisitaikantį akumuliatorių" "Prisitaikantis akumuliatorius" "Kad akumuliatorius veiktų ilgiau, prisitaikantis akumuliatorius apriboja retai naudojamų programų akumuliatoriaus energijos naudojimą. Planšetinis kompiuteris laikui bėgant sužinos, kaip naudojate programas.\n\nŠių programų pranešimai gali vėluoti." "Kad akumuliatorius veiktų ilgiau, prisitaikantis akumuliatorius apriboja retai naudojamų programų akumuliatoriaus energijos naudojimą. Įrenginys laikui bėgant sužinos, kaip naudojate programas.\n\nŠių programų pranešimai gali vėluoti." "Naudoti prisitaikantį akumuliatorių" "Įjunkite prisitaikantį akumuliatorių" ================================================ FILE: overlay/packages/apps/Settings/res/values-lv/strings.xml ================================================ "Ieslēgt režīmu Adaptīvais akumulators" "Adaptīvais akumulators" "Lai palielinātu akumulatora darbības ilgumu, režīms Adaptīvais akumulators ierobežo akumulatora enerģijas patēriņu reti izmantotām lietotnēm. Laika gaitā planšetdators apgūs lietotņu izmantošanas principus.\n\nŠo lietotņu paziņojumi var tikt parādīti aizkavēti." "Lai palielinātu akumulatora darbības ilgumu, režīms Adaptīvais akumulators ierobežo akumulatora enerģijas patēriņu reti izmantotām lietotnēm. Laika gaitā ierīce apgūs lietotņu izmantošanas principus.\n\nŠo lietotņu paziņojumi var tikt parādīti aizkavēti." "Izmantot režīmu Adaptīvais akumulators" "Ieslēgt režīmu Adaptīvais akumulators" ================================================ FILE: overlay/packages/apps/Settings/res/values-mcc310-mnc120/arrays.xml ================================================ @string/preferred_network_mode_td_scdma_lte_gsm_wcdma_cdma_evdo_choice @string/preferred_network_mode_cdma_lte_evdo_choice @string/preferred_network_mode_cdma_evdo_auto_choice @string/preferred_network_mode_gsm_wcdma_auto_choice "22" "8" "4" "3" ================================================ FILE: overlay/packages/apps/Settings/res/values-mcc311-mnc490/arrays.xml ================================================ @string/preferred_network_mode_td_scdma_lte_gsm_wcdma_cdma_evdo_choice @string/preferred_network_mode_cdma_lte_evdo_choice @string/preferred_network_mode_cdma_evdo_auto_choice @string/preferred_network_mode_gsm_wcdma_auto_choice "22" "8" "4" "3" ================================================ FILE: overlay/packages/apps/Settings/res/values-mcc311-mnc870/arrays.xml ================================================ @string/preferred_network_mode_td_scdma_lte_gsm_wcdma_cdma_evdo_choice @string/preferred_network_mode_cdma_lte_evdo_choice @string/preferred_network_mode_cdma_evdo_auto_choice @string/preferred_network_mode_gsm_wcdma_auto_choice "22" "8" "4" "3" ================================================ FILE: overlay/packages/apps/Settings/res/values-mcc312-mnc530/arrays.xml ================================================ @string/preferred_network_mode_td_scdma_lte_gsm_wcdma_cdma_evdo_choice @string/preferred_network_mode_cdma_lte_evdo_choice @string/preferred_network_mode_cdma_evdo_auto_choice @string/preferred_network_mode_gsm_wcdma_auto_choice "22" "8" "4" "3" ================================================ FILE: overlay/packages/apps/Settings/res/values-mcc440-mnc20/arrays.xml ================================================ @string/preferred_network_mode_gsm_wcdma_lte_choice @string/preferred_network_mode_lte_wcdma_choice @string/preferred_network_mode_gsm_wcdma_preferred_choice @string/preferred_network_mode_wcdma_only_choice "9" "12" "0" "2" ================================================ FILE: overlay/packages/apps/Settings/res/values-mk/strings.xml ================================================ "Вклучете „Адаптивна батерија“" "Адаптивна батерија" "За да го продолжи траењето на батеријата, „Адаптивната батерија“ ја ограничува батеријата за ретко користените апликации. Со тек на време, таблетот ќе научи како ги користите апликациите.\n\nИзвестувањата може да бидат одложени за овие апликации." "За да го продолжи траењето на батеријата, „Адаптивната батерија“ ја ограничува батеријата за ретко користените апликации. Со тек на време, уредот ќе научи како ги користите апликациите.\n\nИзвестувањата може да бидат одложени за овие апликации." "Користи „Адаптивна батерија“" "Вклучете „Адаптивна батерија“" ================================================ FILE: overlay/packages/apps/Settings/res/values-ml/strings.xml ================================================ "അഡാപ്റ്റീവ് ബാറ്ററി ഓണാക്കുക" "അഡാപ്റ്റീവ് ബാറ്ററി" "ബാറ്ററി ലൈഫ് വർദ്ധിപ്പിക്കാൻ, അപൂര്‍വ്വമായി ഉപയോഗിക്കുന്ന ആപ്പുകൾക്കായുള്ള ബാറ്ററി ഉപഭോഗം അഡാപ്റ്റീവ് ബാറ്ററി പരിമിതപ്പെടുത്തുന്നു. കാലക്രമത്തിൽ നിങ്ങൾ എങ്ങനെയാണ് ആപ്പുകൾ ഉപയോഗിക്കുന്നതെന്ന് ടാബ്‌ലെറ്റ് മനസിലാക്കും.\n\nഈ ആപ്പുകളുടെ അറിയിപ്പുകൾ വൈകിയേക്കാം." "ബാറ്ററി ലൈഫ് വർദ്ധിപ്പിക്കാൻ, അപൂര്‍വ്വമായി ഉപയോഗിക്കുന്ന ആപ്പുകൾക്കായുള്ള ബാറ്ററി ഉപഭോഗം അഡാപ്റ്റീവ് ബാറ്ററി പരിമിതപ്പെടുത്തുന്നു. കാലക്രമത്തിൽ നിങ്ങൾ എങ്ങനെയാണ് ആപ്പുകൾ ഉപയോഗിക്കുന്നതെന്ന് ഉപകരണം മനസിലാക്കും.\n\nഈ ആപ്പുകളുടെ അറിയിപ്പുകൾ വൈകിയേക്കാം." "അഡാപ്റ്റീവ് ബാറ്ററി ഉപയോഗിക്കുക" "അഡാപ്റ്റീവ് ബാറ്ററി ഓണാക്കുക" ================================================ FILE: overlay/packages/apps/Settings/res/values-mn/strings.xml ================================================ "Дасан зохицох батарейг асаах" "Дасан зохицох батарей" "Дасан зохицох батарей нь батарейны ажиллах хугацааг уртасгахын тулд тогтмол ашигладаггүй аппуудын батарей ашиглалтыг хязгаарладаг. Таны таблет таныг аппуудаа хэр тогтмол ашиглаж байгааг ашиглалтын явцад сурах болно.\n\nЭдгээр аппын мэдэгдэл хоцорч болзошгүй." "Дасан зохицох батарей нь батарейны ажиллах хугацааг уртасгахын тулд тогтмол ашигладаггүй аппуудын батарей ашиглалтыг хязгаарладаг. Таны төхөөрөмж таныг аппуудаа хэр тогтмол ашиглаж байгааг ашиглалтын явцад сурах болно.\n\nЭдгээр аппын мэдэгдэл хоцорч болзошгүй." "Дасан зохицох батарейг ашиглах" "Дасан зохицох батарейг асаах" ================================================ FILE: overlay/packages/apps/Settings/res/values-mr/strings.xml ================================================ "अॅडॅप्टिव्ह बॅटरी सुरू करा" "अॅडॅप्टिव्ह बॅटरी" "बॅटरी दीर्घकाळ टिकावी म्हणून, अॅडाप्टिव्ह बॅटरी व्यवस्थापकाद्वारे क्वचित वापरल्या जाणाऱ्या अॅप्ससाठी बॅटरीचा वापर मर्यादित केला जातो. काळानुसार तुमचा टॅबलेट तुम्ही अॅप्स कसे वापरता हे शिकेल. \n\nया अॅप्ससाठी सूचना येण्यास उशीर होऊ शकतो." "बॅटरी दीर्घकाळ टिकावी म्हणून, अॅडाप्टिव्ह बॅटरी व्यवस्थापकाद्वारे क्वचित वापरल्या जाणाऱ्या अॅप्ससाठी बॅटरीचा वापर मर्यादित केला जातो. काळानुसार तुमचे डिव्हाइस तुम्ही अॅप्स कसे वापरता हे शिकेल. \n\nया अॅप्ससाठी सूचना येण्यास उशीर होऊ शकतो." "अॅडॅप्टिव्ह बॅटरी वापरा" "अॅडॅप्टिव्ह बॅटरी सुरू करा" ================================================ FILE: overlay/packages/apps/Settings/res/values-ms/strings.xml ================================================ "Hidupkan Bateri Mudah Suai" "Bateri Mudah Suai" "Untuk melanjutkan hayat bateri, Bateri Mudah Suai mengehadkan bateri untuk apl yang jarang digunakan. Peranti anda akan mempelajari cara anda menggunakan apl dari semasa ke semasa.\n\nPemberitahuan mungkin ditangguhkan untuk apl ini." "Untuk melanjutkan hayat bateri, Bateri Mudah Suai mengehadkan bateri untuk apl yang jarang digunakan. Peranti anda akan mempelajari cara anda menggunakan apl dari semasa ke semasa.\n\nPemberitahuan mungkin ditangguhkan untuk apl ini." "Gunakan Bateri Mudah Suai" "Hidupkan Bateri Mudah Suai" ================================================ FILE: overlay/packages/apps/Settings/res/values-my/strings.xml ================================================ "\'အလိုက်အထိုက် ဘက်ထရီအားထိန်း\' ကို ဖွင့်ပါ" "အလိုက်အထိုက် ဘက်ထရီအားထိန်း" "ဘက်ထရီသက်တမ်း တိုးလာစေရန် \'အလိုက်သင့် ဘက်ထရီအားထိန်း\' သည် အသုံးနည်းသည့် အက်ပ်များအတွက် ဘက်ထရီကို ကန့်သတ်ပေးပါသည်။ သင်၏ တက်ဘလက်သည် အချိန်ကြာလာသည်နှင့် အမျှ အက်ပ်များကို မည်ကဲ့သို့ အသုံးပြုသင့်ကြောင်း လေ့လာသွားပါမည်။\n\nဤအက်ပ်များအတွက် အကြောင်းကြားချက်များသည် ကြန့်ကြာမှု ရှိနိုင်ပါသည်။" "ဘက်ထရီသက်တမ်း တိုးလာစေရန် \'အလိုက်သင့် ဘက်ထရီအားထိန်း\' သည် အသုံးနည်းသည့် အက်ပ်များအတွက် ဘက်ထရီကို ကန့်သတ်ပေးပါသည်။ သင်၏စက်ပစ္စည်းသည် အချိန်ကြာလာသည်နှင့် အမျှ အက်ပ်များကို မည်ကဲ့သို့ အသုံးပြုသင့်ကြောင်း လေ့လာသွားပါမည်။\n\nဤအက်ပ်များအတွက် အကြောင်းကြားချက်များသည် ကြန့်ကြာမှု ရှိနိုင်ပါသည်။" "\'အလိုက်အထိုက် ဘက်ထရီအားထိန်း\' ကို သုံးပါ" "\'အလိုက်အထိုက် ဘက်ထရီအားထိန်း\' ကို ဖွင့်ပါ" ================================================ FILE: overlay/packages/apps/Settings/res/values-nb/strings.xml ================================================ "Slå på Tilpasset batteri" "Tilpasset batteri" "Tilpasset batteri begrenser batteribruken for apper du bruker sjelden, for å forlenge batterilevetiden. Nettbrettet lærer hvordan du bruker apper over tid.\n\nVarsler kan bli forsinket for disse appene." "Tilpasset batteri begrenser batteribruken for apper du bruker sjelden, for å forlenge batterilevetiden. Enheten lærer hvordan du bruker apper over tid.\n\nVarsler kan bli forsinket for disse appene." "Bruk Tilpasset batteri" "Slå på Tilpasset batteri" ================================================ FILE: overlay/packages/apps/Settings/res/values-ne/strings.xml ================================================ "अनुकूलनीय ब्याट्री सक्रिय गर्नुहोस्" "अनुकूलनीय ब्याट्री" "ब्याट्रीको आयु बढाउन, अनुकूलनीय ब्याट्रीले ब्याट्रीलाई कहिलेकाहीँ मात्र प्रयोग गरिने अनुप्रयोगहरूमा सीमित गर्दछ। तपाईंको फोनले अनुप्रयोहरूलाई समयअनुसार कसरी प्रयोग गर्ने भन्ने सिक्ने छ।\n\nयी अनुप्रयोगहरूसम्बन्धी सूचनाहरू आइपुग्न ढिलाइ हुन सक्छ।" "ब्याट्रीको आयु बढाउन, अनुकूलनीय ब्याट्रीले ब्याट्रीलाई कहिलेकाहीँ मात्र प्रयोग गरिने अनुप्रयोगहरूमा सीमित गर्दछ। तपाईंको यन्त्रले अनुप्रयोहरूलाई समयअनुसार कसरी प्रयोग गर्ने भन्ने सिक्ने छ। \n\nयी अनुप्रयोगहरूसम्बन्धी सूचनाहरू आइपुग्न ढिलाइ हुन सक्छ।" "अनुकूलनीय ब्याट्री प्रयोग गर्नुहोस्" "अनुकूलनीय ब्याट्री सक्रिय गर्नुहोस्" ================================================ FILE: overlay/packages/apps/Settings/res/values-nl/strings.xml ================================================ "\'Aanpasbaar batterijbeheer\' inschakelen" "Aanpasbaar batterijbeheer" "\'Aanpasbaar batterijbeheer\' beperkt het batterijgebruik van weinig gebruikte apps om de levensduur van de batterij te verlengen. Je tablet leert in de loop van de tijd hoe je apps gebruikt.\n\nMeldingen kunnen worden vertraagd voor deze apps." "\'Aanpasbaar batterijbeheer\' beperkt het batterijgebruik van weinig gebruikte apps om de levensduur van de batterij te verlengen. Je apparaat leert in de loop van de tijd hoe je apps gebruikt.\n\nMeldingen kunnen worden vertraagd voor deze apps." "\'Aanpasbaar batterijbeheer\' gebruiken" "\'Aanpasbaar batterijbeheer\' inschakelen" ================================================ FILE: overlay/packages/apps/Settings/res/values-or/strings.xml ================================================ "ଆବଶ୍ୟକତା ଅନୁସାରେ ବ୍ୟାଟେରୀ ବ୍ୟବହାରର ସୁବିଧା ଚାଲୁ କରନ୍ତୁ" "ଆବଶ୍ୟକତା ଅନୁସାରେ ବ୍ୟାଟେରୀର ବ୍ୟବହାର" "ବ୍ୟାଟେରୀ ଖର୍ଚ୍ଚକୁ କମ୍ କରିବା ପାଇଁ, ଆବଶ୍ୟକତା ଅନୁସାରେ ବ୍ୟାଟେରୀର ନିୟମିତ ବ୍ୟବହାର କରୁନଥିବା ଆପ୍‌କୁ ସୀମିତ କରିଦେଇଥାଏ। ସମୟାନୁସାରେ ଆପଣ ଆପ୍‌କୁ କିପରି ବ୍ୟବହାର କରୁଛନ୍ତି, ତାହା ଆପଣଙ୍କ ଟାବଲେଟ୍ ଜାଣିପାରେ। \n\nଏହି ଆପ୍ ପାଇଁ ବିଜ୍ଞପ୍ତି ମିଳିବାରେ ବିଳମ୍ୱ ହୋ‌ଇପାରେ।" "ବ୍ୟାଟେରୀ ଖର୍ଚ୍ଚକୁ କମ୍ କରିବା ପାଇଁ, ଆବଶ୍ୟକତା ଅନୁସାରେ ବ୍ୟାଟେରୀର ନିୟମିତ ବ୍ୟବହାର କରୁନଥିବା ଆପ୍‌କୁ ସୀମିତ କରିଦେଇଥାଏ। ସମୟାନୁସାରେ ଆପଣ ଆପ୍‌କୁ କିପରି ବ୍ୟବହାର କରୁଛନ୍ତି, ତାହା ଆପଣଙ୍କ ଡିଭାଇସ୍ ଜାଣିପାରେ। \n\nଏହି ଆପ୍ ପାଇଁ ବିଜ୍ଞପ୍ତି ମିଳିବାରେ ବିଳମ୍ୱ ହୋ‌ଇପାରେ।" "ଆବଶ୍ୟକତା ଅନୁସାରେ ବ୍ୟାଟେରୀର ବ୍ୟବହାର କରନ୍ତୁ" "ଆବଶ୍ୟକତା ଅନୁସାରେ ବ୍ୟାଟେରୀ ବ୍ୟବହାରର ସୁବିଧା ଚାଲୁ କରନ୍ତୁ" ================================================ FILE: overlay/packages/apps/Settings/res/values-pa/strings.xml ================================================ "ਅਨੁਕੂਲਨਯੋਗ ਬੈਟਰੀ ਚਾਲੂ ਕਰੋ" "ਅਨੁਕੂਲਨਯੋਗ ਬੈਟਰੀ" "ਬੈਟਰੀ ਲਾਈਫ਼ ਨੂੰ ਵਧਾਉਣ ਲਈ, ਅਨੁਕੂਲਨਯੋਗ ਬੈਟਰੀ ਕਦੇ-ਕਦੇ ਵਰਤੀਆਂ ਗਈਆਂ ਐਪਾਂ ਲਈ ਬੈਟਰੀ ਦੀ ਵਰਤੋਂ ਨੂੰ ਸੀਮਤ ਕਰਦਾ ਹੈ। ਸਮੇਂ ਦੇ ਨਾਲ ਤੁਹਾਡਾ ਟੈਬਲੈੱਟ ਇਹ ਜਾਣ ਜਾਵੇਗਾ ਕਿ ਤੁਸੀਂ ਕਿਵੇਂ ਐਪਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ।\n\nਇਹਨਾਂ ਐਪਾਂ ਦੀਆਂ ਸੂਚਨਾਵਾਂ ਦਿਖਾਉਣ ਵਿੱਚ ਦੇਰੀ ਹੋ ਸਕਦੀ ਹੈ।" "ਬੈਟਰੀ ਲਾਈਫ਼ ਨੂੰ ਵਧਾਉਣ ਲਈ, ਅਨੁਕੂਲਨਯੋਗ ਬੈਟਰੀ ਕਦੇ-ਕਦੇ ਵਰਤੀਆਂ ਗਈਆਂ ਐਪਾਂ ਲਈ ਬੈਟਰੀ ਦੀ ਵਰਤੋਂ ਨੂੰ ਸੀਮਤ ਕਰਦਾ ਹੈ। ਸਮੇਂ ਦੇ ਨਾਲ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਇਹ ਜਾਣ ਜਾਵੇਗਾ ਕਿ ਤੁਸੀਂ ਕਿਵੇਂ ਐਪਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ।\n\nਇਹਨਾਂ ਐਪਾਂ ਦੀਆਂ ਸੂਚਨਾਵਾਂ ਦਿਖਾਉਣ ਵਿੱਚ ਦੇਰੀ ਹੋ ਸਕਦੀ ਹੈ।" "ਅਨੁਕੂਲਨਯੋਗ ਬੈਟਰੀ ਦੀ ਵਰਤੋਂ ਕਰੋ" "ਅਨੁਕੂਲਨਯੋਗ ਬੈਟਰੀ ਚਾਲੂ ਕਰੋ" ================================================ FILE: overlay/packages/apps/Settings/res/values-pl/strings.xml ================================================ "Włącz Baterię adaptacyjną" "Bateria adaptacyjna" "Aby wydłużyć czas pracy na baterii, Bateria adaptacyjna ogranicza wykorzystanie baterii przez rzadko używane aplikacje. Z biegiem czasu tablet zacznie uwzględniać, jak używasz aplikacji.\n\nPowiadomienia z takich aplikacji mogą być opóźnione." "Aby wydłużyć czas pracy na baterii, Bateria adaptacyjna ogranicza wykorzystanie baterii przez rzadko używane aplikacje. Z biegiem czasu urządzenie zacznie uwzględniać, jak używasz aplikacji.\n\nPowiadomienia z takich aplikacji mogą być opóźnione." "Użyj Baterii adaptacyjnej" "Włącz Baterię adaptacyjną" ================================================ FILE: overlay/packages/apps/Settings/res/values-pt/strings.xml ================================================ "Ative a Bateria adaptável" "Bateria adaptável" "Para aumentar a duração da bateria, a Bateria adaptável limita a bateria para apps pouco utilizados. Com o tempo, seu tablet aprenderá como você usa os apps.\n\nÉ possível que as notificações desses apps sejam entregues com atraso." "Para aumentar a duração da bateria, a Bateria adaptável limita a bateria para apps pouco utilizados. Com o tempo, seu dispositivo aprenderá como você usa os apps.\n\nÉ possível que as notificações desses apps sejam entregues com atraso." "Usar Bateria adaptável" "Ative a Bateria adaptável" ================================================ FILE: overlay/packages/apps/Settings/res/values-pt-rBR/strings.xml ================================================ "Ative a Bateria adaptável" "Bateria adaptável" "Para aumentar a duração da bateria, a Bateria adaptável limita a bateria para apps pouco utilizados. Com o tempo, seu tablet aprenderá como você usa os apps.\n\nÉ possível que as notificações desses apps sejam entregues com atraso." "Para aumentar a duração da bateria, a Bateria adaptável limita a bateria para apps pouco utilizados. Com o tempo, seu dispositivo aprenderá como você usa os apps.\n\nÉ possível que as notificações desses apps sejam entregues com atraso." "Usar Bateria adaptável" "Ative a Bateria adaptável" ================================================ FILE: overlay/packages/apps/Settings/res/values-pt-rPT/strings.xml ================================================ "Ative a funcionalidade Adaptive Battery." "Adaptive Battery" "Para aumentar a autonomia da bateria, a funcionalidade Adaptive Battery limita a bateria para aplicações utilizadas poucas vezes. O tablet vai perceber de que forma utiliza as aplicações ao longo do tempo.\n\nAs notificações destas aplicações poderão sofrer atrasos." "Para aumentar a autonomia da bateria, a funcionalidade Adaptive Battery limita a bateria para aplicações utilizadas poucas vezes. O dispositivo vai perceber de que forma utiliza as aplicações ao longo do tempo.\n\nAs notificações destas aplicações poderão sofrer atrasos." "Utilizar a funcionalidade Adaptive Battery" "Ative a funcionalidade Adaptive Battery." ================================================ FILE: overlay/packages/apps/Settings/res/values-ro/strings.xml ================================================ "Activați Adaptive Battery" "Adaptive Battery" "Pentru a prelungi autonomia bateriei, Adaptive Battery limitează bateria pentru aplicațiile utilizate rar. Tableta va afla cum folosiți aplicațiile în timp.\n\nNotificările de la aceste aplicații se pot primi cu întârziere." "Pentru a prelungi autonomia bateriei, Adaptive Battery limitează bateria pentru aplicațiile utilizate rar. Dispozitivul va afla cum folosiți aplicațiile în timp.\n\nNotificările de la aceste aplicații se pot primi cu întârziere." "Folosiți Adaptive Battery" "Activați Adaptive Battery" ================================================ FILE: overlay/packages/apps/Settings/res/values-ru/strings.xml ================================================ "Включите Adaptive Battery" "Adaptive Battery" "Чтобы продлить время работы от батареи, функция Adaptive Battery ограничивает фоновые процессы редко используемых приложений. Со временем ваш планшет запоминает, какие приложения вы используете чаще, а какие реже.\n\nУведомления от приложений, работу которых вы ограничиваете, могут приходить с задержкой." "Чтобы продлить время работы от батареи, функция Adaptive Battery ограничивает фоновые процессы редко используемых приложений. Со временем ваше устройство запоминает, какие приложения вы используете чаще, а какие реже.\n\nУведомления от приложений, работу которых вы ограничиваете, могут приходить с задержкой." "Включить Adaptive Battery" "Включите Adaptive Battery" ================================================ FILE: overlay/packages/apps/Settings/res/values-si/strings.xml ================================================ "අනුවර්තනීය බැටරිය ක්‍රියාත්මක කරන්න" "අනුවර්තනීය බැටරිය" "බැටරි ආයු කාලය දිගු කිරීමට, අනුවර්තනීය බැටරිය නිතර භාවිත කරන යෙදුම් සඳහා බැටරිය සීමා කරයි. ඔබගේ ටැබ්ලට් පරිගණකය කාලයත් සමඟ යෙදුම් භාවිත කරන ආකාරය දැන ගනු ඇත.\n\nමෙම යෙදුම් සඳහා දැනුම්දීම් ප්‍රමාද විය හැකිය." "බැටරි ආයු කාලය දිගු කිරීමට, අනුවර්තනීය බැටරිය නිතර භාවිත කරන යෙදුම් සඳහා බැටරිය සීමා කරයි. ඔබගේ උපාංගය කාලයත් සමඟ යෙදුම් භාවිත කරන ආකාරය දැන ගනු ඇත.\n\nමෙම යෙදුම් සඳහා දැනුම්දීම් ප්‍රමාද විය හැකිය." "අනුවර්තනීය බැටරිය භාවිත කරන්න" "අනුවර්තනීය බැටරිය ක්‍රියාත්මක කරන්න" ================================================ FILE: overlay/packages/apps/Settings/res/values-sk/strings.xml ================================================ "Zapnite adaptáciu batériu" "Adaptácia batérie" "Adaptácia batérie predĺži výdrž batérie tým, že obmedzí využívanie batérie zriedka používanými aplikáciami. Váš tablet sa časom naučí, ako využívate aplikácie.\n\nUpozornenia z týchto aplikácií môžu byť oneskorené." "Adaptácia batérie predĺži výdrž batérie tým, že obmedzí využívanie batérie zriedka používanými aplikáciami. Vaše zariadenie sa časom naučí, ako využívate aplikácie.\n\nUpozornenia z týchto aplikácií môžu byť oneskorené." "Používať adaptáciu batérie" "Zapnite adaptáciu batérie" ================================================ FILE: overlay/packages/apps/Settings/res/values-sl/strings.xml ================================================ "Vklopi prilagodljivo varčevanje z energijo akumulatorja" "Prilagodljivo varčevanje z energijo akumulatorja" "Prilagodljivo varčevanje z energijo akumulatorja omeji porabo energije akumulatorja za redko uporabljene aplikacije, da podaljša čas delovanja akumulatorja. Tablični računalnik se bo sčasoma naučil, kako uporabljate aplikacije.\n\nObvestila za te aplikacije bodo morda zakasnjena." "Prilagodljivo varčevanje z energijo akumulatorja omeji porabo energije akumulatorja za redko uporabljene aplikacije, da podaljša čas delovanja akumulatorja. Naprava se bo sčasoma naučila, kako uporabljate aplikacije.\n\nObvestila za te aplikacije bodo morda zakasnjena." "Uporaba prilagodljivega varčevanja z energijo akumulatorja" "Vklopi prilagodljivo varčevanje z energijo akumulatorja" ================================================ FILE: overlay/packages/apps/Settings/res/values-sq/strings.xml ================================================ "Aktivizo \"Baterinë me përshtatje\"" "Bateria me përshtatje" "Për të zgjatur kohëzgjatjen e baterisë, \"Bateria me përshtatje\" kufizon baterinë për aplikacionet që nuk përdoren shpesh. Tableti yt do të mësojë se si i përdor ti aplikacionet me kalimin e kohës.\n\nNjoftimet mund të vonohen për këto aplikacione." "Për të zgjatur kohëzgjatjen e baterisë, \"Bateria me përshtatje\" kufizon baterinë për aplikacionet që nuk përdoren shpesh. Pajisja jote do të mësojë se si i përdor ti aplikacionet me kalimin e kohës.\n\nNjoftimet mund të vonohen për këto aplikacione." "Përdor \"Baterinë me përshtatje\"" "Aktivizo \"Baterinë me përshtatje\"" ================================================ FILE: overlay/packages/apps/Settings/res/values-sr/strings.xml ================================================ "Укључите прилагодљиву батерију" "Прилагодљива батерија" "Да бисте продужили трајање батерије, прилагодљива батерија ограничава потрошњу батерије за апликације које се не користе често. Таблет ће временом научити како да користи апликације.\n\nОбавештења о овим апликацијама могу да касне." "Да бисте продужили трајање батерије, прилагодљива батерија ограничава потрошњу батерије за апликације које се не користе често. Уређај ће временом научити како да користи апликације.\n\nОбавештења о овим апликацијама могу да касне." "Користи прилагодљиву батерију" "Укључите прилагодљиву батерију" ================================================ FILE: overlay/packages/apps/Settings/res/values-sv/strings.xml ================================================ "Aktivera Smart batteri" "Smart batteri" "Med Smart batteri förlängs batteritiden genom att batterianvändningen begränsas för appar som används sällan. Surfplattan lär sig hur du använder appar med tiden.\n\nAviseringar från dessa appar kan fördröjas." "Med Smart batteri förlängs batteritiden genom att batterianvändningen begränsas för appar som används sällan. Enheten lär sig hur du använder appar med tiden.\n\nAviseringar från dessa appar kan fördröjas." "Använd Smart batteri" "Aktivera Smart batteri" ================================================ FILE: overlay/packages/apps/Settings/res/values-sw/strings.xml ================================================ "Washa Betri Inayojirekebisha" "Betri Inayojirekebisha" "Ili uongeze muda wa matumizi ya betri, Betri Inayojirekebisha hudhibiti matumizi ya betri katika programu ambazo huzitumii zaidi. Kompyuta yako kibao itajifunza jinsi unavyotumia programu hizi baada ya muda fulani.\n\nHuenda arifa zikachelewa katika programu hizi." "Ili uongeze muda wa matumizi ya betri, Betri Inayojirekebisha hudhibiti matumizi ya betri katika programu ambazo hutumii sana. Kifaa chako kitajifunza jinsi unavyotumia programu hizi baada ya muda fulani. \n\nHuenda arifa za programu hizi zikachelewa." "Tumia Betri Inayojirekebisha" "Washa Betri Inayojirekebisha" ================================================ FILE: overlay/packages/apps/Settings/res/values-ta/strings.xml ================================================ "அடாப்டிவ் பேட்டரியை ஆன் செய்க" "அடாப்டிவ் பேட்டரி" "பேட்டரி நிலையை நீட்டிக்க, அடாப்டிவ் பேட்டரியானது அடிக்கடி பயன்படுத்தாத ஆப்ஸிற்கு பேட்டரியைக் கட்டுப்படுத்தும். உங்கள் டேப்லெட்டானது காலப்போக்கில் ஆப்ஸ் எப்படி பேட்டரியைப் பயன்படுத்துகிறது என்பதை அறிந்துகொள்ளும்.\n\nஇந்த ஆப்ஸிற்கான அறிவிப்புகள் தாமதமாக வரலாம்." "பேட்டரி நிலையை நீட்டிக்க, அடாப்டிவ் பேட்டரியானது அடிக்கடி பயன்படுத்தாத ஆப்ஸிற்கு பேட்டரியைக் கட்டுப்படுத்தும். உங்கள் சாதனமானது காலப்போக்கில் ஆப்ஸ் எப்படி பேட்டரியைப் பயன்படுத்துகிறது என்பதை அறிந்துகொள்ளும்.\n\nஇந்த ஆப்ஸிற்கான அறிவிப்புகள் தாமதமாக வரலாம்." "அடாப்டிவ் பேட்டரியைப் பயன்படுத்து" "அடாப்டிவ் பேட்டரியை ஆன் செய்க" ================================================ FILE: overlay/packages/apps/Settings/res/values-te/strings.xml ================================================ "అనుకూల బ్యాటరీని ఆన్ చేయండి" "అనుకూల బ్యాటరీ" "బ్యాటరీ పనితీరును విస్తరించడానికి, అనుకూల బ్యాటరీ అరుదుగా ఉపయోగించే యాప్‌ల కోసం బ్యాటరీని పరిమితం చేస్తుంది. మీరు యాప్‌లను ఎలా ఉపయోగిస్తారో అన్నది కాలక్రమేణా మీ టాబ్లెట్ అర్థం చేసుకుంటుంది. \n\n ఈ యాప్ కోసం నోటిఫికేషన్‌లు రావడానికి ఆలస్యం కావచ్చు." "బ్యాటరీ పనితీరును విస్తరించడానికి, అనుకూల బ్యాటరీ అరుదుగా ఉపయోగించే యాప్‌ల కోసం బ్యాటరీని పరిమితం చేస్తుంది. మీరు యాప్‌లను ఎలా ఉపయోగిస్తారో అన్నది కాలక్రమేణా మీ ఫోన్ పరికరం చేసుకుంటుంది. \n\n ఈ యాప్ కోసం నోటిఫికేషన్‌లు రావడానికి ఆలస్యం కావచ్చు." "అనుకూల బ్యాటరీని ఉపయోగించండి" "అనుకూల బ్యాటరీని ఆన్ చేయండి" ================================================ FILE: overlay/packages/apps/Settings/res/values-th/strings.xml ================================================ "เปิดแบตเตอรี่แบบปรับอัตโนมัติ" "แบตเตอรี่แบบปรับอัตโนมัติ" "แบตเตอรี่แบบปรับอัตโนมัติจะจำกัดแบตเตอรี่ของแอปที่ใช้ไม่บ่อยเพื่อยืดอายุการใช้งานแบตเตอรี่ แท็บเล็ตจะเรียนรู้วิธีที่คุณใช้แอปเมื่อเวลาผ่านไป\n\nการแจ้งเตือนของแอปเหล่านี้อาจล่าช้า" "แบตเตอรี่แบบปรับอัตโนมัติจะจำกัดแบตเตอรี่ของแอปที่ใช้ไม่บ่อยเพื่อยืดอายุการใช้งานแบตเตอรี่ อุปกรณ์จะเรียนรู้วิธีที่คุณใช้แอปเมื่อเวลาผ่านไป\n\nการแจ้งเตือนของแอปเหล่านี้อาจล่าช้า" "ใช้แบตเตอรี่แบบปรับอัตโนมัติ" "เปิดแบตเตอรี่แบบปรับอัตโนมัติ" ================================================ FILE: overlay/packages/apps/Settings/res/values-tl/strings.xml ================================================ "I-on ang Adaptive Battery" "Adaptive Battery" "Para mapatagal ang baterya, nililimitahan ng Adaptive Battery ang baterya para sa mga app na hindi madalas na ginagamit. Matututunan ng iyong tablet kung paano mo ginagamit ang mga app sa paglipas ng panahon.\n\nMaaaring maantala ang mga notification para sa mga app na ito." "Para mapatagal ang baterya, nililimitahan ng Adaptive Battery ang baterya para sa mga app na hindi madalas na ginagamit. Matututunan ng iyong device kung paano mo ginagamit ang mga app sa paglipas ng panahon.\n\nMaaaring maantala ang mga notification para sa mga app na ito." "Gamitin ang Adaptive Battery" "I-on ang Adaptive Battery" ================================================ FILE: overlay/packages/apps/Settings/res/values-tr/strings.xml ================================================ "Uyarlamalı Pil\'i aç" "Uyarlamalı Pil" "Uyarlamalı Pil özelliği pil ömrünü uzatmak için, sık kullanılmayan uygulamaların pil tüketimini sınırlar. Tabletiniz, zamanla uygulamaları nasıl kullandığınızı öğrenir.\n\nBu uygulamalara ait bildirimlerde gecikme olabilir." "Uyarlamalı Pil özelliği pil ömrünü uzatmak için, sık kullanılmayan uygulamaların pil tüketimini sınırlar. Cihazınız, zamanla uygulamaları nasıl kullandığınızı öğrenir.\n\nBu uygulamalara ait bildirimlerde gecikme olabilir." "Uyarlamalı Pil özelliğini kullan" "Uyarlamalı Pil\'i aç" ================================================ FILE: overlay/packages/apps/Settings/res/values-uk/strings.xml ================================================ "Увімкнути адаптивний акумулятор" "Адаптивний акумулятор" "Щоб пристрій працював довше, адаптивний акумулятор обмежує споживання заряду для додатків, які рідко використовуються. Планшет із часом визначить, як ви ними користуєтесь.\n\nСповіщення з цих додатків можуть надходити із затримкою." "Щоб пристрій працював довше, адаптивний акумулятор обмежує споживання заряду для додатків, які рідко використовуються. Пристрій із часом визначить, як ви ними користуєтесь.\n\nСповіщення з цих додатків можуть надходити із затримкою." "Використовувати адаптивний акумулятор" "Увімкнути адаптивний акумулятор" ================================================ FILE: overlay/packages/apps/Settings/res/values-ur/strings.xml ================================================ "تغیر پذیر بیٹری آن کریں" "تغیر پذیر بیٹری" "بیٹری لائف بڑھانے کے لیے، تغیر پذیر بیٹری کبھی کبھار استعمال کی جانے والی ایپس کے لیے بیٹری کو محدود کرتی ہے۔ وقت گزرنے پر، آپ کا ٹیبلیٹ ایپس استعمال کرنے کا طریقہ سیکھے گا۔\n\nان ایپس کے لیے اطلاعات میں تاخیر ہو سکتی ہے۔" "بیٹری لائف بڑھانے کے لیے، تغیر پذیر بیٹری کبھی کبھار استعمال کی جانے والی ایپس کے لیے بیٹری کو محدود کرتی ہے۔ وقت گزرنے پر، آپ کا آلہ ایپس استعمال کرنے کا طریقہ سیکھے گا۔\n\nان ایپس کے لیے اطلاعات میں تاخیر ہو سکتی ہے۔" "تغیر پذیر بیٹری استعمال کریں" "تغیر پذیر بیٹری آن کریں" ================================================ FILE: overlay/packages/apps/Settings/res/values-uz/strings.xml ================================================ "Adaptive Battery funksiyasini yoqing" "Adaptive Battery" "Batareya quvvatini uzaytirish uchun Adaptive Battery kam ishlatiladigan ilovalar uchun batareyani cheklaydi. Planshetingiz ilovalardan qancha muddatda foydalanishingizni o‘rganib boradi.\n\nMazkur ilovalar uchun bildirishnomalar kechikishi mumkin." "Batareya quvvatini uzaytirish uchun Adaptive Battery kam ishlatiladigan ilovalar uchun batareyani cheklaydi. Qurilmangiz ilovalardan qancha muddatda foydalanishingizni o‘rganib boradi.\n\nMazkur ilovalar uchun bildirishnomalar kechikishi mumkin." "Adaptive Battery funksiyasidan foydalanish" "Adaptive Battery funksiyasini yoqing" ================================================ FILE: overlay/packages/apps/Settings/res/values-vi/strings.xml ================================================ "Bật tùy chọn Pin thích ứng" "Pin thích ứng" "Để kéo dài thời lượng pin, tùy chọn Pin thích ứng sẽ giới hạn mức sử dụng pin đối với các ứng dụng ít dùng. Máy tính bảng sẽ tìm hiểu cách bạn sử dụng ứng dụng theo thời gian.\n\nThông báo có thể bị chậm trễ đối với những ứng dụng này." "Để kéo dài thời lượng pin, tùy chọn Pin thích ứng sẽ giới hạn mức sử dụng pin đối với các ứng dụng ít dùng. Thiết bị sẽ tìm hiểu cách bạn sử dụng ứng dụng theo thời gian.\n\nThông báo có thể bị chậm trễ đối với những ứng dụng này." "Sử dụng Pin thích ứng" "Bật tùy chọn Pin thích ứng" ================================================ FILE: overlay/packages/apps/Settings/res/values-zh-rCN/strings.xml ================================================ "开启 Adaptive Battery" "Adaptive Battery" "为了延长电池续航时间,Adaptive Battery 会针对不常用的应用限制用电量。久而久之,您的平板电脑就会逐渐了解应用的使用情况。\n\n这些应用的通知可能会有所延迟。" "为了延长电池续航时间,Adaptive Battery 会针对不常用的应用限制用电量。久而久之,您的设备就会逐渐了解应用的使用情况。\n\n这些应用的通知可能会有所延迟。" "使用 Adaptive Battery" "开启 Adaptive Battery" ================================================ FILE: overlay/packages/apps/Settings/res/values-zh-rHK/strings.xml ================================================ "開啟「自動調節電池用量」" "自動調節電池用量" "為延長電池壽命,「自動調節電池用量」會為不常用的應用程式限制用電量。您的平板電腦會瞭解應用程式在不同時間的使用情況。\n\n這些應用程式通知可能會延遲。" "為延長電池壽命,「自動調節電池用量」會為不常用的應用程式限制用電量。您的裝置會瞭解應用程式在不同時間的使用情況。\n\n這些應用程式通知可能會延遲。" "使用自動調節電池用量" "開啟「自動調節電池用量」" ================================================ FILE: overlay/packages/apps/Settings/res/values-zh-rTW/strings.xml ================================================ "開啟自動調節電池用量功能" "自動調節電池用量" "為了延長電池續航力,「自動調節電池用量」功能會針對不常使用的應用程式限制電池用量。一段時間後,你的平板電腦會記住應用程式的使用情形。\n\n這些應用程式的通知可能會延遲。" "為了延長電池續航力,「自動調節電池用量」功能會針對不常使用的應用程式限制電池用量。一段時間後,你的裝置會記住應用程式的使用情形。\n\n這些應用程式的通知可能會延遲。" "使用自動調節電池用量功能" "開啟自動調節電池用量功能" ================================================ FILE: overlay/packages/apps/Settings/res/values-zu/strings.xml ================================================ "Vula ibhethri le-Adaptive" "I-Adaptive Battery" "Ukuze kunwetshwe impilo yebhethri, i-Adaptive Battery ikhawulela ibhethri kuzinhlelo zokusebenza ezingasetshenziswa kakhulu. Ithebhulethi yakho izofunda ukuthi uzisebenzisa kanjani izinhlelo zokusebenza ngesikhathi.\n\nIzaziso zingabambezeleka kulezi zinhlelo zokusebenza." "Ukuze kunwetshwe impilo yebhethri, i-Adaptive Battery ikhawulela ibhethri kuzinhlelo zokusebenza ezingasetshenziswa kakhulu. Idivayisi yakho izofunda ukuthi uzisebenzisa kanjani izinhlelo zokusebenza ngesikhathi.\n\nIzaziso zingabambezeleka kulezi zinhlelo zokusebenza." "Sebenzisa i-Adaptive Battery" "Vula ibhethri le-Adaptive" ================================================ FILE: overlay/packages/services/Telecomm/res/values/config.xml ================================================ com.android.incallui.InCallServiceImpl true false ================================================ FILE: overlay/packages/services/Telephony/res/values/config.xml ================================================ 1 true false true true true true true true true ================================================ FILE: overlay/packages/services/Telephony/res/values-mcc234-mnc15/strings.xml ================================================ Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Click <OK> to use data while roaming. Check with your network provider for pricing. ================================================ FILE: overlay/packages/services/Telephony/res/values-mcc234-mnc15-en-rGB/strings.xml ================================================ Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Click <OK> to use data while roaming. Check with your network provider for pricing. ================================================ FILE: overlay/packages/services/Telephony/res/values-mcc234-mnc15-en-rIN/strings.xml ================================================ Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Click <OK> to use data while roaming. Check with your network provider for pricing. ================================================ FILE: overlay/packages/services/Telephony/res/values-mcc262-mnc02/strings.xml ================================================ Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Click <OK> to use data while roaming. Check with your network provider for pricing. ================================================ FILE: overlay/packages/services/Telephony/res/values-mcc262-mnc02-en-rGB/strings.xml ================================================ Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Click <OK> to use data while roaming. Check with your network provider for pricing. ================================================ FILE: overlay/packages/services/Telephony/res/values-mcc262-mnc02-en-rIN/strings.xml ================================================ Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Click <OK> to use data while roaming. Check with your network provider for pricing. ================================================ FILE: overlay/packages/services/Telephony/res/values-mcc262-mnc04/strings.xml ================================================ Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Click <OK> to use data while roaming. Check with your network provider for pricing. ================================================ FILE: overlay/packages/services/Telephony/res/values-mcc262-mnc04-en-rGB/strings.xml ================================================ Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Click <OK> to use data while roaming. Check with your network provider for pricing. ================================================ FILE: overlay/packages/services/Telephony/res/values-mcc262-mnc04-en-rIN/strings.xml ================================================ Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Click <OK> to use data while roaming. Check with your network provider for pricing. ================================================ FILE: overlay/packages/services/Telephony/res/values-mcc262-mnc09/strings.xml ================================================ Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Click <OK> to use data while roaming. Check with your network provider for pricing. ================================================ FILE: overlay/packages/services/Telephony/res/values-mcc262-mnc09-en-rGB/strings.xml ================================================ Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Click <OK> to use data while roaming. Check with your network provider for pricing. ================================================ FILE: overlay/packages/services/Telephony/res/values-mcc262-mnc09-en-rIN/strings.xml ================================================ Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Data Roaming enables you to browse the web, use email, MMS and other data services while abroad. Check with your network provider for pricing Click <OK> to use data while roaming. Check with your network provider for pricing. ================================================ FILE: p2p_supplicant_overlay.conf ================================================ disable_scan_offload=1 p2p_no_group_iface=1 persistent_reconnect=1 ================================================ FILE: power/AudioStreaming.h ================================================ /* * 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. */ #ifndef POWER_LIBPERFMGR_AUDIOSTREAMING_H_ #define POWER_LIBPERFMGR_AUDIOSTREAMING_H_ enum AUDIO_STREAMING_HINT { AUDIO_STREAMING_OFF = 0, AUDIO_STREAMING_ON = 1, TPU_BOOST_OFF = 1000, TPU_BOOST_SHORT = 1001, TPU_BOOST_LONG = 1002 }; enum TPU_HINT_DURATION_MS { SHORT = 200, LONG = 2000 }; #endif // POWER_LIBPERFMGR_AUDIOSTREAMING_H_ ================================================ FILE: power/CameraMode.h ================================================ /* * 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. */ #ifndef POWER_LIBPERFMGR_CAMERAMODE_H_ #define POWER_LIBPERFMGR_CAMERAMODE_H_ enum CameraStreamingMode { CAMERA_STREAMING_OFF = 0, CAMERA_STREAMING, CAMERA_STREAMING_1080P, CAMERA_STREAMING_4K, CAMERA_STREAMING_MAX }; #endif // POWER_LIBPERFMGR_CAMERAMODE_H_ ================================================ FILE: power/InteractionHandler.cpp ================================================ /* * 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.power@1.3-service.mata-libperfmgr" #define ATRACE_TAG (ATRACE_TAG_POWER | ATRACE_TAG_HAL) #include #include #include #include #include #include #include #include #include "InteractionHandler.h" #define MAX_LENGTH 64 #define MSINSEC 1000L #define USINMS 1000000L static const std::vector fb_idle_patch = {"/sys/class/drm/card0/device/idle_state", "/sys/class/graphics/fb0/idle_state"}; InteractionHandler::InteractionHandler(std::shared_ptr const &hint_manager) : mState(INTERACTION_STATE_UNINITIALIZED), mWaitMs(100), mMinDurationMs(1400), mMaxDurationMs(5650), mDurationMs(0), mHintManager(hint_manager) {} InteractionHandler::~InteractionHandler() { Exit(); } static int fb_idle_open(void) { int fd; for (auto &path : fb_idle_patch) { fd = open(path.c_str(), O_RDONLY); if (fd >= 0) return fd; } ALOGE("Unable to open fb idle state path (%d)", errno); return -1; } bool InteractionHandler::Init() { std::lock_guard lk(mLock); if (mState != INTERACTION_STATE_UNINITIALIZED) return true; int fd = fb_idle_open(); if (fd < 0) return false; mIdleFd = fd; mEventFd = eventfd(0, EFD_NONBLOCK); if (mEventFd < 0) { ALOGE("Unable to create event fd (%d)", errno); close(mIdleFd); return false; } mState = INTERACTION_STATE_IDLE; mThread = std::unique_ptr(new std::thread(&InteractionHandler::Routine, this)); return true; } void InteractionHandler::Exit() { std::unique_lock lk(mLock); if (mState == INTERACTION_STATE_UNINITIALIZED) return; AbortWaitLocked(); mState = INTERACTION_STATE_UNINITIALIZED; lk.unlock(); mCond.notify_all(); mThread->join(); close(mEventFd); close(mIdleFd); } void InteractionHandler::PerfLock() { ALOGV("%s: acquiring perf lock", __func__); if (!mHintManager->DoHint("INTERACTION")) { ALOGE("%s: do hint INTERACTION failed", __func__); } ATRACE_INT("interaction_lock", 1); } void InteractionHandler::PerfRel() { ALOGV("%s: releasing perf lock", __func__); if (!mHintManager->EndHint("INTERACTION")) { ALOGE("%s: end hint INTERACTION failed", __func__); } ATRACE_INT("interaction_lock", 0); } size_t InteractionHandler::CalcTimespecDiffMs(struct timespec start, struct timespec end) { size_t diff_in_us = 0; diff_in_us += (end.tv_sec - start.tv_sec) * MSINSEC; diff_in_us += (end.tv_nsec - start.tv_nsec) / USINMS; return diff_in_us; } void InteractionHandler::Acquire(int32_t duration) { ATRACE_CALL(); std::lock_guard lk(mLock); if (mState == INTERACTION_STATE_UNINITIALIZED) { ALOGW("%s: called while uninitialized", __func__); return; } int inputDuration = duration + 650; int finalDuration; if (inputDuration > mMaxDurationMs) finalDuration = mMaxDurationMs; else if (inputDuration > mMinDurationMs) finalDuration = inputDuration; else finalDuration = mMinDurationMs; struct timespec cur_timespec; clock_gettime(CLOCK_MONOTONIC, &cur_timespec); if (mState != INTERACTION_STATE_IDLE && finalDuration <= mDurationMs) { size_t elapsed_time = CalcTimespecDiffMs(mLastTimespec, cur_timespec); // don't hint if previous hint's duration covers this hint's duration if (elapsed_time <= (mDurationMs - finalDuration)) { ALOGV("%s: Previous duration (%d) cover this (%d) elapsed: %lld", __func__, static_cast(mDurationMs), static_cast(finalDuration), static_cast(elapsed_time)); return; } } mLastTimespec = cur_timespec; mDurationMs = finalDuration; ALOGV("%s: input: %d final duration: %d", __func__, duration, finalDuration); if (mState == INTERACTION_STATE_WAITING) AbortWaitLocked(); else if (mState == INTERACTION_STATE_IDLE) PerfLock(); mState = INTERACTION_STATE_INTERACTION; mCond.notify_one(); } void InteractionHandler::Release() { std::lock_guard lk(mLock); if (mState == INTERACTION_STATE_WAITING) { ATRACE_CALL(); PerfRel(); mState = INTERACTION_STATE_IDLE; } else { // clear any wait aborts pending in event fd uint64_t val; ssize_t ret = read(mEventFd, &val, sizeof(val)); ALOGW_IF(ret < 0, "%s: failed to clear eventfd (%zd, %d)", __func__, ret, errno); } } // should be called while locked void InteractionHandler::AbortWaitLocked() { uint64_t val = 1; ssize_t ret = write(mEventFd, &val, sizeof(val)); if (ret != sizeof(val)) ALOGW("Unable to write to event fd (%zd)", ret); } void InteractionHandler::WaitForIdle(int32_t wait_ms, int32_t timeout_ms) { char data[MAX_LENGTH]; ssize_t ret; struct pollfd pfd[2]; ATRACE_CALL(); ALOGV("%s: wait:%d timeout:%d", __func__, wait_ms, timeout_ms); pfd[0].fd = mEventFd; pfd[0].events = POLLIN; pfd[1].fd = mIdleFd; pfd[1].events = POLLPRI | POLLERR; ret = poll(pfd, 1, wait_ms); if (ret > 0) { ALOGV("%s: wait aborted", __func__); return; } else if (ret < 0) { ALOGE("%s: error in poll while waiting", __func__); return; } ret = pread(mIdleFd, data, sizeof(data), 0); if (!ret) { ALOGE("%s: Unexpected EOF!", __func__); return; } if (!strncmp(data, "idle", 4)) { ALOGV("%s: already idle", __func__); return; } ret = poll(pfd, 2, timeout_ms); if (ret < 0) ALOGE("%s: Error on waiting for idle (%zd)", __func__, ret); else if (ret == 0) ALOGV("%s: timed out waiting for idle", __func__); else if (pfd[0].revents) ALOGV("%s: wait for idle aborted", __func__); else if (pfd[1].revents) ALOGV("%s: idle detected", __func__); } void InteractionHandler::Routine() { std::unique_lock lk(mLock, std::defer_lock); while (true) { lk.lock(); mCond.wait(lk, [&] { return mState != INTERACTION_STATE_IDLE; }); if (mState == INTERACTION_STATE_UNINITIALIZED) return; mState = INTERACTION_STATE_WAITING; lk.unlock(); WaitForIdle(mWaitMs, mDurationMs); Release(); } } ================================================ FILE: power/InteractionHandler.h ================================================ /* * 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. */ #ifndef POWER_LIBPERFMGR_INTERACTIONHANDLER_H_ #define POWER_LIBPERFMGR_INTERACTIONHANDLER_H_ #include #include #include #include #include #include using ::android::perfmgr::HintManager; enum interaction_state { INTERACTION_STATE_UNINITIALIZED, INTERACTION_STATE_IDLE, INTERACTION_STATE_INTERACTION, INTERACTION_STATE_WAITING, }; class InteractionHandler { public: InteractionHandler(std::shared_ptr const &hint_manager); ~InteractionHandler(); bool Init(); void Exit(); void Acquire(int32_t duration); private: void Release(); void WaitForIdle(int32_t wait_ms, int32_t timeout_ms); void AbortWaitLocked(); void Routine(); void PerfLock(); void PerfRel(); size_t CalcTimespecDiffMs(struct timespec start, struct timespec end); enum interaction_state mState; int mIdleFd; int mEventFd; int32_t mWaitMs; int32_t mMinDurationMs; int32_t mMaxDurationMs; int32_t mDurationMs; struct timespec mLastTimespec; std::unique_ptr mThread; std::mutex mLock; std::condition_variable mCond; std::shared_ptr mHintManager; }; #endif // POWER_LIBPERFMGR_INTERACTIONHANDLER_H_ ================================================ FILE: power/Power.cpp ================================================ /* * 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 ATRACE_TAG (ATRACE_TAG_POWER | ATRACE_TAG_HAL) #define LOG_TAG "android.hardware.power@1.3-service.mata-libperfmgr" #include #include #include #include #include #include #include #include #include "AudioStreaming.h" #include "Power.h" #include "display-helper.h" namespace android { namespace hardware { namespace power { namespace V1_3 { namespace implementation { using ::android::hardware::hidl_vec; using ::android::hardware::Return; using ::android::hardware::Void; using ::android::hardware::power::V1_0::Feature; using ::android::hardware::power::V1_0::Status; constexpr char kPowerHalStateProp[] = "vendor.powerhal.state"; constexpr char kPowerHalAudioProp[] = "vendor.powerhal.audio"; constexpr char kPowerHalInitProp[] = "vendor.powerhal.init"; constexpr char kPowerHalRenderingProp[] = "vendor.powerhal.rendering"; constexpr char kPowerHalConfigPath[] = "/vendor/etc/powerhint.json"; static const std::map kCamStreamingHint = { {CAMERA_STREAMING_OFF, "CAMERA_STREAMING_OFF"}, {CAMERA_STREAMING, "CAMERA_STREAMING"}, {CAMERA_STREAMING_1080P, "CAMERA_STREAMING_1080P"}, {CAMERA_STREAMING_4K, "CAMERA_STREAMING_4K"}}; Power::Power() : mHintManager(nullptr), mInteractionHandler(nullptr), mVRModeOn(false), mSustainedPerfModeOn(false), mCameraStreamingMode(CAMERA_STREAMING_OFF), mReady(false) { mInitThread = std::thread([this]() { android::base::WaitForProperty(kPowerHalInitProp, "1"); mHintManager = HintManager::GetFromJSON(kPowerHalConfigPath); if (!mHintManager) { LOG(FATAL) << "Invalid config: " << kPowerHalConfigPath; } mInteractionHandler = std::make_unique(mHintManager); mInteractionHandler->Init(); std::string state = android::base::GetProperty(kPowerHalStateProp, ""); if (state == "CAMERA_STREAMING") { ALOGI("Initialize with CAMERA_STREAMING on"); mHintManager->DoHint("CAMERA_STREAMING"); mCameraStreamingMode = CAMERA_STREAMING; } else if (state == "CAMERA_STREAMING_1080P") { ALOGI("Initialize CAMERA_STREAMING_1080P on"); mHintManager->DoHint("CAMERA_STREAMING_1080P"); mCameraStreamingMode = CAMERA_STREAMING_1080P; } else if (state == "CAMERA_STREAMING_4K") { ALOGI("Initialize with CAMERA_STREAMING_4K on"); mHintManager->DoHint("CAMERA_STREAMING_4K"); mCameraStreamingMode = CAMERA_STREAMING_4K; } else if (state == "SUSTAINED_PERFORMANCE") { ALOGI("Initialize with SUSTAINED_PERFORMANCE on"); mHintManager->DoHint("SUSTAINED_PERFORMANCE"); mSustainedPerfModeOn = true; } else if (state == "VR_MODE") { ALOGI("Initialize with VR_MODE on"); mHintManager->DoHint("VR_MODE"); mVRModeOn = true; } else if (state == "VR_SUSTAINED_PERFORMANCE") { ALOGI("Initialize with SUSTAINED_PERFORMANCE and VR_MODE on"); mHintManager->DoHint("VR_SUSTAINED_PERFORMANCE"); mSustainedPerfModeOn = true; mVRModeOn = true; } else { ALOGI("Initialize PowerHAL"); } state = android::base::GetProperty(kPowerHalAudioProp, ""); if (state == "AUDIO_LOW_LATENCY") { ALOGI("Initialize with AUDIO_LOW_LATENCY on"); mHintManager->DoHint("AUDIO_LOW_LATENCY"); } state = android::base::GetProperty(kPowerHalRenderingProp, ""); if (state == "EXPENSIVE_RENDERING") { ALOGI("Initialize with EXPENSIVE_RENDERING on"); mHintManager->DoHint("EXPENSIVE_RENDERING"); } // Now start to take powerhint mReady.store(true); ALOGI("PowerHAL ready to process hints"); }); mInitThread.detach(); } // Methods from ::android::hardware::power::V1_0::IPower follow. Return Power::setInteractive(bool /* interactive */) { return Void(); } Return Power::powerHint(PowerHint_1_0 hint, int32_t data) { if (!mReady) { return Void(); } ATRACE_INT(android::hardware::power::V1_0::toString(hint).c_str(), data); ALOGD_IF(hint != PowerHint_1_0::INTERACTION, "%s: %d", android::hardware::power::V1_0::toString(hint).c_str(), static_cast(data)); switch (hint) { case PowerHint_1_0::INTERACTION: if (mVRModeOn || mSustainedPerfModeOn) { ALOGV("%s: ignoring due to other active perf hints", __func__); } else { mInteractionHandler->Acquire(data); } break; case PowerHint_1_0::SUSTAINED_PERFORMANCE: if (data && !mSustainedPerfModeOn) { if (!mVRModeOn) { // Sustained mode only. mHintManager->DoHint("SUSTAINED_PERFORMANCE"); } else { // Sustained + VR mode. mHintManager->EndHint("VR_MODE"); mHintManager->DoHint("VR_SUSTAINED_PERFORMANCE"); } mSustainedPerfModeOn = true; } else if (!data && mSustainedPerfModeOn) { mHintManager->EndHint("VR_SUSTAINED_PERFORMANCE"); mHintManager->EndHint("SUSTAINED_PERFORMANCE"); if (mVRModeOn) { // Switch back to VR Mode. mHintManager->DoHint("VR_MODE"); } mSustainedPerfModeOn = false; } break; case PowerHint_1_0::VR_MODE: if (data && !mVRModeOn) { if (!mSustainedPerfModeOn) { // VR mode only. mHintManager->DoHint("VR_MODE"); } else { // Sustained + VR mode. mHintManager->EndHint("SUSTAINED_PERFORMANCE"); mHintManager->DoHint("VR_SUSTAINED_PERFORMANCE"); } mVRModeOn = true; } else if (!data && mVRModeOn) { mHintManager->EndHint("VR_SUSTAINED_PERFORMANCE"); mHintManager->EndHint("VR_MODE"); if (mSustainedPerfModeOn) { // Switch back to sustained Mode. mHintManager->DoHint("SUSTAINED_PERFORMANCE"); } mVRModeOn = false; } break; case PowerHint_1_0::LAUNCH: if (mVRModeOn || mSustainedPerfModeOn) { ALOGV("%s: ignoring due to other active perf hints", __func__); } else { if (data) { // Hint until canceled mHintManager->DoHint("LAUNCH"); } else { mHintManager->EndHint("LAUNCH"); } } break; case PowerHint_1_0::LOW_POWER: if (data) { // Device in battery saver mode, enable display low power mode set_display_lpm(true); } else { // Device exiting battery saver mode, disable display low power mode set_display_lpm(false); } break; default: break; } return Void(); } Return Power::setFeature(Feature /*feature*/, bool /*activate*/) { // Nothing to do return Void(); } Return Power::getPlatformLowPowerStats(getPlatformLowPowerStats_cb _hidl_cb) { LOG(ERROR) << "getPlatformLowPowerStats not supported. Use IPowerStats HAL."; _hidl_cb({}, Status::SUCCESS); return Void(); } // Methods from ::android::hardware::power::V1_1::IPower follow. Return Power::getSubsystemLowPowerStats(getSubsystemLowPowerStats_cb _hidl_cb) { LOG(ERROR) << "getSubsystemLowPowerStats not supported. Use IPowerStats HAL."; _hidl_cb({}, Status::SUCCESS); return Void(); } Return Power::powerHintAsync(PowerHint_1_0 hint, int32_t data) { // just call the normal power hint in this oneway function return powerHint(hint, data); } // Methods from ::android::hardware::power::V1_2::IPower follow. Return Power::powerHintAsync_1_2(PowerHint_1_2 hint, int32_t data) { if (!mReady) { return Void(); } ATRACE_INT(android::hardware::power::V1_2::toString(hint).c_str(), data); ALOGD_IF(hint >= PowerHint_1_2::AUDIO_STREAMING, "%s: %d", android::hardware::power::V1_2::toString(hint).c_str(), static_cast(data)); switch (hint) { case PowerHint_1_2::AUDIO_LOW_LATENCY: if (data) { // Hint until canceled mHintManager->DoHint("AUDIO_LOW_LATENCY"); } else { mHintManager->EndHint("AUDIO_LOW_LATENCY"); } break; case PowerHint_1_2::AUDIO_STREAMING: if (mVRModeOn || mSustainedPerfModeOn) { ALOGV("%s: ignoring due to other active perf hints", __func__); } else { if (data == static_cast(AUDIO_STREAMING_HINT::AUDIO_STREAMING_ON)) { mHintManager->DoHint("AUDIO_STREAMING"); } else if (data == static_cast(AUDIO_STREAMING_HINT::AUDIO_STREAMING_OFF)) { mHintManager->EndHint("AUDIO_STREAMING"); } else if (data == static_cast(AUDIO_STREAMING_HINT::TPU_BOOST_SHORT)) { mHintManager->DoHint("TPU_BOOST", std::chrono::milliseconds(TPU_HINT_DURATION_MS::SHORT)); } else if (data == static_cast(AUDIO_STREAMING_HINT::TPU_BOOST_LONG)) { mHintManager->DoHint("TPU_BOOST", std::chrono::milliseconds(TPU_HINT_DURATION_MS::LONG)); } else if (data == static_cast(AUDIO_STREAMING_HINT::TPU_BOOST_OFF)) { mHintManager->EndHint("TPU_BOOST"); } else { ALOGE("AUDIO STREAMING INVALID DATA: %d", data); } } break; case PowerHint_1_2::CAMERA_LAUNCH: if (data > 0) { mHintManager->DoHint("CAMERA_LAUNCH"); } else if (data == 0) { mHintManager->EndHint("CAMERA_LAUNCH"); } else { ALOGE("CAMERA LAUNCH INVALID DATA: %d", data); } break; case PowerHint_1_2::CAMERA_STREAMING: { const enum CameraStreamingMode mode = static_cast(data); if (mode < CAMERA_STREAMING_OFF || mode >= CAMERA_STREAMING_MAX) { ALOGE("CAMERA STREAMING INVALID Mode: %d", mode); break; } if (mCameraStreamingMode == mode) break; // turn it off first if any previous hint. if ((mCameraStreamingMode != CAMERA_STREAMING_OFF)) { const auto modeValue = kCamStreamingHint.at(mCameraStreamingMode); mHintManager->EndHint(modeValue); // Boost 1s for tear down mHintManager->DoHint("CAMERA_LAUNCH", std::chrono::seconds(1)); } if (mode != CAMERA_STREAMING_OFF) { const auto hintValue = kCamStreamingHint.at(mode); mHintManager->DoHint(hintValue); } mCameraStreamingMode = mode; const auto prop = (mCameraStreamingMode == CAMERA_STREAMING_OFF) ? "" : kCamStreamingHint.at(mode).c_str(); if (!android::base::SetProperty(kPowerHalStateProp, prop)) { ALOGE("%s: could set powerHAL state %s property", __func__, prop); } break; } case PowerHint_1_2::CAMERA_SHOT: if (data > 0) { mHintManager->DoHint("CAMERA_SHOT", std::chrono::milliseconds(data)); } else if (data == 0) { mHintManager->EndHint("CAMERA_SHOT"); } else { ALOGE("CAMERA SHOT INVALID DATA: %d", data); } break; default: return powerHint(static_cast(hint), data); } return Void(); } // Methods from ::android::hardware::power::V1_3::IPower follow. Return Power::powerHintAsync_1_3(PowerHint_1_3 hint, int32_t data) { if (!mReady) { return Void(); } if (hint == PowerHint_1_3::EXPENSIVE_RENDERING) { ATRACE_INT(android::hardware::power::V1_3::toString(hint).c_str(), data); if (mVRModeOn || mSustainedPerfModeOn) { ALOGV("%s: ignoring due to other active perf hints", __func__); } else { if (data > 0) { mHintManager->DoHint("EXPENSIVE_RENDERING"); } else { mHintManager->EndHint("EXPENSIVE_RENDERING"); } } } else { return powerHintAsync_1_2(static_cast(hint), data); } return Void(); } constexpr const char *boolToString(bool b) { return b ? "true" : "false"; } Return Power::debug(const hidl_handle &handle, const hidl_vec &) { if (handle != nullptr && handle->numFds >= 1 && mReady) { int fd = handle->data[0]; std::string buf(android::base::StringPrintf( "HintManager Running: %s\n" "VRMode: %s\n" "CameraStreamingMode: %s\n" "SustainedPerformanceMode: %s\n", boolToString(mHintManager->IsRunning()), boolToString(mVRModeOn), kCamStreamingHint.at(mCameraStreamingMode).c_str(), boolToString(mSustainedPerfModeOn))); // Dump nodes through libperfmgr mHintManager->DumpToFd(fd); if (!android::base::WriteStringToFd(buf, fd)) { PLOG(ERROR) << "Failed to dump state to fd"; } fsync(fd); } return Void(); } } // namespace implementation } // namespace V1_3 } // namespace power } // namespace hardware } // namespace android ================================================ FILE: power/Power.h ================================================ /* * 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. */ #ifndef POWER_LIBPERFMGR_POWER_H_ #define POWER_LIBPERFMGR_POWER_H_ #include #include #include #include #include #include #include #include "CameraMode.h" #include "InteractionHandler.h" namespace android { namespace hardware { namespace power { namespace V1_3 { namespace implementation { using ::InteractionHandler; using ::android::hardware::Return; using ::android::hardware::Void; using ::android::hardware::power::V1_0::Feature; using ::android::hardware::power::V1_3::IPower; using PowerHint_1_0 = ::android::hardware::power::V1_0::PowerHint; using PowerHint_1_2 = ::android::hardware::power::V1_2::PowerHint; using PowerHint_1_3 = ::android::hardware::power::V1_3::PowerHint; using ::android::perfmgr::HintManager; class Power : public IPower { public: // Methods from ::android::hardware::power::V1_0::IPower follow. Power(); Return setInteractive(bool /* interactive */) override; Return powerHint(PowerHint_1_0 hint, int32_t data) override; Return setFeature(Feature feature, bool activate) override; Return getPlatformLowPowerStats(getPlatformLowPowerStats_cb _hidl_cb) override; // Methods from ::android::hardware::power::V1_1::IPower follow. Return getSubsystemLowPowerStats(getSubsystemLowPowerStats_cb _hidl_cb) override; Return powerHintAsync(PowerHint_1_0 hint, int32_t data) override; // Methods from ::android::hardware::power::V1_2::IPower follow. Return powerHintAsync_1_2(PowerHint_1_2 hint, int32_t data) override; // Methods from ::android::hardware::power::V1_3::IPower follow. Return powerHintAsync_1_3(PowerHint_1_3 hint, int32_t data) override; // Methods from ::android::hidl::base::V1_0::IBase follow. Return debug(const hidl_handle &fd, const hidl_vec &args) override; private: std::shared_ptr mHintManager; std::unique_ptr mInteractionHandler; std::atomic mVRModeOn; std::atomic mSustainedPerfModeOn; std::atomic mCameraStreamingMode; std::atomic mReady; std::thread mInitThread; }; } // namespace implementation } // namespace V1_3 } // namespace power } // namespace hardware } // namespace android #endif // POWER_LIBPERFMGR_POWER_H_ ================================================ FILE: power/android.hardware.power@1.3-service.mata-libperfmgr.rc ================================================ service vendor.power-hal-1-3 /vendor/bin/hw/android.hardware.power@1.3-service.mata-libperfmgr class hal user root group system interface android.hardware.power@1.0::IPower default interface android.hardware.power@1.1::IPower default interface android.hardware.power@1.2::IPower default interface android.hardware.power@1.3::IPower default # restart powerHAL when framework died on property:init.svc.zygote=restarting && property:vendor.powerhal.state=* setprop vendor.powerhal.state "" setprop vendor.powerhal.audio "" setprop vendor.powerhal.rendering "" restart vendor.power-hal-1-3 # restart powerHAL when cameraHAL died on property:init.svc.vendor.camera-provider-2-4=restarting && property:vendor.powerhal.state=CAMERA_STREAMING setprop vendor.powerhal.state "" restart vendor.power-hal-1-3 # restart powerHAL when audioHAL died on property:init.svc.vendor.audio-hal-2-0=restarting && property:vendor.powerhal.audio=AUDIO_LOW_LATENCY setprop vendor.powerhal.audio "" restart vendor.power-hal-1-3 ================================================ FILE: power/android.hardware.power@1.3-service.mata.xml ================================================ android.hardware.power hwbinder 1.3 IPower default ================================================ FILE: power/display-helper.cpp ================================================ /* * 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_NIDEBUG 0 #define LOG_TAG "android.hardware.power@1.3-service.mata-libperfmgr" #include #include #include #include #include #include #include #include #include #include #include #include "display-helper.h" #define DAEMON_SOCKET "pps" static int daemon_socket = -1; static int connectPPDaemon() { // Setup socket connection, if not already done. if (daemon_socket < 0) daemon_socket = socket_local_client(DAEMON_SOCKET, ANDROID_SOCKET_NAMESPACE_RESERVED, SOCK_STREAM); if (daemon_socket < 0) { ALOGE("Connecting to socket failed: %s", strerror(errno)); return -1; } return 0; } static int ppdComm(const char *cmd) { int ret = -1; ret = connectPPDaemon(); if (ret < 0) return ret; ret = write(daemon_socket, cmd, strlen(cmd)); if (ret < 0) { ALOGE("Failed to send data over socket, %s", strerror(errno)); return ret; } return 0; } void set_display_lpm(int enable) { ALOGI("set_display_lpm state: %d", enable); if (enable) { ppdComm("foss:on"); } else { ppdComm("foss:off"); } } ================================================ FILE: power/display-helper.h ================================================ /* * 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. */ #ifndef POWER_LIBPERFMGR_DISPLAY_HELPER_H_ #define POWER_LIBPERFMGR_DISPLAY_HELPER_H_ enum display_lpm_state { DISPLAY_LPM_OFF = 0, DISPLAY_LPM_ON, DISPLAY_LPM_UNKNOWN, }; void set_display_lpm(int enable); #endif // POWER_LIBPERFMGR_DISPLAY_HELPER_H_ ================================================ FILE: power/service.cpp ================================================ /* * 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.power@1.3-service.mata-libperfmgr" #include #include #include "Power.h" using android::OK; using android::sp; using android::status_t; // libhwbinder: using android::hardware::configureRpcThreadpool; using android::hardware::joinRpcThreadpool; // Generated HIDL files using android::hardware::power::V1_3::IPower; using android::hardware::power::V1_3::implementation::Power; int main(int /* argc */, char ** /* argv */) { ALOGI("Power HAL Service 1.3 for Mata is starting."); android::sp service = new Power(); if (service == nullptr) { ALOGE("Can not create an instance of Power HAL Iface, exiting."); return 1; } configureRpcThreadpool(1, true /*callerWillJoin*/); status_t status = service->registerAsService(); if (status != OK) { ALOGE("Could not register service for Power HAL Iface (%d), exiting.", status); return 1; } ALOGI("Power Service is ready"); joinRpcThreadpool(); // In normal operation, we don't expect the thread pool to exit ALOGE("Power Service is shutting down"); return 1; } ================================================ FILE: powerhint.json ================================================ { "Nodes": [ { "Name": "CPULittleClusterMaxFreq", "Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq", "Values": [ "1900800", "1555200", "1478400", "1248000" ], "DefaultIndex": 0, "ResetOnInit": true }, { "Name": "CPULittleClusterMinFreq", "Path": "/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq", "Values": [ "1900800", "1555200", "1512000", "1478400", "1134000", "0" ], "ResetOnInit": true }, { "Name": "CPUBigClusterMaxFreq", "Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq", "Values": [ "2457600", "1958400", "1574400", "1344000", "1267200" ], "DefaultIndex": 0, "ResetOnInit": true }, { "Name": "CPUBigClusterMinFreq", "Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq", "Values": [ "2457600", "1574400", "1420800", "1344000", "1132800", "0" ], "ResetOnInit": true }, { "Name": "GPUMaxFreq", "Path": "/sys/class/kgsl/kgsl-3d0/devfreq/max_freq", "Values": [ "342000000", "414000000", "515000000", "710000000" ], "ResetOnInit": true }, { "Name": "GPUMinFreq", "Path": "/sys/class/kgsl/kgsl-3d0/devfreq/min_freq", "Values": [ "515000000", "414000000", "257000000" ], "ResetOnInit": true }, { "Name": "GPUBusMinFreq", "Path": "/sys/class/devfreq/soc:qcom,gpubw/min_freq", "Values": [ "11863", "7759", "0" ], "ResetOnInit": true }, { "Name": "CPUBWHystTriggerCount", "Path": "/sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/hyst_trigger_count", "Values": [ "0", "3" ] }, { "Name": "CPUBWHistMemory", "Path": "/sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/hist_memory", "Values": [ "0", "20" ] }, { "Name": "CPUBWHystLength", "Path": "/sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/bw_hwmon/hyst_length", "Values": [ "0", "10" ] }, { "Name": "CPUBWMinFreq", "Path": "/sys/devices/soc/soc:qcom,cpubw/devfreq/soc:qcom,cpubw/min_freq", "Values": [ "13763", "5195", "1525", "762" ], "ResetOnInit": true }, { "Name": "PMQoSCpuDmaLatency", "Path": "/dev/cpu_dma_latency", "Values": [ "44", "100" ], "HoldFd": true }, { "Name": "PowerHALMainState", "Path": "vendor.powerhal.state", "Values": [ "CAMERA_STREAMING", "VR_SUSTAINED_PERFORMANCE", "SUSTAINED_PERFORMANCE", "VR_MODE", "" ], "Type": "Property" }, { "Name": "PowerHALAudioState", "Path": "vendor.powerhal.audio", "Values": [ "AUDIO_LOW_LATENCY", "" ], "Type": "Property" }, { "Name": "PowerHALRenderingState", "Path": "vendor.powerhal.rendering", "Values": [ "EXPENSIVE_RENDERING", "" ], "Type": "Property" } ], "Actions": [ { "PowerHint": "SUSTAINED_PERFORMANCE", "Node": "PowerHALMainState", "Duration": 0, "Value": "SUSTAINED_PERFORMANCE" }, { "PowerHint": "SUSTAINED_PERFORMANCE", "Node": "CPUBigClusterMaxFreq", "Duration": 0, "Value": "1267200" }, { "PowerHint": "SUSTAINED_PERFORMANCE", "Node": "CPULittleClusterMaxFreq", "Duration": 0, "Value": "1248000" }, { "PowerHint": "SUSTAINED_PERFORMANCE", "Node": "GPUMaxFreq", "Duration": 0, "Value": "342000000" }, { "PowerHint": "INTERACTION", "Node": "CPUBigClusterMinFreq", "Duration": 0, "Value": "1132800" }, { "PowerHint": "INTERACTION", "Node": "CPULittleClusterMinFreq", "Duration": 0, "Value": "1134000" }, { "PowerHint": "INTERACTION", "Node": "CPUBWHystTriggerCount", "Duration": 0, "Value": "0" }, { "PowerHint": "INTERACTION", "Node": "CPUBWHystLength", "Duration": 0, "Value": "0" }, { "PowerHint": "INTERACTION", "Node": "CPUBWHistMemory", "Duration": 0, "Value": "0" }, { "PowerHint": "INTERACTION", "Node": "CPUBWMinFreq", "Duration": 0, "Value": "5195" }, { "PowerHint": "LAUNCH", "Node": "CPUBigClusterMaxFreq", "Duration": 5000, "Value": "2457600" }, { "PowerHint": "LAUNCH", "Node": "CPUBigClusterMinFreq", "Duration": 5000, "Value": "2457600" }, { "PowerHint": "LAUNCH", "Node": "CPULittleClusterMinFreq", "Duration": 5000, "Value": "1900800" }, { "PowerHint": "LAUNCH", "Node": "PMQoSCpuDmaLatency", "Duration": 5000, "Value": "44" }, { "PowerHint": "LAUNCH", "Node": "CPUBWHystTriggerCount", "Duration": 5000, "Value": "0" }, { "PowerHint": "LAUNCH", "Node": "CPUBWHystLength", "Duration": 5000, "Value": "0" }, { "PowerHint": "LAUNCH", "Node": "CPUBWHistMemory", "Duration": 5000, "Value": "0" }, { "PowerHint": "LAUNCH", "Node": "CPUBWMinFreq", "Duration": 5000, "Value": "13763" }, { "PowerHint": "CAMERA_LAUNCH", "Node": "CPUBigClusterMaxFreq", "Duration": 1000, "Value": "2457600" }, { "PowerHint": "CAMERA_LAUNCH", "Node": "CPUBigClusterMinFreq", "Duration": 1000, "Value": "2457600" }, { "PowerHint": "CAMERA_LAUNCH", "Node": "CPULittleClusterMinFreq", "Duration": 1000, "Value": "1900800" }, { "PowerHint": "CAMERA_LAUNCH", "Node": "PMQoSCpuDmaLatency", "Duration": 1000, "Value": "44" }, { "PowerHint": "CAMERA_STREAMING", "Node": "PowerHALMainState", "Duration": 0, "Value": "CAMERA_STREAMING" }, { "PowerHint": "CAMERA_STREAMING", "Node": "CPUBigClusterMaxFreq", "Duration": 0, "Value": "1958400" }, { "PowerHint": "CAMERA_SHOT", "Node": "CPUBigClusterMaxFreq", "Duration": 1000, "Value": "2457600" }, { "PowerHint": "CAMERA_SHOT", "Node": "CPUBigClusterMinFreq", "Duration": 1000, "Value": "2457600" }, { "PowerHint": "CAMERA_SHOT", "Node": "CPULittleClusterMinFreq", "Duration": 1000, "Value": "1900800" }, { "PowerHint": "CAMERA_SHOT", "Node": "PMQoSCpuDmaLatency", "Duration": 1000, "Value": "44" }, { "PowerHint": "CAMERA_SHOT", "Node": "CPUBWHystTriggerCount", "Duration": 1000, "Value": "0" }, { "PowerHint": "CAMERA_SHOT", "Node": "CPUBWHystLength", "Duration": 1000, "Value": "0" }, { "PowerHint": "CAMERA_SHOT", "Node": "CPUBWHistMemory", "Duration": 1000, "Value": "0" }, { "PowerHint": "CAMERA_SHOT", "Node": "CPUBWMinFreq", "Duration": 1000, "Value": "13763" }, { "PowerHint": "AUDIO_STREAMING", "Node": "CPUBigClusterMinFreq", "Duration": 2000, "Value": "1420800" }, { "PowerHint": "AUDIO_STREAMING", "Node": "PMQoSCpuDmaLatency", "Duration": 2000, "Value": "44" }, { "PowerHint": "AUDIO_LOW_LATENCY", "Node": "PowerHALAudioState", "Duration": 0, "Value": "AUDIO_LOW_LATENCY" }, { "PowerHint": "AUDIO_LOW_LATENCY", "Node": "PMQoSCpuDmaLatency", "Duration": 0, "Value": "44" }, { "PowerHint": "EXPENSIVE_RENDERING", "Node": "CPULittleClusterMinFreq", "Duration": 0, "Value": "0" } ] } ================================================ FILE: powerhint.xml ================================================ ================================================ FILE: privapp-permissions-mata.xml ================================================ ================================================ FILE: qca_cld3_wlan.ko ================================================ [File too large to display: 10.0 MB] ================================================ FILE: qti_whitelist.xml ================================================ ================================================ FILE: radio/filesmap ================================================ # Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # * Neither the name of The Linux Foundation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # filename partition NON-HLOS.bin /dev/block/bootdevice/by-name/modem BTFM.bin /dev/block/bootdevice/by-name/bluetooth sbl1.mbn /dev/block/bootdevice/by-name/sbl1 tz.mbn /dev/block/bootdevice/by-name/tz rpm.mbn /dev/block/bootdevice/by-name/rpm emmc_appsboot.mbn /dev/block/bootdevice/by-name/aboot hyp.mbn /dev/block/bootdevice/by-name/hyp pmic.mbn /dev/block/bootdevice/by-name/pmic cmnlib.mbn /dev/block/bootdevice/by-name/cmnlib cmnlib64.mbn /dev/block/bootdevice/by-name/cmnlib64 keymaster.mbn /dev/block/bootdevice/by-name/keymaster xbl.elf /dev/block/bootdevice/by-name/xbl lksecapp.mbn /dev/block/bootdevice/by-name/lksecapp devcfg.mbn /dev/block/bootdevice/by-name/devcfg adspso.mbn /dev/block/bootdevice/by-name/dsp abl.elf /dev/block/bootdevice/by-name/abl # filename + .bak backup partition sbl1.mbn.bak /dev/block/bootdevice/by-name/sbl1bak tz.mbn.bak /dev/block/bootdevice/by-name/tzbak rpm.mbn.bak /dev/block/bootdevice/by-name/rpmbak emmc_appsboot.mbn.bak /dev/block/bootdevice/by-name/abootbak hyp.mbn.bak /dev/block/bootdevice/by-name/hypbak pmic.mbn.bak /dev/block/bootdevice/by-name/pmicbak cmnlib.mbn.bak /dev/block/bootdevice/by-name/cmnlibbak cmnlib64.mbn.bak /dev/block/bootdevice/by-name/cmnlib64bak keymaster.mbn.bak /dev/block/bootdevice/by-name/keymasterbak xbl.elf.bak /dev/block/bootdevice/by-name/xblbak lksecapp.mbn.bak /dev/block/bootdevice/by-name/lksecappbak devcfg.mbn.bak /dev/block/bootdevice/by-name/devcfgbak abl.elf.bak /dev/block/bootdevice/by-name/ablbak # For multiple file firmware images that differ from *.mbn and *.bin # you can specify filename.* to direct all files to the same location. # For example for modem.mdt, modem.b00, modem.b01,... modem.bxx files # writting 'modem.* location' will direct all files to 'location'. # If still some files need to go to different location give the full # file name also, for example 'modem.b01 other_location' # filename location modem.* /dev/block/bootdevice/by-name/modem wcnss.* /dev/block/bootdevice/by-name/modem widevine.* /dev/block/bootdevice/by-name/modem adsp.* /dev/block/bootdevice/by-name/modem ================================================ FILE: rootdir/Android.mk ================================================ LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) # files that live under device/qcom/common/rootdir/etc/ include $(CLEAR_VARS) LOCAL_MODULE := init.crda.sh LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := etc/init.crda.sh LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) include $(BUILD_PREBUILT) include $(CLEAR_VARS) LOCAL_MODULE := init.mata.rc LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := etc/init.mata.rc LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw include $(BUILD_PREBUILT) include $(CLEAR_VARS) LOCAL_MODULE := init.recovery.mata.rc LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := etc/init.recovery.mata.rc LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw include $(BUILD_PREBUILT) include $(CLEAR_VARS) LOCAL_MODULE := init.radio.sh LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := etc/init.radio.sh LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) include $(BUILD_PREBUILT) include $(CLEAR_VARS) LOCAL_MODULE := init.qcom.usb.rc LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := etc/init.qcom.usb.rc LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw include $(BUILD_PREBUILT) include $(CLEAR_VARS) LOCAL_MODULE := init.msm.usb.configfs.rc LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := etc/init.msm.usb.configfs.rc LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw include $(BUILD_PREBUILT) include $(CLEAR_VARS) LOCAL_MODULE := init.qcom.ssr.sh LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := ETC LOCAL_SRC_FILES := etc/init.qcom.ssr.sh LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES) include $(BUILD_PREBUILT) ================================================ FILE: rootdir/etc/hbtp_cmd.sh ================================================ #!/vendor/bin/sh export PATH=$PATH:/vendor/bin if [ "$1" == "grip" ]; then if [ "$2" == "off" ]; then hbtp_daemon tool sendCommand enableGripRejection 0 else hbtp_daemon tool sendCommand enableGripRejection 1 fi elif [ "$1" == "smoothness" ]; then hbtp_daemon tool sendCommand setSmoothing $2 fi ================================================ FILE: rootdir/etc/init.crda.sh ================================================ #! /vendor/bin/sh # Copyright (c) 2012, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of The Linux Foundation nor # the names of its contributors may be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # country=`getprop wlan.crda.country` # crda takes input in COUNTRY environment variable if [ $country != "" ] then COUNTRY="$country" /system/bin/crda fi ================================================ FILE: rootdir/etc/init.mata.diag.rc ================================================ on property:debug.sys.qxdm_cfg_file=* setprop persist.sys.qxdm_cfg_file ${debug.sys.qxdm_cfg_file} #persist.sys.logging #where # 0 = none- ie lock out ports (prod default) # 1 = on device logging # 2 = PC logging (handled in diag.rc) on property:persist.sys.logging=0 setprop persist.sys.qxdm_logs 0 on property:persist.sys.logging=1 setprop persist.sys.qxdm_logs 1 on property:persist.sys.logging=2 setprop persist.sys.qxdm_logs 0 on property:persist.sys.qxdm_logs=1 && property:sys.boot_completed=1 start mdlog_start on property:persist.sys.qxdm_logs=0 && property:sys.boot_completed=1 start mdlog_stop # QXDM logs service mdlog_start /vendor/bin/diag_mdlog -f ${persist.sys.qxdm_cfg_file:-/etc/Default_Log_Cfg.cfg} -c class late_start user system group system diag sdcard_rw sdcard_r media_rw oem_2901 disabled oneshot service mdlog_stop /vendor/bin/diag_mdlog -k class late_start user system group system diag sdcard_rw sdcard_r media_rw oem_2901 disabled oneshot ================================================ FILE: rootdir/etc/init.mata.rc ================================================ # Copyright (c) 2009-2012, 2014-2017, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of The Linux Foundation nor # the names of its contributors may be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # import /vendor/etc/init/hw/init.qcom.usb.rc import /vendor/etc/init/hw/init.msm.usb.configfs.rc import /vendor/etc/init/hw/init.mata.diag.rc on charger setprop persist.sys.usb.config mass_storage start hvdcp_opti setprop sys.usb.configfs 1 load_system_props write /sys/class/leds/lcd-backlight/brightness 80 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/cpu6/online 0 write /sys/devices/system/cpu/cpu7/online 0 write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor powersave write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor powersave write /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor powersave write /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor powersave write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor powersave write /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor powersave write /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor powersave write /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor powersave write /sys/class/sidecar/enable_control 0 on early-init mount debugfs debugfs /sys/kernel/debug chmod 0755 /sys/kernel/debug chown root system /dev/kmsg chmod 0620 /dev/kmsg mkdir /firmware 0771 system system symlink /data/tombstones /tombstones mkdir /dsp 0771 media media write /proc/sys/kernel/sched_boost 1 on init # Disable UFS powersaving write /sys/devices/soc/${ro.boot.bootdevice}/clkscale_enable 0 write /sys/devices/soc/${ro.boot.bootdevice}/clkgate_enable 0 write /sys/devices/soc/${ro.boot.bootdevice}/hibern8_on_idle_enable 0 write /sys/module/lpm_levels/parameters/sleep_disabled Y # Set permissions for persist partition mkdir /mnt/vendor/persist 0771 root system # Support legacy paths symlink /sdcard /mnt/sdcard symlink /sdcard /storage/sdcard0 # Create cgroup mount point for memory mkdir /sys/fs/cgroup/memory/bg 0750 root system write /sys/fs/cgroup/memory/bg/memory.swappiness 140 write /sys/fs/cgroup/memory/bg/memory.move_charge_at_immigrate 1 chown root system /sys/fs/cgroup/memory/bg/tasks chmod 0660 /sys/fs/cgroup/memory/bg/tasks # The settings for the governor will be set in post-boot script # configure governor settings for little cluster write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "interactive" # configure governor settings for big cluster write /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor "interactive" write /dev/stune/foreground/schedtune.sched_boost_no_override 1 write /dev/stune/top-app/schedtune.sched_boost_no_override 1 write /dev/stune/schedtune.colocate 0 write /dev/stune/background/schedtune.colocate 0 write /dev/stune/system-background/schedtune.colocate 0 write /dev/stune/foreground/schedtune.colocate 0 write /dev/stune/top-app/schedtune.colocate 1 write /sys/module/qpnp_rtc/parameters/poweron_alarm 1 # Setup all the sub-system as related write /sys/bus/msm_subsys/devices/subsys0/restart_level RELATED write /sys/bus/msm_subsys/devices/subsys1/restart_level RELATED write /sys/bus/msm_subsys/devices/subsys2/restart_level RELATED write /sys/bus/msm_subsys/devices/subsys3/restart_level RELATED write /sys/bus/msm_subsys/devices/subsys4/restart_level RELATED write /sys/bus/msm_subsys/devices/subsys5/restart_level RELATED write /sys/bus/msm_subsys/devices/subsys6/restart_level RELATED # Set the right permission for pstore chown system log /sys/fs/pstore # ZRAM setup write /sys/block/zram0/comp_algorithm lz4 write /proc/sys/vm/page-cluster 0 on early-boot # set RLIMIT_MEMLOCK to 64MB setrlimit 8 67108864 67108864 # Allow subsystem (modem etc) debugging write /sys/kernel/boot_adsp/boot 1 write /sys/kernel/boot_slpi/boot 1 exec u:r:qti_init_shell:s0 -- /vendor/bin/init.qcom.early_boot.sh # Update dm-verity state and set partition.*.verified properties verity_update_state # Permission for Vibrator chown system system /sys/class/timed_output/vibrator/vmax_mv on boot chown system system /sys/class/leds/red/blink chown system system /sys/class/leds/green/blink chown system system /sys/class/leds/blue/blink start rmt_storage start rfs_access insmod /vendor/lib/modules/qca_cld3_wlan.ko chown system shell /sys/class/sidecar/power_control chown bluetooth bluetooth /sys/module/bluetooth_power/parameters/power chown bluetooth net_bt /sys/class/rfkill/rfkill0/type chown bluetooth net_bt /sys/class/rfkill/rfkill0/state chown bluetooth bluetooth /proc/bluetooth/sleep/proto chown bluetooth bluetooth /sys/module/hci_uart/parameters/ath_lpm chown bluetooth bluetooth /sys/module/hci_uart/parameters/ath_btwrite chown system system /sys/module/sco/parameters/disable_esco chown bluetooth bluetooth /sys/module/hci_smd/parameters/hcismd_set chown system system /sys/module/msm_core/parameters/polling_interval chown system system /sys/module/msm_core/parameters/disabled chown system system /sys/kernel/debug/msm_core/enable chown system system /sys/kernel/debug/msm_core/ptable chown system system /sys/kernel/boot_slpi/ssr chown system system /sys/module/radio_iris_transport/parameters/fmsmd_set # For tracing support in hub. chown system shell /sys/kernel/debug/tracing/trace chown system shell /sys/kernel/debug/tracing/buffer_size_kb chown system shell /sys/kernel/debug/tracing/tracing_on chown system shell /sys/kernel/debug/tracing/trace_clock chown system shell /sys/kernel/debug/tracing/options/overwrite chown system shell /sys/kernel/debug/tracing/events/cpufreq_interactive/enable chown system shell /sys/kernel/debug/tracing/events/binder/binder_transaction/enable chown system shell /sys/kernel/debug/tracing/events/binder/binder_transaction_received/enable chmod 0660 /sys/module/bluetooth_power/parameters/power chmod 0660 /sys/module/hci_smd/parameters/hcismd_set chmod 0660 /sys/module/radio_iris_transport/parameters/fmsmd_set chmod 0660 /sys/class/rfkill/rfkill0/state chmod 0660 /proc/bluetooth/sleep/proto chown bluetooth net_bt /dev/ttyHS0 chmod 0660 /sys/module/hci_uart/parameters/ath_lpm chmod 0660 /sys/module/hci_uart/parameters/ath_btwrite chmod 0660 /dev/ttyHS0 chown bluetooth bluetooth /sys/devices/platform/msm_serial_hs.0/clock chmod 0660 /sys/devices/platform/msm_serial_hs.0/clock chmod 0660 /dev/ttyHS2 chown bluetooth bluetooth /dev/ttyHS2 chown bluetooth net_bt /sys/class/rfkill/rfkill0/device/extldo chmod 0660 /sys/class/rfkill/rfkill0/device/extldo #Create QMUX deamon socket area mkdir /dev/socket/qmux_radio 0770 radio radio chmod 2770 /dev/socket/qmux_radio mkdir /dev/socket/qmux_audio 0770 media audio chmod 2770 /dev/socket/qmux_audio mkdir /dev/socket/qmux_bluetooth 0770 bluetooth bluetooth chmod 2770 /dev/socket/qmux_bluetooth mkdir /dev/socket/qmux_gps 0770 gps gps chmod 2770 /dev/socket/qmux_gps mkdir /mnt/vendor/persist/drm 0770 system system mkdir /mnt/vendor/persist/bluetooth 0770 bluetooth system mkdir /mnt/vendor/persist/misc 0770 system system mkdir /mnt/vendor/persist/alarm 0770 system system mkdir /mnt/vendor/persist/time 0770 system system mkdir /mnt/vendor/persist/secnvm 0770 system system mkdir /mnt/vendor/persist/report 0770 shell shell #Create NETMGR daemon socket area mkdir /dev/socket/netmgr 0750 radio radio setprop wifi.interface wlan0 # Define TCP buffer sizes for various networks # ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax, setprop net.tcp.buffersize.wifi 524288,2097152,4194304,262144,524288,1048576 setprop ro.telephony.call_ring.multiple false #enable camera read sensors data setprop persist.camera.gyro.disable 0 #Remove SUID bit for iproute2 ip tool chmod 0755 /system/bin/ip chmod 0444 /sys/devices/platform/msm_hsusb/gadget/usb_state # Define TCP buffer sizes for various networks # ReadMin, ReadInitial, ReadMax, WriteMin, WriteInitial, WriteMax, setprop net.tcp.buffersize.default 4096,87380,524288,4096,16384,110208 setprop net.tcp.buffersize.lte 2097152,4194304,8388608,262144,524288,1048576 setprop net.tcp.buffersize.umts 4094,87380,110208,4096,16384,110208 setprop net.tcp.buffersize.hspa 4094,87380,1220608,4096,16384,1220608 setprop net.tcp.buffersize.hsupa 4094,87380,1220608,4096,16384,1220608 setprop net.tcp.buffersize.hsdpa 4094,87380,1220608,4096,16384,1220608 setprop net.tcp.buffersize.hspap 4094,87380,1220608,4096,16384,1220608 setprop net.tcp.buffersize.edge 4093,26280,35040,4096,16384,35040 setprop net.tcp.buffersize.gprs 4092,8760,11680,4096,8760,11680 setprop net.tcp.buffersize.evdo 4094,87380,524288,4096,16384,262144 setprop net.tcp.2g_init_rwnd 10 # Assign TCP buffer thresholds to be ceiling value of technology maximums # Increased technology maximums should be reflected here. write /proc/sys/net/core/rmem_max 8388608 write /proc/sys/net/core/wmem_max 8388608 # To prevent out of order acknowledgements from making # connection tracking to treat them as not belonging to # the connection they belong to. # Otherwise, a weird issue happens in which some long # connections on high-throughput links get dropped when # an ack packet comes out of order write /proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal 1 # Set the console loglevel to < KERN_INFO # Set the default message loglevel to KERN_INFO write /proc/sys/kernel/printk "6 6 1 7" # bond0 used by FST Manager chown wifi wifi /sys/class/net/bond0/bonding/queue_id # Allow access to emmc rawdump block partition and dload sysfs node chown root system /sys/kernel/dload/emmc_dload chmod 0660 /sys/kernel/dload/emmc_dload chown root system /sys/kernel/dload/dload_mode chmod 0660 /sys/kernel/dload/dload_mode # Create directory used for display mkdir /mnt/vendor/persist/display 0770 system graphics # Create vpp directory mkdir /mnt/vendor/persist/vpp 0770 media media on fs wait /dev/block/platform/soc/1da4000.ufshc symlink /dev/block/platform/soc/1da4000.ufshc /dev/block/bootdevice mount_all /vendor/etc/fstab.mata # Keeping following partitions outside fstab file. As user may not have # these partition flashed on the device. Failure to mount any partition in fstab file # results in failure to launch late-start class. mkdir /mnt/vendor/persist/data 0700 system system mkdir /mnt/vendor/persist/display 0770 system graphics mkdir /mnt/vendor/persist/rfs 0770 root system mkdir /mnt/vendor/persist/hlos_rfs 0770 root system chmod 0770 /mnt/vendor/persist/rfs chmod 0770 /mnt/vendor/persist/rfs/shared chown system system /mnt/vendor/persist/rfs/shared chmod 0770 /mnt/vendor/persist/rfs/msm chown system system /mnt/vendor/persist/rfs/msm chmod 0770 /mnt/vendor/persist/rfs/msm/adsp chown system system /mnt/vendor/persist/rfs/msm/adsp chmod 0770 /mnt/vendor/persist/rfs/msm/mpss chown system system /mnt/vendor/persist/rfs/msm/mpss mkdir /mnt/vendor/persist/rfs/msm/slpi 0770 system system chmod 0770 /mnt/vendor/persist/rfs/mdm chown system system /mnt/vendor/persist/rfs/mdm chmod 0770 /mnt/vendor/persist/rfs/mdm/adsp chown system system /mnt/vendor/persist/rfs/mdm/adsp chmod 0770 /mnt/vendor/persist/rfs/mdm/mpss chown system system /mnt/vendor/persist/rfs/mdm/mpss mkdir /mnt/vendor/persist/rfs/mdm/slpi 0770 system system chmod 0770 /mnt/vendor/persist/rfs/mdm/sparrow chown system system /mnt/vendor/persist/rfs/mdm/sparrow mkdir /mnt/vendor/persist/rfs/mdm/tn 0770 system system chown system system /mnt/vendor/persist/rfs/apq chmod 0770 /mnt/vendor/persist/rfs/apq chown system system /mnt/vendor/persist/rfs/apq/gnss chmod 0770 /mnt/vendor/persist/rfs/apq/gnss chmod 0770 /mnt/vendor/persist/hlos_rfs restorecon_recursive --force /mnt/vendor/persist mkdir /mnt/vendor/persist/data 0700 system system chown system system /mnt/vendor/persist/rfs/shared chown system system /mnt/vendor/persist/rfs/msm chown system system /mnt/vendor/persist/rfs/msm/adsp chown system system /mnt/vendor/persist/rfs/msm/mpss chown system system /mnt/vendor/persist/rfs/msm/slpi chown system system /mnt/vendor/persist/rfs/mdm chown system system /mnt/vendor/persist/rfs/mdm/adsp chown system system /mnt/vendor/persist/rfs/mdm/mpss chown system system /mnt/vendor/persist/rfs/mdm/sparrow chown system system /mnt/vendor/persist/rfs/mdm/tn chown system system /mnt/vendor/persist/rfs/apq chown system system /mnt/vendor/persist/rfs/apq/gnss on post-fs chmod 0755 /sys/kernel/debug/tracing start qseecomd chmod 0664 /sys/devices/virtual/graphics/fb0/idle_time chown system graphics /sys/devices/virtual/graphics/fb0/idle_time write /sys/devices/virtual/graphics/fb0/idle_time 100 wait_for_prop vendor.sys.listeners.registered true write /dev/ipa 1 # msm specific files that need to be created on /data on post-fs-data chown system system /sys/devices/soc/soc:fpc,fpc1020/irq chown system system /sys/devices/soc/soc:fpc,fpc1020/wakeup_enable chown system system /sys/devices/soc/soc:fpc,fpc1020/hw_reset mkdir /data/tombstones 0771 system system mkdir /tombstones/modem 0771 system system mkdir /tombstones/lpass 0771 system system mkdir /tombstones/wcnss 0771 system system mkdir /tombstones/dsps 0771 system system mkdir /data/vendor/hbtp 0750 system system mkdir /data/misc/qvr 0770 system system mkdir /data/vendor/misc 01771 system system # Create directory used by display clients mkdir /data/vendor/display 0770 system graphics # Change lm related dirs mkdir /data/vendor/lm 0700 root root # Create directory used by media clients mkdir /data/vendor/media 0770 mediacodec media #Create directories for Fingerprint mkdir /data/vendor/misc/qti_fp 0770 system system mkdir /data/vendor/misc/qti_fp/bg_estimation 0770 system system mkdir /data/vendor/misc/qti_fp/calib_test 0770 system system mkdir /data/vendor/misc/qti_fp/database 0770 system system # create QDMA dropbox mkdir /data/vendor/qdmastats 0700 system system mkdir /data/vendor/qdma 0770 system system # Create directory for TZ Apps mkdir /data/misc/qsee 0770 system system # Create directory for apps access via QTEEConnector mkdir /data/vendor/qtee 0770 system system # Create directory for voiceprint mkdir /data/misc/qvop 0771 system system #Create folder for mm-qcamera-daemon mkdir /data/misc/camera 0770 camera camera mkdir /data/media 0770 media_rw media_rw chown media_rw media_rw /data/media #Create directory for tftp mkdir /data/vendor/tombstones 0771 system system mkdir /data/vendor/ramdump 0771 root system mkdir /data/misc/bluetooth 0770 bluetooth bluetooth mkdir /data/vendor/bluetooth 0770 bluetooth bluetooth mkdir /data/vendor/ramdump/bluetooth 0770 bluetooth bluetooth # Create the directories used by the Wireless subsystem mkdir /data/vendor/wifi 0770 wifi wifi mkdir /data/vendor/wifi/sockets 0770 wifi wifi mkdir /data/vendor/wifi/hostapd 0770 wifi wifi mkdir /data/vendor/wifi/hostapd/ctrl 0770 wifi wifi mkdir /data/vendor/wifi/wpa_supplicant 0770 wifi wifi mkdir /data/misc/wifi 0770 wifi wifi mkdir /data/vendor/wifi 0770 wifi wifi mkdir /data/vendor/wifi/wpa 0770 wifi wifi mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi mkdir /data/misc/dhcp 0777 dhcp dhcp chown dhcp dhcp /data/misc/dhcp # Setup sensors-related directories and permissions mkdir /mnt/vendor/persist/sensors 0775 chown root system /mnt/vendor/persist/sensors write /mnt/vendor/persist/sensors/sensors_settings 1 chown root system /mnt/vendor/persist/sensors/sensors_settings chmod 664 /mnt/vendor/persist/sensors/sensors_settings chown root system /mnt/vendor/persist/sensors/sns.reg chmod 664 /mnt/vendor/persist/sensors/sns.reg chown root system /dev/sensors chmod 660 /dev/sensors #create port-bridge log dir mkdir /data/vendor/port_bridge 0770 radio radio chmod 0770 /data/vendor/port_bridge #create netmgr log dir mkdir /data/vendor/netmgr 0770 radio radio chmod 0770 /data/vendor/netmgr # Create retail entries mkdir /data/preloads 0775 system system mkdir /data/preloads/media 0775 system system mkdir /data/preloads/demo 0775 system system mkdir /data/preloads/apps 0775 system system #create ipacm log dir mkdir /data/vendor/ipa 0770 radio radio chmod 0770 /data/vendor/ipa # Create the directories used by CnE subsystem mkdir /data/connectivity 0771 system system chown system system /data/connectivity # Create the directories used by DPM subsystem mkdir /data/dpm 0771 system system chown system system /data/dpm mkdir /data/dpm/nsrm 0771 system system chown system system /data/dpm/nsrm # Create directory used by audio subsystem mkdir /data/vendor/misc/audio 0770 audio audio # Create directory for audio delta files mkdir /data/vendor/misc/audio/acdbdata 0770 media audio mkdir /data/vendor/misc/audio/acdbdata/delta 0770 media audio # Create directory used by the DASH client mkdir /data/misc/dash 0770 media audio # Create directory for radio mkdir /data/vendor/radio 0770 system radio # Mounting of persist is moved to 'on emmc-fs' and 'on fs' sections # We chown/chmod /mnt/vendor/persist again so because mount is run as root + defaults chown root system /mnt/vendor/persist chmod 0771 /mnt/vendor/persist chown system system /mnt/vendor/persist/WCNSS_qcom_wlan_nv.bin #Create the symlink to qcn wpa_supplicant folder for ar6000 wpa_supplicant mkdir /data/system 0775 system system #Create directories for Location services mkdir /data/vendor/location 0770 gps gps mkdir /data/vendor/location/mq 0770 gps gps mkdir /data/vendor/location/xtwifi 0770 gps gps # migrating the GNSS hal to vendor requires this to be relabeled; the # directory itself is created by /vendor/bin/xtra-daemon chown gps gps /data/vendor/location/xtra chmod 0750 /data/vendor/location/xtra chown gps gps /data/vendor/location/xtra/socket_hal_xtra chmod 0660 /data/vendor/location/xtra/socket_hal_xtra chown gps gps /data/vendor/location/xtra/xtra.sqlite #Create directory from IMS services mkdir /data/shared 0755 chown system system /data/shared #Create directory for FOTA mkdir /data/fota 0771 chown system system /data/fota #Create directory for hostapd mkdir /data/hostapd 0770 system wifi # Create /data/vendor/time folder for time-services mkdir /data/vendor/time/ 0700 system system mkdir /data/vendor/audio/ 0770 media audio # Create a folder for audio delta files mkdir /data/vendor/audio/acdbdata 0770 media audio mkdir /data/vendor/audio/acdbdata/delta 0770 media audio setprop vold.post_fs_data_done 1 #Create PERFD deamon related dirs mkdir /data/vendor/perfd 0770 root system chmod 2770 /data/vendor/perfd rm /data/vendor/perfd/default_values # NFC local data and nfcee xml storage mkdir /data/nfc 0770 nfc nfc mkdir /data/nfc/param 0770 nfc nfc mkdir /data/vendor/nfc 0770 nfc nfc #Create IOP deamon related dirs mkdir /data/vendor/iop 0770 root system # Mark the copy complete flag to not completed write /data/vendor/radio/copy_complete 0 chown radio radio /data/vendor/radio/copy_complete chmod 0660 /data/vendor/radio/copy_complete # copy prebuilt qcril.db files always copy /vendor/radio/qcril_database/qcril.db /data/vendor/radio/qcril_prebuilt.db chown radio radio /data/vendor/radio/qcril_prebuilt.db chmod 0660 /data/vendor/radio/qcril_prebuilt.db # File flags for prebuilt ril db file write /data/vendor/radio/prebuilt_db_support 1 chown radio radio /data/vendor/radio/prebuilt_db_support chmod 0400 /data/vendor/radio/prebuilt_db_support write /data/vendor/radio/db_check_done 0 chown radio radio /data/vendor/radio/db_check_done chmod 0660 /data/vendor/radio/db_check_done #Create SWAP related dirs mkdir /data/system/swap 0770 root system chmod 2770 /data/system/swap # set aggressive read ahead for dm-0 and dm-1 during boot up write /sys/block/dm-0/queue/read_ahead_kb 2048 write /sys/block/dm-1/queue/read_ahead_kb 2048 # Create vpp directory mkdir /data/vendor/vpp 0770 media media # Create directory to backup kernel panic logs mkdir /data/misc/pstore 0770 system system # Change permission for directory that stores trace logs chown system shell /data/misc/trace start ipacm-diag start qti start netmgrd start port-bridge start mata_provision service ssr_setup /vendor/bin/ssr_setup oneshot disabled on property:debug.ftrace.file=* chmod 0660 ${debug.ftrace.file} chown system shell ${debug.ftrace.file} on property:persist.sys.ssr.enable_debug=* write /sys/module/subsystem_restart/parameters/enable_debug ${persist.sys.ssr.enable_debug} on property:persist.sys.mba_boot_timeout=* write /sys/module/pil_msa/parameters/pbl_mba_boot_timeout_ms ${persist.sys.mba_boot_timeout} on property:persist.sys.modem_auth_timeout=* write /sys/module/pil_msa/parameters/modem_auth_timeout_ms ${persist.sys.modem_auth_timeout} on property:persist.sys.pil_proxy_timeout=* write /sys/module/peripheral_loader/parameters/proxy_timeout_ms ${persist.sys.pil_proxy_timeout} on property:persist.sys.ssr.restart_level=* start ssr_setup on property:sys.boot_completed=1 write /dev/kmsg "Boot completed " # Enable UFS powersaving write /sys/devices/soc/${ro.boot.bootdevice}/clkscale_enable 1 write /sys/devices/soc/${ro.boot.bootdevice}/clkgate_enable 1 write /sys/devices/soc/${ro.boot.bootdevice}/hibern8_on_idle_enable 1 write /sys/module/lpm_levels/parameters/sleep_disabled N # Enable swap swapon_all /vendor/etc/fstab.mata #Reset read ahead for dm-0 and dm-1 to 512kb write /sys/block/dm-0/queue/read_ahead_kb 512 write /sys/block/dm-1/queue/read_ahead_kb 512 #WDSP FW boot sysfs node used by STHAL chown media audio /sys/kernel/wcd_cpe0/fw_name start qcom-post-boot write /dev/cpuset/top-app/cpus 0-7 write /dev/cpuset/foreground/boost/cpus 0-3,6-7 write /dev/cpuset/foreground/cpus 0-3,6-7 write /dev/cpuset/background/cpus 0-1 write /dev/cpuset/system-background/cpus 0-3 # Enable PowerHAL hint processing setprop vendor.powerhal.init 1 on property:persist.radio.atfwd.start=false stop atfwd on property:radio.atfwd.start=false stop atfwd # corefile limit on property:persist.debug.trace=1 mkdir /data/core 0777 root root write /proc/sys/kernel/core_pattern "/data/core/%E.%p.%e" on property:init.svc.wpa_supplicant=stopped stop dhcpcd on property:bluetooth.sap.status=running start bt-sap on property:bluetooth.sap.status=stopped stop bt-sap on property:bluetooth.dun.status=running start bt-dun on property:bluetooth.dun.status=stopped stop bt-dun on property:bluetooth.startbtsnoop=true start btsnoop on property:bluetooth.startbtsnoop=false stop btsnoop on property:bluetooth.startbtlogger=true start bt_logger on property:bluetooth.startbtlogger=false stop bt_logger on property:vold.decrypt=trigger_restart_framework start ipacm-diag start qti start netmgrd start port-bridge start wcnss-service on property:persist.env.fastdorm.enabled=true setprop persist.radio.data_no_toggle 1 service cnd /vendor/bin/cnd class main user system group system wifi inet radio wakelock net_admin service irsc_util /vendor/bin/irsc_util "/vendor/etc/sec_config" class core user root oneshot service rmt_storage /vendor/bin/rmt_storage class core user root shutdown critical ioprio rt 0 service tftp_server /vendor/bin/tftp_server class core user root on property:wc_transport.start_hci=true start start_hci_filter on property:wc_transport.start_hci=false stop start_hci_filter service start_hci_filter /vendor/bin/wcnss_filter class late_start user bluetooth group bluetooth diag system wakelock disabled service bt-dun /system/bin/dun-server /dev/smd7 /dev/rfcomm0 class late_start user bluetooth group bluetooth net_bt_admin inet disabled oneshot service bt-sap /system/bin/sapd 15 user bluetooth group bluetooth net_bt_admin class late_start disabled oneshot service btsnoop /system/bin/btsnoop user bluetooth group bluetooth net_bt_admin sdcard_rw sdcard_r media_rw class late_start disabled oneshot service bt_logger /system/bin/bt_logger user bluetooth group bluetooth net_bt_admin sdcard_rw sdcard_r media_rw class late_start disabled oneshot service port-bridge /vendor/bin/port-bridge class main user radio group radio system inet disabled oneshot service qmiproxy /system/bin/qmiproxy class main user radio group radio diag disabled service netmgrd /vendor/bin/netmgrd class main disabled service ipacm-diag /vendor/bin/ipacm-diag class main user radio socket ipacm_log_file dgram 660 radio radio group radio diag disabled service qti /vendor/bin/qti class main user radio group radio net_raw diag usb net_admin disabled service btaddr_extract /vendor/bin/btaddr_extract class core user bluetooth group system oneshot service sensors /vendor/bin/sensors.qcom class core user system group system # Grants the ability for this daemon to bind IPC router ports so it can # register QMI services capabilities NET_BIND_SERVICE on property:ro.use_data_netmgrd=false # netmgr not supported on specific target stop netmgrd # Adjust socket buffer to enlarge TCP receive window for high bandwidth # but only if ro.data.large_tcp_window_size property is set. on property:ro.data.large_tcp_window_size=true write /proc/sys/net/ipv4/tcp_adv_win_scale 2 on property:sys.sysctl.tcp_adv_win_scale=* write /proc/sys/net/ipv4/tcp_adv_win_scale ${sys.sysctl.tcp_adv_win_scale} service amp_init /vendor/bin/amploader -i class late_start user root disabled oneshot service amp_load /vendor/bin/amploader -l 7000 class late_start user root disabled oneshot service amp_unload /vendor/bin/amploader -u class late_start user root disabled oneshot service wpa_supplicant /vendor/bin/hw/wpa_supplicant \ -O/data/vendor/wifi/wpa/sockets -puse_p2p_group_interface=1 -dd \ -e/data/misc/wifi/entropy.bin -g@android:wpa_wlan0 # we will start as root and wpa_supplicant will switch to user wifi # after setting up the capabilities required for WEXT # user wifi # group wifi inet keystore interface android.hardware.wifi.supplicant@1.0::ISupplicant default interface android.hardware.wifi.supplicant@1.1::ISupplicant default class main socket wpa_wlan0 dgram 660 wifi wifi disabled oneshot # FST Manager with hostapd (softap) - all settings inside ini file service fstman /vendor/bin/fstman -B -ddd -c /data/vendor/wifi/fstman.ini user wifi group wifi net_admin net_raw class main disabled oneshot # FST Manager with supplicant - connect to supplicant socket service fstman_wlan0 /vendor/bin/fstman -B -ddd -c /data/vendor/wifi/fstman.ini @android:wpa_wlan0 user wifi group wifi net_admin net_raw class main disabled oneshot on property:netd.fstman.start=true start fstman on property:netd.fstman.start=false stop fstman service dhcpcd_wlan0 /system/bin/dhcpcd -ABKLG class late_start disabled oneshot service dhcpcd_bond0 /system/bin/dhcpcd -ABKLG class late_start disabled oneshot service dhcpcd_p2p /system/bin/dhcpcd -ABKLG class late_start disabled oneshot service iprenew_wlan0 /system/bin/dhcpcd -n class late_start disabled oneshot service iprenew_bond0 /system/bin/dhcpcd -n class late_start disabled oneshot service iprenew_p2p /system/bin/dhcpcd -n class late_start disabled oneshot service ptt_socket_app /vendor/bin/ptt_socket_app -d class main user root group root oneshot service ptt_ffbm /vendor/bin/ptt_socket_app -f -d user root group root disabled oneshot service cnss-daemon /vendor/bin/cnss-daemon -n -l class late_start user system group system inet net_admin wifi capabilities NET_ADMIN on property:sys.shutdown.requested=* stop cnss-daemon service dhcpcd_bt-pan /system/bin/dhcpcd -BKLG class late_start disabled oneshot service iprenew_bt-pan /system/bin/dhcpcd -n class late_start disabled oneshot service dhcpcd_bnep0 /system/bin/dhcpcd -BKLG disabled oneshot service dhcpcd_bnep1 /system/bin/dhcpcd -BKLG disabled oneshot service dhcpcd_bnep2 /system/bin/dhcpcd -BKLG disabled oneshot service dhcpcd_bnep3 /system/bin/dhcpcd -BKLG disabled oneshot service dhcpcd_bnep4 /system/bin/dhcpcd -BKLG disabled oneshot service loc_launcher /vendor/bin/loc_launcher #loc_launcher will start as root and set its uid to gps class late_start group gps inet diag wifi on property:crypto.driver.load=1 insmod /system/lib/modules/qce.ko insmod /system/lib/modules/qcedev.ko service drmdiag /vendor/bin/drmdiagapp class late_start user root disabled oneshot on property:drmdiag.load=1 start drmdiag on property:drmdiag.load=0 stop drmdiag service init-radio-sh /vendor/bin/init.radio.sh class late_start user root oneshot service qcom-post-boot /vendor/bin/init.qcom.post_boot.sh class late_start user root disabled oneshot service wifi-crda /vendor/bin/init.crda.sh class late_start user root disabled oneshot service qvop-daemon /vendor/bin/qvop-daemon class late_start user system group system drmrpc service atfwd /vendor/bin/ATFWD-daemon class late_start user system group system radio service hostapd_fst /vendor/bin/hostapd -dd -g /data/vendor/wifi/hostapd/global /data/vendor/wifi/hostapd.conf class late_start user wifi group wifi inet keystore net_admin net_raw oneshot disabled service ims_regmanager /vendor/bin/exe-ims-regmanagerprocessnative class late_start group net_bt_admin inet radio wifi disabled on property:persist.ims.regmanager.mode=1 start ims_regmanager on property:ro.data.large_tcp_window_size=true # Adjust socket buffer to enlarge TCP receive window for high bandwidth (e.g. DO-RevB) write /proc/sys/net/ipv4/tcp_adv_win_scale 2 service battery_monitor /system/bin/battery_monitor user system group system disabled service ril-daemon2 /vendor/bin/hw/rild -c 2 class main socket rild2 stream 660 root radio socket rild-debug2 stream 660 radio system user radio disabled group radio cache inet misc audio sdcard_r sdcard_rw diag oem_2901 log capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW service ril-daemon3 /vendor/bin/hw/rild -c 3 class main socket rild3 stream 660 root radio socket rild-debug3 stream 660 radio system user radio disabled group radio cache inet misc audio sdcard_r sdcard_rw diag oem_2901 log capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW service profiler_daemon /system/bin/profiler_daemon class late_start user root group root disabled service charger /charger class charger group system graphics input seclabel u:r:charger:s0 service ssr_diag /vendor/bin/ssr_diag class late_start user system group system disabled service hvdcp /system/bin/hvdcp class core user root disabled on property:persist.usb.hvdcp.detect=true start hvdcp on property:persist.usb.hvdcp.detect=false stop hvdcp service charger_monitor /system/bin/charger_monitor user root group root disabled service qbcharger /charger -m 1 disabled oneshot on property:sys.qbcharger.enable=true start qbcharger on property:sys.qbcharger.enable=false stop qbcharger on property:init.svc.fps_hal=running stop fps_hal service vendor.msm_irqbalance /vendor/bin/msm_irqbalance -f /vendor/etc/msm_irqbalance.conf socket msm_irqbalance seqpacket 660 root system class core user root group root writepid /dev/cpuset/system-background/tasks #add poweroffhandler service poweroffhandler /vendor/bin/poweroffhandler class core user media group graphics audio disabled oneshot service time_daemon /vendor/bin/time_daemon class main user root group root # Set vendor-ril lib path based on Meta version on property:vendor.rild.libpath=* setprop rild.libpath ${vendor.rild.libpath} # Needed for OTA control on property:ro.boot.carrier.sku=* setprop ro.oem.key1 ${ro.boot.carrier.sku} #Peripheral manager service per_mgr /vendor/bin/pm-service class core user system group system ioprio rt 4 service per_proxy /vendor/bin/pm-proxy class core user system group system disabled on property:init.svc.per_mgr=running start per_proxy on property:sys.shutdown.requested=* stop per_proxy # Disable subsystem restart write /sys/module/subsystem_restart/parameters/disable_restart_work 0x9889deed service qseecomd /vendor/bin/qseecomd class core user root group root service spdaemon /vendor/bin/spdaemon class core user system group system service thermal-engine /vendor/bin/thermal-engine class main user root socket thermal-send-client stream 0666 system system socket thermal-recv-client stream 0660 system system socket thermal-recv-passive-client stream 0666 system system socket thermal-send-rule stream 0660 system system group root service adsprpcd /vendor/bin/adsprpcd class main user media group media service hbtp /vendor/bin/hbtp_daemon class main user system group system capabilities SYS_NICE disabled service imsqmidaemon /vendor/bin/imsqmidaemon class main user system socket ims_qmid stream 0660 system radio group radio log diag service imsdatadaemon /vendor/bin/imsdatadaemon class main user system socket ims_datad stream 0660 system radio group system wifi radio inet log diag disabled service pd_mapper /vendor/bin/pd-mapper class core on property:vendor.ims.QMI_DAEMON_STATUS=1 start imsdatadaemon service ims_rtp_daemon /vendor/bin/ims_rtp_daemon class main user system group radio diag inet log disabled service imsrcsservice /vendor/bin/imsrcsd class hal user system group radio diag inet log disabled on property:vendor.ims.DATA_DAEMON_STATUS=1 start ims_rtp_daemon start imsrcsservice service hvdcp_opti /vendor/bin/hvdcp_opti class main user root group system wakelock # bugreport is triggered by holding down volume down, volume up and power service bugreport /system/bin/dumpstate -d -p -B -z \ -o /data/user_de/0/com.android.shell/files/bugreports/bugreport class main disabled oneshot keycodes 114 115 116 # Grip handling on property:sys.grip.status=* exec_background u:r:hbtp_cmd:s0 -- /vendor/bin/sh /vendor/bin/hbtp_cmd.sh grip ${sys.grip.status} # Set smoothness on property:persist.touch.smoothness=* exec_background u:r:hbtp_cmd:s0 -- /vendor/bin/sh /vendor/bin/hbtp_cmd.sh smoothness ${persist.touch.smoothness} # Fastboot needs to be root for access to /data/local/tmp # Needs to be part of system group to access OTA files service update_neko /system/bin/fastboot_target update /data/ota_package/update_neko.zip class main user root group system shell cache seclabel u:r:shell:s0 oneshot disabled # Use ro.runtime.firstboot as a trigger, to cover the cases where # the user set a lock screen on property:dev.bootcomplete=1 && property:ro.runtime.firstboot=* write /sys/class/sidecar/enable_control 1 # provisioning service service mata_provision /vendor/bin/provision.sh class main user root group root system disabled oneshot # shio notification service on property:vendor.audio.hd.status=* exec u:r:shell:s0 -- /system/bin/sh /system/bin/am startservice com.essential.score/.ShioService ================================================ FILE: rootdir/etc/init.msm.usb.configfs.rc ================================================ # Copyright (c) 2016-2017, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # * Neither the name of The Linux Foundation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # USB compositions on property:sys.usb.config=mass_storage && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "msc" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0xF000 symlink /config/usb_gadget/g1/functions/mass_storage.0 /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:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mass_storage,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb_msc" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x9015 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/mass_storage.0 /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x901D symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x900E symlink /config/usb_gadget/g1/functions/diag.diag /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:sys.usb.config=diag,serial_cdev,rmnet,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial_cdev,rmnet,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Default composition" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x9091 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag,serial_cdev,rmnet && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Default comp without ADB" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x9092 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.tethering=true write /sys/class/net/rndis0/queues/rx-0/rps_cpus ${sys.usb.rps_mask} on property:sys.usb.config=rndis && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0xF00E symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state rndis on property:sys.usb.config=rndis,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x9024 symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state rndis,adb on property:sys.usb.config=rndis,diag && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x902C symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=rndis,diag,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x902D symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=rndis,serial_cdev && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_dun" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90B3 symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state rndis on property:sys.usb.config=rndis,serial_cdev,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,serial_cdev,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_dun_adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90B4 symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state rndis,adb on property:sys.usb.config=rndis,serial_cdev,diag && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_dun_diag" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90B5 symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state rndis on property:sys.usb.config=rndis,serial_cdev,diag,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,serial_cdev,diag,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_dun_diag" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90B6 symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state rndis,adb on property:sys.usb.config=mtp,diag && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_diag" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x901B symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mtp,diag,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,diag,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp_diag_adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x903A symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag,qdss && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_qdss" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x904A write /config/usb_gadget/g1/functions/qdss.qdss/enable_debug_inface 1 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag,qdss,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,qdss,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_qdss_adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x9060 write /config/usb_gadget/g1/functions/qdss.qdss/enable_debug_inface 1 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag,qdss,rmnet && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_qdss_rmnet" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x9083 write /config/usb_gadget/g1/functions/qdss.qdss/enable_debug_inface 1 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag,qdss,rmnet,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,qdss,rmnet,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_qdss_rmnet_adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x9084 write /config/usb_gadget/g1/functions/qdss.qdss/enable_debug_inface 1 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=rndis,diag,qdss && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_qdss" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x9081 write /config/usb_gadget/g1/functions/qdss.qdss/enable_debug_inface 1 symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=rndis,diag,qdss,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,qdss,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_qdss_adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x9082 write /config/usb_gadget/g1/functions/qdss.qdss/enable_debug_inface 1 symlink /config/usb_gadget/g1/functions/${sys.usb.rndis.func.name}.rndis /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=ncm && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ncm" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0xA4A1 symlink /config/usb_gadget/g1/functions/ncm.0 /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:sys.usb.config=ncm,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ncm,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ncm_adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x908C symlink /config/usb_gadget/g1/functions/ncm.0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag,serial_cdev && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x9004 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag,adb,serial_cdev && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,adb,serial_cdev && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_adb_dun" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x901f symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag,serial_cdev,rmnet,dpl && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_dpl" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90b7 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.dpl /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag,serial_cdev,rmnet,dpl,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial_cdev,rmnet,dpl,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_dpl_adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90b8 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.dpl /config/usb_gadget/g1/configs/b.1/f4 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f5 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=rndis,diag,dpl && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_dpl" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90bf symlink /config/usb_gadget/g1/functions/gsi.rndis /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.dpl /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state rndis on property:sys.usb.config=rndis,diag,dpl,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,diag,dpl,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "rndis_diag_dpl_adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90c0 symlink /config/usb_gadget/g1/functions/gsi.rndis /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.dpl /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state rndis,adb on property:sys.usb.config=ccid && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ccid" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90CE symlink /config/usb_gadget/g1/functions/ccid.ccid /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:sys.usb.config=ccid,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ccid,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ccid_adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90CF symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=ccid,diag && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ccid_diag" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90D0 symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=ccid,diag,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=ccid,diag,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "ccid_diag_adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90D1 symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f3 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag,serial_cdev,rmnet,ccid && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_ccid" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90D2 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f4 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag,serial_cdev,rmnet,ccid,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial_cdev,rmnet,ccid,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_ccid_adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90D3 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/ccid.ccid /config/usb_gadget/g1/configs/b.1/f4 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f5 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,rmnet && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm,qdss_qdss_mdm_dun_dun_mdm_rmnet" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90D7 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/diag.diag_mdm /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f4 symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f5 symlink /config/usb_gadget/g1/functions/cser.dun.2 /config/usb_gadget/g1/configs/b.1/f6 symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f7 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,rmnet,adb && property:sys.usb.configfs=1 start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,rmnet,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_diag_mdm,qdss_qdss_mdm_dun_dun_mdm_rmnet_adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 rm /config/usb_gadget/g1/configs/b.1/f6 rm /config/usb_gadget/g1/configs/b.1/f7 rm /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/idVendor 0x05C6 write /config/usb_gadget/g1/idProduct 0x90D8 symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/diag.diag_mdm /config/usb_gadget/g1/configs/b.1/f2 symlink /config/usb_gadget/g1/functions/qdss.qdss /config/usb_gadget/g1/configs/b.1/f3 symlink /config/usb_gadget/g1/functions/qdss.qdss_mdm /config/usb_gadget/g1/configs/b.1/f4 symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f5 symlink /config/usb_gadget/g1/functions/cser.dun.2 /config/usb_gadget/g1/configs/b.1/f6 symlink /config/usb_gadget/g1/functions/${sys.usb.rmnet.func.name}.rmnet /config/usb_gadget/g1/configs/b.1/f7 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f8 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x2e17 write /config/usb_gadget/g1/idProduct 0xc032 on property:sys.usb.config=mtp && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x2e17 write /config/usb_gadget/g1/idProduct 0xc033 on property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x2e17 write /config/usb_gadget/g1/idProduct 0xc030 on property:sys.usb.config=ptp && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x2e17 write /config/usb_gadget/g1/idProduct 0xc034 on property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x2e17 write /config/usb_gadget/g1/idProduct 0xc031 on property:sys.usb.config=accessory && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x18d1 write /config/usb_gadget/g1/idProduct 0x2d00 on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x18d1 write /config/usb_gadget/g1/idProduct 0x2d01 on property:sys.usb.config=audio_source && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x18d1 write /config/usb_gadget/g1/idProduct 0x2d02 on property:sys.usb.config=audio_source,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x18d1 write /config/usb_gadget/g1/idProduct 0x2d03 on property:sys.usb.config=accessory,audio_source && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x18d1 write /config/usb_gadget/g1/idProduct 0x2d04 on property:sys.usb.config=accessory,audio_source,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x18d1 write /config/usb_gadget/g1/idProduct 0x2d05 on property:sys.usb.config=midi && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x2e17 write /config/usb_gadget/g1/idProduct 0xc041 on property:sys.usb.config=midi,adb && property:sys.usb.configfs=1 write /config/usb_gadget/g1/idVendor 0x2e17 write /config/usb_gadget/g1/idProduct 0xc042 ================================================ FILE: rootdir/etc/init.qcom.early_boot.sh ================================================ #! /vendor/bin/sh # Copyright (c) 2012-2013,2016 The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of The Linux Foundation nor # the names of its contributors may be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # export PATH=/vendor/bin log -t BOOT -p i "Essential Mata target '$1', SoC '$soc_hwplatform', HwID '$soc_hwid', SoC ver '$soc_hwver'" #For drm based display driver vbfile=/sys/module/drm/parameters/vblankoffdelay if [ -w $vbfile ]; then echo -1 > $vbfile else log -t DRM_BOOT -p w "file: '$vbfile' or perms doesn't exist" fi hw_revision=`getprop ro.boot.revision` setprop ro.hardware.nfc_nci msm8998 # If grip manual is set to 0 (user forced to disable grip), disable it # Otherwise set it on grip_manual=`getprop persist.grip.status_manual` if [ "$grip_manual" == "" ] || [ "$grip_manual" == "1" ]; then setprop sys.grip.status on else setprop sys.grip.status off fi # Set default smoothness value smoothness=`getprop persist.touch.smoothness` if [ "$smoothness" == "" ]; then setprop persist.touch.smoothness 5 fi # Set carrier specific properties as per sku sku=`getprop ro.boot.carrier.sku` tags=`getprop ro.build.tags` if [ "$sku" == "OPENJP" ]; then setprop ro.boot.wificountrycode JP setprop ro.product.locale ja-JP elif [ "$sku" == "OPENEU" ]; then setprop ro.boot.wificountrycode UK setprop ro.product.locale en-UK fi if [ "$sku" != "SPRINT" ] && [ "$tags" == "release-keys" ]; then setprop ro.boot.diagclean true fi # Since an ro.* cannot be set twice, we can just call this directly setprop ro.product.locale en-US setprop ro.boot.wificountrycode US # End of carrier specific properties # Setup display nodes & permissions # HDMI can be fb1 or fb2 # Loop through the sysfs nodes and determine # the HDMI(dtv panel) function set_perms() { #Usage set_perms chown -h $2 $1 chmod $3 $1 } function setHDMIPermission() { file=/sys/class/graphics/fb$1 dev_file=/dev/graphics/fb$1 dev_gfx_hdmi=/devices/virtual/switch/hdmi set_perms $file/hpd system.graphics 0664 set_perms $file/res_info system.graphics 0664 set_perms $file/vendor_name system.graphics 0664 set_perms $file/product_description system.graphics 0664 set_perms $file/video_mode system.graphics 0664 set_perms $file/format_3d system.graphics 0664 set_perms $file/s3d_mode system.graphics 0664 set_perms $file/dynamic_fps system.graphics 0664 set_perms $file/msm_fb_dfps_mode system.graphics 0664 set_perms $file/hdr_stream system.graphics 0664 set_perms $file/cec/enable system.graphics 0664 set_perms $file/cec/logical_addr system.graphics 0664 set_perms $file/cec/rd_msg system.graphics 0664 set_perms $file/pa system.graphics 0664 set_perms $file/cec/wr_msg system.graphics 0600 set_perms $file/hdcp/tp system.graphics 0664 set_perms $file/hdmi_audio_cb audioserver.audio 0600 ln -s $dev_file $dev_gfx_hdmi } # check for the type of driver FB or DRM fb_driver=/sys/class/graphics/fb0 if [ -e "$fb_driver" ] then # check for HDMI connection for fb_cnt in 0 1 2 3 do file=/sys/class/graphics/fb$fb_cnt/msm_fb_panel_info if [ -f "$file" ] then cat $file | while read line; do case "$line" in *"is_pluggable"*) case "$line" in *"1"*) setHDMIPermission $fb_cnt esac esac done fi done file=/sys/class/graphics/fb0 if [ -d "$file" ] then set_perms $file/idle_time system.graphics 0664 set_perms $file/dynamic_fps system.graphics 0664 set_perms $file/dyn_pu system.graphics 0664 set_perms $file/modes system.graphics 0664 set_perms $file/mode system.graphics 0664 set_perms $file/msm_cmd_autorefresh_en system.graphics 0664 fi # set lineptr permissions for all displays for fb_cnt in 0 1 2 3 do file=/sys/class/graphics/fb$fb_cnt if [ -f "$file/lineptr_value" ]; then set_perms $file/lineptr_value system.graphics 0664 fi if [ -f "$file/msm_fb_persist_mode" ]; then set_perms $file/msm_fb_persist_mode system.graphics 0664 fi done fi ================================================ FILE: rootdir/etc/init.qcom.post_boot.sh ================================================ #! /vendor/bin/sh # Copyright (c) 2012-2013, 2016, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of The Linux Foundation nor # the names of its contributors may be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # target=`getprop ro.board.platform` charger=`getprop ro.boot.mode` copy_pstore_files_if_enabled() { pstore_dump_enabled=`getprop persist.sys.pstore_dumps` if [ $pstore_dump_enabled -eq 1 ]; then rm -f /data/misc/pstore/* cp -r /sys/fs/pstore/* /data/misc/pstore/ chown system:system /data/misc/pstore/* fi } copy_pstore_files_if_enabled echo 2 > /sys/devices/system/cpu/cpu4/core_ctl/min_cpus echo 100 > /sys/devices/system/cpu/cpu4/core_ctl/offline_delay_ms echo 1 > /sys/devices/system/cpu/cpu4/core_ctl/is_big_cluster echo 4 > /sys/devices/system/cpu/cpu4/core_ctl/task_thres # Setting b.L scheduler parameters echo 1 > /proc/sys/kernel/sched_migration_fixup echo 95 > /proc/sys/kernel/sched_upmigrate echo 90 > /proc/sys/kernel/sched_downmigrate echo 100 > /proc/sys/kernel/sched_group_upmigrate echo 95 > /proc/sys/kernel/sched_group_downmigrate echo 0 > /proc/sys/kernel/sched_select_prev_cpu_us echo 400000 > /proc/sys/kernel/sched_freq_inc_notify echo 400000 > /proc/sys/kernel/sched_freq_dec_notify echo 5 > /proc/sys/kernel/sched_spill_nr_run echo 1 > /proc/sys/kernel/sched_restrict_cluster_spill echo 1 > /proc/sys/kernel/sched_prefer_sync_wakee_to_waker # disable thermal bcl hotplug to switch governor echo 0 > /sys/module/msm_thermal/core_control/enabled # online CPU0 echo 1 > /sys/devices/system/cpu/cpu0/online # configure governor settings for little cluster echo "interactive" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_sched_load echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/use_migration_notif echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/above_hispeed_delay echo 90 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/go_hispeed_load echo 20000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/timer_rate echo 1248000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/hispeed_freq echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/io_is_busy echo "83 1804800:95" > /sys/devices/system/cpu/cpu0/cpufreq/interactive/target_loads echo 19000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/min_sample_time echo 79000 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/max_freq_hysteresis echo 300000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/interactive/ignore_hispeed_on_notif # online CPU4 echo 1 > /sys/devices/system/cpu/cpu4/online # configure governor settings for big cluster echo "interactive" > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_sched_load echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/use_migration_notif echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/above_hispeed_delay echo 90 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/go_hispeed_load echo 20000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/timer_rate echo 1574400 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/hispeed_freq echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/io_is_busy echo "83 1939200:90 2016000:95" > /sys/devices/system/cpu/cpu4/cpufreq/interactive/target_loads echo 19000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/min_sample_time echo 79000 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/max_freq_hysteresis echo 300000 > /sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq echo 1 > /sys/devices/system/cpu/cpu4/cpufreq/interactive/ignore_hispeed_on_notif # re-enable thermal and BCL hotplug echo 1 > /sys/module/msm_thermal/core_control/enabled # Enable input boost configuration echo "0:1324800" > /sys/module/cpu_boost/parameters/input_boost_freq echo 40 > /sys/module/cpu_boost/parameters/input_boost_ms # Enable bus-dcvs for cpubw in /sys/class/devfreq/*qcom,cpubw* do echo "bw_hwmon" > $cpubw/governor echo 50 > $cpubw/polling_interval echo 1525 > $cpubw/min_freq echo "3143 5859 11863 13763" > $cpubw/bw_hwmon/mbps_zones echo 4 > $cpubw/bw_hwmon/sample_ms echo 34 > $cpubw/bw_hwmon/io_percent echo 20 > $cpubw/bw_hwmon/hist_memory echo 10 > $cpubw/bw_hwmon/hyst_length echo 0 > $cpubw/bw_hwmon/low_power_ceil_mbps echo 34 > $cpubw/bw_hwmon/low_power_io_percent echo 20 > $cpubw/bw_hwmon/low_power_delay echo 0 > $cpubw/bw_hwmon/guard_band_mbps echo 250 > $cpubw/bw_hwmon/up_scale echo 1600 > $cpubw/bw_hwmon/idle_mbps done for memlat in /sys/class/devfreq/*qcom,memlat-cpu* do echo "mem_latency" > $memlat/governor echo 10 > $memlat/polling_interval echo 400 > $memlat/mem_latency/ratio_ceil done echo "cpufreq" > /sys/class/devfreq/soc:qcom,mincpubw/governor echo N > /sys/module/lpm_levels/system/pwr/cpu0/ret/idle_enabled echo N > /sys/module/lpm_levels/system/pwr/cpu1/ret/idle_enabled echo N > /sys/module/lpm_levels/system/pwr/cpu2/ret/idle_enabled echo N > /sys/module/lpm_levels/system/pwr/cpu3/ret/idle_enabled echo N > /sys/module/lpm_levels/system/perf/cpu4/ret/idle_enabled echo N > /sys/module/lpm_levels/system/perf/cpu5/ret/idle_enabled echo N > /sys/module/lpm_levels/system/perf/cpu6/ret/idle_enabled echo N > /sys/module/lpm_levels/system/perf/cpu7/ret/idle_enabled echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled echo N > /sys/module/lpm_levels/system/pwr/pwr-l2-ret/idle_enabled echo N > /sys/module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled echo N > /sys/module/lpm_levels/system/perf/perf-l2-ret/idle_enabled echo N > /sys/module/lpm_levels/parameters/sleep_disabled echo 0-3 > /dev/cpuset/background/cpus echo 0-3 > /dev/cpuset/system-background/cpus echo 0 > /proc/sys/kernel/sched_boost chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate chown -h system /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor chown -h system /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy setprop sys.post_boot.parsed 1 if [ "$charger" != "charger" ]; then start hbtp fi # Let kernel know our image version/variant/crm_version if [ -f /sys/devices/soc0/select_image ]; then image_version="10:" image_version+=`getprop ro.build.id` image_version+=":" image_version+=`getprop ro.build.version.incremental` image_variant=`getprop ro.product.name` image_variant+="-" image_variant+=`getprop ro.build.type` oem_version=`getprop ro.build.version.codename` echo 10 > /sys/devices/soc0/select_image echo $image_version > /sys/devices/soc0/image_version echo $image_variant > /sys/devices/soc0/image_variant echo $oem_version > /sys/devices/soc0/image_crm_version fi ================================================ FILE: rootdir/etc/init.qcom.ssr.sh ================================================ #! /vendor/bin/sh # Copyright (c) 2013, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of The Linux Foundation nor # the names of its contributors may be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # ssr_str="$1" IFS=, ssr_array=($ssr_str) declare -i subsys_mask=0 # check user input subsystem with system device ssr_check_subsystem_name() { declare -i i=0 subsys=`cat /sys/bus/msm_subsys/devices/subsys$i/name` while [ "$subsys" != "" ] do if [ "$subsys" == "$ssr_name" ]; then return 1 fi i=$i+1 subsys=`cat /sys/bus/msm_subsys/devices/subsys$i/name` done return 0 } # set subsystem mask to indicate which subsystem needs to be enabled for num in "${!ssr_array[@]}" do case "${ssr_array[$num]}" in "1") subsys_mask=0 ;; "riva") subsys_mask=$subsys_mask+1 ;; "3") subsys_mask=63 ;; "adsp") ssr_name=adsp if ( ssr_check_subsystem_name ); then subsys_mask=$subsys_mask+2 fi ;; "modem") ssr_name=modem if ( ssr_check_subsystem_name ); then subsys_mask=$subsys_mask+4 fi ;; "wcnss") ssr_name=wcnss if ( ssr_check_subsystem_name ); then subsys_mask=$subsys_mask+8 fi ;; "venus") ssr_name=venus if ( ssr_check_subsystem_name ); then subsys_mask=$subsys_mask+16 fi ;; "external_modem") ssr_name=external_modem if ( ssr_check_subsystem_name ); then subsys_mask=$subsys_mask+32 fi ;; esac done # enable selected subsystem restart if [ $((subsys_mask & 1)) == 1 ]; then echo 1 > /sys/module/wcnss_ssr_8960/parameters/enable_riva_ssr else echo 0 > /sys/module/wcnss_ssr_8960/parameters/enable_riva_ssr fi if [ $((subsys_mask & 2)) == 2 ]; then echo "related" > /sys/bus/msm_subsys/devices/subsys0/restart_level else echo "system" > /sys/bus/msm_subsys/devices/subsys0/restart_level fi if [ $((subsys_mask & 4)) == 4 ]; then echo "related" > /sys/bus/msm_subsys/devices/subsys1/restart_level else echo "system" > /sys/bus/msm_subsys/devices/subsys1/restart_level fi if [ $((subsys_mask & 8)) == 8 ]; then echo "related" > /sys/bus/msm_subsys/devices/subsys2/restart_level else echo "system" > /sys/bus/msm_subsys/devices/subsys2/restart_level fi if [ $((subsys_mask & 16)) == 16 ]; then echo "related" > /sys/bus/msm_subsys/devices/subsys3/restart_level else echo "system" > /sys/bus/msm_subsys/devices/subsys3/restart_level fi if [ $((subsys_mask & 32)) == 32 ]; then echo "related" > /sys/bus/msm_subsys/devices/subsys4/restart_level else echo "system" > /sys/bus/msm_subsys/devices/subsys4/restart_level fi if [ $((subsys_mask & 63)) == 63 ]; then echo 3 > /sys/module/subsystem_restart/parameters/restart_level else echo 1 > /sys/module/subsystem_restart/parameters/restart_level fi ================================================ FILE: rootdir/etc/init.qcom.usb.rc ================================================ # Copyright (c) 2011-2016, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of The Linux Foundation nor # the names of its contributors may be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # on charger mkdir /dev/usb-ffs 0770 shell shell mkdir /dev/usb-ffs/adb 0770 shell shell mount configfs none /config mkdir /config/usb_gadget/g1 0770 shell shell mkdir /config/usb_gadget/g1/strings/0x409 0770 shell shell write /config/usb_gadget/g1/bcdUSB 0x0200 write /config/usb_gadget/g1/os_desc/use 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} mkdir /config/usb_gadget/g1/functions/mass_storage.0 mkdir /config/usb_gadget/g1/functions/ffs.adb mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1 symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 write /sys/class/android_usb/android0/f_ffs/aliases adb setprop sys.usb.config mass_storage on boot write /sys/class/android_usb/android0/iSerial ${ro.serialno} mkdir /dev/usb-ffs 0770 shell shell mkdir /dev/usb-ffs/adb 0770 shell shell mount configfs none /config mkdir /config/usb_gadget/g1 0770 shell shell mkdir /config/usb_gadget/g1/strings/0x409 0770 shell shell write /config/usb_gadget/g1/bcdUSB 0x0200 write /config/usb_gadget/g1/os_desc/use 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} mkdir /config/usb_gadget/g1/functions/mass_storage.0 mkdir /config/usb_gadget/g1/functions/mtp.gs0 mkdir /config/usb_gadget/g1/functions/ptp.gs1 mkdir /config/usb_gadget/g1/functions/accessory.gs2 mkdir /config/usb_gadget/g1/functions/audio_source.gs3 mkdir /config/usb_gadget/g1/functions/midi.gs5 mkdir /config/usb_gadget/g1/functions/ffs.adb mkdir /config/usb_gadget/g1/functions/diag.diag mkdir /config/usb_gadget/g1/functions/diag.diag_mdm mkdir /config/usb_gadget/g1/functions/cser.dun.0 mkdir /config/usb_gadget/g1/functions/cser.nmea.1 mkdir /config/usb_gadget/g1/functions/cser.dun.2 mkdir /config/usb_gadget/g1/functions/gsi.rmnet mkdir /config/usb_gadget/g1/functions/gsi.rndis mkdir /config/usb_gadget/g1/functions/gsi.dpl mkdir /config/usb_gadget/g1/functions/qdss.qdss mkdir /config/usb_gadget/g1/functions/qdss.qdss_mdm mkdir /config/usb_gadget/g1/functions/rndis_bam.rndis mkdir /config/usb_gadget/g1/functions/rmnet_bam.rmnet mkdir /config/usb_gadget/g1/functions/rmnet_bam.dpl mkdir /config/usb_gadget/g1/functions/ncm.0 mkdir /config/usb_gadget/g1/functions/ccid.ccid mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1 write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100" symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 write /sys/class/android_usb/android0/f_ffs/aliases adb setprop sys.usb.controller "a800000.dwc3" setprop sys.usb.rndis.func.name "gsi" setprop sys.usb.rmnet.func.name "gsi" setprop sys.usb.configfs 1 setprop sys.usb.rps_mask 0 write /sys/module/usbcore/parameters/autosuspend 3 ================================================ FILE: rootdir/etc/init.radio.sh ================================================ #! /vendor/bin/sh # # Copy qcril.db if needed for RIL # if [ -f /vendor/radio/qcril_database/qcril.db -a ! -f /data/vendor/radio/qcril.db ]; then cp /vendor/radio/qcril_database/qcril.db /data/vendor/radio/qcril.db chown -h radio.radio /data/vendor/radio/qcril.db fi echo 1 > /data/vendor/radio/db_check_done # # Make modem config folder and copy firmware config to that folder for RIL # if [ -f /data/vendor/radio/ver_info.txt ]; then prev_version_info=`cat /data/vendor/radio/ver_info.txt` else prev_version_info="" fi cur_version_info=`cat /vendor/firmware_mnt/verinfo/ver_info.txt` if [ ! -f /vendor/firmware_mnt/verinfo/ver_info.txt -o "$prev_version_info" != "$cur_version_info" ]; then rm -rf /data/vendor/radio/modem_config mkdir /data/vendor/radio/modem_config chmod 770 /data/vendor/radio/modem_config cp -r /vendor/firmware_mnt/image/modem_pr/mcfg/configs/* /data/vendor/radio/modem_config chown -hR radio.radio /data/vendor/radio/modem_config cp /vendor/firmware_mnt/verinfo/ver_info.txt /data/vendor/radio/ver_info.txt chown radio.radio /data/vendor/radio/ver_info.txt fi cp /vendor/firmware_mnt/image/modem_pr/mbn_ota.txt /data/vendor/radio/modem_config chown radio.radio /data/vendor/radio/modem_config/mbn_ota.txt echo 1 > /data/vendor/radio/copy_complete ================================================ FILE: rootdir/etc/init.recovery.mata.rc ================================================ # Copyright (c) 2017, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of The Linux Foundation nor # the names of its contributors may be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # on init write /sys/class/backlight/panel0-backlight/brightness 200 ================================================ FILE: rootdir/etc/ueventd.vendor.rc ================================================ # Copyright (c) 2012-2015, 2017, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # * Neither the name of The Linux Foundation nor # the names of its contributors may be used to endorse or promote # products derived from this software without specific prior written # permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # firmware_directories /vendor/firmware_mnt/image/ # the DIAG device node is not world writable/readable. /dev/diag 0660 system oem_2901 /dev/genlock 0666 system system /dev/wlan 0660 wifi wifi /dev/kgsl 0666 system system /dev/kgsl-3d0 0666 system system /dev/kgsl-2d0 0666 root root /dev/kgsl-2d1 0666 root root /dev/ion 0664 system system /dev/rtc0 0660 system system /dev/smd0 0660 system system /dev/smd4 0660 system system /dev/smd_cxm_qmi 0640 radio radio /dev/smd5 0660 system system /dev/smd6 0660 system system /dev/smd7 0660 bluetooth bluetooth /dev/ccid_bridge 0660 system system /dev/ipa 0660 radio radio /dev/wwan_ioctl 0660 radio radio /dev/ipaNatTable 0660 radio radio /dev/rmnet_ctrl 0660 usb usb /dev/dpl_ctrl 0660 usb usb #permissions for CSVT /dev/smd11 0660 radio radio #permsissions for BT/FM /dev/smd2 0660 bluetooth bluetooth /dev/smd3 0660 bluetooth bluetooth /dev/btpower 0660 bluetooth system #permissions for pta /dev/pta 0660 system system /dev/radio0 0640 system system /dev/rfcomm0 0660 bluetooth bluetooth /dev/ttyUSB0 0660 bluetooth bluetooth /dev/smdcntl0 0640 radio radio /dev/smdcntl1 0640 radio radio /dev/smdcntl2 0640 radio radio /dev/smdcntl3 0640 radio radio /dev/smdcntl4 0640 radio radio /dev/smdcntl5 0640 radio radio /dev/smdcntl6 0640 radio radio /dev/smdcntl7 0640 radio radio /dev/smdcntl8 0640 radio radio /dev/smdcnt_rev0 0640 radio radio /dev/smdcnt_rev1 0640 radio radio /dev/smdcnt_rev2 0640 radio radio /dev/smdcnt_rev3 0640 radio radio /dev/smdcnt_rev4 0640 radio radio /dev/smdcnt_rev5 0640 radio radio /dev/smdcnt_rev6 0640 radio radio /dev/smdcnt_rev7 0640 radio radio /dev/smdcnt_rev8 0640 radio radio /dev/smuxctl32 0640 radio radio /dev/sdioctl0 0640 radio radio /dev/sdioctl1 0640 radio radio /dev/sdioctl2 0640 radio radio /dev/sdioctl3 0640 radio radio /dev/sdioctl4 0640 radio radio /dev/sdioctl5 0640 radio radio /dev/sdioctl6 0640 radio radio /dev/sdioctl7 0640 radio radio /dev/sdioctl8 0640 radio radio /dev/rmnet_mux_ctrl 0640 radio radio /dev/hsicctl0 0640 radio radio /dev/hsicctl1 0640 radio radio /dev/hsicctl2 0640 radio radio /dev/hsicctl3 0640 radio radio /dev/hsicctl4 0640 radio radio /dev/hsicctl5 0640 radio radio /dev/hsicctl6 0640 radio radio /dev/hsicctl7 0640 radio radio /dev/hsicctl8 0640 radio radio /dev/hsicctl9 0640 radio radio /dev/hsicctl10 0640 radio radio /dev/hsicctl11 0640 radio radio /dev/hsicctl12 0640 radio radio /dev/hsicctl13 0640 radio radio /dev/hsicctl14 0640 radio radio /dev/hsicctl15 0640 radio radio /dev/hsicctl16 0640 radio radio /dev/mhi_pipe_14 0640 radio radio /dev/mhi_pipe_16 0640 radio radio /dev/mhi_pipe_32 0640 radio radio /dev/at_usb0 0640 radio radio /dev/at_mdm0 0640 radio radio /dev/video* 0660 system camera /dev/input/* 0660 system input /dev/media* 0660 system camera /dev/v4l-subdev* 0660 system camera /dev/qseecom 0660 system drmrpc /dev/smcinvoke 0660 system system /dev/qsee_ipc_irq_spss 0660 system drmrpc /dev/seemplog 0660 system system /dev/pft 0660 system drmrpc /dev/spcom 0660 system system /dev/sp_kernel 0660 system system /dev/sp_ssr 0660 system system /dev/sp_keymaster 0660 system system /dev/cryptoapp 0660 system system /dev/gemini0 0660 system camera /dev/jpeg0 0660 system camera /dev/jpeg1 0660 system camera /dev/jpeg2 0660 system camera /dev/jpeg3 0660 system camera /dev/adsprpc-smd 0664 system system /dev/system_health_monitor 0644 radio system /dev/mdss_rotator 0664 system system # wlan /dev/wcnss_wlan 0660 system system /dev/wcnss_ctrl 0660 system system /sys/devices/soc/a000000.qcom,wcnss-wlan/net/wlan0/queues/rx-* rps_cpus 0660 system system /sys/devices/soc/a000000.qcom,wcnss-wlan/net/p2p0/queues/rx-* rps_cpus 0660 system system /dev/spidev0.0 0660 system audio /dev/msm_camera/* 0660 system camera /dev/gemini/ 0660 system camera /dev/mercury0 0660 system camera /dev/msm_vidc_reg 0660 system audio /dev/msm_vidc_dec 0660 system audio /dev/msm_vidc_dec_sec 0660 system audio /dev/msm_vidc_enc 0660 system audio /dev/msm_rotator 0660 system system /dev/hw_random 0600 root root /dev/sdsprpc-smd 0660 system system #permissions for audio /dev/wcd_dsp0_control 0660 system audio /dev/wcd-dsp-glink 0660 system audio /dev/audio_slimslave 0660 system audio /dev/msm_qcelp 0660 system audio /dev/msm_evrc 0660 system audio /dev/msm_wma 0660 system audio /dev/msm_wmapro 0660 system audio /dev/msm_alac 0660 system audio /dev/msm_ape 0660 system audio /dev/msm_amrnb 0660 system audio /dev/msm_amrwb 0660 system audio /dev/msm_amrwbplus 0660 system audio /dev/msm_aac 0660 system audio /dev/msm_multi_aac 0660 system audio /dev/msm_aac_in 0660 system audio /dev/msm_qcelp_in 0660 system audio /dev/msm_evrc_in 0660 system audio /dev/msm_amrnb_in 0660 system audio /dev/msm_amrwb_in 0660 system audio /dev/msm_a2dp_in 0660 system audio /dev/msm_ac3 0660 system audio /dev/msm_audio_cal 0660 system audio /dev/msm_hweffects 0660 system audio /dev/msm_cad 0660 system audio /dev/msm_fm 0660 system audio /dev/msm_mvs 0660 system audio /dev/msm_pcm_lp_dec 0660 system audio /dev/msm_preproc_ctl 0660 system audio /dev/msm_rtac 0660 system audio /dev/msm_voicememo 0660 system audio /dev/ttyHSL1 0660 system system /dev/ttyHS1 0660 system system /dev/mdm 0660 system radio /sys/devices/virtual/smdpkt/smdcntl* open_timeout 0664 radio radio /dev/sdio_tty_ciq_00 0660 system system /dev/tty_sdio_00 0660 system system /dev/ttyGS0 0660 system system /dev/i2c-5 0660 media media /dev/avtimer 0660 system audio # DVB devices /dev/dvb/adapter0/demux* 0440 media media /dev/dvb/adapter0/dvr* 0660 media media /dev/dvb/adapter0/video* 0660 media media # Broadcast devices /dev/tsc_mux0 0660 media media /dev/tsc_ci0 0660 media media # sensors /sys/devices/i2c-12/12-* pollrate_ms 0664 system system /sys/devices/f9925000.i2c/i2c-0/0-* enable 0660 input system /sys/devices/f9925000.i2c/i2c-0/0-* poll_delay 0660 input system /sys/devices/soc.0/78b6000.i2c/i2c-0/0-* enable 0660 input system /sys/devices/soc.0/78b6000.i2c/i2c-0/0-* poll_delay 0660 input system /sys/devices/soc.0/78b6000.i2c/i2c-0/0-* enable_wakeup 0660 input system /sys/devices/soc.0/78b6000.i2c/i2c-0/0-* max_latency 0660 input system /sys/devices/soc.0/78b6000.i2c/i2c-0/0-* flush 0660 input system /sys/devices/soc.0/78b6000.i2c/i2c-0/0-* calibrate 0660 input system /sys/devices/soc.0/78b5000.i2c/i2c-1/1-* enable 0660 input system /sys/devices/soc.0/78b5000.i2c/i2c-1/1-* poll_delay 0660 input system /sys/devices/soc.0/78b5000.i2c/i2c-1/1-* enable_wakeup 0660 input system /sys/devices/soc.0/78b5000.i2c/i2c-1/1-* max_latency 0660 input system /sys/devices/soc.0/78b5000.i2c/i2c-1/1-* flush 0660 input system /sys/devices/soc.0/78b5000.i2c/i2c-1/1-* calibrate 0660 input system /sys/devices/virtual/optical_sensors/proximity ps_adc 0660 input system /sys/devices/virtual/optical_sensors/proximity ps_poll_delay 0660 input system /sys/devices/virtual/optical_sensors/lightsensor ls_auto 0660 input system /sys/devices/virtual/optical_sensors/lightsensor ls_poll_delay 0660 input system /sys/devices/virtual/input/input* poll 0660 input system /sys/devices/virtual/input/input* pollrate_ms 0660 input system /sys/devices/soc/78b7000.i2c/i2c-3/3-0020/input/input* secure_touch 0440 system drmrpc /sys/devices/soc/78b7000.i2c/i2c-3/3-0020/input/input* secure_touch_enable 0660 system drmrpc /sys/devices/soc/78b7000.i2c/i2c-3/3-0038/input/input* secure_touch 0440 system drmrpc /sys/devices/soc/78b7000.i2c/i2c-3/3-0038/input/input* secure_touch_enable 0660 system drmrpc /sys/devices/soc/78b7000.i2c/i2c-3/3-004b/input/input* secure_touch 0440 system drmrpc /sys/devices/soc/78b7000.i2c/i2c-3/3-004b/input/input* secure_touch_enable 0660 system drmrpc /sys/devices/soc/c179000.i2c/i2c-5/5-0020/input/input* secure_touch 0440 system drmrpc /sys/devices/soc/c179000.i2c/i2c-5/5-0020/input/input* secure_touch_enable 0660 system drmrpc # laser sensor access /sys/devices/virtual/input/input* enable_ps_sensor 0660 system input /sys/devices/virtual/input/input* set_delay_ms 0660 system input /sys/devices/virtual/input/input* do_flush 0660 system input # wlan /dev/wcnss_wlan 0660 system system /dev/wcnss_ctrl 0660 system system /sys/devices/soc/600000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/wlan0/queues/rx-* rps_cpus 0660 system system /sys/devices/soc/600000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/p2p0/queues/rx-* rps_cpus 0660 system system # wigig /sys/bus/pci/drivers/wil6210* 0000:01:00.0/wil6210/fst_link_loss 0660 wifi wifi /sys/bus/pci/drivers/wil6210* 0000:01:00.0/wil6210/thermal_throttling 0660 system system /sys/bus/pci/drivers/wil6210* 0000:01:00.0/net/wigig0/queues/rx-0/rps_cpus 0660 system system /sys/bus/pci/drivers/wil6210* 0000:01:00.0/net/wigig0/gro_flush_timeout 0660 system system /sys/devices/virtual/net/bond0 queues/rx-0/rps_cpus 0660 system system #nfc permissions /dev/nfc-nci 0660 nfc nfc /dev/nq-nci 0660 nfc nfc /dev/assd 0660 nfc nfc /dev/cxd224x-i2c 0660 nfc nfc # UIO devices /dev/uio0 0660 system system /dev/uio1 0660 system system /dev/uio2 0660 system system # SSR devices /dev/subsys_* 0640 system system # Ultrasound device /dev/usf1 0660 system system # Ramdump devices /dev/ramdump* 0640 system system # Fingerprint device /dev/qbt1000 0660 system system #ImproveTouch device /dev/hbtp_input 0660 system system /dev/hbtp_vm 0660 system system # Add device block for FRP /dev/block/platform/soc/1da4000.ufshc/by-name/frp 0600 system system /dev/block/platform/soc/1da4000.ufshc/by-name/bspdata 0600 system system # Kmsg device /dev/kmsg 0620 root system # Sidecar /dev/ttyACM* 0660 system shell /dev/neko* 0660 system camera # TOF sensor /dev/stmvl53l0_ranging 0660 system camera ================================================ FILE: sdllvm-lto-defs.mk ================================================ ifeq ($(LOCAL_MODULE_CLASS), STATIC_LIBRARIES) # For STATIC_LIBRARIES we need to use SD LLVM's archiver and archiver flags. AR := $(SDCLANG_PATH)/llvm-ar ifeq ($(LOCAL_SDCLANG_2),true) AR := $(SDCLANG_PATH_2)/llvm-ar endif ARFLAGS := crsD # For 32 bit $(LOCAL_BUILT_MODULE) : $(combo_2nd_arch_prefix)TARGET_AR := $(AR) $(LOCAL_BUILT_MODULE) : $(combo_var_prefix)GLOBAL_ARFLAGS := $(ARFLAGS) # For 64 bit intermediates := $(call local-intermediates-dir,,$(LOCAL_2ND_ARCH_VAR_PREFIX)) LOCAL_BUILT_MODULE_64 := $(intermediates)/$(my_installed_module_stem) $(LOCAL_BUILT_MODULE_64) : TARGET_AR := $(AR) $(LOCAL_BUILT_MODULE_64) : TARGET_GLOBAL_ARFLAGS := $(ARFLAGS) else # For SHARED_LIBRARIES and EXECUTABLES we need to filter out flags not # needed/understood by SD LLVM's Linker. FLAGS_TO_BE_FILTERED := -Wl,--icf=safe -Wl,--no-undefined-version -Wl,--fix-cortex-a53-843419 -fuse-ld=gold linked_module_32 := $(intermediates)/LINKED/$(my_installed_module_stem) intermediates := $(call local-intermediates-dir,,$(LOCAL_2ND_ARCH_VAR_PREFIX)) linked_module_64 := $(intermediates)/LINKED/$(my_installed_module_stem) $(linked_module_32) : PRIVATE_TARGET_GLOBAL_LDFLAGS := $(filter-out $(FLAGS_TO_BE_FILTERED),$(PRIVATE_TARGET_GLOBAL_LDFLAGS)) $(linked_module_64) : PRIVATE_TARGET_GLOBAL_LDFLAGS := $(filter-out $(FLAGS_TO_BE_FILTERED),$(PRIVATE_TARGET_GLOBAL_LDFLAGS)) endif ================================================ FILE: sec_config ================================================ /* IPC Security Config */ /* :: */ 16:4294967295:1000:1021 /* :: */ 56:4294967295:1021 /* Allow SS CTL service to be used by system and net_raw processes */ 43:4294967295:1000:3004 /* :: */ 71:4294967295:1001 /* :: */ 50:4294967295:1001 /* QMI-SLIM service permitted to gps and net_raw */ 55:4294967295:1021 /* Allow Sensor services to be used by sensor process */ 256:4294967295:1000:1006:1013:1021:1047 257:4294967295:1000:1006:1013:1021:1047 258:4294967295:1000:1006:1013:1021:1047 259:4294967295:1000:1006:1013:1021:1047 260:4294967295:1000:1006:1013:1021:1047 261:4294967295:1000:1006:1013:1021:1047 262:4294967295:1000:1006:1013:1021:1047 263:4294967295:1000:1006:1013:1021:1047 264:4294967295:1000:1006:1013:1021:1047 265:4294967295:1000:1006:1013:1021:1047 266:4294967295:1000:1006:1013:1021:1047 267:4294967295:1000:1006:1013:1021:1047 268:4294967295:1000:1006:1013:1021:1047 269:4294967295:1000:1006:1013:1021:1047 270:4294967295:1000:1006:1013:1021:1047 271:4294967295:1000:1006:1013:1021:1047 272:4294967295:1000:1006:1013:1021:1047 273:4294967295:1000:1006:1013:1021:1047 274:4294967295:1000:1006:1013:1021:1047 275:4294967295:1000:1006:1013:1021:1047 276:4294967295:1000:1006:1013:1021:1047 277:4294967295:1000:1006:1013:1021:1047 278:4294967295:1000:1006:1013:1021:1047 279:4294967295:1000:1006:1013:1021:1047 280:4294967295:1000:1006:1013:1021:1047 281:4294967295:1000:1006:1013:1021:1047 282:4294967295:1000:1006:1013:1021:1047 283:4294967295:1000:1006:1013:1021:1047 284:4294967295:1000:1006:1013:1021:1047 285:4294967295:1000:1006:1013:1021:1047 286:4294967295:1000:1006:1013:1021:1047 287:4294967295:1000:1006:1013:1021:1047 288:4294967295:1000:1006:1013:1021:1047 289:4294967295:1000:1006:1013:1021:1047 290:4294967295:1000:1006:1013:1021:1047 291:4294967295:1000:1006:1013:1021:1047 292:4294967295:1000:1006:1013:1021:1047 293:4294967295:1000:1006:1013:1021:1047 294:4294967295:1000:1006:1013:1021:1047 295:4294967295:1000:1006:1013:1021:1047 296:4294967295:1000:1006:1013:1021:1047 297:4294967295:1000:1006:1013:1021:1047 298:4294967295:1000:1006:1013:1021:1047 299:4294967295:1000:1006:1013:1021:1047 300:4294967295:1000:1006:1013:1021:1047 301:4294967295:1000:1006:1013:1021:1047 302:4294967295:1000:1006:1013:1021:1047 303:4294967295:1000:1006:1013:1021:1047 304:4294967295:1000:1006:1013:1021:1047 305:4294967295:1000:1006:1013:1021:1047 306:4294967295:1000:1006:1013:1021:1047 307:4294967295:1000:1006:1013:1021:1047 308:4294967295:1000:1006:1013:1021:1047 309:4294967295:1000:1006:1013:1021:1047 310:4294967295:1000:1006:1013:1021:1047 311:4294967295:1000:1006:1013:1021:1047 312:4294967295:1000:1006:1013:1021:1047 313:4294967295:1000:1006:1013:1021:1047 314:4294967295:1000:1006:1013:1021:1047 315:4294967295:1000:1006:1013:1021:1047 316:4294967295:1000:1006:1013:1021:1047 317:4294967295:1000:1006:1013:1021:1047 318:4294967295:1000:1006:1013:1021:1047 319:4294967295:1000:1006:1013:1021:1047 320:4294967295:1000:1006:1013:1021:1047 321:4294967295:1000:1006:1013:1021:1047 322:4294967295:1000:1006:1013:1021:1047 323:4294967295:1000:1006:1013:1021:1047 324:4294967295:1000:1006:1013:1021:1047 325:4294967295:1000:1006:1013:1021:1047 326:4294967295:1000:1006:1013:1021:1047 327:4294967295:1000:1006:1013:1021:1047 328:4294967295:1000:1006:1013:1021:1047 329:4294967295:1000:1006:1013:1021:1047 330:4294967295:1000:1006:1013:1021:1047 331:4294967295:1000:1006:1013:1021:1047 332:4294967295:1000:1006:1013:1021:1047 333:4294967295:1000:1006:1013:1021:1047 334:4294967295:1000:1006:1013:1021:1047 335:4294967295:1000:1006:1013:1021:1047 336:4294967295:1000:1006:1013:1021:1047 337:4294967295:1000:1006:1013:1021:1047 338:4294967295:1000:1006:1013:1021:1047 339:4294967295:1000:1006:1013:1021:1047 340:4294967295:1000:1006:1013:1021:1047 341:4294967295:1000:1006:1013:1021:1047 342:4294967295:1000:1006:1013:1021:1047 343:4294967295:1000:1006:1013:1021:1047 344:4294967295:1000:1006:1013:1021:1047 345:4294967295:1000:1006:1013:1021:1047 346:4294967295:1000:1006:1013:1021:1047 347:4294967295:1000:1006:1013:1021:1047 348:4294967295:1000:1006:1013:1021:1047 349:4294967295:1000:1006:1013:1021:1047 350:4294967295:1000:1006:1013:1021:1047 351:4294967295:1000:1006:1013:1021:1047 352:4294967295:1000:1006:1013:1021:1047 353:4294967295:1000:1006:1013:1021:1047 354:4294967295:1000:1006:1013:1021:1047 355:4294967295:1000:1006:1013:1021:1047 356:4294967295:1000:1006:1013:1021:1047 357:4294967295:1000:1006:1013:1021:1047 358:4294967295:1000:1006:1013:1021:1047 359:4294967295:1000:1006:1013:1021:1047 360:4294967295:1000:1006:1013:1021:1047 361:4294967295:1000:1006:1013:1021:1047 362:4294967295:1000:1006:1013:1021:1047 363:4294967295:1000:1006:1013:1021:1047 364:4294967295:1000:1006:1013:1021:1047 365:4294967295:1000:1006:1013:1021:1047 366:4294967295:1000:1006:1013:1021:1047 367:4294967295:1000:1006:1013:1021:1047 368:4294967295:1000:1006:1013:1021:1047 369:4294967295:1000:1006:1013:1021:1047 370:4294967295:1000:1006:1013:1021:1047 371:4294967295:1000:1006:1013:1021:1047 372:4294967295:1000:1006:1013:1021:1047 373:4294967295:1000:1006:1013:1021:1047 374:4294967295:1000:1006:1013:1021:1047 375:4294967295:1000:1006:1013:1021:1047 376:4294967295:1000:1006:1013:1021:1047 377:4294967295:1000:1006:1013:1021:1047 378:4294967295:1000:1006:1013:1021:1047 379:4294967295:1000:1006:1013:1021:1047 380:4294967295:1000:1006:1013:1021:1047 381:4294967295:1000:1006:1013:1021:1047 382:4294967295:1000:1006:1013:1021:1047 383:4294967295:1000:1006:1013:1021:1047 384:4294967295:1000:1006:1013:1021:1047 385:4294967295:1000:1006:1013:1021:1047 386:4294967295:1000:1006:1013:1021:1047 387:4294967295:1000:1006:1013:1021:1047 388:4294967295:1000:1006:1013:1021:1047 389:4294967295:1000:1006:1013:1021:1047 390:4294967295:1000:1006:1013:1021:1047 391:4294967295:1000:1006:1013:1021:1047 392:4294967295:1000:1006:1013:1021:1047 393:4294967295:1000:1006:1013:1021:1047 394:4294967295:1000:1006:1013:1021:1047 395:4294967295:1000:1006:1013:1021:1047 396:4294967295:1000:1006:1013:1021:1047 397:4294967295:1000:1006:1013:1021:1047 398:4294967295:1000:1006:1013:1021:1047 399:4294967295:1000:1006:1013:1021:1047 400:4294967295:1000:1006:1013:1021:1047 401:4294967295:1000:1006:1013:1021:1047 402:4294967295:1000:1006:1013:1021:1047 403:4294967295:1000:1006:1013:1021:1047 404:4294967295:1000:1006:1013:1021:1047 405:4294967295:1000:1006:1013:1021:1047 406:4294967295:1000:1006:1013:1021:1047 407:4294967295:1000:1006:1013:1021:1047 408:4294967295:1000:1006:1013:1021:1047 409:4294967295:1000:1006:1013:1021:1047 410:4294967295:1000:1006:1013:1021:1047 411:4294967295:1000:1006:1013:1021:1047 412:4294967295:1000:1006:1013:1021:1047 413:4294967295:1000:1006:1013:1021:1047 414:4294967295:1000:1006:1013:1021:1047 415:4294967295:1000:1006:1013:1021:1047 416:4294967295:1000:1006:1013:1021:1047 417:4294967295:1000:1006:1013:1021:1047 418:4294967295:1000:1006:1013:1021:1047 419:4294967295:1000:1006:1013:1021:1047 420:4294967295:1000:1006:1013:1021:1047 421:4294967295:1000:1006:1013:1021:1047 422:4294967295:1000:1006:1013:1021:1047 423:4294967295:1000:1006:1013:1021:1047 424:4294967295:1000:1006:1013:1021:1047 425:4294967295:1000:1006:1013:1021:1047 426:4294967295:1000:1006:1013:1021:1047 427:4294967295:1000:1006:1013:1021:1047 428:4294967295:1000:1006:1013:1021:1047 429:4294967295:1000:1006:1013:1021:1047 430:4294967295:1000:1006:1013:1021:1047 431:4294967295:1000:1006:1013:1021:1047 432:4294967295:1000:1006:1013:1021:1047 433:4294967295:1000:1006:1013:1021:1047 434:4294967295:1000:1006:1013:1021:1047 435:4294967295:1000:1006:1013:1021:1047 436:4294967295:1000:1006:1013:1021:1047 437:4294967295:1000:1006:1013:1021:1047 438:4294967295:1000:1006:1013:1021:1047 439:4294967295:1000:1006:1013:1021:1047 440:4294967295:1000:1006:1013:1021:1047 441:4294967295:1000:1006:1013:1021:1047 442:4294967295:1000:1006:1013:1021:1047 443:4294967295:1000:1006:1013:1021:1047 444:4294967295:1000:1006:1013:1021:1047 445:4294967295:1000:1006:1013:1021:1047 446:4294967295:1000:1006:1013:1021:1047 447:4294967295:1000:1006:1013:1021:1047 448:4294967295:1000:1006:1013:1021:1047 449:4294967295:1000:1006:1013:1021:1047 450:4294967295:1000:1006:1013:1021:1047 451:4294967295:1000:1006:1013:1021:1047 452:4294967295:1000:1006:1013:1021:1047 453:4294967295:1000:1006:1013:1021:1047 454:4294967295:1000:1006:1013:1021:1047 455:4294967295:1000:1006:1013:1021:1047 456:4294967295:1000:1006:1013:1021:1047 457:4294967295:1000:1006:1013:1021:1047 458:4294967295:1000:1006:1013:1021:1047 459:4294967295:1000:1006:1013:1021:1047 460:4294967295:1000:1006:1013:1021:1047 461:4294967295:1000:1006:1013:1021:1047 462:4294967295:1000:1006:1013:1021:1047 463:4294967295:1000:1006:1013:1021:1047 464:4294967295:1000:1006:1013:1021:1047 465:4294967295:1000:1006:1013:1021:1047 466:4294967295:1000:1006:1013:1021:1047 467:4294967295:1000:1006:1013:1021:1047 468:4294967295:1000:1006:1013:1021:1047 469:4294967295:1000:1006:1013:1021:1047 470:4294967295:1000:1006:1013:1021:1047 471:4294967295:1000:1006:1013:1021:1047 472:4294967295:1000:1006:1013:1021:1047 473:4294967295:1000:1006:1013:1021:1047 474:4294967295:1000:1006:1013:1021:1047 475:4294967295:1000:1006:1013:1021:1047 476:4294967295:1000:1006:1013:1021:1047 477:4294967295:1000:1006:1013:1021:1047 478:4294967295:1000:1006:1013:1021:1047 479:4294967295:1000:1006:1013:1021:1047 480:4294967295:1000:1006:1013:1021:1047 481:4294967295:1000:1006:1013:1021:1047 482:4294967295:1000:1006:1013:1021:1047 483:4294967295:1000:1006:1013:1021:1047 484:4294967295:1000:1006:1013:1021:1047 485:4294967295:1000:1006:1013:1021:1047 486:4294967295:1000:1006:1013:1021:1047 487:4294967295:1000:1006:1013:1021:1047 488:4294967295:1000:1006:1013:1021:1047 489:4294967295:1000:1006:1013:1021:1047 490:4294967295:1000:1006:1013:1021:1047 491:4294967295:1000:1006:1013:1021:1047 492:4294967295:1000:1006:1013:1021:1047 493:4294967295:1000:1006:1013:1021:1047 494:4294967295:1000:1006:1013:1021:1047 495:4294967295:1000:1006:1013:1021:1047 496:4294967295:1000:1006:1013:1021:1047 497:4294967295:1000:1006:1013:1021:1047 498:4294967295:1000:1006:1013:1021:1047 499:4294967295:1000:1006:1013:1021:1047 500:4294967295:1000:1006:1013:1021:1047 501:4294967295:1000:1006:1013:1021:1047 502:4294967295:1000:1006:1013:1021:1047 503:4294967295:1000:1006:1013:1021:1047 504:4294967295:1000:1006:1013:1021:1047 505:4294967295:1000:1006:1013:1021:1047 506:4294967295:1000:1006:1013:1021:1047 507:4294967295:1000:1006:1013:1021:1047 508:4294967295:1000:1006:1013:1021:1047 509:4294967295:1000:1006:1013:1021:1047 510:4294967295:1000:1006:1013:1021:1047 511:4294967295:1000:1006:1013:1021:1047 /* Allow RCS service to aquire net_raw permission */ 18:4294967295:1001:3004 /* Allow QMID service to aquire net_raw permission */ 3:4294967295:1001:1021:3004 2:4294967295:1000:1001:3004 42:4294967295:1001:3004 18:4294967295:1001:3004 9:4294967295:1001:3004 1:4294967295:1001:3004:1000 4:4294967295:1001:3004 7:4294967295:1001:3004 8:4294967295:1001:3004:1000 68:4294967295:1001:3004 /* DPM */ 47:4294967295:1001:3004 /* Allow communication to some QMI services with radio privilages */ /* Format is :: */ /* PBM */ 12:4294967295:1001 /* WMS */ 5:4294967295:1001 /* IMS VT */ 32:4294967295:1001 /* IMSP */ 31:4294967295:1001 /* PDC */ 36:4294967295:1001 /* SAR */ 17:4294967295:1001 /* RFRPE */ 41:4294967295:1001 /*UIM*/ 11:4294967295:1001 /*CAT*/ 10:4294967295:1001 /*IMSA*/ 33:4294967295:1001 /* CSVT */ 29:4294967295:1001 /*SERVREG_NOTIF*/ 64:4294967295:1001 66:4294967295:1001 /*LTE*/ 70:4294967295:1001 /* Allow Data dpmd to access QMI DFS */ 48:4294967295:1000:3004 /* DIAG */ 4097:4294967295:2002:2950:3009:2901 /* :: */ 69:4294967295:1000 /* :: */ 57:4294967295:1000 /* */ 238:4294967295:1001:3004 ================================================ FILE: seccomp/mediacodec-seccomp.policy ================================================ # device specific syscalls # extension of services/mediacodec/minijail/seccomp_policy/mediacodec-seccomp-arm.policy pselect6: 1 eventfd2: 1 sendto: 1 recvfrom: 1 _llseek: 1 sysinfo: 1 getcwd: 1 getdents64: 1 inotify_init1: 1 inotify_add_watch: 1 ================================================ FILE: seccomp/mediaextractor-seccomp.policy ================================================ # device specific syscalls. # extension of services/mediaextractor/minijail/seccomp_policy/mediaextractor-seccomp-arm.policy readlinkat: 1 pread64: 1 ================================================ FILE: sensors/hals.conf ================================================ sensors.mata.so sensors.hal.tof.so ================================================ FILE: sepolicy/private/app_zygote.te ================================================ allow app_zygote app_data_file:dir r_dir_perms; ================================================ FILE: sepolicy/private/dataservice_app.te ================================================ typeattribute dataservice_app coredomain; app_domain(dataservice_app) net_domain(dataservice_app) add_service(dataservice_app, cne_service) add_service(dataservice_app, uce_service) allow dataservice_app { app_api_service system_api_service audioserver_service radio_service }:service_manager find; allow dataservice_app hal_imsrcsd_hwservice:hwservice_manager find; allow dataservice_app hal_cne_hwservice:hwservice_manager find; allow dataservice_app system_app_data_file:dir create_dir_perms; allow dataservice_app system_app_data_file:{ file lnk_file } create_file_perms; hwbinder_use(dataservice_app) ================================================ FILE: sepolicy/private/device.te ================================================ type ramoops_device, dev_type; ================================================ FILE: sepolicy/private/file_contexts ================================================ /system/bin/folio_daemon u:object_r:folio_daemon_exec:s0 /data/misc/elabel(/.*)? u:object_r:elabel_data_file:s0 /system/bin/init\.elabel\.sh u:object_r:init_elabel_exec:s0 /system/bin/ramoops u:object_r:ramoops_exec:s0 /system/bin/init\.ramoops\.sh u:object_r:ramoops_exec:s0 /dev/access-metadata u:object_r:ramoops_device:s0 /dev/access-ramoops u:object_r:ramoops_device:s0 /data/misc_ce/[0-9]+/ramoops(/.*)? u:object_r:ramoops_data_file:s0 /system/rfs.* u:object_r:rfs_system_file:s0 /dev/cxd224x-i2c u:object_r:nfc_device:s0 /data/misc/pstore(/.*)? u:object_r:pstore_backup_file:s0 /system/bin/fastboot_target u:object_r:shell_exec:s0 /system/bin/wfdservice u:object_r:wfdservice_exec:s0 ================================================ FILE: sepolicy/private/folio_daemon.te ================================================ type folio_daemon, domain, coredomain; type folio_daemon_exec, exec_type, file_type, system_file_type; init_daemon_domain(folio_daemon) allow folio_daemon binder_device:chr_file rw_file_perms; allow folio_daemon uhid_device:chr_file rw_file_perms; allow folio_daemon system_server:unix_stream_socket rw_socket_perms_no_ioctl; binder_use(folio_daemon) binder_call(folio_daemon, system_server) allow folio_daemon sensorservice_service:service_manager find; allow folio_daemon permission_service:service_manager find; ================================================ FILE: sepolicy/private/genfs_contexts ================================================ genfscon sysfs /devices/virtual/ramoops/pstore/aes_key u:object_r:sysfs_pstore:s0 genfscon sysfs /devices/virtual/ramoops/pstore/aes_key_iv u:object_r:sysfs_pstore:s0 genfscon sysfs /devices/virtual/ramoops/pstore/aes_key_tag u:object_r:sysfs_pstore:s0 genfscon sysfs /devices/virtual/ramoops/pstore/use_alt u:object_r:sysfs_pstore:s0 ================================================ FILE: sepolicy/private/init_elabel.te ================================================ # /system/bin/init.elabel.sh # # write data from /persist/elabel to /data/misc/elabel for use by # settings app # init_daemon_domain(init_elabel) allow init_elabel shell_exec:file rx_file_perms; allow init_elabel toolbox_exec:file rx_file_perms; ================================================ FILE: sepolicy/private/migrate_legacy_obb_data.te ================================================ allow migrate_legacy_obb_data storage_file:dir r_dir_perms; allow migrate_legacy_obb_data storage_file:lnk_file r_file_perms; allow migrate_legacy_obb_data mnt_user_file:dir r_dir_perms; allow migrate_legacy_obb_data mnt_user_file:lnk_file r_file_perms; allow migrate_legacy_obb_data sdcardfs:dir rw_dir_perms; allow migrate_legacy_obb_data sdcardfs:lnk_file r_file_perms; ================================================ FILE: sepolicy/private/priv_app.te ================================================ dontaudit priv_app device:dir read; dontaudit priv_app proc_interrupts:file read; dontaudit priv_app proc_modules:file read; allow priv_app vr_manager_service:service_manager find; allow priv_app rs_exec:file { execute execute_no_trans open read }; ================================================ FILE: sepolicy/private/property.te ================================================ type ramoops_prop, property_type; ================================================ FILE: sepolicy/private/property_contexts ================================================ sys.ramoops. u:object_r:ramoops_prop:s0 ================================================ FILE: sepolicy/private/radio.te ================================================ allow radio uce_service:service_manager find; ================================================ FILE: sepolicy/private/ramoops.te ================================================ type ramoops, domain, coredomain; type ramoops_data_file, file_type, core_data_file_type, data_file_type; type ramoops_exec, exec_type, file_type, system_file_type; init_daemon_domain(ramoops); # kmod=crypto-gcm(aes) dontaudit ramoops kernel:system module_request; allow ramoops ramoops_exec:file rx_file_perms; allow ramoops shell_exec:file rx_file_perms; allow ramoops toolbox_exec:file rx_file_perms; # Set the sys.ramoops.decrypted property set_prop(ramoops, ramoops_prop); allow ramoops sysfs_pstore:file rw_file_perms; allow ramoops ramoops_device:chr_file rw_file_perms; ================================================ FILE: sepolicy/private/seapp_contexts ================================================ #Add new domain for DataServices #TODO Remove user "system" when b/38043081 is resolved user=system seinfo=platform name=.dataservices domain=dataservice_app type=system_app_data_file ================================================ FILE: sepolicy/private/service.te ================================================ type cne_service, service_manager_type; type wfdservice_service, service_manager_type; ================================================ FILE: sepolicy/private/service_contexts ================================================ qti.ims.ext u:object_r:radio_service:s0 cneservice u:object_r:cne_service:s0 uce u:object_r:uce_service:s0 rcs u:object_r:radio_service:s0 wfdservice u:object_r:wfdservice_service:s0 ================================================ FILE: sepolicy/private/system_server.te ================================================ binder_call(system_server, folio_daemon) ================================================ FILE: sepolicy/private/system_suspend.te ================================================ allow system_suspend dumpstate:fd use; allow system_suspend dumpstate:fifo_file write; ================================================ FILE: sepolicy/private/untrusted_app_all.te ================================================ # suppress spurious denials dontaudit untrusted_app_all sysfs_zram:dir search; ================================================ FILE: sepolicy/private/wfdservice.te ================================================ # Copyright (c) 2017, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # * Neither the name of The Linux Foundation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. type wfdservice, domain; type wfdservice_exec, exec_type, file_type, system_file_type; typeattribute wfdservice coredomain; #Allow for transition from init domain to wfdservice init_daemon_domain(wfdservice) #Inherit base socket permissions from netd domain net_domain(wfdservice) #Allow wfdservice to use Binder IPC binder_use(wfdservice) #Allow for interaction with Display HAL binder_call(wfdservice, surfaceflinger) binder_call(surfaceflinger, wfdservice) #Allow apps to interact with wfdservice binder_call(wfdservice, platform_app) binder_call(platform_app, wfdservice) binder_call(wfdservice, system_app) binder_call(system_app, wfdservice) #Allow access to Audio Flinger APIs binder_call(wfdservice, audioserver) #Allow access to Permission Controller in System Server binder_call(wfdservice, system_server) # Mark wfdservice as a Binder service domain binder_service(wfdservice) #Allow wfdservice to be registered with service manager allow wfdservice wfdservice_service:service_manager add; #Allow access to PCM sound card allow wfdservice audio_device:chr_file rw_file_perms; allow wfdservice audio_device:dir r_dir_perms; #Allow access to /dev/graphics/fb* for screen capture allow wfdservice graphics_device:chr_file rw_file_perms; #Allow access to encoder for YUV statistics allow wfdservice gpu_device:chr_file rw_file_perms; #Allow communication with init over property server unix_socket_connect(wfdservice, property, init); #Allow access to /dev/video/* devices for encoding/decoding allow wfdservice video_device:chr_file rw_file_perms; allow wfdservice video_device:dir r_dir_perms; #Allow access to tee device for HDCP sessions #Allow access to uhid driver for HID event injection allow wfdservice uhid_device:chr_file rw_file_perms; #Allow PROT_EXEC for 3rd party library loaded by wfdservice allow wfdservice self:process execmem; userdebug_or_eng(` #Allow access to read mmosal_logmask file in /data partition allow wfdservice system_data_file:file r_file_perms; #Allow access to dump encoder/decoder dumps in /data/misc/media allow wfdservice media_data_file:dir w_dir_perms; allow wfdservice media_data_file:file create_file_perms; ') #Allow access to /data/media for dumping allow wfdservice media_rw_data_file:dir create_dir_perms; allow wfdservice media_rw_data_file:file create_file_perms; allow wfdservice self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; # Allow access to input_device for touch input detection allow wfdservice input_device:dir r_dir_perms; allow wfdservice input_device:chr_file r_file_perms; # Allow access to mediaserver, surfaceflinger and permissionmanager # for interaction of wfdservice allow wfdservice {audioserver_service permission_service surfaceflinger_service wfdservice_service}: service_manager find; #Allow setting of net_admin capability so that libnl API's can be used allow wfdservice self:capability net_admin; #Allow wfdservice to query interface name of network (p2p etc.) allow wfdservice self:netlink_socket create_socket_perms_no_ioctl; #Allow ion device access allow wfdservice ion_device:chr_file r_file_perms; #Allow udp socket ioctl allow wfdservice self:udp_socket ioctl; # ioctlcmd=8bff allowxperm wfdservice self:udp_socket ioctl priv_sock_ioctls; #Allow access to proc/net/arp allow wfdservice proc_net:file r_file_perms; #Allow hardware binder use hwbinder_use(wfdservice) get_prop(wfdservice, hwservicemanager_prop) #Allow hal graphics mapper permissions hal_client_domain(wfdservice, hal_graphics_composer); #Allow hal graphics allocator permissions hal_client_domain(wfdservice, hal_graphics_allocator); ================================================ FILE: sepolicy/public/dataservice_app.te ================================================ type dataservice_app, domain; ================================================ FILE: sepolicy/public/file.te ================================================ type elabel_data_file, file_type, core_data_file_type, data_file_type; type sysfs_pstore, sysfs_type, fs_type; ================================================ FILE: sepolicy/public/hwservice.te ================================================ type hal_cne_hwservice, hwservice_manager_type; type hal_imsrcsd_hwservice, hwservice_manager_type; ================================================ FILE: sepolicy/public/init_elabel.te ================================================ # /system/bin/init.elabel.sh # # write data from /persist/elabel to /data/misc/elabel for use by # settings app # type init_elabel, domain, coredomain; type init_elabel_exec, exec_type, file_type, system_file_type; ================================================ FILE: sepolicy/vendor/adsprpcd.te ================================================ type adsprpcd, domain; type adsprpcd_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(adsprpcd) allow adsprpcd ion_device:chr_file r_file_perms; allow adsprpcd qdsp_device:chr_file r_file_perms; # For search/read fluence libs allow adsprpcd adsprpcd_file:dir { getattr search }; allow adsprpcd adsprpcd_file:dir read; allow adsprpcd adsprpcd_file:file { getattr open read }; allow adsprpcd_file self:filesystem associate; allow adsprpcd mnt_vendor_file:dir r_dir_perms; ================================================ FILE: sepolicy/vendor/app.te ================================================ # For the camera app get_prop(appdomain, camera_prop) ================================================ FILE: sepolicy/vendor/atfwd.te ================================================ type atfwd, domain; type atfwd_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(atfwd) hwbinder_use(atfwd) get_prop(atfwd, hwservicemanager_prop) allow atfwd vnd_atcmdfwd_hwservice:hwservice_manager find; binder_call(atfwd, qtelephony); allow atfwd self:socket create_socket_perms; allowxperm atfwd self:socket ioctl msm_sock_ipc_ioctls; r_dir_file(atfwd, sysfs_type) set_prop(atfwd, radio_prop) ================================================ FILE: sepolicy/vendor/attributes ================================================ attribute hal_hbtp; attribute hal_hbtp_client; attribute hal_hbtp_server; attribute hal_sidecar_essential; attribute hal_sidecar_essential_client; attribute hal_sidecar_essential_server; attribute wifidisplayhalservice; attribute wifidisplayhalservice_client; attribute wifidisplayhalservice_server; ================================================ FILE: sepolicy/vendor/audioserver.te ================================================ binder_call(audioserver, bootanim) allow audioserver perfd_socket:sock_file write; allow audioserver sysfs_soc:file r_file_perms; allow audioserver sysfs_soc:dir search; ================================================ FILE: sepolicy/vendor/bluetooth.te ================================================ set_prop(bluetooth, wc_prop) # Allow access to net_admin ioctls allowxperm bluetooth self:udp_socket ioctl priv_sock_ioctls; ================================================ FILE: sepolicy/vendor/bootanim.te ================================================ allow bootanim hwservicemanager:binder call; # TODO(b/62954877). On Android Wear, bootanim reads the time # during boot to display. It currently gets that time from a file # in /data/system. This should be moved. In the meantime, suppress # this denial since this functionality is not used. dontaudit bootanim system_data_file:dir read; ================================================ FILE: sepolicy/vendor/btaddr_extract.te ================================================ #Copyright (c) 2016, The Linux Foundation. All rights reserved. # #Redistribution and use in source and binary forms, with or without #modification, are permitted provided that the following conditions are #met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # * Neither the name of The Linux Foundation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # #THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED #WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF #MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT #ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS #BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR #CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF #SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR #BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, #WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE #OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN #IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. type btaddr_extract, domain; type btaddr_extract_exec, exec_type, vendor_file_type, file_type; # Started by init init_daemon_domain(btaddr_extract) allow btaddr_extract persist_bluetooth_file:dir search; allow btaddr_extract persist_bluetooth_file:file { read open }; allow btaddr_extract persist_file:dir search; allow btaddr_extract persist_file:lnk_file read; allow btaddr_extract mnt_vendor_file:dir search; set_prop(btaddr_extract, bluetooth_prop) ================================================ FILE: sepolicy/vendor/cameraserver.te ================================================ allow cameraserver gpu_device:chr_file rw_file_perms; set_prop(cameraserver, camera_prop) allow cameraserver sysfs_camera:file r_file_perms; allow cameraserver sysfs_camera:dir search; allow cameraserver system_server:unix_stream_socket { read write }; # TODO (b/37688918) Verify that this is actually needed and not a violation of treble binder_call(cameraserver, mediacodec) ================================================ FILE: sepolicy/vendor/certs/Essential-platform.x509.pem ================================================ -----BEGIN CERTIFICATE----- MIIEBTCCAu2gAwIBAgIJAOWYOpC2UIfXMA0GCSqGSIb3DQEBBQUAMIGYMQswCQYD VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTESMBAGA1UEBwwJUGFsbyBBbHRv MRIwEAYDVQQKDAlFc3NlbnRpYWwxEjAQBgNVBAsMCUVzc2VudGlhbDESMBAGA1UE AwwJRXNzZW50aWFsMSQwIgYJKoZIhvcNAQkBFhVhbmRyb2lkQGVzc2VudGlhbC5j b20wHhcNMTcwNjA4MDgyMjQ4WhcNNDQxMDI0MDgyMjQ4WjCBmDELMAkGA1UEBhMC VVMxEzARBgNVBAgMCkNhbGlmb3JuaWExEjAQBgNVBAcMCVBhbG8gQWx0bzESMBAG A1UECgwJRXNzZW50aWFsMRIwEAYDVQQLDAlFc3NlbnRpYWwxEjAQBgNVBAMMCUVz c2VudGlhbDEkMCIGCSqGSIb3DQEJARYVYW5kcm9pZEBlc3NlbnRpYWwuY29tMIIB IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoOl+ZjMSq48FG9bJKtV8OP4+ Sryp+oaIYgwY89s3sAd2h8kQoPvi4v+rBHzsMN95IJAjfhPLPHS8GIu50NtcDqVo qYi3wtwQgC+BChk/Lr57yl3Ur8SY56IzqP/Ar6c7fH1Gb6YjsOPTZ5MyMK33U0dH nfqJg+iUJIJxFiNHxI+CuIUqVvNt2rejVcRPWGxP9tA/p19rEXQh8AmWHiwdKgpw ikjVMdhWYkpL0GF7rDKO08DLlZ58mf4vgSdeV6Ek0T4Lu1OWps+WDDSSS+JU+8FH pBWqVVFaGZT1jBwFrAkpf9jkHqZWpoCdRe70Dm2yf+ott/7pt97IRAI89yOADQID AQABo1AwTjAdBgNVHQ4EFgQUvymQxq23gHAlOV/gsJHuyv0/RcwwHwYDVR0jBBgw FoAUvymQxq23gHAlOV/gsJHuyv0/RcwwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B AQUFAAOCAQEAO0lDpRmy8DDkEIx7hiPi0j4Jb36a+GcO0BNLF22i2MmZclwPyy3J DJdXXtK8Ccm8QjvXuayzCgi7S+69YHdj6sXASVvg/ZobC1Kj5s5nrdNcFRz40ZM3 yqgM+0ZPQNi452dfEZfD4Rr+YykIxhLCJuDMunb9H8A6CrygSYcx+g6SgE5CCsPN ZmvJKM0rEhtJeUWQxk2ZwGSY0N+n1wjcqK2JT4mqiBAr8k6W2xD1D3oRwJMdIi2H E3RC45CrVmaO6XamOWPtCNH9AU/FEAJHdPhoyHy8vGU16dfZOVuXEYyuGM9+pI9c jRryG+nDva9y643xPIQVTDyslkzunAA6lA== -----END CERTIFICATE----- ================================================ FILE: sepolicy/vendor/charger.te ================================================ allow charger sysfs_usb_c:file rw_file_perms; allow charger sysfs_msm_subsys:file rw_file_perms; ================================================ FILE: sepolicy/vendor/chre.te ================================================ # This daemon loads the Context Hub Runtime Environment (CHRE) dynamic modules # onto the SLPI using FastRPC, and exposes a sockets interface for clients on # the applications processor to interact CHRE type chre, domain; type chre_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(chre) allow chre ion_device:chr_file { open read }; allow chre qdsp_device:chr_file { ioctl open read }; allow chre system_file:dir read; ================================================ FILE: sepolicy/vendor/cnd.te ================================================ type cnd, domain; type cnd_exec, exec_type, vendor_file_type, file_type; file_type_auto_trans(cnd, socket_device, cnd_socket); # cnd is started by init, type transit from init domain to cnd domain init_daemon_domain(cnd) # allow cnd the following capability allow cnd self:capability { net_admin sys_module net_bind_service }; allow cnd self:capability2 block_suspend; # socket used to communicate with kernel via the netlink syscall allow cnd self:{ netlink_tcpdiag_socket netlink_route_socket netlink_socket netlink_generic_socket # allow cnd to perform socket operation on itself socket } create_socket_perms_no_ioctl; # allow cnd to read tcp diagnostics through netlink allow cnd self:netlink_tcpdiag_socket nlmsg_read; wakelock_use(cnd) allow cnd self:udp_socket create_socket_perms; allowxperm cnd self:udp_socket ioctl SIOCGIFMTU; allow cnd sysfs_timestamp_switch:file r_file_perms; r_dir_file(cnd, sysfs_msm_subsys) r_dir_file(cnd, sysfs_diag) r_dir_file(cnd, sysfs_soc) r_dir_file(cnd, sysfs_esoc) allow cnd proc_meminfo:file r_file_perms; set_prop(cnd, cnd_prop) allow cnd self:socket create_socket_perms; allowxperm cnd self:socket ioctl msm_sock_ipc_ioctls; # To register cnd to hwbinder add_hwservice(cnd, hal_cne_hwservice) hwbinder_use(cnd) get_prop(cnd, hwservicemanager_prop) binder_call(cnd, dataservice_app) binder_call(cnd, ims) # allow cnd to access wpa_socket unix_socket_send(cnd, wpa, hal_wifi_supplicant) allow cnd cnss_vendor_data_file:sock_file write; allow cnd self:netlink_route_socket nlmsg_read; ================================================ FILE: sepolicy/vendor/dataservice_app.te ================================================ get_prop(dataservice_app, cnd_prop) r_dir_file(dataservice_app, sysfs_msm_subsys) binder_call(dataservice_app, cnd) # imsrcsd to bind with UceShimService.apk binder_call(dataservice_app, hal_rcsservice) get_prop(dataservice_app, omadm_prop) allow dataservice_app cgroup:file rw_file_perms; ================================================ FILE: sepolicy/vendor/device.te ================================================ type ab_block_device, dev_type; type at_device, dev_type; type avtimer_device, dev_type; type bt_device, dev_type; type diag_device, dev_type, mlstrustedobject; type dsp_device, dev_type; type easel_device, dev_type; type hbtp_device, dev_type; type latency_device, dev_type; type modem_block_device, dev_type; type persist_block_device, dev_type; type pn81a_device, dev_type; type qsee_ipc_irq_spss_device, dev_type; type qdsp_device, dev_type, mlstrustedobject; type ramdump_device, dev_type; type rmnet_device, dev_type; type gpt_block_device, dev_type; type ramdump_block_device, dev_type; type seemplog_device, dev_type; type sg_device, dev_type; type smd_device, dev_type; type spcom_device, dev_type; type ssd_block_device, dev_type; type ssr_device, dev_type; type thermal_device, dev_type; type wlan_device, dev_type; type xbl_block_device, dev_type; type hvdcp_device, dev_type; type stm_device, dev_type; type neko_device, dev_type; type ipa_dev, dev_type; ================================================ FILE: sepolicy/vendor/domain.te ================================================ # Our dogfood users are in user build allow domain diag_device:chr_file rw_file_perms; # In order for /sys/kernel/debug/kgsl/proc//mem # to be created for memory tracking, the domain of # the tracked process must have permission to search # in /sys/kernel/debug/kgsl allow domain debugfs_kgsl:dir search; allow domain debugfs_ion:dir search; get_prop(domain, public_vendor_default_prop) ================================================ FILE: sepolicy/vendor/dumpstate.te ================================================ userdebug_or_eng(` allow dumpstate proc_modules:file r_file_perms; allow dumpstate proc_stat:file r_file_perms; allow dumpstate persist_file:dir r_dir_perms; allow dumpstate sysfs_leds:dir search; allow dumpstate system_block_device:blk_file r_file_perms; dontaudit dumpstate self:netlink_xfrm_socket create_socket_perms_no_ioctl; binder_call(dumpstate, per_mgr) ') # Allow access to /data/misc/trace allow dumpstate method_trace_data_file:dir rw_dir_perms; allow dumpstate method_trace_data_file:file create_file_perms; allow dumpstate sysfs_scsi_devices_0000:file r_file_perms; allow dumpstate sysfs_scsi_devices_other:file r_file_perms; allow dumpstate sysfs_devices_block_stat:file r_file_perms; dontaudit dumpstate persist_file:dir r_dir_perms; dontaudit dumpstate kernel:system module_request; allow dumpstate adsprpcd_file:dir getattr; allow dumpstate adsprpcd_file:filesystem getattr; ================================================ FILE: sepolicy/vendor/ephemeral_app.te ================================================ allow ephemeral_app toolbox_exec:file { open read execute execute_no_trans getattr}; ================================================ FILE: sepolicy/vendor/esed.te ================================================ # android.hardware.weaver HAL implementation # Clean up naming after via b/38447431 type esed, domain; type esed_exec, exec_type, vendor_file_type, file_type; hal_server_domain(esed, hal_weaver) allow esed pn81a_device:chr_file rw_file_perms; allow esed ese_vendor_data_file:dir create_dir_perms; allow esed ese_vendor_data_file:file create_file_perms; init_daemon_domain(esed) ================================================ FILE: sepolicy/vendor/essential_camera_app.te ================================================ type essential_camera_app, domain; app_domain(essential_camera_app) net_domain(essential_camera_app) # Services from untrusted_app_all. # Should be kept in sync with untrusted_app_all. allow essential_camera_app audioserver_service:service_manager find; allow essential_camera_app cameraserver_service:service_manager find; allow essential_camera_app drmserver_service:service_manager find; allow essential_camera_app mediaserver_service:service_manager find; allow essential_camera_app mediaextractor_service:service_manager find; allow essential_camera_app mediametrics_service:service_manager find; allow essential_camera_app mediadrmserver_service:service_manager find; allow essential_camera_app nfc_service:service_manager find; allow essential_camera_app radio_service:service_manager find; allow essential_camera_app surfaceflinger_service:service_manager find; allow essential_camera_app app_api_service:service_manager find; allow essential_camera_app vr_manager_service:service_manager find; # Execute libraries from RenderScript cache allow essential_camera_app app_data_file:file { rx_file_perms }; # Read memory info allow essential_camera_app proc_meminfo:file r_file_perms; # Read and write system app data files passed over Binder. # Motivating case was /data/data/com.android.settings/cache/*.jpg for # cropping or taking user photos. allow essential_camera_app system_app_data_file:file { read write getattr }; allow essential_camera_app hal_sidecar_essential_hwservice:hwservice_manager find; binder_call(essential_camera_app, hal_sidecar_essential_default) allow essential_camera_app nfc_service:service_manager find; r_dir_file(essential_camera_app, sysfs_usb_device) allow essential_camera_app neko_device:chr_file rw_file_perms; allow essential_camera_app vendor_file:file { getattr open read }; # Allow access to perfd allow essential_camera_app perfd_socket:sock_file write; allow essential_camera_app perfd:unix_stream_socket connectto; ================================================ FILE: sepolicy/vendor/file.te ================================================ type sysfs_camera, sysfs_type, fs_type; type sysfs_clkscale, sysfs_type, fs_type; type sysfs_console_suspend, sysfs_type, fs_type; type sysfs_easel, sysfs_type, fs_type; type sysfs_fingerprint, sysfs_type, fs_type; type sysfs_graphics, sysfs_type, fs_type; type sysfs_laser, sysfs_type, fs_type; type sysfs_mdss_mdp_caps, sysfs_type, fs_type; type sysfs_msm_subsys, sysfs_type, fs_type; type sysfs_msm_subsys_restart, sysfs_type, fs_type; type sysfs_rmtfs, sysfs_type, fs_type; type sysfs_soc, sysfs_type, fs_type; type sysfs_scsi_devices_0000, sysfs_type, fs_type; type sysfs_scsi_devices_other, sysfs_type, fs_type; type sysfs_devices_block_stat, sysfs_type, fs_type; type sysfs_timestamp_switch, sysfs_type, fs_type; type sysfs_touch, sysfs_type, fs_type; type sysfs_usb_c, sysfs_type, fs_type; type sysfs_usb_device, sysfs_type, fs_type; type sysfs_battery_supply, sysfs_type, fs_type; type sysfs_usb_supply, sysfs_type, fs_type; # sysfs vadc device for hvdcp/quickcharge type sysfs_vadc_dev, sysfs_type, fs_type; # sysfs spmi device for hvdcp/quickcharge type sysfs_spmi_dev, sysfs_type, fs_type; type sysfs_audio, sysfs_type, fs_type; type sysfs_perf, sysfs_type, fs_type; type debugfs_clk, debugfs_type, fs_type; type debugfs_ion, debugfs_type, fs_type; type debugfs_ipc, debugfs_type, fs_type; type debugfs_kgsl, debugfs_type, fs_type; type debugfs_rpm, debugfs_type, fs_type; type debugfs_rmt_storage, debugfs_type, fs_type; type debugfs_usb, debugfs_type, fs_type; type debugfs_wlan, debugfs_type, fs_type; type debugfs_mdp, debugfs_type, fs_type; type debugfs_icnss, debugfs_type, fs_type; type debugfs_ufs, debugfs_type, fs_type; type debugfs_dma_bufinfo, debugfs_type, fs_type; # /proc type proc_wifi_dbg, fs_type, proc_type; type proc_sensor, fs_type, proc_type; type proc_kernel, fs_type, proc_type; type qmuxd_socket, file_type; type netmgrd_socket, file_type; type thermal_socket, file_type; type perfd_socket, file_type; type ims_socket, file_type; type ipacm_socket, file_type; type cnd_socket, file_type; type chre_socket, file_type; type hal_bootctl_socket, file_type; type firmware_file, fs_type, contextmount_type; type location_data_file, file_type, data_file_type; type persist_file, file_type; type persist_data_file, file_type; type persist_display_file, file_type; type persist_drm_file, file_type; type persist_elabel_file, file_type; type persist_haptics_file, file_type; type persist_rfs_file, file_type; type persist_sensors_file, file_type; type persist_time_file, file_type; type persist_bluetooth_file, file_type; type netmgr_data_file, file_type, data_file_type; type ipa_vendor_data_file, file_type, data_file_type; type camera_vendor_data_file, file_type, data_file_type; type display_vendor_data_file, file_type, data_file_type; type nfc_vendor_data_file, file_type, data_file_type; type radio_vendor_data_file, file_type, data_file_type, mlstrustedobject; type cnss_vendor_data_file, file_type, data_file_type, mlstrustedobject; type ramdump_vendor_data_file, file_type, data_file_type, mlstrustedobject; type modem_dump_file, file_type, data_file_type; type ese_vendor_data_file, file_type, data_file_type; type sensors_vendor_data_file, file_type, data_file_type; type audio_vendor_data_file, file_type, data_file_type; type time_vendor_data_file, file_type, data_file_type; type hbtp_vendor_data_file, file_type, data_file_type; type tombstone_rfs_vendor_data_file, file_type, data_file_type; type pstore_backup_file, file_type, core_data_file_type, data_file_type; type tracing_shell_writable, fs_type, debugfs_type; type mediadrm_vendor_data_file, file_type, data_file_type; type vendor_firmware_file, vendor_file_type, file_type; type ramdump_data_file, file_type, core_data_file_type, data_file_type, mlstrustedobject; #data sysfs files type sysfs_data, fs_type, sysfs_type; #diag sysfs files type sysfs_diag, fs_type, sysfs_type; type hexagon_halide_file, vendor_file_type, file_type; # input files type idc_file, file_type, vendor_file_type; type keylayout_file, file_type, vendor_file_type; # Battery Stats file typeattribute sysfs_batteryinfo mlstrustedobject; # msm_irqbalance type proc_irq, fs_type, proc_type; type sysfs_irq, fs_type, sysfs_type; type irqbalance_socket, file_type; type sysfs_esoc, sysfs_type, fs_type; # hbtp config file type hbtp_cfg_file, file_type; type hbtp_log_file, file_type; type adsprpcd_file, file_type, vendor_file_type, mlstrustedobject; type rfs_system_file, file_type, system_file_type; ================================================ FILE: sepolicy/vendor/file_contexts ================================================ # dev nodes /dev/btpower u:object_r:bt_device:s0 /dev/diag u:object_r:diag_device:s0 /dev/kgsl-3d0 u:object_r:gpu_device:s0 /dev/rtc0 u:object_r:rtc_device:s0 /dev/smd.* u:object_r:smd_device:s0 # TODO: does ttyMSM0 need to be more specific /dev/ttyMSM0 u:object_r:tty_device:s0 /dev/ipa u:object_r:ipa_dev:s0 /dev/wwan_ioctl u:object_r:ipa_dev:s0 /dev/ipaNatTable u:object_r:ipa_dev:s0 /dev/cpu_dma_latency u:object_r:latency_device:s0 /dev/rmnet_ctrl.* u:object_r:rmnet_device:s0 /dev/at_.* u:object_r:at_device:s0 /dev/video([0-9])+ u:object_r:video_device:s0 /dev/media([0-9])+ u:object_r:video_device:s0 /dev/v4l-subdev.* u:object_r:video_device:s0 /dev/qseecom u:object_r:tee_device:s0 /dev/qsee_ipc_irq_spss u:object_r:qsee_ipc_irq_spss_device:s0 /dev/seemplog u:object_r:seemplog_device:s0 /dev/spcom u:object_r:spcom_device:s0 /dev/jpeg[0-9]* u:object_r:video_device:s0 /dev/adsprpc-smd u:object_r:qdsp_device:s0 /dev/sdsprpc-smd u:object_r:dsp_device:s0 /dev/wcd-dsp-glink u:object_r:audio_device:s0 /dev/wcd_dsp0_control u:object_r:audio_device:s0 /dev/msm_thermal_query u:object_r:thermal_device:s0 /dev/msm_.* u:object_r:audio_device:s0 /dev/avtimer u:object_r:avtimer_device:s0 /dev/subsys_.* u:object_r:ssr_device:s0 /dev/ramdump_.* u:object_r:ramdump_device:s0 /dev/hbtp_input u:object_r:hbtp_device:s0 /dev/hbtp_vm u:object_r:hbtp_device:s0 /dev/sg[0-9]+ u:object_r:sg_device:s0 /dev/sensors u:object_r:sensors_device:s0 /dev/mnh_sm u:object_r:easel_device:s0 /dev/easelcomm-client u:object_r:easel_device:s0 /dev/pn81a u:object_r:pn81a_device:s0 /dev/stmvl53l0_ranging u:object_r:stm_device:s0 /dev/dpl_ctrl u:object_r:rmnet_device:s0 /dev/neko([0-9])+ u:object_r:neko_device:s0 # dev socket nodes /dev/socket/chre u:object_r:chre_socket:s0 /dev/socket/oemlock u:object_r:hal_bootctl_socket:s0 /dev/socket/qmux_audio(/.*)? u:object_r:qmuxd_socket:s0 /dev/socket/qmux_bluetooth(/.*)? u:object_r:qmuxd_socket:s0 /dev/socket/qmux_gps(/.*)? u:object_r:qmuxd_socket:s0 /dev/socket/qmux_nfc(/.*)? u:object_r:qmuxd_socket:s0 /dev/socket/qmux_radio(/.*)? u:object_r:qmuxd_socket:s0 /dev/socket/ims_qmid u:object_r:ims_socket:s0 /dev/socket/ims_datad u:object_r:ims_socket:s0 /dev/socket/ipacm_log_file u:object_r:ipacm_socket:s0 /dev/socket/cnd u:object_r:cnd_socket:s0 /dev/socket/msm_irqbalance u:object_r:irqbalance_socket:s0 /dev/socket/thermal-send-client u:object_r:thermal_socket:s0 /dev/socket/thermal-recv-client u:object_r:thermal_socket:s0 /dev/socket/thermal-recv-passive-client u:object_r:thermal_socket:s0 /dev/socket/thermal-send-rule u:object_r:thermal_socket:s0 /dev/socket/perfd u:object_r:perfd_socket:s0 /dev/socket/netmgr(/.*)? u:object_r:netmgrd_socket:s0 /dev/nq-nci u:object_r:nfc_device:s0 /dev/ttyHS0 u:object_r:hci_attach_dev:s0 /dev/wlan u:object_r:wlan_device:s0 # dev block nodes /dev/block/platform/soc/1da4000\.ufshc/by-name/abl_[ab] u:object_r:ab_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/dsp_[ab] u:object_r:ab_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/cmnlib64_[ab] u:object_r:ab_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/cmnlib_[ab] u:object_r:ab_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/devcfg_[ab] u:object_r:ab_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/hyp_[ab] u:object_r:ab_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/keymaster_[ab] u:object_r:ab_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/pmic_[ab] u:object_r:ab_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/rpm_[ab] u:object_r:ab_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/storsec_[ab] u:object_r:ab_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/tz_[ab] u:object_r:ab_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/nvdef_[ab] u:object_r:ab_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/bluetooth_[ab] u:object_r:ab_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/boot_[ab] u:object_r:boot_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/metadata u:object_r:metadata_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/misc u:object_r:misc_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/frp u:object_r:frp_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/fsc u:object_r:modem_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/fsg u:object_r:modem_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/modem_[ab] u:object_r:modem_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/modemst[12] u:object_r:modem_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/persist u:object_r:persist_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/ramdump u:object_r:ramdump_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/ssd u:object_r:ssd_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/system_[ab] u:object_r:system_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/vendor_[ab] u:object_r:system_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/userdata u:object_r:userdata_block_device:s0 /dev/block/platform/soc/1da4000\.ufshc/by-name/xbl_[ab] u:object_r:xbl_block_device:s0 # Block device holding the GPT, where the A/B attributes are stored. /dev/block/sda u:object_r:gpt_block_device:s0 # Block devices for the drive that holds the xbl_a and xbl_b partitions. /dev/block/sd[bc]1? u:object_r:xbl_block_device:s0 # Block device for hal_bootctl /dev/block/sde u:object_r:boot_block_device:s0 # Block device for ZRAM /dev/block/zram0 u:object_r:swap_block_device:s0 # files in /vendor /vendor/firmware(/.*)? u:object_r:vendor_firmware_file:s0 /vendor/bin/hw/android\.hardware\.dumpstate@1\.0-service.mata u:object_r:hal_dumpstate_impl_exec:s0 /vendor/bin/hw/android\.hardware\.biometrics\.fingerprint@2\.1-service.mata u:object_r:hal_fingerprint_default_exec:s0 /vendor/bin/msm_irqbalance u:object_r:irqbalance_exec:s0 /vendor/bin/perfd u:object_r:perfd_exec:s0 /vendor/bin/thermal-engine u:object_r:thermal-engine_exec:s0 /vendor/bin/sensors.qcom u:object_r:sensors_exec:s0 /vendor/bin/ssr_setup u:object_r:ssr_setup_exec:s0 /vendor/bin/ssr_diag u:object_r:ssr_diag_exec:s0 /vendor/bin/pm-service u:object_r:per_mgr_exec:s0 /vendor/bin/pm-proxy u:object_r:per_proxy_exec:s0 /vendor/bin/qseecomd u:object_r:tee_exec:s0 /vendor/bin/adsprpcd u:object_r:adsprpcd_exec:s0 /vendor/bin/irsc_util u:object_r:irsc_util_exec:s0 /vendor/bin/rmt_storage u:object_r:rmt_storage_exec:s0 /vendor/bin/tftp_server u:object_r:rfs_access_exec:s0 /vendor/bin/cnss-daemon u:object_r:wcnss_service_exec:s0 /vendor/bin/cnss_diag u:object_r:wcnss_service_exec:s0 /vendor/bin/diag_mdlog u:object_r:qlogd_exec:s0 /vendor/bin/netmgrd u:object_r:netmgrd_exec:s0 /vendor/bin/port-bridge u:object_r:port-bridge_exec:s0 /vendor/bin/qti u:object_r:qti_exec:s0 /vendor/bin/ramdump u:object_r:ramdump_exec:s0 /vendor/bin/smlog_dump u:object_r:smlog_dump_exec:s0 /vendor/bin/wcnss_filter u:object_r:wcnss_filter_exec:s0 /vendor/bin/loc_launcher u:object_r:location_exec:s0 /vendor/bin/lowi-server u:object_r:location_exec:s0 /vendor/bin/xtra-daemon u:object_r:location_exec:s0 /vendor/bin/pd-mapper u:object_r:pd_mapper_exec:s0 /vendor/bin/imsqmidaemon u:object_r:ims_exec:s0 /vendor/bin/imsdatadaemon u:object_r:ims_exec:s0 /vendor/bin/ims_rtp_daemon u:object_r:hal_imsrtp_exec:s0 /vendor/bin/ipacm u:object_r:hal_tetheroffload_default_exec:s0 /vendor/bin/ipacm-diag u:object_r:hal_tetheroffload_default_exec:s0 /vendor/bin/qmuxd u:object_r:qmuxd_exec:s0 /vendor/bin/cnd u:object_r:cnd_exec:s0 /vendor/bin/ATFWD-daemon u:object_r:atfwd_exec:s0 # Remove after b/38447389 /vendor/bin/esed u:object_r:esed_exec:s0 # Rename to android.hardware.[XXX] after b/38447431 /vendor/bin/hw/esed u:object_r:esed_exec:s0 /vendor/bin/ese_load u:object_r:init_ese_exec:s0 /vendor/bin/ese-replay u:object_r:esed_exec:s0 /vendor/bin/ese-ls-provision u:object_r:esed_exec:s0 /vendor/bin/hw/android\.hardware\.oemlock@1\.0-service u:object_r:hal_oemlock_default_exec:s0 /vendor/bin/oemlock_provision u:object_r:hal_bootctl_default_exec:s0 /vendor/bin/oemlock-bridge u:object_r:hal_bootctl_default_exec:s0 /vendor/bin/hw/android\.hardware\.usb@1\.0-service.mata u:object_r:hal_usb_default_exec:s0 /vendor/bin/hw/android\.hardware\.power@1\.3-service.mata-libperfmgr u:object_r:hal_power_default_exec:s0 /vendor/bin/hw/android\.hardware\.thermal@1\.0-service.mata u:object_r:hal_thermal_default_exec:s0 /vendor/bin/hw/android\.hardware\.health@2\.0-service.mata u:object_r:hal_health_default_exec:s0 /vendor/bin/chre u:object_r:chre_exec:s0 /vendor/bin/time_daemon u:object_r:time_daemon_exec:s0 /vendor/bin/imsrcsd u:object_r:hal_rcsservice_exec:s0 /vendor/bin/hbtp_daemon u:object_r:hbtp_exec:s0 /vendor/bin/init\.qcom\.devstart\.sh u:object_r:init-qcom-devstart-sh_exec:s0 /vendor/bin/init\.qcom\.ipastart\.sh u:object_r:init-qcom-ipastart-sh_exec:s0 /vendor/bin/init\.insmod\.sh u:object_r:init-insmod-sh_exec:s0 /vendor/etc/init\.insmod\.cfg u:object_r:init-insmod-sh_exec:s0 /vendor/bin/init\.power\.sh u:object_r:init_power_exec:s0 /vendor/bin/init\.radio\.sh u:object_r:init_radio_exec:s0 /vendor/bin/init\.qcom\.bt\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.qcom\.early_boot\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.qcom\.post_boot\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.qcom\.usb\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.mdm\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.mdm\.crashdata\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.qcom\.syspart_fixup\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/hcidump.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/hsic\.control\.bt\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.ath3k\.bt\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.crda\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.qcom\.coex\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.qcom\.debug-sdm660\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.qcom\.debug\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.qcom\.efs\.sync\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.qti\.fm\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.qcom\.sdio\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.qcom\.uicc\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.qcom\.wifi\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.qti\.ims\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/init\.ambientos\.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/btaddr_extract u:object_r:btaddr_extract_exec:s0 /vendor/bin/provision.sh u:object_r:qti_init_shell_exec:s0 /vendor/bin/kb_parser u:object_r:qti_init_shell_exec:s0 /vendor/bin/hdcp1prov u:object_r:qti_init_shell_exec:s0 /vendor/bin/hdcp2p2prov u:object_r:qti_init_shell_exec:s0 /vendor/bin/StoreKeybox u:object_r:qti_init_shell_exec:s0 /vendor/bin/KmInstallKeybox u:object_r:qti_init_shell_exec:s0 /system/bin/move_widevine_data\.sh u:object_r:move-widevine-data-sh_exec:s0 /vendor/bin/hw/android\.hardware\.drm@1\.2-service.widevine u:object_r:hal_drm_widevine_exec:s0 /vendor/bin/hw/android\.hardware\.drm@1\.2-service\.clearkey u:object_r:hal_drm_clearkey_exec:s0 /vendor/bin/hw/android\.hardware\.vibrator@1\.2-service.mata u:object_r:hal_vibrator_default_exec:s0 /vendor/bin/hw/android\.hardware\.gnss@1\.0-service-qti u:object_r:hal_gnss_qti_exec:s0 /vendor/bin/hw/android\.hardware\.neuralnetworks@1\.0-service-hvx u:object_r:hal_neuralnetworks_hvx_exec:s0 /vendor/bin/hw/vendor\.essential\.hardware\.sidecar@1\.0-service u:object_r:hal_sidecar_essential_default_exec:s0 /vendor/bin/wifidisplayhalservice u:object_r:wifidisplayhalservice_qti_exec:s0 ############################################### # same-process HAL files and their dependencies # /vendor/lib(64)?/hw/android\.hardware\.graphics\.mapper@2\.0-impl-2.1\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/hw/gralloc\.msm8998\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libqdMetaData\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libqservice\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libqdutils\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libadreno_utils\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libgsl\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/hw/vulkan\.msm8998\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libEGL_adreno\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libGLESv1_CM_adreno\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libGLESv2_adreno\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libdrmutils\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libdrm\.so u:object_r:same_process_hal_file:s0 # /vendor/app/TimeService/TimeService.apk /vendor/lib(64)?/libTimeService\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libtime_genoff\.so u:object_r:same_process_hal_file:s0 # RenderScript dependencies. # To test: run cts -m CtsRenderscriptTestCases /vendor/lib(64)?/libRSDriver_adreno\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libCB\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libllvm-qgl\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libbccQTI\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libllvm-qcom\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/librs_adreno\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/librs_adreno_sha1\.so u:object_r:same_process_hal_file:s0 /vendor/lib(64)?/libqti-perfd-client\.so u:object_r:same_process_hal_file:s0 # TODO(b/36895509): remove the following 2 lines once this bug is resolved # needed by radio /vendor/lib(64)?/libimsmedia_jni\.so u:object_r:same_process_hal_file:s0 # libGLESv2_adreno depends on this /vendor/lib(64)?/libllvm-glnext\.so u:object_r:same_process_hal_file:s0 # Hexagon DSP host runtime and DSP-side executable needed for Halide operation /vendor/lib(64)?/libadsprpc\.so u:object_r:same_process_hal_file:s0 /vendor/lib/dsp/fastrpc_shell_0 u:object_r:adsprpcd_file:s0 # Hexagon DSP lib to extract image features /vendor/lib/rfsa/adsp/libexternal_dog_skel\.so u:object_r:same_process_hal_file:s0 /vendor/lib/rfsa/adsp/libdspCV_skel\.so u:object_r:same_process_hal_file:s0 /vendor/lib/rfsa/adsp/libapps_mem_heap\.so u:object_r:same_process_hal_file:s0 # thermal sysfs files /sys/class/thermal(/.*)? u:object_r:sysfs_thermal:s0 # data files /data/vendor/netmgr(/.*)? u:object_r:netmgr_data_file:s0 /data/vendor/location(/.*)? u:object_r:location_data_file:s0 /data/ramdump(/.*)? u:object_r:ramdump_data_file:s0 /data/nfc(/.*)? u:object_r:nfc_data_file:s0 /data/vendor/camera(/.*)? u:object_r:camera_vendor_data_file:s0 /data/vendor/display(/.*)? u:object_r:display_vendor_data_file:s0 /data/vendor/nfc(/.*)? u:object_r:nfc_vendor_data_file:s0 /data/vendor/radio(/.*)? u:object_r:radio_vendor_data_file:s0 /data/vendor/wifi/cnss_diag(/.*)? u:object_r:cnss_vendor_data_file:s0 /data/vendor/ramdump(/.*)? u:object_r:ramdump_vendor_data_file:s0 /data/vendor/ssrdump(/.*)? u:object_r:ramdump_vendor_data_file:s0 /data/vendor/modem_dump(/.*)? u:object_r:modem_dump_file:s0 /data/vendor/ese(/.*)? u:object_r:ese_vendor_data_file:s0 /data/vendor/ipa(/.*)? u:object_r:ipa_vendor_data_file:s0 /data/vendor/sensors(/.*)? u:object_r:sensors_vendor_data_file:s0 /data/vendor/misc/audio(/.*)? u:object_r:audio_vendor_data_file:s0 /data/vendor/time(/.*)? u:object_r:time_vendor_data_file:s0 /data/vendor/hbtp(/.*)? u:object_r:hbtp_vendor_data_file:s0 /data/vendor/tombstones/rfs(/.*)? u:object_r:tombstone_rfs_vendor_data_file:s0 /data/vendor/mediadrm(/.*)? u:object_r:mediadrm_vendor_data_file:s0 # input files /vendor/usr/idc(/.*)? u:object_r:idc_file:s0 /vendor/usr/keylayout(/.*)? u:object_r:keylayout_file:s0 # / /tombstones u:object_r:rootfs:s0 /vendor/lib/dsp(/.*)? u:object_r:adsprpcd_file:s0 # files in firmware /firmware u:object_r:rootfs:s0 # TODO: Remove them once no need to maintain the backward compatibility. (b/111219177) /persist u:object_r:rootfs:s0 /dsp u:object_r:rootfs:s0 # /mnt/vendor/persist /mnt/vendor/persist(/.*)? u:object_r:persist_file:s0 /mnt/vendor/persist/data(/.*)? u:object_r:persist_data_file:s0 /mnt/vendor/persist/display(/.*)? u:object_r:persist_display_file:s0 /mnt/vendor/persist/drm(/.*)? u:object_r:persist_drm_file:s0 /mnt/vendor/persist/elabel(/.*)? u:object_r:persist_elabel_file:s0 /mnt/vendor/persist/haptics(/.*)? u:object_r:persist_haptics_file:s0 /mnt/vendor/persist/hlos_rfs(/.*)? u:object_r:persist_rfs_file:s0 /mnt/vendor/persist/rfs(/.*)? u:object_r:persist_rfs_file:s0 /mnt/vendor/persist/sensors(/.*)? u:object_r:persist_sensors_file:s0 /mnt/vendor/persist/time(/.*)? u:object_r:persist_time_file:s0 /mnt/vendor/persist/bluetooth(/.*)? u:object_r:persist_bluetooth_file:s0 /metadata u:object_r:rootfs:s0 /metadata/.* u:object_r:vold_data_file:s0 /vendor/bin/hvdcp_opti u:object_r:hvdcp_exec:s0 /sys/devices/virtual/block/.*/stat u:object_r:sysfs_devices_block_stat:s0 ================================================ FILE: sepolicy/vendor/fsck.te ================================================ allow fsck persist_block_device:blk_file rw_file_perms; ================================================ FILE: sepolicy/vendor/gatekeeperd.te ================================================ set_prop(gatekeeperd, keymaster_prop) ================================================ FILE: sepolicy/vendor/genfs_contexts ================================================ # TODO: genfs doesn't apply correctly to linked files (b/64270911) genfscon proc /debug/fwdump u:object_r:proc_wifi_dbg:s0 genfscon proc /debugdriver/driverdump u:object_r:proc_wifi_dbg:s0 genfscon proc /ath_pktlog/cld u:object_r:proc_wifi_dbg:s0 genfscon proc /irq u:object_r:proc_irq:s0 genfscon proc /sensordata/ToF u:object_r:proc_sensor:s0 genfscon proc /sys/kernel/sched_upmigrate u:object_r:proc_kernel:s0 genfscon proc /sys/kernel/sched_downmigrate u:object_r:proc_kernel:s0 genfscon proc /sys/kernel/sched_group_upmigrate u:object_r:proc_kernel:s0 genfscon proc /sys/kernel/sched_group_downmigrate u:object_r:proc_kernel:s0 genfscon proc /sys/kernel/sched_select_prev_cpu_us u:object_r:proc_kernel:s0 genfscon proc /sys/kernel/sched_freq_inc_notify u:object_r:proc_kernel:s0 genfscon proc /sys/kernel/sched_freq_dec_notify u:object_r:proc_kernel:s0 genfscon proc /sys/kernel/printk u:object_r:proc_kernel:s0 genfscon proc /sys/kernel/sched_spill_nr_run u:object_r:proc_kernel:s0 genfscon proc /sys/kernel/sched_restrict_cluster_spill u:object_r:proc_kernel:s0 genfscon proc /sys/kernel/sched_prefer_sync_wakee_to_waker u:object_r:proc_kernel:s0 genfscon proc /sys/kernel/sched_boost u:object_r:proc_kernel:s0 genfscon sysfs /devices/soc/soc:qcom,cpubw u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/soc:qcom,mincpubw u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /class/devfreq u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/soc:qcom,memlat-cpu0 u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/soc:qcom,memlat-cpu4 u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /android_touch u:object_r:sysfs_touch:s0 genfscon sysfs /devices/soc/1da4000.ufshc/host0/target0:0:0/0:0:0:0 u:object_r:sysfs_scsi_devices_0000:s0 genfscon sysfs /devices/soc/1da4000.ufshc/host0/target0:0:0/0:0:0:1 u:object_r:sysfs_scsi_devices_other:s0 genfscon sysfs /devices/soc/1da4000.ufshc/host0/target0:0:0/0:0:0:2 u:object_r:sysfs_scsi_devices_other:s0 genfscon sysfs /devices/soc/1da4000.ufshc/host0/target0:0:0/0:0:0:3 u:object_r:sysfs_scsi_devices_other:s0 genfscon sysfs /devices/soc/1da4000.ufshc/host0/target0:0:0/0:0:0:4 u:object_r:sysfs_scsi_devices_other:s0 genfscon sysfs /devices/soc/1da4000.ufshc/host0/target0:0:0/0:0:0:5 u:object_r:sysfs_scsi_devices_other:s0 genfscon sysfs /class/uio u:object_r:sysfs_uio:s0 genfscon sysfs /devices/soc/1da4000.ufshc/clkscale_enable u:object_r:sysfs_clkscale:s0 genfscon sysfs /devices/bt_wcn3990 u:object_r:sysfs_bluetooth_writable:s0 genfscon sysfs /devices/soc/a1800000.qcom,rmtfs_rtel_sharedmem u:object_r:sysfs_rmtfs:s0 genfscon sysfs /devices/soc/c17a000.i2c u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/soc:qcom,gpubw u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/800f000.qcom,spmi u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/4080000.qcom,mss u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/17300000.qcom,lpass u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/1d0101c.qcom,spss u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/5c00000.qcom,ssc u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/c900000.qcom,mdss_rotator u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/c900000.qcom,mdss_mdp/caps u:object_r:sysfs_mdss_mdp_caps:s0 genfscon sysfs /devices/soc/c17a000.i2c/i2c-6/6-005a/leds u:object_r:sysfs_leds:s0 genfscon sysfs /devices/soc/c1b5000.i2c/i2c-7/7-0030/leds u:object_r:sysfs_leds:s0 genfscon sysfs /devices/soc/c900000.qcom,mdss_mdp/c900000.qcom,mdss_mdp:qcom,mdss_fb_primary/leds u:object_r:sysfs_leds:s0 genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-03/800f000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d000/leds u:object_r:sysfs_leds:s0 genfscon sysfs /devices/soc/5000000.qcom,kgsl-3d0 u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/soc:qcom,kgsl-hyp u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/soc:qcom,ipa_fws@1e08000 u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/cce0000.qcom,venus u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/0.qcom,rmtfs_sharedmem u:object_r:sysfs_rmtfs:s0 genfscon sysfs /devices/soc/soc:fpc,fpc1020 u:object_r:sysfs_fingerprint:s0 genfscon sysfs /devices/virtual/timed_output/vibrator/vmax_mv u:object_r:sysfs_vibrator:s0 genfscon sysfs /devices/virtual/thermal u:object_r:sysfs_thermal:s0 genfscon sysfs /devices/virtual/switch/hdmi/state u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/switch/mata_headset/state u:object_r:sysfs_audio:s0 genfscon sysfs /module/msm_thermal u:object_r:sysfs_thermal:s0 genfscon sysfs /module/printk/parameters/console_suspend u:object_r:sysfs_console_suspend:s0 genfscon sysfs /module/diagchar/parameters/timestamp_switch u:object_r:sysfs_timestamp_switch:s0 genfscon sysfs /devices/virtual/graphics/fb0 u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/graphics/fb1 u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/graphics/fb0/msm_fb_panel_info u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/graphics/fb1/msm_fb_panel_info u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/graphics/fb2/msm_fb_panel_info u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/graphics/fb3/msm_fb_panel_info u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/graphics/fb3/hpd u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/graphics/fb3/res_info u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/graphics/fb3/s3d_mode u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/graphics/fb3/msm_fb_dfps_mode u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/graphics/fb3/pa u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/graphics/fb3/hdcp/tp u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/graphics/fb2/lineptr_value u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/graphics/fb2/msm_fb_persist_mode u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/graphics/fb3/lineptr_value u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/graphics/fb3/msm_fb_persist_mode u:object_r:sysfs_graphics:s0 genfscon sysfs /devices/virtual/misc/mnh_sm u:object_r:sysfs_easel:s0 genfscon sysfs /devices/soc/8c0000.qcom,msm-cam u:object_r:sysfs_camera:s0 genfscon sysfs /devices/soc0 u:object_r:sysfs_soc:s0 genfscon sysfs /devices/soc/caa0000.qcom,jpeg u:object_r:sysfs_camera:s0 genfscon sysfs /devices/soc/caa4000.qcom,fd u:object_r:sysfs_camera:s0 genfscon sysfs /devices/soc/780000.qcom,msm-core/uio/uio1/name u:object_r:sysfs_thermal:s0 genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qpnp,fg/power_supply/bms u:object_r:sysfs_batteryinfo:s0 genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qpnp,fg/power_supply/bms/capacity u:object_r:sysfs_batteryinfo:s0 genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/battery/capacity u:object_r:sysfs_batteryinfo:s0 genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,usb-pdphy@1700/usbpd/usbpd0 u:object_r:sysfs_usb_c:s0 genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/usb/present u:object_r:sysfs_usb_c:s0 genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/battery/input_current_limited u:object_r:sysfs_usb_c:s0 genfscon sysfs /devices/soc/c1b5000.i2c/i2c-7/7-0008/c1b5000.i2c:qcom,smb138x@8:qcom,smb138x-parallel-slave@1000/power_supply/parallel/charging_enabled u:object_r:sysfs_usb_c:s0 genfscon sysfs /devices/soc/c1b5000.i2c/i2c-7/7-0008/c1b5000.i2c:qcom,smb138x@8:qcom,smb138x-parallel-slave@1000/power_supply/parallel/input_suspend u:object_r:sysfs_batteryinfo:s0 genfscon sysfs /devices/soc/c1b5000.i2c/i2c-7/7-0008/c1b5000.i2c:qcom,smb138x@8:qcom,smb138x-parallel-slave@1000/power_supply/parallel/connector_health u:object_r:sysfs_usb_c:s0 genfscon sysfs /devices/soc/c1b5000.i2c/i2c-7/7-0008/c1b5000.i2c:qcom,smb138x@8:qcom,smb138x-parallel-slave@1000/power_supply/parallel/model_name u:object_r:sysfs_usb_c:s0 genfscon sysfs /devices/soc/c1b5000.i2c/i2c-7/7-0008/c1b5000.i2c:qcom,smb138x@8:qcom,smb138x-parallel-slave@1000/power_supply/parallel/charger_temp u:object_r:sysfs_usb_c:s0 genfscon sysfs /devices/soc/c1b5000.i2c/i2c-7/7-0008/c1b5000.i2c:qcom,smb138x@8:qcom,smb138x-parallel-slave@1000/power_supply/parallel/parallel_mode u:object_r:sysfs_usb_c:s0 genfscon sysfs /devices/soc/c1b5000.i2c/i2c-7/7-0008/c1b5000.i2c:qcom,smb138x@8:qcom,smb138x-parallel-slave@1000/power_supply/parallel/input_current_limited u:object_r:sysfs_usb_c:s0 genfscon sysfs /class/qcom-battery/parallel_pct u:object_r:sysfs_batteryinfo:s0 genfscon sysfs /bus/msm_subsys u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /bus/esoc u:object_r:sysfs_esoc:s0 genfscon sysfs /module/subsystem_restart u:object_r:sysfs_msm_subsys_restart:s0 genfscon sysfs /kernel/boot_adsp/boot u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /kernel/boot_slpi/boot u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /devices/soc/c1b7000.i2c/i2c-9/9-0008 u:object_r:sysfs_easel:s0 genfscon sysfs /class/typec u:object_r:sysfs_usb_c:s0 genfscon sysfs /class/typec/usbc0 u:object_r:sysfs_usb_c:s0 genfscon sysfs /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb1 u:object_r:sysfs_usb_device:s0 genfscon sysfs /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb2 u:object_r:sysfs_usb_device:s0 genfscon sysfs /devices/soc/1c00000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1 u:object_r:sysfs_usb_device:s0 genfscon sysfs /devices/soc/1c00000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb2 u:object_r:sysfs_usb_device:s0 genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,usb-pdphy@1700/usbpd0/typec u:object_r:sysfs_usb_c:s0 genfscon sysfs /module/diagchar u:object_r:sysfs_diag:s0 genfscon sysfs /module/msm_performance/parameters/managed_cpus u:object_r:sysfs_perf:s0 genfscon sysfs /module/msm_performance/parameters/num_clusters u:object_r:sysfs_perf:s0 genfscon sysfs /module/msm_performance/events/cpu_hotplug u:object_r:sysfs_perf:s0 genfscon sysfs /module/msm_performance/parameters/cpu_min_freq u:object_r:sysfs_perf:s0 genfscon sysfs /module/msm_performance/parameters/cpu_max_freq u:object_r:sysfs_perf:s0 genfscon sysfs /module/msm_performance/workload_modes/aggr_iobusy u:object_r:sysfs_perf:s0 genfscon sysfs /module/msm_performance/workload_modes/aggr_mode u:object_r:sysfs_perf:s0 genfscon sysfs /kernel/irq_helper/irq_blacklist_on u:object_r:sysfs_irq:s0 genfscon sysfs /module/cpu_boost/parameters/input_boost_freq u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /module/cpu_boost/parameters/input_boost_ms u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /module/msm_thermal/core_control/enabled u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /module/lpm_levels/system/pwr/cpu0/ret/idle_enabled u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /module/lpm_levels/system/pwr/cpu1/ret/idle_enabled u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /module/lpm_levels/system/pwr/cpu2/ret/idle_enabled u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /module/lpm_levels/system/pwr/cpu3/ret/idle_enabled u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /module/lpm_levels/system/perf/cpu4/ret/idle_enabled u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /module/lpm_levels/system/perf/cpu5/ret/idle_enabled u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /module/lpm_levels/system/perf/cpu6/ret/idle_enabled u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /module/lpm_levels/system/perf/cpu7/ret/idle_enabled u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /module/lpm_levels/system/pwr/pwr-l2-dynret/idle_enabled u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /module/lpm_levels/system/pwr/pwr-l2-ret/idle_enabled u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /module/lpm_levels/system/perf/perf-l2-dynret/idle_enabled u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /module/lpm_levels/system/perf/perf-l2-ret/idle_enabled u:object_r:sysfs_msm_subsys:s0 genfscon sysfs /module/lpm_levels/parameters/sleep_disabled u:object_r:sysfs_msm_subsys:s0 genfscon debugfs /kgsl/proc u:object_r:debugfs_kgsl:s0 genfscon debugfs /clk/debug_suspend u:object_r:debugfs_clk:s0 genfscon debugfs /wlan0 u:object_r:debugfs_wlan:s0 genfscon debugfs /rpm_stats u:object_r:debugfs_rpm:s0 genfscon debugfs /rpm_master_stats u:object_r:debugfs_rpm:s0 genfscon debugfs /ion u:object_r:debugfs_ion:s0 genfscon debugfs /ipc_logging u:object_r:debugfs_ipc:s0 genfscon debugfs /system_stats u:object_r:debugfs_rpm:s0 genfscon debugfs /tcpm/usbpd0 u:object_r:debugfs_usb:s0 genfscon debugfs /pd_engine/usbpd0 u:object_r:debugfs_usb:s0 genfscon debugfs /ipc_logging/smblib/log u:object_r:debugfs_usb:s0 genfscon debugfs /msm_ipc_router u:object_r:debugfs_ipc:s0 genfscon debugfs /mdp u:object_r:debugfs_mdp:s0 genfscon debugfs /rmt_storage u:object_r:debugfs_rmt_storage:s0 genfscon debugfs /icnss u:object_r:debugfs_icnss:s0 genfscon debugfs /ufshcd0 u:object_r:debugfs_ufs:s0 genfscon debugfs /dma_buf/bufinfo u:object_r:debugfs_dma_bufinfo:s0 ================================================ FILE: sepolicy/vendor/gpuservice.te ================================================ allow gpuservice dumpstate:fd use; allow gpuservice dumpstate:fifo_file write; ================================================ FILE: sepolicy/vendor/hal_audio_default.te ================================================ r_dir_file(hal_audio_default, sysfs_soc) allow hal_audio_default perfd:unix_stream_socket connectto; allow hal_audio_default perfd_socket:sock_file write; userdebug_or_eng(` allow hal_audio diag_device:chr_file rw_file_perms; ') allow hal_audio_default audio_vendor_data_file:dir create_dir_perms; allow hal_audio_default audio_vendor_data_file:file create_file_perms; r_dir_file(hal_audio_default, sysfs_audio) set_prop(hal_audio_default, mqa_hd_prop) allow hal_audio_default firmware_file:dir r_dir_perms; allow hal_audio_default firmware_file:file r_file_perms; allow hal_audio_default mnt_vendor_file:dir search; ================================================ FILE: sepolicy/vendor/hal_bluetooth_default.te ================================================ allow hal_bluetooth_default bt_device:chr_file rw_file_perms; allow hal_bluetooth_default wcnss_filter:unix_stream_socket connectto; # talk to system_server to set priority allow hal_bluetooth fwk_scheduler_hwservice:hwservice_manager find; allow hal_bluetooth system_server:binder call; set_prop(hal_bluetooth_default, wc_prop) ================================================ FILE: sepolicy/vendor/hal_bootctl.te ================================================ # These are the permissions required to use the boot_control HAL implemented # here: hardware/qcom/bootctrl/boot_control.c # Getting and setting GPT attributes for the bootloader iterates over all the # partition names in the block_device directory /dev/block/.../by-name allow hal_bootctl block_device:dir r_dir_perms; # Edit the attributes stored in the GPT. allow hal_bootctl gpt_block_device:blk_file rw_file_perms; allow hal_bootctl ab_block_device:blk_file getattr; allow hal_bootctl boot_block_device:blk_file rw_file_perms; allow hal_bootctl modem_block_device:blk_file getattr; allow hal_bootctl system_block_device:blk_file getattr; # Access /dev/sgN devices (generic SCSI) to write the # A/B slot selection for the XBL partition. Allow also to issue a # UFS_IOCTL_QUERY ioctl. allow hal_bootctl sg_device:chr_file rw_file_perms; allow hal_bootctl self:capability sys_admin; allow hal_bootctl tmpfs:lnk_file r_file_perms; # Read the sysfs to lookup what /dev/sgN device # corresponds to the XBL partitions. allow hal_bootctl sysfs:dir r_dir_perms; # Write to the XBL devices. allow hal_bootctl xbl_block_device:blk_file rw_file_perms; # Expose a socket for brokered boot message access for hal_oemlock. allow hal_bootctl hal_bootctl_socket:sock_file create_file_perms; ================================================ FILE: sepolicy/vendor/hal_bootctl_default.te ================================================ allow hal_bootctl_default sysfs_scsi_devices_other:file rw_file_perms; allow hal_bootctl_default sysfs_scsi_devices_other:dir { open read search }; ================================================ FILE: sepolicy/vendor/hal_camera.te ================================================ # communicate with perfd allow hal_camera perfd:unix_stream_socket connectto; allow hal_camera perfd_socket:sock_file write; allow hal_camera perfd_socket:sock_file w_file_perms; allow hal_camera self:capability sys_nice; # communicate with camera #allow hal_camera camera:unix_dgram_socket sendto; #allow hal_camera camera_data_file:sock_file write; #allow hal_camera camera_device:chr_file rw_file_perms; allow hal_camera gpu_device:chr_file rw_file_perms; # access to /dev/input/event{5,10} allow hal_camera input_device:dir r_dir_perms; allow hal_camera input_device:chr_file r_file_perms; set_prop(hal_camera, camera_prop) #allow hal_camera sysfs_enable_ps_sensor:file w_file_perms; r_dir_file(hal_camera, sysfs_type) # find libraries allow hal_camera system_file:dir r_dir_perms; allow hal_camera qdisplay_service:service_manager find; # talk to system_server allow hal_camera system_server:unix_stream_socket { read write }; allow hal_camera self:socket { create ioctl read write }; # Grant access to Qualcomm MSM Interface (QMI) radio sockets # qmux_socket(hal_camera) # allow hal_camera to call some socket ioctls allowxperm hal_camera self:socket ioctl { IPC_ROUTER_IOCTL_LOOKUP_SERVER IPC_ROUTER_IOCTL_BIND_CONTROL_PORT }; # ignore spurious denial dontaudit hal_camera graphics_device:dir search; userdebug_or_eng(` allow hal_camera diag_device:chr_file rw_file_perms; ') # access easel dev nodes allow hal_camera easel_device:chr_file { read write ioctl open getattr }; allow hal_camera sysfs_easel:file rw_file_perms; # access hexagon allow hal_camera qdsp_device:chr_file r_file_perms; ================================================ FILE: sepolicy/vendor/hal_camera_default.te ================================================ allow hal_camera_default input_device:dir r_dir_perms; allow hal_camera_default sysfs_laser:file w_file_perms; vndbinder_use(hal_camera_default); allow hal_camera_default qdisplay_service:service_manager { find }; allow hal_camera_default hal_graphics_mapper_hwservice:hwservice_manager find; hal_client_domain(hal_camera_default, hal_configstore) binder_call(hal_camera_default, hal_graphics_composer) binder_call(hal_camera_default, system_server) binder_call(hal_camera_default, hal_graphics_allocator) # For interfacing with PowerHAL and ThermalHAL hal_client_domain(hal_camera_default, hal_power) hal_client_domain(hal_camera_default, hal_thermal) # For camera team debugging userdebug_or_eng(` allow hal_camera_default camera_vendor_data_file:dir create_dir_perms; allow hal_camera_default camera_vendor_data_file:file create_file_perms; ') allow hal_camera_default persist_sensors_file:dir search; allow hal_camera_default persist_sensors_file:file r_file_perms; allow hal_camera_default stm_device:chr_file { ioctl open read }; r_dir_file(hal_camera_default, proc_sensor) r_dir_file(hal_camera_default, persist_file); allow hal_camera_default firmware_file:dir r_dir_perms; allow hal_camera_default firmware_file:file r_file_perms; allow hal_camera_default mnt_vendor_file:lnk_file r_file_perms; allow hal_camera_default mnt_vendor_file:dir r_dir_perms; ================================================ FILE: sepolicy/vendor/hal_cas_default.te ================================================ # Allow CAS HAL to use vendor-binder service vndbinder_use(hal_cas_default); ================================================ FILE: sepolicy/vendor/hal_contexthub.te ================================================ # Allow context hub HAL to communicate with daemon via socket allow hal_contexthub_default chre:unix_stream_socket connectto; allow hal_contexthub_default chre_socket:sock_file write; ================================================ FILE: sepolicy/vendor/hal_drm_clearkey.te ================================================ # policy for /vendor/bin/hw/android.hardware.drm@1.1-service.clearkey type hal_drm_clearkey, domain; type hal_drm_clearkey_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(hal_drm_clearkey) hal_server_domain(hal_drm_clearkey, hal_drm) vndbinder_use(hal_drm_clearkey); allow hal_drm_clearkey { appdomain -isolated_app }:fd use; ================================================ FILE: sepolicy/vendor/hal_drm_default.te ================================================ allow hal_drm_default vndbinder_device:chr_file rw_file_perms; ================================================ FILE: sepolicy/vendor/hal_drm_widevine.te ================================================ # define SELinux domain type hal_drm_widevine, domain; hal_server_domain(hal_drm_widevine, hal_drm) type hal_drm_widevine_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(hal_drm_widevine) allow hal_drm mediacodec:fd use; allow hal_drm { appdomain -isolated_app }:fd use; # The Qualcomm DRM-HAL implementation uses a vendor-binder service provided # by the HWC HAL. vndbinder_use(hal_drm_widevine); allow hal_drm_widevine qdisplay_service:service_manager { find }; binder_call(hal_drm_widevine, hal_graphics_composer) allow hal_drm_widevine firmware_file:dir search; allow hal_drm_widevine firmware_file:file r_file_perms; allow hal_drm_widevine hal_allocator_server:fd use; allow hal_drm_widevine mediadrm_vendor_data_file:dir create_dir_perms; allow hal_drm_widevine mediadrm_vendor_data_file:file create_file_perms; ================================================ FILE: sepolicy/vendor/hal_dumpstate_impl.te ================================================ type hal_dumpstate_impl, domain; hal_server_domain(hal_dumpstate_impl, hal_dumpstate) type hal_dumpstate_impl_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(hal_dumpstate_impl) # Execute dump scripts from vendor partition allow hal_dumpstate_impl vendor_shell_exec:file rx_file_perms; allow hal_dumpstate_impl vendor_toolbox_exec:file rx_file_perms; userdebug_or_eng(` # smlog_dump domain_auto_trans(hal_dumpstate_impl, smlog_dump_exec, smlog_dump) allow hal_dumpstate_impl modem_dump_file:dir create_dir_perms; allow hal_dumpstate_impl modem_dump_file:file create_file_perms; allow hal_dumpstate_impl radio_vendor_data_file:dir r_dir_perms; allow hal_dumpstate_impl netmgr_data_file:dir r_dir_perms; allow hal_dumpstate_impl radio_vendor_data_file:file r_file_perms; allow hal_dumpstate_impl netmgr_data_file:file r_file_perms; allow hal_dumpstate_impl sysfs_usb_device:dir r_dir_perms; allow hal_dumpstate_impl sysfs_usb_device:file r_file_perms; allow hal_dumpstate_impl sysfs_msm_subsys:file write; set_prop(hal_dumpstate_impl, modem_diag_prop) ') allow hal_dumpstate_impl uio_device:chr_file rw_file_perms; r_dir_file(hal_dumpstate_impl, sysfs_uio) r_dir_file(hal_dumpstate_impl, sysfs_rmtfs) r_dir_file(hal_dumpstate_impl, sysfs_msm_subsys) r_dir_file(hal_dumpstate_impl, sysfs_soc) r_dir_file(hal_dumpstate_impl, sysfs_thermal) r_dir_file(hal_dumpstate_impl, sysfs_easel) allow hal_dumpstate_impl debugfs_ion:dir r_dir_perms; allow hal_dumpstate_impl debugfs_ion:file r_file_perms; allow hal_dumpstate_impl debugfs_rpm:file r_file_perms; allow hal_dumpstate_impl debugfs_wlan:dir r_dir_perms; allow hal_dumpstate_impl debugfs_wlan:file r_file_perms; allow hal_dumpstate_impl debugfs_icnss:dir r_dir_perms; allow hal_dumpstate_impl debugfs_icnss:file r_file_perms; allow hal_dumpstate_impl debugfs_ipc:dir r_dir_perms; allow hal_dumpstate_impl debugfs_ipc:file r_file_perms; allow hal_dumpstate_impl proc_stat:file r_file_perms; allow hal_dumpstate_impl debugfs_ufs:dir r_dir_perms; allow hal_dumpstate_impl debugfs_ufs:file r_file_perms; allow hal_dumpstate_impl dumpstate:fifo_file w_file_perms; # Access to files for dumping allow hal_dumpstate_impl sysfs:dir r_dir_perms; # rpm stat # usb logs allow hal_dumpstate_impl debugfs_usb:file r_file_perms; #Access display debug data allow hal_dumpstate_impl display_vendor_data_file:dir r_dir_perms; allow hal_dumpstate_impl display_vendor_data_file:file r_file_perms; # Access to touch firmware info allow hal_dumpstate_impl sysfs_touch:dir r_dir_perms; allow hal_dumpstate_impl sysfs_touch:file rw_file_perms; # Access to UFS info allow hal_dumpstate_impl sysfs_scsi_devices_0000:dir r_dir_perms; allow hal_dumpstate_impl sysfs_scsi_devices_0000:file r_file_perms; # Access Sidecar entries allow hal_dumpstate_impl usb_serial_device:chr_file rw_file_perms; allow hal_dumpstate_impl usb_serial_device:file rw_file_perms; allow hal_dumpstate_impl shell_data_file:file getattr; userdebug_or_eng(`allow hal_dumpstate_impl debugfs_dma_bufinfo:file r_file_perms;') dontaudit hal_dumpstate_impl debugfs_dma_bufinfo:file r_file_perms; ================================================ FILE: sepolicy/vendor/hal_fingerprint.te ================================================ allow hal_fingerprint sysfs_fingerprint:dir r_dir_perms; allow hal_fingerprint sysfs_fingerprint:file rw_file_perms; allow hal_fingerprint sysfs_msm_subsys:dir search; allow hal_fingerprint sysfs_msm_subsys:file r_file_perms; allow hal_fingerprint tee_device:file rw_file_perms; allow hal_fingerprint tee_device:chr_file rw_file_perms; allow hal_fingerprint uhid_device:chr_file rw_file_perms; allow hal_fingerprint sysfs_camera:dir search; allow hal_fingerprint sysfs_camera:file r_file_perms; ================================================ FILE: sepolicy/vendor/hal_fingerprint_default.te ================================================ typeattribute hal_fingerprint_default binder_in_vendor_violators; binder_use(hal_fingerprint_default) allow hal_fingerprint_default firmware_file:dir r_dir_perms; allow hal_fingerprint_default firmware_file:file r_file_perms; allow hal_fingerprint_default tee_device:chr_file rw_file_perms; allow hal_fingerprint_default vndbinder_device:chr_file rw_file_perms; # TODO(b/36644492): Remove data_between_core_and_vendor_violators once # hal_fingerprint no longer directly accesses fingerprintd_data_file. typeattribute hal_fingerprint_default data_between_core_and_vendor_violators; # access to /data/system/users/[0-9]+/fpdata allow hal_fingerprint_default fingerprintd_data_file:file create_file_perms; allow hal_fingerprint_default fingerprintd_data_file:dir rw_dir_perms; ================================================ FILE: sepolicy/vendor/hal_gatekeeper.te ================================================ set_prop(hal_gatekeeper, keymaster_prop) get_prop(hal_gatekeeper, tee_listener_prop) ================================================ FILE: sepolicy/vendor/hal_gnss_qti.te ================================================ type hal_gnss_qti, domain; hal_server_domain(hal_gnss_qti, hal_gnss) type hal_gnss_qti_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(hal_gnss_qti) r_dir_file(hal_gnss_qti, sysfs_msm_subsys) vndbinder_use(hal_gnss_qti) allow hal_gnss_qti sysfs_soc:dir r_dir_perms; allow hal_gnss_qti sysfs_soc:file r_file_perms; binder_call(hal_gnss_qti, per_mgr) allow hal_gnss_qti per_mgr_service:service_manager find; # /data/vendor/location allow hal_gnss_qti location_data_file:fifo_file { open read setattr write }; allow hal_gnss_qti location_data_file:dir create_dir_perms; allow hal_gnss_qti location_data_file:sock_file write; allow hal_gnss_qti location:unix_stream_socket connectto; allow hal_gnss_qti self:socket create_socket_perms; allowxperm hal_gnss_qti self:socket ioctl msm_sock_ipc_ioctls; unix_socket_connect(hal_gnss_qti, netmgrd, netmgrd) allow hal_gnss_qti netmgrd_socket:dir search; allow hal_gnss_qti self:netlink_generic_socket { bind create read }; allow hal_gnss_qti self:netlink_route_socket { bind create nlmsg_read read write }; # Most HALs are not allowed to use network sockets. Qcom library # libqdi is used across multiple processes which are clients of # netmgrd including the GNSS HAL. libqdi first attempts to get the network # interface using an IOCTL on a UDP INET socket, which isn't allowed here. # If that fails, it falls back to using libc's if_nameindex() which requires # a netlink route socket, which HALs may use. Due to the initial # attempt to use a UDP socket, we still see a selinux denial, # but it is safe to ignore. # TODO (b/37730994) Remove udp_socket requirement from # libqdi and have all its clients use netlink route # sockets. dontaudit hal_gnss_qti self:udp_socket create; r_dir_file(hal_gnss_qti, sysfs_esoc) ================================================ FILE: sepolicy/vendor/hal_graphics_composer_default.te ================================================ # Binder access (for display.qservice) vndbinder_use(hal_graphics_composer_default) allow hal_graphics_composer_default qdisplay_service:service_manager { add find }; allow hal_graphics_composer_default persist_display_file:dir search; allow hal_graphics_composer_default persist_display_file:file r_file_perms; allow hal_graphics_composer_default sysfs_camera:dir search; allow hal_graphics_composer_default sysfs_camera:file r_file_perms; allow hal_graphics_composer_default sysfs_msm_subsys:dir search; allow hal_graphics_composer_default sysfs_msm_subsys:file r_file_perms; allow hal_graphics_composer_default sysfs_mdss_mdp_caps:file r_file_perms; allow hal_graphics_composer_default persist_file:dir search; allow hal_graphics_composer_default persist_file:lnk_file read; # Allow dir search in '/mnt/vendor' allow hal_graphics_composer_default mnt_vendor_file:dir search; allow hal_graphics_composer_default mnt_vendor_file:file r_file_perms; # Allow dir search in '/mnt/vendor/persist/display(/.*)?' allow hal_graphics_composer_default persist_display_file:dir r_dir_perms; allow hal_graphics_composer_default persist_display_file:file r_file_perms; allow hal_graphics_composer_default firmware_file:dir r_dir_perms; allow hal_graphics_composer_default firmware_file:file r_file_perms; allow hal_graphics_composer_default hal_graphics_mapper_hwservice:hwservice_manager find; r_dir_file(hal_graphics_composer_default, sysfs_leds) # TODO(b/37666508): Remove the following line upon resolution of the bug allow hal_graphics_composer_default video_device:chr_file rw_file_perms; # HWC_UeventThread allow hal_graphics_composer_default self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; # Access /sys/devices/virtual/graphics/fb0 r_dir_file(hal_graphics_composer_default, sysfs_type) r_dir_file(hal_graphics_composer_default, sysfs_graphics) allow hal_graphics_composer_default sysfs_graphics:file rw_file_perms; allow hal_graphics_composer_default display_vendor_data_file:dir create_dir_perms; allow hal_graphics_composer_default display_vendor_data_file:file create_file_perms; userdebug_or_eng(` allow hal_graphics_composer_default debugfs_mdp:dir r_dir_perms; allow hal_graphics_composer_default debugfs_mdp:file r_file_perms; ') allow hal_graphics_composer_default perfd_socket:sock_file write; allow hal_graphics_composer_default perfd:unix_stream_socket connectto; allow hal_graphics_composer_default mnt_vendor_file:dir search; allow hal_graphics_composer_default mnt_vendor_file:file r_file_perms; ================================================ FILE: sepolicy/vendor/hal_health_default.te ================================================ allow hal_health_default sysfs_batteryinfo:dir search; allow hal_health_default sysfs_batteryinfo:file r_file_perms; allow hal_health_default sysfs_msm_subsys:dir search; allow hal_health_default kmsg_device:chr_file rw_file_perms; r_dir_file(hal_health_default, persist_file); r_dir_file(hal_health_default, sysfs_msm_subsys) allow hal_health_default debugfs_ufs:dir search; allow hal_health_default sysfs_scsi_devices_0000:dir search; allow hal_health_default debugfs_ufs:file { getattr open read }; allow hal_health_default sysfs_scsi_devices_0000:file { getattr open read }; allow hal_health_default mnt_vendor_file:dir r_dir_perms; ================================================ FILE: sepolicy/vendor/hal_imsrtp.te ================================================ #ims rtp service type hal_imsrtp, domain; type hal_imsrtp_exec, exec_type, vendor_file_type, file_type; # Started by init init_daemon_domain(hal_imsrtp) net_domain(hal_imsrtp) hwbinder_use(hal_imsrtp) get_prop(hal_imsrtp, hwservicemanager_prop) add_hwservice(hal_imsrtp, hal_imsrtp_hwservice) allow hal_imsrtp self:socket create_socket_perms; unix_socket_connect(hal_imsrtp, ims, ims) allow hal_imsrtp sysfs_timestamp_switch:file r_file_perms; # ioctlcmd=c302 allowxperm hal_imsrtp self:socket ioctl msm_sock_ipc_ioctls; allow hal_imsrtp self:capability net_bind_service; allow hal_imsrtp sysfs_timestamp_switch:file r_file_perms; allow hal_imsrtp ion_device:chr_file r_file_perms; allow hal_imsrtp sysfs_data:file r_file_perms; r_dir_file(hal_imsrtp, sysfs_msm_subsys) r_dir_file(hal_imsrtp, sysfs_diag) r_dir_file(hal_imsrtp, sysfs_soc) r_dir_file(hal_imsrtp, sysfs_esoc) allow hal_imsrtp ion_device:chr_file r_file_perms; get_prop(hal_imsrtp, ims_prop) binder_call(hal_imsrtp, radio) ================================================ FILE: sepolicy/vendor/hal_keymaster.te ================================================ get_prop(hal_keymaster, tee_listener_prop) ================================================ FILE: sepolicy/vendor/hal_keymaster_qti.te ================================================ type hal_keymaster_qti, domain; hal_server_domain(hal_keymaster_qti, hal_keymaster) type hal_keymaster_qti_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(hal_keymaster_qti) dontaudit hal_keymaster_qti firmware_file:dir search; get_prop(hal_keymaster_qti, tee_listener_prop) ================================================ FILE: sepolicy/vendor/hal_light.te ================================================ allow hal_light sysfs_graphics:dir search; allow hal_light sysfs_graphics:file rw_file_perms; ================================================ FILE: sepolicy/vendor/hal_light_default.te ================================================ allow hal_light_default sysfs_msm_subsys:dir search; ================================================ FILE: sepolicy/vendor/hal_memtrack_default.te ================================================ allow hal_memtrack_default debugfs_kgsl:file { open read getattr }; ================================================ FILE: sepolicy/vendor/hal_neuralnetworks_hvx.te ================================================ type hal_neuralnetworks_hvx, domain; hal_server_domain(hal_neuralnetworks_hvx, hal_neuralnetworks) type hal_neuralnetworks_hvx_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(hal_neuralnetworks_hvx) allow hal_neuralnetworks_hvx ion_device:chr_file { read open ioctl }; allow hal_neuralnetworks_hvx qdsp_device:chr_file { read open ioctl }; ================================================ FILE: sepolicy/vendor/hal_nfc_default.te ================================================ # Data file accesses. allow hal_nfc_default nfc_vendor_data_file:dir create_dir_perms; allow hal_nfc_default nfc_vendor_data_file:file create_file_perms; get_prop(hal_nfc_default, nfc_service_prop) get_prop(nfc, nfc_service_prop) dontaudit hal_nfc_default nxpese_hwservice:hwservice_manager find; dontaudit hal_nfc_default nxpnfc_hwservice:hwservice_manager add; ================================================ FILE: sepolicy/vendor/hal_oemlock_default.te ================================================ type hal_oemlock_default, domain; hal_server_domain(hal_oemlock_default, hal_oemlock) allow hal_oemlock_default hal_bootctl_socket:sock_file write; allow hal_oemlock_default hal_bootctl:unix_stream_socket connectto; type hal_oemlock_default_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(hal_oemlock_default) ================================================ FILE: sepolicy/vendor/hal_power_default.te ================================================ allow hal_power_default perfd:unix_stream_socket connectto; allow hal_power_default perfd_socket:sock_file write; allow hal_power_default sysfs_graphics:dir search; allow hal_power_default sysfs_graphics:file r_file_perms; allow hal_power_default debugfs_rpm:file r_file_perms; allow hal_power_default debugfs_wlan:dir r_dir_perms; allow hal_power_default debugfs_wlan:file r_file_perms; allow hal_power_default sysfs_soc:dir search; allow hal_power_default sysfs_soc:file r_file_perms; # To do powerhint on nodes defined in powerhint.json allow hal_power_default sysfs_msm_subsys:dir search; allow hal_power_default sysfs_msm_subsys:file rw_file_perms; allow hal_power_default sysfs_devices_system_cpu:file rw_file_perms; allow hal_power_default latency_device:chr_file rw_file_perms; # To get/set powerhal state property set_prop(hal_power_default, power_prop) ================================================ FILE: sepolicy/vendor/hal_rcsservice.te ================================================ type hal_rcsservice, domain; type hal_rcsservice_exec, exec_type, vendor_file_type, file_type; # Started by init init_daemon_domain(hal_rcsservice) net_domain(hal_rcsservice) get_prop(hal_rcsservice, hwservicemanager_prop) # To register imsrcsd to hwBinder hwbinder_use(hal_rcsservice) # add IUceSerive Hidl interface add_hwservice(hal_rcsservice, hal_imsrcsd_hwservice) get_prop(hal_rcsservice, hwservicemanager_prop) get_prop(hal_rcsservice, ims_prop) # allow hal to read sysfs file r_dir_file(hal_rcsservice, sysfs_msm_subsys) r_dir_file(hal_rcsservice, sysfs_diag) r_dir_file(hal_rcsservice, sysfs_esoc) allow hal_rcsservice sysfs_timestamp_switch:file r_file_perms; unix_socket_connect(hal_rcsservice, ims, ims) # imsrcsd to bind with UceShimService.apk binder_call(hal_rcsservice, dataservice_app) # imsrcsd needs read/write access to devpts allow hal_rcsservice devpts:chr_file rw_file_perms; ================================================ FILE: sepolicy/vendor/hal_sensors_default.te ================================================ # read factory calibration and sensor configuration data allow hal_sensors_default persist_file:dir search; r_dir_file(hal_sensors_default, persist_sensors_file) allow hal_sensors_default persist_file:lnk_file read; allow hal_sensors_default mnt_vendor_file:dir search; # interact with the sensors low power island (SLPI) CPU allow hal_sensors_default self:socket { create ioctl read write }; allowxperm hal_sensors_default self:socket ioctl msm_sock_ipc_ioctls; r_dir_file(hal_sensors_default, sysfs_msm_subsys); r_dir_file(hal_sensors_default, sysfs_esoc); allow hal_sensors_default qdsp_device:chr_file r_file_perms; userdebug_or_eng(` r_dir_file(hal_sensors_default, sysfs_diag) allow hal_sensors_default sysfs_timestamp_switch:file r_file_perms; ') # Interact with ToF sensor allow hal_sensors_default input_device:chr_file r_file_perms; allow hal_sensors_default input_device:dir r_dir_perms; allow hal_sensors_default sysfs_laser:file rw_file_perms; ================================================ FILE: sepolicy/vendor/hal_sidecar_essential_default.te ================================================ # Copyright (c) 2017, The Linux Foundation. All rights reserved. # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # * Neither the name of The Linux Foundation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. type hal_sidecar_essential_default, domain; hal_server_domain(hal_sidecar_essential_default, hal_sidecar_essential) type hal_sidecar_essential_default_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(hal_sidecar_essential_default) allow hal_sidecar_essential_default usb_serial_device:chr_file rw_file_perms; allow hal_sidecar_essential_default usb_serial_device:file rw_file_perms; binder_call(system_app, hal_sidecar_essential_default) allow system_app hal_sidecar_essential_hwservice:hwservice_manager find; add_hwservice(hal_sidecar_essential_server, hal_sidecar_essential_hwservice) allow hal_sidecar_essential_client hal_sidecar_essential_hwservice:hwservice_manager find; allow ueventd usb_serial_device:chr_file { create setattr unlink }; allow usb_serial_device tmpfs:filesystem associate; set_prop(hal_sidecar_essential_default, system_prop) ================================================ FILE: sepolicy/vendor/hal_tetheroffload_default.te ================================================ # associate netdomain to use for accessing internet sockets net_domain(hal_tetheroffload_default) userdebug_or_eng(` # Allow using the logging file between ipacm and ipacm-diag unix_socket_send(hal_tetheroffload_default, ipacm, hal_tetheroffload_default) ') # Allow receiving NETLINK messages allow hal_tetheroffload_default self:{ netlink_socket netlink_generic_socket } create_socket_perms_no_ioctl; # Allow creating and modifying the PID file allow hal_tetheroffload_default ipa_vendor_data_file:dir w_dir_perms; allow hal_tetheroffload_default ipa_vendor_data_file:file create_file_perms; # Register to hwbinder service add_hwservice(hal_tetheroffload_default, hal_tetheroffload_hwservice) hwbinder_use(hal_tetheroffload_default) get_prop(hal_tetheroffload_default, hwservicemanager_prop) ================================================ FILE: sepolicy/vendor/hal_thermal_default.te ================================================ allow hal_thermal_default sysfs_thermal:dir { open read search }; allow hal_thermal_default sysfs_thermal:file { getattr open read }; allow hal_thermal_default sysfs_thermal:lnk_file read; allow hal_thermal_default proc_stat:file { getattr open read }; ================================================ FILE: sepolicy/vendor/hal_usb_default.te ================================================ allow hal_usb_default sysfs_msm_subsys:dir search; allow hal_usb_default sysfs_msm_subsys:file r_file_perms; allow hal_usb_default sysfs_usb_c:dir r_dir_perms; allow hal_usb_default sysfs_usb_c:lnk_file read; allow hal_usb_default sysfs_usb_c:file rw_file_perms; allow hal_usb_default sysfs_usb_device:dir r_dir_perms; allow hal_usb_default sysfs_usb_device:file rw_file_perms; ================================================ FILE: sepolicy/vendor/hal_vibrator_default.te ================================================ r_dir_file(hal_vibrator_default, sysfs_leds) allow hal_vibrator_default sysfs_leds:file w_file_perms; allow hal_vibrator_default sysfs_msm_subsys:file rw_file_perms; allow hal_vibrator_default sysfs_msm_subsys:dir search; # read-only permission to obtain the calibration data r_dir_file(hal_vibrator_default, persist_haptics_file) allow hal_vibrator_default persist_file:dir search; allow hal_sensors_default mnt_vendor_file:dir search; ================================================ FILE: sepolicy/vendor/hal_vr.te ================================================ # interact with thermal_config set_prop(hal_vr, thermal_prop) # Access to touch vrmode node allow hal_vr sysfs_touch:dir r_dir_perms; allow hal_vr sysfs_touch:file rw_file_perms; ================================================ FILE: sepolicy/vendor/hal_wifi_default.te ================================================ # Allow wifi hal access to LOWI allow hal_wifi_default location:unix_stream_socket connectto; allow hal_wifi_default location_data_file:sock_file write; # write to files owned by location daemon allow hal_wifi_default location_data_file:dir create_dir_perms; allow hal_wifi_default location_data_file:{ file fifo_file } create_file_perms; allow hal_wifi_default wlan_device:chr_file w_file_perms; # Allow wifi hal to read debug info from the driver. r_dir_file(hal_wifi_default, proc_wifi_dbg) userdebug_or_eng(` # debugfs entries are only needed in user-debug or eng builds # Allow wifi hal to access wlan debugfs files and directories allow hal_wifi_default debugfs_wlan:dir r_dir_perms; ') allow hal_wifi_supplicant { cnd ims }:unix_dgram_socket sendto; ================================================ FILE: sepolicy/vendor/hal_wifi_supplicant_default.te ================================================ # TODO(b/36657258): Remove data_between_core_and_vendor_violators once # hal_wifi_supplicant no longer directly accesses wifi_data_file . typeattribute hal_wifi_supplicant_default data_between_core_and_vendor_violators; allow hal_wifi_supplicant_default wifi_data_file:dir create_dir_perms; allow hal_wifi_supplicant_default wifi_data_file:file create_file_perms; ================================================ FILE: sepolicy/vendor/hbtp.te ================================================ # Policies for hbtp (host based touch processing) type hbtp, domain; type hbtp_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(hbtp) hal_server_domain(hbtp, hal_hbtp) # Allow access for /dev/hbtp_input allow hbtp { hbtp_device qdsp_device dsp_device }:chr_file rw_file_perms; allow hbtp hbtp_log_file:dir rw_dir_perms; allow hbtp hbtp_log_file:file create_file_perms; allow hbtp hbtp_cfg_file:dir r_dir_perms; allow hbtp hbtp_cfg_file:file r_file_perms; allow hbtp firmware_file:dir r_dir_perms; allow hbtp firmware_file:file r_file_perms; allow hbtp sysfs_usb_supply:file r_file_perms; allow hbtp sysfs_usb_supply:dir r_dir_perms; allow hbtp sysfs_graphics:file r_file_perms; allow hbtp sysfs_graphics:dir r_dir_perms; allow hbtp sysfs_battery_supply:file r_file_perms; allow hbtp sysfs_battery_supply:dir r_dir_perms; allow hbtp sysfs_soc:file r_file_perms; allow hbtp sysfs_soc:dir r_dir_perms; allow hbtp sysfs_usb_c:file r_file_perms; allow hbtp sysfs_usb_c:dir r_dir_perms; allow hbtp sysfs_msm_subsys:file r_file_perms; allow hbtp sysfs_msm_subsys:dir r_dir_perms; allow hbtp ion_device:chr_file r_file_perms; allow hbtp self:netlink_kobject_uevent_socket { create read setopt bind }; # Allow the service to access wakelock sysfs allow hbtp sysfs_wake_lock:file r_file_perms; # Allow the service to change to system from root and have sys_nice capability allow hbtp self:capability { setgid setuid sys_nice }; # Allow load touch driver as touchPD r_dir_file(hbtp, adsprpcd_file) # Allow the service to access wakelock capability wakelock_use(hbtp) # Allow hwbinder call from hal client to server and vice-versa binder_call(hal_hbtp_client, hal_hbtp_server) binder_call(hal_hbtp_server, hal_hbtp_client) # Allow hwservice related rules add_hwservice(hal_hbtp_server, hal_hbtp_hwservice) allow hal_hbtp_client hal_hbtp_hwservice:hwservice_manager find; hal_client_domain(hbtp, hal_allocator); allow hbtp hbtp_vendor_data_file:dir create_dir_perms; allow hbtp hbtp_vendor_data_file:file create_file_perms; allow hbtp adsprpcd_file:dir { getattr search }; allow hbtp adsprpcd_file:dir read; allow hbtp adsprpcd_file:file { getattr open read }; ================================================ FILE: sepolicy/vendor/hbtp_cmd.te ================================================ type hbtp_cmd, domain; type hbtp_cmd_exec, exec_type, file_type; allow hbtp adsprpcd_file:dir { getattr search }; allow hbtp_cmd hal_hbtp_hwservice:hwservice_manager find; allow hbtp_cmd hbtp:binder { call transfer }; allow hbtp_cmd hbtp_exec:file { execute execute_no_trans getattr open read }; allow hbtp_cmd hbtp_log_file:dir { getattr search }; allow hbtp_cmd hwservicemanager:binder { call transfer }; allow hbtp_cmd hwservicemanager_prop:file { getattr open read }; allow hbtp_cmd vendor_shell_exec:file { rx_file_perms entrypoint }; allow hbtp_cmd vendor_file:file { execute getattr open read }; allow hwservicemanager hbtp_cmd:binder { call transfer }; allow hwservicemanager hbtp_cmd:dir search; allow hwservicemanager hbtp_cmd:file { open read }; allow hwservicemanager hbtp_cmd:process getattr; allow init hbtp_cmd:process { rlimitinh siginh transition }; allow hbtp_cmd hbtp_vendor_data_file:dir search; allow hbtp_cmd hbtp_vendor_data_file:file { open read getattr }; allow hbtp_cmd hbtp_vendor_data_file:dir { open read getattr }; ================================================ FILE: sepolicy/vendor/healthd.te ================================================ r_dir_file(healthd, sysfs_msm_subsys) ================================================ FILE: sepolicy/vendor/hvdcp.te ================================================ # HVDVP quickcharge type hvdcp, domain; type hvdcp_exec, exec_type, vendor_file_type, file_type; # Make transition to its own HVDCP domain from init init_daemon_domain(hvdcp) # Add rules for access permissions allow hvdcp hvdcp_device:chr_file rw_file_perms; allow hvdcp { sysfs_battery_supply sysfs_usb_supply sysfs_usb_c sysfs_vadc_dev sysfs_spmi_dev sysfs_msm_subsys }:dir r_dir_perms; allow hvdcp { sysfs_battery_supply sysfs_usb_supply sysfs_usb_c sysfs_vadc_dev sysfs_spmi_dev sysfs_msm_subsys sysfs_batteryinfo }:file rw_file_perms; allow hvdcp { sysfs_battery_supply sysfs_usb_supply sysfs_vadc_dev sysfs_spmi_dev }:lnk_file r_file_perms; allow hvdcp self:capability { setgid setuid }; allow hvdcp self:capability2 wake_alarm; allow hvdcp kmsg_device:chr_file rw_file_perms; allow hvdcp cgroup:dir { create add_name }; allow hvdcp self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; allow hvdcp sysfs_battery_supply:file setattr; allow hvdcp sysfs_usb_supply:file setattr; allow hvdcp sysfs_usb_c:file setattr; wakelock_use(hvdcp) ================================================ FILE: sepolicy/vendor/hwservice.te ================================================ type vnd_ims_radio_hwservice, hwservice_manager_type; type vnd_qcrilhook_hwservice, hwservice_manager_type; type vnd_atcmdfwd_hwservice, hwservice_manager_type; type hal_imsrtp_hwservice, hwservice_manager_type; type hal_ipacm_hwservice, hwservice_manager_type; type hal_hbtp_hwservice, hwservice_manager_type; type hal_sidecar_essential_hwservice, hwservice_manager_type; type wifidisplayhalservice_hwservice, hwservice_manager_type; type nxpnfc_hwservice, hwservice_manager_type; type nxpese_hwservice, hwservice_manager_type; ================================================ FILE: sepolicy/vendor/hwservice_contexts ================================================ vendor.qti.hardware.radio.ims::IImsRadio u:object_r:vnd_ims_radio_hwservice:s0 vendor.qti.hardware.radio.qcrilhook::IQtiOemHook u:object_r:vnd_qcrilhook_hwservice:s0 com.qualcomm.qti.uceservice::IUceService u:object_r:hal_imsrcsd_hwservice:s0 vendor.qti.hardware.radio.atcmdfwd::IAtCmdFwd u:object_r:vnd_atcmdfwd_hwservice:s0 vendor.qti.hardware.radio.am::IQcRilAudio u:object_r:vnd_qcrilhook_hwservice:s0 vendor.qti.imsrtpservice::IRTPService u:object_r:hal_imsrtp_hwservice:s0 com.quicinc.cne.api::IApiService u:object_r:hal_cne_hwservice:s0 com.quicinc.cne.server::IServer u:object_r:hal_cne_hwservice:s0 vendor.qti.hardware.improvetouch.touchcompanion::ITouchCompanion u:object_r:hal_hbtp_hwservice:s0 vendor.qti.hardware.improvetouch.gesturemanager::IGestureManager u:object_r:hal_hbtp_hwservice:s0 vendor.qti.hardware.improvetouch.blobmanager::IBlobManager u:object_r:hal_hbtp_hwservice:s0 vendor.essential.hardware.sidecar::ISidecar u:object_r:hal_sidecar_essential_hwservice:s0 com.qualcomm.qti.imscmservice::IImsCmService u:object_r:hal_imsrcsd_hwservice:s0 com.qualcomm.qti.wifidisplayhal::IHDCPSession u:object_r:wifidisplayhalservice_hwservice:s0 com.qualcomm.qti.wifidisplayhal::IDSManager u:object_r:wifidisplayhalservice_hwservice:s0 vendor.nxp.nxpnfc::INxpNfc u:object_r:nxpnfc_hwservice:s0 vendor.nxp.nxpese::INxpEse u:object_r:nxpese_hwservice:s0 ================================================ FILE: sepolicy/vendor/idmap.te ================================================ allow idmap dumpstate:fd use; allow idmap dumpstate:fifo_file write; ================================================ FILE: sepolicy/vendor/ims.te ================================================ type ims, domain; type ims_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(ims) net_domain(ims) get_prop(ims, hwservicemanager_prop) set_prop(ims, ims_prop) unix_socket_connect(ims, netmgrd, netmgrd) allow ims sysfs_soc:dir search; allow ims sysfs_soc:file r_file_perms; allow ims sysfs_timestamp_switch:file r_file_perms; allow ims self:capability net_bind_service; allow ims ion_device:chr_file r_file_perms; unix_socket_connect(ims, cnd, cnd) allow ims self:socket create_socket_perms; allow ims ims_socket:sock_file write; allow ims self:netlink_generic_socket create_socket_perms_no_ioctl; allow ims netmgrd_socket:dir search; allow ims netmgrd_socket:sock_file w_file_perms; allowxperm ims self:socket ioctl msm_sock_ipc_ioctls; allowxperm ims self:udp_socket ioctl RMNET_IOCTL_EXTENDED; r_dir_file(ims, sysfs_msm_subsys) r_dir_file(ims, sysfs_diag) r_dir_file(ims, sysfs_esoc) hwbinder_use(ims) allow ims hal_cne_hwservice:hwservice_manager find; binder_call(ims, cnd) ================================================ FILE: sepolicy/vendor/incidentd.te ================================================ allow incidentd sysfs_msm_subsys:dir search; allow incidentd kernel:system syslog_read; ================================================ FILE: sepolicy/vendor/init-devstart-sh.te ================================================ type init-qcom-devstart-sh, domain; type init-qcom-devstart-sh_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(init-qcom-devstart-sh) allow init-qcom-devstart-sh vendor_shell_exec:file rx_file_perms; allow init-qcom-devstart-sh vendor_toolbox_exec:file rx_file_perms; # execute grep allow init-qcom-devstart-sh vendor_file:file rx_file_perms; # Set the sys.qcom.devup property set_prop(init-qcom-devstart-sh, system_prop) # Set boot_adsp and boot_slpi to 1 allow init-qcom-devstart-sh sysfs_msm_subsys:file w_file_perms; ================================================ FILE: sepolicy/vendor/init-insmod-sh.te ================================================ type init-insmod-sh, domain; type init-insmod-sh_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(init-insmod-sh) allow init-insmod-sh vendor_shell_exec:file rx_file_perms; allow init-insmod-sh vendor_toolbox_exec:file rx_file_perms; # Set the sys.touch.modules.ready property set_prop(init-insmod-sh, system_prop) # Allow insmod allow init-insmod-sh self:capability sys_module; allow init-insmod-sh system_file:system module_load; allow init-insmod-sh vendor_file:system module_load; ================================================ FILE: sepolicy/vendor/init-ipastart-sh.te ================================================ type init-qcom-ipastart-sh, domain; type init-qcom-ipastart-sh_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(init-qcom-ipastart-sh) allow init-qcom-ipastart-sh vendor_shell_exec:file rx_file_perms; allow init-qcom-ipastart-sh vendor_toolbox_exec:file rx_file_perms; ================================================ FILE: sepolicy/vendor/init.te ================================================ # symlink /sdcard to backing block allow init tmpfs:lnk_file create; allow init configfs:lnk_file create; allow init firmware_file:dir mounton; allow init configfs:file w_file_perms; allow init debugfs_clk:file w_file_perms; allow init tty_device:chr_file rw_file_perms; allow init persist_file:dir mounton; allow init adsprpcd_file:filesystem { mount relabelfrom relabelto }; allow init adsprpcd_file:dir mounton; allow init ab_block_device:lnk_file relabelto; allow init boot_block_device:lnk_file relabelto; allow init persist_block_device:lnk_file relabelto; dontaudit init kernel:system module_request; allow init self:capability sys_module; allow init vendor_file:system module_load; allow init proc_kernel:file rw_file_perms; allow init diag_device:chr_file unlink; ================================================ FILE: sepolicy/vendor/init_elabel.te ================================================ # /system/bin/init.elabel.sh # # write data from /persist/elabel to /data/misc/elabel for use by # settings app # allow init_elabel persist_file:dir {search getattr}; allow init_elabel persist_elabel_file:dir r_dir_perms; allow init_elabel persist_elabel_file:file r_file_perms; ================================================ FILE: sepolicy/vendor/init_ese.te ================================================ # /vendor/bin/ese_load init called shell script. type init_ese, domain; type init_ese_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(init_ese) # Shell script exec (toolbox) allow init_ese vendor_shell_exec:file r_file_perms; allow init_ese vendor_toolbox_exec:file rx_file_perms; # eSE tools allow init_ese esed_exec:file rx_file_perms; # eSE device and data dirs allow init_ese pn81a_device:chr_file rw_file_perms; allow init_ese ese_vendor_data_file:dir create_dir_perms; allow init_ese ese_vendor_data_file:file create_file_perms; allow init_ese vendor_file:file execute_no_trans; ================================================ FILE: sepolicy/vendor/init_power.te ================================================ type init_power, domain; type init_power_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(init_power) set_prop(init_power, post_boot_prop) allow init_power vendor_shell_exec:file rx_file_perms; allow init_power vendor_toolbox_exec:file rx_file_perms; r_dir_file(init_power, sysfs_msm_subsys) allow init_power sysfs_msm_subsys:file write; allow init_power sysfs_thermal:dir search; allow init_power sysfs_thermal:file w_file_perms; allow init_power sysfs_devices_system_cpu:file w_file_perms; allow init_power sysfs_soc:file r_file_perms; allow init_power sysfs_soc:dir search; allow init_power sysfs_console_suspend:file w_file_perms; ================================================ FILE: sepolicy/vendor/init_radio.te ================================================ # /vendor/bin/init.radio.sh type init_radio, domain; type init_radio_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(init_radio) allow init_radio vendor_shell_exec:file rx_file_perms; allow init_radio vendor_toolbox_exec:file rx_file_perms; allow init_radio radio_vendor_data_file:dir create_dir_perms; allow init_radio radio_vendor_data_file:file create_file_perms; ================================================ FILE: sepolicy/vendor/init_shell.te ================================================ # Restricted domain for shell processes spawned by init. # Normally these are shell commands or scripts invoked via sh # from an init*.rc file. No service should ever run in this domain. type qti_init_shell, domain; type qti_init_shell_exec, exec_type, vendor_file_type,file_type; init_daemon_domain(qti_init_shell) domain_auto_trans(init, vendor_shell_exec, qti_init_shell) # For executing init shell scripts (init.qcom.early_boot.sh) allow qti_init_shell qti_init_shell_exec:file { rx_file_perms entrypoint }; #execute init scripts allow qti_init_shell vendor_shell_exec:file {rx_file_perms entrypoint }; allow qti_init_shell vendor_toolbox_exec:file rx_file_perms; # For getting idle_time value # this is needed for dynamic_fps and bw_mode_bitmap allow qti_init_shell sysfs_graphics:file {rw_file_perms setattr}; allow qti_init_shell sysfs:file setattr; allow qti_init_shell persist_file:dir w_dir_perms; allow qti_init_shell persist_file:file create_file_perms; allow qti_init_shell smd_device:chr_file rw_file_perms; # Run helpers from / or /system without changing domain. allow qti_init_shell { rootfs vendor_shell_exec }:file execute_no_trans; allow qti_init_shell gpu_device:chr_file getattr; # for insmod of iris ko, this is needed. # dac_read/override is needed for scripts to do chown/mkdir which is # needed by most of the services # fowner and fsetid are needed for chmod display nodes. allow qti_init_shell self:capability { sys_module net_admin chown fowner fsetid sys_admin }; allow qti_init_shell sysfs_graphics:dir search; allow qti_init_shell sysfs_mdss_mdp_caps:file rw_file_perms; r_dir_file(qti_init_shell, sysfs_msm_subsys) allow qti_init_shell sysfs_msm_subsys:dir search; allow qti_init_shell sysfs_msm_subsys:file rw_file_perms; allow qti_init_shell sysfs_devices_system_cpu:file rw_file_perms; allow qti_init_shell proc_net:file rw_file_perms; allow qti_init_shell sysfs_thermal:dir search; allow qti_init_shell sysfs_soc:dir search; allow qti_init_shell sysfs_soc:file rw_file_perms; allow qti_init_shell pstorefs:dir r_dir_perms; allow qti_init_shell pstorefs:file r_file_perms; allow qti_init_shell kernel:system syslog_read; set_prop(qti_init_shell, nfc_service_prop) set_prop(qti_init_shell, build_prop) set_prop(qti_init_shell, system_prop) set_prop(qti_init_shell, system_radio_prop) set_prop(qti_init_shell, ctl_hbtp_prop) # To set default value get_prop(qti_init_shell, grip_prop) set_prop(qti_init_shell, grip_prop) #Needed for post-boot property set_prop(qti_init_shell, post_boot_prop) r_dir_file(qti_init_shell, proc_kernel) allow qti_init_shell proc_kernel:file rw_file_perms; allow qti_init_shell radio_vendor_data_file:dir create_dir_perms; allow qti_init_shell radio_vendor_data_file:file create_file_perms; allow qti_init_shell firmware_file:dir r_dir_perms; allow qti_init_shell firmware_file:file r_file_perms; #============= mata_provision ============== allow qti_init_shell persist_file:dir { add_name write }; allow qti_init_shell persist_file:file { create getattr open read write }; allow qti_init_shell persist_file:dir search; allow qti_init_shell firmware_file:dir search; allow qti_init_shell firmware_file:file { open read }; allow qti_init_shell firmware_file:file getattr; allow qti_init_shell persist_file:file setattr; allow qti_init_shell kmsg_device:chr_file { open write }; allow qti_init_shell system_file:lnk_file getattr; allow qti_init_shell ion_device:chr_file { ioctl open read }; allow qti_init_shell kmsg_device:chr_file open; allow qti_init_shell tee_device:chr_file { ioctl open read write }; get_prop(qti_init_shell, tee_listener_prop) r_dir_file(qti_init_shell, sysfs_esoc) ================================================ FILE: sepolicy/vendor/installd.te ================================================ allow installd adsprpcd_file:filesystem quotaget; ================================================ FILE: sepolicy/vendor/ioctl_defines ================================================ # socket ioctls define(`RMNET_IOCTL_EXTENDED', `0x000089FD') # socket ioctls defined in the kernel in include/uapi/linux/msm_ipc.h define(`IPC_ROUTER_IOCTL_GET_VERSION', `0x0000c300') define(`IPC_ROUTER_IOCTL_GET_MTU', `0x0000c301') define(`IPC_ROUTER_IOCTL_LOOKUP_SERVER', `0x0000c302') define(`IPC_ROUTER_IOCTL_GET_CURR_PKT_SIZE', `0x0000c303') define(`IPC_ROUTER_IOCTL_BIND_CONTROL_PORT', `0x0000c304') define(`IPC_ROUTER_IOCTL_CONFIG_SEC_RULES', `0x0000c305') ================================================ FILE: sepolicy/vendor/ioctl_macros ================================================ define(`msm_sock_ipc_ioctls', `{ IPC_ROUTER_IOCTL_GET_VERSION IPC_ROUTER_IOCTL_GET_MTU IPC_ROUTER_IOCTL_LOOKUP_SERVER IPC_ROUTER_IOCTL_GET_CURR_PKT_SIZE IPC_ROUTER_IOCTL_BIND_CONTROL_PORT IPC_ROUTER_IOCTL_CONFIG_SEC_RULES }') ================================================ FILE: sepolicy/vendor/irqbalance.te ================================================ type irqbalance, domain; type irqbalance_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(irqbalance); allow irqbalance sysfs_devices_system_cpu:file rw_file_perms; allow irqbalance proc_irq:dir r_dir_perms; allow irqbalance proc_irq:file rw_file_perms; allow irqbalance sysfs_irq:file r_file_perms; allow irqbalance proc_stat:file r_file_perms; allow irqbalance proc_interrupts:file r_file_perms; r_dir_file(irqbalance, proc) ================================================ FILE: sepolicy/vendor/irsc_util.te ================================================ type irsc_util, domain; type irsc_util_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(irsc_util) allow irsc_util self:socket create_socket_perms; allowxperm irsc_util self:socket ioctl msm_sock_ipc_ioctls; ================================================ FILE: sepolicy/vendor/kernel.te ================================================ # for diag over socket allow kernel self:socket create; allow kernel vendor_firmware_file:dir search; allow kernel vendor_firmware_file:file r_file_perms; allow kernel vendor_firmware_file:lnk_file read; dontaudit kernel kernel:system module_request; # Read FDs from /vendor/firmware allow kernel vendor_file:file r_file_perms; allow kernel persist_file:file r_file_perms; allow kernel tmpfs:dir search; allow kernel debugfs_ipc:dir search; allow kernel persist_file:dir search; allow kernel debugfs_wlan:dir search; allow kernel firmware_file:dir search; allow kernel firmware_file:file r_file_perms; ================================================ FILE: sepolicy/vendor/keys.conf ================================================ [@AOSP] ALL : device/essential/mata/sepolicy/vendor/certs/Essential-platform.x509.pem ================================================ FILE: sepolicy/vendor/location.te ================================================ # loc_launcher service # which launches various other services supporting GPS & Wifi-RTT (LOWI) location type location, domain; type location_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(location) # STOPSHIP b/28340421 # Temporarily grant this permission (for LOWI) and log its use. allow location self:capability { net_admin }; auditallow location self:capability { net_admin }; allow location self:capability { setgid setuid }; hwbinder_use(location) get_prop(location, hwservicemanager_prop) allow location fwk_sensor_hwservice:hwservice_manager find; binder_call(location, system_server) allow location hal_wifi:unix_stream_socket { read write }; # Enable standard network access (for XTRA download) net_domain(location) # And some additional network access allow location self:netlink_generic_socket create_socket_perms_no_ioctl; allow location self:netlink_socket create_socket_perms_no_ioctl; allowxperm location self:udp_socket ioctl { SIOCGIFINDEX SIOCGIFHWADDR SIOCIWFIRSTPRIV_05 }; allow location self:socket create_socket_perms; # whitelist socket ioctl commands allowxperm location self:socket ioctl msm_sock_ipc_ioctls; # files in /sys r_dir_file(location, sysfs_type) dontaudit location kernel:system module_request; allow location proc_net:file r_file_perms; # execute /vendor/bin/lowi-server allow location location_exec:file rx_file_perms; # /data/vendor/location allow location location_data_file:dir create_dir_perms; allow location location_data_file:{ file sock_file } create_file_perms; userdebug_or_eng(` allow location diag_device:chr_file rw_file_perms; ') ================================================ FILE: sepolicy/vendor/mac_permissions.xml ================================================ ================================================ FILE: sepolicy/vendor/mediacodec.te ================================================ allow mediacodec perfd:unix_stream_socket connectto; allow mediacodec perfd_socket:sock_file write; allow mediacodec sysfs_soc:file r_file_perms; allow mediacodec sysfs_soc:dir search; allow mediacodec system_file:dir r_dir_perms; allow mediacodec firmware_file:dir search; allow mediacodec firmware_file:file r_file_perms; userdebug_or_eng(` allow mediacodec dumpstate:fd use; ') ================================================ FILE: sepolicy/vendor/mediaextractor.te ================================================ userdebug_or_eng(` allow mediaextractor dumpstate:fifo_file append; ') ================================================ FILE: sepolicy/vendor/move-widevine-data-sh.te ================================================ type move-widevine-data-sh, domain, coredomain; type move-widevine-data-sh_exec, exec_type, file_type, system_file_type; init_daemon_domain(move-widevine-data-sh); typeattribute move-widevine-data-sh data_between_core_and_vendor_violators; allow move-widevine-data-sh shell_exec:file rx_file_perms; allow move-widevine-data-sh toolbox_exec:file rx_file_perms; allow move-widevine-data-sh file_contexts_file:file { read getattr open }; allow move-widevine-data-sh media_data_file:file { getattr setattr relabelfrom }; allow move-widevine-data-sh media_data_file:dir { reparent rename rmdir setattr rw_dir_perms relabelfrom }; allow move-widevine-data-sh mediadrm_vendor_data_file:dir { create_dir_perms relabelto }; # for writing files_moved so we only execute the move once allow move-widevine-data-sh mediadrm_vendor_data_file:file { create open write getattr relabelto }; ================================================ FILE: sepolicy/vendor/netd.te ================================================ allow netd sysfs_net:file w_file_perms; dontaudit netd kernel:system module_request; dontaudit netd self:capability { sys_resource sys_module }; ================================================ FILE: sepolicy/vendor/netmgrd.te ================================================ type netmgrd, domain; type netmgrd_exec, exec_type, vendor_file_type, file_type; net_domain(netmgrd) init_daemon_domain(netmgrd) set_prop(netmgrd, net_radio_prop) set_prop(netmgrd, net_rmnet_prop) allow netmgrd netmgrd_socket:dir w_dir_perms; allow netmgrd netmgrd_socket:sock_file create_file_perms; allow netmgrd self:netlink_xfrm_socket { create_socket_perms_no_ioctl nlmsg_write }; allow netmgrd self:netlink_generic_socket create_socket_perms_no_ioctl; allow netmgrd self:netlink_route_socket nlmsg_write; allow netmgrd self:netlink_socket create_socket_perms_no_ioctl; allow netmgrd self:socket create_socket_perms; allowxperm netmgrd self:socket ioctl msm_sock_ipc_ioctls; allowxperm netmgrd self:udp_socket ioctl priv_sock_ioctls; allow netmgrd sysfs_net:dir r_dir_perms; allow netmgrd sysfs_net:file rw_file_perms; allow netmgrd sysfs_soc:dir search; allow netmgrd sysfs_soc:file r_file_perms; allow netmgrd sysfs_msm_subsys:dir r_dir_perms; allow netmgrd sysfs_msm_subsys:file r_file_perms; r_dir_file(netmgrd, sysfs_msm_subsys) wakelock_use(netmgrd) #Allow netutils usage domain_auto_trans(netmgrd, netutils_wrapper_exec, netutils_wrapper) #Allow diag logging allow netmgrd sysfs_timestamp_switch:file { read open }; userdebug_or_eng(` r_dir_file(netmgrd, sysfs_diag) ') #Ignore if device loading for private IOCTL failed dontaudit netmgrd kernel:system { module_request }; allow netmgrd proc_net:file rw_file_perms; allow netmgrd netmgr_data_file:dir rw_dir_perms; allow netmgrd netmgr_data_file:file create_file_perms; allow netmgrd self:capability { net_admin net_raw setgid setpcap setuid }; allow netmgrd vendor_toolbox_exec:file rx_file_perms; # Allow netmgrd to use netd HAL allow netmgrd system_net_netd_hwservice:hwservice_manager find; get_prop(netmgrd, hwservicemanager_prop) binder_call(netmgrd, netd) hwbinder_use(netmgrd) dontaudit netmgrd kernel:system module_request; dontaudit netmgrd self:system module_request; allow netmgrd sysfs_esoc:dir r_dir_perms; allow netmgrd sysfs_esoc:lnk_file r_file_perms; ================================================ FILE: sepolicy/vendor/netutils_wrapper.te ================================================ # For netutils to be able to write their stdout stderr to the pipes opened by netmgrd allow netutils_wrapper netmgrd:fd use; allow netutils_wrapper netmgrd:fifo_file { getattr read write append }; dontaudit netutils_wrapper netmgrd:netlink_socket { getattr read write append }; dontaudit netutils_wrapper kernel:system module_request; dontaudit netutils_wrapper self:capability sys_module; ================================================ FILE: sepolicy/vendor/pd_services.te ================================================ type pd_mapper, domain; type pd_mapper_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(pd_mapper); allow pd_mapper self:capability { setgid setpcap setuid net_bind_service }; allow pd_mapper firmware_file:dir r_dir_perms; allow pd_mapper firmware_file:file r_file_perms; allow pd_mapper self:socket create_socket_perms; allowxperm pd_mapper self:socket ioctl IPC_ROUTER_IOCTL_BIND_CONTROL_PORT; r_dir_file(pd_mapper, sysfs_msm_subsys) r_dir_file(pd_mapper, sysfs_esoc) ================================================ FILE: sepolicy/vendor/per_mgr.te ================================================ # Policy for pm-service and pm-proxy type per_mgr, domain; type per_mgr_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(per_mgr); add_service(per_mgr, per_mgr_service) vndbinder_use(per_mgr) binder_call(per_mgr, hal_gnss) binder_call(per_mgr, per_proxy) binder_call(per_mgr, wcnss_service) binder_call(per_mgr, rild) allow per_mgr self:capability net_bind_service; allow per_mgr firmware_file:file r_file_perms; allow per_mgr firmware_file:dir search; allow per_mgr self:socket create_socket_perms; allowxperm per_mgr self:socket ioctl msm_sock_ipc_ioctls; allow per_mgr ssr_device:chr_file { open read }; r_dir_file(per_mgr, sysfs_msm_subsys) r_dir_file(per_mgr, sysfs) r_dir_file(per_mgr, sysfs_esoc) set_prop(per_mgr, per_mgr_state_prop) ================================================ FILE: sepolicy/vendor/per_proxy.te ================================================ # Policy for /system/bin/pm-proxy type per_proxy, domain; type per_proxy_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(per_proxy) allow per_proxy per_mgr_service:service_manager find; r_dir_file(per_proxy, sysfs_type) vndbinder_use(per_proxy) binder_call(per_proxy, per_mgr) ================================================ FILE: sepolicy/vendor/perfd.te ================================================ type perfd, domain; type perfd_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(perfd) r_dir_file(perfd, sysfs_msm_subsys) # perfd uses kill(pid, 0) to determine if a process exists. # Determining if a process exists does not require the kill capability # since a permission denied indicates the process exists. dontaudit perfd self:capability kill; allow perfd mediacodec:process signull; allow perfd hal_power_default:process signull; allow perfd cgroup:file r_file_perms; allow perfd post_boot_prop:file { getattr open read }; allow perfd proc:file rw_file_perms; allow perfd sysfs_clkscale:file r_file_perms; allow perfd sysfs_graphics:dir search; allow perfd sysfs_graphics:file r_file_perms; allow perfd sysfs_soc:dir search; allow perfd sysfs_soc:file r_file_perms; allow perfd sysfs_graphics:dir search; allow perfd sysfs_graphics:file r_file_perms; allow perfd sysfs_perf:file rw_file_perms; allow perfd sysfs_msm_subsys:file w_file_perms; allow perfd sysfs_devices_system_cpu:file w_file_perms; allow perfd perfd_socket:sock_file write; allow perfd latency_device:chr_file w_file_perms; ================================================ FILE: sepolicy/vendor/platform_app.te ================================================ # Allow Ecore to update these debug data collection properties: # dalvik.vm.stack-trace-file # debug.sys.enableThreadTrace # debug.sys.enableAnrUploads set_prop(platform_app, dalvik_prop); set_prop(platform_app, debug_prop); # Allow Ecore access to /data/anr similar to Hub. allow platform_app anr_data_file:dir rw_dir_perms; allow platform_app anr_data_file:file create_file_perms; ================================================ FILE: sepolicy/vendor/port-bridge.te ================================================ type port-bridge, domain; type port-bridge_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(port-bridge) r_dir_file(port-bridge, sysfs_msm_subsys) r_dir_file(port-bridge, sysfs_esoc) allow port-bridge sysfs_soc:dir search; allow port-bridge sysfs_soc:file r_file_perms; allow port-bridge sysfs_esoc:file r_file_perms; allow port-bridge at_device:chr_file rw_file_perms; ================================================ FILE: sepolicy/vendor/priv_app.te ================================================ allow priv_app adsprpcd_file:filesystem getattr; ================================================ FILE: sepolicy/vendor/property.te ================================================ type camera_prop, property_type; type cnd_prop, property_type; type ims_prop, property_type; type keymaster_prop, property_type; type net_rmnet_prop, property_type; type ramdump_prop, property_type; type post_boot_prop, property_type; type ssr_prop, property_type; type cnss_diag_prop, property_type; type tee_listener_prop, property_type; type wc_prop, property_type; type thermal_prop, property_type; type modem_diag_prop, property_type; type tel_mon_prop, property_type; type sys_time_prop, property_type; type atfwd_start_prop, property_type; type bluetooth_log_prop, property_type; type nfc_service_prop, property_type; type per_mgr_state_prop, property_type; type build_prop, property_type; type ctl_hbtp_prop, property_type; type fastboot_prop, property_type; type omadm_prop, property_type; type grip_prop, property_type; type mqa_hd_prop, property_type; type wfd_service_prop, property_type; type power_prop, property_type; type public_vendor_default_prop, property_type; ================================================ FILE: sepolicy/vendor/property_contexts ================================================ persist.camera. u:object_r:camera_prop:s0 persist.vendor.sys.cnd u:object_r:cnd_prop:s0 persist.sys.cnd u:object_r:cnd_prop:s0 sys.ims. u:object_r:ims_prop:s0 vendor.ims. u:object_r:ims_prop:s0 sys.keymaster.loaded u:object_r:keymaster_prop:s0 net.r_rmnet_data0 u:object_r:net_rmnet_prop:s0 persist.net.doxlat u:object_r:net_radio_prop:s0 sys.post_boot. u:object_r:post_boot_prop:s0 radio. u:object_r:radio_prop:s0 rcs.publish.status u:object_r:radio_prop:s0 persist.sys.crash_rcu u:object_r:ramdump_prop:s0 debug.ssrdump u:object_r:ssr_prop:s0 persist.sys.cnss. u:object_r:cnss_diag_prop:s0 vendor.sys.listeners.registered u:object_r:tee_listener_prop:s0 wc_transport. u:object_r:wc_prop:s0 sys.qcom.thermalcfg u:object_r:thermal_prop:s0 ctl.thermal-engine u:object_r:thermal_prop:s0 persist.sys.modem.diag. u:object_r:modem_diag_prop:s0 sys.modem.diag. u:object_r:modem_diag_prop:s0 persist.radio.enable_tel_mon u:object_r:tel_mon_prop:s0 sys.time.set u:object_r:sys_time_prop:s0 persist.radio.atfwd.start u:object_r:atfwd_start_prop:s0 sys.logger.bluetooth u:object_r:bluetooth_log_prop:s0 vendor.audio.mqa. u:object_r:mqa_hd_prop:s0 vendor.audio.hd. u:object_r:mqa_hd_prop:s0 ro.hardware.nfc_nci u:object_r:nfc_service_prop:s0 vendor.peripheral. u:object_r:per_mgr_state_prop:s0 ro.product.locale u:object_r:build_prop:s0 ro.boot.wificountrycode u:object_r:build_prop:s0 ro.boot.diagclean u:object_r:build_prop:s0 persist.vendor.radio u:object_r:radio_prop:s0 ctl.hbtp u:object_r:ctl_hbtp_prop:s0 ro.vendor.ril. u:object_r:radio_prop:s0 sys.fastboot_status u:object_r:fastboot_prop:s0 persist.grip.status_manual u:object_r:grip_prop:s0 persist.touch.smoothness u:object_r:grip_prop:s0 # OMADM sys.omadm. u:object_r:omadm_prop:s0 ro.com.android.dataroaming u:object_r:omadm_prop:s0 gsm.roaming. u:object_r:omadm_prop:s0 cdma.roaming. u:object_r:omadm_prop:s0 ro.home.operator.carrierid u:object_r:omadm_prop:s0 ro.cdma.home.operator.numeric u:object_r:omadm_prop:s0 ro.cdma.home.operator.alpha u:object_r:omadm_prop:s0 ro.cnap.configstatus u:object_r:omadm_prop:s0 ro.com.google.clientidbase. u:object_r:omadm_prop:s0 vendor.wfdservice u:object_r:wfd_service_prop:s0 vendor.powerhal.state u:object_r:power_prop:s0 vendor.powerhal.audio u:object_r:power_prop:s0 vendor.powerhal.lpm u:object_r:power_prop:s0 vendor.powerhal.init u:object_r:power_prop:s0 vendor.powerhal.rendering u:object_r:power_prop:s0 # public_vendor_default_prop # They are public_vendor_default_props for vendor-specific extension. # Usually they are for vndk-sp libs and vendor apks. fastrpc.perf. u:object_r:public_vendor_default_prop:s0 persist.cne.cqetimer u:object_r:public_vendor_default_prop:s0 persist.cne.feature u:object_r:public_vendor_default_prop:s0 persist.cne.logging.qxdm u:object_r:public_vendor_default_prop:s0 persist.gcam. u:object_r:public_vendor_default_prop:s0 persist.vendor.cnd.iwlan u:object_r:public_vendor_default_prop:s0 persist.vendor.cnd.wqe u:object_r:public_vendor_default_prop:s0 ro.graphics.memory u:object_r:public_vendor_default_prop:s0 ro.boot.ddrsize u:object_r:public_vendor_default_prop:s0 ro.boot.hardware.ddr u:object_r:public_vendor_default_prop:s0 ro.boot.hardware.ufs u:object_r:public_vendor_default_prop:s0 ro.qcom.adreno. u:object_r:public_vendor_default_prop:s0 ro.vendor.graphics.memory u:object_r:public_vendor_default_prop:s0 vendor.debug.egl.changepixelformat u:object_r:public_vendor_default_prop:s0 vendor.debug.prerotation.disable u:object_r:public_vendor_default_prop:s0 vendor.debug.rs. u:object_r:public_vendor_default_prop:s0 vendor.debug.egl.swapinterval u:object_r:public_vendor_default_prop:s0 vendor.gralloc.disable_ubwc u:object_r:public_vendor_default_prop:s0 vendor.debug.egl.profiler u:object_r:public_vendor_default_prop:s0 vendor.gralloc.enable_ahardware_buffer u:object_r:public_vendor_default_prop:s0 # vendor_default_prop audio_hal.in_period_size u:object_r:vendor_default_prop:s0 audio_hal.period_multiplier u:object_r:vendor_default_prop:s0 audio_hal.period_size u:object_r:vendor_default_prop:s0 audio.adm. u:object_r:vendor_default_prop:s0 audio.snd_card.open.retries u:object_r:vendor_default_prop:s0 audio.usb.enable.debug u:object_r:vendor_default_prop:s0 audio.volume.headset.gain.depcal u:object_r:vendor_default_prop:s0 audio.volume.listener.dump u:object_r:vendor_default_prop:s0 boost_override u:object_r:vendor_default_prop:s0 cameradaemon.SaveMemAtBoot u:object_r:vendor_default_prop:s0 camera.cpp. u:object_r:vendor_default_prop:s0 camera.eis.fov_correction u:object_r:vendor_default_prop:s0 camera.hdrplus.donotpoweroneasel u:object_r:vendor_default_prop:s0 com.qti. u:object_r:vendor_default_prop:s0 cpp.set.clock u:object_r:vendor_default_prop:s0 disable.cpp.power.collapse u:object_r:vendor_default_prop:s0 downmix_override_mode u:object_r:vendor_default_prop:s0 fmas. u:object_r:vendor_default_prop:s0 gpu.stats.debug.level u:object_r:vendor_default_prop:s0 hw.hdmi.resolution u:object_r:vendor_default_prop:s0 fpc_kpi u:object_r:vendor_default_prop:s0 media.aac_51_output_enabled u:object_r:vendor_default_prop:s0 mmp.enable.3g2 u:object_r:vendor_default_prop:s0 mm.enable.qcom_parser u:object_r:vendor_default_prop:s0 mm.enable.smoothstreaming u:object_r:vendor_default_prop:s0 perflocks.predefined_clust_map u:object_r:vendor_default_prop:s0 perflocks.predefined_freq_map u:object_r:vendor_default_prop:s0 persist.audio.calfile0 u:object_r:vendor_default_prop:s0 persist.audio.dualmic.config u:object_r:vendor_default_prop:s0 persist.audio.fluence. u:object_r:vendor_default_prop:s0 persist.cam.pp.feat.mask u:object_r:vendor_default_prop:s0 persist.cne.override.memlimit u:object_r:vendor_default_prop:s0 persist.data_netmgrd_mtu u:object_r:vendor_default_prop:s0 persist.data_netmgrd_nint u:object_r:vendor_default_prop:s0 persist.data.df. u:object_r:vendor_default_prop:s0 persist.data.dont_use_epc u:object_r:vendor_default_prop:s0 persist.data.dont_use_npflag u:object_r:vendor_default_prop:s0 persist.data.dpm.enable u:object_r:vendor_default_prop:s0 persist.data.dropssdp u:object_r:vendor_default_prop:s0 persist.data.ibfc.enable u:object_r:vendor_default_prop:s0 persist.data.iwlan.enable u:object_r:vendor_default_prop:s0 persist.data.iwlan.ims.enable u:object_r:vendor_default_prop:s0 persist.data.iwlan.rekey u:object_r:vendor_default_prop:s0 persist.data.llf.enable u:object_r:vendor_default_prop:s0 persist.data.mode u:object_r:vendor_default_prop:s0 persist.data.netmgrd.qos.enable u:object_r:vendor_default_prop:s0 persist.data.netmgrd.qos.hybrid u:object_r:vendor_default_prop:s0 persist.data.netmgr.log_to_file u:object_r:vendor_default_prop:s0 persist.data.netmgr.wl.timeout u:object_r:vendor_default_prop:s0 persist.data.port_bridge.log u:object_r:vendor_default_prop:s0 persist.data.profile_update u:object_r:vendor_default_prop:s0 persist.data.qmi.adb_logmask u:object_r:vendor_default_prop:s0 persist.data.rmnet.en u:object_r:vendor_default_prop:s0 persist.data.target.msm8998 u:object_r:vendor_default_prop:s0 persist.data.tcpackprio.enable u:object_r:vendor_default_prop:s0 persist.data.wda.enable u:object_r:vendor_default_prop:s0 persist.debug.sensors.elmyra.rate u:object_r:vendor_default_prop:s0 persist.debug.sensors.hal u:object_r:vendor_default_prop:s0 persist.debug.sf.showfps u:object_r:vendor_default_prop:s0 persist.delta_time.enable u:object_r:vendor_default_prop:s0 persist.enable.max.pending.buf u:object_r:vendor_default_prop:s0 persist.env.spec u:object_r:vendor_default_prop:s0 persist.fci u:object_r:vendor_default_prop:s0 persist.fuse_sdcard u:object_r:vendor_default_prop:s0 persist.hwc.blit.comp u:object_r:vendor_default_prop:s0 persist.metadata_dynfps.disable u:object_r:vendor_default_prop:s0 persist.msmirqbalance.debug u:object_r:vendor_default_prop:s0 persist.net.logmask u:object_r:vendor_default_prop:s0 persist.partial.skip u:object_r:vendor_default_prop:s0 persist.pd_locater_debug u:object_r:vendor_default_prop:s0 persist.qcril u:object_r:vendor_default_prop:s0 persist.rild.nitz_ u:object_r:vendor_default_prop:s0 persist.rmnet.data.enable u:object_r:vendor_default_prop:s0 persist.sensors.elmyra.sensitivity u:object_r:vendor_default_prop:s0 persist.sensors.hal_timeout u:object_r:vendor_default_prop:s0 persist.sys.ssr.enable_ramdumps u:object_r:vendor_default_prop:s0 persist.sys.ssr.restart_level u:object_r:vendor_default_prop:s0 persist.timed.enable u:object_r:vendor_default_prop:s0 persist.tnr.process.plates u:object_r:vendor_default_prop:s0 qcom.bluetooth.soc u:object_r:vendor_default_prop:s0 qcril.support.encrypted_calls u:object_r:vendor_default_prop:s0 qdcm. u:object_r:vendor_default_prop:s0 rild.libargs u:object_r:vendor_default_prop:s0 rild.libpath u:object_r:vendor_default_prop:s0 ro.alarm_boot u:object_r:vendor_default_prop:s0 ro.boot.factoryota u:object_r:vendor_default_prop:s0 ro.boot.mid u:object_r:vendor_default_prop:s0 ro.boot.temp_protect_ignore u:object_r:vendor_default_prop:s0 ro.camera.wrapper.hal3TrebleMinorVersion u:object_r:vendor_default_prop:s0 ro.fota.oem u:object_r:vendor_default_prop:s0 ro.lean u:object_r:vendor_default_prop:s0 ro.min_freq_0 u:object_r:vendor_default_prop:s0 ro.min_freq_4 u:object_r:vendor_default_prop:s0 ro.oem_unlock.pst u:object_r:vendor_default_prop:s0 ro.qcom. u:object_r:vendor_default_prop:s0 ro.qfusion_use_report_period u:object_r:vendor_default_prop:s0 ro.qti. u:object_r:vendor_default_prop:s0 ro.qualcomm. u:object_r:vendor_default_prop:s0 ro.radio.log_loc u:object_r:vendor_default_prop:s0 ro.radio.log_prefix u:object_r:vendor_default_prop:s0 ro.rfkilldisabled u:object_r:vendor_default_prop:s0 ro.vendor.build.svn u:object_r:vendor_default_prop:s0 ro.vendor.extension_library u:object_r:vendor_default_prop:s0 ro.vibrator.hal.click.duration u:object_r:vendor_default_prop:s0 ro.vibrator.hal.tick.duration u:object_r:vendor_default_prop:s0 ro.vibrator.hal.heavyclick.duration u:object_r:vendor_default_prop:s0 sdm. u:object_r:vendor_default_prop:s0 sys.disable_ext_animation u:object_r:vendor_default_prop:s0 sys.display.low_persistence_mode_brightness u:object_r:vendor_default_prop:s0 sys.hwc_disable_hdr u:object_r:vendor_default_prop:s0 sys.qca1530 u:object_r:vendor_default_prop:s0 vendor.audio.adm.buffering.ms u:object_r:vendor_default_prop:s0 vendor.vidc.enc.dcvs.extra-buff-count u:object_r:vendor_default_prop:s0 ubwc.no.compression u:object_r:vendor_default_prop:s0 persist.audio.fluence.speaker u:object_r:vendor_default_prop:s0 persist.audio.fluence.voicecall u:object_r:vendor_default_prop:s0 persist.audio.fluence.voicecomm u:object_r:vendor_default_prop:s0 persist.audio.fluence.voicerec u:object_r:vendor_default_prop:s0 ro.qc.sdk.audio.fluencetype u:object_r:vendor_default_prop:s0 ================================================ FILE: sepolicy/vendor/qlogd.te ================================================ type qlogd, domain; type qlogd_exec, exec_type, vendor_file_type, file_type; # make transition from init to its domain init_daemon_domain(qlogd) allow qlogd diag_device:chr_file rw_file_perms; allow qlogd qlogd_exec:file rx_file_perms; allow qlogd radio_vendor_data_file:file create_file_perms; allow qlogd radio_vendor_data_file:dir create_dir_perms; set_prop(qlogd, modem_diag_prop) r_dir_file(qlogd, storage_file) r_dir_file(qlogd, mnt_user_file) allow qlogd sdcardfs:dir create_dir_perms; allow qlogd sdcardfs:file create_file_perms; ================================================ FILE: sepolicy/vendor/qmuxd.te ================================================ type qmuxd, domain; type qmuxd_exec, exec_type, vendor_file_type, file_type; net_domain(qmuxd) init_daemon_domain(qmuxd) ================================================ FILE: sepolicy/vendor/qtelephony.te ================================================ # Qualcomm telephony apps, such as AtFwd and FastDormancy type qtelephony, domain; app_domain(qtelephony) hwbinder_use(qtelephony) add_hwservice(qtelephony, vnd_atcmdfwd_hwservice) allow qtelephony { app_api_service }:service_manager find; # Read and write /data/data subdirectory. allow qtelephony system_app_data_file:dir create_dir_perms; allow qtelephony system_app_data_file:{ file lnk_file } create_file_perms; set_prop(qtelephony, atfwd_start_prop) ================================================ FILE: sepolicy/vendor/qti.te ================================================ type qti, domain; type qti_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(qti) net_domain(qti) allow qti sysfs_soc:dir search; allow qti sysfs_soc:file r_file_perms; allow qti smd_device:chr_file { read write }; allow qti rmnet_device:chr_file rw_file_perms; allow qti self:socket create_socket_perms; allowxperm qti self:socket ioctl msm_sock_ipc_ioctls; r_dir_file(qti, sysfs_msm_subsys) r_dir_file(qti, sysfs_esoc) ================================================ FILE: sepolicy/vendor/qti_audio_app.te ================================================ type qti_audio_app, domain; app_domain(qti_audio_app) net_domain(qti_audio_app) hwbinder_use(qti_audio_app) # Services from untrusted_app_all. # Should be kept in sync with untrusted_app_all. allow qti_audio_app audioserver_service:service_manager find; allow qti_audio_app cameraserver_service:service_manager find; allow qti_audio_app drmserver_service:service_manager find; allow qti_audio_app mediaserver_service:service_manager find; allow qti_audio_app mediaextractor_service:service_manager find; allow qti_audio_app mediametrics_service:service_manager find; allow qti_audio_app mediadrmserver_service:service_manager find; allow qti_audio_app nfc_service:service_manager find; allow qti_audio_app radio_service:service_manager find; allow qti_audio_app surfaceflinger_service:service_manager find; allow qti_audio_app app_api_service:service_manager find; allow qti_audio_app vr_manager_service:service_manager find; allow qti_audio_app vnd_qcrilhook_hwservice:hwservice_manager find; allow qti_audio_app rild:binder { call transfer }; ================================================ FILE: sepolicy/vendor/radio.te ================================================ get_prop(radio, ims_prop) userdebug_or_eng(`set_prop(radio, tel_mon_prop)') allow radio qmuxd_socket:dir search; allow radio qmuxd_socket:sock_file write; allow radio vendor_file:lnk_file r_file_perms; allow radio vendor_framework_file:file r_file_perms; allow radio vendor_framework_file:dir search; allow radio cache_file:lnk_file read; allow radio system_app_data_file:dir getattr; allow radio system_app_data_file:dir search; hwbinder_use(radio) allow radio vnd_ims_radio_hwservice:hwservice_manager find; allow radio vnd_qcrilhook_hwservice:hwservice_manager find; allow radio hal_imsrtp_hwservice:hwservice_manager find; allow radio { mediaextractor_service }:service_manager find; r_dir_file(radio, sysfs_msm_subsys) # IMS needs permission to use avtimer allow radio avtimer_device:chr_file r_file_perms; binder_call(radio, hal_imsrtp) set_prop(radio, omadm_prop) get_prop(radio, omadm_prop) ================================================ FILE: sepolicy/vendor/ramdump.te ================================================ type ramdump_exec, exec_type, vendor_file_type, file_type; userdebug_or_eng(` type ramdump, domain; init_daemon_domain(ramdump) set_prop(ramdump, ramdump_prop) allow ramdump self:capability sys_rawio; allow ramdump ramdump_vendor_data_file:dir create_dir_perms; allow ramdump ramdump_vendor_data_file:file create_file_perms; allow ramdump proc:file r_file_perms; allow ramdump block_device:dir search; allow ramdump misc_block_device:blk_file rw_file_perms; allow ramdump userdata_block_device:blk_file rw_file_perms; # read from /fstab.taimen allow ramdump rootfs:file r_file_perms; r_dir_file(ramdump, sysfs_type) ') ================================================ FILE: sepolicy/vendor/recovery.te ================================================ allow recovery sysfs_scsi_devices_other:dir { open read search }; ================================================ FILE: sepolicy/vendor/rfs_access.te ================================================ type rfs_access, domain; type rfs_access_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(rfs_access) #For tftp server allow rfs_access self:capability { chown setgid setpcap setuid net_bind_service }; wakelock_use(rfs_access) r_dir_file(rfs_access, firmware_file); # For tftp server file access allow rfs_access firmware_file:dir search; allow rfs_access firmware_file:file r_file_perms; allow rfs_access mnt_vendor_file:dir search; allow rfs_access mnt_vendor_file:file r_file_perms; allow rfs_access persist_file:dir search; # We are using the backward compatibilty calls allow rfs_access persist_file:lnk_file read; allow rfs_access persist_rfs_file:dir create_dir_perms; allow rfs_access persist_rfs_file:file create_file_perms; allow rfs_access self:socket create_socket_perms_no_ioctl; allow rmt_storage kmsg_device:chr_file w_file_perms; allow rfs_access rfs_system_file:lnk_file r_file_perms; # RFS UID and GIDs were changed and moved from old values to new ones OEM range. # The below permissions are required to recursively update the folder ownership # to the new values in the OEM range. #The files created by rfs_access process in the /data folder will have type rfs_file type_transition rfs_access system_data_file:{ dir file } persist_rfs_file; type_transition rfs_access system_data_file:dir persist_rfs_file "hlos_rfs"; allow rfs_access tombstone_rfs_vendor_data_file:dir create_dir_perms; allow rfs_access tombstone_rfs_vendor_data_file:file create_file_perms; ================================================ FILE: sepolicy/vendor/rild.te ================================================ binder_call(rild, per_mgr) vndbinder_use(rild) allow rild qmuxd_socket:dir w_dir_perms; allow rild qmuxd_socket:sock_file create_file_perms; allow rild netmgrd_socket:dir search; unix_socket_connect(rild, netmgrd, netmgrd) allow rild vendor_file:file { execute_no_trans lock ioctl }; allow rild per_mgr_service:service_manager find; add_hwservice(rild, vnd_ims_radio_hwservice) add_hwservice(rild, vnd_qcrilhook_hwservice) hal_server_domain(rild, hal_secure_element) allow rild self:socket ioctl; allowxperm rild self:socket ioctl msm_sock_ipc_ioctls; allow rild time_daemon:unix_stream_socket connectto; userdebug_or_eng(` domain_auto_trans(rild, smlog_dump_exec, smlog_dump) ') allow rild radio_vendor_data_file:dir rw_dir_perms; allow rild radio_vendor_data_file:file create_file_perms; allow rild qti_audio_app:binder { call transfer }; ================================================ FILE: sepolicy/vendor/rmt_storage.te ================================================ type rmt_storage, domain; type rmt_storage_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(rmt_storage) wakelock_use(rmt_storage) allow rmt_storage self:capability { net_bind_service setgid setpcap setuid }; allow rmt_storage modem_block_device:blk_file rw_file_perms; allow rmt_storage uio_device:chr_file rw_file_perms; allow rmt_storage block_device:dir search; allow rmt_storage sysfs_uio:dir r_dir_perms; allow rmt_storage sysfs_uio:lnk_file r_file_perms; allow rmt_storage sysfs_rmtfs:dir search; allow rmt_storage sysfs_rmtfs:file r_file_perms; allow rmt_storage sysfs_rmtfs:dir search; allow rmt_storage debugfs_rmt_storage:dir search; allow rmt_storage debugfs_rmt_storage:file w_file_perms; allow rmt_storage self:socket create_socket_perms; allowxperm rmt_storage self:socket ioctl IPC_ROUTER_IOCTL_BIND_CONTROL_PORT; ================================================ FILE: sepolicy/vendor/seapp_contexts ================================================ #TODO Remove user "system" when b/63588267 is resolved user=system seinfo=platform name=com.qualcomm.telephony domain=qtelephony type=system_app_data_file # A fallback in case tango_core is missing something critical that untrusted_app provides user=_app seinfo=tango name=com.google.tango:app domain=untrusted_app type=app_data_file levelFrom=user # Use a custom domain for Klik, to allow access to Sidecar user=_app seinfo=platform name=com.essential.klik domain=essential_camera_app type=app_data_file #Needed for time service apk user=_app seinfo=platform name=com.qualcomm.timeservice domain=timeservice_app type=app_data_file # Custom domain to allow QtiAudio access to RILD/QCOM audio HIDL user=_app seinfo=aosp name=com.qualcomm.qti.audioservice domain=qti_audio_app type=app_data_file ================================================ FILE: sepolicy/vendor/sensors.te ================================================ # Policy for sensor daemon type sensors, domain; type sensors_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(sensors) allow sensors self:capability { net_bind_service }; allow sensors self:socket create_socket_perms; allowxperm sensors self:socket ioctl msm_sock_ipc_ioctls; allow sensors persist_sensors_file:dir rw_dir_perms; allow sensors persist_sensors_file:file create_file_perms; allow sensors persist_file:dir { getattr search }; allow sensors persist_file:lnk_file r_file_perms; allow sensors mnt_vendor_file:dir { getattr search }; allow sensors sensors_vendor_data_file:dir create_dir_perms; allow sensors sensors_vendor_data_file:file create_file_perms; allow sensors system_file:dir r_dir_perms; allow sensors sensors_device:chr_file rw_file_perms; allow sensors sysfs_soc:dir r_dir_perms; allow sensors sysfs_soc:file r_file_perms; r_dir_file(sensors, sysfs_msm_subsys) userdebug_or_eng(` r_dir_file(sensors, sysfs_diag) allow sensors sysfs_timestamp_switch:file r_file_perms; ') r_dir_file(sensors, sysfs_esoc) ================================================ FILE: sepolicy/vendor/service_contexts ================================================ ================================================ FILE: sepolicy/vendor/shell.te ================================================ # To allow non-root to find power_supply management info allow shell sysfs_msm_subsys:dir search; get_prop(shell, build_prop) set_prop(shell, fastboot_prop) # Needs for Essential Accessory OTA r_dir_file(shell, sysfs_usb_device) allow shell system_file:file execute_no_trans; allow shell ota_package_file:file { open read }; allow shell usb_device:chr_file open; allow shell usb_device:dir search; allow shell ota_package_file:dir rw_dir_perms; allow shell ota_package_file:file create_file_perms; # Since we define our own tracing_shell_writable domain in file_contexts also # give shell permissions. allow shell tracing_shell_writable:file rw_file_perms; ================================================ FILE: sepolicy/vendor/smlog_dump.te ================================================ type smlog_dump_exec, exec_type, vendor_file_type, file_type; userdebug_or_eng(` type smlog_dump, domain; allow smlog_dump modem_dump_file:dir create_dir_perms; allow smlog_dump modem_dump_file:file create_file_perms; r_dir_file(smlog_dump, sysfs_uio) r_dir_file(smlog_dump, sysfs_rmtfs) allow smlog_dump diag_device:chr_file rw_file_perms; allow smlog_dump radio_vendor_data_file:file { append read write }; allow smlog_dump rild:fd use; allow smlog_dump rild:fifo_file { read write }; allow smlog_dump rild:unix_stream_socket { read write }; allow smlog_dump rild:netlink_generic_socket { read write }; allow smlog_dump self:socket create_socket_perms; allowxperm smlog_dump self:socket ioctl msm_sock_ipc_ioctls; allow smlog_dump sysfs:dir r_dir_perms; allow smlog_dump sysfs_msm_subsys:dir r_dir_perms; allow smlog_dump sysfs_msm_subsys:file r_file_perms; allow smlog_dump sysfs_msm_subsys:lnk_file read; allow smlog_dump sysfs_soc:dir search; allow smlog_dump sysfs_soc:file r_file_perms; allow smlog_dump dumpstate:fd use; allow smlog_dump hal_dumpstate_impl:fd use; allow smlog_dump uio_device:chr_file rw_file_perms; ') ================================================ FILE: sepolicy/vendor/ssr_diag.te ================================================ type ssr_diag, domain; type ssr_diag_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(ssr_diag); r_dir_file(ssr_diag, sysfs_msm_subsys) ================================================ FILE: sepolicy/vendor/ssr_setup.te ================================================ type ssr_setup, domain; type ssr_setup_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(ssr_setup); allow ssr_setup sysfs_msm_subsys:dir r_dir_perms; allow ssr_setup sysfs_msm_subsys:file rw_file_perms; allow ssr_setup sysfs_msm_subsys:lnk_file read; ================================================ FILE: sepolicy/vendor/surfaceflinger.te ================================================ dontaudit surfaceflinger kernel:system module_request; allow surfaceflinger debugfs_ion:dir search; allow surfaceflinger firmware_file:dir search; allow surfaceflinger firmware_file:file r_file_perms; ================================================ FILE: sepolicy/vendor/system_app.te ================================================ # Needed by Settings app's TelephonyMonitorPreferenceController, available only on a subset of # userdebug and eng devices userdebug_or_eng(`set_prop(system_app, tel_mon_prop)') # Needed by Settings app's CameraHalHdrplusPreferenceController set_prop(system_app, camera_prop) # read regulatory info allow system_app elabel_data_file:dir r_dir_perms; allow system_app elabel_data_file:file r_file_perms; # For Score allow system_app self:netlink_kobject_uevent_socket { read bind setopt create }; allow system_app persist_file:dir rw_dir_perms; allow system_app pstore_backup_file:file r_file_perms; allow system_app pstore_backup_file:dir r_dir_perms; # For EssentialSUW barcode support allow system_app persist_file:dir create; # For Essential Accessory OTA support allow system_app ota_package_file:dir { add_name search write }; allow system_app ota_package_file:file { read create getattr setattr open write }; get_prop(system_app, fastboot_prop) ## For OMA-DM access allow system_app persist_file:file getattr; allow system_app persist_file:dir create; allow system_app persist_file:dir create_dir_perms; allow system_app persist_file:file create_file_perms; allow system_app persist_file:dir search; allow system_app persist_file:dir create_file_perms; allow system_app persist_file:file create_file_perms; allow system_app persist_file:dir add_name; allow system_app persist_file:dir remove_name; ## For Chameleon access allow system_app cache_file:lnk_file read; allow system_app cache_file:dir search; allow system_app cache_file:dir create_file_perms; # Allow Hub to read crash reports from /data/system/dropbox. allow system_app system_data_file:dir r_dir_perms; allow system_app system_data_file:file r_file_perms; # Allow Hub to read and process from /data/vendor/radio/diag_logs allow system_app radio_vendor_data_file:dir create_dir_perms; allow system_app radio_vendor_data_file:file create_file_perms; allow system_app sysfs_msm_subsys:dir r_dir_perms; allow system_app sysfs_msm_subsys:file r_file_perms; # Allow system app to write trace in pre-existing /data/misc/trace allow system_app method_trace_data_file:dir w_dir_perms; allow system_app method_trace_data_file:file { create w_file_perms }; # For tracing support in Hub. allow system_app tracing_shell_writable:file rw_file_perms; set_prop(system_app, grip_prop) set_prop(system_app, mqa_hd_prop) set_prop(system_app, wfd_service_prop); set_prop(system_app, omadm_prop); ================================================ FILE: sepolicy/vendor/system_server.te ================================================ allow system_server self:socket ioctl; allowxperm system_server self:socket ioctl msm_sock_ipc_ioctls; binder_call(system_server, hal_camera_default) allow system_server persist_file:dir search; allow system_server persist_sensors_file:dir search; allow system_server persist_sensors_file:file r_file_perms; allow system_server wlan_device:chr_file rw_file_perms; allow system_server sysfs_msm_subsys:file { open read getattr}; # Switch states r_dir_file(system_server, sysfs_audio) # TODO(b/30675296): Remove following dontaudit's upon resolution of this bug # The timerslack_ns denials spam the system really horribly dontaudit system_server audioserver:file write; dontaudit system_server untrusted_app:file write; dontaudit system_server hal_audio_default:file write; dontaudit system_server appdomain:file write; get_prop(system_server, build_prop) # NFC check for Package Manager get_prop(system_server, nfc_service_prop) get_prop(system_server, omadm_prop) get_prop(system_server, grip_prop) ================================================ FILE: sepolicy/vendor/tee.te ================================================ allow tee self:capability { chown setgid setuid sys_admin sys_rawio }; allow tee device:dir r_dir_perms; set_prop(tee, tee_listener_prop) set_prop(tee, keymaster_prop) allow tee firmware_file:dir search; allow tee block_device:dir { getattr search }; allow tee ssd_block_device:blk_file rw_file_perms; allow tee sg_device:chr_file { rw_file_perms setattr }; allow tee mnt_vendor_file:dir r_dir_perms; allow tee persist_file:dir r_dir_perms; allow tee persist_drm_file:dir create_dir_perms; allow tee persist_drm_file:file create_file_perms; allow tee persist_data_file:dir create_dir_perms; allow tee persist_data_file:file create_file_perms; # TODO(b/36644492): Remove data_between_core_and_vendor_violators once # tee no longer directly accesses /data owned by the frameworks. typeattribute tee data_between_core_and_vendor_violators; allow tee system_data_file:dir r_dir_perms; allow tee fingerprintd_data_file:dir rw_dir_perms; allow tee fingerprintd_data_file:file create_file_perms; allow tee time_daemon:unix_stream_socket connectto; ================================================ FILE: sepolicy/vendor/thermal-engine.te ================================================ type thermal-engine, domain; type thermal-engine_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(thermal-engine) allow thermal-engine self:capability2 block_suspend; # to read /sys/devices allow thermal-engine sysfs:dir r_dir_perms; allow thermal-engine sysfs_msm_subsys:dir r_dir_perms; allow thermal-engine sysfs_msm_subsys:file rw_file_perms; allow thermal-engine sysfs_soc:dir search; allow thermal-engine sysfs_soc:file r_file_perms; allow thermal-engine sysfs_thermal:dir r_dir_perms; allow thermal-engine sysfs_thermal:file rw_file_perms; allow thermal-engine sysfs_leds:file rw_file_perms; allow thermal-engine sysfs_thermal:lnk_file read; allow thermal-engine sysfs_rmtfs:dir search; allow thermal-engine sysfs_rmtfs:file r_file_perms; # to read /proc/stat allow thermal-engine proc_stat:file { getattr open read }; # IThermal Thermal HAL hal_server_domain(thermal-engine, hal_thermal) allow thermal-engine thermal_device:chr_file rw_file_perms; r_dir_file(thermal-engine, sysfs_leds) r_dir_file(thermal-engine, sysfs_msm_subsys) r_dir_file(thermal-engine, sysfs_uio) r_dir_file(thermal-engine, sysfs_esoc) allow thermal-engine self:socket create_socket_perms; allowxperm thermal-engine self:socket ioctl msm_sock_ipc_ioctls; # reboot/shutdown for thermal limits exceeded set_prop(thermal-engine, powerctl_prop) ================================================ FILE: sepolicy/vendor/time_daemon.te ================================================ type time_daemon, domain; type time_daemon_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(time_daemon) allow time_daemon self:capability { setgid setuid sys_time }; allow time_daemon rtc_device:chr_file r_file_perms; r_dir_file(time_daemon, sysfs_msm_subsys) allow time_daemon sysfs_soc:dir search; allow time_daemon sysfs_soc:file r_file_perms; r_dir_file(time_daemon, sysfs_esoc) allow time_daemon sysfs_esoc:dir search; allow time_daemon sysfs_esoc:file r_file_perms; # Set sys.time.set property set_prop(time_daemon, sys_time_prop); allow time_daemon persist_time_file:dir w_dir_perms; allow time_daemon persist_time_file:file create_file_perms; allow time_daemon persist_time_file:dir search; allow time_daemon persist_file:dir search; allow time_daemon self:socket create_socket_perms; allowxperm time_daemon self:socket ioctl msm_sock_ipc_ioctls; allow time_daemon time_vendor_data_file:dir create_dir_perms; allow time_daemon time_vendor_data_file:file create_file_perms; allow time_daemon mnt_vendor_file:dir search; ================================================ FILE: sepolicy/vendor/timeservice_app.te ================================================ type timeservice_app, domain; app_domain(timeservice_app); allow timeservice_app app_api_service:service_manager find; allow timeservice_app app_data_file:dir { search getattr }; allow timeservice_app time_daemon:unix_stream_socket connectto; ================================================ FILE: sepolicy/vendor/ueventd.te ================================================ allow ueventd firmware_file:lnk_file read; allow ueventd firmware_file:dir search; allow ueventd firmware_file:file r_file_perms; allow ueventd tmpfs:blk_file getattr; allow ueventd persist_file:dir search; allow ueventd persist_file:file r_file_perms; allow ueventd mnt_vendor_file:dir search; ================================================ FILE: sepolicy/vendor/update_engine_common.te ================================================ # Allow update_engine and update_engine_sideload (recovery) read/write on the # device-specific partitions it should update. allow update_engine_common xbl_block_device:blk_file rw_file_perms; allow update_engine_common ab_block_device:blk_file rw_file_perms; allow update_engine_common modem_block_device:blk_file rw_file_perms; allow update_engine_common postinstall_mnt_dir:dir r_dir_perms; allow update_engine_common tmpfs:lnk_file r_file_perms; ================================================ FILE: sepolicy/vendor/vendor_init.te ================================================ typeattribute vendor_init data_between_core_and_vendor_violators; allow vendor_init { dhcp_data_file media_rw_data_file system_data_file tombstone_data_file wifi_data_file vendor_data_file }:dir { create search getattr open read setattr ioctl write add_name remove_name rmdir relabelfrom }; allow vendor_init proc_uid_cpupower:file write; dontaudit vendor_init kernel:system module_request; allow vendor_init bluetooth_data_file:dir setattr; allow vendor_init camera_data_file:dir setattr; allow vendor_init ipa_dev:chr_file { open write }; allow vendor_init preloads_data_file:dir { read setattr }; allow vendor_init self:capability sys_module; allow vendor_init vendor_data_file:dir setattr; allow vendor_init vendor_file:system module_load; allow vendor_init wpa_socket:dir setattr; allow vendor_init method_trace_data_file:dir setattr; allow vendor_init nfc_data_file:dir { ioctl open read setattr }; allow vendor_init preloads_data_file:dir { ioctl open }; allow vendor_init preloads_media_file:dir setattr; allow vendor_init unlabeled:dir { getattr setattr search read relabelfrom }; allow vendor_init unlabeled:file { getattr setattr read relabelfrom }; allow vendor_init firmware_file:dir search; allow vendor_init firmware_file:file r_file_perms; set_prop(vendor_init, public_vendor_default_prop) ================================================ FILE: sepolicy/vendor/vndservice.te ================================================ type qdisplay_service, vndservice_manager_type; type per_mgr_service, vndservice_manager_type; type wfdnativemm_service, vndservice_manager_type; ================================================ FILE: sepolicy/vendor/vndservice_contexts ================================================ display.qservice u:object_r:qdisplay_service:s0 vendor.qcom.PeripheralManager u:object_r:per_mgr_service:s0 wfd.native.mm.service u:object_r:wfdnativemm_service:s0 ================================================ FILE: sepolicy/vendor/vold.te ================================================ get_prop(vold, tee_listener_prop) allow vold sysfs_scsi_devices_0000:file write; allow vold sysfs_scsi_devices_other:file write; allow vold persist_file:dir r_dir_perms; # generated by proc scan, unnecessary dontaudit vold proc_irq:dir read; ================================================ FILE: sepolicy/vendor/wcnss_filter.te ================================================ type wcnss_filter, domain; type wcnss_filter_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(wcnss_filter) set_prop(wcnss_filter, wc_prop) set_prop(wcnss_filter, bluetooth_prop) allow wcnss_filter hci_attach_dev:chr_file rw_file_perms; userdebug_or_eng(` allow wcnss_filter diag_device:chr_file rw_file_perms; allow wcnss_filter ramdump_vendor_data_file:dir w_dir_perms; allow wcnss_filter ramdump_vendor_data_file:file { create w_file_perms }; allow wcnss_filter proc_sysrq:file { open write }; allow wcnss_filter sysfs_timestamp_switch:file r_file_perms; r_dir_file(wcnss_filter, debugfs_ipc) r_dir_file(wcnss_filter, sysfs_diag) set_prop(wcnss_filter, ssr_prop) ') #allow wakelock wakelock_use(wcnss_filter) # allow wcnss to set threads to RT priority allow wcnss_filter self:capability sys_nice; ================================================ FILE: sepolicy/vendor/wcnss_service.te ================================================ type wcnss_service, domain; type wcnss_service_exec, exec_type, vendor_file_type, file_type; init_daemon_domain(wcnss_service) net_domain(wcnss_service) vndbinder_use(wcnss_service) binder_call(wcnss_service, per_mgr) allow wcnss_service per_mgr_service:service_manager find; allow wcnss_service vendor_shell_exec:file rx_file_perms; allow wcnss_service vendor_toolbox_exec:file rx_file_perms; allow wcnss_service proc_net:file w_file_perms; allow wcnss_service self:capability { net_admin }; allow wcnss_service self:socket create_socket_perms; allowxperm wcnss_service self:socket ioctl msm_sock_ipc_ioctls; allowxperm wcnss_service self:udp_socket ioctl { SIOCIWFIRSTPRIV_05 SIOCSIFFLAGS }; allow wcnss_service self:netlink_generic_socket create_socket_perms_no_ioctl; allow wcnss_service self:netlink_socket create_socket_perms_no_ioctl; allow wcnss_service cnss_vendor_data_file:dir create_dir_perms; allow wcnss_service cnss_vendor_data_file:file create_file_perms; allow wcnss_service proc_net:file getattr; r_dir_file(wcnss_service, sysfs_msm_subsys) # pkt logging for cnss_diag userdebug_or_eng(` r_dir_file(wcnss_service, proc_wifi_dbg) r_dir_file(wcnss_service, sysfs_diag) allow wcnss_service sysfs_timestamp_switch:file r_file_perms; # This is needed for ptt_socket app to write logs file collected to sdcard r_dir_file(wcnss_service, storage_file) r_dir_file(wcnss_service, mnt_user_file) allow wcnss_service sdcardfs:dir create_dir_perms; allow wcnss_service sdcardfs:file create_file_perms; ') allow wcnss_service sysfs_soc:dir search; allow wcnss_service sysfs_soc:file r_file_perms; r_dir_file(wcnss_service, sysfs_esoc) allow wcnss_service sysfs_esoc:dir search; allow wcnss_service sysfs_esoc:file r_file_perms; allow wcnss_service firmware_file:dir search; allow wcnss_service firmware_file:file r_file_perms; get_prop(wcnss_service, hwservicemanager_prop) ================================================ FILE: sepolicy/vendor/wifidisplayhalservice.te ================================================ # Copyright (c) 2017, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # * Neither the name of The Linux Foundation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #Define Domain type wifidisplayhalservice_qti, domain; type wifidisplayhalservice_qti_exec, exec_type, vendor_file_type, file_type; net_domain(wifidisplayhalservice_qti) hwbinder_use(wifidisplayhalservice_qti) allow wifidisplayhalservice_qti system_file:dir r_dir_perms; get_prop(wifidisplayhalservice_qti, hwservicemanager_prop) typeattribute wifidisplayhalservice_qti wifidisplayhalservice_server; typeattribute wifidisplayhalservice_qti wifidisplayhalservice; #Allow for transition from init domain to wifidisplayhalservice init_daemon_domain(wifidisplayhalservice_qti) #Allow wifidisplayhalservice to use Vendor Binder IPC vndbinder_use(wifidisplayhalservice) # Allow hwbinder call from hal client to server binder_call(wifidisplayhalservice_client, wifidisplayhalservice_server) binder_call(wifidisplayhalservice_server, wifidisplayhalservice_client) # Add hwservice related rules add_hwservice(wifidisplayhalservice_server, wifidisplayhalservice_hwservice) #Direct streaming native service add_service(wifidisplayhalservice, wfdnativemm_service) #Allow access to firmware files for HDCP session r_dir_file(wifidisplayhalservice, firmware_file) #Allow access to tee/ion device and tcp socket for HDCP sessions allow wifidisplayhalservice tee_device:chr_file rw_file_perms; allow wifidisplayhalservice ion_device:chr_file r_file_perms; ================================================ FILE: sepolicy/vendor/zygote.te ================================================ get_prop(zygote, build_prop) get_prop(webview_zygote, build_prop) ================================================ FILE: sound_trigger_platform_info.xml ================================================ ================================================ FILE: sprint_whitelist.xml ================================================ ================================================ FILE: system.prop ================================================ # # system.prop for cobalt # #rild.libpath=/system/lib/libreference-ril.so rild.libpath=/vendor/lib64/libril-qc-qmi-1.so #rild.libargs=-d /dev/smd0 persist.rild.nitz_plmn= persist.rild.nitz_long_ons_0= persist.rild.nitz_long_ons_1= persist.rild.nitz_long_ons_2= persist.rild.nitz_long_ons_3= persist.rild.nitz_short_ons_0= persist.rild.nitz_short_ons_1= persist.rild.nitz_short_ons_2= persist.rild.nitz_short_ons_3= ril.subscription.types=NV,RUIM DEVICE_PROVISIONED=1 debug.sf.enable_hwc_vds=1 debug.sf.hw=1 debug.gralloc.enable_fb_ubwc=1 dalvik.vm.heapsize=36m dev.pm.dyn_samplingrate=1 persist.demo.hdmirotationlock=false #property to specify the number of frames to skip before setting hint sdm.perf_hint_window=50 #ro.hdmi.enable=true # # system props for the cne module # persist.cne.feature=1 persist.radio.VT_ENABLE=1 persist.radio.VT_HYBRID_ENABLE=1 persist.radio.data_con_rprt=true persist.rcs.supported=1 persist.radio.rat_on=combine #system props for the MM modules media.stagefright.enable-player=true media.stagefright.enable-http=true media.stagefright.enable-aac=true media.stagefright.enable-qcp=true media.stagefright.enable-scan=true mmp.enable.3g2=true media.aac_51_output_enabled=true mm.enable.smoothstreaming=true media.settings.xml=/vendor/etc/media_profiles_V1_0.xml persist.mm.enable.prefetch=true # Additional buffers shared between Camera and Video vidc.enc.dcvs.extra-buff-count=2 # # system props for the data modules # ro.use_data_netmgrd=true persist.data.netmgrd.qos.enable=true persist.data.mode=concurrent #system props for time-services persist.timed.enable=true # system property for maximum number of HFP client connections bt.max.hfpclient.connections=1 # System property for cabl ro.qualcomm.cabl=2 # # System props for telephony # System prop to turn on CdmaLTEPhone always telephony.lteOnCdmaDevice=1 #Simulate sdcard on /data/media # persist.fuse_sdcard=true #system prop for A4WP profile support ro.bluetooth.a4wp=false # #snapdragon value add features # #system prop for RmNet Data persist.rmnet.data.enable=true persist.data.wda.enable=true persist.data.df.dl_mode=5 persist.data.df.ul_mode=5 persist.data.df.agg.dl_pkt=10 persist.data.df.agg.dl_size=4096 persist.data.df.mux_count=8 persist.data.df.iwlan_mux=9 persist.data.df.dev_name=rmnet_usb0 # # system property determining camera HAL to be used for a Video call # # 1 is camera1 # 2 or anything else is camera2 persist.radio.VT_CAM_INTERFACE=2 #property to enable user to access Google WFD settings persist.debug.wfd.enable=1 ##property to choose between virtual/external wfd display persist.sys.wfd.virtual=0 # system prop for NFC DT ro.nfc.port=I2C #property to enable VDS WFD solution persist.hwc.enable_vds=1 #Increase cached app limit ro.vendor.qti.sys.fw.bg_apps_limit=60 # Property to enable sched colocation, app trigger, game trigger sched.colocate.enable=1 ro.vendor.gt_library=libqti-gt.so ro.vendor.at_library=libqti-at.so sys.games.gt.prof=1 #min/max cpu in core control ro.vendor.qti.core_ctl_min_cpu=2 ro.vendor.qti.core_ctl_max_cpu=4 #Settings to enable sensors #Device Orientation sensor ro.vendor.sensors.dev_ori=false #Persistent Motion Detector ro.vendor.sensors.pmd=true #Stationary Detector ro.vendor.sensors.sta_detect=true #Motion Detector ro.vendor.sensors.mot_detect=true #Device Position Classifier ro.vendor.sensors.dpc=true #MultiShake sensor ro.vendor.sensors.multishake=true ro.vendor.sensors.wu=false #Disable face beautification persist.ts.rtmakeup=false #Property to enable display default color mode vendor.display.enable_default_color_mode=1 persist.radio.videopause.mode=1 persist.data.iwlan.enable=true #Expose aux camera for below packages persist.camera.expose.aux=1 vendor.camera.aux.packagelist=org.codeaurora.snapcam,com.essential.klik,com.essential.testcamera # Set max FPS support persist.camera.max.previewfps=60 # Property for backup NTP Server persist.backup.ntpServer="0.pool.ntp.org" # Chameleon ro.cdma.home.operator.alpha=Chameleon ro.home.operator.carrierid=Chameleon ro.cdma.home.operator.numeric=310000 #enable DPM features persist.vendor.dpm.feature=11 # Qcril properties # since Mata is all bands device, should support both 3gpp and 3gpp2 emergency alerts persist.vendor.radio.all_bc_msg=all ro.gpu.available_frequencies="710000000 670000000 596000000 515000000 414000000 342000000 257000000" audio.offload.min.duration.secs=0 vendor.audio.mqa.enable=true ================================================ FILE: thermal/Android.mk ================================================ # # Copyright 2017 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_PROPRIETARY_MODULE := true LOCAL_MODULE_OWNER := qcom LOCAL_MODULE_TAGS := optional LOCAL_MODULE := android.hardware.thermal@1.0-service.mata LOCAL_INIT_RC := android.hardware.thermal@1.0-service.mata.rc LOCAL_SRC_FILES := service.cpp Thermal.cpp thermal-helper.cpp LOCAL_SHARED_LIBRARIES := \ libhidlbase \ libhidltransport \ libutils \ libbase \ android.hardware.thermal@1.0 \ include $(BUILD_EXECUTABLE) ================================================ FILE: thermal/Thermal.cpp ================================================ /* * 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. */ #include #include #include #include "Thermal.h" #include "thermal-helper.h" namespace android { namespace hardware { namespace thermal { namespace V1_0 { namespace implementation { Thermal::Thermal() : enabled(initThermal()) {} // Methods from ::android::hardware::thermal::V1_0::IThermal follow. Return Thermal::getTemperatures(getTemperatures_cb _hidl_cb) { ThermalStatus status; status.code = ThermalStatusCode::SUCCESS; hidl_vec temperatures; temperatures.resize(kTemperatureNum); if (!enabled) { status.code = ThermalStatusCode::FAILURE; status.debugMessage = "Unsupported hardware"; _hidl_cb(status, temperatures); return Void(); } ssize_t ret = fillTemperatures(&temperatures); if (ret < 0) { status.code = ThermalStatusCode::FAILURE; status.debugMessage = strerror(-ret); } _hidl_cb(status, temperatures); for (auto& t : temperatures) { LOG(DEBUG) << "getTemperatures " << " Type: " << static_cast(t.type) << " Name: " << t.name << " CurrentValue: " << t.currentValue << " ThrottlingThreshold: " << t.throttlingThreshold << " ShutdownThreshold: " << t.shutdownThreshold << " VrThrottlingThreshold: " << t.vrThrottlingThreshold; } return Void(); } Return Thermal::getCpuUsages(getCpuUsages_cb _hidl_cb) { ThermalStatus status; status.code = ThermalStatusCode::SUCCESS; hidl_vec cpuUsages; cpuUsages.resize(kCpuNum); if (!enabled) { status.code = ThermalStatusCode::FAILURE; status.debugMessage = "Unsupported hardware"; _hidl_cb(status, cpuUsages); return Void(); } ssize_t ret = fillCpuUsages(&cpuUsages); if (ret < 0) { status.code = ThermalStatusCode::FAILURE; status.debugMessage = strerror(-ret); } for (auto& u : cpuUsages) { LOG(DEBUG) << "getCpuUsages " << " Name: " << u.name << " Active: " << u.active << " Total: " << u.total << " IsOnline: " << u.isOnline; } _hidl_cb(status, cpuUsages); return Void(); } Return Thermal::getCoolingDevices(getCoolingDevices_cb _hidl_cb) { ThermalStatus status; status.code = ThermalStatusCode::SUCCESS; hidl_vec coolingDevices; if (!enabled) { status.code = ThermalStatusCode::FAILURE; status.debugMessage = "Unsupported hardware"; _hidl_cb(status, coolingDevices); return Void(); } LOG(DEBUG) << "No Cooling Device"; _hidl_cb(status, coolingDevices); return Void(); } } // namespace implementation } // namespace V1_0 } // namespace thermal } // namespace hardware } // namespace android ================================================ FILE: thermal/Thermal.h ================================================ /* * 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 ANDROID_HARDWARE_THERMAL_V1_0_MATA_THERMAL_H #define ANDROID_HARDWARE_THERMAL_V1_0_MATA_THERMAL_H #include #include #include namespace android { namespace hardware { namespace thermal { namespace V1_0 { namespace implementation { using ::android::hardware::thermal::V1_0::CoolingDevice; using ::android::hardware::thermal::V1_0::CpuUsage; using ::android::hardware::thermal::V1_0::IThermal; using ::android::hardware::thermal::V1_0::Temperature; using ::android::hardware::thermal::V1_0::ThermalStatus; using ::android::hardware::Return; using ::android::hardware::Void; using ::android::hardware::hidl_vec; using ::android::hardware::hidl_string; using ::android::sp; struct Thermal : public IThermal { Thermal(); // Methods from ::android::hardware::thermal::V1_0::IThermal follow. Return getTemperatures(getTemperatures_cb _hidl_cb) override; Return getCpuUsages(getCpuUsages_cb _hidl_cb) override; Return getCoolingDevices(getCoolingDevices_cb _hidl_cb) override; private: bool enabled; }; } // namespace implementation } // namespace V1_0 } // namespace thermal } // namespace hardware } // namespace android #endif // ANDROID_HARDWARE_THERMAL_V1_0_MATA_THERMAL_H ================================================ FILE: thermal/android.hardware.thermal@1.0-service.mata.rc ================================================ service thermal-hal-1-0 /vendor/bin/hw/android.hardware.thermal@1.0-service.mata class hal user nobody group nobody ================================================ FILE: thermal/service.cpp ================================================ /* * 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. */ #include #include #include "Thermal.h" using android::sp; using android::status_t; using android::OK; // libhwbinder: using android::hardware::configureRpcThreadpool; using android::hardware::joinRpcThreadpool; // Generated HIDL files using android::hardware::thermal::V1_0::IThermal; using android::hardware::thermal::V1_0::implementation::Thermal; int main() { status_t status; android::sp service = nullptr; LOG(INFO) << "Thermal HAL Service 1.0 is starting"; service = new Thermal(); if (service == nullptr) { LOG(ERROR) << "Can not create an instance of Thermal HAL Iface, exiting"; goto shutdown; } configureRpcThreadpool(1, true /*callerWillJoin*/); status = service->registerAsService(); if (status != OK) { LOG(ERROR) << "Could not register service for Thermal HAL Iface (" << status << ")"; goto shutdown; } LOG(INFO) << "Thermal Service is ready"; joinRpcThreadpool(); // Should not pass this line shutdown: // In normal operation, we don't expect the thread pool to exit LOG(ERROR) << "Thermal Service is shutting down"; return 1; } ================================================ FILE: thermal/thermal-helper.cpp ================================================ /* * 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. */ #include #include #include #include #include #include #include #include #include #include "thermal-helper.h" namespace android { namespace hardware { namespace thermal { namespace V1_0 { namespace implementation { static unsigned int gSkinSensorNum; static unsigned int gTsensOffset; static unsigned int gSkinThrottlingThreshold; static unsigned int gSkinShutdownThreshold; static unsigned int gVrThrottledBelowMin; /** * Initialization constants based on platform * * @return true on success or false on error. */ bool initThermal() { LOG(ERROR) << "Initialization on Mata"; gSkinSensorNum = kMataSkinSensorNum; gTsensOffset = kMataTsensOffset; gSkinThrottlingThreshold = kMataSkinThrottlingThreshold; gSkinShutdownThreshold = kMataSkinShutdownThreshold; gVrThrottledBelowMin = kMataVrThrottledBelowMin; return true; } /** * Reads device temperature. * * @param sensor_num Number of sensor file with temperature. * @param type Device temperature type. * @param name Device temperature name. * @param mult Multiplier used to translate temperature to Celsius. * @param throttling_threshold Throttling threshold for the temperature. * @param shutdown_threshold Shutdown threshold for the temperature. * @param out Pointer to temperature_t structure that will be filled with current * values. * * @return 0 on success or negative value -errno on error. */ static ssize_t readTemperature(int sensor_num, TemperatureType type, const char *name, float mult, float throttling_threshold, float shutdown_threshold, float vr_throttling_threshold, Temperature *out) { FILE *file; char file_name[PATH_MAX]; float temp; sprintf(file_name, kTemperatureFileFormat, sensor_num); file = fopen(file_name, "r"); if (file == NULL) { PLOG(ERROR) << "readTemperature: failed to open file (" << file_name << ")"; return -errno; } if (1 != fscanf(file, "%f", &temp)) { fclose(file); PLOG(ERROR) << "readTemperature: failed to read a float"; return errno ? -errno : -EIO; } fclose(file); (*out).type = type; (*out).name = name; (*out).currentValue = temp * mult; (*out).throttlingThreshold = throttling_threshold; (*out).shutdownThreshold = shutdown_threshold; (*out).vrThrottlingThreshold = vr_throttling_threshold; LOG(DEBUG) << android::base::StringPrintf( "readTemperature: %d, %d, %s, %g, %g, %g, %g", sensor_num, type, name, temp * mult, throttling_threshold, shutdown_threshold, vr_throttling_threshold); return 0; } static ssize_t getCpuTemperatures(hidl_vec *temperatures) { size_t cpu; for (cpu = 0; cpu < kCpuNum; cpu++) { if (cpu >= temperatures->size()) { break; } // temperature in decidegrees Celsius. ssize_t result = readTemperature(kCpuTsensOffset[cpu] + gTsensOffset, TemperatureType::CPU, kCpuLabel[cpu], 0.1, kCpuThrottlingThreshold, kCpuShutdownThreshold, kCpuThrottlingThreshold, &(*temperatures)[cpu]); if (result != 0) { return result; } } return cpu; } ssize_t fillTemperatures(hidl_vec *temperatures) { ssize_t result = 0; size_t current_index = 0; if (temperatures == NULL || temperatures->size() < kTemperatureNum) { LOG(ERROR) << "fillTemperatures: incorrect buffer"; return -EINVAL; } result = getCpuTemperatures(temperatures); if (result < 0) { return result; } current_index += result; // GPU temperature. if (current_index < temperatures->size()) { // temperature in decidegrees Celsius. result = readTemperature(gTsensOffset + kGpuTsensOffset, TemperatureType::GPU, kGpuLabel, 0.1, NAN, NAN, NAN, &(*temperatures)[current_index]); if (result < 0) { return result; } current_index++; } // Battery temperature. if (current_index < temperatures->size()) { // battery: temperature in millidegrees Celsius. result = readTemperature(kBatterySensorNum, TemperatureType::BATTERY, kBatteryLabel, 0.001, NAN, kBatteryShutdownThreshold, NAN, &(*temperatures)[current_index]); if (result < 0) { return result; } current_index++; } // Skin temperature. if (current_index < temperatures->size()) { // temperature in Celsius. result = readTemperature(gSkinSensorNum, TemperatureType::SKIN, kSkinLabel, 1., gSkinThrottlingThreshold, gSkinShutdownThreshold, gVrThrottledBelowMin, &(*temperatures)[current_index]); if (result < 0) { return result; } current_index++; } return kTemperatureNum; } ssize_t fillCpuUsages(hidl_vec *cpuUsages) { int vals, cpu_num, online; ssize_t read; uint64_t user, nice, system, idle, active, total; char *line = NULL; size_t len = 0; size_t size = 0; char file_name[PATH_MAX]; FILE *file; FILE *cpu_file; if (cpuUsages == NULL || cpuUsages->size() < kCpuNum ) { LOG(ERROR) << "fillCpuUsages: incorrect buffer"; return -EINVAL; } file = fopen(kCpuUsageFile, "r"); if (file == NULL) { PLOG(ERROR) << "fillCpuUsages: failed to open file (" << kCpuUsageFile << ")"; return -errno; } while ((read = getline(&line, &len, file)) != -1) { // Skip non "cpu[0-9]" lines. if (strnlen(line, read) < 4 || strncmp(line, "cpu", 3) != 0 || !isdigit(line[3])) { free(line); line = NULL; len = 0; continue; } vals = sscanf(line, "cpu%d %" SCNu64 " %" SCNu64 " %" SCNu64 " %" SCNu64, &cpu_num, &user, &nice, &system, &idle); free(line); line = NULL; len = 0; if (vals != 5 || size == kCpuNum) { if (vals != 5) { PLOG(ERROR) << "fillCpuUsages: failed to read CPU information from file (" << kCpuUsageFile << ")"; } else { PLOG(ERROR) << "fillCpuUsages: file has incorrect format (" << kCpuUsageFile << ")"; } fclose(file); return errno ? -errno : -EIO; } active = user + nice + system; total = active + idle; // Read online CPU information. snprintf(file_name, PATH_MAX, kCpuOnlineFileFormat, cpu_num); cpu_file = fopen(file_name, "r"); online = 0; if (cpu_file == NULL) { PLOG(ERROR) << "fillCpuUsages: failed to open file (" << file_name << ")"; fclose(file); return -errno; } if (1 != fscanf(cpu_file, "%d", &online)) { PLOG(ERROR) << "fillCpuUsages: failed to read CPU online information from file (" << file_name << ")"; fclose(file); fclose(cpu_file); return errno ? -errno : -EIO; } fclose(cpu_file); (*cpuUsages)[size].name = kCpuLabel[size]; (*cpuUsages)[size].active = active; (*cpuUsages)[size].total = total; (*cpuUsages)[size].isOnline = static_cast(online); LOG(DEBUG) << "fillCpuUsages: "<< kCpuLabel[size] << ": " << active << " " << total << " " << online; size++; } fclose(file); if (size != kCpuNum) { PLOG(ERROR) << "fillCpuUsages: file has incorrect format (" << kCpuUsageFile << ")"; return -EIO; } return kCpuNum; } } // namespace implementation } // namespace V1_0 } // namespace thermal } // namespace hardware } // namespace android ================================================ FILE: thermal/thermal-helper.h ================================================ /* * Copyright (c) 2017, The Linux Foundation. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. * * Neither the name of The Linux Foundation nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef __THERMAL_HELPER_H__ #define __THERMAL_HELPER_H__ #include namespace android { namespace hardware { namespace thermal { namespace V1_0 { namespace implementation { using ::android::hardware::thermal::V1_0::CpuUsage; using ::android::hardware::thermal::V1_0::Temperature; constexpr const char *kCpuUsageFile = "/proc/stat"; constexpr const char *kTemperatureFileFormat = "/sys/class/thermal/thermal_zone%d/temp"; constexpr const char *kCpuOnlineFileFormat = "/sys/devices/system/cpu/cpu%d/online"; /* CPU and GPU * static char *vs_list_cobalt_cluster0[] = { "tsens_tz_sensor1", "tsens_tz_sensor2", "tsens_tz_sensor3", "tsens_tz_sensor4" }; static char *vs_list_cobalt_cluster1[] = { "tsens_tz_sensor7", "tsens_tz_sensor8", "tsens_tz_sensor9", "tsens_tz_sensor10" }; static char *vs_list_cobalt_gpu_skin[] = { "tsens_tz_sensor13", "quiet_therm" }; * */ // thermal-engine.conf constexpr unsigned int kMataSkinSensorNum = 9; constexpr unsigned int kMataTsensOffset = 10; constexpr unsigned int kMataSkinThrottlingThreshold = 40; constexpr unsigned int kMataSkinShutdownThreshold = 56; constexpr unsigned int kMataVrThrottledBelowMin = 52; constexpr unsigned int kBatterySensorNum = 0; constexpr unsigned int kGpuTsensOffset = 11; constexpr unsigned int kCpuNum = 8; constexpr const char *kGpuLabel = "GPU"; constexpr const char *kBatteryLabel = "battery"; constexpr const char *kSkinLabel = "skin"; constexpr const char *kCpuLabel[kCpuNum] = {"CPU0", "CPU1", "CPU2", "CPU3", "CPU4", "CPU5", "CPU6", "CPU7"}; constexpr int kCpuTsensOffset[kCpuNum] = {1, 2, 4, 3, 5, 6, 7, 8}; // Sum of kCpuNum + 3 for GPU, BATTERY, and SKIN. constexpr unsigned int kTemperatureNum = 3 + kCpuNum; // qcom, therm-reset-temp constexpr unsigned int kCpuShutdownThreshold = 115; // qcom,freq-mitigation-temp constexpr unsigned int kCpuThrottlingThreshold = 95; // config_shutdownBatteryTemperature in overlay/frameworks/base/core/res/res/values/config.xml constexpr unsigned int kBatteryShutdownThreshold = 60; bool initThermal(); ssize_t fillTemperatures(hidl_vec *temperatures); ssize_t fillCpuUsages(hidl_vec *cpuUsages); } // namespace implementation } // namespace V1_0 } // namespace thermal } // namespace hardware } // namespace android #endif //__THERMAL_HELPER_H__ ================================================ FILE: uinput-fpc.kl ================================================ key 105 SYSTEM_NAVIGATION_UP key 108 SYSTEM_NAVIGATION_RIGHT key 103 SYSTEM_NAVIGATION_LEFT key 106 SYSTEM_NAVIGATION_DOWN ================================================ FILE: usb/Android.mk ================================================ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_PROPRIETARY_MODULE := true LOCAL_MODULE := android.hardware.usb@1.0-service.mata LOCAL_INIT_RC := android.hardware.usb@1.0-service.mata.rc LOCAL_SRC_FILES := \ service.cpp \ Usb.cpp LOCAL_SHARED_LIBRARIES := \ libcutils \ libhidlbase \ libhidltransport \ liblog \ libutils \ libhardware \ android.hardware.usb@1.0 \ include $(BUILD_EXECUTABLE) ================================================ FILE: usb/Usb.cpp ================================================ /* * 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. */ #include #include #include #include #include #include #include #include #include #include #include #include #include "Usb.h" namespace android { namespace hardware { namespace usb { namespace V1_0 { namespace implementation { // Set by the signal handler to destroy the thread volatile bool destroyThread; int32_t readFile(std::string filename, std::string& contents) { std::ifstream file(filename); if (file.is_open()) { getline(file, contents); file.close(); return 0; } return -1; } std::string appendRoleNodeHelper(const std::string portName, PortRoleType type) { std::string node("/sys/class/dual_role_usb/" + portName); switch(type) { case PortRoleType::DATA_ROLE: return node + "/data_role"; case PortRoleType::POWER_ROLE: return node + "/power_role"; default: return node + "/mode"; } } std::string convertRoletoString(PortRole role) { if (role.type == PortRoleType::POWER_ROLE) { if (role.role == static_cast (PortPowerRole::SOURCE)) return "source"; else if (role.role == static_cast (PortPowerRole::SINK)) return "sink"; } else if (role.type == PortRoleType::DATA_ROLE) { if (role.role == static_cast (PortDataRole::HOST)) return "host"; if (role.role == static_cast (PortDataRole::DEVICE)) return "device"; } else if (role.type == PortRoleType::MODE) { if (role.role == static_cast (PortMode::UFP)) return "ufp"; if (role.role == static_cast (PortMode::DFP)) return "dfp"; } return "none"; } Return Usb::switchRole(const hidl_string& portName, const PortRole& newRole) { std::string filename = appendRoleNodeHelper(std::string(portName.c_str()), newRole.type); std::ofstream file(filename); std::string written; ALOGI("filename write: %s role:%d", filename.c_str(), newRole.role); if (file.is_open()) { file << convertRoletoString(newRole).c_str(); file.close(); if (!readFile(filename, written)) { ALOGI("written: %s", written.c_str()); if (written == convertRoletoString(newRole)) { ALOGI("Role switch successfull"); Return ret = mCallback->notifyRoleSwitchStatus(portName, newRole, Status::SUCCESS); if (!ret.isOk()) ALOGE("RoleSwitchStatus error %s", ret.description().c_str()); } } } Return ret = mCallback->notifyRoleSwitchStatus(portName, newRole, Status::ERROR); if (!ret.isOk()) ALOGE("RoleSwitchStatus error %s", ret.description().c_str()); return Void(); } Status getCurrentRoleHelper(std::string portName, PortRoleType type, uint32_t ¤tRole) { std::string filename; std::string roleName; if (type == PortRoleType::POWER_ROLE) { filename = "/sys/class/dual_role_usb/" + portName + "/power_role"; currentRole = static_cast(PortPowerRole::NONE); } else if (type == PortRoleType::DATA_ROLE) { filename = "/sys/class/dual_role_usb/" + portName + "/data_role"; currentRole = static_cast (PortDataRole::NONE); } else if (type == PortRoleType::MODE) { filename = "/sys/class/dual_role_usb/" + portName + "/mode"; currentRole = static_cast (PortMode::NONE); } if (readFile(filename, roleName)) { ALOGE("getCurrentRole: Failed to open filesystem node"); return Status::ERROR; } if (roleName == "dfp") currentRole = static_cast (PortMode::DFP); else if (roleName == "ufp") currentRole = static_cast (PortMode::UFP); else if (roleName == "source") currentRole = static_cast (PortPowerRole::SOURCE); else if (roleName == "sink") currentRole = static_cast (PortPowerRole::SINK); else if (roleName == "host") currentRole = static_cast (PortDataRole::HOST); else if (roleName == "device") currentRole = static_cast (PortDataRole::DEVICE); else if (roleName != "none") { /* case for none has already been addressed. * so we check if the role isnt none. */ return Status::UNRECOGNIZED_ROLE; } return Status::SUCCESS; } Status getTypeCPortNamesHelper(std::vector& names) { DIR *dp; dp = opendir("/sys/class/dual_role_usb"); if (dp != NULL) { rescan: int32_t ports = 0; int32_t current = 0; struct dirent *ep; while ((ep = readdir (dp))) { if (ep->d_type == DT_LNK) { ports++; } } if (ports == 0) { closedir(dp); return Status::SUCCESS; } names.resize(ports); rewinddir(dp); while ((ep = readdir (dp))) { if (ep->d_type == DT_LNK) { /* Check to see if new ports were added since the first pass. */ if (current >= ports) { rewinddir(dp); goto rescan; } names[current++] = ep->d_name; } } closedir (dp); return Status::SUCCESS; } ALOGE("Failed to open /sys/class/dual_role_usb"); return Status::ERROR; } bool canSwitchRoleHelper(const std::string portName, PortRoleType type) { std::string filename = appendRoleNodeHelper(portName, type); std::ofstream file(filename); if (file.is_open()) { file.close(); return true; } return false; } Status getPortModeHelper(const std::string portName, PortMode& portMode) { std::string filename = "/sys/class/dual_role_usb/" + std::string(portName.c_str()) + "/supported_modes"; std::string modes; if (readFile(filename, modes)) { ALOGE("getSupportedRoles: Failed to open filesystem node"); return Status::ERROR; } if (modes == "ufp dfp") portMode = PortMode::DRP; else if (modes == "ufp") portMode = PortMode::UFP; else if (modes == "dfp") portMode = PortMode::DFP; else return Status::UNRECOGNIZED_ROLE; return Status::SUCCESS; } #define MAX_LOOP 300 Status getPortStatusHelper (hidl_vec& currentPortStatus) { std::vector names; Status result = getTypeCPortNamesHelper(names); int j = 0; if (result == Status::SUCCESS) { currentPortStatus.resize(names.size()); for(std::vector::size_type i = 0; i < names.size(); i++) { while (j < MAX_LOOP) { currentPortStatus[i].portName = names[i]; uint32_t currentRole; if (getCurrentRoleHelper(names[i], PortRoleType::POWER_ROLE, currentRole) == Status::SUCCESS) { currentPortStatus[i].currentPowerRole = static_cast (currentRole); } else { ALOGE("Error while retreiving portNames"); goto done; } if (getCurrentRoleHelper(names[i], PortRoleType::DATA_ROLE, currentRole) == Status::SUCCESS) { currentPortStatus[i].currentDataRole = static_cast (currentRole); } else { ALOGE("Error while retreiving current port role"); goto done; } if (getCurrentRoleHelper(names[i], PortRoleType::MODE, currentRole) == Status::SUCCESS) { currentPortStatus[i].currentMode = static_cast (currentRole); } else { ALOGE("Error while retreiving current data role"); goto done; } currentPortStatus[i].canChangeMode = canSwitchRoleHelper(names[i], PortRoleType::MODE); currentPortStatus[i].canChangeDataRole = canSwitchRoleHelper(names[i], PortRoleType::DATA_ROLE); currentPortStatus[i].canChangePowerRole = canSwitchRoleHelper(names[i], PortRoleType::POWER_ROLE); if (getPortModeHelper(names[i], currentPortStatus[i].supportedModes) != Status::SUCCESS) { ALOGE("Error while retrieving port modes"); goto done; } /* Exit when a status is properly detected */ if (currentPortStatus[i].canChangeMode || currentPortStatus[i].canChangeDataRole || currentPortStatus[i].canChangePowerRole) { ALOGI("canChangeMode: %d canChagedata: %d canChangePower:%d", currentPortStatus[i].canChangeMode, currentPortStatus[i].canChangeDataRole, currentPortStatus[i].canChangePowerRole); break; } j++; } if (j == MAX_LOOP) { ALOGI("Fail: canChangeMode: %d canChagedata: %d canChangePower:%d", currentPortStatus[i].canChangeMode, currentPortStatus[i].canChangeDataRole, currentPortStatus[i].canChangePowerRole); } } return Status::SUCCESS; } done: return Status::ERROR; } Return Usb::queryPortStatus() { hidl_vec currentPortStatus; Status status; status = getPortStatusHelper(currentPortStatus); Return ret = mCallback->notifyPortStatusChange(currentPortStatus, status); if (!ret.isOk()) ALOGE("queryPortStatus error %s", ret.description().c_str()); return Void(); } struct data { int uevent_fd; android::hardware::usb::V1_0::implementation::Usb *usb; }; static void uevent_event(uint32_t /*epevents*/, struct data *payload) { char msg[UEVENT_MSG_LEN + 2]; char *cp; int n; n = uevent_kernel_multicast_recv(payload->uevent_fd, msg, UEVENT_MSG_LEN); if (n <= 0) return; if (n >= UEVENT_MSG_LEN) /* overflow -- discard */ return; msg[n] = '\0'; msg[n + 1] = '\0'; cp = msg; while (*cp) { if (!strcmp(cp, "SUBSYSTEM=dual_role_usb")) { ALOGE("uevent received %s", cp); if (payload->usb->mCallback != NULL) { hidl_vec currentPortStatus; Status status = getPortStatusHelper(currentPortStatus); Return ret = payload->usb->mCallback->notifyPortStatusChange(currentPortStatus, status); if (!ret.isOk()) ALOGE("error %s", ret.description().c_str()); } break; } /* advance to after the next \0 */ while (*cp++); } } void* work(void* param) { int epoll_fd, uevent_fd; struct epoll_event ev; int nevents = 0; struct data payload; ALOGE("creating thread"); uevent_fd = uevent_open_socket(64*1024, true); if (uevent_fd < 0) { ALOGE("uevent_init: uevent_open_socket failed\n"); return NULL; } payload.uevent_fd = uevent_fd; payload.usb = (android::hardware::usb::V1_0::implementation::Usb *)param; fcntl(uevent_fd, F_SETFL, O_NONBLOCK); ev.events = EPOLLIN; ev.data.ptr = (void *)uevent_event; epoll_fd = epoll_create(64); if (epoll_fd == -1) { ALOGE("epoll_create failed; errno=%d", errno); goto error; } if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, uevent_fd, &ev) == -1) { ALOGE("epoll_ctl failed; errno=%d", errno); goto error; } while (!destroyThread) { struct epoll_event events[64]; nevents = epoll_wait(epoll_fd, events, 64, -1); if (nevents == -1) { if (errno == EINTR) continue; ALOGE("usb epoll_wait failed; errno=%d", errno); break; } for (int n = 0; n < nevents; ++n) { if (events[n].data.ptr) (*(void (*)(int, struct data *payload))events[n].data.ptr) (events[n].events, &payload); } } ALOGI("exiting worker thread"); error: close(uevent_fd); if (epoll_fd >= 0) close(epoll_fd); return NULL; } void sighandler(int sig) { if (sig == SIGUSR1) { destroyThread = true; ALOGI("destroy set"); return; } signal(SIGUSR1, sighandler); } Return Usb::setCallback(const sp& callback) { pthread_mutex_lock(&mLock); if ((mCallback == NULL && callback == NULL) || (mCallback != NULL && callback != NULL)) { mCallback = callback; pthread_mutex_unlock(&mLock); return Void(); } mCallback = callback; ALOGI("registering callback"); if (mCallback == NULL) { if (!pthread_kill(mPoll, SIGUSR1)) { pthread_join(mPoll, NULL); ALOGI("pthread destroyed"); } pthread_mutex_unlock(&mLock); return Void(); } destroyThread = false; signal(SIGUSR1, sighandler); if (pthread_create(&mPoll, NULL, work, this)) { ALOGE("pthread creation failed %d", errno); mCallback = NULL; } pthread_mutex_unlock(&mLock); return Void(); } // Protects *usb assignment pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; Usb *usb; Usb::Usb() { pthread_mutex_lock(&lock); // Make this a singleton class assert(usb == NULL); usb = this; pthread_mutex_unlock(&lock); } } // namespace implementation } // namespace V1_0 } // namespace usb } // namespace hardware } // namespace android ================================================ FILE: usb/Usb.h ================================================ #ifndef ANDROID_HARDWARE_USB_V1_0_USB_H #define ANDROID_HARDWARE_USB_V1_0_USB_H #include #include #include #include #ifdef LOG_TAG #undef LOG_TAG #endif #define LOG_TAG "android.hardware.usb@1.0-service.mata" #define UEVENT_MSG_LEN 2048 namespace android { namespace hardware { namespace usb { namespace V1_0 { namespace implementation { using ::android::hardware::usb::V1_0::IUsb; using ::android::hardware::usb::V1_0::IUsbCallback; using ::android::hardware::usb::V1_0::PortRole; using ::android::hidl::base::V1_0::IBase; 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 Usb : public IUsb { Usb(); Return switchRole(const hidl_string& portName, const PortRole& role) override; Return setCallback(const sp& callback) override; Return queryPortStatus() override; sp mCallback; private: pthread_t mPoll; pthread_mutex_t mLock = PTHREAD_MUTEX_INITIALIZER; }; } // namespace implementation } // namespace V1_0 } // namespace usb } // namespace hardware } // namespace android #endif // ANDROID_HARDWARE_USB_V1_0_USB_H ================================================ FILE: usb/android.hardware.usb@1.0-service.mata.rc ================================================ service usb-hal-1-0 /vendor/bin/hw/android.hardware.usb@1.0-service.mata class hal user system group system root ================================================ FILE: usb/service.cpp ================================================ /* * 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. */ #include #include "Usb.h" using android::sp; // libhwbinder: using android::hardware::configureRpcThreadpool; using android::hardware::joinRpcThreadpool; // Generated HIDL files using android::hardware::usb::V1_0::IUsb; using android::hardware::usb::V1_0::implementation::Usb; using android::status_t; using android::OK; int main() { android::sp service = new Usb(); configureRpcThreadpool(1, true /*callerWillJoin*/); status_t status = service->registerAsService(); if (status == OK) { ALOGI("USB HAL Ready."); joinRpcThreadpool(); } ALOGE("Cannot register USB HAL service"); return 1; } ================================================ FILE: utils.mk ================================================ # vars for use by utils colon := $(empty):$(empty) underscore := $(empty)_$(empty) # $(call match-word,w1,w2) # checks if w1 == w2 # How it works # if (w1-w2 not empty or w2-w1 not empty) then not_match else match # # returns true or empty #$(warning :$(1): :$(2): :$(subst $(1),,$(2)):) \ #$(warning :$(2): :$(1): :$(subst $(2),,$(1)):) \ # define match-word $(strip \ $(if $(or $(subst $(1),$(empty),$(2)),$(subst $(2),$(empty),$(1))),,true) \ ) endef # $(call find-word-in-list,w,wlist) # finds an exact match of word w in word list wlist # # How it works # fill wlist spaces with colon # wrap w with colon # search word w in list wl, if found match m, return stripped word w # # returns stripped word or empty define find-word-in-list $(strip \ $(eval wl:= $(colon)$(subst $(space),$(colon),$(strip $(2)))$(colon)) \ $(eval w:= $(colon)$(strip $(1))$(colon)) \ $(eval m:= $(findstring $(w),$(wl))) \ $(if $(m),$(1),) \ ) endef # $(call match-word-in-list,w,wlist) # does an exact match of word w in word list wlist # How it works # if the input word is not empty # return output of an exact match of word w in wordlist wlist # else # return empty # returns true or empty define match-word-in-list $(strip \ $(if $(strip $(1)), \ $(call match-word,$(call find-word-in-list,$(1),$(2)),$(strip $(1))), \ ) \ ) endef # $(call match-prefix,p,delim,w/wlist) # matches prefix p in wlist using delimiter delim # # How it works # trim the words in wlist w # if find-word-in-list returns not empty # return true # else # return empty # define match-prefix $(strip \ $(eval w := $(strip $(1)$(strip $(2)))) \ $(eval text := $(patsubst $(w)%,$(1),$(3))) \ $(if $(call match-word-in-list,$(1),$(text)),true,) \ ) endef # ---- # The following utilities are meant for board platform specific # featurisation # $(call get-vendor-board-platforms,v) # returns list of board platforms for vendor v define get-vendor-board-platforms $($(1)_BOARD_PLATFORMS) endef # $(call is-board-platform,bp) # returns true or empty define is-board-platform $(call match-word,$(1),$(TARGET_BOARD_PLATFORM)) endef # $(call is-not-board-platform,bp) # returns true or empty define is-not-board-platform $(if $(call match-word,$(1),$(TARGET_BOARD_PLATFORM)),,true) endef # $(call is-board-platform-in-list,bpl) # returns true or empty define is-board-platform-in-list $(call match-word-in-list,$(TARGET_BOARD_PLATFORM),$(1)) endef # $(call is-vendor-board-platform,vendor) # returns true or empty define is-vendor-board-platform $(strip \ $(call match-word-in-list,$(TARGET_BOARD_PLATFORM),\ $(call get-vendor-board-platforms,$(1)) \ ) \ ) endef # $(call is-chipset-in-board-platform,chipset) # does a prefix match of chipset in TARGET_BOARD_PLATFORM # uses underscore as a delimiter # # returns true or empty define is-chipset-in-board-platform $(call match-prefix,$(1),$(underscore),$(TARGET_BOARD_PLATFORM)) endef # $(call is-chipset-prefix-in-board-platform,prefix) # does a chipset prefix match in TARGET_BOARD_PLATFORM # assumes '_' and 'a' as the delimiter to the chipset prefix # # How it works # if ($(prefix)_ or $(prefix)a match in board platform) # return true # else # return empty # define is-chipset-prefix-in-board-platform $(strip \ $(eval delim_a := $(empty)a$(empty)) \ $(if \ $(or \ $(call match-prefix,$(1),$(delim_a),$(TARGET_BOARD_PLATFORM)), \ $(call match-prefix,$(1),$(underscore),$(TARGET_BOARD_PLATFORM)), \ ), \ true, \ ) \ ) endef #---- # The following utilities are meant for Android Code Name # specific featurisation # # refer http://source.android.com/source/build-numbers.html # for code names and associated sdk versions CUPCAKE_SDK_VERSIONS := 3 DONUT_SDK_VERSIONS := 4 ECLAIR_SDK_VERSIONS := 5 6 7 FROYO_SDK_VERSIONS := 8 GINGERBREAD_SDK_VERSIONS := 9 10 HONEYCOMB_SDK_VERSIONS := 11 12 13 ICECREAM_SANDWICH_SDK_VERSIONS := 14 15 JELLY_BEAN_SDK_VERSIONS := 16 17 18 # $(call is-platform-sdk-version-at-least,version) # version is a numeric SDK_VERSION defined above define is-platform-sdk-version-at-least $(strip \ $(if $(filter 1,$(shell echo "$$(( $(PLATFORM_SDK_VERSION) >= $(1) ))" )), \ true, \ ) \ ) endef # $(call is-android-codename,codename) # codename is one of cupcake,donut,eclair,froyo,gingerbread,icecream # please refer the $(codename)_SDK_VERSIONS declared above define is-android-codename $(strip \ $(if \ $(call match-word-in-list,$(PLATFORM_SDK_VERSION),$($(1)_SDK_VERSIONS)), \ true, \ ) \ ) endef # $(call is-android-codename-in-list,cnlist) # cnlist is combination/list of android codenames define is-android-codename-in-list $(strip \ $(eval acn := $(empty)) \ $(foreach \ i,$(1),\ $(eval acn += \ $(if \ $(call \ match-word-in-list,\ $(PLATFORM_SDK_VERSION),\ $($(i)_SDK_VERSIONS)\ ),\ true,\ )\ )\ ) \ $(if $(strip $(acn)),true,) \ ) endef ================================================ FILE: vibrator/Android.bp ================================================ // // 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. cc_binary { name: "android.hardware.vibrator@1.2-service.mata", relative_install_path: "hw", init_rc: ["android.hardware.vibrator@1.2-service.mata.rc"], srcs: ["service.cpp", "Vibrator.cpp"], cflags: [ "-Wall", "-Werror", ], shared_libs: [ "libhidlbase", "libcutils", "liblog", "libutils", "libhardware", "libbinder_ndk", "android.hardware.vibrator-ndk_platform", ], proprietary: true, } ================================================ FILE: vibrator/Vibrator.cpp ================================================ /* * 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. */ #define LOG_TAG "VibratorService" #include #include #include #include #include "Vibrator.h" #include #include #include #include namespace android { namespace hardware { namespace vibrator { namespace V1_2 { namespace implementation { static constexpr int32_t WAVEFORM_CLICK_EFFECT_MS = 6; using Status = ::android::hardware::vibrator::V1_0::Status; using EffectStrength = ::android::hardware::vibrator::V1_0::EffectStrength; Vibrator::Vibrator(std::ofstream&& activate, std::ofstream&& scale) : mActivate(std::move(activate)), mScale(std::move(scale)) {} // Methods from ::android::hardware::vibrator::V1_2::IVibrator follow. Return Vibrator::on(uint32_t timeoutMs) { mActivate << timeoutMs << std::endl; if (!mActivate) { ALOGE("Failed to activate (%d): %s", errno, strerror(errno)); return Status::UNKNOWN_ERROR; } return Status::OK; } Return Vibrator::off() { mActivate << 0 << std::endl; if (!mActivate) { ALOGE("Failed to turn vibrator off (%d): %s", errno, strerror(errno)); return Status::UNKNOWN_ERROR; } return Status::OK; } Return Vibrator::supportsAmplitudeControl() { return false; } Return Vibrator::setAmplitude(uint8_t /*amplitude*/) { return Status::UNSUPPORTED_OPERATION; } Return Vibrator::perform(V1_0::Effect effect, EffectStrength strength, perform_cb _hidl_cb) { return performEffect(static_cast(effect), strength, _hidl_cb); } Return Vibrator::perform_1_1(V1_1::Effect_1_1 /*effect*/, EffectStrength /*strength*/, perform_cb _hidl_cb) { _hidl_cb(Status::UNSUPPORTED_OPERATION, 0); return Void(); } Return Vibrator::perform_1_2(Effect /*effect*/, EffectStrength /*strength*/, perform_cb _hidl_cb) { _hidl_cb(Status::UNSUPPORTED_OPERATION, 0); return Void(); } static uint16_t convertEffectStrength(EffectStrength strength) { uint16_t scale; switch (strength) { case EffectStrength::LIGHT: scale = 1375; // 50% break; case EffectStrength::MEDIUM: scale = 2062; // 75% break; case EffectStrength::STRONG: scale = 2750; break; } return scale; } Return Vibrator::performEffect(Effect effect, EffectStrength strength, perform_cb _hidl_cb) { Status status = Status::OK; uint32_t timeMS; switch (effect) { case Effect::CLICK: timeMS = WAVEFORM_CLICK_EFFECT_MS; break; default: _hidl_cb(Status::UNSUPPORTED_OPERATION, 0); return Void(); } mScale << convertEffectStrength(strength) << std::endl; on(timeMS); _hidl_cb(status, timeMS); return Void(); } } // namespace implementation } // namespace V1_2 } // namespace vibrator } // namespace hardware } // namespace android ================================================ FILE: vibrator/Vibrator.h ================================================ /* * 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 ANDROID_HARDWARE_VIBRATOR_V1_2_VIBRATOR_H #define ANDROID_HARDWARE_VIBRATOR_V1_2_VIBRATOR_H #include #include #include namespace android { namespace hardware { namespace vibrator { namespace V1_2 { namespace implementation { class Vibrator : public IVibrator { public: Vibrator(std::ofstream&& activate, std::ofstream&& scale); // Methods from ::android::hardware::vibrator::V1_0::IVibrator follow. using Status = ::android::hardware::vibrator::V1_0::Status; Return on(uint32_t timeoutMs) override; Return off() override; Return supportsAmplitudeControl() override; Return setAmplitude(uint8_t amplitude) override; using EffectStrength = ::android::hardware::vibrator::V1_0::EffectStrength; Return perform(V1_0::Effect effect, EffectStrength strength, perform_cb _hidl_cb) override; Return perform_1_1(V1_1::Effect_1_1 effect, EffectStrength strength, perform_cb _hidl_cb) override; Return perform_1_2(Effect effect, EffectStrength strength, perform_cb _hidl_cb) override; private: Return performEffect(Effect effect, EffectStrength strength, perform_cb _hidl_cb); std::ofstream mActivate; std::ofstream mScale; }; } // namespace implementation } // namespace V1_2 } // namespace vibrator } // namespace hardware } // namespace android #endif // ANDROID_HARDWARE_VIBRATOR_V1_2_VIBRATOR_H ================================================ FILE: vibrator/android.hardware.vibrator@1.2-service.mata.rc ================================================ service vendor.vibrator-1-2 /vendor/bin/hw/android.hardware.vibrator@1.2-service.mata class hal user system group system ================================================ FILE: vibrator/service.cpp ================================================ /* * 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. */ #define LOG_TAG "android.hardware.vibrator@1.2-service.mata" #include #include #include #include #include #include "Vibrator.h" using android::hardware::configureRpcThreadpool; using android::hardware::joinRpcThreadpool; using android::hardware::vibrator::V1_2::IVibrator; using android::hardware::vibrator::V1_2::implementation::Vibrator; using namespace android; static constexpr char ACTIVATE_PATH[] = "/sys/class/timed_output/vibrator/enable"; static constexpr char SCALE_PATH[] = "/sys/class/timed_output/vibrator/vmax_mv"; status_t registerVibratorService() { // ostreams below are required std::ofstream activate{ACTIVATE_PATH}; if (!activate) { int error = errno; ALOGE("Failed to open %s (%d): %s", ACTIVATE_PATH, error, strerror(error)); return -error; } std::ofstream scale{SCALE_PATH}; if (!scale) { int error = errno; ALOGW("Failed to open %s (%d): %s", SCALE_PATH, error, strerror(error)); return -error; } sp vibrator = new Vibrator(std::move(activate), std::move(scale)); return vibrator->registerAsService(); } int main() { configureRpcThreadpool(1, true); status_t status = registerVibratorService(); if (status != OK) { return status; } joinRpcThreadpool(); } ================================================ FILE: vold.fstab ================================================ # Copyright (c) 2013, The Linux Foundation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # * Neither the name of The Linux Foundation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. dev_mount sdcard /storage/sdcard1 auto /devices/msm_sdcc.2/mmc_host ================================================ FILE: whitelistedapps.xml ================================================ ================================================ FILE: wifi_concurrency_cfg.txt ================================================ ENABLE_STA_SAP_CONCURRENCY:1 SAP_CHANNEL:6 ================================================ FILE: wpa_supplicant_overlay.conf ================================================ disable_scan_offload=1 p2p_disabled=1 tdls_external_control=1 ================================================ FILE: wpa_supplicant_wcn.conf ================================================ ##### Example wpa_supplicant configuration file ############################### # # This file describes configuration file format and lists all available option. # Please also take a look at simpler configuration examples in 'examples' # subdirectory. # # Empty lines and lines starting with # are ignored # NOTE! This file may contain password information and should probably be made # readable only by root user on multiuser systems. # Note: All file paths in this configuration file should use full (absolute, # not relative to working directory) path in order to allow working directory # to be changed. This can happen if wpa_supplicant is run in the background. # Whether to allow wpa_supplicant to update (overwrite) configuration # # This option can be used to allow wpa_supplicant to overwrite configuration # file whenever configuration is changed (e.g., new network block is added with # wpa_cli or wpa_gui, or a password is changed). This is required for # wpa_cli/wpa_gui to be able to store the configuration changes permanently. # Please note that overwriting configuration file will remove the comments from # it. update_config=1 # global configuration (shared by all network blocks) # # Parameters for the control interface. If this is specified, wpa_supplicant # will open a control interface that is available for external programs to # manage wpa_supplicant. The meaning of this string depends on which control # interface mechanism is used. For all cases, the existance of this parameter # in configuration is used to determine whether the control interface is # enabled. # # For UNIX domain sockets (default on Linux and BSD): This is a directory that # will be created for UNIX domain sockets for listening to requests from # external programs (CLI/GUI, etc.) for status information and configuration. # The socket file will be named based on the interface name, so multiple # wpa_supplicant processes can be run at the same time if more than one # interface is used. # /var/run/wpa_supplicant is the recommended directory for sockets and by # default, wpa_cli will use it when trying to connect with wpa_supplicant. # # Access control for the control interface can be configured by setting the # directory to allow only members of a group to use sockets. This way, it is # possible to run wpa_supplicant as root (since it needs to change network # configuration and open raw sockets) and still allow GUI/CLI components to be # run as non-root users. However, since the control interface can be used to # change the network configuration, this access needs to be protected in many # cases. By default, wpa_supplicant is configured to use gid 0 (root). If you # want to allow non-root users to use the control interface, add a new group # and change this value to match with that group. Add users that should have # control interface access to this group. If this variable is commented out or # not included in the configuration file, group will not be changed from the # value it got by default when the directory or socket was created. # # When configuring both the directory and group, use following format: # DIR=/var/run/wpa_supplicant GROUP=wheel # DIR=/var/run/wpa_supplicant GROUP=0 # (group can be either group name or gid) ctrl_interface=wlan0 # IEEE 802.1X/EAPOL version # wpa_supplicant is implemented based on IEEE Std 802.1X-2004 which defines # EAPOL version 2. However, there are many APs that do not handle the new # version number correctly (they seem to drop the frames completely). In order # to make wpa_supplicant interoperate with these APs, the version number is set # to 1 by default. This configuration value can be used to set it to the new # version (2). eapol_version=1 # AP scanning/selection # By default, wpa_supplicant requests driver to perform AP scanning and then # uses the scan results to select a suitable AP. Another alternative is to # allow the driver to take care of AP scanning and selection and use # wpa_supplicant just to process EAPOL frames based on IEEE 802.11 association # information from the driver. # 1: wpa_supplicant initiates scanning and AP selection # 0: driver takes care of scanning, AP selection, and IEEE 802.11 association # parameters (e.g., WPA IE generation); this mode can also be used with # non-WPA drivers when using IEEE 802.1X mode; do not try to associate with # APs (i.e., external program needs to control association). This mode must # also be used when using wired Ethernet drivers. # 2: like 0, but associate with APs using security policy and SSID (but not # BSSID); this can be used, e.g., with ndiswrapper and NDIS drivers to # enable operation with hidden SSIDs and optimized roaming; in this mode, # the network blocks in the configuration file are tried one by one until # the driver reports successful association; each network block should have # explicit security policy (i.e., only one option in the lists) for # key_mgmt, pairwise, group, proto variables ap_scan=1 # EAP fast re-authentication # By default, fast re-authentication is enabled for all EAP methods that # support it. This variable can be used to disable fast re-authentication. # Normally, there is no need to disable this. fast_reauth=1 #Disable the default behavior of adding a separate interface for the P2P #group when driver support for concurrent interfaces is available. p2p_no_group_iface=1 # OpenSSL Engine support # These options can be used to load OpenSSL engines. # The two engines that are supported currently are shown below: # They are both from the opensc project (http://www.opensc.org/) # By default no engines are loaded. # make the opensc engine available #opensc_engine_path=/usr/lib/opensc/engine_opensc.so # make the pkcs11 engine available #pkcs11_engine_path=/usr/lib/opensc/engine_pkcs11.so # configure the path to the pkcs11 module required by the pkcs11 engine #pkcs11_module_path=/usr/lib/pkcs11/opensc-pkcs11.so # Dynamic EAP methods # If EAP methods were built dynamically as shared object files, they need to be # loaded here before being used in the network blocks. By default, EAP methods # are included statically in the build, so these lines are not needed #load_dynamic_eap=/usr/lib/wpa_supplicant/eap_tls.so #load_dynamic_eap=/usr/lib/wpa_supplicant/eap_md5.so # Driver interface parameters # This field can be used to configure arbitrary driver interace parameters. The # format is specific to the selected driver interface. This field is not used # in most cases. #driver_param="field=value" # Country code # The ISO/IEC alpha2 country code for the country in which this device is # currently operating. #country=US # Maximum lifetime for PMKSA in seconds; default 43200 #dot11RSNAConfigPMKLifetime=43200 # Threshold for reauthentication (percentage of PMK lifetime); default 70 #dot11RSNAConfigPMKReauthThreshold=70 # Timeout for security association negotiation in seconds; default 60 #dot11RSNAConfigSATimeout=60 # Wi-Fi Protected Setup (WPS) parameters # Universally Unique IDentifier (UUID; see RFC 4122) of the device # If not configured, UUID will be generated based on the local MAC address. #uuid=12345678-9abc-def0-1234-56789abcdef0 # Device Name # User-friendly description of device; up to 32 octets encoded in UTF-8 #device_name=Wireless Client # Manufacturer # The manufacturer of the device (up to 64 ASCII characters) #manufacturer=Company # Model Name # Model of the device (up to 32 ASCII characters) #model_name=cmodel # Model Number # Additional device description (up to 32 ASCII characters) #model_number=123 # Serial Number # Serial number of the device (up to 32 characters) #serial_number=12345 # Primary Device Type # Used format: -- # categ = Category as an integer value # OUI = OUI and type octet as a 4-octet hex-encoded value; 0050F204 for # default WPS OUI # subcateg = OUI-specific Sub Category as an integer value # Examples: # 1-0050F204-1 (Computer / PC) # 1-0050F204-2 (Computer / Server) # 5-0050F204-1 (Storage / NAS) # 6-0050F204-1 (Network Infrastructure / AP) #device_type=1-0050F204-1 # OS Version # 4-octet operating system version number (hex string) #os_version=01020300 # Credential processing # 0 = process received credentials internally (default) # 1 = do not process received credentials; just pass them over ctrl_iface to # external program(s) # 2 = process received credentials internally and pass them over ctrl_iface # to external program(s) #wps_cred_processing=0 # network block # # Each network (usually AP's sharing the same SSID) is configured as a separate # block in this configuration file. The network blocks are in preference order # (the first match is used). # # network block fields: # # disabled: # 0 = this network can be used (default) # 1 = this network block is disabled (can be enabled through ctrl_iface, # e.g., with wpa_cli or wpa_gui) # # id_str: Network identifier string for external scripts. This value is passed # to external action script through wpa_cli as WPA_ID_STR environment # variable to make it easier to do network specific configuration. # # ssid: SSID (mandatory); either as an ASCII string with double quotation or # as hex string; network name # # scan_ssid: # 0 = do not scan this SSID with specific Probe Request frames (default) # 1 = scan with SSID-specific Probe Request frames (this can be used to # find APs that do not accept broadcast SSID or use multiple SSIDs; # this will add latency to scanning, so enable this only when needed) # # bssid: BSSID (optional); if set, this network block is used only when # associating with the AP using the configured BSSID # # priority: priority group (integer) # By default, all networks will get same priority group (0). If some of the # networks are more desirable, this field can be used to change the order in # which wpa_supplicant goes through the networks when selecting a BSS. The # priority groups will be iterated in decreasing priority (i.e., the larger the # priority value, the sooner the network is matched against the scan results). # Within each priority group, networks will be selected based on security # policy, signal strength, etc. # Please note that AP scanning with scan_ssid=1 and ap_scan=2 mode are not # using this priority to select the order for scanning. Instead, they try the # networks in the order that used in the configuration file. # # mode: IEEE 802.11 operation mode # 0 = infrastructure (Managed) mode, i.e., associate with an AP (default) # 1 = IBSS (ad-hoc, peer-to-peer) # Note: IBSS can only be used with key_mgmt NONE (plaintext and static WEP) # and key_mgmt=WPA-NONE (fixed group key TKIP/CCMP). In addition, ap_scan has # to be set to 2 for IBSS. WPA-None requires following network block options: # proto=WPA, key_mgmt=WPA-NONE, pairwise=NONE, group=TKIP (or CCMP, but not # both), and psk must also be set. # # frequency: Channel frequency in megahertz (MHz) for IBSS, e.g., # 2412 = IEEE 802.11b/g channel 1. This value is used to configure the initial # channel for IBSS (adhoc) networks. It is ignored in the infrastructure mode. # In addition, this value is only used by the station that creates the IBSS. If # an IBSS network with the configured SSID is already present, the frequency of # the network will be used instead of this configured value. # # proto: list of accepted protocols # WPA = WPA/IEEE 802.11i/D3.0 # RSN = WPA2/IEEE 802.11i (also WPA2 can be used as an alias for RSN) # If not set, this defaults to: WPA RSN # # key_mgmt: list of accepted authenticated key management protocols # WPA-PSK = WPA pre-shared key (this requires 'psk' field) # WPA-EAP = WPA using EAP authentication # IEEE8021X = IEEE 802.1X using EAP authentication and (optionally) dynamically # generated WEP keys # NONE = WPA is not used; plaintext or static WEP could be used # WPA-PSK-SHA256 = Like WPA-PSK but using stronger SHA256-based algorithms # WPA-EAP-SHA256 = Like WPA-EAP but using stronger SHA256-based algorithms # If not set, this defaults to: WPA-PSK WPA-EAP # # auth_alg: list of allowed IEEE 802.11 authentication algorithms # OPEN = Open System authentication (required for WPA/WPA2) # SHARED = Shared Key authentication (requires static WEP keys) # LEAP = LEAP/Network EAP (only used with LEAP) # If not set, automatic selection is used (Open System with LEAP enabled if # LEAP is allowed as one of the EAP methods). # # pairwise: list of accepted pairwise (unicast) ciphers for WPA # CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] # TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] # NONE = Use only Group Keys (deprecated, should not be included if APs support # pairwise keys) # If not set, this defaults to: CCMP TKIP # # group: list of accepted group (broadcast/multicast) ciphers for WPA # CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0] # TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0] # WEP104 = WEP (Wired Equivalent Privacy) with 104-bit key # WEP40 = WEP (Wired Equivalent Privacy) with 40-bit key [IEEE 802.11] # If not set, this defaults to: CCMP TKIP WEP104 WEP40 # # psk: WPA preshared key; 256-bit pre-shared key # The key used in WPA-PSK mode can be entered either as 64 hex-digits, i.e., # 32 bytes or as an ASCII passphrase (in which case, the real PSK will be # generated using the passphrase and SSID). ASCII passphrase must be between # 8 and 63 characters (inclusive). # This field is not needed, if WPA-EAP is used. # Note: Separate tool, wpa_passphrase, can be used to generate 256-bit keys # from ASCII passphrase. This process uses lot of CPU and wpa_supplicant # startup and reconfiguration time can be optimized by generating the PSK only # only when the passphrase or SSID has actually changed. # # eapol_flags: IEEE 802.1X/EAPOL options (bit field) # Dynamic WEP key required for non-WPA mode # bit0 (1): require dynamically generated unicast WEP key # bit1 (2): require dynamically generated broadcast WEP key # (3 = require both keys; default) # Note: When using wired authentication, eapol_flags must be set to 0 for the # authentication to be completed successfully. # # mixed_cell: This option can be used to configure whether so called mixed # cells, i.e., networks that use both plaintext and encryption in the same # SSID, are allowed when selecting a BSS form scan results. # 0 = disabled (default) # 1 = enabled # # proactive_key_caching: # Enable/disable opportunistic PMKSA caching for WPA2. # 0 = disabled (default) # 1 = enabled # # wep_key0..3: Static WEP key (ASCII in double quotation, e.g. "abcde" or # hex without quotation, e.g., 0102030405) # wep_tx_keyidx: Default WEP key index (TX) (0..3) # # peerkey: Whether PeerKey negotiation for direct links (IEEE 802.11e DLS) is # allowed. This is only used with RSN/WPA2. # 0 = disabled (default) # 1 = enabled #peerkey=1 # # wpa_ptk_rekey: Maximum lifetime for PTK in seconds. This can be used to # enforce rekeying of PTK to mitigate some attacks against TKIP deficiencies. # # Following fields are only used with internal EAP implementation. # eap: space-separated list of accepted EAP methods # MD5 = EAP-MD5 (unsecure and does not generate keying material -> # cannot be used with WPA; to be used as a Phase 2 method # with EAP-PEAP or EAP-TTLS) # MSCHAPV2 = EAP-MSCHAPv2 (cannot be used separately with WPA; to be used # as a Phase 2 method with EAP-PEAP or EAP-TTLS) # OTP = EAP-OTP (cannot be used separately with WPA; to be used # as a Phase 2 method with EAP-PEAP or EAP-TTLS) # GTC = EAP-GTC (cannot be used separately with WPA; to be used # as a Phase 2 method with EAP-PEAP or EAP-TTLS) # TLS = EAP-TLS (client and server certificate) # PEAP = EAP-PEAP (with tunnelled EAP authentication) # TTLS = EAP-TTLS (with tunnelled EAP or PAP/CHAP/MSCHAP/MSCHAPV2 # authentication) # If not set, all compiled in methods are allowed. # # identity: Identity string for EAP # This field is also used to configure user NAI for # EAP-PSK/PAX/SAKE/GPSK. # anonymous_identity: Anonymous identity string for EAP (to be used as the # unencrypted identity with EAP types that support different tunnelled # identity, e.g., EAP-TTLS) # password: Password string for EAP. This field can include either the # plaintext password (using ASCII or hex string) or a NtPasswordHash # (16-byte MD4 hash of password) in hash:<32 hex digits> format. # NtPasswordHash can only be used when the password is for MSCHAPv2 or # MSCHAP (EAP-MSCHAPv2, EAP-TTLS/MSCHAPv2, EAP-TTLS/MSCHAP, LEAP). # EAP-PSK (128-bit PSK), EAP-PAX (128-bit PSK), and EAP-SAKE (256-bit # PSK) is also configured using this field. For EAP-GPSK, this is a # variable length PSK. # ca_cert: File path to CA certificate file (PEM/DER). This file can have one # or more trusted CA certificates. If ca_cert and ca_path are not # included, server certificate will not be verified. This is insecure and # a trusted CA certificate should always be configured when using # EAP-TLS/TTLS/PEAP. Full path should be used since working directory may # change when wpa_supplicant is run in the background. # On Windows, trusted CA certificates can be loaded from the system # certificate store by setting this to cert_store://, e.g., # ca_cert="cert_store://CA" or ca_cert="cert_store://ROOT". # Note that when running wpa_supplicant as an application, the user # certificate store (My user account) is used, whereas computer store # (Computer account) is used when running wpasvc as a service. # ca_path: Directory path for CA certificate files (PEM). This path may # contain multiple CA certificates in OpenSSL format. Common use for this # is to point to system trusted CA list which is often installed into # directory like /etc/ssl/certs. If configured, these certificates are # added to the list of trusted CAs. ca_cert may also be included in that # case, but it is not required. # client_cert: File path to client certificate file (PEM/DER) # Full path should be used since working directory may change when # wpa_supplicant is run in the background. # Alternatively, a named configuration blob can be used by setting this # to blob://. # private_key: File path to client private key file (PEM/DER/PFX) # When PKCS#12/PFX file (.p12/.pfx) is used, client_cert should be # commented out. Both the private key and certificate will be read from # the PKCS#12 file in this case. Full path should be used since working # directory may change when wpa_supplicant is run in the background. # Windows certificate store can be used by leaving client_cert out and # configuring private_key in one of the following formats: # cert://substring_to_match # hash://certificate_thumbprint_in_hex # for example: private_key="hash://63093aa9c47f56ae88334c7b65a4" # Note that when running wpa_supplicant as an application, the user # certificate store (My user account) is used, whereas computer store # (Computer account) is used when running wpasvc as a service. # Alternatively, a named configuration blob can be used by setting this # to blob://. # private_key_passwd: Password for private key file (if left out, this will be # asked through control interface) # dh_file: File path to DH/DSA parameters file (in PEM format) # This is an optional configuration file for setting parameters for an # ephemeral DH key exchange. In most cases, the default RSA # authentication does not use this configuration. However, it is possible # setup RSA to use ephemeral DH key exchange. In addition, ciphers with # DSA keys always use ephemeral DH keys. This can be used to achieve # forward secrecy. If the file is in DSA parameters format, it will be # automatically converted into DH params. # subject_match: Substring to be matched against the subject of the # authentication server certificate. If this string is set, the server # sertificate is only accepted if it contains this string in the subject. # The subject string is in following format: # /C=US/ST=CA/L=San Francisco/CN=Test AS/emailAddress=as@example.com # altsubject_match: Semicolon separated string of entries to be matched against # the alternative subject name of the authentication server certificate. # If this string is set, the server sertificate is only accepted if it # contains one of the entries in an alternative subject name extension. # altSubjectName string is in following format: TYPE:VALUE # Example: EMAIL:server@example.com # Example: DNS:server.example.com;DNS:server2.example.com # Following types are supported: EMAIL, DNS, URI # phase1: Phase1 (outer authentication, i.e., TLS tunnel) parameters # (string with field-value pairs, e.g., "peapver=0" or # "peapver=1 peaplabel=1") # 'peapver' can be used to force which PEAP version (0 or 1) is used. # 'peaplabel=1' can be used to force new label, "client PEAP encryption", # to be used during key derivation when PEAPv1 or newer. Most existing # PEAPv1 implementation seem to be using the old label, "client EAP # encryption", and wpa_supplicant is now using that as the default value. # Some servers, e.g., Radiator, may require peaplabel=1 configuration to # interoperate with PEAPv1; see eap_testing.txt for more details. # 'peap_outer_success=0' can be used to terminate PEAP authentication on # tunneled EAP-Success. This is required with some RADIUS servers that # implement draft-josefsson-pppext-eap-tls-eap-05.txt (e.g., # Lucent NavisRadius v4.4.0 with PEAP in "IETF Draft 5" mode) # include_tls_length=1 can be used to force wpa_supplicant to include # TLS Message Length field in all TLS messages even if they are not # fragmented. # sim_min_num_chal=3 can be used to configure EAP-SIM to require three # challenges (by default, it accepts 2 or 3) # result_ind=1 can be used to enable EAP-SIM and EAP-AKA to use # protected result indication. # 'crypto_binding' option can be used to control PEAPv0 cryptobinding # behavior: # * 0 = do not use cryptobinding (default) # * 1 = use cryptobinding if server supports it # * 2 = require cryptobinding # EAP-WSC (WPS) uses following options: pin= or # pbc=1. # phase2: Phase2 (inner authentication with TLS tunnel) parameters # (string with field-value pairs, e.g., "auth=MSCHAPV2" for EAP-PEAP or # "autheap=MSCHAPV2 autheap=MD5" for EAP-TTLS) # Following certificate/private key fields are used in inner Phase2 # authentication when using EAP-TTLS or EAP-PEAP. # ca_cert2: File path to CA certificate file. This file can have one or more # trusted CA certificates. If ca_cert2 and ca_path2 are not included, # server certificate will not be verified. This is insecure and a trusted # CA certificate should always be configured. # ca_path2: Directory path for CA certificate files (PEM) # client_cert2: File path to client certificate file # private_key2: File path to client private key file # private_key2_passwd: Password for private key file # dh_file2: File path to DH/DSA parameters file (in PEM format) # subject_match2: Substring to be matched against the subject of the # authentication server certificate. # altsubject_match2: Substring to be matched against the alternative subject # name of the authentication server certificate. # # fragment_size: Maximum EAP fragment size in bytes (default 1398). # This value limits the fragment size for EAP methods that support # fragmentation (e.g., EAP-TLS and EAP-PEAP). This value should be set # small enough to make the EAP messages fit in MTU of the network # interface used for EAPOL. The default value is suitable for most # cases. # # EAP-FAST variables: # pac_file: File path for the PAC entries. wpa_supplicant will need to be able # to create this file and write updates to it when PAC is being # provisioned or refreshed. Full path to the file should be used since # working directory may change when wpa_supplicant is run in the # background. Alternatively, a named configuration blob can be used by # setting this to blob:// # phase1: fast_provisioning option can be used to enable in-line provisioning # of EAP-FAST credentials (PAC): # 0 = disabled, # 1 = allow unauthenticated provisioning, # 2 = allow authenticated provisioning, # 3 = allow both unauthenticated and authenticated provisioning # fast_max_pac_list_len= option can be used to set the maximum # number of PAC entries to store in a PAC list (default: 10) # fast_pac_format=binary option can be used to select binary format for # storing PAC entries in order to save some space (the default # text format uses about 2.5 times the size of minimal binary # format) # # wpa_supplicant supports number of "EAP workarounds" to work around # interoperability issues with incorrectly behaving authentication servers. # These are enabled by default because some of the issues are present in large # number of authentication servers. Strict EAP conformance mode can be # configured by disabling workarounds with eap_workaround=0. # Example blocks: # Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers #network={ # ssid="simple" # psk="very secret passphrase" # priority=5 #} # ## Same as previous, but request SSID-specific scanning (for APs that reject ## broadcast SSID) #network={ # ssid="second ssid" # scan_ssid=1 # psk="very secret passphrase" # priority=2 #} # ## Only WPA-PSK is used. Any valid cipher combination is accepted. #network={ # ssid="example" # proto=WPA # key_mgmt=WPA-PSK # pairwise=CCMP TKIP # group=CCMP TKIP WEP104 WEP40 # psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb # priority=2 #} # ## WPA-Personal(PSK) with TKIP and enforcement for frequent PTK rekeying #network={ # ssid="example" # proto=WPA # key_mgmt=WPA-PSK # pairwise=TKIP # group=TKIP # psk="not so secure passphrase" # wpa_ptk_rekey=600 #} # ## Only WPA-EAP is used. Both CCMP and TKIP is accepted. An AP that used WEP104 ## or WEP40 as the group cipher will not be accepted. #network={ # ssid="example" # proto=RSN # key_mgmt=WPA-EAP # pairwise=CCMP TKIP # group=CCMP TKIP # eap=TLS # identity="user@example.com" # ca_cert="/etc/cert/ca.pem" # client_cert="/etc/cert/user.pem" # private_key="/etc/cert/user.prv" # private_key_passwd="password" # priority=1 #} # ## EAP-PEAP/MSCHAPv2 configuration for RADIUS servers that use the new peaplabel ## (e.g., Radiator) #network={ # ssid="example" # key_mgmt=WPA-EAP # eap=PEAP # identity="user@example.com" # password="foobar" # ca_cert="/etc/cert/ca.pem" # phase1="peaplabel=1" # phase2="auth=MSCHAPV2" # priority=10 #} # ## EAP-TTLS/EAP-MD5-Challenge configuration with anonymous identity for the ## unencrypted use. Real identity is sent only within an encrypted TLS tunnel. #network={ # ssid="example" # key_mgmt=WPA-EAP # eap=TTLS # identity="user@example.com" # anonymous_identity="anonymous@example.com" # password="foobar" # ca_cert="/etc/cert/ca.pem" # priority=2 #} # ## EAP-TTLS/MSCHAPv2 configuration with anonymous identity for the unencrypted ## use. Real identity is sent only within an encrypted TLS tunnel. #network={ # ssid="example" # key_mgmt=WPA-EAP # eap=TTLS # identity="user@example.com" # anonymous_identity="anonymous@example.com" # password="foobar" # ca_cert="/etc/cert/ca.pem" # phase2="auth=MSCHAPV2" #} # ## WPA-EAP, EAP-TTLS with different CA certificate used for outer and inner ## authentication. #network={ # ssid="example" # key_mgmt=WPA-EAP # eap=TTLS # # Phase1 / outer authentication # anonymous_identity="anonymous@example.com" # ca_cert="/etc/cert/ca.pem" # # Phase 2 / inner authentication # phase2="autheap=TLS" # ca_cert2="/etc/cert/ca2.pem" # client_cert2="/etc/cer/user.pem" # private_key2="/etc/cer/user.prv" # private_key2_passwd="password" # priority=2 #} # ## Both WPA-PSK and WPA-EAP is accepted. Only CCMP is accepted as pairwise and ## group cipher. #network={ # ssid="example" # bssid=00:11:22:33:44:55 # proto=WPA RSN # key_mgmt=WPA-PSK WPA-EAP # pairwise=CCMP # group=CCMP # psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb #} # ## Special characters in SSID, so use hex string. Default to WPA-PSK, WPA-EAP ## and all valid ciphers. #network={ # ssid=00010203 # psk=000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f #} # # ## EAP-SIM with a GSM SIM or USIM #network={ # ssid="eap-sim-test" # key_mgmt=WPA-EAP # eap=SIM # pin="1234" # pcsc="" #} # # ## EAP-PSK #network={ # ssid="eap-psk-test" # key_mgmt=WPA-EAP # eap=PSK # anonymous_identity="eap_psk_user" # password=06b4be19da289f475aa46a33cb793029 # identity="eap_psk_user@example.com" #} # # ## IEEE 802.1X/EAPOL with dynamically generated WEP keys (i.e., no WPA) using ## EAP-TLS for authentication and key generation; require both unicast and ## broadcast WEP keys. #network={ # ssid="1x-test" # key_mgmt=IEEE8021X # eap=TLS # identity="user@example.com" # ca_cert="/etc/cert/ca.pem" # client_cert="/etc/cert/user.pem" # private_key="/etc/cert/user.prv" # private_key_passwd="password" # eapol_flags=3 #} # # ## LEAP with dynamic WEP keys #network={ # ssid="leap-example" # key_mgmt=IEEE8021X # eap=LEAP # identity="user" # password="foobar" #} # ## EAP-IKEv2 using shared secrets for both server and peer authentication #network={ # ssid="ikev2-example" # key_mgmt=WPA-EAP # eap=IKEV2 # identity="user" # password="foobar" #} # ## EAP-FAST with WPA (WPA or WPA2) #network={ # ssid="eap-fast-test" # key_mgmt=WPA-EAP # eap=FAST # anonymous_identity="FAST-000102030405" # identity="username" # password="password" # phase1="fast_provisioning=1" # pac_file="/etc/wpa_supplicant.eap-fast-pac" #} # #network={ # ssid="eap-fast-test" # key_mgmt=WPA-EAP # eap=FAST # anonymous_identity="FAST-000102030405" # identity="username" # password="password" # phase1="fast_provisioning=1" # pac_file="blob://eap-fast-pac" #} # ## Plaintext connection (no WPA, no IEEE 802.1X) #network={ # ssid="plaintext-test" # key_mgmt=NONE #} # # ## Shared WEP key connection (no WPA, no IEEE 802.1X) #network={ # ssid="static-wep-test" # key_mgmt=NONE # wep_key0="abcde" # wep_key1=0102030405 # wep_key2="1234567890123" # wep_tx_keyidx=0 # priority=5 #} # # ## Shared WEP key connection (no WPA, no IEEE 802.1X) using Shared Key ## IEEE 802.11 authentication #network={ # ssid="static-wep-test2" # key_mgmt=NONE # wep_key0="abcde" # wep_key1=0102030405 # wep_key2="1234567890123" # wep_tx_keyidx=0 # priority=5 # auth_alg=SHARED #} # # ## IBSS/ad-hoc network with WPA-None/TKIP. #network={ # ssid="test adhoc" # mode=1 # frequency=2412 # proto=WPA # key_mgmt=WPA-NONE # pairwise=NONE # group=TKIP # psk="secret passphrase" #} # # ## Catch all example that allows more or less all configuration modes #network={ # ssid="example" # scan_ssid=1 # key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE # pairwise=CCMP TKIP # group=CCMP TKIP WEP104 WEP40 # psk="very secret passphrase" # eap=TTLS PEAP TLS # identity="user@example.com" # password="foobar" # ca_cert="/etc/cert/ca.pem" # client_cert="/etc/cert/user.pem" # private_key="/etc/cert/user.prv" # private_key_passwd="password" # phase1="peaplabel=0" #} # ## Example of EAP-TLS with smartcard (openssl engine) #network={ # ssid="example" # key_mgmt=WPA-EAP # eap=TLS # proto=RSN # pairwise=CCMP TKIP # group=CCMP TKIP # identity="user@example.com" # ca_cert="/etc/cert/ca.pem" # client_cert="/etc/cert/user.pem" # # engine=1 # # # The engine configured here must be available. Look at # # OpenSSL engine support in the global section. # # The key available through the engine must be the private key # # matching the client certificate configured above. # # # use the opensc engine # #engine_id="opensc" # #key_id="45" # # # use the pkcs11 engine # engine_id="pkcs11" # key_id="id_45" # # # Optional PIN configuration; this can be left out and PIN will be # # asked through the control interface # pin="1234" #} # ## Example configuration showing how to use an inlined blob as a CA certificate ## data instead of using external file #network={ # ssid="example" # key_mgmt=WPA-EAP # eap=TTLS # identity="user@example.com" # anonymous_identity="anonymous@example.com" # password="foobar" # ca_cert="blob://exampleblob" # priority=20 #} # #blob-base64-exampleblob={ #SGVsbG8gV29ybGQhCg== #} # Wildcard match for SSID (plaintext APs only). This example select any # open AP regardless of its SSID. #network={ # key_mgmt=NONE #}