├── Android.mk ├── BoardConfig.mk ├── BoardConfigLineage.mk ├── CleanSpec.mk ├── android_filesystem_config.h ├── audio_policy_configuration.xml ├── bluetooth └── bdroid_buildcfg.h ├── compatibility_matrix.xml ├── default-permissions.xml ├── device-lineage.mk ├── device.mk ├── device_framework_matrix.xml ├── dumpstate ├── Android.mk ├── DumpstateDevice.cpp ├── DumpstateDevice.h ├── android.hardware.dumpstate@1.0-service.wahoo.rc └── service.cpp ├── folio_daemon ├── Android.mk └── main.cpp ├── framework_manifest.xml ├── fstab.hardware ├── gps.conf ├── gps_debug.conf ├── graphite_ipc_platform_info.xml ├── health ├── Android.bp ├── CycleCountBackupRestore.cpp ├── CycleCountBackupRestore.h ├── HealthService.cpp ├── LearnedCapacityBackupRestore.cpp ├── LearnedCapacityBackupRestore.h └── android.hardware.health@2.0-service.wahoo.rc ├── init.elabel.sh ├── init.hardware.chamber.rc.userdebug ├── init.hardware.diag.rc.user ├── init.hardware.diag.rc.userdebug ├── init.hardware.rc ├── init.hardware.usb.rc ├── init.insmod.sh ├── init.power.sh ├── init.qcom.devstart.sh ├── init.qcom.ipastart.sh ├── init.qcom.wlan.sh ├── init.radio.sh ├── init.ramoops.sh ├── init.recovery.hardware.rc ├── init.recovery.usb.rc ├── kernel-headers ├── asm-generic │ └── ioctls.h ├── drm │ ├── msm_drm.h │ ├── msm_drm_pp.h │ └── sde_drm.h ├── linux │ ├── avtimer.h │ ├── esoc_ctrl.h │ ├── ion.h │ ├── ipa_qmi_service_v01.h │ ├── mdss_rotator.h │ ├── mfd │ │ ├── msm-adie-codec.h │ │ └── wcd9xxx │ │ │ ├── wcd9320_registers.h │ │ │ └── wcd9xxx_registers.h │ ├── msm-core-interface.h │ ├── msm_adsp.h │ ├── msm_audio.h │ ├── msm_audio_aac.h │ ├── msm_audio_ac3.h │ ├── msm_audio_alac.h │ ├── msm_audio_amrnb.h │ ├── msm_audio_amrwb.h │ ├── msm_audio_amrwbplus.h │ ├── msm_audio_ape.h │ ├── msm_audio_calibration.h │ ├── msm_audio_mvs.h │ ├── msm_audio_qcp.h │ ├── msm_audio_sbc.h │ ├── msm_audio_voicememo.h │ ├── msm_audio_wma.h │ ├── msm_audio_wmapro.h │ ├── msm_dsps.h │ ├── msm_ion.h │ ├── msm_ipa.h │ ├── msm_kgsl.h │ ├── msm_mdp.h │ ├── msm_mdp_ext.h │ ├── msm_pft.h │ ├── msm_rmnet.h │ ├── msm_rotator.h │ ├── msm_thermal_ioctl.h │ ├── msm_vidc_dec.h │ ├── msm_vidc_enc.h │ ├── qseecom.h │ ├── rmnet_data.h │ ├── rmnet_ipa_fd_ioctl.h │ ├── sockev.h │ ├── sockios.h │ ├── spcom.h │ ├── v4l2-controls.h │ ├── videodev2.h │ └── wcd-spi-ac-params.h ├── media │ ├── cam_cpas.h │ ├── cam_defs.h │ ├── cam_fd.h │ ├── cam_icp.h │ ├── cam_isp.h │ ├── cam_isp_ife.h │ ├── cam_isp_vfe.h │ ├── cam_jpeg.h │ ├── cam_lrme.h │ ├── cam_req_mgr.h │ ├── cam_sensor.h │ ├── cam_sync.h │ ├── msm_cam_sensor.h │ ├── msm_camera.h │ ├── msm_camsensor_sdk.h │ ├── msm_fd.h │ ├── msm_gemini.h │ ├── msm_gestures.h │ ├── msm_isp.h │ ├── msm_jpeg.h │ ├── msm_jpeg_dma.h │ ├── msm_media_info.h │ ├── msm_mercury.h │ ├── msm_sde_rotator.h │ ├── msm_vidc.h │ ├── msm_vpu.h │ ├── msmb_camera.h │ ├── msmb_generic_buf_mgr.h │ ├── msmb_isp.h │ ├── msmb_ispif.h │ └── msmb_pproc.h ├── scsi │ └── ufs │ │ ├── ioctl.h │ │ └── ufs.h ├── sound │ ├── asound.h │ ├── audio_effects.h │ ├── compress_offload.h │ ├── compress_params.h │ ├── devdep_params.h │ ├── lsm_params.h │ ├── msmcal-hwdep.h │ ├── voice_params.h │ ├── voice_svc.h │ └── wcd-dsp-glink.h └── video │ └── msm_hdmi_modes.h ├── liblight ├── Android.mk ├── NOTICE └── lights.c ├── lineage.dependencies ├── lisa ├── board.json ├── targetdev │ ├── __init__.py │ └── powerhint.py └── update-script.sh ├── lowi.conf ├── manifest.xml ├── media_codecs.xml ├── media_codecs_performance.xml ├── media_profiles_V1_0.xml ├── nfc └── libnfc-nci.conf ├── overlay ├── frameworks │ └── base │ │ ├── core │ │ └── res │ │ │ └── res │ │ │ └── values │ │ │ ├── config.xml │ │ │ └── strings.xml │ │ └── packages │ │ └── SystemUI │ │ └── res │ │ └── values │ │ └── config.xml └── packages │ ├── apps │ ├── Bluetooth │ │ └── res │ │ │ └── values │ │ │ └── config.xml │ └── Settings │ │ └── res │ │ ├── values-mcc262-mnc01 │ │ └── strings.xml │ │ └── values │ │ └── bools.xml │ └── services │ └── Telephony │ └── res │ └── values │ └── config.xml ├── p2p_supplicant_overlay.conf ├── permissions ├── com.google.hardware.camera.easel.xml └── privapp-permissions-aosp_wahoo.xml ├── power-libperfmgr ├── Android.bp ├── InteractionHandler.cpp ├── InteractionHandler.h ├── Power.cpp ├── Power.h ├── android.hardware.power@1.2-service.wahoo-libperfmgr.rc ├── power-helper.c ├── power-helper.h └── service.cpp ├── powerhint.json ├── powerhint.xml ├── recovery.fstab ├── recovery.wipe ├── recovery ├── Android.mk └── root │ ├── etc │ └── twrp.fstab │ ├── nonplat_hwservice_contexts │ ├── nonplat_service_contexts │ ├── odm │ ├── etc │ │ └── vintf │ │ │ └── manifest.xml │ ├── firmware │ │ └── ese │ │ │ ├── prodkeys │ │ │ ├── ese.f000.prodkeys │ │ │ ├── ese.f102.prodkeys │ │ │ ├── ese.f200.prodkeys │ │ │ ├── ese.f201.prodkeys │ │ │ └── ese.shadata.prodkeys │ │ │ └── testkeys │ │ │ ├── ese.f000.testkeys │ │ │ ├── ese.f102.testkeys │ │ │ ├── ese.f200.testkeys │ │ │ ├── ese.f201.testkeys │ │ │ └── ese.shadata.testkeys │ └── lib64 │ │ ├── android.hardware.boot@1.0-impl.so │ │ ├── android.hardware.gatekeeper@1.0-impl-qti.so │ │ ├── bootctrl.msm8998.so │ │ └── hw │ │ ├── android.hardware.boot@1.0-impl.so │ │ ├── android.hardware.gatekeeper@1.0-impl-qti.so │ │ ├── android.hardware.keymaster@3.0-impl-qti.so │ │ └── bootctrl.msm8998.so │ ├── plat_hwservice_contexts │ ├── plat_service_contexts │ ├── sbin │ ├── android.hardware.boot@1.0-service │ ├── android.hardware.boot@1.0.so │ ├── android.hardware.confirmationui@1.0.so │ ├── android.hardware.gatekeeper@1.0-service-qti │ ├── android.hardware.keymaster@3.0-impl-qti.so │ ├── android.hardware.keymaster@3.0-service-qti │ ├── android.hardware.weaver@1.0.so │ ├── ese-ls-provision │ ├── ese_load │ ├── esed │ ├── libQSEEComAPI.so │ ├── libdiag.so │ ├── libdrmfs.so │ ├── libdrmtime.so │ ├── libese-app-boot.so │ ├── libese-app-weaver.so │ ├── libese-hw-nxp-pn80t-nq-nci.so │ ├── libese-sysdeps.so │ ├── libese-teq1.so │ ├── libese.so │ ├── libese_cpp_nxp_pn80t_nq_nci.so │ ├── libgptutils.so │ ├── libkeymasterdeviceutils.so │ ├── libp61-jcop-kit.so │ ├── librpmb.so │ ├── libssd.so │ ├── libtime_genoff.so │ ├── prepdecrypt.sh │ ├── qseecomd │ └── touchdriver.sh │ ├── system │ └── etc │ │ ├── event-log-tags │ │ └── vintf │ │ └── manifest.xml │ └── vendor │ ├── compatibility_matrix.1.xml │ ├── compatibility_matrix.2.xml │ ├── compatibility_matrix.3.xml │ ├── compatibility_matrix.device.xml │ ├── compatibility_matrix.legacy.xml │ └── etc │ └── vintf │ ├── compatibility_matrix.xml │ └── manifest.xml ├── sec_config ├── seccomp_policy └── mediacodec.policy ├── sensors └── hals.conf ├── sepolicy ├── OWNERS ├── private │ ├── certs │ │ └── wfcactivation.x509.pem │ ├── dataservice_app.te │ ├── device.te │ ├── file_contexts │ ├── folio_daemon.te │ ├── genfs_contexts │ ├── init_elabel.te │ ├── keys.conf │ ├── mac_permissions.xml │ ├── platform_app.te │ ├── priv_app.te │ ├── property.te │ ├── property_contexts │ ├── radio.te │ ├── ramoops.te │ ├── seapp_contexts │ ├── service.te │ ├── service_contexts │ ├── system_server.te │ ├── untrusted_app_all.te │ └── wfc_activation_app.te ├── public │ ├── dataservice_app.te │ ├── file.te │ ├── hwservice.te │ ├── init_elabel.te │ └── ramoops.te ├── vendor │ ├── adsprpcd.te │ ├── app.te │ ├── atfwd.te │ ├── audioserver.te │ ├── bluetooth.te │ ├── bootanim.te │ ├── bug_map │ ├── cameraserver.te │ ├── certs │ │ ├── app.x509.pem │ │ ├── arcore.x509.pem │ │ ├── arcore_release.x509.pem │ │ ├── arcore_userdev.x509.pem │ │ ├── easel.x509.pem │ │ ├── pulse-release.x509.pem │ │ ├── tango.x509.pem │ │ ├── tango_release.x509.pem │ │ └── tango_userdev.x509.pem │ ├── charger.te │ ├── chre.te │ ├── cnd.te │ ├── con_monitor.te │ ├── dataservice_app.te │ ├── device.te │ ├── dnsmasq.te │ ├── domain.te │ ├── dumpstate.te │ ├── easel.te │ ├── easelservice_app.te │ ├── esed.te │ ├── file.te │ ├── file_contexts │ ├── fsck.te │ ├── gatekeeperd.te │ ├── genfs_contexts │ ├── google_camera_app.te │ ├── hal_audio_default.te │ ├── hal_bluetooth_default.te │ ├── hal_bootctl.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_default.te │ ├── hal_gatekeeper.te │ ├── hal_gatekeeper_qti.te │ ├── hal_gnss_qti.te │ ├── hal_graphics_allocator_default.te │ ├── hal_graphics_composer_default.te │ ├── hal_health_default.te │ ├── hal_imsrtp.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_tetheroffload_default.te │ ├── hal_usb_impl.te │ ├── hal_vibrator_default.te │ ├── hal_vr.te │ ├── hal_wifi_default.te │ ├── hal_wifi_offload_default.te │ ├── hal_wifi_supplicant_default.te │ ├── hardware_info_app.te │ ├── healthd.te │ ├── hwservice.te │ ├── hwservice_contexts │ ├── ims.te │ ├── init-devstart-sh.te │ ├── init-insmod-sh.te │ ├── init-ipastart-sh.te │ ├── init-wlan-sh.te │ ├── init.te │ ├── init_elabel.te │ ├── init_ese.te │ ├── init_power.te │ ├── init_radio.te │ ├── ioctl_defines │ ├── ioctl_macros │ ├── irqbalance.te │ ├── irsc_util.te │ ├── kernel.te │ ├── keys.conf │ ├── location.te │ ├── logger_app.te │ ├── mac_permissions.xml │ ├── mds_app.te │ ├── 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 │ ├── property.te │ ├── property_contexts │ ├── qlogd.te │ ├── qmuxd.te │ ├── qtelephony.te │ ├── qti.te │ ├── radio.te │ ├── ramdump.te │ ├── ramdump_app.te │ ├── rfs_access.te │ ├── rild.te │ ├── rmt_storage.te │ ├── seapp_contexts │ ├── sensors.te │ ├── service_contexts │ ├── shell.te │ ├── smlog_dump.te │ ├── ssr_detector.te │ ├── ssr_diag.te │ ├── ssr_setup.te │ ├── subsystem_ramdump.te │ ├── surfaceflinger.te │ ├── system_app.te │ ├── system_server.te │ ├── tango_core.te │ ├── tee.te │ ├── thermal-engine.te │ ├── thermalserviced.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 └── verizon │ ├── keys.conf │ ├── mac_permissions.xml │ ├── obdm_app.te │ ├── seapp_contexts │ └── verizon.x509.pem ├── sound_trigger_mixer_paths_wcd9340.xml ├── sound_trigger_platform_info.xml ├── system.prop ├── thermal ├── Android.bp ├── Thermal.cpp ├── Thermal.h ├── sensors.cpp ├── sensors.h ├── thermal-helper.cpp └── thermal-helper.h ├── ueventd.hardware.rc ├── uinput-fpc.idc ├── uinput-fpc.kl ├── usb ├── Android.bp ├── Usb.cpp ├── Usb.h ├── UsbGadget.cpp ├── UsbGadget.h ├── android.hardware.usb@1.1-service.wahoo.rc └── service.cpp ├── utils.mk ├── vibrator ├── Android.bp ├── Vibrator.cpp ├── Vibrator.h ├── android.hardware.vibrator@1.2-service.wahoo.rc └── service.cpp ├── vr ├── Android.bp ├── NOTICE ├── VrDevice.cpp ├── VrDevice.h ├── android.hardware.vr@1.0-service.wahoo.rc └── service.cpp ├── wifi_concurrency_cfg.txt ├── wifi_offload ├── Android.bp ├── AndroidTest.xml ├── Offload.cpp ├── Offload.h ├── android.hardware.wifi.offload@1.0-service.rc ├── chre_constants.cpp ├── chre_constants.h ├── chre_interface.cpp ├── chre_interface.h ├── chre_interface_callbacks.h ├── chre_interface_factory.cpp ├── chre_interface_factory.h ├── hidl_return_util.h ├── offload_server.cpp ├── offload_server.h ├── offload_status_util.cpp ├── offload_status_util.h ├── offload_utils.cpp ├── offload_utils.h ├── service.cpp └── test │ ├── chre_interface_test.cpp │ ├── main.cpp │ ├── mock_chre_interface.cpp │ ├── mock_chre_interface.h │ ├── mock_chre_interface_callbacks.cpp │ ├── mock_chre_interface_callbacks.h │ ├── mock_chre_interface_factory.cpp │ ├── mock_chre_interface_factory.h │ ├── offload_hal_test_constants.cpp │ ├── offload_hal_test_constants.h │ ├── offload_hal_test_utils.cpp │ ├── offload_hal_test_utils.h │ ├── offload_server_test.cpp │ ├── offload_utils_test.cpp │ └── runtest.sh ├── wpa_supplicant_overlay.conf └── wpa_supplicant_wcn.conf /Android.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2017 The Android Open Source Project 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | LOCAL_PATH := $(call my-dir) 18 | 19 | ifeq ($(USES_DEVICE_GOOGLE_WAHOO),true) 20 | subdir_makefiles=$(call first-makefiles-under,$(LOCAL_PATH)) 21 | $(foreach mk,$(subdir_makefiles),$(info including $(mk) ...)$(eval include $(mk))) 22 | endif 23 | -------------------------------------------------------------------------------- /BoardConfigLineage.mk: -------------------------------------------------------------------------------- 1 | # Common board config for taimen, walleye 2 | 3 | # Audio 4 | BOARD_SUPPORTS_SOUND_TRIGGER := true 5 | 6 | # Kernel 7 | BOARD_KERNEL_IMAGE_NAME := Image.gz-dtb 8 | TARGET_COMPILE_WITH_MSM_KERNEL := true 9 | TARGET_KERNEL_CLANG_COMPILE := true 10 | TARGET_KERNEL_SOURCE := kernel/google/wahoo 11 | TARGET_NEEDS_DTBOIMAGE := true 12 | 13 | -include vendor/google/wahoo/BoardConfigVendor.mk 14 | -------------------------------------------------------------------------------- /bluetooth/bdroid_buildcfg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Copyright (c) 2013, The Linux Foundation. All rights reserved. 4 | * Not a Contribution, Apache license notifications and license are retained 5 | * for attribution purposes only. 6 | * 7 | * Copyright (C) 2012 The Android Open Source Project 8 | * 9 | * Licensed under the Apache License, Version 2.0 (the "License"); 10 | * you may not use this file except in compliance with the License. 11 | * You may obtain a copy of the License at 12 | * 13 | * http://www.apache.org/licenses/LICENSE-2.0 14 | * 15 | * Unless required by applicable law or agreed to in writing, software 16 | * distributed under the License is distributed on an "AS IS" BASIS, 17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 | * See the License for the specific language governing permissions and 19 | * limitations under the License. 20 | */ 21 | 22 | #ifndef _BDROID_BUILDCFG_H 23 | #define _BDROID_BUILDCFG_H 24 | 25 | // Wide-band speech support 26 | #define BTM_WBS_INCLUDED TRUE 27 | #define BTIF_HF_WBS_PREFERRED TRUE 28 | 29 | // Google VSC spec support 30 | #define BLE_VND_INCLUDED TRUE 31 | 32 | // QCOM power management workaround 33 | #define BT_CLEAN_TURN_ON_DISABLED TRUE 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /device-lineage.mk: -------------------------------------------------------------------------------- 1 | # Overlays 2 | DEVICE_PACKAGE_OVERLAYS += device/google/wahoo/overlay-lineage 3 | 4 | # EUICC feature 5 | PRODUCT_COPY_FILES += \ 6 | frameworks/native/data/etc/android.hardware.telephony.euicc.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/permissions/android.hardware.telephony.euicc.xml 7 | 8 | # IMS 9 | PRODUCT_PACKAGES += \ 10 | com.android.ims.rcsmanager \ 11 | RcsService \ 12 | PresencePolling 13 | -------------------------------------------------------------------------------- /dumpstate/Android.mk: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2016 The Android Open Source Project 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | LOCAL_PATH:= $(call my-dir) 18 | include $(CLEAR_VARS) 19 | LOCAL_MODULE := android.hardware.dumpstate@1.0-service.wahoo 20 | LOCAL_INIT_RC := android.hardware.dumpstate@1.0-service.wahoo.rc 21 | LOCAL_MODULE_RELATIVE_PATH := hw 22 | 23 | LOCAL_SRC_FILES := \ 24 | DumpstateDevice.cpp \ 25 | service.cpp 26 | 27 | LOCAL_SHARED_LIBRARIES := \ 28 | android.hardware.dumpstate@1.0 \ 29 | libbase \ 30 | libcutils \ 31 | libdumpstateutil \ 32 | libhidlbase \ 33 | libhidltransport \ 34 | libhwbinder \ 35 | liblog \ 36 | libutils 37 | 38 | LOCAL_CFLAGS := -Werror -Wall 39 | 40 | LOCAL_MODULE_TAGS := optional 41 | LOCAL_PROPRIETARY_MODULE := true 42 | 43 | include $(BUILD_EXECUTABLE) 44 | -------------------------------------------------------------------------------- /dumpstate/android.hardware.dumpstate@1.0-service.wahoo.rc: -------------------------------------------------------------------------------- 1 | service vendor.dumpstate-1-0 /vendor/bin/hw/android.hardware.dumpstate@1.0-service.wahoo 2 | class hal 3 | user system 4 | group system 5 | interface android.hardware.dumpstate@1.0::IDumpstateDevice default 6 | 7 | on boot 8 | chmod 0444 /sys/kernel/debug/tzdbg/qsee_log 9 | -------------------------------------------------------------------------------- /dumpstate/service.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | #define LOG_TAG "android.hardware.dumpstate@1.0-service.wahoo" 17 | 18 | #include 19 | #include 20 | 21 | #include "DumpstateDevice.h" 22 | 23 | using ::android::hardware::configureRpcThreadpool; 24 | using ::android::hardware::dumpstate::V1_0::IDumpstateDevice; 25 | using ::android::hardware::dumpstate::V1_0::implementation::DumpstateDevice; 26 | using ::android::hardware::joinRpcThreadpool; 27 | using ::android::sp; 28 | 29 | 30 | int main(int /* argc */, char* /* argv */ []) { 31 | sp dumpstate = new DumpstateDevice; 32 | configureRpcThreadpool(1, true); 33 | 34 | android::status_t status = dumpstate->registerAsService(); 35 | 36 | if (status != android::OK) 37 | { 38 | ALOGE("Could not register DumpstateDevice service (%d).", status); 39 | return -1; 40 | } 41 | 42 | joinRpcThreadpool(); 43 | } 44 | -------------------------------------------------------------------------------- /folio_daemon/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | # Disabling when building with PDK (b/68767391) 4 | ifneq ($(TARGET_BUILD_PDK),true) 5 | 6 | include $(CLEAR_VARS) 7 | 8 | LOCAL_SHARED_LIBRARIES := \ 9 | libandroid \ 10 | libcutils \ 11 | liblog 12 | 13 | LOCAL_SRC_FILES := \ 14 | main.cpp 15 | 16 | LOCAL_C_INCLUDES := 17 | 18 | LOCAL_CFLAGS := $(common_flags) -DLOG_TAG=\"folio_daemon\" -DLOG_NDEBUG=0 19 | 20 | LOCAL_CFLAGS += -Wall -Werror 21 | 22 | LOCAL_MODULE := folio_daemon 23 | LOCAL_MODULE_TAGS := optional 24 | LOCAL_MODULE_OWNER := google 25 | 26 | include $(BUILD_EXECUTABLE) 27 | 28 | endif 29 | -------------------------------------------------------------------------------- /framework_manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | vendor.qti.atcmdfwd 4 | hwbinder 5 | 1.0 6 | 7 | IAtCmdFwd 8 | AtCmdFwdService 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /fstab.hardware: -------------------------------------------------------------------------------- 1 | # Android fstab file. 2 | 3 | # 4 | /dev/block/platform/soc/1da4000.ufshc/by-name/system / ext4 ro,barrier=1 wait,slotselect,avb 5 | /dev/block/platform/soc/1da4000.ufshc/by-name/userdata /data ext4 errors=panic,noatime,nosuid,nodev,barrier=1,noauto_da_alloc latemount,wait,check,formattable,fileencryption=ice:aes-256-heh,eraseblk=16777216,logicalblk=4096,quota,reservedsize=128M 6 | /dev/block/platform/soc/1da4000.ufshc/by-name/misc /misc emmc defaults defaults 7 | /dev/block/platform/soc/1da4000.ufshc/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait,slotselect 8 | /devices/soc/a800000.ssusb/a800000.dwc3* auto vfat defaults voldmanaged=usb:auto 9 | /dev/block/zram0 none swap defaults zramsize=536870912,max_comp_streams=8 10 | -------------------------------------------------------------------------------- /health/Android.bp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | cc_binary { 17 | name: "android.hardware.health@2.0-service.wahoo", 18 | init_rc: ["android.hardware.health@2.0-service.wahoo.rc"], 19 | proprietary: true, 20 | relative_install_path: "hw", 21 | srcs: [ 22 | "HealthService.cpp", 23 | "CycleCountBackupRestore.cpp", 24 | "LearnedCapacityBackupRestore.cpp", 25 | ], 26 | 27 | cflags: [ 28 | "-Wall", 29 | "-Werror", 30 | ], 31 | 32 | static_libs: [ 33 | "android.hardware.health@2.0-impl", 34 | "android.hardware.health@1.0-convert", 35 | "libhealthservice", 36 | "libbatterymonitor", 37 | ], 38 | 39 | shared_libs: [ 40 | "libbase", 41 | "libcutils", 42 | "libhidlbase", 43 | "libhidltransport", 44 | "libhwbinder", 45 | "libutils", 46 | "android.hardware.health@2.0", 47 | ], 48 | 49 | header_libs: ["libhealthd_headers"], 50 | } 51 | -------------------------------------------------------------------------------- /health/CycleCountBackupRestore.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef DEVICE_GOOGLE_WAHOO_HEALTH_CYCLECOUNTBACKUPRESTORE_H 18 | #define DEVICE_GOOGLE_WAHOO_HEALTH_CYCLECOUNTBACKUPRESTORE_H 19 | 20 | #include 21 | #include 22 | #include 23 | #include 24 | 25 | namespace device { 26 | namespace google { 27 | namespace wahoo { 28 | namespace health { 29 | 30 | static constexpr int kBucketCount = 8; 31 | 32 | class CycleCountBackupRestore { 33 | public: 34 | CycleCountBackupRestore(); 35 | void Restore(); 36 | void Backup(); 37 | 38 | private: 39 | int sw_bins_[kBucketCount]; 40 | int hw_bins_[kBucketCount]; 41 | 42 | void ReadFromStorage(); 43 | void SaveToStorage(); 44 | void ReadFromSRAM(); 45 | void SaveToSRAM(); 46 | void UpdateAndSave(); 47 | }; 48 | 49 | } // namespace health 50 | } // namespace wahoo 51 | } // namespace google 52 | } // namespace device 53 | 54 | #endif // #ifndef DEVICE_GOOGLE_WAHOO_HEALTH_CYCLECOUNTBACKUPRESTORE_H 55 | -------------------------------------------------------------------------------- /health/LearnedCapacityBackupRestore.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef DEVICE_GOOGLE_WAHOO_HEALTH_LEARNEDCAPACITYBACKUPRESTORE_H 18 | #define DEVICE_GOOGLE_WAHOO_HEALTH_LEARNEDCAPACITYBACKUPRESTORE_H 19 | 20 | #include 21 | #include 22 | #include 23 | #include 24 | 25 | namespace device { 26 | namespace google { 27 | namespace wahoo { 28 | namespace health { 29 | 30 | class LearnedCapacityBackupRestore { 31 | public: 32 | LearnedCapacityBackupRestore(); 33 | void Restore(); 34 | void Backup(); 35 | 36 | private: 37 | int sw_cap_; 38 | int hw_cap_; 39 | 40 | void ReadFromStorage(); 41 | void SaveToStorage(); 42 | void ReadFromSRAM(); 43 | void SaveToSRAM(); 44 | void UpdateAndSave(); 45 | }; 46 | 47 | } // namespace health 48 | } // namespace wahoo 49 | } // namespace google 50 | } // namespace device 51 | 52 | #endif // #ifndef DEVICE_GOOGLE_WAHOO_HEALTH_LEARNEDCAPACITYBACKUPRESTORE_H 53 | -------------------------------------------------------------------------------- /health/android.hardware.health@2.0-service.wahoo.rc: -------------------------------------------------------------------------------- 1 | service vendor.health-hal-2-0 /vendor/bin/hw/android.hardware.health@2.0-service.wahoo 2 | class hal 3 | user system 4 | group system 5 | file /dev/kmsg w 6 | -------------------------------------------------------------------------------- /init.elabel.sh: -------------------------------------------------------------------------------- 1 | #! /system/bin/sh 2 | 3 | if [ -d /persist/elabel ]; then 4 | if [ ! -f /data/misc/elabel/elabels_copied ]; then 5 | cp /persist/elabel/* /data/misc/elabel/ 6 | echo 1 > /data/misc/elabel/elabels_copied 7 | chown system.system /data/misc/elabel/* 8 | chmod 400 /data/misc/elabel/* 9 | fi 10 | fi 11 | -------------------------------------------------------------------------------- /init.hardware.chamber.rc.userdebug: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2018 The Android Open-Source Project 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | on property:persist.vendor.disable.usb.overheat.mitigation=1 18 | write /sys/module/smb_lib/parameters/enable_ovh 0 19 | -------------------------------------------------------------------------------- /init.hardware.diag.rc.user: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2016 The Android Open-Source Project 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | 17 | on property:ro.boot.mode=normal 18 | rm /dev/diag 19 | -------------------------------------------------------------------------------- /init.insmod.sh: -------------------------------------------------------------------------------- 1 | #! /vendor/bin/sh 2 | 3 | ######################################### 4 | ### init.insmod.cfg format: ### 5 | ### --------------------------------- ### 6 | ### [insmod|setprop] [path|prop name] ### 7 | ### ... ### 8 | ######################################### 9 | 10 | if [[ -e "/vendor/etc/init.insmod_charger.cfg" && "$(getprop ro.boot.mode)" == "charger" ]]; then 11 | cfg_file="/vendor/etc/init.insmod_charger.cfg" 12 | else 13 | cfg_file="/vendor/etc/init.insmod.cfg" 14 | fi 15 | 16 | if [ -f $cfg_file ]; then 17 | while IFS=" " read -r action name 18 | do 19 | case $action in 20 | "insmod") insmod $name ;; 21 | "setprop") setprop $name 1 ;; 22 | esac 23 | done < $cfg_file 24 | fi 25 | 26 | # set property even if there is no insmod config 27 | # as property value "1" is expected in early-boot trigger 28 | setprop sys.all.modules.ready 1 29 | -------------------------------------------------------------------------------- /init.qcom.devstart.sh: -------------------------------------------------------------------------------- 1 | #! /vendor/bin/sh 2 | 3 | echo 1 > /sys/kernel/boot_adsp/boot 4 | echo 1 > /sys/kernel/boot_slpi/boot 5 | setprop sys.qcom.devup 1 6 | 7 | version=`grep -ao "OEM_IMAGE_VERSION_STRING[ -~]*" \ 8 | /vendor/firmware/slpi_v2.b04 | \ 9 | sed -e s/OEM_IMAGE_VERSION_STRING=SLPI.version.// -e s/\(.*\).//` 10 | setprop sys.slpi.firmware.version "$version" 11 | -------------------------------------------------------------------------------- /init.qcom.ipastart.sh: -------------------------------------------------------------------------------- 1 | #! /vendor/bin/sh 2 | 3 | echo 1 > /dev/ipa 4 | -------------------------------------------------------------------------------- /init.qcom.wlan.sh: -------------------------------------------------------------------------------- 1 | #! /vendor/bin/sh 2 | 3 | wlan_driver_version=`cat /sys/kernel/wifi/wlan/driver_version` 4 | setprop sys.wlan.driver.version "$wlan_driver_version" 5 | wlan_fw_version=`cat /sys/kernel/wifi/wlan/fw/0/version` 6 | setprop sys.wlan.firmware.version "$wlan_fw_version" 7 | -------------------------------------------------------------------------------- /init.radio.sh: -------------------------------------------------------------------------------- 1 | #! /vendor/bin/sh 2 | 3 | # 4 | # Copy qcril.db if needed for RIL 5 | # 6 | if [ -f /vendor/radio/qcril_database/qcril.db -a ! -f /data/vendor/radio/qcril.db ]; then 7 | cp /vendor/radio/qcril_database/qcril.db /data/vendor/radio/qcril.db 8 | chown -h radio.radio /data/vendor/radio/qcril.db 9 | fi 10 | echo 1 > /data/vendor/radio/db_check_done 11 | 12 | # 13 | # Make modem config folder and copy firmware config to that folder for RIL 14 | # 15 | if [ -f /data/vendor/radio/ver_info.txt ]; then 16 | prev_version_info=`cat /data/vendor/radio/ver_info.txt` 17 | else 18 | prev_version_info="" 19 | fi 20 | 21 | cur_version_info=`cat /firmware/verinfo/ver_info.txt` 22 | if [ ! -f /firmware/verinfo/ver_info.txt -o "$prev_version_info" != "$cur_version_info" ]; then 23 | rm -rf /data/vendor/radio/modem_config 24 | mkdir /data/vendor/radio/modem_config 25 | chmod 770 /data/vendor/radio/modem_config 26 | cp -r /firmware/image/modem_pr/mcfg/configs/* /data/vendor/radio/modem_config 27 | chown -hR radio.radio /data/vendor/radio/modem_config 28 | cp /firmware/verinfo/ver_info.txt /data/vendor/radio/ver_info.txt 29 | chown radio.radio /data/vendor/radio/ver_info.txt 30 | fi 31 | cp /firmware/image/modem_pr/mbn_ota.txt /data/vendor/radio/modem_config 32 | chown radio.radio /data/vendor/radio/modem_config/mbn_ota.txt 33 | echo 1 > /data/vendor/radio/copy_complete 34 | -------------------------------------------------------------------------------- /init.ramoops.sh: -------------------------------------------------------------------------------- 1 | #!/system/bin/sh 2 | 3 | # Decrypt the keys and write them to the kernel 4 | ramoops -D 5 | 6 | if [ $? -eq 0 ]; then 7 | # Pivot (and decrypt) 8 | echo 1 > /sys/devices/virtual/ramoops/pstore/use_alt 9 | else 10 | setprop sys.ramoops.decryption.error $? 11 | fi 12 | 13 | # Trigger remount of pstore regardless of decryption state 14 | setprop sys.ramoops.decrypted true 15 | 16 | # Generate keys (if none exist), and load the keys to carveout 17 | if [[ $(getprop ro.hardware) == "walleye" ]]; then 18 | ramoops -g -l -c 19 | else 20 | ramoops -g -l 21 | fi 22 | 23 | -------------------------------------------------------------------------------- /kernel-headers/linux/avtimer.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | **************************************************************************** 3 | *** 4 | *** This header was automatically generated from a Linux kernel header 5 | *** of the same name, to make information necessary for userspace to 6 | *** call into the kernel available to libc. It contains only constants, 7 | *** structures, and macros generated from the original header, and thus, 8 | *** contains no copyrightable information. 9 | *** 10 | *** To edit the content of this header, modify the corresponding 11 | *** source file (e.g. under external/kernel-headers/original/) then 12 | *** run bionic/libc/kernel/tools/update_all.py 13 | *** 14 | *** Any manual change here will be lost the next time this script will 15 | *** be run. You've been warned! 16 | *** 17 | **************************************************************************** 18 | ****************************************************************************/ 19 | #ifndef _AVTIMER_H 20 | #define _AVTIMER_H 21 | #include 22 | #define MAJOR_NUM 100 23 | #define IOCTL_GET_AVTIMER_TICK _IOR(MAJOR_NUM, 0, uint64_t) 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /kernel-headers/linux/msm-core-interface.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | **************************************************************************** 3 | *** 4 | *** This header was automatically generated from a Linux kernel header 5 | *** of the same name, to make information necessary for userspace to 6 | *** call into the kernel available to libc. It contains only constants, 7 | *** structures, and macros generated from the original header, and thus, 8 | *** contains no copyrightable information. 9 | *** 10 | *** To edit the content of this header, modify the corresponding 11 | *** source file (e.g. under external/kernel-headers/original/) then 12 | *** run bionic/libc/kernel/tools/update_all.py 13 | *** 14 | *** Any manual change here will be lost the next time this script will 15 | *** be run. You've been warned! 16 | *** 17 | **************************************************************************** 18 | ****************************************************************************/ 19 | #ifndef __MSM_CORE_LIB_H__ 20 | #define __MSM_CORE_LIB_H__ 21 | #include 22 | #define TEMP_DATA_POINTS 13 23 | #define MAX_NUM_FREQ 200 24 | enum msm_core_ioctl_params { 25 | MSM_CORE_LEAKAGE, 26 | MSM_CORE_VOLTAGE, 27 | }; 28 | #define MSM_CORE_MAGIC 0x9D 29 | struct sched_params { 30 | uint32_t cpumask; 31 | uint32_t cluster; 32 | uint32_t power[TEMP_DATA_POINTS][MAX_NUM_FREQ]; 33 | uint32_t voltage[MAX_NUM_FREQ]; 34 | uint32_t freq[MAX_NUM_FREQ]; 35 | }; 36 | #define EA_LEAKAGE _IOWR(MSM_CORE_MAGIC, MSM_CORE_LEAKAGE, struct sched_params) 37 | #define EA_VOLT _IOWR(MSM_CORE_MAGIC, MSM_CORE_VOLTAGE, struct sched_params) 38 | #endif 39 | 40 | -------------------------------------------------------------------------------- /kernel-headers/linux/msm_audio_alac.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | **************************************************************************** 3 | *** 4 | *** This header was automatically generated from a Linux kernel header 5 | *** of the same name, to make information necessary for userspace to 6 | *** call into the kernel available to libc. It contains only constants, 7 | *** structures, and macros generated from the original header, and thus, 8 | *** contains no copyrightable information. 9 | *** 10 | *** To edit the content of this header, modify the corresponding 11 | *** source file (e.g. under external/kernel-headers/original/) then 12 | *** run bionic/libc/kernel/tools/update_all.py 13 | *** 14 | *** Any manual change here will be lost the next time this script will 15 | *** be run. You've been warned! 16 | *** 17 | **************************************************************************** 18 | ****************************************************************************/ 19 | #ifndef _MSM_AUDIO_ALAC_H 20 | #define _MSM_AUDIO_ALAC_H 21 | #define AUDIO_GET_ALAC_CONFIG _IOR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM + 0), struct msm_audio_alac_config) 22 | #define AUDIO_SET_ALAC_CONFIG _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM + 1), struct msm_audio_alac_config) 23 | struct msm_audio_alac_config { 24 | uint32_t frameLength; 25 | uint8_t compatVersion; 26 | uint8_t bitDepth; 27 | uint8_t pb; 28 | uint8_t mb; 29 | uint8_t kb; 30 | uint8_t channelCount; 31 | uint16_t maxRun; 32 | uint32_t maxSize; 33 | uint32_t averageBitRate; 34 | uint32_t sampleRate; 35 | uint32_t channelLayout; 36 | }; 37 | #endif 38 | 39 | -------------------------------------------------------------------------------- /kernel-headers/linux/msm_audio_amrwb.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | **************************************************************************** 3 | *** 4 | *** This header was automatically generated from a Linux kernel header 5 | *** of the same name, to make information necessary for userspace to 6 | *** call into the kernel available to libc. It contains only constants, 7 | *** structures, and macros generated from the original header, and thus, 8 | *** contains no copyrightable information. 9 | *** 10 | *** To edit the content of this header, modify the corresponding 11 | *** source file (e.g. under external/kernel-headers/original/) then 12 | *** run bionic/libc/kernel/tools/update_all.py 13 | *** 14 | *** Any manual change here will be lost the next time this script will 15 | *** be run. You've been warned! 16 | *** 17 | **************************************************************************** 18 | ****************************************************************************/ 19 | #ifndef _MSM_AUDIO_AMRWB_H 20 | #define _MSM_AUDIO_AMRWB_H 21 | #include 22 | #define AUDIO_GET_AMRWB_ENC_CONFIG _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM + 0), struct msm_audio_amrwb_enc_config) 23 | #define AUDIO_SET_AMRWB_ENC_CONFIG _IOR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM + 1), struct msm_audio_amrwb_enc_config) 24 | struct msm_audio_amrwb_enc_config { 25 | uint32_t band_mode; 26 | uint32_t dtx_enable; 27 | uint32_t frame_format; 28 | }; 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /kernel-headers/linux/msm_audio_amrwbplus.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | **************************************************************************** 3 | *** 4 | *** This header was automatically generated from a Linux kernel header 5 | *** of the same name, to make information necessary for userspace to 6 | *** call into the kernel available to libc. It contains only constants, 7 | *** structures, and macros generated from the original header, and thus, 8 | *** contains no copyrightable information. 9 | *** 10 | *** To edit the content of this header, modify the corresponding 11 | *** source file (e.g. under external/kernel-headers/original/) then 12 | *** run bionic/libc/kernel/tools/update_all.py 13 | *** 14 | *** Any manual change here will be lost the next time this script will 15 | *** be run. You've been warned! 16 | *** 17 | **************************************************************************** 18 | ****************************************************************************/ 19 | #ifndef _MSM_AUDIO_AMR_WB_PLUS_H 20 | #define _MSM_AUDIO_AMR_WB_PLUS_H 21 | #define AUDIO_GET_AMRWBPLUS_CONFIG_V2 _IOR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM + 2), struct msm_audio_amrwbplus_config_v2) 22 | #define AUDIO_SET_AMRWBPLUS_CONFIG_V2 _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM + 3), struct msm_audio_amrwbplus_config_v2) 23 | struct msm_audio_amrwbplus_config_v2 { 24 | unsigned int size_bytes; 25 | unsigned int version; 26 | unsigned int num_channels; 27 | unsigned int amr_band_mode; 28 | unsigned int amr_dtx_mode; 29 | unsigned int amr_frame_fmt; 30 | unsigned int amr_lsf_idx; 31 | }; 32 | #endif 33 | 34 | -------------------------------------------------------------------------------- /kernel-headers/linux/msm_audio_ape.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | **************************************************************************** 3 | *** 4 | *** This header was automatically generated from a Linux kernel header 5 | *** of the same name, to make information necessary for userspace to 6 | *** call into the kernel available to libc. It contains only constants, 7 | *** structures, and macros generated from the original header, and thus, 8 | *** contains no copyrightable information. 9 | *** 10 | *** To edit the content of this header, modify the corresponding 11 | *** source file (e.g. under external/kernel-headers/original/) then 12 | *** run bionic/libc/kernel/tools/update_all.py 13 | *** 14 | *** Any manual change here will be lost the next time this script will 15 | *** be run. You've been warned! 16 | *** 17 | **************************************************************************** 18 | ****************************************************************************/ 19 | #ifndef _MSM_AUDIO_APE_H 20 | #define _MSM_AUDIO_APE_H 21 | #define AUDIO_GET_APE_CONFIG _IOR(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM + 0), struct msm_audio_ape_config) 22 | #define AUDIO_SET_APE_CONFIG _IOW(AUDIO_IOCTL_MAGIC, (AUDIO_MAX_COMMON_IOCTL_NUM + 1), struct msm_audio_ape_config) 23 | struct msm_audio_ape_config { 24 | uint16_t compatibleVersion; 25 | uint16_t compressionLevel; 26 | uint32_t formatFlags; 27 | uint32_t blocksPerFrame; 28 | uint32_t finalFrameBlocks; 29 | uint32_t totalFrames; 30 | uint16_t bitsPerSample; 31 | uint16_t numChannels; 32 | uint32_t sampleRate; 33 | uint32_t seekTablePresent; 34 | }; 35 | #endif 36 | 37 | -------------------------------------------------------------------------------- /kernel-headers/linux/msm_dsps.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | **************************************************************************** 3 | *** 4 | *** This header was automatically generated from a Linux kernel header 5 | *** of the same name, to make information necessary for userspace to 6 | *** call into the kernel available to libc. It contains only constants, 7 | *** structures, and macros generated from the original header, and thus, 8 | *** contains no copyrightable information. 9 | *** 10 | *** To edit the content of this header, modify the corresponding 11 | *** source file (e.g. under external/kernel-headers/original/) then 12 | *** run bionic/libc/kernel/tools/update_all.py 13 | *** 14 | *** Any manual change here will be lost the next time this script will 15 | *** be run. You've been warned! 16 | *** 17 | **************************************************************************** 18 | ****************************************************************************/ 19 | #ifndef _DSPS_H_ 20 | #define _DSPS_H_ 21 | #include 22 | #define DSPS_IOCTL_MAGIC 'd' 23 | #define DSPS_IOCTL_ON _IO(DSPS_IOCTL_MAGIC, 1) 24 | #define DSPS_IOCTL_OFF _IO(DSPS_IOCTL_MAGIC, 2) 25 | #define DSPS_IOCTL_READ_SLOW_TIMER _IOR(DSPS_IOCTL_MAGIC, 3, unsigned int *) 26 | #define DSPS_IOCTL_READ_FAST_TIMER _IOR(DSPS_IOCTL_MAGIC, 4, unsigned int *) 27 | #define DSPS_IOCTL_RESET _IO(DSPS_IOCTL_MAGIC, 5) 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /kernel-headers/linux/sockev.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | **************************************************************************** 3 | *** 4 | *** This header was automatically generated from a Linux kernel header 5 | *** of the same name, to make information necessary for userspace to 6 | *** call into the kernel available to libc. It contains only constants, 7 | *** structures, and macros generated from the original header, and thus, 8 | *** contains no copyrightable information. 9 | *** 10 | *** To edit the content of this header, modify the corresponding 11 | *** source file (e.g. under external/kernel-headers/original/) then 12 | *** run bionic/libc/kernel/tools/update_all.py 13 | *** 14 | *** Any manual change here will be lost the next time this script will 15 | *** be run. You've been warned! 16 | *** 17 | **************************************************************************** 18 | ****************************************************************************/ 19 | #ifndef _SOCKEV_H_ 20 | #define _SOCKEV_H_ 21 | #include 22 | #include 23 | #include 24 | enum sknetlink_groups { 25 | SKNLGRP_UNICAST, 26 | SKNLGRP_SOCKEV, 27 | __SKNLGRP_MAX 28 | }; 29 | #define SOCKEV_STR_MAX 32 30 | struct sknlsockevmsg { 31 | __u8 event[SOCKEV_STR_MAX]; 32 | __u32 pid; 33 | __u16 skfamily; 34 | __u8 skstate; 35 | __u8 skprotocol; 36 | __u16 sktype; 37 | __u64 skflags; 38 | }; 39 | #endif 40 | 41 | -------------------------------------------------------------------------------- /kernel-headers/media/cam_cpas.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | **************************************************************************** 3 | *** 4 | *** This header was automatically generated from a Linux kernel header 5 | *** of the same name, to make information necessary for userspace to 6 | *** call into the kernel available to libc. It contains only constants, 7 | *** structures, and macros generated from the original header, and thus, 8 | *** contains no copyrightable information. 9 | *** 10 | *** To edit the content of this header, modify the corresponding 11 | *** source file (e.g. under external/kernel-headers/original/) then 12 | *** run bionic/libc/kernel/tools/update_all.py 13 | *** 14 | *** Any manual change here will be lost the next time this script will 15 | *** be run. You've been warned! 16 | *** 17 | **************************************************************************** 18 | ****************************************************************************/ 19 | #ifndef __UAPI_CAM_CPAS_H__ 20 | #define __UAPI_CAM_CPAS_H__ 21 | #include "cam_defs.h" 22 | #define CAM_FAMILY_CAMERA_SS 1 23 | #define CAM_FAMILY_CPAS_SS 2 24 | struct cam_cpas_query_cap { 25 | uint32_t camera_family; 26 | uint32_t reserved; 27 | struct cam_hw_version camera_version; 28 | struct cam_hw_version cpas_version; 29 | }; 30 | #endif 31 | 32 | -------------------------------------------------------------------------------- /kernel-headers/media/msm_jpeg_dma.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | **************************************************************************** 3 | *** 4 | *** This header was automatically generated from a Linux kernel header 5 | *** of the same name, to make information necessary for userspace to 6 | *** call into the kernel available to libc. It contains only constants, 7 | *** structures, and macros generated from the original header, and thus, 8 | *** contains no copyrightable information. 9 | *** 10 | *** To edit the content of this header, modify the corresponding 11 | *** source file (e.g. under external/kernel-headers/original/) then 12 | *** run bionic/libc/kernel/tools/update_all.py 13 | *** 14 | *** Any manual change here will be lost the next time this script will 15 | *** be run. You've been warned! 16 | *** 17 | **************************************************************************** 18 | ****************************************************************************/ 19 | #ifndef __UAPI_MSM_JPEG_DMA__ 20 | #define __UAPI_MSM_JPEG_DMA__ 21 | #include 22 | #define V4L2_CID_JPEG_DMA_SPEED (V4L2_CID_PRIVATE_BASE) 23 | #define V4L2_CID_JPEG_DMA_MAX_DOWN_SCALE (V4L2_CID_PRIVATE_BASE + 1) 24 | struct msm_jpeg_dma_buff { 25 | int32_t fd; 26 | uint32_t offset; 27 | }; 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /kernel-headers/scsi/ufs/ioctl.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | **************************************************************************** 3 | *** 4 | *** This header was automatically generated from a Linux kernel header 5 | *** of the same name, to make information necessary for userspace to 6 | *** call into the kernel available to libc. It contains only constants, 7 | *** structures, and macros generated from the original header, and thus, 8 | *** contains no copyrightable information. 9 | *** 10 | *** To edit the content of this header, modify the corresponding 11 | *** source file (e.g. under external/kernel-headers/original/) then 12 | *** run bionic/libc/kernel/tools/update_all.py 13 | *** 14 | *** Any manual change here will be lost the next time this script will 15 | *** be run. You've been warned! 16 | *** 17 | **************************************************************************** 18 | ****************************************************************************/ 19 | #ifndef UAPI_UFS_IOCTL_H_ 20 | #define UAPI_UFS_IOCTL_H_ 21 | #include 22 | #define UFS_IOCTL_QUERY 0x5388 23 | struct ufs_ioctl_query_data { 24 | __u32 opcode; 25 | __u8 idn; 26 | __u16 buf_size; 27 | __u8 buffer[0]; 28 | }; 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /kernel-headers/sound/msmcal-hwdep.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | **************************************************************************** 3 | *** 4 | *** This header was automatically generated from a Linux kernel header 5 | *** of the same name, to make information necessary for userspace to 6 | *** call into the kernel available to libc. It contains only constants, 7 | *** structures, and macros generated from the original header, and thus, 8 | *** contains no copyrightable information. 9 | *** 10 | *** To edit the content of this header, modify the corresponding 11 | *** source file (e.g. under external/kernel-headers/original/) then 12 | *** run bionic/libc/kernel/tools/update_all.py 13 | *** 14 | *** Any manual change here will be lost the next time this script will 15 | *** be run. You've been warned! 16 | *** 17 | **************************************************************************** 18 | ****************************************************************************/ 19 | #ifndef _CALIB_HWDEP_H 20 | #define _CALIB_HWDEP_H 21 | #define WCD9XXX_CODEC_HWDEP_NODE 1000 22 | enum wcd_cal_type { 23 | WCD9XXX_MIN_CAL, 24 | WCD9XXX_ANC_CAL = WCD9XXX_MIN_CAL, 25 | WCD9XXX_MAD_CAL, 26 | WCD9XXX_MBHC_CAL, 27 | WCD9XXX_VBAT_CAL, 28 | WCD9XXX_MAX_CAL, 29 | }; 30 | struct wcdcal_ioctl_buffer { 31 | __u32 size; 32 | __u8 * buffer; 33 | enum wcd_cal_type cal_type; 34 | }; 35 | #define SNDRV_CTL_IOCTL_HWDEP_CAL_TYPE _IOW('U', 0x1, struct wcdcal_ioctl_buffer) 36 | #endif 37 | 38 | -------------------------------------------------------------------------------- /kernel-headers/sound/voice_params.h: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | **************************************************************************** 3 | *** 4 | *** This header was automatically generated from a Linux kernel header 5 | *** of the same name, to make information necessary for userspace to 6 | *** call into the kernel available to libc. It contains only constants, 7 | *** structures, and macros generated from the original header, and thus, 8 | *** contains no copyrightable information. 9 | *** 10 | *** To edit the content of this header, modify the corresponding 11 | *** source file (e.g. under external/kernel-headers/original/) then 12 | *** run bionic/libc/kernel/tools/update_all.py 13 | *** 14 | *** Any manual change here will be lost the next time this script will 15 | *** be run. You've been warned! 16 | *** 17 | **************************************************************************** 18 | ****************************************************************************/ 19 | #ifndef __VOICE_PARAMS_H__ 20 | #define __VOICE_PARAMS_H__ 21 | #include 22 | #include 23 | enum voice_lch_mode { 24 | VOICE_LCH_START = 1, 25 | VOICE_LCH_STOP 26 | }; 27 | #define SNDRV_VOICE_IOCTL_LCH _IOW('U', 0x00, enum voice_lch_mode) 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /liblight/Android.mk: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2016 The Android Open Source Project 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | LOCAL_PATH:= $(call my-dir) 16 | 17 | include $(CLEAR_VARS) 18 | 19 | LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr/include 20 | 21 | LOCAL_ADDITIONAL_DEPENDENCIES := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ/usr 22 | 23 | LOCAL_SRC_FILES := lights.c 24 | LOCAL_MODULE_RELATIVE_PATH := hw 25 | LOCAL_PROPRIETARY_MODULE := true 26 | LOCAL_HEADER_LIBRARIES := libhardware_headers 27 | LOCAL_SHARED_LIBRARIES := libc libcutils liblog 28 | LOCAL_CFLAGS := $(common_flags) \ 29 | -DLOG_TAG=\"qdlights\" \ 30 | -DDEFAULT_LOW_PERSISTENCE_MODE_BRIGHTNESS=$(DEFAULT_LOW_PERSISTENCE_MODE_BRIGHTNESS) 31 | LOCAL_CFLAGS += -Wall -Werror 32 | LOCAL_MODULE := lights.$(TARGET_DEVICE) 33 | LOCAL_MODULE_TAGS := optional 34 | 35 | include $(BUILD_SHARED_LIBRARY) 36 | -------------------------------------------------------------------------------- /lineage.dependencies: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "repository": "android_kernel_google_wahoo", 4 | "target_path": "kernel/google/wahoo" 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /lisa/board.json: -------------------------------------------------------------------------------- 1 | { 2 | "board" : { 3 | "cores" : [ 4 | "a53", "a53", "a53", "a53", 5 | "a72", "a72", "a72", "a72" 6 | ], 7 | "big_core" : "a72", 8 | "modules" : ["bl", "cpufreq"] 9 | }, 10 | "nrg_model" : { 11 | "little" : { 12 | "cpu" : { 13 | "nrg_max" : 201, 14 | "cap_max" : 438 15 | }, 16 | "cluster" : { 17 | "nrg_max" : 66 18 | } 19 | }, 20 | "big": { 21 | "cpu" : { 22 | "nrg_max" : 1138, 23 | "cap_max" : 1024 24 | }, 25 | "cluster" : { 26 | "nrg_max" : 203 27 | } 28 | } 29 | }, 30 | 31 | "update-config" : { 32 | "kernel" : { 33 | "build-script" : "update-script.sh kernel build", 34 | "flash-script" : "update-script.sh kernel flash" 35 | }, 36 | "all" : { 37 | "build-script" : "update-script.sh all build", 38 | "flash-script" : "update-script.sh all flash" 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /lisa/targetdev/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | print 'Welcome to wahoo LISA environment' 3 | -------------------------------------------------------------------------------- /overlay/frameworks/base/core/res/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 22 | 23 | 24 | Pixel 25 | 26 | -------------------------------------------------------------------------------- /overlay/packages/apps/Settings/res/values-mcc262-mnc01/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 21 | WLAN Call 22 | 23 | -------------------------------------------------------------------------------- /overlay/packages/apps/Settings/res/values/bools.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | false 20 | 21 | -------------------------------------------------------------------------------- /overlay/packages/services/Telephony/res/values/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 19 | 20 | 21 | true 22 | 23 | true 24 | 28 | true 29 | 30 | -------------------------------------------------------------------------------- /p2p_supplicant_overlay.conf: -------------------------------------------------------------------------------- 1 | disable_scan_offload=1 2 | p2p_no_group_iface=1 3 | p2p_go_vht=1 4 | -------------------------------------------------------------------------------- /permissions/com.google.hardware.camera.easel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /permissions/privapp-permissions-aosp_wahoo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /power-libperfmgr/Android.bp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2018 The Android Open Source Project 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | cc_binary { 16 | name: "android.hardware.power@1.2-service.wahoo-libperfmgr", 17 | relative_install_path: "hw", 18 | init_rc: ["android.hardware.power@1.2-service.wahoo-libperfmgr.rc"], 19 | srcs: ["service.cpp", "Power.cpp", "InteractionHandler.cpp", "power-helper.c"], 20 | cflags: [ 21 | "-Wall", 22 | "-Werror", 23 | ], 24 | shared_libs: [ 25 | "libbase", 26 | "libhidlbase", 27 | "libhidltransport", 28 | "liblog", 29 | "libutils", 30 | "libcutils", 31 | "android.hardware.power@1.0", 32 | "android.hardware.power@1.1", 33 | "android.hardware.power@1.2", 34 | "libperfmgr", 35 | ], 36 | proprietary: true, 37 | } 38 | -------------------------------------------------------------------------------- /power-libperfmgr/android.hardware.power@1.2-service.wahoo-libperfmgr.rc: -------------------------------------------------------------------------------- 1 | service vendor.power-hal-1-2 /vendor/bin/hw/android.hardware.power@1.2-service.wahoo-libperfmgr 2 | class hal 3 | user system 4 | group system 5 | 6 | # restart powerHAL when framework died 7 | on property:init.svc.zygote=restarting && property:vendor.powerhal.state=* 8 | setprop vendor.powerhal.state "" 9 | setprop vendor.powerhal.audio "" 10 | restart vendor.power-hal-1-2 11 | 12 | # restart powerHAL when cameraHAL died 13 | on property:init.svc.vendor.camera-provider-2-4=restarting && property:vendor.powerhal.state=VIDEO_ENCODE 14 | setprop vendor.powerhal.state "" 15 | setprop vendor.powerhal.audio "" 16 | restart vendor.power-hal-1-2 17 | 18 | # restart powerHAL when audioHAL died 19 | on property:init.svc.vendor.audio-hal-2-0=restarting && property:vendor.powerhal.audio=LOW_LATENCY 20 | setprop vendor.powerhal.audio "" 21 | restart vendor.power-hal-1-2 22 | -------------------------------------------------------------------------------- /recovery.fstab: -------------------------------------------------------------------------------- 1 | # Android fstab file. 2 | 3 | # 4 | /dev/block/platform/soc/1da4000.ufshc/by-name/system / ext4 ro,barrier=1 wait,slotselect,avb 5 | /dev/block/platform/soc/1da4000.ufshc/by-name/userdata /data ext4 errors=panic,noatime,nosuid,nodev,barrier=1,noauto_da_alloc latemount,wait,check,formattable,fileencryption=ice:aes-256-heh,eraseblk=16777216,logicalblk=4096,quota 6 | /dev/block/platform/soc/1da4000.ufshc/by-name/misc /misc emmc defaults defaults 7 | /dev/block/platform/soc/1da4000.ufshc/by-name/modem /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait,slotselect 8 | /devices/soc/a800000.ssusb/a800000.dwc3* auto vfat defaults voldmanaged=usb:auto 9 | /dev/block/zram0 none swap defaults zramsize=536870912,max_comp_streams=8 10 | -------------------------------------------------------------------------------- /recovery.wipe: -------------------------------------------------------------------------------- 1 | # All the partitions to be wiped (in order) under recovery. 2 | /dev/block/bootdevice/by-name/system_a 3 | /dev/block/bootdevice/by-name/system_b 4 | /dev/block/bootdevice/by-name/vendor_a 5 | /dev/block/bootdevice/by-name/vendor_b 6 | /dev/block/bootdevice/by-name/userdata 7 | # Wipe the boot partitions last so that all partitions will be wiped 8 | # correctly even if the wiping process gets interrupted by a force boot. 9 | /dev/block/bootdevice/by-name/boot_a 10 | /dev/block/bootdevice/by-name/boot_b 11 | -------------------------------------------------------------------------------- /recovery/Android.mk: -------------------------------------------------------------------------------- 1 | include $(all-subdir-makefiles) 2 | -------------------------------------------------------------------------------- /recovery/root/etc/twrp.fstab: -------------------------------------------------------------------------------- 1 | /boot emmc /dev/block/bootdevice/by-name/boot flags=slotselect 2 | /system ext4 /dev/block/bootdevice/by-name/system flags=slotselect 3 | /system_image emmc /dev/block/bootdevice/by-name/system flags=slotselect 4 | /vendor ext4 /dev/block/bootdevice/by-name/vendor flags=slotselect;display="Vendor";backup=1 5 | /vendor_image emmc /dev/block/bootdevice/by-name/vendor flags=slotselect 6 | /data ext4 /dev/block/bootdevice/by-name/userdata flags=fileencryption=ice:aes-256-heh 7 | /misc emmc /dev/block/bootdevice/by-name/misc 8 | /efs1 emmc /dev/block/bootdevice/by-name/modemst1 flags=backup=1;display=EFS 9 | /efs2 emmc /dev/block/bootdevice/by-name/modemst2 flags=backup=1;subpartitionof=/efs1 10 | 11 | /devices/soc/a800000.ssusb/a800000.dwc3* auto vfat defaults voldmanaged=usb:auto 12 | -------------------------------------------------------------------------------- /recovery/root/nonplat_hwservice_contexts: -------------------------------------------------------------------------------- 1 | com.qualcomm.qti.ims.radio::IImsRadio u:object_r:vnd_ims_radio_hwservice:s0 2 | com.qualcomm.qti.qcril.qcrilhook::IQtiOemHook u:object_r:vnd_qcrilhook_hwservice:s0 3 | com.qualcomm.qti.uceservice::IUceService u:object_r:hal_imsrcsd_hwservice:s0 4 | vendor.qti.atcmdfwd::IAtCmdFwd u:object_r:vnd_atcmdfwd_hwservice:s0 5 | vendor.qti.qcril.am::IQcRilAudio u:object_r:vnd_qcrilhook_hwservice:s0 6 | com.qualcomm.qti.imsrtpservice::IRTPService u:object_r:hal_imsrtp_hwservice:s0 7 | android.hardware.tetheroffload.config::IOffloadConfig u:object_r:hal_tetheroffload_hwservice:s0 8 | android.hardware.tetheroffload.control::IOffloadControl u:object_r:hal_tetheroffload_hwservice:s0 9 | com.quicinc.cne.api::IApiService u:object_r:hal_cne_hwservice:s0 10 | com.quicinc.cne.server::IServer u:object_r:hal_cne_hwservice:s0 11 | -------------------------------------------------------------------------------- /recovery/root/nonplat_service_contexts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/nonplat_service_contexts -------------------------------------------------------------------------------- /recovery/root/odm/firmware/ese/prodkeys/ese.f000.prodkeys: -------------------------------------------------------------------------------- 1 | 00A4040010A000000476575652434F4D4D30010101 6A82 2 | 3 | -------------------------------------------------------------------------------- /recovery/root/odm/firmware/ese/prodkeys/ese.f200.prodkeys: -------------------------------------------------------------------------------- 1 | 7f218201009310000000000000000000000000000000024210000000000000000000637093060200165f20100000000000000000006370930603000595018245080000000000000000533148080001000100000001c91a8208ffffffffffffffff8304ffffffff8708ffffffffffffffff4a067001700270034c01035f3740485e63527eb11e0f1a04dc96ab3ff60b82af2b15fbeda0aca214d4b17ce1e122811a8388d5fdc9bc3eb80af834dcb2f4c7f9f68468c7bcb5c4dc0169b6ede94c7f494386410476ea7897b61cbfc42472f48ccfce74b4745cf5568653088c9acb464e423b369c3d7b60e0e865717ed49374014fd84660fe739402fe243cf0218442929692e04a 2 | 6081ba4181b70403297cb9f537dbe6bba31f62ab8bbe9808cf1336254907c54ed89a7e581d3e620e5bc73b18c8349b9daffbbf0a21fce0216cb9a15896199e8c84d32aadf6d97cae1a022ab15688ba50c82d21a716fbfa89de65d140ae7951f16a9ee5b77e82b50ebca199d87060dffcbc37ab4eb07e11304402201373399d8cdcfd358f5092fbae957c1e4e65cade7c26026552aab4e4bd3a915f022051b30b8ee16310b4f8756928a4c82aaf1df83e28f8361aae9c793a3909b8b468 3 | 4081a580a08000a01afca0afbf4f44f8bb19150df634f48087c69a0632f9937643f7fb526a867f94d396904cca6cd89f671384a9f80a2befc24229163511995dfb11a66ba9b5c2b9e020211783ecb73a86ccea79f0b053cf0fb1164e00dec7a153552f5956dc4c06d146af0956ecadb7d9ced64fd5c886b139fd373975e27b901f49a924d2573cf0df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119 4 | -------------------------------------------------------------------------------- /recovery/root/odm/firmware/ese/prodkeys/ese.shadata.prodkeys: -------------------------------------------------------------------------------- 1 | DDDDDDDDDDDDDDDDDDDD -------------------------------------------------------------------------------- /recovery/root/odm/firmware/ese/testkeys/ese.f000.testkeys: -------------------------------------------------------------------------------- 1 | 00A4040010A000000476575652434F4D4D30010101 6A82 2 | 3 | -------------------------------------------------------------------------------- /recovery/root/odm/firmware/ese/testkeys/ese.f200.testkeys: -------------------------------------------------------------------------------- 1 | 7f218201009310000000000000000000000000000000024210000000000000000000637093060200165f20100000000000000000006370930603000595018245080000000000000000533148080001000100000001c91a8208ffffffffffffffff8304ffffffff8708ffffffffffffffff4a067001700270034c01035f3740485e63527eb11e0f1a04dc96ab3ff60b82af2b15fbeda0aca214d4b17ce1e122811a8388d5fdc9bc3eb80af834dcb2f4c7f9f68468c7bcb5c4dc0169b6ede94c7f494386410476ea7897b61cbfc42472f48ccfce74b4745cf5568653088c9acb464e423b369c3d7b60e0e865717ed49374014fd84660fe739402fe243cf0218442929692e04a 2 | 6081ba4181b70489b727f2bad28506d728255c8d97abca30a00b942799bf440de9b3b7ad8acfaf6394e782928298ef53ea6b364bfb8549876da3bdedb460c3a776092f40c94de3bdd9dc7a1aa8a4bee65487207216630dcf25e7d6e87c472b84bba51b82bfaaa75214ff18044c7b5e520e9844e9bc2587304402202cb4eab12327133417659a617c6b915fa902f65c91b5981057a39b3db8466d9c02202bb6da11353f01da6003ebf14779be2acae0be0d9a885e418105ef7b118c4010 3 | 4081a580a08000a0b87ef7972ee43e5103dbc97077a5b75fe6ed2411b8b0762e9b338da999912664ae233b3b754d7a32150fc550d8d026fa74e4f5b4fbdf10f3a590329f3659bcb259a1f316e7825c02e2224b1030ab761b2076e0bd2a016b28aa0227dd232bff18c5952a958a82e342ff4e7d1f0345a78a6cb19480c014388a3de96bc7c3359130df3f619804a92fdb4057192dc43dd748ea778adc52bc498ce80524c014b81119 4 | -------------------------------------------------------------------------------- /recovery/root/odm/firmware/ese/testkeys/ese.shadata.testkeys: -------------------------------------------------------------------------------- 1 | DDDDDDDDDDDDDDDDDDDD -------------------------------------------------------------------------------- /recovery/root/odm/lib64/android.hardware.boot@1.0-impl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/odm/lib64/android.hardware.boot@1.0-impl.so -------------------------------------------------------------------------------- /recovery/root/odm/lib64/android.hardware.gatekeeper@1.0-impl-qti.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/odm/lib64/android.hardware.gatekeeper@1.0-impl-qti.so -------------------------------------------------------------------------------- /recovery/root/odm/lib64/bootctrl.msm8998.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/odm/lib64/bootctrl.msm8998.so -------------------------------------------------------------------------------- /recovery/root/odm/lib64/hw/android.hardware.boot@1.0-impl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/odm/lib64/hw/android.hardware.boot@1.0-impl.so -------------------------------------------------------------------------------- /recovery/root/odm/lib64/hw/android.hardware.gatekeeper@1.0-impl-qti.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/odm/lib64/hw/android.hardware.gatekeeper@1.0-impl-qti.so -------------------------------------------------------------------------------- /recovery/root/odm/lib64/hw/android.hardware.keymaster@3.0-impl-qti.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/odm/lib64/hw/android.hardware.keymaster@3.0-impl-qti.so -------------------------------------------------------------------------------- /recovery/root/odm/lib64/hw/bootctrl.msm8998.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/odm/lib64/hw/bootctrl.msm8998.so -------------------------------------------------------------------------------- /recovery/root/sbin/android.hardware.boot@1.0-service: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/android.hardware.boot@1.0-service -------------------------------------------------------------------------------- /recovery/root/sbin/android.hardware.boot@1.0.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/android.hardware.boot@1.0.so -------------------------------------------------------------------------------- /recovery/root/sbin/android.hardware.confirmationui@1.0.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/android.hardware.confirmationui@1.0.so -------------------------------------------------------------------------------- /recovery/root/sbin/android.hardware.gatekeeper@1.0-service-qti: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/android.hardware.gatekeeper@1.0-service-qti -------------------------------------------------------------------------------- /recovery/root/sbin/android.hardware.keymaster@3.0-impl-qti.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/android.hardware.keymaster@3.0-impl-qti.so -------------------------------------------------------------------------------- /recovery/root/sbin/android.hardware.keymaster@3.0-service-qti: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/android.hardware.keymaster@3.0-service-qti -------------------------------------------------------------------------------- /recovery/root/sbin/android.hardware.weaver@1.0.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/android.hardware.weaver@1.0.so -------------------------------------------------------------------------------- /recovery/root/sbin/ese-ls-provision: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/ese-ls-provision -------------------------------------------------------------------------------- /recovery/root/sbin/esed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/esed -------------------------------------------------------------------------------- /recovery/root/sbin/libQSEEComAPI.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libQSEEComAPI.so -------------------------------------------------------------------------------- /recovery/root/sbin/libdiag.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libdiag.so -------------------------------------------------------------------------------- /recovery/root/sbin/libdrmfs.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libdrmfs.so -------------------------------------------------------------------------------- /recovery/root/sbin/libdrmtime.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libdrmtime.so -------------------------------------------------------------------------------- /recovery/root/sbin/libese-app-boot.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libese-app-boot.so -------------------------------------------------------------------------------- /recovery/root/sbin/libese-app-weaver.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libese-app-weaver.so -------------------------------------------------------------------------------- /recovery/root/sbin/libese-hw-nxp-pn80t-nq-nci.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libese-hw-nxp-pn80t-nq-nci.so -------------------------------------------------------------------------------- /recovery/root/sbin/libese-sysdeps.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libese-sysdeps.so -------------------------------------------------------------------------------- /recovery/root/sbin/libese-teq1.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libese-teq1.so -------------------------------------------------------------------------------- /recovery/root/sbin/libese.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libese.so -------------------------------------------------------------------------------- /recovery/root/sbin/libese_cpp_nxp_pn80t_nq_nci.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libese_cpp_nxp_pn80t_nq_nci.so -------------------------------------------------------------------------------- /recovery/root/sbin/libgptutils.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libgptutils.so -------------------------------------------------------------------------------- /recovery/root/sbin/libkeymasterdeviceutils.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libkeymasterdeviceutils.so -------------------------------------------------------------------------------- /recovery/root/sbin/libp61-jcop-kit.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libp61-jcop-kit.so -------------------------------------------------------------------------------- /recovery/root/sbin/librpmb.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/librpmb.so -------------------------------------------------------------------------------- /recovery/root/sbin/libssd.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libssd.so -------------------------------------------------------------------------------- /recovery/root/sbin/libtime_genoff.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/libtime_genoff.so -------------------------------------------------------------------------------- /recovery/root/sbin/qseecomd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/recovery/root/sbin/qseecomd -------------------------------------------------------------------------------- /recovery/root/sbin/touchdriver.sh: -------------------------------------------------------------------------------- 1 | #!/sbin/sh 2 | 3 | finish() 4 | { 5 | umount /v 6 | umount /s 7 | rmdir /v 8 | rmdir /s 9 | exit 0 10 | } 11 | 12 | suffix=$(getprop ro.boot.slot_suffix) 13 | if [ -z "$suffix" ]; then 14 | suf=$(getprop ro.boot.slot) 15 | suffix="_$suf" 16 | fi 17 | venpath="/dev/block/bootdevice/by-name/vendor$suffix" 18 | mkdir /v 19 | mount -t ext4 -o ro "$venpath" /v 20 | # Pixel 2 walleye modules 21 | insmod /v/lib/modules/synaptics_dsx_core_htc.ko 22 | insmod /v/lib/modules/htc_battery.ko 23 | 24 | # Pixel 2 XL taimen modules 25 | insmod /v/lib/modules/touch_core_base.ko 26 | insmod /v/lib/modules/ftm4.ko 27 | insmod /v/lib/modules/lge_battery.ko 28 | 29 | -------------------------------------------------------------------------------- /seccomp_policy/mediacodec.policy: -------------------------------------------------------------------------------- 1 | # device specific syscalls 2 | pselect6: 1 3 | eventfd2: 1 4 | sendto: 1 5 | recvfrom: 1 6 | _llseek: 1 7 | sysinfo: 1 8 | getcwd: 1 9 | getdents64: 1 10 | -------------------------------------------------------------------------------- /sensors/hals.conf: -------------------------------------------------------------------------------- 1 | sensors.msm8998.so 2 | -------------------------------------------------------------------------------- /sepolicy/OWNERS: -------------------------------------------------------------------------------- 1 | alanstokes@google.com 2 | bowgotsai@google.com 3 | jbires@google.com 4 | jeffv@google.com 5 | jgalenson@google.com 6 | nnk@google.com 7 | sspatil@google.com 8 | tomcherry@google.com 9 | trong@google.com 10 | -------------------------------------------------------------------------------- /sepolicy/private/certs/wfcactivation.x509.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDyTCCArGgAwIBAgIJAODrqTpclyUkMA0GCSqGSIb3DQEBCwUAMHsxCzAJBgNV 3 | BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW 4 | aWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDEXMBUG 5 | A1UEAwwOd2ZjX2FjdGl2YXRpb24wHhcNMTgwMjIxMDA1NTM4WhcNNDUwNzA5MDA1 6 | NTM4WjB7MQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UE 7 | BwwNTW91bnRhaW4gVmlldzEUMBIGA1UECgwLR29vZ2xlIEluYy4xEDAOBgNVBAsM 8 | B0FuZHJvaWQxFzAVBgNVBAMMDndmY19hY3RpdmF0aW9uMIIBIjANBgkqhkiG9w0B 9 | AQEFAAOCAQ8AMIIBCgKCAQEAruKdMaQjRrlTwLHWAhUwLXoq+1glzoQ5ibqHDg4i 10 | GPPlwT7qPG8xWW6UmTiLNES6YSDpvCvptqrZccecviYfYIg7/JCF/xr2cFt9Gyyo 11 | L0muemdUMFjGQJxKCQMi8jlqPVgfcy7ZEfVvoDWUupD7hVVA6TFkWH1nv/5GzJVK 12 | h7D4vBaYE6qwM1+NJjrbk1O8SMMCES7MkJhpnfbRYr8d5uxSzDWqqeqvM6CFSvKw 13 | cxqbCcNl0MDgSCgtnxzZZjg5AFuPECV8lgJpxFEqgEIK1fsebK5G8o4buokMW+W4 14 | ZT2LZtMq/qsZXl59h22KQX2w5mcI6KyV8WZOcPPOm8uf8wIDAQABo1AwTjAdBgNV 15 | HQ4EFgQU9jpHDUfkIqBODCp9/c5TsraA9sowHwYDVR0jBBgwFoAU9jpHDUfkIqBO 16 | DCp9/c5TsraA9sowDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAZMf+ 17 | KD3oFS0cv/C0qQx28wW5BKFb/PM6RxDwTRF7yyJj4+uZU0+O8NJEqBNDgHusFJR6 18 | 2ZXXiWDqzNb0scZxD95FP1YxiLPAcbn2oCTkGPYcCsBmT1i25RsIKTb7fR3UJ/bY 19 | V55CQy1FjX5H1katVpezi1bs17stqrjL0aCk8s7wZPQ9KTy7SfMF9rUfg8ltrj8s 20 | MD5cq21GJuJMpI2kNUV7IT+4B3CeHzpm0iy8NmbavgNezZAx1za4QIySNcKfdsSs 21 | 7PsNYPS0R9BeZK/4u4/yrQvRV0lXzQcIJPpwr0cfuhcgcHG8sbCLaw4Ph6go9kRL 22 | hvY7ZX9pdBLS8ukQ4w== 23 | -----END CERTIFICATE----- 24 | -------------------------------------------------------------------------------- /sepolicy/private/dataservice_app.te: -------------------------------------------------------------------------------- 1 | typeattribute dataservice_app coredomain; 2 | app_domain(dataservice_app) 3 | net_domain(dataservice_app) 4 | 5 | add_service(dataservice_app, cne_service) 6 | add_service(dataservice_app, uce_service) 7 | allow dataservice_app { 8 | app_api_service 9 | system_api_service 10 | audioserver_service 11 | radio_service 12 | }:service_manager find; 13 | 14 | allow dataservice_app hal_imsrcsd_hwservice:hwservice_manager find; 15 | allow dataservice_app hal_cne_hwservice:hwservice_manager find; 16 | 17 | allow dataservice_app system_app_data_file:dir create_dir_perms; 18 | allow dataservice_app system_app_data_file:{ file lnk_file } create_file_perms; 19 | 20 | hwbinder_use(dataservice_app) 21 | 22 | -------------------------------------------------------------------------------- /sepolicy/private/device.te: -------------------------------------------------------------------------------- 1 | type ramoops_device, dev_type; 2 | -------------------------------------------------------------------------------- /sepolicy/private/file_contexts: -------------------------------------------------------------------------------- 1 | /system/bin/folio_daemon u:object_r:folio_daemon_exec:s0 2 | /data/misc/elabel(/.*)? u:object_r:elabel_data_file:s0 3 | /system/bin/init\.elabel\.sh u:object_r:init_elabel_exec:s0 4 | /system/bin/ramoops u:object_r:ramoops_exec:s0 5 | /system/bin/init\.ramoops\.sh u:object_r:ramoops_exec:s0 6 | /dev/access-metadata u:object_r:ramoops_device:s0 7 | /dev/access-ramoops u:object_r:ramoops_device:s0 8 | /data/misc_ce/[0-9]+/ramoops(/.*)? u:object_r:ramoops_data_file:s0 9 | -------------------------------------------------------------------------------- /sepolicy/private/folio_daemon.te: -------------------------------------------------------------------------------- 1 | type folio_daemon, domain, coredomain; 2 | type folio_daemon_exec, exec_type, file_type; 3 | 4 | init_daemon_domain(folio_daemon) 5 | 6 | allow folio_daemon binder_device:chr_file rw_file_perms; 7 | allow folio_daemon uhid_device:chr_file rw_file_perms; 8 | 9 | allow folio_daemon system_server:unix_stream_socket rw_socket_perms_no_ioctl; 10 | 11 | binder_use(folio_daemon) 12 | binder_call(folio_daemon, system_server) 13 | 14 | allow folio_daemon sensorservice_service:service_manager find; 15 | allow folio_daemon permission_service:service_manager find; 16 | -------------------------------------------------------------------------------- /sepolicy/private/genfs_contexts: -------------------------------------------------------------------------------- 1 | genfscon sysfs /devices/virtual/ramoops/pstore/aes_key u:object_r:sysfs_pstore:s0 2 | genfscon sysfs /devices/virtual/ramoops/pstore/aes_key_iv u:object_r:sysfs_pstore:s0 3 | genfscon sysfs /devices/virtual/ramoops/pstore/aes_key_tag u:object_r:sysfs_pstore:s0 4 | genfscon sysfs /devices/virtual/ramoops/pstore/use_alt u:object_r:sysfs_pstore:s0 5 | -------------------------------------------------------------------------------- /sepolicy/private/init_elabel.te: -------------------------------------------------------------------------------- 1 | # /system/bin/init.elabel.sh 2 | # 3 | # write data from /persist/elabel to /data/misc/elabel for use by 4 | # settings app 5 | # 6 | init_daemon_domain(init_elabel) 7 | 8 | allow init_elabel shell_exec:file rx_file_perms; 9 | allow init_elabel toolbox_exec:file rx_file_perms; 10 | 11 | allow init_elabel elabel_data_file:dir rw_dir_perms; 12 | allow init_elabel elabel_data_file:file create_file_perms; 13 | -------------------------------------------------------------------------------- /sepolicy/private/keys.conf: -------------------------------------------------------------------------------- 1 | [@WFCACTIVATION] 2 | ALL : device/google/wahoo/sepolicy/private/certs/wfcactivation.x509.pem 3 | -------------------------------------------------------------------------------- /sepolicy/private/mac_permissions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /sepolicy/private/platform_app.te: -------------------------------------------------------------------------------- 1 | allow platform_app qchook_service:service_manager find; 2 | -------------------------------------------------------------------------------- /sepolicy/private/priv_app.te: -------------------------------------------------------------------------------- 1 | dontaudit priv_app device:dir read; 2 | dontaudit priv_app proc_interrupts:file read; 3 | dontaudit priv_app proc_modules:file read; 4 | -------------------------------------------------------------------------------- /sepolicy/private/property.te: -------------------------------------------------------------------------------- 1 | type ramoops_prop, property_type; 2 | -------------------------------------------------------------------------------- /sepolicy/private/property_contexts: -------------------------------------------------------------------------------- 1 | sys.ramoops. u:object_r:ramoops_prop:s0 2 | -------------------------------------------------------------------------------- /sepolicy/private/radio.te: -------------------------------------------------------------------------------- 1 | allow radio uce_service:service_manager find; 2 | add_service(radio, qchook_service) 3 | -------------------------------------------------------------------------------- /sepolicy/private/ramoops.te: -------------------------------------------------------------------------------- 1 | type ramoops, domain, coredomain; 2 | type ramoops_exec, exec_type, file_type; 3 | 4 | init_daemon_domain(ramoops); 5 | 6 | # kmod=crypto-gcm(aes) 7 | dontaudit ramoops kernel:system module_request; 8 | 9 | allow ramoops ramoops_exec:file rx_file_perms; 10 | allow ramoops shell_exec:file rx_file_perms; 11 | allow ramoops toolbox_exec:file rx_file_perms; 12 | 13 | # Set the sys.ramoops.decrypted property 14 | typeattribute ramoops system_writes_vendor_properties_violators; 15 | set_prop(ramoops, ramoops_prop); 16 | 17 | allow ramoops sysfs_pstore:file rw_file_perms; 18 | allow ramoops ramoops_device:chr_file rw_file_perms; 19 | allow ramoops ramoops_data_file:file create_file_perms; 20 | allow ramoops ramoops_data_file:dir rw_dir_perms; 21 | -------------------------------------------------------------------------------- /sepolicy/private/seapp_contexts: -------------------------------------------------------------------------------- 1 | #Add new domain for DataServices 2 | #TODO Remove user "system" when b/38043081 is resolved 3 | user=system seinfo=platform name=.dataservices domain=dataservice_app type=system_app_data_file 4 | 5 | # Domain for WfcActivation app 6 | user=_app seinfo=wfcactivation name=com.google.android.wfcactivation domain=wfc_activation_app levelFrom=all 7 | -------------------------------------------------------------------------------- /sepolicy/private/service.te: -------------------------------------------------------------------------------- 1 | type cne_service, service_manager_type; 2 | type uce_service, service_manager_type; 3 | type qchook_service, service_manager_type; 4 | -------------------------------------------------------------------------------- /sepolicy/private/service_contexts: -------------------------------------------------------------------------------- 1 | qti.ims.ext u:object_r:radio_service:s0 2 | cneservice u:object_r:cne_service:s0 3 | uce u:object_r:uce_service:s0 4 | rcs u:object_r:radio_service:s0 5 | qchook u:object_r:qchook_service:s0 6 | -------------------------------------------------------------------------------- /sepolicy/private/system_server.te: -------------------------------------------------------------------------------- 1 | binder_call(system_server, folio_daemon) 2 | -------------------------------------------------------------------------------- /sepolicy/private/untrusted_app_all.te: -------------------------------------------------------------------------------- 1 | # suppress spurious denials 2 | dontaudit untrusted_app_all sysfs_zram:dir search; 3 | -------------------------------------------------------------------------------- /sepolicy/private/wfc_activation_app.te: -------------------------------------------------------------------------------- 1 | type wfc_activation_app, domain, coredomain; 2 | 3 | app_domain(wfc_activation_app) 4 | net_domain(wfc_activation_app) 5 | 6 | # Services 7 | allow wfc_activation_app app_api_service:service_manager find; 8 | allow wfc_activation_app qchook_service:service_manager find; 9 | allow wfc_activation_app radio_service:service_manager find; 10 | -------------------------------------------------------------------------------- /sepolicy/public/dataservice_app.te: -------------------------------------------------------------------------------- 1 | type dataservice_app, domain; -------------------------------------------------------------------------------- /sepolicy/public/file.te: -------------------------------------------------------------------------------- 1 | type elabel_data_file, file_type, data_file_type, core_data_file_type; 2 | type sysfs_pstore, sysfs_type, fs_type; 3 | -------------------------------------------------------------------------------- /sepolicy/public/hwservice.te: -------------------------------------------------------------------------------- 1 | type hal_cne_hwservice, hwservice_manager_type; 2 | type hal_imsrcsd_hwservice, hwservice_manager_type; 3 | -------------------------------------------------------------------------------- /sepolicy/public/init_elabel.te: -------------------------------------------------------------------------------- 1 | # /system/bin/init.elabel.sh 2 | # 3 | # write data from /persist/elabel to /data/misc/elabel for use by 4 | # settings app 5 | # 6 | type init_elabel, domain, coredomain; 7 | type init_elabel_exec, exec_type, file_type; 8 | -------------------------------------------------------------------------------- /sepolicy/public/ramoops.te: -------------------------------------------------------------------------------- 1 | type ramoops_data_file, file_type, data_file_type, core_data_file_type; 2 | -------------------------------------------------------------------------------- /sepolicy/vendor/adsprpcd.te: -------------------------------------------------------------------------------- 1 | type adsprpcd, domain; 2 | type adsprpcd_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(adsprpcd) 5 | 6 | allow adsprpcd ion_device:chr_file r_file_perms; 7 | allow adsprpcd qdsp_device:chr_file r_file_perms; 8 | 9 | allow adsprpcd system_file:dir r_dir_perms; 10 | -------------------------------------------------------------------------------- /sepolicy/vendor/app.te: -------------------------------------------------------------------------------- 1 | # For the camera app 2 | get_prop(appdomain, camera_prop) 3 | -------------------------------------------------------------------------------- /sepolicy/vendor/atfwd.te: -------------------------------------------------------------------------------- 1 | type atfwd, domain; 2 | type atfwd_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(atfwd) 5 | 6 | hwbinder_use(atfwd) 7 | get_prop(atfwd, hwservicemanager_prop) 8 | allow atfwd vnd_atcmdfwd_hwservice:hwservice_manager find; 9 | binder_call(atfwd, qtelephony); 10 | 11 | allow atfwd self:socket create_socket_perms; 12 | allowxperm atfwd self:socket ioctl msm_sock_ipc_ioctls; 13 | 14 | r_dir_file(atfwd, sysfs_type) 15 | 16 | set_prop(atfwd, vendor_radio_prop) 17 | -------------------------------------------------------------------------------- /sepolicy/vendor/audioserver.te: -------------------------------------------------------------------------------- 1 | binder_call(audioserver, bootanim) 2 | 3 | allow audioserver sysfs_soc:file r_file_perms; 4 | allow audioserver sysfs_soc:dir search; 5 | -------------------------------------------------------------------------------- /sepolicy/vendor/bluetooth.te: -------------------------------------------------------------------------------- 1 | typeattribute bluetooth system_writes_vendor_properties_violators; 2 | set_prop(bluetooth, vendor_bluetooth_prop) 3 | set_prop(bluetooth, wc_prop) 4 | 5 | # Allow access to net_admin ioctls 6 | allowxperm bluetooth self:udp_socket ioctl priv_sock_ioctls; 7 | -------------------------------------------------------------------------------- /sepolicy/vendor/bootanim.te: -------------------------------------------------------------------------------- 1 | allow bootanim hwservicemanager:binder call; 2 | 3 | # TODO(b/62954877). On Android Wear, bootanim reads the time 4 | # during boot to display. It currently gets that time from a file 5 | # in /data/system. This should be moved. In the meantime, suppress 6 | # this denial on wahoo since this functionality is not used. 7 | dontaudit bootanim system_data_file:dir read; 8 | 9 | # TODO(b/37205419): Remove upon resolution 10 | dontaudit bootanim kernel:system module_request; 11 | -------------------------------------------------------------------------------- /sepolicy/vendor/bug_map: -------------------------------------------------------------------------------- 1 | bootanim vendor_default_prop file 79617173 2 | cnd vendor_shell_exec file 77922167 3 | drmserver app_data_file dir 77869200 4 | drmserver sdcardfs dir 77869200 5 | dumpstate sysfs file 77919159 6 | hal_audio_default default_prop file 77926553 7 | hal_audio_default priv_app fd 77926553 8 | hal_camera_default camera_vendor_data_file dir 77865891 9 | hal_camera_default debugfs dir 77865891 10 | hal_camera_default radio_prop file 77865891 11 | hal_imsrtp default_prop file 77725358 12 | hal_neuralnetworks_hvx default_prop file 77916944 13 | hal_power_default cgroup file 77919134 14 | init_power init_power capability 77915310 15 | installd media_rw_data_file file 77926261 16 | netutils_wrapper oemfs dir 77871509 17 | netutils_wrapper sysfs_timestamp_switch file 77871509 18 | netutils_wrapper tmpfs dir 77871509 19 | netutils_wrapper vendor_app_file dir 77871509 20 | netutils_wrapper vendor_framework_file dir 77871509 21 | nfc vendor_default_prop file 79617173 22 | per_proxy exported3_system_prop file 79541095 23 | priv_app vendor_default_prop file 79617173 24 | platform_app vendor_default_prop file 79617173 25 | radio vendor_default_prop file 77915129 26 | rfs_access unlabeled file 78019660 27 | rild system_prop file 77960261 28 | surfaceflinger vendor_default_prop file 79617173 29 | system_app vendor_default_prop file 79617173 30 | thermal-engine thermal-engine capability 78019417 31 | untrusted_app vendor_default_prop file 79617173 32 | -------------------------------------------------------------------------------- /sepolicy/vendor/cameraserver.te: -------------------------------------------------------------------------------- 1 | allow cameraserver gpu_device:chr_file rw_file_perms; 2 | 3 | typeattribute cameraserver system_writes_vendor_properties_violators; 4 | set_prop(cameraserver, camera_prop) 5 | 6 | allow cameraserver sysfs_camera:file r_file_perms; 7 | allow cameraserver sysfs_camera:dir search; 8 | 9 | allow cameraserver system_server:unix_stream_socket { read write }; 10 | 11 | # TODO (b/37688918) Verify that this is actually needed and not a violation of treble 12 | binder_call(cameraserver, mediacodec) 13 | -------------------------------------------------------------------------------- /sepolicy/vendor/certs/arcore.x509.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDvzCCAqegAwIBAgIJAMl7uSdzNfUbMA0GCSqGSIb3DQEBCwUAMHYxCzAJBgNV 3 | BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW 4 | aWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDESMBAG 5 | A1UEAwwJdnJfYXJjb3JlMB4XDTE3MDgwNDE2NTQ1OFoXDTQ0MTIyMDE2NTQ1OFow 6 | djELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1v 7 | dW50YWluIFZpZXcxFDASBgNVBAoMC0dvb2dsZSBJbmMuMRAwDgYDVQQLDAdBbmRy 8 | b2lkMRIwEAYDVQQDDAl2cl9hcmNvcmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw 9 | ggEKAoIBAQC95hqS8Gj3DVcufC0jbwtlB7wyY2eBf1s3Ftj3ZpUCbD+ra1MZIMU8 10 | Y/sV3xzuyGbbx3r0W/ZqK1c8xO0xDR/03QJ2XKpaEHzRHZnWSyLSYsmq5Qe4XEuE 11 | s7Q6v7OorTxbfBTLpWm83Gq2z0a2DDN6y9FMeIY7UxSw0ty1hZDDGRKbqsEyfhYq 12 | /CDOSsBTdmYzMrNY57ANxm2Ap7F7xZAMrF8Fs6VRi/jHhaL8fgHC3sT5Ql3vhy+Z 13 | vOihZi7Al8mcV0jyzIzV5TtafSBFu5fMxb5dbMKG4EfgsIh7aobFmRhF1gi1jsJT 14 | NL1bwsPzl+TGZDRR5vSONY5aMUiBrbx1AgMBAAGjUDBOMB0GA1UdDgQWBBST4+Xw 15 | yTxGQMN8QvNf7f2Ew/5euTAfBgNVHSMEGDAWgBST4+XwyTxGQMN8QvNf7f2Ew/5e 16 | uTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBBcjzoaU9GDOYpDQI2 17 | mD1/C5kdD9Y8UXP+jKUGPvBgFXBzdaNxyclClI30EiabwMOYQW06Ckn+QvRmESAt 18 | WJqt9PxsRRNKWmJ+A/irGAjJyQsiVVzfryeUg44Q+yRErL8wAV/kfHjVF44ZiUoq 19 | FCpErxjSNNLjtBGbaZid+gsBARnrUWrol6Zcuj1DWKUoCZHW6gTu86/GfgTJKHwV 20 | ABe+D89U4pI8RoykmWOTIcpWZZhrDFjJrIXnOqG/T9O3DK+sDigBPv1UhKJI6ucd 21 | dCDLQK3lmP+vvj/sXnxUU7zqrUSj6dyKJwCz4i8rXx9XijsX13J+JMtk23iJFeOo 22 | XjFY 23 | -----END CERTIFICATE----- 24 | -------------------------------------------------------------------------------- /sepolicy/vendor/certs/arcore_release.x509.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDxzCCAq+gAwIBAgIVANwoa0O06hIDmVigCmZV64RyDkbJMA0GCSqGSIb3DQEB 3 | CwUAMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH 4 | Ew1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMH 5 | QW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0xNzA4MDQxNjUzMzdaFw00NzA4 6 | MDQxNjUzMzdaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYw 7 | FAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4G 8 | A1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASIwDQYJKoZIhvcNAQEB 9 | BQADggEPADCCAQoCggEBAImYZG9H/DM9sJZEwwMQTtGD6QTjURUqpmpgO3f2M4nU 10 | XW/P+uPJT63x8oA44mXWl/6jRzJ/kIGn8LkHTVsUjbW/NXxhGnf4f4RKFQaIGL3N 11 | WyHRh+k/olUWdhcO7c4EoVDDXsCnke71B/qbQGVzw29vIHdkhC5Wd+NaKBpCJlnp 12 | HibrT+z7BTtck20JdsN/h1ettXo3lT2lhE6jUGlYVNNDphrTQbY6HEJdIoVa9+v+ 13 | 4Bjhc2zumFNr5bmUfyiOKib5nrn5G13pP+zFEwGdLpDxKzhhDR8C6qgd7KTOkcGc 14 | vONtbDAlziQys9F4YWvq+vQ3wIRRvEaca8b0UXpxSlsCAwEAAaNQME4wDAYDVR0T 15 | BAUwAwEB/zAdBgNVHQ4EFgQUGahkwPJhjGfIA6I9qQm8cFIfJpswHwYDVR0jBBgw 16 | FoAUGahkwPJhjGfIA6I9qQm8cFIfJpswDQYJKoZIhvcNAQELBQADggEBAFQD/Fb9 17 | 78RAN2oDN4FQArlqFb/8L+Qt5sWPUvrk2AZS43BEVbiFQJ7vgf+7TETboQS2uOJM 18 | ni4OegQzjuc7qltxv7RIj44EvvPQ6vfUOqQrA7J4wzzB8N04AlcWJLqhYdhR+rN9 19 | tLySuQlLaIXf9itADs2B8GnVahvh20bYGYxQyWKM2244aG72QP04Z3X1A3b5V+JO 20 | pF7RlClo8gyC8Ylgf9si8Rz9/Qdgp3pgzrNBbPs/SPE/n4Pzg0oBABdQp8eLwf2B 21 | 8LU6fEHcup9aARglnQg8Mrueu4TWRdb2ucMZI9ircOfwollA7Mn0lFFEQZ+G6MQh 22 | 07mXdPS489CSYuc= 23 | -----END CERTIFICATE----- 24 | 25 | -------------------------------------------------------------------------------- /sepolicy/vendor/certs/arcore_userdev.x509.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDmTCCAoGgAwIBAgIEXT5J7jANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJV 3 | UzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEU 4 | MBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxGTAXBgNVBAMM 5 | EGFyY29yZV91c2VyYnVpbGQwHhcNMTcwODA4MjIyMzUzWhcNNDQxMjI0MjIyMzUz 6 | WjB9MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN 7 | TW91bnRhaW4gVmlldzEUMBIGA1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0Fu 8 | ZHJvaWQxGTAXBgNVBAMMEGFyY29yZV91c2VyYnVpbGQwggEiMA0GCSqGSIb3DQEB 9 | AQUAA4IBDwAwggEKAoIBAQDI+9aEC0Zg3Bjid1Pa/PWmC1tmyKx57QJIN/8kPq9b 10 | p3qH1fOVkCsNQq7lzmd4jT4m3weZPtwNCYWFQDnTzeywm6/1+kFg52ilPkKQiLc/ 11 | Ew3YcJ5aSfACECP7GMwr3WpL/jsuVR11X2I98tvUJ0aOjwS1u25Z8AMscpZNOvE6 12 | MRcfmE/mcFKMqwFo5hGiAwirQznAykOcHZIwANAGiQMQkiidSvTMq/fDF6iP9giH 13 | xGvJqaLs55aNSTweMGLWGPjiNERxhA9bBo3vwMyMR6zM6PSPnYHhy/Xm7NwGVLBU 14 | gkHomhpQpGioaAnQes6mTvdR8SA+MpYQDNEoXbHx2eOpAgMBAAGjITAfMB0GA1Ud 15 | DgQWBBSdLVDMs0DfeLCiHxL07bCyNub7wzANBgkqhkiG9w0BAQUFAAOCAQEAggrm 16 | iZBZ8hpbN4IUaSy6HEiLuiQZoLXE8cegAGJGXg4Y95dtk+8tUQu3fSXY+RNbc0JZ 17 | FaYJN2deD3zRFC7nLjIMiHdo6+JE7W9s4omrLvm7rEs7tXszP2/JR3dvS+5III62 18 | 9CrPf4DdAHYffeZJWXsGUmP+wBKb4TsVSO+8pcqM69178A9IvQ3EnLYRCZ0YDnwz 19 | IBDSBANEkAqTxDUMSi909ziusiAmHINcKelxAB8DhE6PuU0tcAfpqFOeZdh0T7hF 20 | fEwhLK6lklnP6DyEPgJiBYHsIP4jycc26Pa5OKDSv7kho/MvWLhCzDeTyOIg7LVu 21 | MgY5FIrpuaqIowB/4A== 22 | -----END CERTIFICATE----- 23 | 24 | -------------------------------------------------------------------------------- /sepolicy/vendor/certs/easel.x509.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIID1zCCAr+gAwIBAgIJAKOIETaYwmxkMA0GCSqGSIb3DQEBCwUAMIGBMQswCQYD 3 | VQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4g 4 | VmlldzEUMBIGA1UECgwLR29vZ2xlIEluYy4xEDAOBgNVBAsMB0FuZHJvaWQxHTAb 5 | BgNVBAMMFGVhc2Vsc2VydmljZS1hbmRyb2lkMB4XDTE3MDYwMTE4MjUxM1oXDTQ0 6 | MTAxNzE4MjUxM1owgYExCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlh 7 | MRYwFAYDVQQHDA1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQ 8 | MA4GA1UECwwHQW5kcm9pZDEdMBsGA1UEAwwUZWFzZWxzZXJ2aWNlLWFuZHJvaWQw 9 | ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDdqipNwS7MFSdJV0Y51Tc1 10 | UU55YkVlwKBjSmYfKpmURR/OqqkP4AswI7byxbapLSZiJAS6TdJmL0QC9ycMOfQL 11 | 7RFSKdiY72Ze0abYxpaimj0iVprHVTmaakVg/0o7Dx4hOEqWE6U1TUCK3tAWzyJq 12 | gfH8sJQbFygGpSrEG+XvgN4VAzUEzC6WvV4gAg+5QWYB/Jqh3PJM0iI7WHsjp7oY 13 | j1w2E/R9YHjEOlXa8vB8Mbh1zAghtzWoMry73Xyo8h3Ji3jSGqM+YP+JGCKMEHBm 14 | TE7ywZdi1btKfGEB6WAoZ9IxnX6ezlFmCt3H+LtHS1iiaZf+hl8vnWkX5oddkpUj 15 | AgMBAAGjUDBOMB0GA1UdDgQWBBQ6dUV+uzBrL91ibZm6y4hU49lXXDAfBgNVHSME 16 | GDAWgBQ6dUV+uzBrL91ibZm6y4hU49lXXDAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 17 | DQEBCwUAA4IBAQBjGGh2oj/c8L9oCsImdSdlDtxMsUT26LKr3UaqhY4xsYp32pcF 18 | ICSjkufog6l7+oOfYISV2r7pN6e9nHoxky9lns9a7jP6Mrh+oL9kTTcWKMo1F88I 19 | jppWvo0hc8WuGef1Sh3DpYi4jSmdUa8HESLeB9LskCxBAS5iwE4x6VAOxfVGOfWw 20 | o3LQ1Y8QL256NPkgQfS+V4hFW+7l2corVYHCRbmXfsHyCk9yesbMsjE1TgdZH9Ys 21 | SyamPaLSZ/Heelqrha0DqdWO1KDQcKC8oISichTJ++EphsdTUsEz6rzCYziPf7A6 22 | MNmY9YdjnvD5f2IBusSPGC0Bzqn9JdpBnAPL 23 | -----END CERTIFICATE----- 24 | -------------------------------------------------------------------------------- /sepolicy/vendor/certs/pulse-release.x509.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICUjCCAbsCBEk0mH4wDQYJKoZIhvcNAQEEBQAwcDELMAkGA1UEBhMCVVMxCzAJ 3 | BgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29n 4 | bGUsIEluYzEUMBIGA1UECxMLR29vZ2xlLCBJbmMxEDAOBgNVBAMTB1Vua25vd24w 5 | HhcNMDgxMjAyMDIwNzU4WhcNMzYwNDE5MDIwNzU4WjBwMQswCQYDVQQGEwJVUzEL 6 | MAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC0dv 7 | b2dsZSwgSW5jMRQwEgYDVQQLEwtHb29nbGUsIEluYzEQMA4GA1UEAxMHVW5rbm93 8 | bjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAn0gDGZD5sUcmOE4EU9GPjAu/ 9 | jcd7JQSksSB8TGxEurwArcZhD6a2qy2oDjPy7vFrJqP2uFua+sqQn/u+s/TJT36B 10 | IqeY4OunXO090in6c2X0FRZBWqnBYX3Vg84Zuuigu9iF/BeptL0mQIBRIarbk3fe 11 | tAATOBQYiC7FIoL8WA0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQBAhmae1jHaQ4Td 12 | 0GHSJuBzuYzEuZ34teS+njy+l1Aeg98cb6lZwM5gXE/SrG0chM7eIEdsurGb6PIg 13 | Ov93F61lLY/MiQcI0SFtqERXWSZJ4OnTxLtM9Y2hnbHU/EG8uVhPZOZfQQ0FKf1b 14 | aIOMFB0Km9HbEZHLKg33kOoMsS2zpA== 15 | -----END CERTIFICATE----- 16 | -------------------------------------------------------------------------------- /sepolicy/vendor/certs/tango.x509.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDwTCCAqmgAwIBAgIJAIiYMxDYi32/MA0GCSqGSIb3DQEBBQUAMHcxCzAJBgNV 3 | BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW 4 | aWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDETMBEG 5 | A1UEAwwKdGFuZ29fY29yZTAeFw0xNjA0MjYxOTQ2MzFaFw00MzA5MTIxOTQ2MzFa 6 | MHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1N 7 | b3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5k 8 | cm9pZDETMBEGA1UEAwwKdGFuZ29fY29yZTCCASIwDQYJKoZIhvcNAQEBBQADggEP 9 | ADCCAQoCggEBALHvNZUE1ftQMM1yYhTarT+9PAsb+Jy6diZpFnwC52Q35wfiFzPN 10 | M8pFj9FfJAmYhQQ7pFksk0ZRvIJ+iEho6zMBIvWucKSAGvIAhfWvd4+E6Dg65cm1 11 | rpEnINBICJI2/R2xafGPzFSztmHNqdXPi6vnAnk7mA2CjLLzDfDEVCUfzt/LIHTk 12 | Z6Oq5F6zmWnC2Ur9Qg8uHaaZm23k1oGKVCEPlIzi7fgY/u9iWOjOfpCgNSMoekta 13 | Ffv0CI0Rme/HJN+56whJDaTIlwOHXH7exhCbqnzUhyge/OMmxfqTPqHsM361KZzE 14 | GA3/WqRNDo0a56L/q/mZuQC7kU61RYBhu58CAwEAAaNQME4wHQYDVR0OBBYEFNG2 15 | YNmsPzJxXM3M+D9i+J4Mqk8RMB8GA1UdIwQYMBaAFNG2YNmsPzJxXM3M+D9i+J4M 16 | qk8RMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAGg4Fd5AvTU8JFgb 17 | fGtetaO8sfQ+J/0nJwIYnguUA5VsZr8wy68smzPr8mL3jF5YM7VWP4osUowgwCWT 18 | LB2D5w6qNoPlBmm959yAD0zU7CbpKAxIR+xQnIYbcc0KcdJ48crvipHveKPqPpDt 19 | kaj6EY6FLna1klP2ywuplh+6pvT8aILxLBzh0V6yT0aX6gPoIlMQqLVjbfk+CW9p 20 | /z9j2N+j8ej++hYu1SEmBaLzt0hICmKsNMilR/Wi/3vGBvNbvBiyVJm/uTWbejL1 21 | cltUoPDxyH+lQ+WQXqZholbnCl0Ct0xrhiPeLhJ+8eGvSxQw4Wt2E14AcrSwG25j 22 | zKHDydw= 23 | -----END CERTIFICATE----- 24 | -------------------------------------------------------------------------------- /sepolicy/vendor/certs/tango_release.x509.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDwTCCAqmgAwIBAgIJAO+A5DYVLfprMA0GCSqGSIb3DQEBBQUAMHcxCzAJBgNV 3 | BAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1Nb3VudGFpbiBW 4 | aWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5kcm9pZDETMBEG 5 | A1UEAwwKdGFuZ29fY29yZTAeFw0xNjA0MjYxOTQ2MzdaFw00MzA5MTIxOTQ2Mzda 6 | MHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1N 7 | b3VudGFpbiBWaWV3MRQwEgYDVQQKDAtHb29nbGUgSW5jLjEQMA4GA1UECwwHQW5k 8 | cm9pZDETMBEGA1UEAwwKdGFuZ29fY29yZTCCASIwDQYJKoZIhvcNAQEBBQADggEP 9 | ADCCAQoCggEBAPJYCbynrmMeP8ZtqzBMoNhMOUGuq9p77j6gM3B90jQ6f2LRVL09 10 | l3UM+wu+SxTV2T6PXR9LXB0FiJ1waqMQ5yPBZzptQqckUw2ov5uhpx9yE8KqeTGQ 11 | W03xoXoo5S38OztAME8rGMcUtuofEySAWm4Qxm6iq8aZ+NlJAViVztffC9Wx0Kqs 12 | pJ7kgvFSv11ZFPP6EADdihSjH3ApQgU4dlIc4Nevh5fGE7gEY5fxU/NBEDMawhox 13 | pI9UEWSG4QNB4sE9Wwh0AM9GJ5+5S6xG55bsY/SHEbzMv2NsYVjayQiNb2D4nK+r 14 | NdgjTBq508d9m8ybpNjxZRFEs/SagYLV23cCAwEAAaNQME4wHQYDVR0OBBYEFE/G 15 | b+OBEdIfHSDmF/1bl6Q98nXlMB8GA1UdIwQYMBaAFE/Gb+OBEdIfHSDmF/1bl6Q9 16 | 8nXlMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBACpBNrrt/50EwS2A 17 | /8jQG/2W20OawIkSjGAyICQ2TiOwu9nOw2LcZh6GNE1tCjCPCAzXGMC+5UTS09aA 18 | ElfG/9WiUK2PjuqeOe8l57XHaHxvL+oVQUbmjiU8RIR9bgiN/BqVklN1LIrXAMNd 19 | CtcVkXYcnhQE3vlhCxfjwqn+2GMghDTftiQZDL/mxflckAY7hJxVV7dexewNoXQ0 20 | bVNBuvAnFTl6fG5HAZGRG6y89GLcugzbxVKbRzcuxEVPFDiLQJJcW2e9C/u1cP0+ 21 | 91aoz+/Ick0DCSMrEVJPo2w3saPSDUONOS6Tu9JPm2rRwdlM2I/ipmlU3ziwwM6K 22 | 0+4WtYc= 23 | -----END CERTIFICATE----- 24 | 25 | -------------------------------------------------------------------------------- /sepolicy/vendor/certs/tango_userdev.x509.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDjzCCAnegAwIBAgIEaRjVZzANBgkqhkiG9w0BAQsFADB3MQ4wDAYDVQQGEwU5 3 | NTExNzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxDzANBgNV 4 | BAoTBkdvb2dsZTEWMBQGA1UECxMNUHJvamVjdCBUYW5nbzEXMBUGA1UEAxMOQ2hh 5 | cmxlcyBMIENoZW4wIBcNMTQxMDE1MjIzNjE3WhgPMzAxMzAyMTUyMjM2MTdaMHcx 6 | DjAMBgNVBAYTBTk1MTE3MQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4g 7 | VmlldzEPMA0GA1UEChMGR29vZ2xlMRYwFAYDVQQLEw1Qcm9qZWN0IFRhbmdvMRcw 8 | FQYDVQQDEw5DaGFybGVzIEwgQ2hlbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC 9 | AQoCggEBAI1d+E9l4ndaDNqzMzJuXf2jslm3/y1oIumQo3dwCa6rF77kxxmI9lM7 10 | 52+tR06dLwnT7uEcO2mQgZ7TWY2tgrXwVYSCzu+WSuc1KgtlLIvcoBodUKSR4vGI 11 | gsvG9eJwVZAVOLOBpF96OJoTOIwLaN1DokkKoBXDkONlYP0hU4/Yo7qxTbM64a+Y 12 | DeAdZ9hirq8p11VZC0o930Ejc47+RZoNt5YMVtpeVBzSrrMLuwZAvD1wrzK9gP9j 13 | xwS/knQSsCb9UZ3OpFogCUeiyFO/lDE9BJHbmDiJch0X52rOm5SKvr4kwduGcENy 14 | oWjmmQR1jjIzxQuO2G8CGJkEmA57vp8CAwEAAaMhMB8wHQYDVR0OBBYEFMvhYFl2 15 | LMBcFi1vcDPkyz4g0Q4cMA0GCSqGSIb3DQEBCwUAA4IBAQAW9YM5ATbSO5T1sULQ 16 | MhJ2IvqQcPTpP4KUfnHSXLSucyotmsCSVNhuTX+KYHTOmS3srEjv63qojYz8QpeJ 17 | GLlIMbrRPI4MSoZgzMWBX71Ld27rMXbVeKiFa44L3+5XBC15WxoqPJSOxAFsv1Lt 18 | mI5CwqtywwhEUqMR9jBeHn8AhZyOB8gP592BCLs8YVKl0aYQruaNcUuc5PRPiKgH 19 | iCPkaPoyUMCVsfZjOI6IAuu8PGeiXn4QJgcc8YQcEgpSqYea/TqgeLdV+mAER5BK 20 | qg1kX528kWm+K+0PJScVaZk9jZHYo5qMFFWAc9DreNTLWETQEMPi3E6BVY0EI/56 21 | GsqT 22 | -----END CERTIFICATE----- 23 | -------------------------------------------------------------------------------- /sepolicy/vendor/charger.te: -------------------------------------------------------------------------------- 1 | typeattribute charger system_writes_vendor_properties_violators; 2 | set_prop(charger, public_vendor_system_prop) 3 | -------------------------------------------------------------------------------- /sepolicy/vendor/chre.te: -------------------------------------------------------------------------------- 1 | # This daemon loads the Context Hub Runtime Environment (CHRE) dynamic modules 2 | # onto the SLPI using FastRPC, and exposes a sockets interface for clients on 3 | # the applications processor to interact CHRE 4 | type chre, domain; 5 | type chre_exec, exec_type, vendor_file_type, file_type; 6 | 7 | init_daemon_domain(chre) 8 | 9 | allow chre ion_device:chr_file { open read }; 10 | allow chre qdsp_device:chr_file { ioctl open read }; 11 | 12 | allow chre system_file:dir read; 13 | -------------------------------------------------------------------------------- /sepolicy/vendor/cnd.te: -------------------------------------------------------------------------------- 1 | type cnd, domain; 2 | type cnd_exec, exec_type, vendor_file_type, file_type; 3 | file_type_auto_trans(cnd, socket_device, cnd_socket); 4 | 5 | # cnd is started by init, type transit from init domain to cnd domain 6 | init_daemon_domain(cnd) 7 | 8 | allow cnd self:capability { net_bind_service }; 9 | wakelock_use(cnd) 10 | 11 | allow cnd self:udp_socket create_socket_perms; 12 | allowxperm cnd self:udp_socket ioctl SIOCGIFMTU; 13 | 14 | allow cnd sysfs_timestamp_switch:file r_file_perms; 15 | r_dir_file(cnd, sysfs_msm_subsys) 16 | r_dir_file(cnd, sysfs_diag) 17 | r_dir_file(cnd, sysfs_soc) 18 | 19 | allow cnd proc_meminfo:file r_file_perms; 20 | 21 | set_prop(cnd, cnd_prop) 22 | 23 | allow cnd self:socket create_socket_perms; 24 | allowxperm cnd self:socket ioctl msm_sock_ipc_ioctls; 25 | 26 | # To register cnd to hwbinder 27 | add_hwservice(cnd, hal_cne_hwservice) 28 | hwbinder_use(cnd) 29 | get_prop(cnd, hwservicemanager_prop) 30 | binder_call(cnd, dataservice_app) 31 | binder_call(cnd, ims) 32 | 33 | userdebug_or_eng(` 34 | allow cnd diag_device:chr_file rw_file_perms; 35 | ') 36 | dontaudit cnd diag_device:chr_file rw_file_perms; 37 | -------------------------------------------------------------------------------- /sepolicy/vendor/con_monitor.te: -------------------------------------------------------------------------------- 1 | # ConnectivityMonitor app 2 | type con_monitor_app, domain; 3 | 4 | app_domain(con_monitor_app) 5 | 6 | set_prop(con_monitor_app, radio_prop) 7 | allow con_monitor_app app_api_service:service_manager find; 8 | allow con_monitor_app radio_vendor_data_file:dir rw_dir_perms; 9 | allow con_monitor_app radio_vendor_data_file:file create_file_perms; 10 | allow con_monitor_app hal_power_hwservice:hwservice_manager find; 11 | allow con_monitor_app hal_power_default:binder call; 12 | allow con_monitor_app radio_service:service_manager find; 13 | allow con_monitor_app audioserver_service:service_manager find; 14 | -------------------------------------------------------------------------------- /sepolicy/vendor/dataservice_app.te: -------------------------------------------------------------------------------- 1 | get_prop(dataservice_app, cnd_prop) 2 | 3 | r_dir_file(dataservice_app, sysfs_msm_subsys) 4 | 5 | binder_call(dataservice_app, cnd) 6 | 7 | # imsrcsd to bind with UceShimService.apk 8 | binder_call(dataservice_app, hal_rcsservice) 9 | -------------------------------------------------------------------------------- /sepolicy/vendor/device.te: -------------------------------------------------------------------------------- 1 | type ab_block_device, dev_type; 2 | type at_device, dev_type; 3 | type avtimer_device, dev_type; 4 | type bt_device, dev_type; 5 | type diag_device, dev_type, mlstrustedobject; 6 | type dsp_device, dev_type; 7 | type easel_device, dev_type; 8 | type hbtp_device, dev_type; 9 | type ipa_dev, dev_type; 10 | type latency_device, dev_type; 11 | type modem_block_device, dev_type; 12 | type persist_block_device, dev_type; 13 | type pn81a_device, dev_type; 14 | type qsee_ipc_irq_spss_device, dev_type; 15 | type qdsp_device, dev_type, mlstrustedobject; 16 | type ramdump_device, dev_type; 17 | type rmnet_device, dev_type; 18 | type gpt_block_device, dev_type; 19 | type ramdump_block_device, dev_type; 20 | type seemplog_device, dev_type; 21 | type sg_device, dev_type; 22 | type smd_device, dev_type; 23 | type spcom_device, dev_type; 24 | type ssd_block_device, dev_type; 25 | type ssr_device, dev_type; 26 | type thermal_device, dev_type; 27 | type wlan_device, dev_type; 28 | type xbl_block_device, dev_type; 29 | -------------------------------------------------------------------------------- /sepolicy/vendor/dnsmasq.te: -------------------------------------------------------------------------------- 1 | dontaudit dnsmasq kernel:system module_request; 2 | -------------------------------------------------------------------------------- /sepolicy/vendor/domain.te: -------------------------------------------------------------------------------- 1 | # In order for /sys/kernel/debug/kgsl/proc//mem 2 | # to be created for memory tracking, the domain of 3 | # the tracked process must have permission to search 4 | # in /sys/kernel/debug/kgsl 5 | allow domain debugfs_kgsl:dir search; 6 | 7 | allow domain debugfs_ion:dir search; 8 | 9 | get_prop(domain, public_vendor_default_prop) 10 | get_prop(domain, public_vendor_system_prop) 11 | get_prop(domain, vendor_radio_prop) 12 | -------------------------------------------------------------------------------- /sepolicy/vendor/dumpstate.te: -------------------------------------------------------------------------------- 1 | userdebug_or_eng(` 2 | allow dumpstate proc_modules:file r_file_perms; 3 | allow dumpstate proc_stat:file r_file_perms; 4 | allow dumpstate persist_file:dir r_dir_perms; 5 | allow dumpstate sysfs_leds:dir search; 6 | allow dumpstate system_block_device:blk_file r_file_perms; 7 | 8 | dontaudit dumpstate self:netlink_xfrm_socket create_socket_perms_no_ioctl; 9 | 10 | binder_call(dumpstate, per_mgr) 11 | ') 12 | 13 | # For collecting bugreports. 14 | allow dumpstate sysfs_scsi_devices_0000:file r_file_perms; 15 | allow dumpstate sysfs_scsi_devices_other:file r_file_perms; 16 | allow dumpstate sysfs_devices_block:file r_file_perms; 17 | dontaudit dumpstate kernel:system module_request; 18 | -------------------------------------------------------------------------------- /sepolicy/vendor/easel.te: -------------------------------------------------------------------------------- 1 | # easel service 2 | type easel, domain; 3 | type easel_exec, exec_type, vendor_file_type, file_type; 4 | 5 | init_daemon_domain(easel) 6 | 7 | add_service(easel, easel_service) 8 | 9 | vndbinder_use(easel) 10 | 11 | # access easel dev nodes 12 | allow easel easel_device:chr_file rw_file_perms; 13 | allow easel sysfs_easel:file rw_file_perms; 14 | allow easel sysfs_easel:dir r_dir_perms; 15 | 16 | # access easel thermal sysfs 17 | allow easel sysfs_thermal:dir r_dir_perms; 18 | allow easel sysfs_thermal:file r_file_perms; 19 | allow easel sysfs_thermal:lnk_file r_file_perms; -------------------------------------------------------------------------------- /sepolicy/vendor/easelservice_app.te: -------------------------------------------------------------------------------- 1 | type easelservice_app, domain; 2 | 3 | app_domain(easelservice_app) 4 | 5 | allow easelservice_app app_api_service:service_manager find; 6 | allow easelservice_app surfaceflinger_service:service_manager find; 7 | # Access to mnh_sm driver 8 | allow easelservice_app easel_device:chr_file { read write ioctl open }; 9 | # Access to keychain for kernel based authentication 10 | allow easelservice_app kernel:key search; -------------------------------------------------------------------------------- /sepolicy/vendor/esed.te: -------------------------------------------------------------------------------- 1 | # android.hardware.weaver HAL implementation 2 | # Clean up naming after via b/38447431 3 | type esed, domain; 4 | type esed_exec, exec_type, vendor_file_type, file_type; 5 | 6 | hal_server_domain(esed, hal_weaver) 7 | 8 | allow esed pn81a_device:chr_file rw_file_perms; 9 | allow esed ese_vendor_data_file:dir create_dir_perms; 10 | allow esed ese_vendor_data_file:file create_file_perms; 11 | 12 | init_daemon_domain(esed) 13 | -------------------------------------------------------------------------------- /sepolicy/vendor/fsck.te: -------------------------------------------------------------------------------- 1 | allow fsck persist_block_device:blk_file rw_file_perms; 2 | -------------------------------------------------------------------------------- /sepolicy/vendor/gatekeeperd.te: -------------------------------------------------------------------------------- 1 | typeattribute gatekeeperd system_writes_vendor_properties_violators; 2 | set_prop(gatekeeperd, keymaster_prop) 3 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_audio_default.te: -------------------------------------------------------------------------------- 1 | r_dir_file(hal_audio_default, sysfs_soc) 2 | 3 | allow hal_audio_default audio_vendor_data_file:dir rw_dir_perms; 4 | allow hal_audio_default audio_vendor_data_file:file create_file_perms; 5 | 6 | dontaudit hal_audio_default perfd:unix_stream_socket connectto; 7 | dontaudit hal_audio_default perfd_socket:sock_file write; 8 | 9 | hal_client_domain(hal_audio_default, hal_power) 10 | 11 | userdebug_or_eng(` 12 | allow hal_audio diag_device:chr_file rw_file_perms; 13 | ') 14 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_bluetooth_default.te: -------------------------------------------------------------------------------- 1 | allow hal_bluetooth_default bt_device:chr_file rw_file_perms; 2 | 3 | allow hal_bluetooth_default wcnss_filter:unix_stream_socket connectto; 4 | 5 | # talk to system_server to set priority 6 | allow hal_bluetooth fwk_scheduler_hwservice:hwservice_manager find; 7 | allow hal_bluetooth system_server:binder call; 8 | 9 | set_prop(hal_bluetooth_default, vendor_bluetooth_prop) 10 | set_prop(hal_bluetooth_default, wc_prop) 11 | 12 | userdebug_or_eng(` 13 | allow hal_bluetooth_default diag_device:chr_file rw_file_perms; 14 | allow hal_bluetooth_default ramdump_vendor_data_file:dir w_dir_perms; 15 | allow hal_bluetooth_default ramdump_vendor_data_file:file { create w_file_perms }; 16 | allow hal_bluetooth_default sysfs_timestamp_switch:file r_file_perms; 17 | r_dir_file(hal_bluetooth_default, debugfs_ipc) 18 | r_dir_file(hal_bluetooth_default, sysfs_diag) 19 | set_prop(hal_bluetooth_default, vendor_ssr_prop) 20 | ') 21 | 22 | dontaudit hal_bluetooth_default diag_device:chr_file rw_file_perms; 23 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_bootctl.te: -------------------------------------------------------------------------------- 1 | # These are the permissions required to use the boot_control HAL implemented 2 | # here: hardware/qcom/bootctrl/boot_control.c 3 | 4 | # Getting and setting GPT attributes for the bootloader iterates over all the 5 | # partition names in the block_device directory /dev/block/.../by-name 6 | allow hal_bootctl block_device:dir r_dir_perms; 7 | 8 | # Edit the attributes stored in the GPT. 9 | allow hal_bootctl gpt_block_device:blk_file rw_file_perms; 10 | allow hal_bootctl ab_block_device:blk_file getattr; 11 | allow hal_bootctl boot_block_device:blk_file rw_file_perms; 12 | allow hal_bootctl modem_block_device:blk_file getattr; 13 | allow hal_bootctl system_block_device:blk_file getattr; 14 | allow hal_bootctl_server misc_block_device:blk_file rw_file_perms; 15 | 16 | # Access /dev/sgN devices (generic SCSI) to write the 17 | # A/B slot selection for the XBL partition. Allow also to issue a 18 | # UFS_IOCTL_QUERY ioctl. 19 | allow hal_bootctl sg_device:chr_file rw_file_perms; 20 | allow hal_bootctl self:capability sys_admin; 21 | allow hal_bootctl tmpfs:lnk_file r_file_perms; 22 | 23 | # Read the sysfs to lookup what /dev/sgN device 24 | # corresponds to the XBL partitions. 25 | allow hal_bootctl sysfs_type:dir r_dir_perms; 26 | 27 | # Write to the XBL devices. 28 | allow hal_bootctl xbl_block_device:blk_file rw_file_perms; 29 | 30 | # Expose a socket for brokered boot message access for hal_oemlock. 31 | allow hal_bootctl hal_bootctl_socket:sock_file create_file_perms; 32 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_camera_default.te: -------------------------------------------------------------------------------- 1 | allow hal_camera_default input_device:dir r_dir_perms; 2 | 3 | allow hal_camera_default sysfs_laser:file w_file_perms; 4 | vndbinder_use(hal_camera_default); 5 | allow hal_camera_default qdisplay_service:service_manager { find }; 6 | 7 | allow hal_camera_default hal_graphics_mapper_hwservice:hwservice_manager find; 8 | allow hal_camera_default hal_graphics_allocator_hwservice:hwservice_manager find; 9 | 10 | hal_client_domain(hal_camera_default, hal_configstore) 11 | binder_call(hal_camera_default, hal_graphics_composer) 12 | binder_call(hal_camera_default, system_server) 13 | binder_call(hal_camera_default, hal_graphics_allocator) 14 | 15 | # For interfacing with PowerHAL and ThermalHAL 16 | hal_client_domain(hal_camera_default, hal_power) 17 | hal_client_domain(hal_camera_default, hal_thermal) 18 | 19 | # For camera team debugging 20 | userdebug_or_eng(` 21 | allow hal_camera_default camera_vendor_data_file:dir create_dir_perms; 22 | allow hal_camera_default camera_vendor_data_file:file create_file_perms; 23 | ') 24 | 25 | get_prop(hal_camera_default, vendor_radio_prop); -------------------------------------------------------------------------------- /sepolicy/vendor/hal_cas_default.te: -------------------------------------------------------------------------------- 1 | # Allow CAS HAL to use vendor-binder service 2 | vndbinder_use(hal_cas_default); 3 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_contexthub.te: -------------------------------------------------------------------------------- 1 | # Allow context hub HAL to communicate with daemon via socket 2 | allow hal_contexthub_default chre:unix_stream_socket connectto; 3 | allow hal_contexthub_default chre_socket:sock_file write; 4 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_drm_clearkey.te: -------------------------------------------------------------------------------- 1 | # policy for /vendor/bin/hw/android.hardware.drm@1.1-service.clearkey 2 | type hal_drm_clearkey, domain; 3 | type hal_drm_clearkey_exec, exec_type, vendor_file_type, file_type; 4 | 5 | init_daemon_domain(hal_drm_clearkey) 6 | 7 | hal_server_domain(hal_drm_clearkey, hal_drm) 8 | 9 | vndbinder_use(hal_drm_clearkey); 10 | 11 | allow hal_drm_clearkey { appdomain -isolated_app }:fd use; 12 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_drm_default.te: -------------------------------------------------------------------------------- 1 | allow hal_drm_default vndbinder_device:chr_file rw_file_perms; 2 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_drm_widevine.te: -------------------------------------------------------------------------------- 1 | # policy for /vendor/bin/hw/android.hardware.drm@1.1-service.widevine 2 | type hal_drm_widevine, domain; 3 | type hal_drm_widevine_exec, exec_type, vendor_file_type, file_type; 4 | 5 | init_daemon_domain(hal_drm_widevine) 6 | 7 | hal_server_domain(hal_drm_widevine, hal_drm) 8 | 9 | vndbinder_use(hal_drm_widevine); 10 | 11 | allow hal_drm_widevine mediacodec:fd use; 12 | allow hal_drm_widevine { appdomain -isolated_app }:fd use; 13 | 14 | # The Qualcomm DRM-HAL implementation uses a vendor-binder service provided 15 | # by the HWC HAL. 16 | allow hal_drm_widevine qdisplay_service:service_manager { find }; 17 | binder_call(hal_drm_widevine, hal_graphics_composer) 18 | 19 | allow hal_drm_widevine hal_allocator_server:fd use; 20 | 21 | allow hal_drm_widevine mediadrm_vendor_data_file:dir create_dir_perms; 22 | allow hal_drm_widevine mediadrm_vendor_data_file:file create_file_perms; 23 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_fingerprint_default.te: -------------------------------------------------------------------------------- 1 | allow hal_fingerprint_default sysfs_fingerprint:dir r_dir_perms; 2 | allow hal_fingerprint_default sysfs_fingerprint:file rw_file_perms; 3 | allow hal_fingerprint_default sysfs_msm_subsys:dir search; 4 | allow hal_fingerprint_default sysfs_msm_subsys:file r_file_perms; 5 | allow hal_fingerprint_default tee_device:file rw_file_perms; 6 | allow hal_fingerprint_default tee_device:chr_file rw_file_perms; 7 | allow hal_fingerprint_default uhid_device:chr_file rw_file_perms; 8 | 9 | # TODO(b/36644492): Remove data_between_core_and_vendor_violators once 10 | # hal_fingerprint no longer directly accesses fingerprintd_data_file. 11 | typeattribute hal_fingerprint_default data_between_core_and_vendor_violators; 12 | # access to /data/system/users/[0-9]+/fpdata 13 | allow hal_fingerprint_default fingerprintd_data_file:file create_file_perms; 14 | allow hal_fingerprint_default fingerprintd_data_file:dir rw_dir_perms; 15 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_gatekeeper.te: -------------------------------------------------------------------------------- 1 | set_prop(hal_gatekeeper, keymaster_prop) 2 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_gatekeeper_qti.te: -------------------------------------------------------------------------------- 1 | type hal_gatekeeper_qti, domain; 2 | hal_server_domain(hal_gatekeeper_qti, hal_gatekeeper) 3 | 4 | type hal_gatekeeper_qti_exec, exec_type, vendor_file_type, file_type; 5 | init_daemon_domain(hal_gatekeeper_qti) 6 | 7 | dontaudit hal_gatekeeper_qti firmware_file:dir search; 8 | 9 | get_prop(hal_gatekeeper_qti, tee_listener_prop) 10 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_graphics_allocator_default.te: -------------------------------------------------------------------------------- 1 | dontaudit hal_graphics_allocator_default kernel:system module_request; 2 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_health_default.te: -------------------------------------------------------------------------------- 1 | r_dir_file(hal_health_default, sysfs_msm_subsys) 2 | 3 | allow hal_health_default debugfs_ufs:dir search; 4 | allow hal_health_default sysfs_scsi_devices_0000:dir search; 5 | allow hal_health_default debugfs_ufs:file { getattr open read }; 6 | allow hal_health_default sysfs_scsi_devices_0000:file { getattr open read }; 7 | 8 | allow hal_health_default persist_battery_file:file create_file_perms; 9 | allow hal_health_default persist_battery_file:dir rw_dir_perms; 10 | allow hal_health_default persist_file:dir search; 11 | allow hal_health_default sysfs_batteryinfo:file rw_file_perms; 12 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_imsrtp.te: -------------------------------------------------------------------------------- 1 | #ims rtp service 2 | type hal_imsrtp, domain; 3 | type hal_imsrtp_exec, exec_type, vendor_file_type, file_type; 4 | 5 | # Started by init 6 | init_daemon_domain(hal_imsrtp) 7 | net_domain(hal_imsrtp) 8 | 9 | hwbinder_use(hal_imsrtp) 10 | get_prop(hal_imsrtp, hwservicemanager_prop) 11 | add_hwservice(hal_imsrtp, hal_imsrtp_hwservice) 12 | 13 | allow hal_imsrtp self:socket create_socket_perms; 14 | unix_socket_connect(hal_imsrtp, ims, ims) 15 | 16 | allow hal_imsrtp sysfs_timestamp_switch:file r_file_perms; 17 | 18 | # ioctlcmd=c302 19 | allowxperm hal_imsrtp self:socket ioctl msm_sock_ipc_ioctls; 20 | 21 | allow hal_imsrtp self:capability net_bind_service; 22 | 23 | allow hal_imsrtp sysfs_timestamp_switch:file r_file_perms; 24 | allow hal_imsrtp ion_device:chr_file r_file_perms; 25 | allow hal_imsrtp sysfs_data:file r_file_perms; 26 | r_dir_file(hal_imsrtp, sysfs_msm_subsys) 27 | r_dir_file(hal_imsrtp, sysfs_diag) 28 | r_dir_file(hal_imsrtp, sysfs_soc) 29 | 30 | allow hal_imsrtp ion_device:chr_file r_file_perms; 31 | get_prop(hal_imsrtp, ims_prop) 32 | binder_call(hal_imsrtp, radio) 33 | 34 | userdebug_or_eng(` 35 | allow hal_imsrtp diag_device:chr_file rw_file_perms; 36 | ') 37 | dontaudit hal_imsrtp diag_device:chr_file rw_file_perms; 38 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_keymaster_qti.te: -------------------------------------------------------------------------------- 1 | type hal_keymaster_qti, domain; 2 | hal_server_domain(hal_keymaster_qti, hal_keymaster) 3 | 4 | type hal_keymaster_qti_exec, exec_type, vendor_file_type, file_type; 5 | init_daemon_domain(hal_keymaster_qti) 6 | 7 | dontaudit hal_keymaster_qti firmware_file:dir search; 8 | 9 | get_prop(hal_keymaster_qti, tee_listener_prop) 10 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_light.te: -------------------------------------------------------------------------------- 1 | allow hal_light sysfs_graphics:dir search; 2 | allow hal_light sysfs_graphics:file rw_file_perms; 3 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_light_default.te: -------------------------------------------------------------------------------- 1 | allow hal_light_default sysfs_msm_subsys:dir search; 2 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_memtrack_default.te: -------------------------------------------------------------------------------- 1 | allow hal_memtrack_default debugfs_kgsl:file { open read getattr }; 2 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_neuralnetworks_hvx.te: -------------------------------------------------------------------------------- 1 | type hal_neuralnetworks_hvx, domain; 2 | hal_server_domain(hal_neuralnetworks_hvx, hal_neuralnetworks) 3 | 4 | type hal_neuralnetworks_hvx_exec, exec_type, vendor_file_type, file_type; 5 | init_daemon_domain(hal_neuralnetworks_hvx) 6 | 7 | # Allow HVX NN HAL to communicate with hexagon 8 | allow hal_neuralnetworks_hvx ion_device:chr_file { read open ioctl }; 9 | allow hal_neuralnetworks_hvx qdsp_device:chr_file { read open ioctl }; 10 | 11 | # Allow HVX NN HAL to mmap a user-provided fd. 12 | allow hal_neuralnetworks_hvx app_data_file:file { read write getattr }; 13 | allow hal_neuralnetworks_hvx shell_data_file:file { read write getattr }; 14 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_nfc_default.te: -------------------------------------------------------------------------------- 1 | # Data file accesses. 2 | allow hal_nfc_default nfc_vendor_data_file:dir create_dir_perms; 3 | allow hal_nfc_default nfc_vendor_data_file:file create_file_perms; 4 | 5 | dontaudit hal_nfc_default nxpese_hwservice:hwservice_manager find; 6 | dontaudit hal_nfc_default nxpnfc_hwservice:hwservice_manager add; 7 | dontaudit hal_nfc_default persist_nfc_prop:file read; 8 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_oemlock_default.te: -------------------------------------------------------------------------------- 1 | type hal_oemlock_default, domain; 2 | hal_server_domain(hal_oemlock_default, hal_oemlock) 3 | 4 | allow hal_oemlock_default hal_bootctl_socket:sock_file write; 5 | allow hal_oemlock_default hal_bootctl:unix_stream_socket connectto; 6 | 7 | type hal_oemlock_default_exec, exec_type, vendor_file_type, file_type; 8 | init_daemon_domain(hal_oemlock_default) 9 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_power_default.te: -------------------------------------------------------------------------------- 1 | allow hal_power_default sysfs_graphics:dir search; 2 | allow hal_power_default sysfs_graphics:file r_file_perms; 3 | 4 | allow hal_power_default debugfs_rpm:file r_file_perms; 5 | 6 | allow hal_power_default debugfs_wlan:dir r_dir_perms; 7 | allow hal_power_default debugfs_wlan:file r_file_perms; 8 | 9 | allow hal_power_default sysfs_easel:dir search; 10 | allow hal_power_default sysfs_easel:file r_file_perms; 11 | 12 | 13 | # To do powerhint on nodes defined in powerhint.json 14 | allow hal_power_default sysfs_msm_subsys:dir search; 15 | allow hal_power_default sysfs_msm_subsys:file rw_file_perms; 16 | allow hal_power_default sysfs_devices_system_cpu:file rw_file_perms; 17 | allow hal_power_default latency_device:chr_file rw_file_perms; 18 | allow hal_power_default cgroup:dir search; 19 | allow hal_power_default cgroup:file rw_file_perms; 20 | 21 | # To get/set powerhal state property 22 | set_prop(hal_power_default, power_prop) 23 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_rcsservice.te: -------------------------------------------------------------------------------- 1 | type hal_rcsservice, domain; 2 | type hal_rcsservice_exec, exec_type, vendor_file_type, file_type; 3 | 4 | # Started by init 5 | init_daemon_domain(hal_rcsservice) 6 | net_domain(hal_rcsservice) 7 | 8 | get_prop(hal_rcsservice, hwservicemanager_prop) 9 | 10 | # To register imsrcsd to hwBinder 11 | hwbinder_use(hal_rcsservice) 12 | # add IUceSerive Hidl interface 13 | add_hwservice(hal_rcsservice, hal_imsrcsd_hwservice) 14 | 15 | get_prop(hal_rcsservice, hwservicemanager_prop) 16 | 17 | # allow hal to read sysfs file 18 | r_dir_file(hal_rcsservice, sysfs_msm_subsys) 19 | r_dir_file(hal_rcsservice, sysfs_diag) 20 | 21 | allow hal_rcsservice sysfs_timestamp_switch:file r_file_perms; 22 | 23 | unix_socket_connect(hal_rcsservice, ims, ims) 24 | 25 | # imsrcsd to bind with UceShimService.apk 26 | binder_call(hal_rcsservice, dataservice_app) 27 | 28 | # imsrcsd needs read/write access to devpts 29 | allow hal_rcsservice devpts:chr_file rw_file_perms; 30 | 31 | userdebug_or_eng(` 32 | allow hal_rcsservice diag_device:chr_file rw_file_perms; 33 | ') 34 | dontaudit hal_rcsservice diag_device:chr_file rw_file_perms; 35 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_sensors_default.te: -------------------------------------------------------------------------------- 1 | # read factory calibration and sensor configuration data 2 | allow hal_sensors_default persist_file:dir search; 3 | r_dir_file(hal_sensors_default, persist_sensors_file) 4 | 5 | # interact with the sensors low power island (SLPI) CPU 6 | allow hal_sensors_default self:socket { create ioctl read write }; 7 | allowxperm hal_sensors_default self:socket ioctl msm_sock_ipc_ioctls; 8 | r_dir_file(hal_sensors_default, sysfs_msm_subsys); 9 | 10 | allow hal_sensors_default qdsp_device:chr_file r_file_perms; 11 | 12 | userdebug_or_eng(` 13 | r_dir_file(hal_sensors_default, sysfs_diag) 14 | allow hal_sensors_default sysfs_timestamp_switch:file r_file_perms; 15 | allow hal_sensors_default diag_device:chr_file rw_file_perms; 16 | ') 17 | dontaudit hal_sensors_default diag_device:chr_file rw_file_perms; 18 | 19 | # Allow communication with CHRE daemon via socket 20 | allow hal_sensors_default chre:unix_stream_socket connectto; 21 | allow hal_sensors_default chre_socket:sock_file write; 22 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_tetheroffload_default.te: -------------------------------------------------------------------------------- 1 | # associate netdomain to use for accessing internet sockets 2 | net_domain(hal_tetheroffload_default) 3 | 4 | userdebug_or_eng(` 5 | # Allow using the logging file between ipacm and ipacm-diag 6 | unix_socket_send(hal_tetheroffload_default, ipacm, hal_tetheroffload_default) 7 | ') 8 | # Allow operations with /dev/ipa, /dev/wwan_ioctl and /dev/ipaNatTable 9 | allow hal_tetheroffload_default ipa_dev:chr_file rw_file_perms; 10 | 11 | # Allow receiving NETLINK messages 12 | allow hal_tetheroffload_default self:{ 13 | netlink_socket 14 | netlink_generic_socket 15 | } create_socket_perms_no_ioctl; 16 | 17 | # Allow creating and modifying the PID file 18 | allow hal_tetheroffload_default ipa_vendor_data_file:dir w_dir_perms; 19 | allow hal_tetheroffload_default ipa_vendor_data_file:file create_file_perms; 20 | 21 | # Register to hwbinder service 22 | add_hwservice(hal_tetheroffload_default, hal_tetheroffload_hwservice) 23 | hwbinder_use(hal_tetheroffload_default) 24 | get_prop(hal_tetheroffload_default, hwservicemanager_prop) 25 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_usb_impl.te: -------------------------------------------------------------------------------- 1 | type hal_usb_impl, domain; 2 | hal_server_domain(hal_usb_impl, hal_usb) 3 | hal_server_domain(hal_usb_impl, hal_usb_gadget) 4 | 5 | type hal_usb_impl_exec, exec_type, vendor_file_type, file_type; 6 | init_daemon_domain(hal_usb_impl) 7 | 8 | allow hal_usb_impl sysfs_msm_subsys:dir search; 9 | allow hal_usb_impl sysfs_msm_subsys:file r_file_perms; 10 | r_dir_file(hal_usb_impl, sysfs_usb_c) 11 | allow hal_usb_impl sysfs_usb_c:file w_file_perms; 12 | allow hal_usb_impl sysfs_usb_device:dir r_dir_perms; 13 | allow hal_usb_impl sysfs_usb_device:file rw_file_perms; 14 | allow hal_usb_impl configfs:file create_file_perms; 15 | 16 | set_prop(hal_usb_impl, vendor_usb_config_prop) 17 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_vibrator_default.te: -------------------------------------------------------------------------------- 1 | r_dir_file(hal_vibrator_default, sysfs_leds) 2 | allow hal_vibrator_default sysfs_leds:file w_file_perms; 3 | allow hal_vibrator_default sysfs_msm_subsys:file rw_file_perms; 4 | allow hal_vibrator_default sysfs_msm_subsys:dir search; 5 | 6 | # read-only permission to obtain the calibration data 7 | r_dir_file(hal_vibrator_default, persist_haptics_file) 8 | allow hal_vibrator_default persist_file:dir search; 9 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_vr.te: -------------------------------------------------------------------------------- 1 | # interact with thermal_config 2 | set_prop(hal_vr, thermal_prop) 3 | 4 | # Access to touch vrmode node 5 | allow hal_vr sysfs_touch:dir r_dir_perms; 6 | allow hal_vr sysfs_touch:file rw_file_perms; 7 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_wifi_default.te: -------------------------------------------------------------------------------- 1 | # Allow wifi hal access to LOWI 2 | allow hal_wifi_default location:unix_stream_socket connectto; 3 | allow hal_wifi_default location_data_file:sock_file write; 4 | 5 | # write to files owned by location daemon 6 | allow hal_wifi_default location_data_file:dir create_dir_perms; 7 | allow hal_wifi_default location_data_file:{ file fifo_file } create_file_perms; 8 | 9 | allow hal_wifi_default wlan_device:chr_file w_file_perms; 10 | 11 | # Allow wifi hal to read debug info from the driver. 12 | r_dir_file(hal_wifi_default, proc_wifi_dbg) 13 | 14 | dontaudit hal_wifi_default kernel:system module_request; 15 | dontaudit hal_wifi_default self:capability sys_module; 16 | 17 | userdebug_or_eng(` 18 | # debugfs entries are only needed in user-debug or eng builds 19 | 20 | # Allow wifi hal to access wlan debugfs files and directories 21 | allow hal_wifi_default debugfs_wlan:dir r_dir_perms; 22 | ') -------------------------------------------------------------------------------- /sepolicy/vendor/hal_wifi_offload_default.te: -------------------------------------------------------------------------------- 1 | # Allow Wifi Offload HAL to communicate with daemon via socket 2 | allow hal_wifi_offload_default chre:unix_stream_socket connectto; 3 | allow hal_wifi_offload_default chre_socket:sock_file write; 4 | -------------------------------------------------------------------------------- /sepolicy/vendor/hal_wifi_supplicant_default.te: -------------------------------------------------------------------------------- 1 | # TODO(b/36657258): Remove data_between_core_and_vendor_violators once 2 | # hal_wifi_supplicant no longer directly accesses wifi_data_file . 3 | typeattribute hal_wifi_supplicant_default data_between_core_and_vendor_violators; 4 | 5 | allow hal_wifi_supplicant_default wifi_data_file:dir create_dir_perms; 6 | allow hal_wifi_supplicant_default wifi_data_file:file create_file_perms; 7 | -------------------------------------------------------------------------------- /sepolicy/vendor/hardware_info_app.te: -------------------------------------------------------------------------------- 1 | type hardware_info_app, domain; 2 | 3 | app_domain(hardware_info_app) 4 | 5 | # App 6 | allow hardware_info_app app_data_file:file execute; 7 | 8 | # Services 9 | allow hardware_info_app app_api_service:service_manager find; 10 | 11 | # Shell 12 | allow hardware_info_app shell_data_file:dir search; 13 | allow hardware_info_app shell_data_file:file { open read }; 14 | 15 | # SysFS 16 | allow hardware_info_app sysfs_batteryinfo:dir search; 17 | allow hardware_info_app sysfs_batteryinfo:file { getattr open read }; 18 | allow hardware_info_app sysfs_camera:dir search; 19 | allow hardware_info_app sysfs_camera:file { getattr open read }; 20 | allow hardware_info_app sysfs_msm_subsys:dir search; 21 | allow hardware_info_app sysfs_scsi_devices_0000:dir search; 22 | allow hardware_info_app sysfs_scsi_devices_0000:file { getattr open read }; 23 | allow hardware_info_app sysfs_soc:dir search; 24 | allow hardware_info_app sysfs_soc:file { getattr open read }; 25 | 26 | # DebugFS 27 | allow hardware_info_app debugfs_ufs:dir search; 28 | allow hardware_info_app debugfs_ufs:file r_file_perms; 29 | -------------------------------------------------------------------------------- /sepolicy/vendor/healthd.te: -------------------------------------------------------------------------------- 1 | typeattribute healthd system_writes_vendor_properties_violators; 2 | set_prop(healthd, public_vendor_system_prop) 3 | -------------------------------------------------------------------------------- /sepolicy/vendor/hwservice.te: -------------------------------------------------------------------------------- 1 | type vnd_ims_radio_hwservice, hwservice_manager_type; 2 | type vnd_qcrilhook_hwservice, hwservice_manager_type; 3 | type vnd_atcmdfwd_hwservice, hwservice_manager_type; 4 | type hal_imsrtp_hwservice, hwservice_manager_type; 5 | type hal_ipacm_hwservice, hwservice_manager_type; 6 | type nxpnfc_hwservice, hwservice_manager_type; 7 | type nxpese_hwservice, hwservice_manager_type; 8 | -------------------------------------------------------------------------------- /sepolicy/vendor/hwservice_contexts: -------------------------------------------------------------------------------- 1 | com.qualcomm.qti.ims.radio::IImsRadio u:object_r:vnd_ims_radio_hwservice:s0 2 | com.qualcomm.qti.qcril.qcrilhook::IQtiOemHook u:object_r:vnd_qcrilhook_hwservice:s0 3 | com.qualcomm.qti.uceservice::IUceService u:object_r:hal_imsrcsd_hwservice:s0 4 | vendor.qti.atcmdfwd::IAtCmdFwd u:object_r:vnd_atcmdfwd_hwservice:s0 5 | vendor.qti.qcril.am::IQcRilAudio u:object_r:vnd_qcrilhook_hwservice:s0 6 | com.qualcomm.qti.imsrtpservice::IRTPService u:object_r:hal_imsrtp_hwservice:s0 7 | com.quicinc.cne.api::IApiService u:object_r:hal_cne_hwservice:s0 8 | com.quicinc.cne.server::IServer u:object_r:hal_cne_hwservice:s0 9 | vendor.nxp.nxpnfc::INxpNfc u:object_r:nxpnfc_hwservice:s0 10 | vendor.nxp.nxpese::INxpEse u:object_r:nxpese_hwservice:s0 11 | -------------------------------------------------------------------------------- /sepolicy/vendor/ims.te: -------------------------------------------------------------------------------- 1 | type ims, domain; 2 | type ims_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(ims) 5 | net_domain(ims) 6 | 7 | get_prop(ims, hwservicemanager_prop) 8 | set_prop(ims, ims_prop) 9 | 10 | unix_socket_connect(ims, netmgrd, netmgrd) 11 | 12 | allow ims sysfs_soc:dir search; 13 | allow ims sysfs_soc:file r_file_perms; 14 | allow ims sysfs_timestamp_switch:file r_file_perms; 15 | 16 | allow ims self:capability net_bind_service; 17 | 18 | allow ims ion_device:chr_file r_file_perms; 19 | 20 | unix_socket_connect(ims, cnd, cnd) 21 | 22 | allow ims self:socket create_socket_perms; 23 | allow ims ims_socket:sock_file write; 24 | allow ims self:netlink_generic_socket create_socket_perms_no_ioctl; 25 | allow ims netmgrd_socket:dir search; 26 | allow ims netmgrd_socket:sock_file w_file_perms; 27 | allowxperm ims self:socket ioctl msm_sock_ipc_ioctls; 28 | allowxperm ims self:udp_socket ioctl RMNET_IOCTL_EXTENDED; 29 | 30 | r_dir_file(ims, sysfs_msm_subsys) 31 | r_dir_file(ims, sysfs_diag) 32 | 33 | hwbinder_use(ims) 34 | allow ims hal_cne_hwservice:hwservice_manager find; 35 | binder_call(ims, cnd) 36 | 37 | userdebug_or_eng(` 38 | allow ims diag_device:chr_file rw_file_perms; 39 | ') 40 | dontaudit ims diag_device:chr_file rw_file_perms; 41 | -------------------------------------------------------------------------------- /sepolicy/vendor/init-devstart-sh.te: -------------------------------------------------------------------------------- 1 | type init-qcom-devstart-sh, domain; 2 | type init-qcom-devstart-sh_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(init-qcom-devstart-sh) 5 | 6 | allow init-qcom-devstart-sh vendor_shell_exec:file rx_file_perms; 7 | allow init-qcom-devstart-sh vendor_toolbox_exec:file rx_file_perms; 8 | 9 | # execute grep 10 | allow init-qcom-devstart-sh vendor_file:file rx_file_perms; 11 | 12 | # Set the sys.qcom.devup property 13 | set_prop(init-qcom-devstart-sh, public_vendor_system_prop) 14 | 15 | # Set boot_adsp and boot_slpi to 1 16 | allow init-qcom-devstart-sh sysfs_msm_subsys:file w_file_perms; 17 | -------------------------------------------------------------------------------- /sepolicy/vendor/init-insmod-sh.te: -------------------------------------------------------------------------------- 1 | type init-insmod-sh, domain; 2 | type init-insmod-sh_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(init-insmod-sh) 5 | 6 | allow init-insmod-sh vendor_shell_exec:file rx_file_perms; 7 | allow init-insmod-sh vendor_toolbox_exec:file rx_file_perms; 8 | 9 | # Set the sys.touch.modules.ready property 10 | set_prop(init-insmod-sh, public_vendor_system_prop) 11 | 12 | # Allow insmod 13 | allow init-insmod-sh self:capability sys_module; 14 | allow init-insmod-sh system_file:system module_load; 15 | 16 | allow init-insmod-sh vendor_file:system module_load; 17 | -------------------------------------------------------------------------------- /sepolicy/vendor/init-ipastart-sh.te: -------------------------------------------------------------------------------- 1 | type init-qcom-ipastart-sh, domain; 2 | type init-qcom-ipastart-sh_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(init-qcom-ipastart-sh) 5 | 6 | allow init-qcom-ipastart-sh vendor_shell_exec:file rx_file_perms; 7 | allow init-qcom-ipastart-sh vendor_toolbox_exec:file rx_file_perms; 8 | 9 | # Set /dev/ipa to 1 10 | allow init-qcom-ipastart-sh ipa_dev:chr_file w_file_perms; 11 | -------------------------------------------------------------------------------- /sepolicy/vendor/init-wlan-sh.te: -------------------------------------------------------------------------------- 1 | type init-qcom-wlan-sh, domain; 2 | type init-qcom-wlan-sh_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(init-qcom-wlan-sh) 5 | 6 | allow init-qcom-wlan-sh vendor_shell_exec:file rx_file_perms; 7 | allow init-qcom-wlan-sh vendor_toolbox_exec:file rx_file_perms; 8 | 9 | # Set the sys.wlan.driver.version and sys.wlan.firmware.version property 10 | set_prop(init-qcom-wlan-sh, vendor_wifi_version) 11 | 12 | # /sys/kernel/wifi/wlan/driver_version and /sys/kernel/wifi/wlan/fw/0/version 13 | allow init-qcom-wlan-sh sysfs_msm_wlan:dir r_dir_perms; 14 | allow init-qcom-wlan-sh sysfs_msm_wlan:file r_file_perms; 15 | -------------------------------------------------------------------------------- /sepolicy/vendor/init.te: -------------------------------------------------------------------------------- 1 | # symlink /sdcard to backing block 2 | allow init tmpfs:lnk_file create; 3 | allow init configfs:lnk_file create; 4 | 5 | allow init firmware_file:dir mounton; 6 | allow init configfs:file w_file_perms; 7 | allow init debugfs_clk:file w_file_perms; 8 | 9 | allow init tty_device:chr_file rw_file_perms; 10 | 11 | allow init persist_file:dir mounton; 12 | 13 | allow init ab_block_device:lnk_file relabelto; 14 | allow init boot_block_device:lnk_file relabelto; 15 | allow init persist_block_device:lnk_file relabelto; 16 | 17 | dontaudit init kernel:system module_request; 18 | 19 | # b/70518189 vDSO experiments 20 | allow init sysfs_vdso:file w_file_perms; 21 | -------------------------------------------------------------------------------- /sepolicy/vendor/init_elabel.te: -------------------------------------------------------------------------------- 1 | # /system/bin/init.elabel.sh 2 | # 3 | # write data from /persist/elabel to /data/misc/elabel for use by 4 | # settings app 5 | # 6 | allow init_elabel persist_file:dir {search getattr}; 7 | allow init_elabel persist_elabel_file:dir r_dir_perms; 8 | allow init_elabel persist_elabel_file:file r_file_perms; 9 | -------------------------------------------------------------------------------- /sepolicy/vendor/init_ese.te: -------------------------------------------------------------------------------- 1 | # /vendor/bin/ese_load init called shell script. 2 | type init_ese, domain; 3 | type init_ese_exec, exec_type, vendor_file_type, file_type; 4 | 5 | init_daemon_domain(init_ese) 6 | 7 | # Shell script exec (toolbox) 8 | allow init_ese vendor_shell_exec:file r_file_perms; 9 | allow init_ese vendor_toolbox_exec:file rx_file_perms; 10 | 11 | # eSE tools 12 | allow init_ese esed_exec:file rx_file_perms; 13 | 14 | # eSE device and data dirs 15 | allow init_ese pn81a_device:chr_file rw_file_perms; 16 | allow init_ese ese_vendor_data_file:dir create_dir_perms; 17 | allow init_ese ese_vendor_data_file:file create_file_perms; 18 | 19 | allow init_ese vendor_file:file execute_no_trans; 20 | -------------------------------------------------------------------------------- /sepolicy/vendor/init_power.te: -------------------------------------------------------------------------------- 1 | type init_power, domain; 2 | type init_power_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(init_power) 5 | 6 | set_prop(init_power, post_boot_prop) 7 | 8 | allow init_power vendor_shell_exec:file rx_file_perms; 9 | allow init_power vendor_toolbox_exec:file rx_file_perms; 10 | 11 | r_dir_file(init_power, sysfs_msm_subsys) 12 | 13 | allow init_power sysfs_msm_subsys:file write; 14 | allow init_power sysfs_thermal:dir search; 15 | allow init_power sysfs_thermal:file w_file_perms; 16 | allow init_power sysfs_devices_system_cpu:file w_file_perms; 17 | allow init_power sysfs_soc:file r_file_perms; 18 | allow init_power sysfs_soc:dir search; 19 | allow init_power sysfs_console_suspend:file w_file_perms; 20 | -------------------------------------------------------------------------------- /sepolicy/vendor/init_radio.te: -------------------------------------------------------------------------------- 1 | # /vendor/bin/init.radio.sh 2 | type init_radio, domain; 3 | type init_radio_exec, exec_type, vendor_file_type, file_type; 4 | 5 | init_daemon_domain(init_radio) 6 | 7 | allow init_radio vendor_shell_exec:file rx_file_perms; 8 | allow init_radio vendor_toolbox_exec:file rx_file_perms; 9 | 10 | allow init_radio radio_vendor_data_file:dir create_dir_perms; 11 | allow init_radio radio_vendor_data_file:file create_file_perms; 12 | -------------------------------------------------------------------------------- /sepolicy/vendor/ioctl_defines: -------------------------------------------------------------------------------- 1 | # socket ioctls 2 | define(`RMNET_IOCTL_EXTENDED', `0x000089FD') 3 | 4 | # socket ioctls defined in the kernel in include/uapi/linux/msm_ipc.h 5 | define(`IPC_ROUTER_IOCTL_GET_VERSION', `0x0000c300') 6 | define(`IPC_ROUTER_IOCTL_GET_MTU', `0x0000c301') 7 | define(`IPC_ROUTER_IOCTL_LOOKUP_SERVER', `0x0000c302') 8 | define(`IPC_ROUTER_IOCTL_GET_CURR_PKT_SIZE', `0x0000c303') 9 | define(`IPC_ROUTER_IOCTL_BIND_CONTROL_PORT', `0x0000c304') 10 | define(`IPC_ROUTER_IOCTL_CONFIG_SEC_RULES', `0x0000c305') 11 | -------------------------------------------------------------------------------- /sepolicy/vendor/ioctl_macros: -------------------------------------------------------------------------------- 1 | define(`msm_sock_ipc_ioctls', `{ 2 | IPC_ROUTER_IOCTL_GET_VERSION 3 | IPC_ROUTER_IOCTL_GET_MTU 4 | IPC_ROUTER_IOCTL_LOOKUP_SERVER 5 | IPC_ROUTER_IOCTL_GET_CURR_PKT_SIZE 6 | IPC_ROUTER_IOCTL_BIND_CONTROL_PORT 7 | IPC_ROUTER_IOCTL_CONFIG_SEC_RULES 8 | }') 9 | -------------------------------------------------------------------------------- /sepolicy/vendor/irqbalance.te: -------------------------------------------------------------------------------- 1 | type irqbalance, domain; 2 | type irqbalance_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(irqbalance); 5 | 6 | allow irqbalance sysfs_devices_system_cpu:file rw_file_perms; 7 | allow irqbalance proc_irq:dir r_dir_perms; 8 | allow irqbalance proc_irq:file rw_file_perms; 9 | allow irqbalance sysfs_irq:file r_file_perms; 10 | 11 | allow irqbalance proc_stat:file r_file_perms; 12 | allow irqbalance proc_interrupts:file r_file_perms; 13 | 14 | r_dir_file(irqbalance, proc) 15 | -------------------------------------------------------------------------------- /sepolicy/vendor/irsc_util.te: -------------------------------------------------------------------------------- 1 | type irsc_util, domain; 2 | type irsc_util_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(irsc_util) 5 | 6 | allow irsc_util self:socket create_socket_perms; 7 | allowxperm irsc_util self:socket ioctl msm_sock_ipc_ioctls; 8 | -------------------------------------------------------------------------------- /sepolicy/vendor/kernel.te: -------------------------------------------------------------------------------- 1 | # for diag over socket 2 | userdebug_or_eng(` 3 | allow kernel self:socket create; 4 | ') 5 | 6 | dontaudit kernel kernel:system module_request; 7 | 8 | # Read FDs from /vendor/firmware 9 | allow kernel vendor_file:file r_file_perms; 10 | 11 | allow kernel debugfs_ipc:dir search; 12 | allow kernel persist_file:dir search; 13 | 14 | allow kernel debugfs_wlan:dir search; 15 | -------------------------------------------------------------------------------- /sepolicy/vendor/keys.conf: -------------------------------------------------------------------------------- 1 | [@TANGO] 2 | ALL : device/google/wahoo/sepolicy/vendor/certs/tango_release.x509.pem 3 | 4 | [@TANGO_DEV] 5 | ENG : device/google/wahoo/sepolicy/vendor/certs/tango.x509.pem 6 | USERDEBUG : device/google/wahoo/sepolicy/vendor/certs/tango.x509.pem 7 | USER : device/google/wahoo/sepolicy/vendor/certs/tango_userdev.x509.pem 8 | 9 | [@GOOGLE] 10 | ALL : device/google/wahoo/sepolicy/vendor/certs/app.x509.pem 11 | 12 | [@GOOGLEPULSE] 13 | ALL : device/google/wahoo/sepolicy/vendor/certs/pulse-release.x509.pem 14 | 15 | [@EASEL] 16 | ALL : device/google/wahoo/sepolicy/vendor/certs/easel.x509.pem 17 | 18 | [@ARCORE] 19 | ALL : device/google/wahoo/sepolicy/vendor/certs/arcore_release.x509.pem 20 | 21 | [@ARCORE_DEV] 22 | ENG : device/google/wahoo/sepolicy/vendor/certs/arcore.x509.pem 23 | USERDEBUG : device/google/wahoo/sepolicy/vendor/certs/arcore.x509.pem 24 | USER : device/google/wahoo/sepolicy/vendor/certs/arcore_userdev.x509.pem 25 | -------------------------------------------------------------------------------- /sepolicy/vendor/logger_app.te: -------------------------------------------------------------------------------- 1 | type logger_app, domain; 2 | 3 | userdebug_or_eng(` 4 | app_domain(logger_app) 5 | net_domain(logger_app) 6 | 7 | allow logger_app app_api_service:service_manager find; 8 | allow logger_app surfaceflinger_service:service_manager find; 9 | 10 | allow logger_app diag_device:chr_file rw_file_perms; 11 | allow logger_app qlogd_exec:file rx_file_perms; 12 | 13 | allow logger_app radio_vendor_data_file:file create_file_perms; 14 | allow logger_app radio_vendor_data_file:dir create_dir_perms; 15 | 16 | allow logger_app cnss_vendor_data_file:dir create_dir_perms; 17 | allow logger_app cnss_vendor_data_file:file create_file_perms; 18 | 19 | set_prop(logger_app, cnss_diag_prop) 20 | set_prop(logger_app, modem_diag_prop) 21 | set_prop(logger_app, bluetooth_log_prop) 22 | 23 | get_prop(logger_app, vendor_usb_config_prop) 24 | ') 25 | -------------------------------------------------------------------------------- /sepolicy/vendor/mds_app.te: -------------------------------------------------------------------------------- 1 | type mds_app, domain; 2 | 3 | app_domain(mds_app) 4 | 5 | userdebug_or_eng(` 6 | net_domain(mds_app) 7 | 8 | allow mds_app app_api_service:service_manager find; 9 | allow mds_app surfaceflinger_service:service_manager find; 10 | 11 | allow mds_app diag_device:chr_file rw_file_perms; 12 | 13 | set_prop(mds_app, modem_diag_prop) 14 | ') 15 | -------------------------------------------------------------------------------- /sepolicy/vendor/mediacodec.te: -------------------------------------------------------------------------------- 1 | # VIDEO_DECODE_PLAYBACK_HINT is for interactive governor in HMP kernels 2 | # Do not grant the access 3 | dontaudit mediacodec perfd:unix_stream_socket connectto; 4 | dontaudit mediacodec perfd_socket:sock_file write; 5 | 6 | allow mediacodec sysfs_soc:file r_file_perms; 7 | allow mediacodec sysfs_soc:dir search; 8 | 9 | allow mediacodec system_file:dir r_dir_perms; 10 | 11 | userdebug_or_eng(` 12 | allow mediacodec dumpstate:fd use; 13 | ') 14 | -------------------------------------------------------------------------------- /sepolicy/vendor/mediaextractor.te: -------------------------------------------------------------------------------- 1 | userdebug_or_eng(` 2 | allow mediaextractor dumpstate:fifo_file append; 3 | ') 4 | -------------------------------------------------------------------------------- /sepolicy/vendor/move-widevine-data-sh.te: -------------------------------------------------------------------------------- 1 | type move-widevine-data-sh, domain, coredomain; 2 | type move-widevine-data-sh_exec, exec_type, file_type; 3 | init_daemon_domain(move-widevine-data-sh); 4 | 5 | typeattribute move-widevine-data-sh data_between_core_and_vendor_violators; 6 | 7 | allow move-widevine-data-sh shell_exec:file rx_file_perms; 8 | allow move-widevine-data-sh toolbox_exec:file rx_file_perms; 9 | 10 | allow move-widevine-data-sh file_contexts_file:file { read getattr open }; 11 | 12 | allow move-widevine-data-sh media_data_file:file { getattr setattr relabelfrom }; 13 | allow move-widevine-data-sh media_data_file:dir { reparent rename rmdir setattr rw_dir_perms relabelfrom }; 14 | 15 | allow move-widevine-data-sh mediadrm_vendor_data_file:dir { create_dir_perms relabelto }; 16 | 17 | # for writing files_moved so we only execute the move once 18 | allow move-widevine-data-sh mediadrm_vendor_data_file:file { create open write getattr relabelto }; 19 | -------------------------------------------------------------------------------- /sepolicy/vendor/netd.te: -------------------------------------------------------------------------------- 1 | dontaudit netd kernel:system module_request; 2 | dontaudit netd self:capability sys_module; 3 | -------------------------------------------------------------------------------- /sepolicy/vendor/netutils_wrapper.te: -------------------------------------------------------------------------------- 1 | # For netutils to be able to write their stdout stderr to the pipes opened by netmgrd 2 | allow netutils_wrapper netmgrd:fd use; 3 | allow netutils_wrapper netmgrd:fifo_file { getattr read write append }; 4 | 5 | dontaudit netutils_wrapper netmgrd:socket { read write }; 6 | dontaudit netutils_wrapper netmgrd:unix_stream_socket { read write }; 7 | dontaudit netutils_wrapper netmgrd:netlink_socket { getattr read write append }; 8 | dontaudit netutils_wrapper kernel:system module_request; 9 | dontaudit netutils_wrapper self:capability sys_module; 10 | 11 | userdebug_or_eng(` 12 | allow netutils_wrapper diag_device:chr_file rw_file_perms; 13 | ') 14 | dontaudit netutils_wrapper diag_device:chr_file rw_file_perms; 15 | -------------------------------------------------------------------------------- /sepolicy/vendor/pd_services.te: -------------------------------------------------------------------------------- 1 | type pd_mapper, domain; 2 | 3 | type pd_mapper_exec, exec_type, vendor_file_type, file_type; 4 | init_daemon_domain(pd_mapper); 5 | 6 | allow pd_mapper self:capability { setgid setpcap setuid net_bind_service }; 7 | 8 | allow pd_mapper firmware_file:dir r_dir_perms; 9 | allow pd_mapper firmware_file:file r_file_perms; 10 | 11 | allow pd_mapper self:socket create_socket_perms; 12 | allowxperm pd_mapper self:socket ioctl IPC_ROUTER_IOCTL_BIND_CONTROL_PORT; 13 | 14 | r_dir_file(pd_mapper, sysfs_msm_subsys) 15 | -------------------------------------------------------------------------------- /sepolicy/vendor/per_mgr.te: -------------------------------------------------------------------------------- 1 | # Policy for pm-service and pm-proxy 2 | type per_mgr, domain; 3 | type per_mgr_exec, exec_type, vendor_file_type, file_type; 4 | 5 | init_daemon_domain(per_mgr); 6 | 7 | add_service(per_mgr, per_mgr_service) 8 | 9 | vndbinder_use(per_mgr) 10 | binder_call(per_mgr, hal_gnss) 11 | binder_call(per_mgr, per_proxy) 12 | binder_call(per_mgr, wcnss_service) 13 | binder_call(per_mgr, rild) 14 | 15 | allow per_mgr self:capability net_bind_service; 16 | 17 | allow per_mgr firmware_file:file r_file_perms; 18 | allow per_mgr firmware_file:dir search; 19 | 20 | allow per_mgr self:socket create_socket_perms; 21 | allowxperm per_mgr self:socket ioctl msm_sock_ipc_ioctls; 22 | allow per_mgr ssr_device:chr_file { open read }; 23 | 24 | r_dir_file(per_mgr, sysfs_msm_subsys) 25 | r_dir_file(per_mgr, sysfs) 26 | -------------------------------------------------------------------------------- /sepolicy/vendor/per_proxy.te: -------------------------------------------------------------------------------- 1 | # Policy for /system/bin/pm-proxy 2 | type per_proxy, domain; 3 | type per_proxy_exec, exec_type, vendor_file_type, file_type; 4 | 5 | init_daemon_domain(per_proxy) 6 | 7 | allow per_proxy per_mgr_service:service_manager find; 8 | r_dir_file(per_proxy, sysfs_type) 9 | 10 | vndbinder_use(per_proxy) 11 | binder_call(per_proxy, per_mgr) 12 | -------------------------------------------------------------------------------- /sepolicy/vendor/perfd.te: -------------------------------------------------------------------------------- 1 | type perfd, domain; 2 | type perfd_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(perfd) 5 | -------------------------------------------------------------------------------- /sepolicy/vendor/platform_app.te: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/sepolicy/vendor/platform_app.te -------------------------------------------------------------------------------- /sepolicy/vendor/port-bridge.te: -------------------------------------------------------------------------------- 1 | type port-bridge, domain; 2 | type port-bridge_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(port-bridge) 5 | 6 | r_dir_file(port-bridge, sysfs_msm_subsys) 7 | 8 | allow port-bridge sysfs_soc:dir search; 9 | allow port-bridge sysfs_soc:file r_file_perms; 10 | 11 | allow port-bridge at_device:chr_file rw_file_perms; 12 | -------------------------------------------------------------------------------- /sepolicy/vendor/property.te: -------------------------------------------------------------------------------- 1 | type camera_prop, property_type; 2 | type cnd_prop, property_type; 3 | type ims_prop, property_type; 4 | type keymaster_prop, property_type; 5 | type net_rmnet_prop, property_type; 6 | type vendor_ramdump_prop, property_type; 7 | type post_boot_prop, property_type; 8 | type public_vendor_default_prop, property_type; 9 | type public_vendor_system_prop, property_type; 10 | type vendor_ssr_prop, property_type; 11 | type cnss_diag_prop, property_type; 12 | type tee_listener_prop, property_type; 13 | type wc_prop, property_type; 14 | type thermal_prop, property_type; 15 | type modem_diag_prop, property_type; 16 | type sys_time_prop, property_type; 17 | type atfwd_start_prop, property_type; 18 | type bluetooth_log_prop, property_type; 19 | type power_prop, property_type; 20 | type vendor_bluetooth_prop, property_type; 21 | type vendor_net_radio_prop, property_type; 22 | type vendor_radio_prop, property_type; 23 | type vendor_wifi_version, property_type; 24 | type vendor_usb_config_prop, property_type; 25 | type vendor_charge_prop, property_type; 26 | type persist_nfc_prop, property_type; 27 | -------------------------------------------------------------------------------- /sepolicy/vendor/qlogd.te: -------------------------------------------------------------------------------- 1 | type qlogd, domain; 2 | type qlogd_exec, exec_type, vendor_file_type, file_type; 3 | 4 | userdebug_or_eng(` 5 | # make transition from init to its domain 6 | init_daemon_domain(qlogd) 7 | 8 | allow qlogd diag_device:chr_file rw_file_perms; 9 | allow qlogd qlogd_exec:file rx_file_perms; 10 | 11 | allow qlogd radio_vendor_data_file:file create_file_perms; 12 | allow qlogd radio_vendor_data_file:dir create_dir_perms; 13 | 14 | set_prop(qlogd, modem_diag_prop) 15 | ') -------------------------------------------------------------------------------- /sepolicy/vendor/qmuxd.te: -------------------------------------------------------------------------------- 1 | type qmuxd, domain; 2 | type qmuxd_exec, exec_type, vendor_file_type, file_type; 3 | 4 | net_domain(qmuxd) 5 | init_daemon_domain(qmuxd) 6 | -------------------------------------------------------------------------------- /sepolicy/vendor/qtelephony.te: -------------------------------------------------------------------------------- 1 | # Qualcomm telephony apps, such as AtFwd and FastDormancy 2 | type qtelephony, domain; 3 | 4 | app_domain(qtelephony) 5 | 6 | hwbinder_use(qtelephony) 7 | add_hwservice(qtelephony, vnd_atcmdfwd_hwservice) 8 | 9 | allow qtelephony { app_api_service }:service_manager find; 10 | 11 | # Read and write /data/data subdirectory. 12 | allow qtelephony system_app_data_file:dir create_dir_perms; 13 | allow qtelephony system_app_data_file:{ file lnk_file } create_file_perms; 14 | 15 | set_prop(qtelephony, atfwd_start_prop) 16 | -------------------------------------------------------------------------------- /sepolicy/vendor/qti.te: -------------------------------------------------------------------------------- 1 | type qti, domain; 2 | type qti_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(qti) 5 | net_domain(qti) 6 | 7 | allow qti sysfs_soc:dir search; 8 | allow qti sysfs_soc:file r_file_perms; 9 | 10 | allow qti smd_device:chr_file { read write }; 11 | allow qti rmnet_device:chr_file rw_file_perms; 12 | 13 | allow qti self:socket create_socket_perms; 14 | allowxperm qti self:socket ioctl msm_sock_ipc_ioctls; 15 | 16 | r_dir_file(qti, sysfs_msm_subsys) 17 | 18 | userdebug_or_eng(` 19 | allow qti diag_device:chr_file rw_file_perms; 20 | r_dir_file(qti, sysfs_diag) 21 | allow qti sysfs_timestamp_switch:file r_file_perms; 22 | ') 23 | dontaudit qti diag_device:chr_file rw_file_perms; 24 | dontaudit qti sysfs_diag:dir search; 25 | -------------------------------------------------------------------------------- /sepolicy/vendor/radio.te: -------------------------------------------------------------------------------- 1 | get_prop(radio, ims_prop) 2 | typeattribute radio system_writes_vendor_properties_violators; 3 | 4 | allow radio qmuxd_socket:dir search; 5 | allow radio qmuxd_socket:sock_file write; 6 | 7 | allow radio vendor_file:lnk_file r_file_perms; 8 | allow radio vendor_framework_file:file r_file_perms; 9 | allow radio vendor_framework_file:dir search; 10 | 11 | hwbinder_use(radio) 12 | allow radio vnd_ims_radio_hwservice:hwservice_manager find; 13 | allow radio vnd_qcrilhook_hwservice:hwservice_manager find; 14 | allow radio hal_imsrtp_hwservice:hwservice_manager find; 15 | 16 | allow radio { 17 | mediaextractor_service 18 | mediacodec_service 19 | }:service_manager find; 20 | 21 | r_dir_file(radio, sysfs_msm_subsys) 22 | 23 | # IMS needs permission to use avtimer 24 | allow radio avtimer_device:chr_file r_file_perms; 25 | 26 | binder_call(radio, hal_imsrtp) 27 | 28 | userdebug_or_eng(` 29 | allow radio diag_device:chr_file rw_file_perms; 30 | r_dir_file(radio, sysfs_diag) 31 | allow radio sysfs_timestamp_switch:file r_file_perms; 32 | ') 33 | dontaudit radio diag_device:chr_file rw_file_perms; 34 | dontaudit radio sysfs_diag:dir search; 35 | 36 | # read /proc/cmdline 37 | allow radio proc_cmdline:file r_file_perms; 38 | 39 | get_prop(radio, vendor_radio_prop) 40 | -------------------------------------------------------------------------------- /sepolicy/vendor/ramdump.te: -------------------------------------------------------------------------------- 1 | type ramdump_exec, exec_type, vendor_file_type, file_type; 2 | 3 | userdebug_or_eng(` 4 | type ramdump, domain; 5 | init_daemon_domain(ramdump) 6 | 7 | set_prop(ramdump, vendor_ramdump_prop) 8 | 9 | allow ramdump self:capability sys_rawio; 10 | 11 | allow ramdump ramdump_vendor_data_file:dir create_dir_perms; 12 | allow ramdump ramdump_vendor_data_file:file create_file_perms; 13 | allow ramdump { 14 | proc 15 | proc_cmdline 16 | }:file r_file_perms; 17 | 18 | allow ramdump block_device:dir search; 19 | allow ramdump misc_block_device:blk_file rw_file_perms; 20 | allow ramdump userdata_block_device:blk_file rw_file_perms; 21 | 22 | # read from /fstab.taimen 23 | allow ramdump rootfs:file r_file_perms; 24 | 25 | r_dir_file(ramdump, sysfs_type) 26 | ') 27 | -------------------------------------------------------------------------------- /sepolicy/vendor/ramdump_app.te: -------------------------------------------------------------------------------- 1 | type ramdump_app, domain; 2 | 3 | userdebug_or_eng(` 4 | app_domain(ramdump_app) 5 | 6 | allow ramdump_app app_api_service:service_manager find; 7 | allow ramdump_app surfaceflinger_service:service_manager find; 8 | 9 | allow ramdump_app ramdump_vendor_data_file:file create_file_perms; 10 | allow ramdump_app ramdump_vendor_data_file:dir create_dir_perms; 11 | 12 | set_prop(ramdump_app, vendor_ramdump_prop); 13 | get_prop(system_app, vendor_ssr_prop) 14 | ') 15 | -------------------------------------------------------------------------------- /sepolicy/vendor/rfs_access.te: -------------------------------------------------------------------------------- 1 | type rfs_access, domain; 2 | type rfs_access_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(rfs_access) 5 | 6 | #For tftp server 7 | allow rfs_access self:capability { chown setgid setpcap setuid net_bind_service }; 8 | 9 | wakelock_use(rfs_access) 10 | 11 | # For tftp server file access 12 | allow rfs_access firmware_file:dir search; 13 | allow rfs_access firmware_file:file r_file_perms; 14 | allow rfs_access persist_file:dir search; 15 | allow rfs_access persist_rfs_file:dir create_dir_perms; 16 | allow rfs_access persist_rfs_file:file create_file_perms; 17 | 18 | allow rfs_access self:socket create_socket_perms_no_ioctl; 19 | -------------------------------------------------------------------------------- /sepolicy/vendor/rild.te: -------------------------------------------------------------------------------- 1 | binder_call(rild, per_mgr) 2 | 3 | vndbinder_use(rild) 4 | 5 | allow rild qmuxd_socket:dir w_dir_perms; 6 | allow rild qmuxd_socket:sock_file create_file_perms; 7 | 8 | allow rild netmgrd_socket:dir search; 9 | unix_socket_connect(rild, netmgrd, netmgrd) 10 | 11 | allow rild vendor_file:file { execute_no_trans lock ioctl }; 12 | 13 | allow rild per_mgr_service:service_manager find; 14 | 15 | add_hwservice(rild, vnd_ims_radio_hwservice) 16 | add_hwservice(rild, vnd_qcrilhook_hwservice) 17 | 18 | allow rild self:socket ioctl; 19 | allowxperm rild self:socket ioctl msm_sock_ipc_ioctls; 20 | allow rild time_daemon:unix_stream_socket connectto; 21 | 22 | userdebug_or_eng(` 23 | domain_auto_trans(rild, smlog_dump_exec, smlog_dump) 24 | allow rild diag_device:chr_file rw_file_perms; 25 | ') 26 | dontaudit rild diag_device:chr_file rw_file_perms; 27 | 28 | allow rild radio_vendor_data_file:dir rw_dir_perms; 29 | allow rild radio_vendor_data_file:file create_file_perms; 30 | 31 | set_prop(rild, vendor_radio_prop) 32 | 33 | # Allow vendor native process to read the proc file of xt_qtaguid 34 | allow rild proc_qtaguid_stat:file r_file_perms; 35 | -------------------------------------------------------------------------------- /sepolicy/vendor/rmt_storage.te: -------------------------------------------------------------------------------- 1 | type rmt_storage, domain; 2 | type rmt_storage_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(rmt_storage) 5 | 6 | wakelock_use(rmt_storage) 7 | 8 | allow rmt_storage self:capability { net_bind_service setgid setpcap setuid }; 9 | 10 | allow rmt_storage modem_block_device:blk_file rw_file_perms; 11 | allow rmt_storage uio_device:chr_file rw_file_perms; 12 | allow rmt_storage block_device:dir search; 13 | 14 | allow rmt_storage sysfs_uio:dir r_dir_perms; 15 | allow rmt_storage sysfs_uio:lnk_file r_file_perms; 16 | 17 | allow rmt_storage sysfs_rmtfs:dir search; 18 | allow rmt_storage sysfs_rmtfs:file r_file_perms; 19 | allow rmt_storage sysfs_rmtfs:dir search; 20 | 21 | allow rmt_storage debugfs_rmt_storage:dir search; 22 | allow rmt_storage debugfs_rmt_storage:file w_file_perms; 23 | 24 | allow rmt_storage self:socket create_socket_perms; 25 | allowxperm rmt_storage self:socket ioctl IPC_ROUTER_IOCTL_BIND_CONTROL_PORT; 26 | -------------------------------------------------------------------------------- /sepolicy/vendor/sensors.te: -------------------------------------------------------------------------------- 1 | # Policy for sensor daemon 2 | type sensors, domain; 3 | type sensors_exec, exec_type, vendor_file_type, file_type; 4 | 5 | init_daemon_domain(sensors) 6 | 7 | allow sensors self:capability { 8 | net_bind_service 9 | }; 10 | 11 | allow sensors self:socket create_socket_perms; 12 | allowxperm sensors self:socket ioctl msm_sock_ipc_ioctls; 13 | 14 | allow sensors persist_sensors_file:dir rw_dir_perms; 15 | allow sensors persist_sensors_file:file create_file_perms; 16 | allow sensors persist_file:dir { getattr search }; 17 | 18 | allow sensors sensors_vendor_data_file:dir create_dir_perms; 19 | allow sensors sensors_vendor_data_file:file create_file_perms; 20 | 21 | allow sensors system_file:dir r_dir_perms; 22 | allow sensors sensors_device:chr_file rw_file_perms; 23 | 24 | allow sensors sysfs_soc:dir r_dir_perms; 25 | allow sensors sysfs_soc:file r_file_perms; 26 | 27 | r_dir_file(sensors, sysfs_msm_subsys) 28 | 29 | userdebug_or_eng(` 30 | r_dir_file(sensors, sysfs_diag) 31 | allow sensors sysfs_timestamp_switch:file r_file_perms; 32 | allow sensors diag_device:chr_file rw_file_perms; 33 | ') 34 | dontaudit sensors diag_device:chr_file rw_file_perms; 35 | -------------------------------------------------------------------------------- /sepolicy/vendor/service_contexts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TeamWin/android_device_google_wahoo/e340a20e11f886693564aa8db31e4f8cdf27eef9/sepolicy/vendor/service_contexts -------------------------------------------------------------------------------- /sepolicy/vendor/shell.te: -------------------------------------------------------------------------------- 1 | # To allow non-root to find power_supply management info 2 | allow shell sysfs_msm_subsys:dir search; 3 | -------------------------------------------------------------------------------- /sepolicy/vendor/smlog_dump.te: -------------------------------------------------------------------------------- 1 | type smlog_dump_exec, exec_type, vendor_file_type, file_type; 2 | 3 | userdebug_or_eng(` 4 | type smlog_dump, domain; 5 | allow smlog_dump modem_dump_file:dir create_dir_perms; 6 | allow smlog_dump modem_dump_file:file create_file_perms; 7 | r_dir_file(smlog_dump, sysfs_uio) 8 | r_dir_file(smlog_dump, sysfs_rmtfs) 9 | 10 | allow smlog_dump diag_device:chr_file rw_file_perms; 11 | allow smlog_dump radio_vendor_data_file:file { append read write }; 12 | allow smlog_dump rild:fd use; 13 | allow smlog_dump rild:fifo_file { read write }; 14 | allow smlog_dump rild:unix_stream_socket { read write }; 15 | allow smlog_dump rild:netlink_generic_socket { read write }; 16 | allow smlog_dump self:socket create_socket_perms; 17 | allowxperm smlog_dump self:socket ioctl msm_sock_ipc_ioctls; 18 | allow smlog_dump sysfs:dir r_dir_perms; 19 | allow smlog_dump sysfs_msm_subsys:dir r_dir_perms; 20 | allow smlog_dump sysfs_msm_subsys:file r_file_perms; 21 | allow smlog_dump sysfs_msm_subsys:lnk_file read; 22 | allow smlog_dump sysfs_soc:dir search; 23 | allow smlog_dump sysfs_soc:file r_file_perms; 24 | allow smlog_dump dumpstate:fd use; 25 | allow smlog_dump hal_dumpstate_impl:fd use; 26 | allow smlog_dump uio_device:chr_file rw_file_perms; 27 | 28 | # For collecting bugreports. 29 | allow smlog_dump shell_data_file:file write; 30 | ') 31 | -------------------------------------------------------------------------------- /sepolicy/vendor/ssr_detector.te: -------------------------------------------------------------------------------- 1 | # SSRestartDetector app 2 | type ssr_detector_app, domain; 3 | 4 | app_domain(ssr_detector_app) 5 | 6 | userdebug_or_eng(` 7 | allow ssr_detector_app ramdump_vendor_data_file:dir r_dir_perms; 8 | allow ssr_detector_app ramdump_vendor_data_file:file r_file_perms; 9 | get_prop(ssr_detector_app, vendor_ssr_prop) 10 | get_prop(ssr_detector_app, vendor_wifi_version) 11 | ') 12 | 13 | allow ssr_detector_app app_api_service:service_manager find; 14 | 15 | # ssr_detector app's data type is system_app_data_file. 16 | allow ssr_detector_app system_app_data_file:dir create_dir_perms; 17 | allow ssr_detector_app system_app_data_file:{ file lnk_file } create_file_perms; 18 | 19 | allow ssr_detector_app sysfs:lnk_file r_file_perms; 20 | 21 | r_dir_file(ssr_detector_app, sysfs_msm_subsys) 22 | -------------------------------------------------------------------------------- /sepolicy/vendor/ssr_diag.te: -------------------------------------------------------------------------------- 1 | type ssr_diag, domain; 2 | type ssr_diag_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(ssr_diag); 5 | -------------------------------------------------------------------------------- /sepolicy/vendor/ssr_setup.te: -------------------------------------------------------------------------------- 1 | type ssr_setup, domain; 2 | type ssr_setup_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(ssr_setup); 5 | 6 | allow ssr_setup sysfs_msm_subsys:dir r_dir_perms; 7 | allow ssr_setup sysfs_msm_subsys:file rw_file_perms; 8 | allow ssr_setup sysfs_msm_subsys:lnk_file read; -------------------------------------------------------------------------------- /sepolicy/vendor/subsystem_ramdump.te: -------------------------------------------------------------------------------- 1 | type subsystem_ramdump_exec, exec_type, vendor_file_type, file_type; 2 | 3 | userdebug_or_eng(` 4 | type subsystem_ramdump, domain; 5 | 6 | init_daemon_domain(subsystem_ramdump); 7 | 8 | allow subsystem_ramdump device:dir r_dir_perms; 9 | allow subsystem_ramdump ramdump_device:chr_file r_file_perms; 10 | 11 | r_dir_file(subsystem_ramdump, sysfs_type); 12 | 13 | allow subsystem_ramdump ramdump_vendor_data_file:dir rw_dir_perms; 14 | allow subsystem_ramdump ramdump_vendor_data_file:file create_file_perms; 15 | 16 | set_prop(subsystem_ramdump, vendor_ssr_prop); 17 | ') 18 | -------------------------------------------------------------------------------- /sepolicy/vendor/surfaceflinger.te: -------------------------------------------------------------------------------- 1 | dontaudit surfaceflinger firmware_file:dir search; 2 | dontaudit surfaceflinger vendor_file:file read; 3 | dontaudit surfaceflinger kernel:system module_request; 4 | allow surfaceflinger debugfs_ion:dir search; 5 | 6 | typeattribute surfaceflinger system_writes_vendor_properties_violators; 7 | set_prop(surfaceflinger, public_vendor_system_prop) 8 | -------------------------------------------------------------------------------- /sepolicy/vendor/system_app.te: -------------------------------------------------------------------------------- 1 | # Needed by Settings app's CameraHalHdrplusPreferenceController 2 | typeattribute system_app system_writes_vendor_properties_violators; 3 | set_prop(system_app, camera_prop) 4 | 5 | # read regulatory info 6 | allow system_app elabel_data_file:dir r_dir_perms; 7 | allow system_app elabel_data_file:file r_file_perms; 8 | 9 | set_prop(system_app, vendor_bluetooth_prop) 10 | set_prop(system_app, public_vendor_system_prop) 11 | -------------------------------------------------------------------------------- /sepolicy/vendor/system_server.te: -------------------------------------------------------------------------------- 1 | allow system_server self:socket ioctl; 2 | allowxperm system_server self:socket ioctl msm_sock_ipc_ioctls; 3 | 4 | binder_call(system_server, hal_camera_default) 5 | 6 | allow system_server persist_file:dir search; 7 | allow system_server persist_sensors_file:dir search; 8 | allow system_server persist_sensors_file:file r_file_perms; 9 | allow system_server wlan_device:chr_file rw_file_perms; 10 | 11 | # TODO(b/73123675): BatterySaver needs access to cpufreq. Remove this access 12 | # once cpufreq functionality is hidden behind a HAL. 13 | allow system_server sysfs_devices_system_cpu:file w_file_perms; 14 | 15 | # input files 16 | r_dir_file(system_server, idc_file) 17 | r_dir_file(system_server, keylayout_file) 18 | 19 | # TODO(b/30675296): Remove following dontaudit's upon resolution of this bug 20 | # The timerslack_ns denials spam the system really horribly 21 | dontaudit system_server audioserver:file write; 22 | dontaudit system_server untrusted_app:file write; 23 | dontaudit system_server hal_audio_default:file write; 24 | dontaudit system_server appdomain:file write; 25 | 26 | typeattribute system_server system_writes_vendor_properties_violators; 27 | set_prop(system_server, public_vendor_system_prop) 28 | 29 | dontaudit system_server self:capability sys_module; 30 | 31 | allow system_server thermal_service:service_manager find; 32 | -------------------------------------------------------------------------------- /sepolicy/vendor/tango_core.te: -------------------------------------------------------------------------------- 1 | type tango_core, domain, coredomain; 2 | 3 | app_domain(tango_core) 4 | #from system/sepolicy/private/untrusted_app.te 5 | untrusted_app_domain(tango_core) 6 | net_domain(tango_core) 7 | bluetooth_domain(tango_core) 8 | 9 | #from system/sepolicy/private/untrusted_app.te 10 | allow tango_core system_server:udp_socket { connect getattr read recvfrom sendto write }; 11 | 12 | #calibration files 13 | allow tango_core persist_file:dir search; 14 | allow tango_core persist_sensors_file:dir search; 15 | allow tango_core persist_sensors_file:file { getattr open read }; 16 | 17 | # Allow access to necessary vendor libraries to execute Hexagon code 18 | typeattribute tango_core system_executes_vendor_violators; 19 | allow tango_core hexagon_halide_file:file { execute read open getattr }; 20 | allow tango_core qdsp_device:chr_file { ioctl open read }; 21 | -------------------------------------------------------------------------------- /sepolicy/vendor/tee.te: -------------------------------------------------------------------------------- 1 | allow tee self:capability { chown setgid setuid sys_admin sys_rawio }; 2 | 3 | allow tee device:dir r_dir_perms; 4 | 5 | set_prop(tee, tee_listener_prop) 6 | set_prop(tee, keymaster_prop) 7 | 8 | allow tee firmware_file:dir search; 9 | allow tee block_device:dir { getattr search }; 10 | allow tee ssd_block_device:blk_file rw_file_perms; 11 | allow tee sg_device:chr_file { rw_file_perms setattr }; 12 | 13 | allow tee persist_file:dir r_dir_perms; 14 | allow tee persist_drm_file:dir create_dir_perms; 15 | allow tee persist_drm_file:file create_file_perms; 16 | allow tee persist_data_file:dir create_dir_perms; 17 | allow tee persist_data_file:file create_file_perms; 18 | 19 | # TODO(b/36644492): Remove data_between_core_and_vendor_violators once 20 | # tee no longer directly accesses /data owned by the frameworks. 21 | typeattribute tee data_between_core_and_vendor_violators; 22 | allow tee system_data_file:dir r_dir_perms; 23 | allow tee fingerprintd_data_file:dir rw_dir_perms; 24 | allow tee fingerprintd_data_file:file create_file_perms; 25 | 26 | allow tee time_daemon:unix_stream_socket connectto; 27 | -------------------------------------------------------------------------------- /sepolicy/vendor/thermal-engine.te: -------------------------------------------------------------------------------- 1 | type thermal-engine, domain; 2 | type thermal-engine_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(thermal-engine) 5 | 6 | allow thermal-engine self:capability2 block_suspend; 7 | 8 | # to read /sys/devices 9 | allow thermal-engine sysfs:dir r_dir_perms; 10 | 11 | allow thermal-engine sysfs_msm_subsys:dir r_dir_perms; 12 | allow thermal-engine sysfs_msm_subsys:file rw_file_perms; 13 | allow thermal-engine sysfs_soc:dir search; 14 | allow thermal-engine sysfs_soc:file r_file_perms; 15 | allow thermal-engine sysfs_thermal:dir r_dir_perms; 16 | allow thermal-engine sysfs_thermal:file rw_file_perms; 17 | allow thermal-engine sysfs_thermal:lnk_file read; 18 | allow thermal-engine sysfs_rmtfs:dir search; 19 | allow thermal-engine sysfs_rmtfs:file r_file_perms; 20 | # to read /proc/stat 21 | allow thermal-engine proc_stat:file { getattr open read }; 22 | # IThermal Thermal HAL 23 | hal_server_domain(thermal-engine, hal_thermal) 24 | 25 | allow thermal-engine thermal_device:chr_file rw_file_perms; 26 | 27 | r_dir_file(thermal-engine, sysfs_batteryinfo) 28 | allow thermal-engine sysfs_batteryinfo:file w_file_perms; 29 | 30 | r_dir_file(thermal-engine, sysfs_leds) 31 | r_dir_file(thermal-engine, sysfs_msm_subsys) 32 | r_dir_file(thermal-engine, sysfs_uio) 33 | 34 | allow thermal-engine self:socket create_socket_perms; 35 | allowxperm thermal-engine self:socket ioctl msm_sock_ipc_ioctls; 36 | 37 | # reboot/shutdown for thermal limits exceeded 38 | set_prop(thermal-engine, powerctl_prop) 39 | 40 | userdebug_or_eng(` 41 | allow thermal-engine diag_device:chr_file rw_file_perms; 42 | ') 43 | dontaudit thermal-engine diag_device:chr_file rw_file_perms; 44 | -------------------------------------------------------------------------------- /sepolicy/vendor/thermalserviced.te: -------------------------------------------------------------------------------- 1 | binder_call(thermalserviced, system_server) 2 | -------------------------------------------------------------------------------- /sepolicy/vendor/time_daemon.te: -------------------------------------------------------------------------------- 1 | type time_daemon, domain; 2 | type time_daemon_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(time_daemon) 5 | 6 | allow time_daemon self:capability { setgid setuid sys_time }; 7 | 8 | allow time_daemon rtc_device:chr_file r_file_perms; 9 | 10 | r_dir_file(time_daemon, sysfs_msm_subsys) 11 | 12 | allow time_daemon sysfs_soc:dir search; 13 | allow time_daemon sysfs_soc:file r_file_perms; 14 | 15 | # Set sys.time.set property 16 | set_prop(time_daemon, sys_time_prop); 17 | 18 | allow time_daemon persist_time_file:dir w_dir_perms; 19 | allow time_daemon persist_time_file:file create_file_perms; 20 | allow time_daemon persist_time_file:dir search; 21 | 22 | allow time_daemon persist_file:dir search; 23 | 24 | allow time_daemon self:socket create_socket_perms; 25 | allowxperm time_daemon self:socket ioctl msm_sock_ipc_ioctls; 26 | 27 | userdebug_or_eng(` 28 | allow time_daemon diag_device:chr_file rw_file_perms; 29 | ') 30 | dontaudit time_daemon diag_device:chr_file rw_file_perms; 31 | 32 | # b/68864350 33 | dontaudit time_daemon unlabeled:dir search; 34 | -------------------------------------------------------------------------------- /sepolicy/vendor/timeservice_app.te: -------------------------------------------------------------------------------- 1 | type timeservice_app, domain; 2 | app_domain(timeservice_app); 3 | 4 | allow timeservice_app app_api_service:service_manager find; 5 | allow timeservice_app app_data_file:dir { search getattr }; 6 | allow timeservice_app time_daemon:unix_stream_socket connectto; 7 | -------------------------------------------------------------------------------- /sepolicy/vendor/ueventd.te: -------------------------------------------------------------------------------- 1 | allow ueventd firmware_file:dir search; 2 | allow ueventd firmware_file:file r_file_perms; 3 | allow ueventd tmpfs:blk_file getattr; 4 | allow ueventd persist_file:dir search; 5 | allow ueventd persist_file:file r_file_perms; 6 | -------------------------------------------------------------------------------- /sepolicy/vendor/update_engine_common.te: -------------------------------------------------------------------------------- 1 | # Allow update_engine and update_engine_sideload (recovery) read/write on the 2 | # device-specific partitions it should update. 3 | allow update_engine_common xbl_block_device:blk_file rw_file_perms; 4 | allow update_engine_common ab_block_device:blk_file rw_file_perms; 5 | allow update_engine_common modem_block_device:blk_file rw_file_perms; 6 | 7 | allow update_engine_common postinstall_mnt_dir:dir r_dir_perms; 8 | allow update_engine_common tmpfs:lnk_file r_file_perms; 9 | -------------------------------------------------------------------------------- /sepolicy/vendor/vendor_init.te: -------------------------------------------------------------------------------- 1 | typeattribute vendor_init data_between_core_and_vendor_violators; 2 | 3 | allow vendor_init { 4 | dhcp_data_file 5 | elabel_data_file 6 | media_rw_data_file 7 | ramoops_data_file 8 | system_data_file 9 | tombstone_data_file 10 | wifi_data_file 11 | }:dir { create search getattr open read setattr ioctl write add_name remove_name rmdir relabelfrom }; 12 | 13 | allow vendor_init debugfs_clk:file w_file_perms; 14 | allow vendor_init proc_uid_cpupower:file write; 15 | dontaudit vendor_init kernel:system module_request; 16 | 17 | # Allow vendor_init to write to /proc/sysrq-trigger on userdebug and eng builds 18 | userdebug_or_eng(` 19 | allow vendor_init proc_sysrq:file w_file_perms; 20 | ') 21 | 22 | set_prop(vendor_init, vendor_bluetooth_prop) 23 | set_prop(vendor_init, camera_prop) 24 | set_prop(vendor_init, modem_diag_prop) 25 | set_prop(vendor_init, power_prop) 26 | set_prop(vendor_init, public_vendor_default_prop) 27 | set_prop(vendor_init, vendor_radio_prop) 28 | set_prop(vendor_init, thermal_prop) 29 | set_prop(vendor_init, vendor_charge_prop) 30 | 31 | dontaudit vendor_init unlabeled:dir getattr; 32 | dontaudit vendor_init unlabeled:file getattr; 33 | -------------------------------------------------------------------------------- /sepolicy/vendor/vndservice.te: -------------------------------------------------------------------------------- 1 | type qdisplay_service, vndservice_manager_type; 2 | type per_mgr_service, vndservice_manager_type; 3 | type easel_service, vndservice_manager_type; -------------------------------------------------------------------------------- /sepolicy/vendor/vndservice_contexts: -------------------------------------------------------------------------------- 1 | display.qservice u:object_r:qdisplay_service:s0 2 | vendor.qcom.PeripheralManager u:object_r:per_mgr_service:s0 3 | easelmanager u:object_r:easel_service:s0 4 | -------------------------------------------------------------------------------- /sepolicy/vendor/vold.te: -------------------------------------------------------------------------------- 1 | get_prop(vold, tee_listener_prop) 2 | 3 | allow vold sysfs_scsi_devices_0000:file write; 4 | allow vold sysfs_scsi_devices_other:file write; 5 | allow vold sysfs_devices_block:file write; 6 | 7 | allow vold persist_file:dir r_dir_perms; 8 | 9 | # generated by proc scan, unnecessary 10 | dontaudit vold proc_irq:dir read; 11 | -------------------------------------------------------------------------------- /sepolicy/vendor/wcnss_filter.te: -------------------------------------------------------------------------------- 1 | type wcnss_filter, domain; 2 | type wcnss_filter_exec, exec_type, vendor_file_type, file_type; 3 | 4 | init_daemon_domain(wcnss_filter) 5 | 6 | set_prop(wcnss_filter, wc_prop) 7 | set_prop(wcnss_filter, vendor_bluetooth_prop) 8 | 9 | allow wcnss_filter hci_attach_dev:chr_file rw_file_perms; 10 | 11 | userdebug_or_eng(` 12 | allow wcnss_filter diag_device:chr_file rw_file_perms; 13 | allow wcnss_filter ramdump_vendor_data_file:dir w_dir_perms; 14 | allow wcnss_filter ramdump_vendor_data_file:file { create w_file_perms }; 15 | allow wcnss_filter sysfs_timestamp_switch:file r_file_perms; 16 | r_dir_file(wcnss_filter, debugfs_ipc) 17 | r_dir_file(wcnss_filter, sysfs_diag) 18 | set_prop(wcnss_filter, vendor_ssr_prop) 19 | ') 20 | 21 | #allow wakelock 22 | wakelock_use(wcnss_filter) 23 | 24 | # allow wcnss to set threads to RT priority 25 | allow wcnss_filter self:capability sys_nice; 26 | -------------------------------------------------------------------------------- /sepolicy/verizon/keys.conf: -------------------------------------------------------------------------------- 1 | [@VERIZON] 2 | ALL : device/google/wahoo/sepolicy/verizon/verizon.x509.pem 3 | -------------------------------------------------------------------------------- /sepolicy/verizon/mac_permissions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /sepolicy/verizon/obdm_app.te: -------------------------------------------------------------------------------- 1 | type obdm_app, domain, coredomain; 2 | 3 | app_domain(obdm_app) 4 | net_domain(obdm_app) 5 | 6 | allow obdm_app proc_stat:file r_file_perms; 7 | 8 | # talk to /dev/diag 9 | allow obdm_app diag_device:chr_file rw_file_perms; 10 | 11 | allow obdm_app app_api_service:service_manager find; 12 | allow obdm_app radio_service:service_manager find; 13 | allow obdm_app surfaceflinger_service:service_manager find; 14 | 15 | allow obdm_app self:socket create_socket_perms; 16 | allowxperm obdm_app self:socket ioctl { 0x0000c302 0x0000c304 }; 17 | 18 | allow obdm_app sysfs:dir r_dir_perms; 19 | r_dir_file(obdm_app, sysfs_msm_subsys) 20 | -------------------------------------------------------------------------------- /sepolicy/verizon/seapp_contexts: -------------------------------------------------------------------------------- 1 | # Verizon for OBDM tool 2 | user=_app seinfo=verizon name=com.verizon.obdm domain=obdm_app type=app_data_file levelFrom=all 3 | user=_app seinfo=verizon name=com.verizon.obdm:background domain=obdm_app type=app_data_file levelFrom=all 4 | -------------------------------------------------------------------------------- /sepolicy/verizon/verizon.x509.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDczCCAlugAwIBAgIEMzx+mzANBgkqhkiG9w0BAQsFADBpMQswCQYDVQQGEwJV 3 | UzELMAkGA1UECBMCTkoxDzANBgNVBAcTBldhcnJlbjEZMBcGA1UEChMQVmVyaXpv 4 | biBXaXJlbGVzczELMAkGA1UECxMCRFQxFDASBgNVBAMTC0RNQVQgQ2xpZW50MCAX 5 | DTE2MTAxMTIxMzgzN1oYDzIxMTYwOTE3MjEzODM3WjBpMQswCQYDVQQGEwJVUzEL 6 | MAkGA1UECBMCTkoxDzANBgNVBAcTBldhcnJlbjEZMBcGA1UEChMQVmVyaXpvbiBX 7 | aXJlbGVzczELMAkGA1UECxMCRFQxFDASBgNVBAMTC0RNQVQgQ2xpZW50MIIBIjAN 8 | BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr8y6pz1KPVolO8wj02oWSzuLZHWg 9 | HuatQ5RlbXFBqS9/ScPSw3t/Yt+jg2++VUG726qL7ydx8g3AzMktWHNkdhg6j8Dz 10 | fkEMa/oqcr+VOAQyPw4X0xkUs6ICsEuULRaAwY1NwSVCrTuSlxzlmumbTCg+tp4Y 11 | m2FXEct8VNayJcrLnTwl/IiYmFLNLLiZPrwqbSkMVfYbfxws7c2lVZI4qhIC7WWA 12 | HW5PyhO3Vdhjoj4E1QzkyabtB6el3kfE0xIta1IHV2iJdoAlESjaj3UT1i9d+Twt 13 | 7DCsu/ZevIl/g/vwbYi2uqQuSs/a3/qeUcawvcQZR4vWHo/Gx8PyiTZHJwIDAQAB 14 | oyEwHzAdBgNVHQ4EFgQUMytyC5Cq0A2kE99nyokx0kTzVH0wDQYJKoZIhvcNAQEL 15 | BQADggEBAE8AexGFmzTp0ZGgRaiv80ONc5PVA12T7h2F5ZN1Yqg99yhpoS6kBIsw 16 | EG149nIcgOnSYk7ukTcjfsKcbFaB7tV1dw6SUqjmsqLpzVxGI32/DVdIorfxwaHZ 17 | dKjvlC9Yh1uDEipKuEzR+nXRnzMdMzEv6KOXeIXJxTHY/f538oPVuiXksdnjllmV 18 | xL1waQrZzdS15hfeBpGlC0WXk9wMiBbJNfEqQ5/J0EaFu+zPk8R3VLQ8WvKcXPyK 19 | 30vZ56McQuwz2MT/gQxnR84LRXUhLGoWOr0MYFzOwhTso2vhIlEysGX+HtkEJh3L 20 | Hc+p+viW7lz17QqvZmOxjb6atkRpOVY= 21 | -----END CERTIFICATE----- 22 | -------------------------------------------------------------------------------- /thermal/Android.bp: -------------------------------------------------------------------------------- 1 | cc_library { 2 | name: "android.hardware.thermal@1.1-wahoo", 3 | defaults: ["hidl_defaults"], 4 | owner: "qcom", 5 | vendor: true, 6 | relative_install_path: "hw", 7 | srcs: [ 8 | "sensors.cpp", 9 | "Thermal.cpp", 10 | "thermal-helper.cpp", 11 | ], 12 | export_include_dirs: ["."], 13 | shared_libs: [ 14 | "libbase", 15 | "libhidlbase", 16 | "libhidltransport", 17 | "libutils", 18 | "android.hardware.thermal@1.0", 19 | "android.hardware.thermal@1.1", 20 | ], 21 | } 22 | -------------------------------------------------------------------------------- /uinput-fpc.idc: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2017 The Android Open Source Project 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # 16 | # Fingerprint navigation configuration file 17 | # 18 | keyboard.orientationAware = 1 19 | keyboard.builtIn = 1 20 | 21 | -------------------------------------------------------------------------------- /uinput-fpc.kl: -------------------------------------------------------------------------------- 1 | key 106 SYSTEM_NAVIGATION_LEFT 2 | key 108 SYSTEM_NAVIGATION_DOWN 3 | key 103 SYSTEM_NAVIGATION_UP 4 | key 105 SYSTEM_NAVIGATION_RIGHT 5 | -------------------------------------------------------------------------------- /usb/Android.bp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2017 The Android Open Source Project 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | cc_binary { 16 | name: "android.hardware.usb@1.1-service.wahoo", 17 | relative_install_path: "hw", 18 | init_rc: ["android.hardware.usb@1.1-service.wahoo.rc"], 19 | srcs: ["service.cpp", "Usb.cpp", "UsbGadget.cpp"], 20 | shared_libs: [ 21 | "libbase", 22 | "libhidlbase", 23 | "libhidltransport", 24 | "liblog", 25 | "libutils", 26 | "libhardware", 27 | "android.hardware.usb@1.0", 28 | "android.hardware.usb@1.1", 29 | "android.hardware.usb.gadget@1.0", 30 | "libcutils", 31 | ], 32 | proprietary: true, 33 | } 34 | -------------------------------------------------------------------------------- /usb/android.hardware.usb@1.1-service.wahoo.rc: -------------------------------------------------------------------------------- 1 | service vendor.usb-hal-1-1 /vendor/bin/hw/android.hardware.usb@1.1-service.wahoo 2 | class hal 3 | user root 4 | group root system shell mtp 5 | 6 | on boot 7 | chown root system /sys/class/typec/port0/power_role 8 | chown root system /sys/class/typec/port0/data_role 9 | chown root system /sys/class/typec/port0/port_type 10 | chmod 664 /sys/class/typec/port0/power_role 11 | chmod 664 /sys/class/typec/port0/data_role 12 | chmod 664 /sys/class/typec/port0/port_type 13 | -------------------------------------------------------------------------------- /vibrator/Android.bp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2017 The Android Open Source Project 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | cc_binary { 16 | name: "android.hardware.vibrator@1.2-service.wahoo", 17 | relative_install_path: "hw", 18 | init_rc: ["android.hardware.vibrator@1.2-service.wahoo.rc"], 19 | srcs: ["service.cpp", "Vibrator.cpp"], 20 | cflags: [ 21 | "-Wall", 22 | "-Werror", 23 | ], 24 | shared_libs: [ 25 | "libhidlbase", 26 | "libcutils", 27 | "libhidltransport", 28 | "liblog", 29 | "libhwbinder", 30 | "libutils", 31 | "libhardware", 32 | "android.hardware.vibrator@1.0", 33 | "android.hardware.vibrator@1.1", 34 | "android.hardware.vibrator@1.2", 35 | ], 36 | proprietary: true, 37 | } 38 | -------------------------------------------------------------------------------- /vibrator/android.hardware.vibrator@1.2-service.wahoo.rc: -------------------------------------------------------------------------------- 1 | service vendor.vibrator-1-2 /vendor/bin/hw/android.hardware.vibrator@1.2-service.wahoo 2 | class hal 3 | user system 4 | group system 5 | -------------------------------------------------------------------------------- /vr/Android.bp: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (C) 2017 The Android Open Source Project 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | cc_binary { 16 | name: "android.hardware.vr@1.0-service.wahoo", 17 | relative_install_path: "hw", 18 | init_rc: ["android.hardware.vr@1.0-service.wahoo.rc"], 19 | srcs: ["service.cpp", "VrDevice.cpp"], 20 | cflags: ["-Werror", "-Wall"], 21 | shared_libs: [ 22 | "libbase", 23 | "libhidlbase", 24 | "libhidltransport", 25 | "liblog", 26 | "libutils", 27 | "android.hardware.vr@1.0", 28 | ], 29 | proprietary: true, 30 | } 31 | -------------------------------------------------------------------------------- /vr/NOTICE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2017 The Android Open Source Project 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | 6 | Unless required by applicable law or agreed to in writing, software 7 | distributed under the License is distributed on an "AS IS" BASIS, 8 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 9 | See the License for the specific language governing permissions and 10 | limitations under the License. 11 | -------------------------------------------------------------------------------- /vr/VrDevice.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | #ifndef ANDROID_HARDWARE_VR_V1_0_VR_H 17 | #define ANDROID_HARDWARE_VR_V1_0_VR_H 18 | 19 | #include 20 | 21 | namespace android { 22 | namespace hardware { 23 | namespace vr { 24 | namespace V1_0 { 25 | namespace implementation { 26 | 27 | using ::android::hardware::vr::V1_0::IVr; 28 | using ::android::hardware::Return; 29 | 30 | struct VrDevice : public IVr { 31 | VrDevice(); 32 | 33 | Return init() override; 34 | Return setVrMode(bool enabled) override; 35 | Return debug(const hidl_handle& handle, const hidl_vec&) override; 36 | private: 37 | // Taimen display touch sensitivity for VR Mode (b/37515573) 38 | bool mFtm4Touch; 39 | bool mVRmode; 40 | }; 41 | 42 | } // namespace implementation 43 | } // namespace V1_0 44 | } // namespace vr 45 | } // namespace hardware 46 | } // namespace android 47 | 48 | #endif // ANDROID_HARDWARE_VR_V1_0_VR_H 49 | -------------------------------------------------------------------------------- /vr/android.hardware.vr@1.0-service.wahoo.rc: -------------------------------------------------------------------------------- 1 | service vendor.vr-wahoo-1-0 /vendor/bin/hw/android.hardware.vr@1.0-service.wahoo 2 | class hal 3 | user system 4 | group system 5 | 6 | # reset touch and thermal-engine when framework died and thermal-engine is in VR mode 7 | on property:init.svc.zygote=restarting && property:sys.qcom.thermalcfg=/vendor/etc/thermal-engine-vr.conf 8 | write /sys/devices/virtual/input/ftm4_touch/vrmode 0 9 | setprop sys.qcom.thermalcfg "/vendor/etc/thermal-engine.conf" 10 | restart vendor.thermal-engine 11 | -------------------------------------------------------------------------------- /vr/service.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | #define LOG_TAG "android.hardware.vr@1.0-service.wahoo" 17 | 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | #include "VrDevice.h" 24 | 25 | using ::android::hardware::configureRpcThreadpool; 26 | using ::android::hardware::joinRpcThreadpool; 27 | using ::android::hardware::vr::V1_0::implementation::VrDevice; 28 | using ::android::hardware::vr::V1_0::IVr; 29 | using ::android::sp; 30 | 31 | int main(int /* argc */, char* /* argv */ []) { 32 | sp vr = new VrDevice; 33 | configureRpcThreadpool(1, true); 34 | CHECK_EQ(vr->registerAsService(), android::NO_ERROR) 35 | << "Failed to register vr HAL"; 36 | joinRpcThreadpool(); 37 | return 0; 38 | } 39 | -------------------------------------------------------------------------------- /wifi_concurrency_cfg.txt: -------------------------------------------------------------------------------- 1 | ENABLE_STA_SAP_CONCURRENCY:1 2 | SAP_INTERFACE_NAME:softap0 3 | SAP_CHANNEL:6 4 | -------------------------------------------------------------------------------- /wifi_offload/AndroidTest.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 21 | 27 | -------------------------------------------------------------------------------- /wifi_offload/android.hardware.wifi.offload@1.0-service.rc: -------------------------------------------------------------------------------- 1 | service vendor.offload-hal-1-0 /vendor/bin/hw/android.hardware.wifi.offload@1.0-service 2 | class hal 3 | user wifi 4 | group wifi system 5 | -------------------------------------------------------------------------------- /wifi_offload/chre_constants.cpp: -------------------------------------------------------------------------------- 1 | #include "chre_constants.h" 2 | 3 | namespace android { 4 | namespace hardware { 5 | namespace wifi { 6 | namespace offload { 7 | namespace V1_0 { 8 | namespace implementation { 9 | namespace chre_constants { 10 | 11 | const char kSocketName[] = "chre"; 12 | const uint64_t kWifiOffloadNanoAppId = 5147455389092024332; 13 | const uint32_t kMaxMessageLen = 2048; 14 | const uint32_t kHubInfoRequestBufLen = 64; 15 | const uint32_t kNanoAppListRequestBufLen = 64; 16 | const uint32_t kSubscriptionDelayMsBufLen = 4; 17 | const uint32_t kNanosecondsPerMillisecond = 1e6; 18 | const size_t kBssidLen = 6; 19 | const size_t kHistogramChannels = 256; 20 | 21 | } // namespace chre_constants 22 | } // namespace implementation 23 | } // namespace V1_0 24 | } // namespace offload 25 | } // namespace wifi 26 | } // namespace hardware 27 | } // namespace android 28 | -------------------------------------------------------------------------------- /wifi_offload/chre_constants.h: -------------------------------------------------------------------------------- 1 | #ifndef WIFI_OFFLOAD_CHRE_CONSTANTS_H_ 2 | #define WIFI_OFFLOAD_CHRE_CONSTANTS_H_ 3 | 4 | #include 5 | 6 | namespace android { 7 | namespace hardware { 8 | namespace wifi { 9 | namespace offload { 10 | namespace V1_0 { 11 | namespace implementation { 12 | namespace chre_constants { 13 | 14 | extern const char kSocketName[]; 15 | extern const uint64_t kWifiOffloadNanoAppId; 16 | extern const uint32_t kMaxMessageLen; 17 | extern const uint32_t kHubInfoRequestBufLen; 18 | extern const uint32_t kNanoAppListRequestBufLen; 19 | extern const uint32_t kSubscriptionDelayMsBufLen; 20 | extern const uint32_t kNanosecondsPerMillisecond; 21 | extern const size_t kHistogramChannels; 22 | extern const size_t kBssidLen; 23 | 24 | } // namespace chre_constants 25 | } // namespace implementation 26 | } // namespace V1_0 27 | } // namespace offload 28 | } // namespace wifi 29 | } // namespace hardware 30 | } // namespace android 31 | 32 | #endif // WIFI_OFFLOAD_CHRE_CONSTANTS_H_ 33 | -------------------------------------------------------------------------------- /wifi_offload/chre_interface_callbacks.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | #ifndef WIFI_OFFLOAD_CHRE_INTERFACE_CALLBACKS_H 17 | #define WIFI_OFFLOAD_CHRE_INTERFACE_CALLBACKS_H 18 | 19 | #include 20 | 21 | namespace android { 22 | namespace hardware { 23 | namespace wifi { 24 | namespace offload { 25 | namespace V1_0 { 26 | namespace implementation { 27 | 28 | class ChreInterfaceCallbacks { 29 | public: 30 | enum ConnectionEvent { CONNECTED, DISCONNECTED, CONNECTION_ABORT }; 31 | virtual ~ChreInterfaceCallbacks() {} 32 | 33 | /* Invoked by the Chre interface when connection events are received */ 34 | virtual void handleConnectionEvents(ConnectionEvent event) = 0; 35 | /* Invoked by the Chre interface when a message is recieved from Nano app */ 36 | virtual void handleMessage(uint32_t messageType, const std::vector& message) = 0; 37 | }; 38 | 39 | } // namespace implementation 40 | } // namespace V1_0 41 | } // namespace offload 42 | } // namespace wifi 43 | } // namespace hardware 44 | } // namespace android 45 | #endif // WIFI_OFFLOAD_CHRE_INTERFACE_CALLBACKS_H 46 | -------------------------------------------------------------------------------- /wifi_offload/chre_interface_factory.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | #include "chre_interface_factory.h" 17 | 18 | #include 19 | 20 | namespace android { 21 | namespace hardware { 22 | namespace wifi { 23 | namespace offload { 24 | namespace V1_0 { 25 | namespace implementation { 26 | 27 | ChreInterface* ChreInterfaceFactory::getChreInterface(ChreInterfaceCallbacks* serverCallbacks) { 28 | return new ChreInterface(serverCallbacks); 29 | } 30 | 31 | } // namespace implementation 32 | } // namespace V1_0 33 | } // namespace offload 34 | } // namespace wifi 35 | } // namespace hardware 36 | } // namespace android 37 | -------------------------------------------------------------------------------- /wifi_offload/chre_interface_factory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | #ifndef WIFI_OFFLOAD_CHRE_INTERFACE_FACTORY_H_ 17 | #define WIFI_OFFLOAD_CHRE_INTERFACE_FACTORY_H_ 18 | 19 | #include "chre_interface.h" 20 | #include "chre_interface_callbacks.h" 21 | 22 | namespace android { 23 | namespace hardware { 24 | namespace wifi { 25 | namespace offload { 26 | namespace V1_0 { 27 | namespace implementation { 28 | 29 | class ChreInterfaceFactory { 30 | public: 31 | ChreInterfaceFactory() = default; 32 | virtual ~ChreInterfaceFactory() = default; 33 | virtual ChreInterface* getChreInterface(ChreInterfaceCallbacks* server); 34 | }; 35 | 36 | } // namespace implementation 37 | } // namespace V1_0 38 | } // namespace offload 39 | } // namespace wifi 40 | } // namespace hardware 41 | } // namespace android 42 | 43 | #endif // WIFI_OFFLOAD_CHRE_INTERFACE_FACTORY_H_ 44 | -------------------------------------------------------------------------------- /wifi_offload/offload_status_util.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #include "offload_status_util.h" 18 | 19 | namespace android { 20 | namespace hardware { 21 | namespace wifi { 22 | namespace offload { 23 | namespace V1_0 { 24 | namespace implementation { 25 | 26 | OffloadStatus createOffloadStatus(OffloadStatusCode code, const std::string &description) { 27 | return {code, description}; 28 | } 29 | 30 | OffloadStatus createOffloadStatus(OffloadStatusCode code) { 31 | return createOffloadStatus(code, ""); 32 | } 33 | 34 | } // namespace implementation 35 | } // namespace V1_0 36 | } // namespace offload 37 | } // namespace wifi 38 | } // namespace hardware 39 | } // namespace android 40 | -------------------------------------------------------------------------------- /wifi_offload/offload_status_util.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef OFFLOAD_STATUS_UTIL_H_ 18 | #define OFFLOAD_STATUS_UTIL_H_ 19 | 20 | #include 21 | 22 | namespace android { 23 | namespace hardware { 24 | namespace wifi { 25 | namespace offload { 26 | namespace V1_0 { 27 | namespace implementation { 28 | 29 | OffloadStatus createOffloadStatus(OffloadStatusCode code, const std::string &description); 30 | OffloadStatus createOffloadStatus(OffloadStatusCode code); 31 | 32 | } // namespace implementation 33 | } // namespace V1_0 34 | } // namespace offload 35 | } // namespace wifi 36 | } // namespace hardware 37 | } // namespace android 38 | 39 | #endif // OFFLOAD_STATUS_UTIL_H_ 40 | -------------------------------------------------------------------------------- /wifi_offload/offload_utils.h: -------------------------------------------------------------------------------- 1 | #ifndef WIFI_OFFLOAD_SERVER_UTILS_H_ 2 | #define WIFI_OFFLOAD_SERVER_UTILS_H_ 3 | 4 | #include 5 | #include 6 | 7 | namespace android { 8 | namespace hardware { 9 | namespace wifi { 10 | namespace offload { 11 | namespace V1_0 { 12 | namespace implementation { 13 | namespace offload_utils { 14 | 15 | bool ToHidlScanResults(const std::vector& chreScanResults, 16 | std::vector* hidlScanResults); 17 | bool ToHidlScanStats(const wifi_offload::ScanStats& chreScanStats, ScanStats* hildScanStats); 18 | bool ToChreScanConfig(const ScanParam& param, const ScanFilter& filter, 19 | wifi_offload::ScanConfig* scanConfig); 20 | bool ToHidlErrorMessage(uint32_t errorCode, std::string* errorMessage); 21 | 22 | } // namespace offload_utils 23 | } // namespace implementation 24 | } // namespace V1_0 25 | } // namespace offload 26 | } // namespace wifi 27 | } // namespace hardware 28 | } // namespace android 29 | 30 | #endif // WIFI_OFFLOAD_SERVER_UTILS_H_ 31 | -------------------------------------------------------------------------------- /wifi_offload/test/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #include 18 | #include 19 | 20 | #include 21 | 22 | int main(int argc, char** argv) { 23 | ::testing::InitGoogleTest(&argc, argv); 24 | ::testing::InitGoogleMock(&argc, argv); 25 | // Force ourselves to always log to stderr 26 | android::base::InitLogging(argv, android::base::StderrLogger); 27 | return RUN_ALL_TESTS(); 28 | } 29 | -------------------------------------------------------------------------------- /wifi_offload/test/mock_chre_interface.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #include "mock_chre_interface.h" 18 | 19 | namespace android { 20 | namespace hardware { 21 | namespace wifi { 22 | namespace offload { 23 | namespace V1_0 { 24 | namespace implementation { 25 | 26 | MockChreInterface::MockChreInterface(ChreInterfaceCallbacks* callback) : ChreInterface(callback) { 27 | } 28 | 29 | } // namespace implementation 30 | } // namespace V1_0 31 | } // namespace offload 32 | } // namespace wifi 33 | } // namespace hardware 34 | } // namespace android 35 | -------------------------------------------------------------------------------- /wifi_offload/test/mock_chre_interface_callbacks.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | #include "mock_chre_interface_callbacks.h" 17 | 18 | namespace android { 19 | namespace hardware { 20 | namespace wifi { 21 | namespace offload { 22 | namespace V1_0 { 23 | namespace implementation { 24 | 25 | MockChreInterfaceCallbacks::MockChreInterfaceCallbacks() { 26 | } 27 | 28 | } // namespace implementation 29 | } // namespace V1_0 30 | } // namespace offload 31 | } // namespace wifi 32 | } // namespace hardware 33 | } // namespace android 34 | -------------------------------------------------------------------------------- /wifi_offload/test/mock_chre_interface_callbacks.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef WIFI_OFFLOAD_MOCK_CHRE_INTERFACE_CALLBACKS_H_ 18 | #define WIFI_OFFLOAD_MOCK_CHRE_INTERFACE_CALLBACKS_H_ 19 | 20 | #include 21 | #include 22 | 23 | #include "chre_interface_callbacks.h" 24 | 25 | namespace android { 26 | namespace hardware { 27 | namespace wifi { 28 | namespace offload { 29 | namespace V1_0 { 30 | namespace implementation { 31 | 32 | class MockChreInterfaceCallbacks : public ChreInterfaceCallbacks { 33 | public: 34 | MockChreInterfaceCallbacks(); 35 | ~MockChreInterfaceCallbacks() override = default; 36 | 37 | MOCK_METHOD1(handleConnectionEvents, void(ChreInterfaceCallbacks::ConnectionEvent event)); 38 | MOCK_METHOD2(handleMessage, void(uint32_t messageType, const std::vector& message)); 39 | }; 40 | 41 | } // namespace implementation 42 | } // namespace V1_0 43 | } // namespace offload 44 | } // namespace wifi 45 | } // namespace hardware 46 | } // namespace android 47 | #endif // WIFI_OFFLOAD_MOCK_CHRE_INTERFACE_CALLBACKS_H_ 48 | -------------------------------------------------------------------------------- /wifi_offload/test/mock_chre_interface_factory.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #include "mock_chre_interface_factory.h" 18 | 19 | namespace android { 20 | namespace hardware { 21 | namespace wifi { 22 | namespace offload { 23 | namespace V1_0 { 24 | namespace implementation { 25 | 26 | MockChreInterfaceFactory::MockChreInterfaceFactory() { 27 | } 28 | 29 | } // namespace implementation 30 | } // namespace V1_0 31 | } // namespace offload 32 | } // namespace wifi 33 | } // namespace hardware 34 | } // namespace android 35 | -------------------------------------------------------------------------------- /wifi_offload/test/mock_chre_interface_factory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef WIFI_OFFLOAD_MOCK_CHRE_INTERFACE_FACTORY_H_ 18 | #define WIFI_OFFLOAD_MOCK_CHRE_INTERFACE_FACTORY_H_ 19 | 20 | #include 21 | #include 22 | 23 | #include "chre_interface_callbacks.h" 24 | #include "chre_interface_factory.h" 25 | 26 | namespace android { 27 | namespace hardware { 28 | namespace wifi { 29 | namespace offload { 30 | namespace V1_0 { 31 | namespace implementation { 32 | 33 | class MockChreInterfaceFactory : public ChreInterfaceFactory { 34 | public: 35 | MockChreInterfaceFactory(); 36 | ~MockChreInterfaceFactory() override = default; 37 | 38 | MOCK_METHOD1(getChreInterface, ChreInterface*(ChreInterfaceCallbacks* handlers)); 39 | }; 40 | 41 | } // namespace implementation 42 | } // namespace V1_0 43 | } // namespace offload 44 | } // namespace wifi 45 | } // namespace hardware 46 | } // namespace android 47 | 48 | #endif // WIFI_OFFLOAD_MOCK_CHRE_INTERFACE_FACTORY_H_ 49 | -------------------------------------------------------------------------------- /wifi_offload/test/runtest.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Copyright (C) 2016 The Android Open Source Project 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | if [ -z $ANDROID_BUILD_TOP ]; then 18 | echo "You need to source and lunch before you can use this script" 19 | exit 1 20 | fi 21 | 22 | echo "Running tests" 23 | set -e # fail early 24 | 25 | # NOTE We can't actually run these commands, since they rely on functions added by 26 | # build/envsetup.sh to the bash shell environment. 27 | echo "+ mmma -j32 $ANDROID_BUILD_TOP/device/google/wahoo" 28 | make -j32 -C $ANDROID_BUILD_TOP -f build/core/main.mk \ 29 | MODULES-IN-device-google-wahoo-wifi_offload 30 | 31 | set -x # print commands 32 | 33 | adb root 34 | adb wait-for-device 35 | adb remount 36 | adb sync 37 | 38 | adb shell /data/nativetest/vendor/wifi-offload-service-unit-tests/wifi-offload-service-unit-tests 39 | adb shell /data/nativetest64/vendor/wifi-offload-service-unit-tests/wifi-offload-service-unit-tests 40 | -------------------------------------------------------------------------------- /wpa_supplicant_overlay.conf: -------------------------------------------------------------------------------- 1 | disable_scan_offload=1 2 | p2p_disabled=1 3 | tdls_external_control=1 4 | bss_max_count=512 5 | --------------------------------------------------------------------------------