From d8bcc3d9ab1e18a3a0418a37edde8af47eea33d2 Mon Sep 17 00:00:00 2001 From: Simon Sickle Date: Mon, 4 Dec 2017 22:39:00 -0600 Subject: [PATCH] Restart... Signed-off-by: Simon Sickle --- Android.mk | 7 +- AndroidProducts.mk | 0 BoardConfig.mk | 67 ++-- cryptfs_hw/Android.mk | 36 -- cryptfs_hw/cryptfs_hw.c | 315 ------------------ cryptfs_hw/cryptfs_hw.h | 48 --- omni_dumpling.mk | 0 recovery.fstab | 2 +- recovery/root/init.recovery.qcom.rc | 51 +-- recovery/root/init.recovery.usb.rc | 41 ++- recovery/root/sbin/qseecomd | Bin 14880 -> 14880 bytes recovery/root/sbin/servicemanager | Bin 18592 -> 0 bytes recovery/root/ueventd.qcom.rc | 0 .../vendor/lib64/hw/gatekeeper.msm8998.so | Bin 14656 -> 14656 bytes .../root/vendor/lib64/hw/keystore.msm8998.so | Bin 55688 -> 55688 bytes recovery/root/vendor/lib64/lib-sec-disp.so | Bin 0 -> 14392 bytes recovery/root/vendor/lib64/libGPreqcancel.so | Bin 10304 -> 10304 bytes .../root/vendor/lib64/libGPreqcancel_svc.so | Bin 10312 -> 10312 bytes recovery/root/vendor/lib64/libQSEEComAPI.so | Bin 18424 -> 18424 bytes recovery/root/vendor/lib64/libSecureUILib.so | Bin 0 -> 10312 bytes recovery/root/vendor/lib64/libStDrvInt.so | Bin 0 -> 10280 bytes recovery/root/vendor/lib64/libdiag.so | Bin 142112 -> 142112 bytes recovery/root/vendor/lib64/libdrmfs.so | Bin 22584 -> 22584 bytes recovery/root/vendor/lib64/libdrmtime.so | Bin 14392 -> 14392 bytes recovery/root/vendor/lib64/libqisl.so | Bin 18584 -> 18584 bytes recovery/root/vendor/lib64/librpmb.so | Bin 27968 -> 27968 bytes recovery/root/vendor/lib64/libsecureui.so | Bin 0 -> 26976 bytes .../root/vendor/lib64/libsecureui_svcsock.so | Bin 0 -> 14408 bytes recovery/root/vendor/lib64/libspl.so | Bin 0 -> 10296 bytes recovery/root/vendor/lib64/libssd.so | Bin 10296 -> 10296 bytes recovery/root/vendor/lib64/libtime_genoff.so | Bin 10208 -> 10208 bytes system.prop | 0 untitled.make | 35 ++ vendorsetup.sh | 0 34 files changed, 97 insertions(+), 505 deletions(-) mode change 100644 => 100755 AndroidProducts.mk mode change 100644 => 100755 BoardConfig.mk delete mode 100644 cryptfs_hw/Android.mk delete mode 100644 cryptfs_hw/cryptfs_hw.c delete mode 100644 cryptfs_hw/cryptfs_hw.h mode change 100644 => 100755 omni_dumpling.mk mode change 100644 => 100755 recovery.fstab mode change 100644 => 100755 recovery/root/init.recovery.qcom.rc mode change 100644 => 100755 recovery/root/init.recovery.usb.rc delete mode 100644 recovery/root/sbin/servicemanager mode change 100644 => 100755 recovery/root/ueventd.qcom.rc create mode 100755 recovery/root/vendor/lib64/lib-sec-disp.so create mode 100755 recovery/root/vendor/lib64/libSecureUILib.so create mode 100755 recovery/root/vendor/lib64/libStDrvInt.so create mode 100755 recovery/root/vendor/lib64/libsecureui.so create mode 100755 recovery/root/vendor/lib64/libsecureui_svcsock.so create mode 100755 recovery/root/vendor/lib64/libspl.so mode change 100644 => 100755 system.prop create mode 100644 untitled.make mode change 100644 => 100755 vendorsetup.sh diff --git a/Android.mk b/Android.mk index 3e8b26c..b9e4b8d 100644 --- a/Android.mk +++ b/Android.mk @@ -1,5 +1,6 @@ + # -# Copyright (C) 2016 The CyanogenMod Project +# Copyright 2014 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,7 +15,6 @@ # limitations under the License. # -# # This contains the module build definitions for the hardware-specific # components for this device. # @@ -23,11 +23,10 @@ # bitrot and build breakages. Building a component unconditionally does # *not* include it on all devices, so it is safe even with hardware-specific # components. -# LOCAL_PATH := $(call my-dir) -ifeq ($(TARGET_DEVICE),dumpling) +ifneq ($(filter mata, $(TARGET_DEVICE)),) include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/AndroidProducts.mk b/AndroidProducts.mk old mode 100644 new mode 100755 diff --git a/BoardConfig.mk b/BoardConfig.mk old mode 100644 new mode 100755 index 8bb177c..d06ebf1 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -23,8 +23,6 @@ # *not* include it on all devices, so it is safe even with hardware-specific # components. -BOARD_PATH := device/oneplus/dumpling - # Architecture TARGET_ARCH := arm64 TARGET_ARCH_VARIANT := armv8-a @@ -48,36 +46,25 @@ TARGET_USES_UEFI := true # Kernel BOARD_KERNEL_BASE := 0x00000000 -BOARD_KERNEL_CMDLINE := console=ttyMSM0,115200,n8 androidboot.console=ttyMSM0 earlycon=msm_serial_dm,0xc1b0000 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 sched_enable_hmp=1 sched_enable_power_aware=1 service_locator.enable=1 swiotlb=2048 androidboot.configfs=true androidboot.usbcontroller=a800000.dwc3 androidboot.selinux=permissive +BOARD_KERNEL_CMDLINE := androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 sched_enable_hmp=1 sched_enable_power_aware=1 service_locator.enable=1 swiotlb=2048 androidboot.usbcontroller=a800000.dwc3 +BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive BOARD_KERNEL_PAGESIZE := 4096 -BOARD_KERNEL_TAGS_OFFSET := 0x01E00000 -BOARD_RAMDISK_OFFSET := 0x02000000 +BOARD_KERNEL_TAGS_OFFSET := 0x00000100 +BOARD_RAMDISK_OFFSET := 0x01000000 TARGET_PREBUILT_KERNEL := device/oneplus/dumpling/prebuilt/Image.gz-dtb -TARGET_KERNEL_ARCH := arm64 -TARGET_KERNEL_HEADER_ARCH := arm64 -TARGET_KERNEL_CROSS_COMPILE_PREFIX := aarch64-linux-android- -TARGET_USES_UNCOMPRESSED_KERNEL := false - # Platform TARGET_BOARD_PLATFORM := msm8998 TARGET_BOARD_PLATFORM_GPU := qcom-adreno540 # Partitions -BOARD_BOOTIMAGE_PARTITION_SIZE := 0x04000000 -BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3221225472 -BOARD_USERDATAIMAGE_PARTITION_SIZE := 10737418240 +BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864 BOARD_CACHEIMAGE_PARTITION_SIZE := 268435456 -BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 -BOARD_PERSISTIMAGE_PARTITION_SIZE := 33554432 -BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := ext4 -BOARD_FLASH_BLOCK_SIZE := 131072 # (BOARD_KERNEL_PAGESIZE * 64) -BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4 -TARGET_COPY_OUT_VENDOR := vendor - -# Crypto -TARGET_HW_DISK_ENCRYPTION := true -TARGET_CRYPTFS_HW_PATH := $(BOARD_PATH)/cryptfs_hw +BOARD_RECOVERYIMAGE_PARTITION_SIZE := 67108864 +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3221225472 +BOARD_USERDATAIMAGE_PARTITION_SIZE := 56908316672 +BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs +BOARD_FLASH_BLOCK_SIZE := 262144 # (BOARD_KERNEL_PAGESIZE * 64) # Recovery BOARD_HAS_LARGE_FILESYSTEM := true @@ -86,36 +73,22 @@ TARGET_RECOVERY_PIXEL_FORMAT := "RGBX_8888" TARGET_USERIMAGES_USE_EXT4 := true TARGET_USERIMAGES_USE_F2FS := true -TARGET_USES_ION := true -TARGET_USES_NEW_ION_API :=true -TARGET_NO_RPC := true -TARGET_PLATFORM_DEVICE_BASE := /devices/soc.0/ -TARGET_INIT_COLDBOOT_TIMEOUT := 8 -NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3 -TARGET_KERNEL_APPEND_DTB := true -TARGET_COMPILE_WITH_MSM_KERNEL := true - -#Enable SSC Feature -TARGET_USES_SSC := true - -# Enable sensor multi HAL -USE_SENSOR_MULTI_HAL := true - # TWRP specific build flags -TW_THEME := portrait_hdpi -RECOVERY_SDCARD_ON_DATA := true BOARD_HAS_NO_REAL_SDCARD := true +RECOVERY_SDCARD_ON_DATA := true TARGET_RECOVERY_QCOM_RTC_FIX := true TW_BRIGHTNESS_PATH := "/sys/class/leds/lcd-backlight/brightness" -TW_MAX_BRIGHTNESS := 255 -TW_DEFAULT_BRIGHTNESS := 150 +TW_EXCLUDE_DEFAULT_USB_INIT := true +TW_EXCLUDE_SUPERSU := true TW_EXTRA_LANGUAGES := true +TW_INCLUDE_CRYPTO := true TW_INCLUDE_NTFS_3G := true TW_INPUT_BLACKLIST := "hbtp_vm" -TW_EXCLUDE_SUPERSU := true -TW_EXCLUDE_DEFAULT_USB_INIT := true +TW_MAX_BRIGHTNESS := 255 +TW_DEFAULT_BRIGHTNESS := 140 TW_NO_USB_STORAGE := true TW_SCREEN_BLANK_ON_BOOT := true -TW_INCLUDE_CRYPTO := true -TW_EXCLUDE_MTP := true -BOARD_SUPPRESS_SECURE_ERASE := true \ No newline at end of file +TW_THEME := portrait_hdpi +# Workaround for error copying vendor files to recovery ramdisk +BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4 +TARGET_COPY_OUT_VENDOR := vendor diff --git a/cryptfs_hw/Android.mk b/cryptfs_hw/Android.mk deleted file mode 100644 index 0054cb5..0000000 --- a/cryptfs_hw/Android.mk +++ /dev/null @@ -1,36 +0,0 @@ -ifeq ($(TARGET_HW_DISK_ENCRYPTION),true) -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_PROPRIETARY_MODULE := true - -sourceFiles := \ - cryptfs_hw.c - -commonSharedLibraries := \ - libcutils \ - libutils \ - libdl \ - libhardware -commonIncludes := \ - hardware/libhardware/include/hardware/ - -LOCAL_C_INCLUDES := $(commonIncludes) -LOCAL_SRC_FILES := $(sourceFiles) - -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE:= libcryptfs_hw -LOCAL_MODULE_PATH_32 := $(TARGET_OUT_VENDOR)/lib -LOCAL_MODULE_PATH_64 := $(TARGET_OUT_VENDOR)/lib64 -LOCAL_SHARED_LIBRARIES := $(commonSharedLibraries) - -LOCAL_MODULE_OWNER := qcom - -# USE_ICE_FOR_STORAGE_ENCRYPTION would be true in future if -# TARGET_USE_EMMC_USE_ICE is set -ifeq ($(TARGET_USE_UFS_ICE),true) -LOCAL_CFLAGS += -DUSE_ICE_FOR_STORAGE_ENCRYPTION -endif - -include $(BUILD_SHARED_LIBRARY) -endif \ No newline at end of file diff --git a/cryptfs_hw/cryptfs_hw.c b/cryptfs_hw/cryptfs_hw.c deleted file mode 100644 index e43d15f..0000000 --- a/cryptfs_hw/cryptfs_hw.c +++ /dev/null @@ -1,315 +0,0 @@ -/* Copyright (c) 2014, The Linux Foundation. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * * Neither the name of The Linux Foundation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE - * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "cutils/log.h" -#include "cutils/properties.h" -#include "cutils/android_reboot.h" -#include "keymaster_common.h" -#include "hardware.h" - - -// When device comes up or when user tries to change the password, user can -// try wrong password upto a certain number of times. If user enters wrong -// password further, HW would wipe all disk encryption related crypto data -// and would return an error ERR_MAX_PASSWORD_ATTEMPTS to VOLD. VOLD would -// wipe userdata partition once this error is received. -#define ERR_MAX_PASSWORD_ATTEMPTS -10 -#define QSEECOM_DISK_ENCRYPTION 1 -#define QSEECOM_UFS_ICE_DISK_ENCRYPTION 3 -#define QSEECOM_SDCC_ICE_DISK_ENCRYPTION 4 -#define MAX_PASSWORD_LEN 32 -#define QTI_ICE_STORAGE_UFS 1 -#define QTI_ICE_STORAGE_SDCC 2 - -/* Operations that be performed on HW based device encryption key */ -#define SET_HW_DISK_ENC_KEY 1 -#define UPDATE_HW_DISK_ENC_KEY 2 -#define MAX_DEVICE_ID_LENGTH 4 /* 4 = 3 (MAX_SOC_ID_LENGTH) + 1 */ - -static unsigned int cpu_id[] = { - 239, /* MSM8939 SOC ID */ -}; - -static int loaded_library = 0; -static int (*qseecom_create_key)(int, void*); -static int (*qseecom_update_key)(int, void*, void*); -static int (*qseecom_wipe_key)(int); - -static int map_usage(int usage) -{ - int storage_type = is_ice_enabled(); - if (usage == QSEECOM_DISK_ENCRYPTION) { - if (storage_type == QTI_ICE_STORAGE_UFS) { - return QSEECOM_UFS_ICE_DISK_ENCRYPTION; - } - else if (storage_type == QTI_ICE_STORAGE_SDCC) { - return QSEECOM_SDCC_ICE_DISK_ENCRYPTION ; - } - } - return usage; -} - -static unsigned char* get_tmp_passwd(const char* passwd) -{ - int passwd_len = 0; - unsigned char * tmp_passwd = NULL; - if(passwd) { - tmp_passwd = (unsigned char*)malloc(MAX_PASSWORD_LEN); - if(tmp_passwd) { - memset(tmp_passwd, 0, MAX_PASSWORD_LEN); - passwd_len = (strlen(passwd) > MAX_PASSWORD_LEN) ? MAX_PASSWORD_LEN : strlen(passwd); - memcpy(tmp_passwd, passwd, passwd_len); - } else { - SLOGE("%s: Failed to allocate memory for tmp passwd \n", __func__); - } - } else { - SLOGE("%s: Passed argument is NULL \n", __func__); - } - return tmp_passwd; -} - -static void wipe_userdata() -{ - mkdir("/cache/recovery", 0700); - int fd = open("/cache/recovery/command", O_RDWR|O_CREAT|O_TRUNC|O_NOFOLLOW, 0600); - if (fd >= 0) { - write(fd, "--wipe_data", strlen("--wipe_data") + 1); - close(fd); - } else { - SLOGE("could not open /cache/recovery/command\n"); - } - android_reboot(ANDROID_RB_RESTART2, 0, "recovery"); -} - -static int load_qseecom_library() -{ - const char *error = NULL; - if (loaded_library) - return loaded_library; - -#ifdef __LP64__ - void * handle = dlopen("/vendor/lib64/libQSEEComAPI.so", RTLD_NOW); -#else - void * handle = dlopen("/vendor/lib/libQSEEComAPI.so", RTLD_NOW); -#endif - if(handle) { - dlerror(); /* Clear any existing error */ - *(void **) (&qseecom_create_key) = dlsym(handle,"QSEECom_create_key"); - - if((error = dlerror()) == NULL) { - SLOGD("Success loading QSEECom_create_key \n"); - *(void **) (&qseecom_update_key) = dlsym(handle,"QSEECom_update_key_user_info"); - if ((error = dlerror()) == NULL) { - SLOGD("Success loading QSEECom_update_key_user_info\n"); - *(void **) (&qseecom_wipe_key) = dlsym(handle,"QSEECom_wipe_key"); - if ((error = dlerror()) == NULL) { - loaded_library = 1; - SLOGD("Success loading QSEECom_wipe_key \n"); - } - else - SLOGE("Error %s loading symbols for QSEECom APIs \n", error); - } - else - SLOGE("Error %s loading symbols for QSEECom APIs \n", error); - } - } else { - SLOGE("Could not load libQSEEComAPI.so \n"); - } - - if(error) - dlclose(handle); - - return loaded_library; -} - -/* - * For NON-ICE targets, it would return 0 on success. On ICE based targets, - * it would return key index in the ICE Key LUT - */ -static int set_key(const char* currentpasswd, const char* passwd, const char* enc_mode, int operation) -{ - int err = -1; - if (is_hw_disk_encryption(enc_mode) && load_qseecom_library()) { - unsigned char* tmp_passwd = get_tmp_passwd(passwd); - unsigned char* tmp_currentpasswd = get_tmp_passwd(currentpasswd); - if(tmp_passwd) { - if (operation == UPDATE_HW_DISK_ENC_KEY) { - if (tmp_currentpasswd) - err = qseecom_update_key(map_usage(QSEECOM_DISK_ENCRYPTION), tmp_currentpasswd, tmp_passwd); - } else if (operation == SET_HW_DISK_ENC_KEY) { - err = qseecom_create_key(map_usage(QSEECOM_DISK_ENCRYPTION), tmp_passwd); - } - if(err < 0) { - if(ERR_MAX_PASSWORD_ATTEMPTS == err) - wipe_userdata(); - } - free(tmp_passwd); - free(tmp_currentpasswd); - } - } - return err; -} - -int set_hw_device_encryption_key(const char* passwd, const char* enc_mode) -{ - return set_key(NULL, passwd, enc_mode, SET_HW_DISK_ENC_KEY); -} - -int update_hw_device_encryption_key(const char* oldpw, const char* newpw, const char* enc_mode) -{ - return set_key(oldpw, newpw, enc_mode, UPDATE_HW_DISK_ENC_KEY); -} - -unsigned int is_hw_disk_encryption(const char* encryption_mode) -{ - int ret = 0; - if(encryption_mode) { - if (!strcmp(encryption_mode, "aes-xts")) { - SLOGD("HW based disk encryption is enabled \n"); - ret = 1; - } - } - return ret; -} - -int clear_hw_device_encryption_key(void) -{ - if (load_qseecom_library()) - return qseecom_wipe_key(map_usage(QSEECOM_DISK_ENCRYPTION)); - - return 0; -} - -/* - * By default HW FDE is enabled, if the execution comes to - * is_hw_fde_enabled() API then for specific device/soc id, - * HW FDE is disabled. - */ -#ifdef CONFIG_SWV8_DISK_ENCRYPTION -unsigned int is_hw_fde_enabled(void) -{ - unsigned int device_id = -1; - unsigned int array_size; - unsigned int status = 1; - FILE *fd = NULL; - unsigned int i; - int ret = -1; - char buf[MAX_DEVICE_ID_LENGTH]; - - fd = fopen("/sys/devices/soc0/soc_id", "r"); - if (fd) { - ret = fread(buf, 1, MAX_DEVICE_ID_LENGTH, fd); - fclose(fd); - } else { - fd = fopen("/sys/devices/system/soc/soc0/id", "r"); - if (fd) { - ret = fread(buf, 1, MAX_DEVICE_ID_LENGTH, fd); - fclose(fd); - } - } - - if (ret > 0) { - device_id = atoi(buf); - } else { - SLOGE("Failed to read device id"); - return status; - } - - array_size = sizeof(cpu_id) / sizeof(cpu_id[0]); - for (i = 0; i < array_size; i++) { - if (device_id == cpu_id[i]) { - status = 0; - break; - } - } - - return status; -} -#else -unsigned int is_hw_fde_enabled(void) -{ - return 1; -} -#endif - -int is_ice_enabled(void) -{ - char prop_storage[PATH_MAX]; - int storage_type = 0; - int fd; - - if (property_get("ro.boot.bootdevice", prop_storage, "")) { - if (strstr(prop_storage, "ufs")) { - /* All UFS based devices has ICE in it. So we dont need - * to check if corresponding device exists or not - */ - storage_type = QTI_ICE_STORAGE_UFS; - } else if (strstr(prop_storage, "sdhc")) { - if (access("/dev/icesdcc", F_OK) != -1) - storage_type = QTI_ICE_STORAGE_SDCC; - } - } - return storage_type; -} - -static int get_keymaster_version() -{ - int rc = -1; - const hw_module_t* mod; - rc = hw_get_module_by_class(KEYSTORE_HARDWARE_MODULE_ID, NULL, &mod); - if (rc) { - SLOGE("could not find any keystore module"); - return rc; - } - - return mod->module_api_version; -} - -int should_use_keymaster() -{ - /* HW FDE key would be tied to keymaster only if: - * New Keymaster is available - * keymaster partition exists on the device - */ - int rc = 0; - if (get_keymaster_version() != KEYMASTER_MODULE_API_VERSION_1_0) { - SLOGI("Keymaster version is not 1.0"); - return rc; - } - - return 1; -} \ No newline at end of file diff --git a/cryptfs_hw/cryptfs_hw.h b/cryptfs_hw/cryptfs_hw.h deleted file mode 100644 index 7450061..0000000 --- a/cryptfs_hw/cryptfs_hw.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (c) 2014, The Linux Foundation. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * * Neither the name of The Linux Foundation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE - * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN - * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __CRYPTFS_HW_H_ -#define __CRYPTFS_HW_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -unsigned int wipe_hw_device_encryption_key(const char*); -int set_hw_device_encryption_key(const char*, const char*); -int update_hw_device_encryption_key(const char*, const char*, const char*); -int clear_hw_device_encryption_key(void); -unsigned int is_hw_disk_encryption(const char*); -unsigned int is_hw_fde_enabled(void); -int is_ice_enabled(void); -int should_use_keymaster(); - -#ifdef __cplusplus -} -#endif -#endif \ No newline at end of file diff --git a/omni_dumpling.mk b/omni_dumpling.mk old mode 100644 new mode 100755 diff --git a/recovery.fstab b/recovery.fstab old mode 100644 new mode 100755 index a3364f3..d662a26 --- a/recovery.fstab +++ b/recovery.fstab @@ -4,7 +4,7 @@ /recovery emmc /dev/block/bootdevice/by-name/recovery flags=backup=1 /system ext4 /dev/block/bootdevice/by-name/system /system_image emmc /dev/block/bootdevice/by-name/system -/data ext4 /dev/block/bootdevice/by-name/userdata flags=encryptable=footer;length=-16384 +/data ext4 /dev/block/bootdevice/by-name/userdata /firmware vfat /dev/block/bootdevice/by-name/modem flags=display="Firmware";mounttodecrypt;fsflags=ro /misc emmc /dev/block/bootdevice/by-name/misc /modem emmc /dev/block/bootdevice/by-name/modem flags=backup=1;display="Modem" diff --git a/recovery/root/init.recovery.qcom.rc b/recovery/root/init.recovery.qcom.rc old mode 100644 new mode 100755 index 2ca4fd8..8a5092e --- a/recovery/root/init.recovery.qcom.rc +++ b/recovery/root/init.recovery.qcom.rc @@ -25,44 +25,6 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -service servicemanager /sbin/servicemanager - disabled - user root - group root readproc - seclabel u:r:recovery:s0 - writepid /dev/cpuset/system-background/tasks - -service keystore /sbin/keystore /data/misc/keystore - disabled - user root - group root drmrpc readproc - seclabel u:r:recovery:s0 - writepid /dev/cpuset/foreground/tasks - -service qseecomd /sbin/qseecomd - disabled - user root - group root - seclabel u:r:recovery:s0 - -service servicemanager /sbin/servicemanager - disabled - user root - group root readproc - seclabel u:r:recovery:s0 - writepid /dev/cpuset/system-background/tasks - -on init - setprop ro.hardware.keystore msm8998 - setprop ro.hardware.gatekeeper msm8998 - setprop ro.hardware.bootctrl msm8998 - chmod 0660 /dev/qseecom - chown system drmrpc /dev/qseecom - chmod 0664 /dev/ion - chown system system /dev/ion - start qseecomd - start servicemanager - on fs wait /dev/block/platform/soc/1da4000.ufshc symlink /dev/block/platform/soc/1da4000.ufshc /dev/block/bootdevice @@ -72,9 +34,12 @@ on fs chown system system /dev/ion install_keyring +# Separate copy needed to use /sbin/linker64 instead of /system/bin/linker64 +service sbinqseecomd /sbin/qseecomd + disabled + user root + group root + seclabel u:r:recovery:s0 + on boot - # save battery by switching to interactive once booted - write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor interactive - write /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor interactive - write /sys/devices/system/cpu/cpu2/online 0 - write /sys/devices/system/cpu/cpu3/online 0 \ No newline at end of file + start sbinqseecomd diff --git a/recovery/root/init.recovery.usb.rc b/recovery/root/init.recovery.usb.rc old mode 100644 new mode 100755 index ba257c7..f64186e --- a/recovery/root/init.recovery.usb.rc +++ b/recovery/root/init.recovery.usb.rc @@ -25,8 +25,7 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -on fs - mount pstore pstore /sys/fs/pstore +on boot mkdir /dev/usb-ffs 0770 shell shell mkdir /dev/usb-ffs/adb 0770 shell shell mount configfs none /config @@ -37,13 +36,33 @@ on fs write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno} write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer} write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model} + mkdir /config/usb_gadget/g1/functions/mass_storage.0 + mkdir /config/usb_gadget/g1/functions/mtp.gs0 + mkdir /config/usb_gadget/g1/functions/ptp.gs1 + mkdir /config/usb_gadget/g1/functions/accessory.gs2 + mkdir /config/usb_gadget/g1/functions/audio_source.gs2 + mkdir /config/usb_gadget/g1/functions/audio_source.gs3 + mkdir /config/usb_gadget/g1/functions/midi.gs5 mkdir /config/usb_gadget/g1/functions/ffs.adb + mkdir /config/usb_gadget/g1/functions/diag.diag + mkdir /config/usb_gadget/g1/functions/cser.dun.0 + mkdir /config/usb_gadget/g1/functions/cser.nmea.1 + mkdir /config/usb_gadget/g1/functions/gsi.rmnet + mkdir /config/usb_gadget/g1/functions/gsi.rndis + mkdir /config/usb_gadget/g1/functions/gsi.dpl + mkdir /config/usb_gadget/g1/functions/qdss.qdss + mkdir /config/usb_gadget/g1/functions/rndis_bam.rndis + mkdir /config/usb_gadget/g1/functions/rmnet_bam.rmnet + mkdir /config/usb_gadget/g1/functions/rmnet_bam.dpl + mkdir /config/usb_gadget/g1/functions/ncm.0 + mkdir /config/usb_gadget/g1/functions/ccid.ccid mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1 write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100" symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000 + write /sys/class/android_usb/android0/f_ffs/aliases adb on property:sys.usb.config=none write /config/usb_gadget/g1/UDC "none" @@ -58,17 +77,17 @@ on property:sys.usb.config=adb start adbd on property:sys.usb.ffs.ready=1 && property:sys.usb.config=adb - write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Recovery mode" + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "adb" rm /config/usb_gadget/g1/configs/b.1/f1 rm /config/usb_gadget/g1/configs/b.1/f2 rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 - write /config/usb_gadget/g1/idVendor 0x18D1 - write /config/usb_gadget/g1/idProduct 0xD001 - write /config/usb_gadget/g1/strings/0x409/product "OnePlus" + write /config/usb_gadget/g1/idVendor 0x18d1 + write /config/usb_gadget/g1/idProduct 0x4ee7 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f1 - write /config/usb_gadget/g1/UDC "a800000.dwc3" + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} on property:sys.usb.config=mtp write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "mtp" @@ -77,8 +96,8 @@ on property:sys.usb.config=mtp rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 - write /config/usb_gadget/g1/idVendor 0x18D1 - write /config/usb_gadget/g1/idProduct 0xD001 + write /config/usb_gadget/g1/idVendor 0x2717 + write /config/usb_gadget/g1/idProduct 0xff40 symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1 write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} @@ -93,8 +112,8 @@ on property:sys.usb.ffs.ready=1 && property:sys.usb.config=mtp,adb rm /config/usb_gadget/g1/configs/b.1/f3 rm /config/usb_gadget/g1/configs/b.1/f4 rm /config/usb_gadget/g1/configs/b.1/f5 - write /config/usb_gadget/g1/idVendor 0x18D1 - write /config/usb_gadget/g1/idProduct 0xD001 + write /config/usb_gadget/g1/idVendor 0x2717 + write /config/usb_gadget/g1/idProduct 0xff48 symlink /config/usb_gadget/g1/functions/mtp.gs0 /config/usb_gadget/g1/configs/b.1/f1 symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 write /config/usb_gadget/g1/UDC ${sys.usb.controller} diff --git a/recovery/root/sbin/qseecomd b/recovery/root/sbin/qseecomd index c132b97a0ed687a6236eb6b71706603317470140..91e106fdd2cb90de0b86446aaf17ee0952e369be 100755 GIT binary patch delta 2103 zcmZ9MU1%It6vxl(Y&N^eBFSVolQm6tw!y@#Vvy)*nXgPFnfTwu}w_DotopDR!Cm%@t2mG8=`yuYrse6lMZS?e8pe~Wey=as6X z8IMmni4%T3GF#(TFgo2;^}6dNoG1DdryC@?h)O_@tZ@3YME%%8RI7C>^+|Lc_7kn= zbe}{MXc2va)3ii);w;fUoF0?t5Z)v@!s(1e4`ZxEk4$npC($fELv)(cC5fKJcZgo* z6uN*t;;ydZDWbn~S|!nGTp+s4X|qHxV|l3_DUP}oJ0+@N7f~_Q4vE&_UZTxBcR->Y zIB`$zh(xDxp6F(tn~`WADnUK+DyLbA4q^*YG1Wzh9>9L0<2*Mn(JWd-FL1gl(dpc5 zaLHSAsNRZQ!H>&zr5nF4->&4bR@3iauD9~7U@aDd`MPZ%$tcjK0HkBkkn7c6Qi{qN ztnN+tdBu}#H;2AZkI&J{9>U(x=782+hz9c(v)@yau7w*!BxtYbR^@6)4=&J@8%tVV!PUX7Xy zYBa9V3G(2cz!@v%#H`@+dJnHKu2&}=?a*UZzBp=D|6?C@8K`Id*rOTBs?Qt9NO5`V_SkykOfpW52lU zCb2zqIQpT}&cHBgTCr8r(s^NafMBcD{Zy-!SHZfbR+=GV;JN2A96r#RECd9d0RFuT zH}C-!pqu%D8v5vF3k}QKSi`?bub=_m5+DBMHa7f%S}}Ezn8VrNU;U?_C(RkkIpA$| zJH)r$vDr^nXuAJV*7TZM5kEsgg{IziD>l|{Es}nN^f9`XKWSwRvdt{#1ie#n^G5F7 z$goe@hXJEW`5reK(V{JX+4d5?U^Gx*4%`#zcgn&yrd>i za@z%iy3->p{1VrNX}c6)k?X>)q1h#VZb`zZ*9m*$iNc~2LhocC3BsLsav=Pe=fM!y zg%g)@aG2}DgR`PA=fY9Wa=nD>!gsGSJqaMJRx}ie!en8n8T`1mT>6qOgk#c?X1E?gHVKS*{Cz2=qoBkXOe`b@wJ~uh#%vpsQn3b1a6EJ8-WBh>+&ll@ z`MP&D|7>UGxzTqb&r(-w(dN5!Xy*E#KyC}0y&f5ffyyhKCTOEkji zkVG5MB-+ktMxxy~PqdfQoJ0rk4$)yw=OlU-<9_SMpR7IBT)?ph#ro*)0~!Q5-;q^ z9hK-bE)#u-=Vm3^gGz-S?&EYyqW#!JR7~})M9*L^(f4_-CD9z3L_gznOQO^H`HF(K zq(5QCui)i?uGHW+fv1%@j8y9PEG0}U3FeJGVD#JexvT=m6o5?JO5{5$`;?N6gxP)& zKM6j@c2igy>L_)zje6`1J?i@-VR|UM{XrZL)q1SM`1Sw9N{xvrt%jw)hbOgKk^Ytz zVPXg;wJ6&S;`f@)c8Bnm_5j;uvA*h4wrj!Pt7_Q}aIYRc;!LrAzj*{8WT{bORgKnH z(g`eZPvDFdcVd3Pr}Pe9VO+0HJ6iw4rnM((RR3e2b52`~ooZmZM*8H)$*s3N{_pOq zfEj?{%Bvl)yz_e7r9V5r%FU_It&}A%K5kdTY}u*dS8l5NKDI`{TRrOX)_7 z4L6dk;ST9R8sJs&!5=xshF?{KlZ(V0&IX_OPhTL-8Ok}}rV90V*QVcA=dSC1<~VD* zrUvV0DX7@=x8r8~jb`%(>9=idpBlq$m*h&3p`U|TF& z()E{ZTliwEF0g;ownuH-9=mJXS7>d_pO1}{qotJPV@C^WdV+f`#Hckr!nYT=E}Yt> z0N1%LJQ^A~;Z7smImF*Zp77-cp|>)U24TtF90(H@i3400_FK-uS*{D?&56RC3mci? zx}WR9Y*(0`1`z%#8j3{WtZ>>TB2jp%pL>m*rwKjd65*psu8aDNQhyMFFin_p6MJ}q zu*-f?*u}-XGeQrzKv-ms>%tUyS}_lvc)1t7MnpN0uQkqll@^?DZt#tU-MCTQZch0M UyhZ^}q*A`(KY;vesSiB=0@cC9H2?qr diff --git a/recovery/root/sbin/servicemanager b/recovery/root/sbin/servicemanager deleted file mode 100644 index 0b4a5727fef880fd16522c5e2a59a6ea3e195fe1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18592 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 literal 0 HcmV?d00001 diff --git a/recovery/root/vendor/lib64/libGPreqcancel.so b/recovery/root/vendor/lib64/libGPreqcancel.so index 030f9b3b47bbf07a787b930060362b35b5df8e97..b80065a8fbaf88200152f71275fafe5bb4404025 100755 GIT binary patch delta 49 zcmV-10M7rwP{2^IC;||PrQ(>cR$2g83H4MyM)!!5p#d1PPy+uQ0XUOTAXo(5t-?C9 HtRR#J3_}!T delta 49 zcmV-10M7rwP{2^IC;||y>EQGq)W<@{oV%|F8IE(4p#d1PPy+uQ0XdUUAXo%WLiH`P HtRR#JLrN7f diff --git a/recovery/root/vendor/lib64/libGPreqcancel_svc.so b/recovery/root/vendor/lib64/libGPreqcancel_svc.so index bfb083f368c7f533307fa464861bfb42fc3db583..bb1237cb2c04f0d956406347edbb43c5055345d7 100755 GIT binary patch delta 49 zcmV-10M7r&P{>fQC;||Bo#>$D+}u${^;+iPJ*2vmp#d1PPyz!U0XUOXAY24oGe>i? Hv>=oRQ2G@f delta 49 zcmV-10M7r&P{>fQC;|{FX=oR;eis4 diff --git a/recovery/root/vendor/lib64/libQSEEComAPI.so b/recovery/root/vendor/lib64/libQSEEComAPI.so index 462c0fe874c49e2dc3c5148dbca793df8438f24c..18c39b7e77af6e637374be1399a97a065a2fccdf 100755 GIT binary patch delta 51 zcmV-30L=gRj{*3P0k9|n5NlL&oT3$@Me1e@KDLBlHItzM7_(3U|2+XXlTbid1Om$c J1hcF_Oa~lh6W0I$ delta 51 zcmV-30L=gRj{*3P0k9|n5L9T#zwUZtgpZ^DKbLYfo|B;g7_(3U|2+XYlTbid1gYzm Jva_r}Ob2NT7VQ84 diff --git a/recovery/root/vendor/lib64/libSecureUILib.so b/recovery/root/vendor/lib64/libSecureUILib.so new file mode 100755 index 0000000000000000000000000000000000000000..bc8106c9a0d27c3a9106ec4a20bcf42d2db0927c GIT binary patch literal 10312 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 Mh8%L-t|Y~O1I^JMZvX%Q literal 0 HcmV?d00001 diff --git a/recovery/root/vendor/lib64/libdiag.so b/recovery/root/vendor/lib64/libdiag.so index 2d2a49394c3af1ee6e0c273b4e7bc36756facbb9..54fcca31d549ebb7d307aee62e7430d821704e5e 100755 GIT binary patch delta 62861 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 B2@L=M delta 62895 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 blPQCzp{V%XotWOAY|FEKK1pY$*gpS%xe>Th diff --git a/recovery/root/vendor/lib64/libdrmfs.so b/recovery/root/vendor/lib64/libdrmfs.so index d65aea889464928ef2a73db486edd58d30a6a1d0..979fad074590e4c72e53857f4a652b5d563ce5cb 100755 GIT binary patch delta 51 zcmV-30L=fmumQNR0k9|n5JAMO4O3fUx4b+a1kGm6dXu367_(3U|4jinlTc7l1hy1% Jkh7#vlm{1R6hZ(1 delta 51 zcmV-30L=fmumQNR0k9|n5dK|J*R8oHdPow17d{ToStMVz6p#d1PPy+ug0XUOTFjNGh&2yEr Hs4$QRCU+G) delta 49 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%0Aj95>{pWf3-Tu9%f!~tO=B911RUY<} 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 c1di&b67a{<5-i4U2bfCh-~a#s literal 0 HcmV?d00001 diff --git a/recovery/root/vendor/lib64/libspl.so b/recovery/root/vendor/lib64/libspl.so new file mode 100755 index 0000000000000000000000000000000000000000..8d22adf6a41226ee94d20ca0ea490db737fd2145 GIT binary patch literal 10296 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 literal 0 HcmV?d00001 diff --git a/recovery/root/vendor/lib64/libssd.so b/recovery/root/vendor/lib64/libssd.so index 8bde62243b401833cc714e1a2220a2ac8bd135cc..a2a7fd9e19fde83141313342b8d44b8f6f8de3e6 100755 GIT binary patch delta 49 zcmV-10M7roP`FUAC;||ml^^%A!ACDFtx879P{@vxp#d1PPy+uQ0XUOTAW#H2v~TRQ Hq#%?B4+s=r delta 49 zcmV-10M7roP`FUAC;|}aT1(MC7{jiIw-s=1uJ3G0tZZkillyUG@hgkQ~~=^4g&xH delta 33 rcmV++0N(%LPvB3mC;|{(OZvo*bG$sh#mUkZJbJ&Ap#d1PPy&!86^0L5 diff --git a/system.prop b/system.prop old mode 100644 new mode 100755 diff --git a/untitled.make b/untitled.make new file mode 100644 index 0000000..b9e4b8d --- /dev/null +++ b/untitled.make @@ -0,0 +1,35 @@ + +# +# Copyright 2014 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# This contains the module build definitions for the hardware-specific +# components for this device. +# +# As much as possible, those components should be built unconditionally, +# with device-specific names to avoid collisions, to avoid device-specific +# bitrot and build breakages. Building a component unconditionally does +# *not* include it on all devices, so it is safe even with hardware-specific +# components. + +LOCAL_PATH := $(call my-dir) + +ifneq ($(filter mata, $(TARGET_DEVICE)),) + +include $(call all-makefiles-under,$(LOCAL_PATH)) + +include $(CLEAR_VARS) + +endif \ No newline at end of file diff --git a/vendorsetup.sh b/vendorsetup.sh old mode 100644 new mode 100755 -- 2.20.1