├── empty ├── files ├── samsung-sec_e-pen.idc ├── sony-gpio-keys.kl ├── huawei-fingerprint.kl ├── adbd.rc ├── samsung-9810-floating_feature.xml ├── samsung-gpio_keys.kl ├── oneplus6-synaptics_s3320.kl ├── samsung-sec_touchscreen.kl └── mimix3-gpio-keys.kl ├── .gitignore ├── sepolicy ├── huawei.te ├── hardware_overlay.te ├── genfs_contexts ├── samsung.te ├── service_contexts ├── vold.te ├── hostapd.te ├── board_properties.te ├── bootanim.te ├── init.te ├── treble_app.te ├── file_contexts ├── vndk_detect.te ├── qualcomm.te └── su.te ├── su ├── su.rc ├── su └── Android.mk ├── empty-permission.xml ├── README ├── fixSPL ├── getSPL.arm └── getSPL.c ├── twrp ├── busybox-armv7l ├── twrp.rc └── twrp.sh ├── base-pre.mk ├── rr.mk ├── huawei_charger └── files │ ├── 1080x1920 │ ├── bg.png │ ├── empty_charge.png │ └── full_charge.png │ ├── 1080x2160 │ ├── bg.png │ ├── empty_charge.png │ └── full_charge.png │ ├── 1080x2280 │ ├── bg.png │ ├── empty_charge.png │ └── full_charge.png │ ├── 1200x1920 │ ├── bg.png │ ├── number_0.png │ ├── number_1.png │ ├── number_2.png │ ├── number_3.png │ ├── number_4.png │ ├── number_5.png │ ├── number_6.png │ ├── number_7.png │ ├── number_8.png │ ├── number_9.png │ ├── battery_01.png │ ├── battery_02.png │ ├── battery_03.png │ ├── battery_04.png │ ├── battery_05.png │ ├── battery_06.png │ ├── battery_07.png │ ├── battery_08.png │ ├── battery_09.png │ ├── charging_12.png │ ├── cur_surface.png │ ├── empty_charge.png │ ├── full_charge.png │ ├── percent_sign.png │ └── scp_charging_12.png │ ├── 1440x2560 │ ├── bg.png │ ├── empty_charge.png │ └── full_charge.png │ ├── 1600x2560 │ ├── bg.png │ ├── number_0.png │ ├── number_1.png │ ├── number_2.png │ ├── number_3.png │ ├── number_4.png │ ├── number_5.png │ ├── number_6.png │ ├── number_7.png │ ├── number_8.png │ ├── number_9.png │ ├── battery_01.png │ ├── battery_02.png │ ├── battery_03.png │ ├── battery_04.png │ ├── battery_05.png │ ├── battery_06.png │ ├── battery_07.png │ ├── battery_08.png │ ├── battery_09.png │ ├── charging_12.png │ ├── cur_surface.png │ ├── empty_charge.png │ ├── full_charge.png │ ├── percent_sign.png │ ├── fcp_charging_12.png │ └── scp_charging_12.png │ ├── 720x1280 │ ├── bg.png │ ├── empty_charge.png │ └── full_charge.png │ ├── 720x1440 │ ├── bg.png │ ├── empty_charge.png │ └── full_charge.png │ └── 800x1280 │ ├── bg.png │ ├── number_0.png │ ├── number_1.png │ ├── number_2.png │ ├── number_3.png │ ├── number_4.png │ ├── number_5.png │ ├── number_6.png │ ├── number_7.png │ ├── number_8.png │ ├── number_9.png │ ├── battery_01.png │ ├── battery_02.png │ ├── battery_03.png │ ├── battery_04.png │ ├── battery_05.png │ ├── battery_06.png │ ├── battery_07.png │ ├── battery_08.png │ ├── battery_09.png │ ├── charging_12.png │ ├── cur_surface.png │ ├── empty_charge.png │ ├── full_charge.png │ └── percent_sign.png ├── gapps-go.mk ├── lineage.mk ├── environ ├── init.treble-environ.rc └── Android.mk ├── havoc.mk ├── system.prop ├── cmds ├── mtk-sms-fwk-ready.rc ├── mtk-sms-fwk-ready.cpp ├── op-fp.cpp ├── xiaomi-fp.cpp ├── xiaomi-display-feature.cpp ├── vibrator-lge.cpp ├── Android.bp ├── uevent.cpp ├── lightsctl.cpp ├── lightsctl-sec.cpp └── simg2img_simple.cpp ├── aex.mk ├── phhgsi_arm64_a └── BoardConfig.mk ├── phhgsi_arm_a └── BoardConfig.mk ├── phhgsi_arm_ab └── BoardConfig.mk ├── phhgsi_arm64_ab └── BoardConfig.mk ├── board-base.mk ├── phhgsi_a64_a └── BoardConfig.mk ├── framework_manifest.xml ├── carbon.mk ├── overlay ├── packages │ └── apps │ │ └── overlays │ │ └── NoCutoutOverlay │ │ ├── Android.mk │ │ ├── res │ │ ├── values-am │ │ │ └── strings.xml │ │ ├── values-ar │ │ │ └── strings.xml │ │ ├── values-bn │ │ │ └── strings.xml │ │ ├── values-ca │ │ │ └── strings.xml │ │ ├── values-cs │ │ │ └── strings.xml │ │ ├── values-da │ │ │ └── strings.xml │ │ ├── values-et │ │ │ └── strings.xml │ │ ├── values-is │ │ │ └── strings.xml │ │ ├── values-iw │ │ │ └── strings.xml │ │ ├── values-ja │ │ │ └── strings.xml │ │ ├── values-km │ │ │ └── strings.xml │ │ ├── values-ko │ │ │ └── strings.xml │ │ ├── values-mn │ │ │ └── strings.xml │ │ ├── values-mr │ │ │ └── strings.xml │ │ ├── values-nb │ │ │ └── strings.xml │ │ ├── values-pa │ │ │ └── strings.xml │ │ ├── values-pl │ │ │ └── strings.xml │ │ ├── values-sk │ │ │ └── strings.xml │ │ ├── values-sq │ │ │ └── strings.xml │ │ ├── values-sv │ │ │ └── strings.xml │ │ ├── values-sw │ │ │ └── strings.xml │ │ ├── values-ta │ │ │ └── strings.xml │ │ ├── values-th │ │ │ └── strings.xml │ │ ├── values-tl │ │ │ └── strings.xml │ │ ├── values-tr │ │ │ └── strings.xml │ │ ├── values-vi │ │ │ └── strings.xml │ │ ├── values-zu │ │ │ └── strings.xml │ │ ├── values-af │ │ │ └── strings.xml │ │ ├── values-as │ │ │ └── strings.xml │ │ ├── values-az │ │ │ └── strings.xml │ │ ├── values-be │ │ │ └── strings.xml │ │ ├── values-bg │ │ │ └── strings.xml │ │ ├── values-bs │ │ │ └── strings.xml │ │ ├── values-de │ │ │ └── strings.xml │ │ ├── values-el │ │ │ └── strings.xml │ │ ├── values-en-rAU │ │ │ └── strings.xml │ │ ├── values-en-rCA │ │ │ └── strings.xml │ │ ├── values-en-rGB │ │ │ └── strings.xml │ │ ├── values-en-rIN │ │ │ └── strings.xml │ │ ├── values-es │ │ │ └── strings.xml │ │ ├── values-eu │ │ │ └── strings.xml │ │ ├── values-fa │ │ │ └── strings.xml │ │ ├── values-fi │ │ │ └── strings.xml │ │ ├── values-fr │ │ │ └── strings.xml │ │ ├── values-gl │ │ │ └── strings.xml │ │ ├── values-gu │ │ │ └── strings.xml │ │ ├── values-hi │ │ │ └── strings.xml │ │ ├── values-hr │ │ │ └── strings.xml │ │ ├── values-hu │ │ │ └── strings.xml │ │ ├── values-hy │ │ │ └── strings.xml │ │ ├── values-it │ │ │ └── strings.xml │ │ ├── values-ka │ │ │ └── strings.xml │ │ ├── values-kk │ │ │ └── strings.xml │ │ ├── values-kn │ │ │ └── strings.xml │ │ ├── values-ky │ │ │ └── strings.xml │ │ ├── values-lo │ │ │ └── strings.xml │ │ ├── values-lt │ │ │ └── strings.xml │ │ ├── values-lv │ │ │ └── strings.xml │ │ ├── values-mk │ │ │ └── strings.xml │ │ ├── values-ml │ │ │ └── strings.xml │ │ ├── values-my │ │ │ └── strings.xml │ │ ├── values-nl │ │ │ └── strings.xml │ │ ├── values-or │ │ │ └── strings.xml │ │ ├── values-pt │ │ │ └── strings.xml │ │ ├── values-ro │ │ │ └── strings.xml │ │ ├── values-ru │ │ │ └── strings.xml │ │ ├── values-si │ │ │ └── strings.xml │ │ ├── values-sl │ │ │ └── strings.xml │ │ ├── values-sr │ │ │ └── strings.xml │ │ ├── values-te │ │ │ └── strings.xml │ │ ├── values-uk │ │ │ └── strings.xml │ │ ├── values-ur │ │ │ └── strings.xml │ │ ├── values-uz │ │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ │ └── strings.xml │ │ ├── values-zh-rHK │ │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ │ └── strings.xml │ │ ├── values-b+sr+Latn │ │ │ └── strings.xml │ │ ├── values-es-rUS │ │ │ └── strings.xml │ │ ├── values-fr-rCA │ │ │ └── strings.xml │ │ ├── values-in │ │ │ └── strings.xml │ │ ├── values-ms │ │ │ └── strings.xml │ │ ├── values-ne │ │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ ├── values-pt-rPT │ │ │ └── strings.xml │ │ ├── values-land │ │ │ └── config.xml │ │ ├── values │ │ │ ├── strings.xml │ │ │ └── config.xml │ │ └── values-en-rXC │ │ │ └── strings.xml │ │ └── AndroidManifest.xml └── frameworks │ └── base │ ├── packages │ └── SystemUI │ │ └── res │ │ └── values │ │ └── dimens.xml │ └── core │ └── res │ └── res │ └── values │ └── config.xml ├── vndk.rc ├── overlay-gapps └── frameworks │ └── base │ └── core │ └── res │ └── res │ └── values │ └── config.xml ├── interfaces.xml ├── phh-on-boot.sh ├── gapps.mk ├── vndk-detect ├── bluetooth └── bdroid_buildcfg.h ├── generate.sh ├── base.mk ├── ld.config.27.txt └── ld.config.26.txt /empty: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /files/samsung-sec_e-pen.idc: -------------------------------------------------------------------------------- 1 | touch.orientationAware = 1 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .*.swp 2 | treble_*mk 3 | AndroidProducts.mk 4 | -------------------------------------------------------------------------------- /sepolicy/huawei.te: -------------------------------------------------------------------------------- 1 | allow ueventd proc:file r_file_perms; 2 | -------------------------------------------------------------------------------- /su/su.rc: -------------------------------------------------------------------------------- 1 | service sudaemon /system/bin/phh-su --daemon 2 | class main 3 | -------------------------------------------------------------------------------- /empty-permission.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /sepolicy/hardware_overlay.te: -------------------------------------------------------------------------------- 1 | allow priv_app overlay_service:service_manager find; 2 | -------------------------------------------------------------------------------- /su/su: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/su/su -------------------------------------------------------------------------------- /sepolicy/genfs_contexts: -------------------------------------------------------------------------------- 1 | genfscon sysfs /board_properties u:object_r:sysfs_board_properties:s0 2 | -------------------------------------------------------------------------------- /sepolicy/samsung.te: -------------------------------------------------------------------------------- 1 | type boot_prop, property_type; 2 | 3 | set_prop(system_server, boot_prop); 4 | 5 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | You'll need to call generate.sh in this folder to generate the Makefiles to build the Treble targets 2 | -------------------------------------------------------------------------------- /files/sony-gpio-keys.kl: -------------------------------------------------------------------------------- 1 | key 114 VOLUME_DOWN 2 | key 115 VOLUME_UP 3 | 4 | key 528 FOCUS 5 | key 766 CAMERA 6 | -------------------------------------------------------------------------------- /fixSPL/getSPL.arm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/fixSPL/getSPL.arm -------------------------------------------------------------------------------- /sepolicy/service_contexts: -------------------------------------------------------------------------------- 1 | qti.ims.ext u:object_r:radio_service:s0 2 | -------------------------------------------------------------------------------- /sepolicy/vold.te: -------------------------------------------------------------------------------- 1 | allow vold system_data_file:lnk_file { unlink }; 2 | allow mediaextractor sdcard_type:file read; 3 | -------------------------------------------------------------------------------- /twrp/busybox-armv7l: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/twrp/busybox-armv7l -------------------------------------------------------------------------------- /base-pre.mk: -------------------------------------------------------------------------------- 1 | #Use a more decent APN config 2 | PRODUCT_COPY_FILES += \ 3 | device/sample/etc/apns-full-conf.xml:system/etc/apns-conf.xml 4 | -------------------------------------------------------------------------------- /rr.mk: -------------------------------------------------------------------------------- 1 | $(call inherit-product, vendor/rr/config/common_full_phone.mk) 2 | $(call inherit-product, device/rr/sepolicy/common/sepolicy.mk) 3 | -------------------------------------------------------------------------------- /huawei_charger/files/1080x1920/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1080x1920/bg.png -------------------------------------------------------------------------------- /huawei_charger/files/1080x2160/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1080x2160/bg.png -------------------------------------------------------------------------------- /huawei_charger/files/1080x2280/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1080x2280/bg.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/bg.png -------------------------------------------------------------------------------- /huawei_charger/files/1440x2560/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1440x2560/bg.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/bg.png -------------------------------------------------------------------------------- /huawei_charger/files/720x1280/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/720x1280/bg.png -------------------------------------------------------------------------------- /huawei_charger/files/720x1440/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/720x1440/bg.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/bg.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/number_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/number_0.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/number_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/number_1.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/number_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/number_2.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/number_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/number_3.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/number_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/number_4.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/number_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/number_5.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/number_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/number_6.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/number_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/number_7.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/number_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/number_8.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/number_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/number_9.png -------------------------------------------------------------------------------- /sepolicy/hostapd.te: -------------------------------------------------------------------------------- 1 | type hostapd, domain; 2 | 3 | allow hostapd wifi_data_file:dir create_dir_perms; 4 | allow hostapd wifi_data_file:file create_file_perms; 5 | -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/number_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/number_0.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/number_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/number_1.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/number_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/number_2.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/number_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/number_3.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/number_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/number_4.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/number_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/number_5.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/number_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/number_6.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/number_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/number_7.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/number_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/number_8.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/number_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/number_9.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/number_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/number_0.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/number_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/number_1.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/number_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/number_2.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/number_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/number_3.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/number_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/number_4.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/number_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/number_5.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/number_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/number_6.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/number_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/number_7.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/number_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/number_8.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/number_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/number_9.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/battery_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/battery_01.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/battery_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/battery_02.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/battery_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/battery_03.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/battery_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/battery_04.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/battery_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/battery_05.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/battery_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/battery_06.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/battery_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/battery_07.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/battery_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/battery_08.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/battery_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/battery_09.png -------------------------------------------------------------------------------- /huawei_charger/files/1080x1920/empty_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1080x1920/empty_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/1080x1920/full_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1080x1920/full_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/1080x2160/empty_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1080x2160/empty_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/1080x2160/full_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1080x2160/full_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/1080x2280/empty_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1080x2280/empty_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/1080x2280/full_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1080x2280/full_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/battery_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/battery_01.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/battery_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/battery_02.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/battery_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/battery_03.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/battery_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/battery_04.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/battery_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/battery_05.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/battery_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/battery_06.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/battery_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/battery_07.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/battery_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/battery_08.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/battery_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/battery_09.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/charging_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/charging_12.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/cur_surface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/cur_surface.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/empty_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/empty_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/full_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/full_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/percent_sign.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/percent_sign.png -------------------------------------------------------------------------------- /huawei_charger/files/1440x2560/empty_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1440x2560/empty_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/1440x2560/full_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1440x2560/full_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/battery_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/battery_01.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/battery_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/battery_02.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/battery_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/battery_03.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/battery_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/battery_04.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/battery_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/battery_05.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/battery_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/battery_06.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/battery_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/battery_07.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/battery_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/battery_08.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/battery_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/battery_09.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/charging_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/charging_12.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/cur_surface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/cur_surface.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/empty_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/empty_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/full_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/full_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/percent_sign.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/percent_sign.png -------------------------------------------------------------------------------- /huawei_charger/files/720x1280/empty_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/720x1280/empty_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/720x1280/full_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/720x1280/full_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/720x1440/empty_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/720x1440/empty_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/720x1440/full_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/720x1440/full_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/charging_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/charging_12.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/cur_surface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/cur_surface.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/empty_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/empty_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/full_charge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/full_charge.png -------------------------------------------------------------------------------- /huawei_charger/files/800x1280/percent_sign.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/800x1280/percent_sign.png -------------------------------------------------------------------------------- /gapps-go.mk: -------------------------------------------------------------------------------- 1 | DONT_DEXPREOPT_PREBUILTS := true 2 | $(call inherit-product, build/make/target/product/go_defaults.mk) 3 | $(call inherit-product, vendor/gapps-go/gapps-go.mk) 4 | -------------------------------------------------------------------------------- /huawei_charger/files/1200x1920/scp_charging_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1200x1920/scp_charging_12.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/fcp_charging_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/fcp_charging_12.png -------------------------------------------------------------------------------- /huawei_charger/files/1600x2560/scp_charging_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperiorOS-Devices/android_device_phh_treble/pie/huawei_charger/files/1600x2560/scp_charging_12.png -------------------------------------------------------------------------------- /lineage.mk: -------------------------------------------------------------------------------- 1 | $(call inherit-product, vendor/lineage/config/common_full_phone.mk) 2 | -include vendor/lineage/build/core/config.mk 3 | -include vendor/lineage/build/core/apicheck.mk 4 | -------------------------------------------------------------------------------- /environ/init.treble-environ.rc: -------------------------------------------------------------------------------- 1 | # set up the global environment 2 | on init 3 | export BOOTCLASSPATH %BOOTCLASSPATH% 4 | export SYSTEMSERVERCLASSPATH %SYSTEMSERVERCLASSPATH% 5 | -------------------------------------------------------------------------------- /havoc.mk: -------------------------------------------------------------------------------- 1 | $(call inherit-product, vendor/havoc/config/common.mk) 2 | $(call inherit-product, device/havoc/sepolicy/common/sepolicy.mk) 3 | -include vendor/havoc/build/core/config.mk 4 | -------------------------------------------------------------------------------- /system.prop: -------------------------------------------------------------------------------- 1 | ro.adb.secure=0 2 | #Some devices have sdcardfs kernel panicing on 8.0 3 | #Disable for everyone for the moment 4 | ro.sys.sdcardfs=0 5 | persist.sys.overlay.nightmode=true 6 | -------------------------------------------------------------------------------- /twrp/twrp.rc: -------------------------------------------------------------------------------- 1 | on post-fs 2 | exec - root -- /system/bin/vndk-detect 3 | export LD_CONFIG_FILE /system/etc/ld.config.${persist.sys.vndk}.txt 4 | exec u:r:phhsu_daemon:s0 root -- /system/bin/twrp.sh 5 | -------------------------------------------------------------------------------- /cmds/mtk-sms-fwk-ready.rc: -------------------------------------------------------------------------------- 1 | on property:sys.boot_completed=1 2 | exec u:r:phhsu_daemon:s0 root -- /system/bin/mtk-sms-fwk-ready slot1 3 | exec u:r:phhsu_daemon:s0 root -- /system/bin/mtk-sms-fwk-ready slot2 4 | -------------------------------------------------------------------------------- /sepolicy/board_properties.te: -------------------------------------------------------------------------------- 1 | type sysfs_board_properties, fs_type, sysfs_type; 2 | 3 | allow system_server sysfs_board_properties:dir search; 4 | allow system_server sysfs_board_properties:file r_file_perms; 5 | -------------------------------------------------------------------------------- /files/huawei-fingerprint.kl: -------------------------------------------------------------------------------- 1 | key 28 HOME VIRTUAL 2 | key 105 APP_SWITCH 3 | key 106 APP_SWITCH 4 | key 118 WAKEUP 5 | key 174 BACK 6 | key 108 SYSTEM_NAVIGATION_DOWN 7 | key 103 SYSTEM_NAVIGATION_UP 8 | -------------------------------------------------------------------------------- /aex.mk: -------------------------------------------------------------------------------- 1 | $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk) 2 | $(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk) 3 | $(call inherit-product, vendor/aosp/common.mk) 4 | TARGET_BOOT_ANIMATION_RES := 1080 5 | -------------------------------------------------------------------------------- /su/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH := $(call my-dir) 2 | 3 | include $(CLEAR_VARS) 4 | 5 | LOCAL_SRC_FILES := su 6 | LOCAL_MODULE := phh-su 7 | LOCAL_MODULE_CLASS := EXECUTABLES 8 | 9 | LOCAL_INIT_RC := su.rc 10 | 11 | include $(BUILD_PREBUILT) 12 | -------------------------------------------------------------------------------- /phhgsi_arm64_a/BoardConfig.mk: -------------------------------------------------------------------------------- 1 | include build/make/target/board/generic_arm64_a/BoardConfig.mk 2 | include device/phh/treble/board-base.mk 3 | 4 | ifeq ($(BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE),) 5 | BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2147483648 6 | endif 7 | -------------------------------------------------------------------------------- /phhgsi_arm_a/BoardConfig.mk: -------------------------------------------------------------------------------- 1 | include build/make/target/board/generic_arm_a/BoardConfig.mk 2 | include device/phh/treble/board-base.mk 3 | 4 | ifeq ($(BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE),) 5 | BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1313583104 6 | endif 7 | -------------------------------------------------------------------------------- /phhgsi_arm_ab/BoardConfig.mk: -------------------------------------------------------------------------------- 1 | include build/make/target/board/generic_arm_ab/BoardConfig.mk 2 | include device/phh/treble/board-base.mk 3 | 4 | ifeq ($(BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE),) 5 | BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1073741824 6 | endif 7 | -------------------------------------------------------------------------------- /phhgsi_arm64_ab/BoardConfig.mk: -------------------------------------------------------------------------------- 1 | include build/make/target/board/generic_arm64_ab/BoardConfig.mk 2 | include device/phh/treble/board-base.mk 3 | 4 | ifeq ($(BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE),) 5 | BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2147483648 6 | endif 7 | -------------------------------------------------------------------------------- /files/adbd.rc: -------------------------------------------------------------------------------- 1 | service adbd_system /system/bin/adbd --root_seclabel=u:r:su:s0 2 | class core 3 | socket adbd stream 660 system system 4 | disabled 5 | seclabel u:r:adbd:s0 6 | 7 | on property:sys.usb.state=adb && property:sys.phh.five=true 8 | start adbd_system 9 | -------------------------------------------------------------------------------- /files/samsung-9810-floating_feature.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | TRUE 4 | 5 | 6 | -------------------------------------------------------------------------------- /board-base.mk: -------------------------------------------------------------------------------- 1 | TARGET_SYSTEM_PROP := device/phh/treble/system.prop $(TARGET_SYSTEM_PROP) 2 | BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/phh/treble/bluetooth 3 | TARGET_EXFAT_DRIVER := exfat 4 | DEVICE_FRAMEWORK_MANIFEST_FILE := device/phh/treble/framework_manifest.xml 5 | -------------------------------------------------------------------------------- /phhgsi_a64_a/BoardConfig.mk: -------------------------------------------------------------------------------- 1 | include build/make/target/board/generic_arm_a/BoardConfig.mk 2 | include device/phh/treble/board-base.mk 3 | 4 | ifeq ($(BOARD_SYSTEMIMAGE_PARTITION_RESERVED_SIZE),) 5 | BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1572864000 6 | endif 7 | TARGET_USES_64_BIT_BINDER := true 8 | -------------------------------------------------------------------------------- /sepolicy/bootanim.te: -------------------------------------------------------------------------------- 1 | #11-14 21:15:02.748 477 477 I auditd : type=1400 audit(0.0:104): avc: denied { search } for comm="BootAnimation" name="dri" dev="tmpfs" ino=1108 scontext=u:r:bootanim:s0 tcontext=u:object_r:gpu_device:s0 tclass=dir permissive=0 2 | #Seen on some MTK devices 3 | allow bootanim gpu_device:dir r_dir_perms; 4 | -------------------------------------------------------------------------------- /sepolicy/init.te: -------------------------------------------------------------------------------- 1 | #This is in Android 8.0, but not 8.1 2 | domain_trans(init, rootfs, adbd) 3 | 4 | #This is used on Huawei devices to f2fs data partition 5 | allow init userdata_block_device:blk_file relabelto; 6 | allow init userdata_block_device:lnk_file relabelto; 7 | 8 | allow vendor_init vendor_init:capability { sys_module }; 9 | -------------------------------------------------------------------------------- /files/samsung-gpio_keys.kl: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2018 The LineageOS Project 2 | # SPDX-License-Identifier: Apache-2.0 3 | 4 | key 114 VOLUME_DOWN 5 | key 115 VOLUME_UP 6 | key 116 POWER 7 | key 703 ASSIST 8 | key 103 SYSTEM_NAVIGATION_UP 9 | key 105 SYSTEM_NAVIGATION_LEFT 10 | key 106 SYSTEM_NAVIGATION_RIGHT 11 | key 108 SYSTEM_NAVIGATION_DOWN 12 | -------------------------------------------------------------------------------- /sepolicy/treble_app.te: -------------------------------------------------------------------------------- 1 | allow system_app hal_wifi_hostapd_hwservice:hwservice_manager { add find }; 2 | allow system_app hidl_base_hwservice:hwservice_manager { add }; 3 | allow system_app wifi_data_file:dir create_dir_perms; 4 | allow system_app wifi_data_file:file create_file_perms; 5 | 6 | type vendor_camera_prop, property_type; 7 | set_prop(system_app, vendor_camera_prop); 8 | -------------------------------------------------------------------------------- /cmds/mtk-sms-fwk-ready.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using ::vendor::mediatek::hardware::radio::V2_6::IRadio; 6 | using ::android::sp; 7 | 8 | int main(int argc, char **argv) { 9 | auto svc = IRadio::getService(argv[1]); 10 | if(svc != nullptr) 11 | svc->setSmsFwkReady(1); 12 | } 13 | -------------------------------------------------------------------------------- /framework_manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | android.hardware.wifi.hostapd 4 | hwbinder 5 | 1.0 6 | 7 | IHostapd 8 | default 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /carbon.mk: -------------------------------------------------------------------------------- 1 | $(call inherit-product, vendor/carbon/config/gsm.mk) 2 | $(call inherit-product, vendor/carbon/config/common.mk) 3 | PRODUCT_PROPERTY_OVERRIDES += \ 4 | ro.carbon.maintainer="phh" 5 | 6 | #By default, CarbonROM copies it into root/init.carbon.rc 7 | #For this to work in GSI, we put it in /system 8 | PRODUCT_COPY_FILES += \ 9 | vendor/carbon/prebuilt/etc/init.carbon.rc:system/etc/init/init.carbon.rc 10 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/Android.mk: -------------------------------------------------------------------------------- 1 | LOCAL_PATH:= $(call my-dir) 2 | include $(CLEAR_VARS) 3 | 4 | LOCAL_RRO_THEME := DisplayCutoutNoCutout 5 | LOCAL_CERTIFICATE := platform 6 | 7 | LOCAL_SRC_FILES := $(call all-subdir-java-files) 8 | 9 | LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res 10 | 11 | LOCAL_PACKAGE_NAME := NoCutoutOverlay 12 | LOCAL_SDK_VERSION := current 13 | 14 | LOCAL_IS_RUNTIME_RESOURCE_OVERLAY := true 15 | include $(BUILD_PACKAGE) 16 | -------------------------------------------------------------------------------- /sepolicy/file_contexts: -------------------------------------------------------------------------------- 1 | /system/bin/phh-su u:object_r:phhsu_exec:s0 2 | /system/bin/vndk-detect u:object_r:vndk_detect_exec:s0 3 | /system/etc/usb_audio_policy_configuration.xml u:object_r:vendor_configs_file:s0 4 | /system/bin/rw-system.sh u:object_r:phhsu_exec:s0 5 | /system/bin/phh-on-boot.sh u:object_r:phhsu_exec:s0 6 | 7 | /system/bin/fsck\.exfat u:object_r:fsck_exec:s0 8 | /system/bin/fsck\.ntfs u:object_r:fsck_exec:s0 9 | -------------------------------------------------------------------------------- /environ/Android.mk: -------------------------------------------------------------------------------- 1 | include $(CLEAR_VARS) 2 | 3 | LOCAL_MODULE := treble-environ-rc 4 | LOCAL_MODULE_TAGS := optional 5 | 6 | LOCAL_POST_INSTALL_CMD := \ 7 | mkdir -p $(PRODUCT_OUT)/system/etc/init/ && \ 8 | sed -e 's?%BOOTCLASSPATH%?$(PRODUCT_BOOTCLASSPATH)?g' device/phh/treble/environ/init.treble-environ.rc > $(PRODUCT_OUT)/system/etc/init/init.treble-environ.rc && \ 9 | sed -i -e 's?%SYSTEMSERVERCLASSPATH%?$(PRODUCT_SYSTEM_SERVER_CLASSPATH)?g' $(PRODUCT_OUT)/system/etc/init/init.treble-environ.rc 10 | 11 | include $(BUILD_PHONY_PACKAGE) 12 | -------------------------------------------------------------------------------- /vndk.rc: -------------------------------------------------------------------------------- 1 | on post-fs 2 | exec - root -- /system/bin/vndk-detect 3 | exec - root -- /system/bin/rw-system.sh 4 | mount none /system/etc/usb_audio_policy_configuration.xml /vendor/etc/usb_audio_policy_configuration.xml bind 5 | export LD_CONFIG_FILE /system/etc/ld.config.${persist.sys.vndk}.txt 6 | 7 | service phh_on_boot /system/bin/phh-on-boot.sh 8 | oneshot 9 | disabled 10 | 11 | on property:sys.boot_completed=1 12 | start phh_on_boot 13 | chown wifi system /data/misc/wifi 14 | chown system wifi /data/misc/wifi/hostapd.conf 15 | -------------------------------------------------------------------------------- /overlay-gapps/frameworks/base/core/res/res/values/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.google.android.gms/.autofill.service.AutofillService 4 | com.google.android.marvin.talkback/.TalkBackService 5 | com.google.android.gms 6 | com.google.android.gms 7 | 8 | -------------------------------------------------------------------------------- /cmds/op-fp.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using ::vendor::oneplus::fingerprint::extension::V1_0::IVendorFingerprintExtensions; 5 | using ::android::sp; 6 | 7 | int main(int argc, char **argv) { 8 | auto svc = IVendorFingerprintExtensions::getService(); 9 | if(argc!=2) return 1; 10 | int v = atoi(argv[0]); 11 | auto ret = svc->updateStatus(v); 12 | if(!ret.isOk()) { 13 | std::cerr << "HWBinder call failed" << std::endl; 14 | } 15 | std::cout << "updateStatus returned " << ret << std::endl; 16 | } 17 | -------------------------------------------------------------------------------- /cmds/xiaomi-fp.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using ::vendor::xiaomi::hardware::fingerprintextension::V1_0::IXiaomiFingerprint; 6 | using ::android::sp; 7 | 8 | int main(int argc, char **argv) { 9 | auto svc = IXiaomiFingerprint::getService(); 10 | if(svc == nullptr) { 11 | std::cerr << "Failed getting IDisplayFeature" << std::endl; 12 | return -1; 13 | } 14 | if(argc != 3) { 15 | fprintf(stderr, "Usage: %s \n", argv[0]); 16 | return -2; 17 | } 18 | uint32_t cmd = (uint32_t)strtoll(argv[1], NULL, 16); 19 | uint32_t value = (uint32_t)strtoll(argv[2], NULL, 16); 20 | svc->extCmd(cmd, value); 21 | } 22 | -------------------------------------------------------------------------------- /interfaces.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 9 | 11 | 13 | 14 | -------------------------------------------------------------------------------- /phh-on-boot.sh: -------------------------------------------------------------------------------- 1 | #!/system/bin/sh 2 | 3 | [ "$(getprop vold.decrypt)" = "trigger_restart_min_framework" ] && exit 0 4 | if [ -f /vendor/bin/mtkmal ];then 5 | if [ "$(getprop persist.mtk_ims_support)" = 1 ] || [ "$(getprop persist.mtk_epdg_support)" = 1 ];then 6 | setprop persist.mtk_ims_support 0 7 | setprop persist.mtk_epdg_support 0 8 | reboot 9 | fi 10 | fi 11 | 12 | #Clear looping services 13 | sleep 30 14 | getprop | \ 15 | grep restarting | \ 16 | sed -nE -e 's/\[([^]]*).*/\1/g' -e 's/init.svc.(.*)/\1/p' | 17 | while read -r svc ;do 18 | setprop ctl.stop "$svc" 19 | done 20 | 21 | if grep -qF android.hardware.boot /vendor/manifest.xml || grep -qF android.hardware.boot /vendor/etc/vintf/manifest.xml ;then 22 | bootctl mark-boot-successful 23 | fi 24 | -------------------------------------------------------------------------------- /overlay/frameworks/base/packages/SystemUI/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 18 | 19 | 20 | 4dp 21 | 22 | -------------------------------------------------------------------------------- /sepolicy/vndk_detect.te: -------------------------------------------------------------------------------- 1 | type vndk_detect, coredomain, domain; 2 | type vndk_detect_exec, exec_type, file_type; 3 | 4 | init_daemon_domain(vndk_detect); 5 | allow vndk_detect sepolicy_file:file r_file_perms; 6 | set_prop(vndk_detect,system_prop); 7 | set_prop(vndk_detect,debug_prop); 8 | 9 | allow vndk_detect shell_exec:file rx_file_perms; 10 | allow vndk_detect toolbox_exec:file rx_file_perms; 11 | #/system/bin/grep 12 | allow vndk_detect system_file:file rx_file_perms; 13 | 14 | #mount -o bind /system/bin/adbd /sbin/adbd 15 | allow vndk_detect adbd_exec:file { getattr read }; 16 | allow vndk_detect rootfs:file { mounton getattr }; 17 | allow vndk_detect self:capability { sys_admin }; 18 | 19 | #mount -o bind /system/etc/usb_audio_policy_configuration.xml /vendor/etc/usb_audio_policy_configuration.xml 20 | allow init vendor_configs_file:file { getattr mounton }; 21 | 22 | #/sys/module/five 23 | allow vndk_detect sysfs:file r_file_perms; 24 | allow vndk_detect sysfs:dir r_dir_perms; 25 | -------------------------------------------------------------------------------- /fixSPL/getSPL.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | int main(int argc, char **argv) { 11 | if(argc!=3) { 12 | fprintf(stderr, "Usage: %s \n", argv[0]); 13 | exit(-1); 14 | } 15 | int fd = open(argv[1], O_RDONLY); 16 | lseek(fd, 11*4, SEEK_SET); 17 | uint32_t val = 0; 18 | read(fd, &val, sizeof(val)); 19 | int android = val >> 11; 20 | int a = android >> 14; 21 | int b = (android >> 7) & 0x7f; 22 | int c = android & 0x7f; 23 | 24 | int spl = val & 0x7ff; 25 | int y = 2000 + (spl >> 4); 26 | int m = spl & 0xf; 27 | 28 | fprintf(stderr, "Android: %d.%d.%d\n", a, b, c); 29 | fprintf(stderr, "SPL: %d-%d-01\n", y, m); 30 | 31 | if(strcmp(argv[2], "android") == 0) { 32 | printf("%d.%d.%d", a, b, c); 33 | } else if(strcmp(argv[2], "spl") == 0) { 34 | printf("%04d-%02d-%02d", y, m, 1); 35 | } 36 | 37 | return 0; 38 | } 39 | -------------------------------------------------------------------------------- /sepolicy/qualcomm.te: -------------------------------------------------------------------------------- 1 | type rild, domain; 2 | 3 | #me.phh.treble.qti.audio is system-signed 4 | allow system_app hal_telephony_hwservice:hwservice_manager { find }; 5 | allow { rild system_app } { rild system_app }:binder { call transfer }; 6 | 7 | #Pixel 1 8 | type vnd_qcril_audio_hwservice, hwservice_manager_type; 9 | allow system_app vnd_qcril_audio_hwservice:hwservice_manager { find }; 10 | 11 | #Pixel 2 12 | type vnd_qcrilhook_hwservice, hwservice_manager_type; 13 | allow system_app vnd_qcrilhook_hwservice:hwservice_manager { find }; 14 | 15 | #OP6 16 | allow system_app hal_telephony_hwservice:hwservice_manager { find }; 17 | 18 | # cf https://github.com/phhusson/treble_experimentations/issues/131 19 | # SELinux : avc: denied { add } for interface=android.hardware.tetheroffload.control::IOffloadControl pid=15220 scontext=u:r:ipacm:s0 tcontext=u:object_r:hal_tetheroffload_hwservice:s0 tclass=hwservice_manager permissive=0 20 | type ipacm, hwservice_manager_type; 21 | allow ipacm hal_tetheroffload_hwservice:hwservice_manager { add }; 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-am/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "ደብቅ" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-ar/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "إخفاء" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-bn/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "লুকান" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-ca/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Amaga" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-cs/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Skrýt" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-da/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Skjul" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-et/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Peida" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-is/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Fela" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-iw/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "הסתר" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-ja/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "非表示" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-km/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "លាក់" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-ko/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "숨기기" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-mn/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Нуух" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-mr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "लपवा" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-nb/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Skjul" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-pa/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "ਲੁਕਾਓ" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-pl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Ukryj" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-sk/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Skryť" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-sq/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Fshih" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-sv/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Dölj" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-sw/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Ficha" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-ta/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "மறை" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-th/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "ซ่อน" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-tl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Itago" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-tr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Gizle" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-vi/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Ẩn" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-zu/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Fihla" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-af/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Versteek" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-as/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "লুকুৱাওক" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-az/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Gizlədin" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-be/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Схаваць" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-bg/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Скриване" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-bs/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Sakrij" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-de/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Ausblenden" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-el/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Απόκρυψη" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-en-rAU/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Hide" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-en-rCA/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Hide" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-en-rGB/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Hide" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-en-rIN/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Hide" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-es/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Ocultar" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-eu/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Ezkutatu" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-fa/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "پنهان کردن" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-fi/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Piilota" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-fr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Masquer" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-gl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Ocultar" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-gu/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "છુપાવો" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-hi/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "छिपाएं" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-hr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Sakrij" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-hu/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Elrejtés" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-hy/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Թաքցնել" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-it/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Nascondi" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-ka/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "დამალვა" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-kk/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Жасыру" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-kn/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "ಮರೆಮಾಡು" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-ky/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Жашыруу" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-lo/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "ເຊື່ອງ" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-lt/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Slėpti" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-lv/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Paslēpt" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-mk/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Сокриј" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-ml/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "മറയ്ക്കുക" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-my/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "ဝှက်ပါ" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-nl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Verbergen" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-or/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "ଲୁଚାନ୍ତୁ" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-pt/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Ocultar" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-ro/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Ascundeți" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-ru/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Скрыть" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-si/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "සඟවන්න" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-sl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Skrivanje" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-sr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Сакриј" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-te/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "దాస్తుంది" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-uk/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Сховати" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-ur/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "چھپائیں" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-uz/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Berkitish" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-zh-rCN/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "隐藏" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-zh-rHK/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "隱藏" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-zh-rTW/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "隱藏" 21 | 22 | -------------------------------------------------------------------------------- /gapps.mk: -------------------------------------------------------------------------------- 1 | PRODUCT_COPY_FILES += \ 2 | device/phh/treble/empty-permission.xml:system/etc/permissions/com.google.android.camera2.xml \ 3 | device/phh/treble/empty-permission.xml:system/etc/permissions/com.google.android.camera.experimental2015.xml \ 4 | device/phh/treble/empty-permission.xml:system/etc/permissions/com.google.android.camera.experimental2016.xml \ 5 | device/phh/treble/empty-permission.xml:system/etc/permissions/com.google.android.camera.experimental2017.xml 6 | 7 | DEVICE_PACKAGE_OVERLAYS += device/phh/treble/overlay-gapps 8 | GAPPS_VARIANT := pico 9 | DONT_DEXPREOPT_PREBUILTS := true 10 | WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := true 11 | GAPPS_FORCE_PACKAGE_OVERRIDES := true 12 | GAPPS_FORCE_BROWSER_OVERRIDES := true 13 | GAPPS_FORCE_WEBVIEW_OVERRIDES := true 14 | PRODUCT_PACKAGES += \ 15 | Chrome \ 16 | CalculatorGoogle \ 17 | PrebuiltDeskClockGoogle \ 18 | CalendarGooglePrebuilt \ 19 | LatinImeGoogle \ 20 | phh-overrides 21 | 22 | $(call inherit-product, vendor/opengapps/build/opengapps-packages.mk) 23 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-b+sr+Latn/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Sakrij" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-es-rUS/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Ocultar" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-fr-rCA/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Masquer" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-in/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Sembunyikan" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-ms/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Sembunyikan" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-ne/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "लुकाउनुहोस्" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-pt-rBR/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Ocultar" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-pt-rPT/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "Ocultar" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-land/config.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 28dp 20 | 21 | 156dp 22 | 23 | -------------------------------------------------------------------------------- /cmds/xiaomi-display-feature.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using ::vendor::xiaomi::hardware::displayfeature::V1_0::IDisplayFeature; 6 | using ::android::sp; 7 | 8 | int main(int argc, char **argv) { 9 | auto svc = IDisplayFeature::getService(); 10 | if(svc == nullptr) { 11 | std::cerr << "Failed getting IDisplayFeature" << std::endl; 12 | return -1; 13 | } 14 | if(argc != 3) { 15 | fprintf(stderr, "Usage: %s \n", argv[0]); 16 | return -2; 17 | } 18 | int mode = -1; 19 | std::string modeArg(argv[1]); 20 | if(modeArg == "ADAPT") 21 | mode = 0; 22 | if(modeArg == "ENHANCE") 23 | mode = 1; 24 | if(modeArg == "STANDARD") 25 | mode = 2; 26 | if(modeArg == "EYECARE") 27 | mode = 3; 28 | if(modeArg == "MONOCHROME") 29 | mode = 4; 30 | if(modeArg == "SUNLIGHT") 31 | mode = 8; 32 | if(modeArg == "NIGHTLIGHT") 33 | mode = 9; 34 | if(modeArg == "HIGHLIGHT") 35 | mode = 11; 36 | 37 | svc->setFeature(0, mode, atoi(argv[2]), 255); 38 | } 39 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | Hide 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values-en-rXC/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 20 | "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‎‎‏‏‏‎‎‎‏‏‎‏‏‎‎‎‎‏‏‎‏‏‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‎‎‏‏‎‏‏‎Hide‎‏‎‎‏‎" 21 | 22 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 21 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /vndk-detect: -------------------------------------------------------------------------------- 1 | #!/system/bin/sh 2 | 3 | grep -oE 'init_[0-9_]+' /vendor/etc/selinux/nonplat_sepolicy.cil | \ 4 | uniq | \ 5 | sort -n | \ 6 | head -n 1 | \ 7 | sed -E 's/.*init_([0-9]+).*/\1/g' | \ 8 | while read version;do 9 | setprop persist.sys.vndk $version 10 | done 11 | 12 | if [ -d /sys/module/five ];then 13 | mount -o bind /system/phh/empty /sbin/adbd 14 | setprop sys.phh.five true 15 | else 16 | mount -o bind /system/bin/adbd /sbin/adbd 17 | fi 18 | if ( getprop ro.hardware | grep -qE '(kirin970|hi3660|hi6250|hi3670)' );then 19 | FOUND_HUAWEI=1 20 | fi 21 | 22 | if getprop ro.vendor.build.fingerprint |grep -qiE '(huawei|honor|hi3660)';then 23 | FOUND_HUAWEI=1 24 | fi 25 | 26 | if [ -n "$FOUND_HUAWEI" ];then 27 | setprop persist.sys.overlay.huawei true 28 | setprop persist.sys.bt_acl_bypass true 29 | setprop persist.sys.camera.huawei true 30 | setprop persist.sys.radio.ussd.fix true 31 | setprop persist.sys.radio.huawei true 32 | setprop debug.hwui.profile true 33 | fi 34 | 35 | if getprop ro.hardware |grep -qiE -e qcom -e judyln -e judypn;then 36 | FOUND_QCOM=1 37 | if getprop ro.vendor.build.fingerprint |grep -qiE '^samsung';then 38 | setprop persist.sys.overlay.devinputjack false 39 | else 40 | setprop persist.sys.overlay.devinputjack true 41 | fi 42 | fi 43 | -------------------------------------------------------------------------------- /files/oneplus6-synaptics_s3320.kl: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2015, The Linux Foundation. All rights reserved. 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are 5 | # met: 6 | # * Redistributions of source code must retain the above copyright 7 | # notice, this list of conditions and the following disclaimer. 8 | # * Redistributions in binary form must reproduce the above 9 | # copyright notice, this list of conditions and the following 10 | # disclaimer in the documentation and/or other materials provided 11 | # with the distribution. 12 | # * Neither the name of The Linux Foundation nor the names of its 13 | # contributors may be used to endorse or promote products derived 14 | # from this software without specific prior written permission. 15 | # 16 | # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 17 | # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 19 | # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 20 | # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 | # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 | # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 23 | # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24 | # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 26 | # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | 28 | key 62 WAKEUP 29 | -------------------------------------------------------------------------------- /files/samsung-sec_touchscreen.kl: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2015, The Linux Foundation. All rights reserved. 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are 5 | # met: 6 | # * Redistributions of source code must retain the above copyright 7 | # notice, this list of conditions and the following disclaimer. 8 | # * Redistributions in binary form must reproduce the above 9 | # copyright notice, this list of conditions and the following 10 | # disclaimer in the documentation and/or other materials provided 11 | # with the distribution. 12 | # * Neither the name of The Linux Foundation nor the names of its 13 | # contributors may be used to endorse or promote products derived 14 | # from this software without specific prior written permission. 15 | # 16 | # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 17 | # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 19 | # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 20 | # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 | # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 | # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 23 | # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24 | # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 26 | # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | 28 | key 172 WAKEUP 29 | 30 | -------------------------------------------------------------------------------- /cmds/vibrator-lge.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | using ::vendor::lge::hardware::vibrator::V1_0::IVibratorEx; 5 | using ::android::sp; 6 | 7 | int main(int argc, char **argv) { 8 | auto svc = IVibratorEx::getService(); 9 | 10 | auto supportsAmplitude = svc->supportsAmplitudeControl(); 11 | if(supportsAmplitude.isOk()) 12 | std::cerr << "supportsAmplitudeControl? " << supportsAmplitude << std::endl; 13 | 14 | /* 15 | public int on(int timeoutMs) throws RemoteException { 16 | public int off() throws RemoteException { 17 | public int setAmplitude(byte amplitude) throws RemoteException { 18 | public void perform(int effect, byte strength, performCallback _hidl_cb) throws RemoteException { 19 | public int playEffectWithStrength(ArrayList effectData, int effectIndex, int strength) throws RemoteException { 20 | */ 21 | 22 | 23 | if(strcmp(argv[1], "on") == 0) { 24 | int v = 100; 25 | if(argc>=3) 26 | v = atoi(argv[2]); 27 | auto ret = svc->on(v); 28 | if(ret.isOk()) { 29 | android::hardware::vibrator::V1_0::Status r = ret; 30 | std::cout << "vibrator on returned " << (int)r << std::endl; 31 | } else { 32 | std::cerr << "Binder failed request" << std::endl; 33 | } 34 | } else if(strcmp(argv[1], "amplitude") == 0) { 35 | int v = 127; 36 | if(argc>=3) 37 | v = atoi(argv[2]); 38 | auto ret = svc->setAmplitude(v); 39 | if(ret.isOk()) { 40 | android::hardware::vibrator::V1_0::Status r = ret; 41 | std::cout << "vibrator amplitude returned " << (int)r << std::endl; 42 | } else { 43 | std::cerr << "Binder failed request" << std::endl; 44 | } 45 | } else { 46 | std::cerr << "Not supported (yet)" << std::endl; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /overlay/frameworks/base/core/res/res/values/config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | "usb\\d" 5 | "rndis\\d" 6 | 7 | 8 | 9 | "wlan0" 10 | "softap.*" 11 | "wifi_br0" 12 | "wigig0" 13 | 14 | 15 | 16 | bnep\\d 17 | "bt-pan" 18 | 19 | 20 | true 21 | true 22 | "M50 0C77.6 0 100 22.4 100 50C100 77.6 77.6 100 50 100C22.4 100 0 77.6 0 50C0 22.4 22.4 0 50 0Z" 23 | true 24 | 25 | com.android.wallpaperpicker 26 | true 27 | 31 | 32 | com.android.systemui/com.android.systemui.doze.DozeService 33 | true 34 | true 35 | 8.0dip 36 | 4.0dip 37 | 38 | -------------------------------------------------------------------------------- /files/mimix3-gpio-keys.kl: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2013, The Linux Foundation. All rights reserved. 2 | # 3 | # Redistribution and use in source and binary forms, with or without 4 | # modification, are permitted provided that the following conditions are 5 | # met: 6 | # * Redistributions of source code must retain the above copyright 7 | # notice, this list of conditions and the following disclaimer. 8 | # * Redistributions in binary form must reproduce the above 9 | # copyright notice, this list of conditions and the following 10 | # disclaimer in the documentation and/or other materials provided 11 | # with the distribution. 12 | # * Neither the name of The Linux Foundation nor the names of its 13 | # contributors may be used to endorse or promote products derived 14 | # from this software without specific prior written permission. 15 | # 16 | # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 17 | # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 19 | # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 20 | # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 | # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 | # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 23 | # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24 | # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 26 | 27 | key 115 VOLUME_UP 28 | key 114 VOLUME_DOWN 29 | key 102 HOME 30 | key 528 FOCUS 31 | key 766 CAMERA 32 | key 689 VOICE_ASSIST 33 | -------------------------------------------------------------------------------- /bluetooth/bdroid_buildcfg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013, The Linux Foundation. All rights reserved. 3 | * Not a Contribution, Apache license notifications and license are retained 4 | * for attribution purposes only. 5 | * 6 | * Copyright (C) 2012 The Android Open Source Project 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | #ifndef _BDROID_BUILDCFG_H 22 | #define _BDROID_BUILDCFG_H 23 | 24 | //#include 25 | #include 26 | 27 | static inline const char* BtmDefLocalName() 28 | { 29 | #if 0 30 | static char product_device[PROPERTY_VALUE_MAX]; 31 | //Huawei-defined property 32 | property_get("ro.config.marketing_name", product_device, ""); 33 | 34 | if (strcmp(product_device, "") != 0) 35 | return product_device; 36 | 37 | // Fallback to ro.product.model 38 | return ""; 39 | #endif 40 | return "hello"; 41 | } 42 | 43 | static inline int BtmBypassExtraAclSetup() { 44 | #if 0 45 | int8_t prop = property_get_bool("persist.sys.bt_acl_bypass", false); 46 | return prop == true; 47 | #endif 48 | return 1; 49 | } 50 | 51 | #define BTM_DEF_LOCAL_NAME BtmDefLocalName() 52 | #define BTM_BYPASS_EXTRA_ACL_SETUP BtmBypassExtraAclSetup() 53 | 54 | #endif 55 | -------------------------------------------------------------------------------- /cmds/Android.bp: -------------------------------------------------------------------------------- 1 | cc_binary { 2 | name: "lightsctl", 3 | srcs: [ 4 | "lightsctl.cpp", 5 | ], 6 | shared_libs: [ 7 | "android.hardware.light@2.0", 8 | "libutils", 9 | "libhidlbase", 10 | ], 11 | } 12 | 13 | cc_binary { 14 | name: "op-fp", 15 | srcs: [ 16 | "op-fp.cpp", 17 | ], 18 | shared_libs: [ 19 | "vendor.oneplus.fingerprint.extension@1.0", 20 | "libutils", 21 | "libhidlbase", 22 | ], 23 | } 24 | 25 | cc_binary { 26 | name: "uevent", 27 | srcs: [ 28 | "uevent.cpp", 29 | ], 30 | } 31 | 32 | cc_binary { 33 | name: "simg2img_simple", 34 | srcs: [ 35 | "simg2img_simple.cpp", 36 | ], 37 | host_supported: true, 38 | } 39 | 40 | cc_binary { 41 | name: "vibrator-lge", 42 | srcs: [ 43 | "vibrator-lge.cpp", 44 | ], 45 | shared_libs: [ 46 | "vendor.lge.hardware.vibrator@1.0", 47 | "libutils", 48 | "libhidlbase", 49 | ], 50 | } 51 | 52 | cc_binary { 53 | name: "mtk-sms-fwk-ready", 54 | srcs: [ 55 | "mtk-sms-fwk-ready.cpp", 56 | ], 57 | shared_libs: [ 58 | "vendor.mediatek.hardware.radio@2.6", 59 | "libutils", 60 | "libhidlbase", 61 | ], 62 | init_rc: [ 63 | "mtk-sms-fwk-ready.rc" 64 | ], 65 | } 66 | 67 | cc_binary { 68 | name: "xiaomi-display-feature", 69 | srcs: [ 70 | "xiaomi-display-feature.cpp", 71 | ], 72 | shared_libs: [ 73 | "vendor.xiaomi.hardware.displayfeature@1.0", 74 | "libutils", 75 | "libhidlbase", 76 | ], 77 | } 78 | 79 | cc_binary { 80 | name: "xiaomi-fp", 81 | srcs: [ 82 | "xiaomi-fp.cpp", 83 | ], 84 | shared_libs: [ 85 | "vendor.xiaomi.hardware.fingerprintextension@1.0", 86 | "libutils", 87 | "libhidlbase", 88 | ], 89 | } 90 | 91 | cc_binary { 92 | name: "lightsctl-sec", 93 | srcs: [ 94 | "lightsctl-sec.cpp", 95 | ], 96 | shared_libs: [ 97 | "vendor.samsung.hardware.light@2.0", 98 | "libutils", 99 | "libhidlbase", 100 | ], 101 | } 102 | -------------------------------------------------------------------------------- /overlay/packages/apps/overlays/NoCutoutOverlay/res/values/config.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 22 | false 23 | 24 | 26 | true 27 | 28 | 29 | 28dp 30 | 28dp 31 | 33 | @*android:dimen/rounded_corner_radius_bottom 34 | 35 | 36 | 48dp 37 | 38 | 176dp 39 | 40 | 41 | -------------------------------------------------------------------------------- /cmds/uevent.cpp: -------------------------------------------------------------------------------- 1 | typedef unsigned short int sa_family_t; 2 | #define __KERNEL_STRICT_NAMES 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | //From a uevent patch for hal 12 | #define HOTPLUG_BUFFER_SIZE 1024 13 | #define HOTPLUG_NUM_ENVP 32 14 | #define OBJECT_SIZE 512 15 | 16 | #ifndef NETLINK_KOBJECT_UEVENT 17 | #error Your kernel headers are too old, and do not define NETLINK_KOBJECT_UEVENT. You need Linux 2.6.10 or higher for KOBJECT_UEVENT support. 18 | #endif 19 | 20 | int main(int argc, char **argv, char **envp) { 21 | //Start listening 22 | int fd; 23 | struct sockaddr_nl ksnl; 24 | memset(&ksnl, 0x00, sizeof(struct sockaddr_nl)); 25 | ksnl.nl_family=AF_NETLINK; 26 | ksnl.nl_pid=getpid(); 27 | ksnl.nl_groups=0xffffffff; 28 | fd=socket(PF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT); 29 | if (fd==-1) { 30 | printf("Couldn't open kobject-uevent netlink socket"); 31 | perror(""); 32 | exit(1); 33 | } 34 | if (bind(fd, (struct sockaddr *) &ksnl, sizeof(struct sockaddr_nl))<0) { 35 | fprintf (stderr, "Error binding to netlink socket"); 36 | close(fd); 37 | exit(1); 38 | } 39 | 40 | while(1) { 41 | char buffer[HOTPLUG_BUFFER_SIZE + OBJECT_SIZE]; 42 | int buflen; 43 | buflen=recv(fd, &buffer, sizeof(buffer), 0); 44 | if (buflen<0) { 45 | exit(1); 46 | } 47 | printf("%s\n", buffer); 48 | char *pos = buffer + strlen(buffer); 49 | char *end = buffer + buflen; 50 | while(pos < end) { 51 | int l = strlen(pos); 52 | printf("\t%s\n", pos); 53 | pos += l+1; 54 | } 55 | } 56 | 57 | } 58 | -------------------------------------------------------------------------------- /cmds/lightsctl.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using ::android::hardware::light::V2_0::ILight; 6 | using ::android::sp; 7 | 8 | int main(int argc, char **argv) { 9 | auto svc = ILight::getService(); 10 | svc->getSupportedTypes([](auto types) { 11 | for(const auto& type: types) { 12 | std::cout << "Got type " << toString(type) << std::endl; 13 | } 14 | }); 15 | if(argc <= 1) return 0; 16 | if(argc != 3 && argc != 6) return 1; 17 | 18 | std::string typeArg(argv[1]); 19 | android::hardware::light::V2_0::Type type; 20 | if(typeArg == "BACKLIGHT") 21 | type = android::hardware::light::V2_0::Type::BACKLIGHT; 22 | if(typeArg == "KEYBOARD") 23 | type = android::hardware::light::V2_0::Type::KEYBOARD; 24 | if(typeArg == "BUTTONS") 25 | type = android::hardware::light::V2_0::Type::BUTTONS; 26 | if(typeArg == "BATTERY") 27 | type = android::hardware::light::V2_0::Type::BATTERY; 28 | if(typeArg == "NOTIFICATIONS") 29 | type = android::hardware::light::V2_0::Type::NOTIFICATIONS; 30 | if(typeArg == "ATTENTION") 31 | type = android::hardware::light::V2_0::Type::ATTENTION; 32 | if(typeArg == "BLUETOOTH") 33 | type = android::hardware::light::V2_0::Type::BLUETOOTH; 34 | if(typeArg == "WIFI") 35 | type = android::hardware::light::V2_0::Type::WIFI; 36 | std::cout << "Set request type " << toString(type) << std::endl; 37 | 38 | android::hardware::light::V2_0::LightState state; 39 | state.color = (uint32_t)strtoll(argv[2], NULL, 16); 40 | state.flashMode = android::hardware::light::V2_0::Flash::NONE; 41 | state.brightnessMode = android::hardware::light::V2_0::Brightness::USER; 42 | 43 | if(argc == 6) { 44 | std::string flashArg(argv[3]); 45 | if(flashArg == "NONE") 46 | state.flashMode = android::hardware::light::V2_0::Flash::NONE; 47 | if(flashArg == "TIMED") 48 | state.flashMode = android::hardware::light::V2_0::Flash::TIMED; 49 | if(flashArg == "HARDWARE") 50 | state.flashMode = android::hardware::light::V2_0::Flash::HARDWARE; 51 | 52 | state.flashOnMs = atoi(argv[4]); 53 | state.flashOffMs = atoi(argv[5]); 54 | } 55 | std::cout << "Set flash type to " << toString(state.flashMode) << std::endl; 56 | 57 | auto ret = svc->setLight(type, state); 58 | std::cout << "Set light returned " << toString(ret) << std::endl; 59 | } 60 | -------------------------------------------------------------------------------- /generate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | rom_script='' 4 | if [ -n "$1" ];then 5 | if echo "$1" | grep -qF /;then 6 | rom_script='' 7 | for i in "$@";do 8 | rom_script="$rom_script"$'\n''$(call inherit-product, '$i')' 9 | done 10 | else 11 | rom_script='$(call inherit-product, device/phh/treble/'$1'.mk)' 12 | fi 13 | fi 14 | 15 | echo 'PRODUCT_MAKEFILES := \' > AndroidProducts.mk 16 | 17 | for part in a ab;do 18 | for apps in vanilla gapps foss gapps-go;do 19 | for arch in arm64 arm a64;do 20 | for su in yes no;do 21 | apps_suffix="" 22 | apps_script="" 23 | apps_name="" 24 | extra_packages="" 25 | vndk="vndk.mk" 26 | if [ "$apps" == "gapps" ];then 27 | apps_suffix="g" 28 | apps_script='$(call inherit-product, device/phh/treble/gapps.mk)' 29 | apps_name="with GApps" 30 | fi 31 | if [ "$apps" == "gapps-go" ];then 32 | apps_suffix="o" 33 | apps_script='$(call inherit-product, device/phh/treble/gapps-go.mk)' 34 | apps_name="Go" 35 | fi 36 | if [ "$apps" == "foss" ];then 37 | apps_suffix="f" 38 | apps_script='$(call inherit-product, vendor/foss/foss.mk)' 39 | apps_name="with FOSS apps" 40 | fi 41 | if [ "$apps" == "vanilla" ];then 42 | apps_suffix="v" 43 | apps_script='' 44 | apps_name="vanilla" 45 | fi 46 | if [ "$arch" == "arm" ];then 47 | vndk="vndk-binder32.mk" 48 | fi 49 | if [ "$arch" == "a64" ];then 50 | vndk="vndk32.mk" 51 | fi 52 | 53 | su_suffix='N' 54 | if [ "$su" == "yes" ];then 55 | su_suffix='S' 56 | extra_packages+=' phh-su me.phh.superuser' 57 | fi 58 | 59 | part_suffix='a' 60 | if [ "$part" == 'ab' ];then 61 | part_suffix='b' 62 | fi 63 | 64 | target="treble_${arch}_${part_suffix}${apps_suffix}${su_suffix}" 65 | 66 | cat > ${target}.mk << EOF 67 | \$(call inherit-product, device/phh/treble/base-pre.mk) 68 | include build/make/target/product/treble_common.mk 69 | \$(call inherit-product, vendor/vndk/${vndk}) 70 | \$(call inherit-product, device/phh/treble/base.mk) 71 | $apps_script 72 | $rom_script 73 | 74 | PRODUCT_NAME := $target 75 | PRODUCT_DEVICE := phhgsi_${arch}_$part 76 | PRODUCT_BRAND := Android 77 | PRODUCT_MODEL := Phh-Treble $apps_name 78 | 79 | PRODUCT_PACKAGES += $extra_packages 80 | EOF 81 | echo -e '\t$(LOCAL_DIR)/'$target.mk '\' >> AndroidProducts.mk 82 | done 83 | done 84 | done 85 | done 86 | echo >> AndroidProducts.mk 87 | -------------------------------------------------------------------------------- /cmds/lightsctl-sec.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using ::vendor::samsung::hardware::light::V2_0::ISecLight; 6 | using ::android::sp; 7 | 8 | int main(int argc, char **argv) { 9 | auto svc = ISecLight::getService(); 10 | svc->getSupportedTypes([](auto types) { 11 | for(const auto& type: types) { 12 | std::cout << "Got type " << toString(type) << std::endl; 13 | } 14 | }); 15 | if(argc <= 1) return 0; 16 | if(argc != 3 && argc != 6) return 1; 17 | 18 | std::string typeArg(argv[1]); 19 | vendor::samsung::hardware::light::V2_0::SecType type; 20 | if(typeArg == "BACKLIGHT") 21 | type = vendor::samsung::hardware::light::V2_0::SecType::BACKLIGHT; 22 | if(typeArg == "KEYBOARD") 23 | type = vendor::samsung::hardware::light::V2_0::SecType::KEYBOARD; 24 | if(typeArg == "BUTTONS") 25 | type = vendor::samsung::hardware::light::V2_0::SecType::BUTTONS; 26 | if(typeArg == "BATTERY") 27 | type = vendor::samsung::hardware::light::V2_0::SecType::BATTERY; 28 | if(typeArg == "NOTIFICATIONS") 29 | type = vendor::samsung::hardware::light::V2_0::SecType::NOTIFICATIONS; 30 | if(typeArg == "ATTENTION") 31 | type = vendor::samsung::hardware::light::V2_0::SecType::ATTENTION; 32 | if(typeArg == "BLUETOOTH") 33 | type = vendor::samsung::hardware::light::V2_0::SecType::BLUETOOTH; 34 | if(typeArg == "WIFI") 35 | type = vendor::samsung::hardware::light::V2_0::SecType::WIFI; 36 | std::cout << "Set request type " << toString(type) << std::endl; 37 | 38 | android::hardware::light::V2_0::LightState state; 39 | state.color = (uint32_t)strtoll(argv[2], NULL, 16); 40 | state.flashMode = android::hardware::light::V2_0::Flash::NONE; 41 | state.brightnessMode = android::hardware::light::V2_0::Brightness::USER; 42 | 43 | if(argc == 6) { 44 | std::string flashArg(argv[3]); 45 | if(flashArg == "NONE") 46 | state.flashMode = android::hardware::light::V2_0::Flash::NONE; 47 | if(flashArg == "TIMED") 48 | state.flashMode = android::hardware::light::V2_0::Flash::TIMED; 49 | if(flashArg == "HARDWARE") 50 | state.flashMode = android::hardware::light::V2_0::Flash::HARDWARE; 51 | 52 | state.flashOnMs = atoi(argv[4]); 53 | state.flashOffMs = atoi(argv[5]); 54 | } 55 | std::cout << "Set flash type to " << toString(state.flashMode) << std::endl; 56 | 57 | auto ret = svc->setLightSec(type, state); 58 | std::cout << "Set light returned " << toString(ret) << std::endl; 59 | } 60 | -------------------------------------------------------------------------------- /cmds/simg2img_simple.cpp: -------------------------------------------------------------------------------- 1 | #define _GNU_SOURCE 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | typedef struct sparse_header { 11 | uint32_t magic; /* 0xed26ff3a */ 12 | uint16_t major_version; /* (0x1) - reject images with higher major versions */ 13 | uint16_t minor_version; /* (0x0) - allow images with higer minor versions */ 14 | uint16_t file_hdr_sz; /* 28 bytes for first revision of the file format */ 15 | uint16_t chunk_hdr_sz; /* 12 bytes for first revision of the file format */ 16 | uint32_t blk_sz; /* block size in bytes, must be a multiple of 4 (4096) */ 17 | uint32_t total_blks; /* total blocks in the non-sparse output image */ 18 | uint32_t total_chunks; /* total chunks in the sparse input image */ 19 | uint32_t image_checksum; /* CRC32 checksum of the original data, counting "don't care" */ 20 | /* as 0. Standard 802.3 polynomial, use a Public Domain */ 21 | /* table implementation */ 22 | } sparse_header_t; 23 | 24 | #define SPARSE_HEADER_MAGIC 0xed26ff3a 25 | 26 | #define CHUNK_TYPE_RAW 0xCAC1 27 | #define CHUNK_TYPE_FILL 0xCAC2 28 | #define CHUNK_TYPE_DONT_CARE 0xCAC3 29 | #define CHUNK_TYPE_CRC32 0xCAC4 30 | 31 | typedef struct chunk_header { 32 | uint16_t chunk_type; /* 0xCAC1 -> raw; 0xCAC2 -> fill; 0xCAC3 -> don't care */ 33 | uint16_t reserved1; 34 | uint32_t chunk_sz; /* in blocks in output image */ 35 | uint32_t total_sz; /* in bytes of chunk input file including chunk header and data */ 36 | } chunk_header_t; 37 | 38 | /* Following a Raw or Fill or CRC32 chunk is data. 39 | * For a Raw chunk, it's the data in chunk_sz * blk_sz. 40 | * For a Fill chunk, it's 4 bytes of the fill data. 41 | * For a CRC32 chunk, it's 4 bytes of CRC32 42 | */ 43 | 44 | void nsendfile(int out_fd, int in_fd, size_t count) { 45 | while(count) { 46 | ssize_t res = splice(in_fd, NULL, out_fd, NULL, count, 0); 47 | if(res == 0 || res == -1) exit(112); 48 | count -= res; 49 | } 50 | } 51 | 52 | int main() { 53 | sparse_header_t hdr; 54 | if(read(0, &hdr, sizeof(hdr)) != sizeof(hdr)) exit(1); 55 | if(hdr.magic != SPARSE_HEADER_MAGIC) exit(2); 56 | if(hdr.blk_sz != 4096) exit(6); 57 | if(hdr.major_version != 1) exit(11); 58 | if(hdr.minor_version != 0) exit(12); 59 | if(hdr.file_hdr_sz != 28) exit(13); 60 | if(hdr.chunk_hdr_sz != 12) exit(14); 61 | 62 | char block[4096]; 63 | for(unsigned i=0; i /cache/phh/logs 2>&1 10 | fi 11 | 12 | #init.rc hooks are based on "0" (non-configfs) or "1" (configfs), so set it to 2 so that noone is triggered 13 | if [ -z "$nosystem" ];then 14 | configfs="$(getprop sys.usb.configfs)" 15 | export configfs 16 | setprop sys.usb.configfs 2 17 | setprop service.adb.tcp.port 5555 18 | 19 | mount -o private,recursive rootfs / 20 | 21 | mkdir /dev/new-system/ 22 | chmod 0755 /dev/new-system 23 | mkdir /dev/old-system 24 | 25 | cp -R --preserve=all /system/lib64 /dev/new-system/lib64 26 | cp -R --preserve=all /system/lib /dev/new-system/lib 27 | cp -R --preserve=all /system/bin /dev/new-system/bin 28 | cp -R --preserve=all /system/xbin /dev/new-system/xbin 29 | cp -R --preserve=all /system/etc /dev/new-system/etc 30 | 31 | getprop | \ 32 | grep -e restarting -e running | \ 33 | sed -nE -e 's/\[([^]]*).*/\1/g' -e 's/init.svc.(.*)/\1/p' | 34 | while read svc ;do 35 | setprop ctl.stop $svc 36 | done 37 | 38 | setenforce 0 39 | umount /sbin/adbd 40 | mount -o move /system /dev/old-system 41 | /dev/new-system/bin/busybox_phh mount -o bind /dev/new-system /system 42 | nosystem=1 exec /system/bin/sh -x "$0" 43 | fi 44 | 45 | umount /dev/old-system 46 | setprop service.adb.root 1 47 | 48 | if [ "$configfs" == 1 ];then 49 | mount -t configfs none /config 50 | rm -Rf /config/usb_gadget 51 | mkdir -p /config/usb_gadget/g1 52 | 53 | echo 0x12d1 > /config/usb_gadget/g1/idVendor 54 | echo 0x103A > /config/usb_gadget/g1/idProduct 55 | mkdir -p /config/usb_gadget/g1/strings/0x409 56 | echo phh > /config/usb_gadget/g1/strings/0x409/serialnumber 57 | echo phh > /config/usb_gadget/g1/strings/0x409/manufacturer 58 | echo phh > /config/usb_gadget/g1/strings/0x409/product 59 | 60 | mkdir /config/usb_gadget/g1/functions/ffs.adb 61 | mkdir /config/usb_gadget/g1/functions/mtp.gs0 62 | mkdir /config/usb_gadget/g1/functions/ptp.gs1 63 | 64 | mkdir /config/usb_gadget/g1/configs/c.1/ 65 | mkdir /config/usb_gadget/g1/configs/c.1/strings/0x409 66 | echo 'ADB MTP' > /config/usb_gadget/g1/configs/c.1/strings/0x409/configuration 67 | 68 | mkdir /dev/usb-ffs 69 | chmod 0770 /dev/usb-ffs 70 | chown shell:shell /dev/usb-ffs 71 | mkdir /dev/usb-ffs/adb/ 72 | chmod 0770 /dev/usb-ffs/adb 73 | chown shell:shell /dev/usb-ffs/adb 74 | 75 | mount -t functionfs -o uid=2000,gid=2000 adb /dev/usb-ffs/adb 76 | 77 | /dev/new-system/bin/adbd & 78 | 79 | sleep 1 80 | echo none > /config/usb_gadget/g1/UDC 81 | ln -s /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/c.1/f1 82 | echo ff100000.dwc3 > /config/usb_gadget/g1/UDC 83 | 84 | sleep 2 85 | echo 2 > /sys/devices/virtual/android_usb/android0/port_mode 86 | else 87 | mkdir /dev/usb-ffs 88 | chmod 0770 /dev/usb-ffs 89 | chown shell:shell /dev/usb-ffs 90 | mkdir /dev/usb-ffs/adb/ 91 | chmod 0770 /dev/usb-ffs/adb 92 | chown shell:shell /dev/usb-ffs/adb 93 | 94 | mount -t functionfs -o uid=2000,gid=2000 adb /dev/usb-ffs/adb 95 | echo adb > /sys/class/android_usb/android0/f_ffs/aliases 96 | setprop sys.usb.config adb 97 | 98 | echo 0 > /sys/class/android_usb/android0/enable 99 | echo 18d1 > /sys/class/android_usb/android0/idVendor 100 | echo 4EE7 > /sys/class/android_usb/android0/idProduct 4EE7 101 | echo adb > /sys/class/android_usb/android0/functions 102 | getprop ro.boot.serialno |tr -d '\n' |cat > /sys/class/android_usb/android0/iSerial 103 | echo phh > /sys/class/android_usb/android0/iManufacturer 104 | echo phh > /sys/class/android_usb/android0/iProduct 105 | echo 1 > /sys/class/android_usb/android0/enable 106 | 107 | /dev/new-system/bin/adbd & 108 | fi 109 | 110 | 111 | death() { 112 | sleep 180 113 | reboot 114 | } 115 | 116 | dev="$(sed -n 1p /cache/phh/block.map)" 117 | devbase="$(echo $dev | sed -nE 's;(/dev/block/.*/)userdata;\1;p')" 118 | [ -z "$devbase" ] && devbase="$(echo $dev | sed -nE 's;(/dev/block/.*/)data;\1;p')" 119 | [ -z "$devbase" ] && devbase="$(echo $dev | sed -nE 's;(/dev/block/.*/)USERDATA;\1;p')" 120 | for i in system system_a SYSTEM;do 121 | v="$devbase/$i" 122 | [ -b "$v" ] && system="$v" 123 | done 124 | #Failed... 125 | [ -z "$system" ] && death 126 | 127 | blockdev --setrw "$system" 128 | 129 | 130 | for method in xz-sparse sparse raw;do 131 | ( 132 | size="$(sed -En '2s/^([0-9]+) .*/\1/p' /cache/phh/block.map)" 133 | block_size="$(sed -En '2s/.* ([0-9]*)$/\1/p' /cache/phh/block.map)" 134 | n_ranges="$(sed -n 3p /cache/phh/block.map)" 135 | block_id=0 136 | for i in $(seq 1 $n_ranges);do 137 | range_start="$(sed -En $((i+3))'s/^([0-9]+) .*/\1/p' /cache/phh/block.map)" 138 | range_end="$(sed -En $((i+3))'s/^.* ([0-9]+)$/\1/p' /cache/phh/block.map)" 139 | n_blocks=$((range_end-range_start)) 140 | busybox_phh dd bs=$block_size skip=$range_start count=$n_blocks if=$dev 141 | 142 | block_id=$((block_id+n_blocks)) 143 | done 144 | ) | ( 145 | set -e 146 | if [ "$method" == xz-sparse ];then 147 | busybox_phh xz -d -c | simg2img_simple > $system 148 | elif [ "$method" == sparse ];then 149 | simg2img_simple > $system 150 | elif [ "$method" == raw ];then 151 | cat > $system 152 | fi 153 | ) && break 154 | done 155 | 156 | sync 157 | reboot 158 | -------------------------------------------------------------------------------- /sepolicy/su.te: -------------------------------------------------------------------------------- 1 | type phhsu_daemon, domain, mlstrustedsubject; 2 | type phhsu_exec, exec_type, file_type; 3 | 4 | typeattribute phhsu_daemon coredomain; 5 | permissive phhsu_daemon; 6 | 7 | tmpfs_domain(phhsu_daemon); 8 | domain_auto_trans(init, phhsu_exec, phhsu_daemon); 9 | file_type_auto_trans(phhsu_daemon, device, phhsu_daemon); 10 | 11 | allow { appdomain shell } phhsu_daemon:unix_stream_socket { connectto write read }; 12 | allow { appdomain shell } phhsu_daemon:sock_file { write read }; 13 | allow { appdomain shell } phhsu_exec:file { getattr read open execute execute_no_trans }; 14 | 15 | create_pty(shell) 16 | allowxperm shell devpts:chr_file ioctl { TCSETSF TCGETS unpriv_tty_ioctls }; 17 | allowxperm { phhsu_daemon untrusted_app untrusted_app_27 } untrusted_app_all_devpts:chr_file ioctl { TCSETSF TCGETS unpriv_tty_ioctls }; 18 | 19 | allow servicemanager phhsu_daemon:dir { search read }; 20 | allow servicemanager phhsu_daemon:file { open read }; 21 | allow servicemanager phhsu_daemon:process { getattr }; 22 | allow servicemanager phhsu_daemon:binder { call transfer }; 23 | 24 | typeattribute phhsu_daemon mlstrustedobject; 25 | typeattribute phhsu_daemon mlstrustedsubject; 26 | 27 | allow shell su_exec:file getattr; 28 | typeattribute su mlstrustedsubject; 29 | 30 | allow phhsu_daemon { system_api_service app_api_service system_server_service }:service_manager find; 31 | 32 | allow system_server phhsu_daemon:fifo_file { read write }; 33 | allow system_server phhsu_daemon:fd use; 34 | allow system_server phhsu_daemon:binder { call transfer }; 35 | allow system_server shell_devpts:chr_file { read write }; 36 | 37 | # Add su to various domains 38 | net_domain(phhsu_daemon) 39 | 40 | hwbinder_use(phhsu_daemon) 41 | 42 | allow phhsu_daemon untrusted_app_all_devpts:chr_file { getattr read write open ioctl }; 43 | allow phhsu_daemon zygote_exec:file { execute read open execute_no_trans getattr }; 44 | 45 | allow appdomain phhsu_daemon:dir { search }; 46 | 47 | allow phhsu_daemon self:global_capability_class_set { sys_resource sys_ptrace }; 48 | 49 | allow phhsu_daemon self:dir rw_dir_perms; 50 | allow phhsu_daemon self:file { rwx_file_perms create rename setattr unlink }; 51 | allow phhsu_daemon self:lnk_file { r_file_perms execmod }; 52 | 53 | allow phhsu_daemon adbd_exec:file { getattr read }; 54 | allow phhsu_daemon { rootfs same_process_hal_file system_file }:file { mounton getattr }; 55 | allow phhsu_daemon self:capability { sys_admin chown setuid setgid net_raw dac_override dac_read_search kill }; 56 | allow phhsu_daemon self:capability2 { syslog }; 57 | allow phhsu_daemon shell_exec:file rx_file_perms; 58 | allow phhsu_daemon system_file:file { rx_file_perms entrypoint }; 59 | allow phhsu_daemon kmsg_device:chr_file { ioctl w_file_perms }; 60 | allow phhsu_daemon toolbox_exec:file rx_file_perms; 61 | allow phhsu_daemon system_block_device:{ lnk_file file } r_file_perms; 62 | 63 | allow { phhsu_daemon shell } domain:dir rw_dir_perms; 64 | allow { phhsu_daemon shell } domain:file rw_file_perms; 65 | allow { phhsu_daemon shell } domain:lnk_file rw_file_perms; 66 | allow { phhsu_daemon shell } rootfs:file { rwx_file_perms create rename setattr unlink }; 67 | allow { phhsu_daemon shell } rootfs:dir rw_dir_perms; 68 | allow phhsu_daemon asec_apk_file:dir rw_dir_perms; 69 | 70 | allow phhsu_daemon shell_devpts:chr_file rw_file_perms; 71 | 72 | allow phhsu_daemon app_data_file:dir rw_dir_perms; 73 | allow phhsu_daemon app_data_file:file { rwx_file_perms create rename setattr unlink }; 74 | allow phhsu_daemon dalvikcache_data_file:dir rw_dir_perms; 75 | allow phhsu_daemon dalvikcache_data_file:file { rwx_file_perms create rename setattr unlink }; 76 | allow phhsu_daemon dalvikcache_data_file:lnk_file { r_file_perms execmod }; 77 | allow phhsu_daemon system_data_file:file { rwx_file_perms create rename setattr unlink }; 78 | allow phhsu_daemon system_data_file:dir rw_dir_perms; 79 | allow phhsu_daemon system_data_file:file { rwx_file_perms create rename setattr unlink }; 80 | allow phhsu_daemon system_file:dir rw_dir_perms; 81 | allow phhsu_daemon system_file:file { rwx_file_perms create rename setattr unlink }; 82 | allow phhsu_daemon init:unix_stream_socket { connectto }; 83 | allow phhsu_daemon self:process { ptrace setexec execmem setfscreate }; 84 | allow phhsu_daemon app_data_file:file { rwx_file_perms create rename setattr unlink }; 85 | allow phhsu_daemon app_data_file:dir rw_dir_perms; 86 | allow phhsu_daemon ashmem_device:chr_file { execute }; 87 | allow phhsu_daemon dex2oat_exec:file rx_file_perms; 88 | 89 | 90 | allow phhsu_daemon phhsu_daemon_tmpfs:file rwx_file_perms; 91 | 92 | allow phhsu_daemon { proc_type dev_type exec_type file_type sysfs_type fs_type }:file { rwx_file_perms create }; 93 | allow phhsu_daemon { proc_type dev_type exec_type file_type sysfs_type fs_type }:dir rw_dir_perms; 94 | allow phhsu_daemon { proc_type dev_type exec_type file_type sysfs_type fs_type }:chr_file rwx_file_perms; 95 | allow phhsu_daemon { proc_type dev_type exec_type file_type sysfs_type fs_type }:blk_file rw_file_perms; 96 | 97 | allow phhsu_daemon device:file rwx_file_perms; 98 | allow phhsu_daemon device:dir rw_dir_perms; 99 | 100 | allow phhsu_daemon domain:process { ptrace signal signull getattr }; 101 | allow phhsu_daemon selinuxfs:file rwx_file_perms; 102 | allow domain phhsu_daemon:process { sigchld }; 103 | allow phhsu_daemon domain:binder { call transfer }; 104 | allow phhsu_daemon kernel:system { syslog_read syslog_mod }; 105 | allow phhsu_daemon kernel:security { setenforce }; 106 | allow phhsu_daemon domain:unix_stream_socket { getattr }; 107 | 108 | allow phhsu_daemon logdr_socket:sock_file write; 109 | allow phhsu_daemon logd:unix_stream_socket connectto; 110 | 111 | allow phhsu_daemon property_type:property_service { set }; 112 | allow phhsu_daemon property_socket:sock_file { write }; 113 | allow phhsu_daemon property_type:file rw_file_perms; 114 | allow phhsu_daemon { hwservicemanager hwservice_manager_type }:hwservice_manager { list add find }; 115 | allow phhsu_daemon domain:unix_dgram_socket rw_socket_perms; 116 | 117 | allow phhsu_daemon tombstoned_intercept_socket:sock_file { write }; 118 | allow phhsu_daemon tombstoned:unix_stream_socket { connectto }; 119 | 120 | allow phhsu_daemon { property_data_file data_file_type tmpfs }:file create_file_perms; 121 | allow phhsu_daemon { property_data_file data_file_type tmpfs }:dir create_dir_perms; 122 | 123 | allow phhsu_daemon fs_type:filesystem { remount remount unmount associate}; 124 | -------------------------------------------------------------------------------- /ld.config.27.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2017 The Android Open Source Project 2 | # 3 | # Bionic loader config file. 4 | # 5 | 6 | # Don't change the order here. 7 | dir.system = /system/bin/ 8 | dir.system = /system/xbin/ 9 | dir.vendor = /vendor/bin/ 10 | dir.vendor = /data/nativetest/vendor 11 | dir.vendor = /data/nativetest64/vendor 12 | dir.vendor = /data/benchmarktest/vendor 13 | dir.vendor = /data/benchmarktest64/vendor 14 | dir.system = /data/nativetest 15 | dir.system = /data/nativetest64 16 | dir.system = /data/benchmarktest 17 | dir.system = /data/benchmarktest64 18 | 19 | [system] 20 | additional.namespaces = sphal,vndk,rs 21 | 22 | ############################################################################### 23 | # "default" namespace 24 | # 25 | # Framework-side code runs in this namespace. Anything from /vendor partition 26 | # can't be loaded in this namespace. 27 | ############################################################################### 28 | namespace.default.isolated = false 29 | namespace.default.search.paths = /system/${LIB}:/vendor/${LIB} 30 | namespace.default.permitted.paths = /system/${LIB}:/vendor/${LIB} 31 | 32 | namespace.default.asan.search.paths = /data/asan/system/${LIB}:/system/${LIB}:/data/asan/vendor/${LIB}:/vendor/${LIB} 33 | namespace.default.asan.permitted.paths = /data/asan/system/${LIB}:/system/${LIB}:/data/asan/vendor/${LIB}:/vendor/${LIB} 34 | 35 | # TODO(b/37013858): remove all dependencies to /vendor/lib from system processes 36 | # When this is done, comment out following three lines and remove the three 37 | # lines above 38 | #namespace.default.isolated = true 39 | #namespace.default.search.paths = /system/${LIB} 40 | #namespace.default.permitted.paths = /system/${LIB} 41 | # 42 | #namespace.default.asan.search.paths = /data/asan/system/${LIB}:/system/${LIB} 43 | #namespace.default.asan.permitted.paths = /data/asan/system/${LIB}:/system/${LIB} 44 | 45 | ############################################################################### 46 | # "sphal" namespace 47 | # 48 | # SP-HAL(Sameprocess-HAL)s are the only vendor libraries that are allowed to be 49 | # loaded inside system processes. libEGL_.so, libGLESv2_.so, 50 | # android.hardware.graphics.mapper@2.0-impl.so, etc are SP-HALs. 51 | # 52 | # This namespace is exclusivly for SP-HALs. When the framework tries to dynami- 53 | # cally load SP-HALs, android_dlopen_ext() is used to explicitly specifying 54 | # that they should be searched and loaded from this namespace. 55 | # 56 | # Note that there is no link from the default namespace to this namespace. 57 | ############################################################################### 58 | namespace.sphal.isolated = true 59 | namespace.sphal.visible = true 60 | namespace.sphal.search.paths = /vendor/${LIB}/egl:/vendor/${LIB}/hw:/vendor/${LIB} 61 | namespace.sphal.permitted.paths = /vendor/${LIB}:/system/${LIB}/vndk-sp-27/hw 62 | 63 | namespace.sphal.asan.search.paths = /data/asan/vendor/${LIB}/egl:/vendor/${LIB}/egl:/data/asan/vendor/${LIB}/hw:/vendor/${LIB}/hw:/data/asan/vendor/${LIB}:/vendor/${LIB} 64 | namespace.sphal.asan.permitted.paths = /data/asan/vendor/${LIB}:/vendor/${LIB} 65 | 66 | # Once in this namespace, access to libraries in /system/lib is restricted. Only 67 | # libs listed here can be used. 68 | namespace.sphal.links = default,vndk,rs 69 | 70 | # WARNING: only NDK libs can be listed here. 71 | namespace.sphal.link.default.shared_libs = libc.so:libm.so:libdl.so:libstdc++.so:liblog.so:libnativewindow.so:libEGL.so:libsync.so:libGLESv1_CM.so:libGLESv2.so:libvndksupport.so:libz.so 72 | 73 | # WARNING: only VNDK-SP libs can be listed here. DO NOT EDIT this line. 74 | namespace.sphal.link.vndk.shared_libs = android.hardware.renderscript@1.0.so:android.hardware.graphics.allocator@2.0.so:android.hardware.graphics.mapper@2.0.so:android.hardware.graphics.common@1.0.so:android.hidl.memory@1.0.so:libhwbinder.so:libbase.so:libcutils.so:libhardware.so:libhidlbase.so:libhidlmemory.so:libhidltransport.so:libion.so:libutils.so:libc++.so 75 | 76 | # Renderscript gets separate namespace 77 | namespace.sphal.link.rs.shared_libs = libRS_internal.so 78 | 79 | ############################################################################### 80 | # "rs" namespace 81 | # 82 | # This namespace is exclusively for Renderscript internal libraries. 83 | # This namespace has slightly looser restriction than the vndk namespace because 84 | # of the genuine characteristics of Renderscript; /data is in the permitted path 85 | # to load the compiled *.so file and libmediandk.so can be used here. 86 | ############################################################################### 87 | namespace.rs.isolated = true 88 | namespace.rs.visible = true 89 | namespace.rs.search.paths = /vendor/${LIB}/vndk-sp:/system/${LIB}/vndk-sp-27:/vendor/${LIB} 90 | namespace.rs.permitted.paths = /vendor/${LIB}:/data 91 | 92 | namespace.rs.asan.search.paths = /data/asan/vendor/${LIB}/vndk-sp:/vendor/${LIB}/vndk-sp:/data/asan/system/${LIB}/vndk-sp-27:/system/${LIB}/vndk-sp-27:/data/asan/vendor/${LIB}:/vendor/${LIB} 93 | namespace.rs.asan.permitted.paths = /data/asan/vendor/${LIB}:/vendor/${LIB}:/data 94 | 95 | namespace.rs.links = default,vndk 96 | namespace.rs.link.default.shared_libs = libc.so:libm.so:libdl.so:libstdc++.so:liblog.so:libnativewindow.so:libEGL.so:libsync.so:libGLESv1_CM.so:libGLESv2.so:libmediandk.so:libvndksupport.so:libz.so:libft2.so 97 | namespace.rs.link.vndk.shared_libs = android.hardware.renderscript@1.0.so:android.hardware.graphics.allocator@2.0.so:android.hardware.graphics.mapper@2.0.so:android.hardware.graphics.common@1.0.so:android.hidl.memory@1.0.so:libhwbinder.so:libbase.so:libcutils.so:libhardware.so:libhidlbase.so:libhidlmemory.so:libhidltransport.so:libion.so:libutils.so:libc++.so 98 | 99 | ############################################################################### 100 | # "vndk" namespace 101 | # 102 | # This namespace is exclusively for vndk-sp libs. 103 | ############################################################################### 104 | namespace.vndk.isolated = true 105 | namespace.vndk.visible = true 106 | namespace.vndk.search.paths = /vendor/${LIB}/vndk-sp:/system/${LIB}/vndk-sp-27 107 | namespace.vndk.permitted.paths = /vendor/${LIB}/hw:/vendor/${LIB}/egl 108 | 109 | namespace.vndk.asan.search.paths = /data/asan/vendor/${LIB}/vndk-sp:/vendor/${LIB}/vndk-sp:/data/asan/system/${LIB}/vndk-sp:/system/${LIB}/vndk-sp 110 | namespace.vndk.asan.permitted.paths = /data/asan/vendor/${LIB}/hw:/vendor/${LIB}/hw:/data/asan/vendor/${LIB}/egl:/vendor/${LIB}/egl 111 | 112 | # When these NDK libs are required inside this namespace, then it is redirected 113 | # to the default namespace. This is possible since their ABI is stable across 114 | # Android releases. 115 | namespace.vndk.links = default 116 | namespace.vndk.link.default.shared_libs = android.hidl.memory@1.0-impl.so:libc.so:libm.so:libdl.so:libstdc++.so:liblog.so:libnativewindow.so:libEGL.so:libsync.so:libvndksupport.so:libz.so 117 | 118 | ############################################################################### 119 | # Namespace config for vendor processes. In O, no restriction is enforced for 120 | # them. However, in O-MR1, access to /system/${LIB} will not be allowed to 121 | # the default namespace. 'system' namespace will be added to give limited 122 | # (LL-NDK only) access. 123 | ############################################################################### 124 | [vendor] 125 | namespace.default.isolated = false 126 | namespace.default.search.paths = /vendor/${LIB}/hw:/vendor/${LIB}/egl:/vendor/${LIB}:/system/${LIB}/vndk-27:/vendor/${LIB}/vndk-sp:/system/${LIB}/vndk-sp-27:/system/${LIB} 127 | 128 | namespace.default.asan.search.paths = /data/asan/vendor/${LIB}/hw:/vendor/${LIB}/hw:/data/asan/vendor/${LIB}/egl:/vendor/${LIB}/egl:/data/asan/vendor/${LIB}:/vendor/${LIB}:/data/asan/system/${LIB}/vndk:/system/${LIB}/vndk:/data/asan/vendor/${LIB}/vndk-sp:/vendor/${LIB}/vndk-sp:/data/asan/system/${LIB}/vndk-sp:/system/${LIB}/vndk-sp:/data/asan/system/${LIB}:/system/${LIB} 129 | -------------------------------------------------------------------------------- /ld.config.26.txt: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2017 The Android Open Source Project 2 | # 3 | # Bionic loader config file. 4 | # 5 | 6 | # Don't change the order here. 7 | dir.system = /system/bin/ 8 | dir.system = /system/xbin/ 9 | dir.vendor = /vendor/bin/ 10 | dir.vendor = /data/nativetest/vendor 11 | dir.vendor = /data/nativetest64/vendor 12 | dir.vendor = /data/benchmarktest/vendor 13 | dir.vendor = /data/benchmarktest64/vendor 14 | dir.system = /data/nativetest 15 | dir.system = /data/nativetest64 16 | dir.system = /data/benchmarktest 17 | dir.system = /data/benchmarktest64 18 | 19 | [system] 20 | additional.namespaces = sphal,vndk,rs 21 | 22 | ############################################################################### 23 | # "default" namespace 24 | # 25 | # Framework-side code runs in this namespace. Anything from /vendor partition 26 | # can't be loaded in this namespace. 27 | ############################################################################### 28 | namespace.default.isolated = false 29 | namespace.default.search.paths = /system/${LIB}:/vendor/${LIB} 30 | namespace.default.permitted.paths = /system/${LIB}:/vendor/${LIB} 31 | 32 | namespace.default.asan.search.paths = /data/asan/system/${LIB}:/system/${LIB}:/data/asan/vendor/${LIB}:/vendor/${LIB} 33 | namespace.default.asan.permitted.paths = /data/asan/system/${LIB}:/system/${LIB}:/data/asan/vendor/${LIB}:/vendor/${LIB} 34 | 35 | # TODO(b/37013858): remove all dependencies to /vendor/lib from system processes 36 | # When this is done, comment out following three lines and remove the three 37 | # lines above 38 | #namespace.default.isolated = true 39 | #namespace.default.search.paths = /system/${LIB} 40 | #namespace.default.permitted.paths = /system/${LIB} 41 | # 42 | #namespace.default.asan.search.paths = /data/asan/system/${LIB}:/system/${LIB} 43 | #namespace.default.asan.permitted.paths = /data/asan/system/${LIB}:/system/${LIB} 44 | 45 | ############################################################################### 46 | # "sphal" namespace 47 | # 48 | # SP-HAL(Sameprocess-HAL)s are the only vendor libraries that are allowed to be 49 | # loaded inside system processes. libEGL_.so, libGLESv2_.so, 50 | # android.hardware.graphics.mapper@2.0-impl.so, etc are SP-HALs. 51 | # 52 | # This namespace is exclusivly for SP-HALs. When the framework tries to dynami- 53 | # cally load SP-HALs, android_dlopen_ext() is used to explicitly specifying 54 | # that they should be searched and loaded from this namespace. 55 | # 56 | # Note that there is no link from the default namespace to this namespace. 57 | ############################################################################### 58 | namespace.sphal.isolated = true 59 | namespace.sphal.visible = true 60 | namespace.sphal.search.paths = /vendor/${LIB}/egl:/vendor/${LIB}/hw:/vendor/${LIB} 61 | namespace.sphal.permitted.paths = /vendor/${LIB}:/system/${LIB}/vndk-sp-26/hw:/system/${LIB}/vndk-sp-27/hw 62 | 63 | namespace.sphal.asan.search.paths = /data/asan/vendor/${LIB}/egl:/vendor/${LIB}/egl:/data/asan/vendor/${LIB}/hw:/vendor/${LIB}/hw:/data/asan/vendor/${LIB}:/vendor/${LIB} 64 | namespace.sphal.asan.permitted.paths = /data/asan/vendor/${LIB}:/vendor/${LIB} 65 | 66 | # Once in this namespace, access to libraries in /system/lib is restricted. Only 67 | # libs listed here can be used. 68 | namespace.sphal.links = default,vndk,rs 69 | 70 | # WARNING: only NDK libs can be listed here. 71 | namespace.sphal.link.default.shared_libs = libc.so:libm.so:libdl.so:libstdc++.so:liblog.so:libnativewindow.so:libEGL.so:libsync.so:libGLESv1_CM.so:libGLESv2.so:libvndksupport.so:libz.so 72 | 73 | # WARNING: only VNDK-SP libs can be listed here. DO NOT EDIT this line. 74 | namespace.sphal.link.vndk.shared_libs = android.hardware.renderscript@1.0.so:android.hardware.graphics.allocator@2.0.so:android.hardware.graphics.mapper@2.0.so:android.hardware.graphics.common@1.0.so:android.hidl.memory@1.0.so:libhwbinder.so:libbase.so:libcutils.so:libhardware.so:libhidlbase.so:libhidlmemory.so:libhidltransport.so:libion.so:libutils.so:libc++.so:android.hidl.base@1.0.so:libion.so 75 | 76 | # Renderscript gets separate namespace 77 | namespace.sphal.link.rs.shared_libs = libRS_internal.so 78 | 79 | ############################################################################### 80 | # "rs" namespace 81 | # 82 | # This namespace is exclusively for Renderscript internal libraries. 83 | # This namespace has slightly looser restriction than the vndk namespace because 84 | # of the genuine characteristics of Renderscript; /data is in the permitted path 85 | # to load the compiled *.so file and libmediandk.so can be used here. 86 | ############################################################################### 87 | namespace.rs.isolated = true 88 | namespace.rs.visible = true 89 | namespace.rs.search.paths = /vendor/${LIB}/vndk-sp:/system/${LIB}/vndk-sp-26:/vendor/${LIB} 90 | namespace.rs.permitted.paths = /vendor/${LIB}:/data 91 | 92 | namespace.rs.asan.search.paths = /data/asan/vendor/${LIB}/vndk-sp:/vendor/${LIB}/vndk-sp:/data/asan/system/${LIB}/vndk-sp:/system/${LIB}/vndk-sp-26:/data/asan/vendor/${LIB}:/vendor/${LIB} 93 | namespace.rs.asan.permitted.paths = /data/asan/vendor/${LIB}:/vendor/${LIB}:/data 94 | 95 | namespace.rs.links = default,vndk 96 | namespace.rs.link.default.shared_libs = libc.so:libm.so:libdl.so:libstdc++.so:liblog.so:libnativewindow.so:libEGL.so:libsync.so:libGLESv1_CM.so:libGLESv2.so:libmediandk.so:libvndksupport.so:libz.so:libft2.so 97 | namespace.rs.link.vndk.shared_libs = android.hardware.renderscript@1.0.so:android.hardware.graphics.allocator@2.0.so:android.hardware.graphics.mapper@2.0.so:android.hardware.graphics.common@1.0.so:android.hidl.memory@1.0.so:libhwbinder.so:libbase.so:libcutils.so:libhardware.so:libhidlbase.so:libhidlmemory.so:libhidltransport.so:libion.so:libutils.so:libc++.so 98 | 99 | ############################################################################### 100 | # "vndk" namespace 101 | # 102 | # This namespace is exclusively for vndk-sp libs. 103 | ############################################################################### 104 | namespace.vndk.isolated = true 105 | namespace.vndk.visible = true 106 | namespace.vndk.search.paths = /vendor/${LIB}/vndk-sp:/system/${LIB}/vndk-sp-26 107 | namespace.vndk.permitted.paths = /vendor/${LIB}/hw:/vendor/${LIB}/egl 108 | 109 | namespace.vndk.asan.search.paths = /data/asan/vendor/${LIB}/vndk-sp:/vendor/${LIB}/vndk-sp:/data/asan/system/${LIB}/vndk-sp:/system/${LIB}/vndk-sp-26 110 | namespace.vndk.asan.permitted.paths = /data/asan/vendor/${LIB}/hw:/vendor/${LIB}/hw:/data/asan/vendor/${LIB}/egl:/vendor/${LIB}/egl 111 | 112 | # When these NDK libs are required inside this namespace, then it is redirected 113 | # to the default namespace. This is possible since their ABI is stable across 114 | # Android releases. 115 | namespace.vndk.links = default 116 | namespace.vndk.link.default.shared_libs = android.hidl.memory@1.0-impl.so:libc.so:libm.so:libdl.so:libstdc++.so:liblog.so:libnativewindow.so:libEGL.so:libsync.so:libvndksupport.so:libz.so 117 | 118 | ############################################################################### 119 | # Namespace config for vendor processes. In O, no restriction is enforced for 120 | # them. However, in O-MR1, access to /system/${LIB} will not be allowed to 121 | # the default namespace. 'system' namespace will be added to give limited 122 | # (LL-NDK only) access. 123 | ############################################################################### 124 | [vendor] 125 | namespace.default.isolated = false 126 | namespace.default.search.paths = /vendor/${LIB}/hw:/vendor/${LIB}/egl:/vendor/${LIB}:/system/${LIB}/vndk-26:/vendor/${LIB}/vndk-sp:/system/${LIB}/vndk-sp-26:/system/${LIB} 127 | 128 | namespace.default.asan.search.paths = /data/asan/vendor/${LIB}/hw:/vendor/${LIB}/hw:/data/asan/vendor/${LIB}/egl:/vendor/${LIB}/egl:/data/asan/vendor/${LIB}:/vendor/${LIB}:/data/asan/system/${LIB}/vndk:/system/${LIB}/vndk-26:/data/asan/vendor/${LIB}/vndk-sp:/vendor/${LIB}/vndk-sp:/data/asan/system/${LIB}/vndk-sp:/system/${LIB}/vndk-sp-26:/data/asan/system/${LIB}:/system/${LIB} 129 | --------------------------------------------------------------------------------