diff --git a/a10/device.mk b/a10/device.mk
index b02d48a..fc553da 100644
--- a/a10/device.mk
+++ b/a10/device.mk
@@ -5,5 +5,18 @@ $(call inherit-product, device/samsung/universal7885-common/universal7885-common
$(call inherit-product, vendor/samsung/a10/a10-vendor.mk)
+$(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk)
+
PRODUCT_PACKAGES += \
CameraLightSensor
+
+# USB
+PRODUCT_PACKAGES += \
+ android.hardware.usb@1.0-service.a10
+
+TARGET_SCREEN_HEIGHT := 1560
+TARGET_SCREEN_WIDTH := 720
+
+PRODUCT_PACKAGES += \
+ fstab.exynos7884B \
+ ueventd.exynos7884B.rc
diff --git a/a20/device.mk b/a20/device.mk
index b1db20f..68e3efb 100644
--- a/a20/device.mk
+++ b/a20/device.mk
@@ -5,8 +5,27 @@ $(call inherit-product, device/samsung/universal7885-common/universal7885-common
$(call inherit-product, vendor/samsung/a20/a20-vendor.mk)
+$(call inherit-product, frameworks/native/build/phone-xhdpi-4096-dalvik-heap.mk)
+
# Derp
DERP_BUILDTYPE := Official
PRODUCT_PACKAGES += \
CameraLightSensor
+
+# USB
+PRODUCT_PACKAGES += \
+ android.hardware.usb@1.1-service.exynos7885
+
+TARGET_SCREEN_HEIGHT := 1560
+TARGET_SCREEN_WIDTH := 720
+
+# Fingerprint
+PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
+
+PRODUCT_PACKAGES += \
+ android.hardware.biometrics.fingerprint@2.1-service.samsung
+
+PRODUCT_PACKAGES += \
+ fstab.exynos7884B \
+ ueventd.exynos7884B.rc
diff --git a/a20e/device.mk b/a20e/device.mk
index 875e2ef..cdebb60 100644
--- a/a20e/device.mk
+++ b/a20e/device.mk
@@ -5,8 +5,27 @@ $(call inherit-product, device/samsung/universal7885-common/universal7885-common
$(call inherit-product, vendor/samsung/a20e/a20e-vendor.mk)
+$(call inherit-product, frameworks/native/build/phone-xhdpi-4096-dalvik-heap.mk)
+
# Derp
DERP_BUILDTYPE := Official
PRODUCT_PACKAGES += \
CameraLightSensor
+
+# USB
+PRODUCT_PACKAGES += \
+ android.hardware.usb@1.1-service.exynos7885
+
+TARGET_SCREEN_HEIGHT := 1560
+TARGET_SCREEN_WIDTH := 720
+
+# Fingerprint
+PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
+
+PRODUCT_PACKAGES += \
+ android.hardware.biometrics.fingerprint@2.1-service.samsung
+
+PRODUCT_PACKAGES += \
+ fstab.exynos7884B \
+ ueventd.exynos7884B.rc
diff --git a/a30/device.mk b/a30/device.mk
index 7ae9806..7fb293e 100644
--- a/a30/device.mk
+++ b/a30/device.mk
@@ -5,4 +5,21 @@ $(call inherit-product, device/samsung/universal7885-common/universal7885-common
$(call inherit-product, vendor/samsung/a30/a30-vendor.mk)
+$(call inherit-product, frameworks/native/build/phone-xhdpi-4096-dalvik-heap.mk)
+TARGET_SCREEN_HEIGHT := 2280
+TARGET_SCREEN_WIDTH := 1080
+
+# USB
+PRODUCT_PACKAGES += \
+ android.hardware.usb@1.1-service.exynos7885
+
+# Fingerprint
+PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
+
+PRODUCT_PACKAGES += \
+ android.hardware.biometrics.fingerprint@2.1-service.samsung
+
+PRODUCT_PACKAGES += \
+ fstab.exynos7904 \
+ ueventd.exynos7904.rc
diff --git a/a30/setup.sh b/a30/setup.sh
index d113d49..5076fae 100755
--- a/a30/setup.sh
+++ b/a30/setup.sh
@@ -18,5 +18,5 @@ echo "PRODUCT_NAME := "$VENDOR"_a30" >> device/samsung/a30/"$VENDOR"_a30.mk
echo "" >> device/samsung/a30/"$VENDOR"_a30.mk
echo "# Additional Props" >> device/samsung/a30/"$VENDOR"_a30.mk
echo "TARGET_FACE_UNLOCK_SUPPORTED := true" >> device/samsung/a30/"$VENDOR"_a30.mk
-echo "TARGET_BOOT_ANIMATION_RES := 720" >> device/samsung/a30/"$VENDOR"_a30.mk
+echo "TARGET_BOOT_ANIMATION_RES := 1080" >> device/samsung/a30/"$VENDOR"_a30.mk
diff --git a/a40/device.mk b/a40/device.mk
index a7d86fb..5e88a9f 100644
--- a/a40/device.mk
+++ b/a40/device.mk
@@ -5,5 +5,21 @@ $(call inherit-product, device/samsung/universal7885-common/universal7885-common
$(call inherit-product, vendor/samsung/a40/a40-vendor.mk)
+$(call inherit-product, frameworks/native/build/phone-xhdpi-4096-dalvik-heap.mk)
+# USB
+PRODUCT_PACKAGES += \
+ android.hardware.usb@1.1-service.exynos7885
+TARGET_SCREEN_HEIGHT := 2280
+TARGET_SCREEN_WIDTH := 1080
+
+# Fingerprint
+PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
+
+PRODUCT_PACKAGES += \
+ android.hardware.biometrics.fingerprint@2.1-service.samsung
+
+PRODUCT_PACKAGES += \
+ fstab.exynos7904 \
+ ueventd.exynos7904.rc
diff --git a/a40/overlay/frameworks/base/core/res/res/xml/power_profile.xml b/a40/overlay/frameworks/base/core/res/res/xml/power_profile.xml
index 9d44c02..dbdc409 100644
--- a/a40/overlay/frameworks/base/core/res/res/xml/power_profile.xml
+++ b/a40/overlay/frameworks/base/core/res/res/xml/power_profile.xml
@@ -69,8 +69,8 @@
- 3.79
- 23
- - 5000
- - 5000
+ - 3100
+ - 3100
- 1
- 65
- 265
diff --git a/a40/setup.sh b/a40/setup.sh
index 9d1206c..605c9f2 100755
--- a/a40/setup.sh
+++ b/a40/setup.sh
@@ -18,5 +18,5 @@ echo "PRODUCT_NAME := "$VENDOR"_a40" >> device/samsung/a40/"$VENDOR"_a40.mk
echo "" >> device/samsung/a40/"$VENDOR"_a40.mk
echo "# Additional Props" >> device/samsung/a40/"$VENDOR"_a40.mk
echo "TARGET_FACE_UNLOCK_SUPPORTED := true" >> device/samsung/a40/"$VENDOR"_a40.mk
-echo "TARGET_BOOT_ANIMATION_RES := 720" >> device/samsung/a40/"$VENDOR"_a40.mk
+echo "TARGET_BOOT_ANIMATION_RES := 1080" >> device/samsung/a40/"$VENDOR"_a40.mk
diff --git a/universal7885-common/Android.mk b/universal7885-common/Android.mk
index e054287..6f273f0 100644
--- a/universal7885-common/Android.mk
+++ b/universal7885-common/Android.mk
@@ -1,6 +1,6 @@
LOCAL_PATH := $(call my-dir)
-ifneq ($(filter a20 a20e, $(TARGET_DEVICE)),)
+ifneq ($(filter a10 a20 a20e a30 a40, $(TARGET_DEVICE)),)
include $(call all-makefiles-under,$(LOCAL_PATH))
@@ -9,27 +9,6 @@ include $(CLEAR_VARS)
LIBGLES_MALI_LIBRARY := /vendor/lib/egl/libGLES_mali.so
LIBGLES_MALI64_LIBRARY := /vendor/lib64/egl/libGLES_mali.so
-VULKAN_SYMLINK := $(TARGET_OUT_VENDOR)/lib/hw/vulkan.universal7884B.so
-$(VULKAN_SYMLINK): $(LOCAL_INSTALLED_MODULE)
- @echo "Creating lib/hw/vulkan.universal7884B.so symlink: $@"
- @mkdir -p $(dir $@)
- $(hide) ln -sf $(LIBGLES_MALI_LIBRARY) $@
-
-VULKAN64_SYMLINK := $(TARGET_OUT_VENDOR)/lib64/hw/vulkan.universal7884B.so
-$(VULKAN64_SYMLINK): $(LOCAL_INSTALLED_MODULE)
- @echo "Creating lib64/hw/vulkan.universal7884B.so symlink: $@"
- @mkdir -p $(dir $@)
- $(hide) ln -sf $(LIBGLES_MALI64_LIBRARY) $@
-
-ALL_DEFAULT_INSTALLED_MODULES += \
- $(VULKAN_SYMLINK) \
- $(VULKAN64_SYMLINK)
-
-include $(CLEAR_VARS)
-
-LIBGLES_MALI_LIBRARY := /vendor/lib/egl/libGLES_mali.so
-LIBGLES_MALI64_LIBRARY := /vendor/lib64/egl/libGLES_mali.so
-
LIBOPENCL_SYMLINK := $(TARGET_OUT_VENDOR)/lib/libOpenCL.so
$(LIBOPENCL_SYMLINK): $(LOCAL_INSTALLED_MODULE)
@echo "Creating lib/libOpenCL.so symlink: $@"
diff --git a/universal7885-common/BoardConfigCommon.mk b/universal7885-common/BoardConfigCommon.mk
index 1c6d2e4..60a6380 100644
--- a/universal7885-common/BoardConfigCommon.mk
+++ b/universal7885-common/BoardConfigCommon.mk
@@ -3,9 +3,16 @@ COMMON_PATH := device/samsung/universal7885-common
BOARD_VENDOR := samsung
# Platform
-TARGET_BOARD_PLATFORM := universal7884B
+TARGET_BOARD_PLATFORM := exynos7
+
+ifeq ($(TARGET_DEVICE), $(filter $(TARGET_DEVICE),a10 a20 a20e))
TARGET_SOC := exynos7884B
TARGET_BOOTLOADER_BOARD_NAME := universal7884B
+else ifeq ($(TARGET_DEVICE), $(filter $(TARGET_DEVICE),a30 a40))
+TARGET_SOC := exynos7904
+TARGET_BOOTLOADER_BOARD_NAME := universal7904
+endif
+
TARGET_NO_BOOTLOADER := true
TARGET_NO_RADIOIMAGE := true
@@ -45,7 +52,7 @@ BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
TARGET_SPECIFIC_HEADER_PATH := $(COMMON_PATH)/include
# Init
-TARGET_INIT_VENDOR_LIB := //$(COMMON_PATH):libinit_universal7884B
+TARGET_INIT_VENDOR_LIB := //$(COMMON_PATH):libinit_universal7885
# Kernel
BOARD_KERNEL_IMAGE_NAME := Image
diff --git a/universal7885-common/init/Android.bp b/universal7885-common/init/Android.bp
index fe6cf95..d5fde41 100644
--- a/universal7885-common/init/Android.bp
+++ b/universal7885-common/init/Android.bp
@@ -13,10 +13,10 @@
// limitations under the License.
cc_library_static {
- name: "libinit_universal7884B",
+ name: "libinit_universal7885",
recovery_available: true,
whole_static_libs: ["libbase"],
header_libs: ["libbase_headers"],
- srcs: ["init_universal7884B.cpp"],
+ srcs: ["init_universal7885.cpp"],
include_dirs: ["system/core/init"]
}
diff --git a/universal7885-common/init/init_universal7884B.cpp b/universal7885-common/init/init_universal7885.cpp
similarity index 87%
rename from universal7885-common/init/init_universal7884B.cpp
rename to universal7885-common/init/init_universal7885.cpp
index 2d08fc0..8556997 100644
--- a/universal7885-common/init/init_universal7884B.cpp
+++ b/universal7885-common/init/init_universal7885.cpp
@@ -71,6 +71,14 @@ void set_ro_build_prop(const std::string &prop, const std::string &value, bool p
}
}
+bool hasEnding (std::string const &fullString, std::string const &ending) {
+ if (fullString.length() >= ending.length()) {
+ return (0 == fullString.compare (fullString.length() - ending.length(), ending.length(), ending));
+ } else {
+ return false;
+ }
+}
+
void vendor_load_properties() {
string model;
@@ -79,8 +87,8 @@ void vendor_load_properties() {
model = GetProperty("ro.boot.em.model", "");
}
- if (model == "SM-A205FN" || model == "SM-A205GN" || model == "SM-A202K" || model == "SM-A205YN") {
- property_override("ro.boot.product.hardware.sku", "NFC");
+ if (hasEnding(model, "N") || hasEnding(model, "S") || hasEnding(model, "K")) {
+ property_override("ro.boot.product.hardware.sku", "NFC");
}
set_ro_build_prop("model", model);
diff --git a/universal7885-common/rootdir/Android.mk b/universal7885-common/rootdir/Android.mk
index 34085ef..17e0fd5 100644
--- a/universal7885-common/rootdir/Android.mk
+++ b/universal7885-common/rootdir/Android.mk
@@ -9,7 +9,7 @@ LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
-LOCAL_MODULE := init.exynos7884B.rc
+LOCAL_MODULE := init.exynos7885.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/$(LOCAL_MODULE)
@@ -17,7 +17,7 @@ LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
-LOCAL_MODULE := init.exynos7884B.usb.rc
+LOCAL_MODULE := init.exynos7885.usb.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/$(LOCAL_MODULE)
@@ -29,7 +29,16 @@ LOCAL_MODULE := ueventd.exynos7884B.rc
LOCAL_MODULE_STEM := ueventd.rc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_CLASS := ETC
-LOCAL_SRC_FILES := etc/$(LOCAL_MODULE_STEM)
+LOCAL_SRC_FILES := etc/$(LOCAL_MODULE)
+LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)
+include $(BUILD_PREBUILT)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := ueventd.exynos7904.rc
+LOCAL_MODULE_STEM := ueventd.rc
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := ETC
+LOCAL_SRC_FILES := etc/$(LOCAL_MODULE)
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)
include $(BUILD_PREBUILT)
@@ -57,6 +66,14 @@ LOCAL_SRC_FILES := etc/$(LOCAL_MODULE)
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)
include $(BUILD_PREBUILT)
+include $(CLEAR_VARS)
+LOCAL_MODULE := fstab.exynos7904
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := ETC
+LOCAL_SRC_FILES := etc/$(LOCAL_MODULE)
+LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)
+include $(BUILD_PREBUILT)
+
include $(CLEAR_VARS)
LOCAL_MODULE := init.target.rc
LOCAL_MODULE_TAGS := optional
diff --git a/universal7885-common/rootdir/etc/fstab.exynos7904 b/universal7885-common/rootdir/etc/fstab.exynos7904
new file mode 100644
index 0000000..aea54ba
--- /dev/null
+++ b/universal7885-common/rootdir/etc/fstab.exynos7904
@@ -0,0 +1,18 @@
+# Android fstab file.
+#
+# The filesystem that contains the filesystem checker binary (typically /system) cannot
+# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
+
+# system and vendor partition will be early-mounted by kernel
+# /dev/block/platform/13500000.dwmmc0/by-name/system /system ext4 ro wait
+/dev/block/platform/13500000.dwmmc0/by-name/cache /cache ext4 nosuid,nodev,noatime,barrier=1 wait
+/dev/block/platform/13500000.dwmmc0/by-name/cache /cache f2fs nosuid,nodev,noatime,inline_xattr,flush_merge,data_flush wait
+/dev/block/platform/13500000.dwmmc0/by-name/userdata /data ext4 nosuid,nodev,barrier=1,noauto_da_alloc,discard,noatime,lazytime wait,check,quota,reservedsize=128M
+/dev/block/platform/13500000.dwmmc0/by-name/userdata /data f2fs nosuid,nodev,discard,noatime,lazytime,data_flush wait,check,quota
+/dev/block/platform/13500000.dwmmc0/by-name/efs /mnt/vendor/efs ext4 noatime,nosuid,nodev,noauto_da_alloc,discard,journal_checksum,data=ordered,errors=panic wait,check
+/dev/block/platform/13500000.dwmmc0/by-name/misc /misc emmc defaults defaults
+
+# VOLD :: fstab.a20e
+/dev/block/platform/13500000.dwmmc0/by-name/hidden /preload ext4 noatime,nosuid,nodev,noauto_da_alloc,discard,journal_checksum,data=ordered,errors=panic voldmanaged=preload:auto,check
+/devices/platform/13550000.dwmmc2/mmc_host/mmc1* auto vfat defaults voldmanaged=sdcard:auto
+/devices/platform/13600000.usb/13600000.dwc3* auto auto defaults voldmanaged=usb:auto
diff --git a/universal7885-common/rootdir/etc/init.exynos7884B.rc b/universal7885-common/rootdir/etc/init.exynos7885.rc
similarity index 100%
rename from universal7885-common/rootdir/etc/init.exynos7884B.rc
rename to universal7885-common/rootdir/etc/init.exynos7885.rc
diff --git a/universal7885-common/rootdir/etc/init.exynos7884B.usb.rc b/universal7885-common/rootdir/etc/init.exynos7885.usb.rc
similarity index 100%
rename from universal7885-common/rootdir/etc/init.exynos7884B.usb.rc
rename to universal7885-common/rootdir/etc/init.exynos7885.usb.rc
diff --git a/universal7885-common/rootdir/etc/ueventd.rc b/universal7885-common/rootdir/etc/ueventd.exynos7884B.rc
similarity index 100%
rename from universal7885-common/rootdir/etc/ueventd.rc
rename to universal7885-common/rootdir/etc/ueventd.exynos7884B.rc
diff --git a/universal7885-common/rootdir/etc/ueventd.exynos7904.rc b/universal7885-common/rootdir/etc/ueventd.exynos7904.rc
new file mode 100644
index 0000000..84eae04
--- /dev/null
+++ b/universal7885-common/rootdir/etc/ueventd.exynos7904.rc
@@ -0,0 +1,231 @@
+/dev/mali0 0666 system system
+/dev/ion 0666 system system
+/dev/ump 0666 system graphics
+/dev/exynos-mem 0660 system graphics
+/dev/video0 0660 system camera
+/dev/video1 0660 system camera
+/dev/video2 0660 system camera
+/dev/video3 0660 system camera
+/dev/video20 0660 system system
+# media0 is used for GSC, DECON, etc
+/dev/media0 0660 system camera
+# media1 is used for DECON Ext WB
+/dev/media1 0660 system graphics
+# Various devices use the v4l-subdev interface
+# We declare all such nodes simultaneously here
+/dev/v4l-subdev0 0660 system camera
+/dev/v4l-subdev1 0660 system camera
+/dev/v4l-subdev2 0660 system camera
+/dev/v4l-subdev3 0660 system camera
+/dev/v4l-subdev4 0660 system camera
+/dev/v4l-subdev5 0660 system camera
+/dev/v4l-subdev6 0660 system camera
+/dev/v4l-subdev7 0660 system camera
+/dev/v4l-subdev8 0660 system camera
+/dev/v4l-subdev9 0660 system camera
+/dev/v4l-subdev10 0660 system camera
+/dev/v4l-subdev11 0660 system camera
+/dev/v4l-subdev12 0660 system camera
+/dev/v4l-subdev13 0660 system camera
+/dev/v4l-subdev14 0660 system camera
+/dev/v4l-subdev15 0660 system camera
+/dev/v4l-subdev16 0660 system camera
+/dev/v4l-subdev17 0660 system camera
+/dev/v4l-subdev18 0660 system camera
+/dev/v4l-subdev19 0660 system camera
+# v4l-subdev20 is used for DECON Ext WB
+/dev/v4l-subdev20 0660 system graphics
+/dev/v4l-subdev21 0660 system graphics
+/dev/v4l-subdev32 0660 system graphics
+
+# gscalers
+/dev/video23 0660 media graphics
+/dev/video26 0660 media graphics
+/dev/video24 0660 media graphics
+/dev/video27 0660 media graphics
+/dev/video29 0660 media graphics
+/dev/video30 0660 media graphics
+# video31 is used for DECON Ext WB
+/dev/video31 0660 media graphics
+
+# mscalers
+/dev/video50 0660 mediacodec drmrpc
+/dev/m2m1shot_scaler0 0660 mediacodec drmrpc
+
+/dev/video55 0666 system graphics
+/dev/g2d 0660 system graphics
+/dev/fimg2d 0666 system graphics
+/dev/i2c-2 0660 system system
+/dev/HPD 0660 system system
+
+# mfc
+/dev/video6 0660 mediacodec mediadrm
+/dev/video7 0660 mediacodec mediadrm
+/dev/video8 0660 mediacodec mediadrm
+/dev/video9 0660 mediacodec mediadrm
+/dev/video10 0660 mediacodec mediadrm
+/dev/video11 0660 mediacodec mediadrm
+
+# camera
+/dev/video101 0660 cameraserver camera
+/dev/video102 0660 cameraserver camera
+/dev/video103 0660 cameraserver camera
+/dev/video104 0660 cameraserver camera
+/dev/video107 0660 cameraserver camera
+/dev/video109 0660 cameraserver camera
+/dev/video110 0660 cameraserver camera
+/dev/video111 0660 cameraserver camera
+/dev/video112 0660 cameraserver camera
+/dev/video120 0660 cameraserver camera
+/dev/video121 0660 cameraserver camera
+/dev/video122 0660 cameraserver camera
+/dev/video130 0660 cameraserver camera
+/dev/video131 0660 cameraserver camera
+/dev/video132 0660 cameraserver camera
+/dev/video140 0660 cameraserver camera
+/dev/video141 0660 cameraserver camera
+/dev/video142 0660 cameraserver camera
+/dev/video150 0660 cameraserver camera
+/dev/video151 0660 cameraserver camera
+/dev/video152 0660 cameraserver camera
+/dev/video153 0660 cameraserver camera
+/dev/video154 0660 cameraserver camera
+/dev/video155 0660 cameraserver camera
+/dev/video160 0660 cameraserver camera
+/dev/video161 0660 cameraserver camera
+/dev/video170 0660 cameraserver camera
+/dev/video171 0660 cameraserver camera
+/dev/video172 0660 cameraserver camera
+/dev/video173 0660 cameraserver camera
+/dev/video174 0660 cameraserver camera
+/dev/video175 0660 cameraserver camera
+/dev/video180 0660 cameraserver camera
+/dev/video190 0660 cameraserver camera
+/dev/video191 0660 cameraserver camera
+/dev/video192 0660 cameraserver camera
+/dev/video193 0660 cameraserver camera
+/dev/video210 0660 cameraserver camera
+/dev/video211 0660 cameraserver camera
+/dev/video212 0660 cameraserver camera
+/dev/video213 0660 cameraserver camera
+/dev/video214 0660 cameraserver camera
+/dev/video215 0660 cameraserver camera
+/dev/video216 0660 cameraserver camera
+/dev/video217 0660 cameraserver camera
+/dev/video218 0660 cameraserver camera
+/dev/video219 0660 cameraserver camera
+/dev/video220 0660 cameraserver camera
+/dev/video221 0660 cameraserver camera
+/dev/video222 0660 cameraserver camera
+/dev/video223 0660 cameraserver camera
+/dev/video224 0660 cameraserver camera
+/dev/video225 0660 cameraserver camera
+/dev/media2 0660 media media
+/dev/hdcp2 0660 media media
+
+# jpeg
+/dev/m2m1shot_jpeg 0660 media media
+/dev/video12 0660 cameraserver media
+
+# audio
+/dev/seiren 0660 system audio
+
+#Mobicore
+/dev/mobicore 0700 system system
+/dev/mobicore-user 0666 radio system
+
+# Secure MEM driver
+/dev/s5p-smem 0660 system system
+
+#cbd
+/dev/block/mmcblk0p5 0400 radio radio
+/dev/umts_ramdump0 0660 radio radio
+
+# DM tools
+/dev/umts_dm0 0660 radio radio
+/dev/umts_router 0660 radio radio
+/dev/ttyGS0 0660 system system
+/dev/ttyGS1 0660 system system
+
+# Modem Interface
+/dev/block/platform/13500000.dwmmc0/by-name/RADIO 0660 system radio
+/dev/block/platform/13500000.dwmmc0/by-name/radio 0660 system radio
+/dev/block/platform/13500000.dwmmc0/by-name/CP_DEBUG 0660 radio system
+/dev/block/platform/13500000.dwmmc0/by-name/cp_debug 0660 radio system
+/sys/devices/platform/10000.mif_pdata sim/ds_detect 0660 radio system
+/dev/umts* 0660 system radio
+/dev/umts_csd 0660 system loop_radio
+/dev/smd4 0660 system radio
+/dev/ramdump_memshare 0660 system radio
+/dev/umts_ciq* 0660 system bridge_rw
+
+# interactive governor parameters
+/sys/devices/system/cpu/cpu* cpufreq/interactive/timer_rate 0660 system system
+/sys/devices/system/cpu/cpu* cpufreq/interactive/timer_slack 0660 system system
+/sys/devices/system/cpu/cpu* cpufreq/interactive/min_sample_time 0660 system system
+/sys/devices/system/cpu/cpu* cpufreq/interactive/hispeed_freq 0660 system system
+/sys/devices/system/cpu/cpu* cpufreq/interactive/target_loads 0660 system system
+/sys/devices/system/cpu/cpu* cpufreq/interactive/go_hispeed_load 0660 system system
+/sys/devices/system/cpu/cpu* cpufreq/interactive/above_hispeed_delay 0660 system system
+/sys/devices/system/cpu/cpu* cpufreq/interactive/boost 0660 system system
+/sys/devices/system/cpu/cpu* cpufreq/interactive/boostpulse 0200 system system
+/sys/devices/system/cpu/cpu* cpufreq/interactive/input_boost 0660 system system
+/sys/devices/system/cpu/cpu* cpufreq/interactive/boostpulse_duration 0660 system system
+/sys/devices/system/cpu/cpu* cpufreq/interactive/io_is_busy 0660 system system
+
+# Vision (VPU, SCORE)
+/dev/vertex0 0660 media media
+/dev/vertex1 0660 media media
+
+#SCSC Bluetooth
+/dev/scsc_h4_0 0660 bluetooth bluetooth
+
+#SCSC ANT
+/dev/scsc_ant_0 0660 system system
+
+#SCSC WLAN
+/dev/mx_0_r4_gdb 0660 wifi wifi
+/dev/mx_0_m4_gdb 0660 wifi wifi
+/dev/mx_0_mmap 0660 wifi wifi
+/dev/mx_client_test_0 0660 wifi wifi
+/dev/mx_0_debug_sampler 0660 wifi wifi
+/dev/mx140_usb_clk_test_0 0660 wifi wifi
+/dev/scsc_log_collector_0 0660 wifi wifi
+
+# Google FRP solution
+/dev/block/platform/13500000.dwmmc0/by-name/PERSISTENT 0660 system system
+
+# Reactivation Lock solution
+/dev/block/platform/13500000.dwmmc0/by-name/STEADY 0660 system system
+
+# Google FRP solution
+/dev/block/platform/13500000.dwmmc0/by-name/persistent 0660 system system
+
+# Reactivation Lock solution
+/dev/block/platform/13500000.dwmmc0/by-name/steady 0660 system system
+
+# sensorhub
+/dev/ssp_sensorhub 0660 system system
+/dev/ssp_data_injection 0660 system system
+
+# Sensorhub IIO
+/dev/ssp_sensorhub 0660 system system
+/dev/iio:device* 0660 system system
+/sys/devices/platform/13980000.spi/spi_master/spi4/spi4.0/iio:device* buffer/enable 0660 system system
+/sys/devices/platform/13980000.spi/spi_master/spi4/spi4.0/iio:device* buffer/length 0660 system system
+/sys/bus/iio/devices/iio:device* 0664 system radio
+
+# TEEGRIS
+/dev/tzdev 0666 system system
+/dev/tziwsock 0666 system system
+/dev/ionfd2phys 0660 system system
+/dev/tuihw 0660 system system
+/dev/tzirs 0660 system system
+/dev/nwfsdev 0660 system system
+/dev/tz_shmem_validator 0666 system system
+/dev/tz_wormhole 0666 system system
+
+# Sensor
+/dev/input/event* 0660 system input
+/sys/devices/virtual/input/input* enable 0660 system input
+/sys/devices/virtual/input/input* poll_delay 0660 system input
diff --git a/universal7885-common/sepolicy/vendor/file_contexts b/universal7885-common/sepolicy/vendor/file_contexts
index 2874c5b..2346d7d 100644
--- a/universal7885-common/sepolicy/vendor/file_contexts
+++ b/universal7885-common/sepolicy/vendor/file_contexts
@@ -216,7 +216,8 @@
/(vendor|system/vendor)/bin/hw/android\.hardware\.drm@[0-9]\.[0-9]-service\.widevine u:object_r:hal_drm_widevine_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.keymaster@[0-9]\.[0-9]-service\.samsung u:object_r:hal_keymaster_default_exec:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.nfc@[0-9]\.[0-9]-service\.samsung u:object_r:hal_nfc_default_exec:s0
-/(vendor|system/vendor)/bin/hw/android\.hardware\.usb@[0-9]\.[0-9]-service\.exynos7884B u:object_r:hal_usb_default_exec:s0
+/(vendor|system/vendor)/bin/hw/android\.hardware\.usb@[0-9]\.[0-9]-service\.exynos7885 u:object_r:hal_usb_default_exec:s0
+/(vendor|system/vendor)/bin/hw/android\.hardware\.usb@[0-9]\.[0-9]-service\.a10 u:object_r:hal_usb_default_exec:s0
/(vendor|system/vendor)/bin/hw/vendor\.samsung\.hardware\.gnss@[0-9]\.[0-9]-service u:object_r:hal_gnss_default_exec:s0
/(vendor|system/vendor)/firmware(/.*)? u:object_r:vendor_firmware_file:s0
/(vendor|system/vendor)/bin/hw/android\.hardware\.power(@[0-9]\.[0-9])?-service\.samsung-libperfmgr u:object_r:hal_power_default_exec:s0
diff --git a/universal7885-common/universal7885-common.mk b/universal7885-common/universal7885-common.mk
index 0f2a8c4..b10c46f 100644
--- a/universal7885-common/universal7885-common.mk
+++ b/universal7885-common/universal7885-common.mk
@@ -1,9 +1,6 @@
# Call proprietary blob setup
$(call inherit-product, vendor/samsung/universal7885-common/universal7885-common-vendor.mk)
-# Dalvik
-$(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk)
-
# Build Fingerprints
$(call inherit-product, $(LOCAL_PATH)/fingerprint.mk)
@@ -54,10 +51,6 @@ PRODUCT_COPY_FILES += \
hardware/samsung_slsi/libbt/conf/bt_did.conf:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth/bt_did.conf \
hardware/samsung_slsi/libbt/conf/bt_vendor.conf:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth/bt_vendor.conf
-# Boot animation
-TARGET_SCREEN_HEIGHT := 1560
-TARGET_SCREEN_WIDTH := 720
-
# Camera
PRODUCT_PACKAGES += \
android.hardware.camera.provider@2.5-service
@@ -75,10 +68,6 @@ PRODUCT_PACKAGES += \
android.hardware.drm@1.2.vendor \
android.hardware.drm@1.3.vendor
-# Fingerprint
-PRODUCT_PACKAGES += \
- android.hardware.biometrics.fingerprint@2.1-service.samsung
-
# Gatekeeper
PRODUCT_PACKAGES += \
android.hardware.gatekeeper@1.0-impl \
@@ -120,11 +109,9 @@ PRODUCT_PACKAGES += \
# Init
PRODUCT_PACKAGES += \
fstab.enableswap \
- init.exynos7884B.rc \
- init.exynos7884B.usb.rc \
- ueventd.exynos7884B.rc \
+ init.exynos7885.rc \
+ init.exynos7885.usb.rc \
wifi_sec.rc \
- fstab.exynos7884B \
init.target.rc \
init.baseband.rc
@@ -185,7 +172,6 @@ PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml \
frameworks/native/data/etc/android.hardware.camera.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.xml \
frameworks/native/data/etc/android.hardware.ethernet.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.ethernet.xml \
- frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml \
frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_NFC/android.hardware.nfc.hce.xml \
frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_NFC/android.hardware.nfc.hcef.xml \
frameworks/native/data/etc/android.hardware.nfc.uicc.xml:$(TARGET_COPY_OUT_ODM)/etc/permissions/sku_NFC/android.hardware.nfc.uicc.xml \
@@ -236,11 +222,6 @@ PRODUCT_PACKAGES += \
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/public.libraries.txt:$(TARGET_COPY_OUT_VENDOR)/etc/public.libraries.txt
-# Recovery
-PRODUCT_PACKAGES += \
- fastbootd \
- init.recovery.exynos7884B.rc
-
# Nuke Useless Apps (Mostly GAPPS)
PRODUCT_PACKAGES += \
RemovePkgs
@@ -295,10 +276,6 @@ PRODUCT_PACKAGES += \
android.hardware.thermal@1.0-impl \
android.hardware.thermal@1.0-service
-# USB
-PRODUCT_PACKAGES += \
- android.hardware.usb@1.1-service.typec
-
# Vibrator
PRODUCT_PACKAGES += \
android.hardware.vibrator@1.3-service.samsung
diff --git a/universal7885-common/usb/typeb/Android.bp b/universal7885-common/usb/typeb/Android.bp
new file mode 100644
index 0000000..0bac85d
--- /dev/null
+++ b/universal7885-common/usb/typeb/Android.bp
@@ -0,0 +1,31 @@
+//
+// Copyright (C) 2017 The LineageOS Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+cc_binary {
+ name: "android.hardware.usb@1.0-service.a10",
+ relative_install_path: "hw",
+ init_rc: ["android.hardware.usb@1.0-service.a10.rc"],
+ srcs: ["service.cpp", "Usb.cpp"],
+ shared_libs: [
+ "libcutils",
+ "libhidlbase",
+ "libhidltransport",
+ "liblog",
+ "libhwbinder",
+ "libutils",
+ "libhardware",
+ "android.hardware.usb@1.0",
+ ],
+ proprietary: true,
+}
diff --git a/universal7885-common/usb/typeb/Usb.cpp b/universal7885-common/usb/typeb/Usb.cpp
new file mode 100644
index 0000000..c4141b8
--- /dev/null
+++ b/universal7885-common/usb/typeb/Usb.cpp
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2017 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include
+#include
+#include
+#include
+
+#include
+#include
+
+#include "Usb.h"
+
+namespace android {
+namespace hardware {
+namespace usb {
+namespace V1_0 {
+namespace implementation {
+
+Return Usb::switchRole(const hidl_string &portName,
+ const PortRole &newRole) {
+ (void)portName;
+ (void)newRole;
+ ALOGE("%s: Not supported", __func__);
+ return Void();
+}
+
+Return Usb::queryPortStatus() {
+ hidl_vec currentPortStatus;
+ currentPortStatus.resize(1);
+
+ /* this device is not type C and can only be a sink */
+ currentPortStatus[0].portName = "otg_default";
+ currentPortStatus[0].currentDataRole = PortDataRole::DEVICE;
+ currentPortStatus[0].currentPowerRole = PortPowerRole::SINK;
+ currentPortStatus[0].currentMode = PortMode::UFP;
+ currentPortStatus[0].canChangeMode = false;
+ currentPortStatus[0].canChangeDataRole = false;
+ currentPortStatus[0].canChangePowerRole = false;
+ currentPortStatus[0].supportedModes = PortMode::UFP;
+
+ pthread_mutex_lock(&mLock);
+ if (mCallback != NULL) {
+ Return ret =
+ mCallback->notifyPortStatusChange(currentPortStatus, Status::SUCCESS);
+ if (!ret.isOk())
+ ALOGE("queryPortStatus error %s", ret.description().c_str());
+ } else {
+ ALOGI("Notifying userspace skipped. Callback is NULL");
+ }
+ pthread_mutex_unlock(&mLock);
+
+ return Void();
+}
+
+Return Usb::setCallback(const sp &callback) {
+ pthread_mutex_lock(&mLock);
+
+ mCallback = callback;
+ ALOGI("registering callback");
+
+ pthread_mutex_unlock(&mLock);
+ return Void();
+}
+
+} // namespace implementation
+} // namespace V1_0
+} // namespace usb
+} // namespace hardware
+} // namespace android
diff --git a/universal7885-common/usb/typeb/Usb.h b/universal7885-common/usb/typeb/Usb.h
new file mode 100644
index 0000000..c491fab
--- /dev/null
+++ b/universal7885-common/usb/typeb/Usb.h
@@ -0,0 +1,52 @@
+#ifndef ANDROID_HARDWARE_USB_V1_0_USB_H
+#define ANDROID_HARDWARE_USB_V1_0_USB_H
+
+#include
+#include
+#include
+#include
+
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
+
+#define LOG_TAG "android.hardware.usb@1.0-service.a10"
+#define UEVENT_MSG_LEN 2048
+
+namespace android {
+namespace hardware {
+namespace usb {
+namespace V1_0 {
+namespace implementation {
+
+using ::android::hardware::usb::V1_0::IUsb;
+using ::android::hardware::usb::V1_0::IUsbCallback;
+using ::android::hardware::usb::V1_0::PortRole;
+using ::android::hidl::base::V1_0::IBase;
+using ::android::hardware::hidl_array;
+using ::android::hardware::hidl_memory;
+using ::android::hardware::hidl_string;
+using ::android::hardware::hidl_vec;
+using ::android::hardware::Return;
+using ::android::hardware::Void;
+using ::android::sp;
+
+struct Usb : public IUsb {
+ Return switchRole(const hidl_string& portName, const PortRole& role) override;
+ Return setCallback(const sp& callback) override;
+ Return queryPortStatus() override;
+
+ sp mCallback;
+ pthread_mutex_t mLock = PTHREAD_MUTEX_INITIALIZER;
+
+ private:
+ pthread_t mPoll;
+};
+
+} // namespace implementation
+} // namespace V1_0
+} // namespace usb
+} // namespace hardware
+} // namespace android
+
+#endif // ANDROID_HARDWARE_USB_V1_0_USB_H
diff --git a/universal7885-common/usb/typeb/android.hardware.usb@1.0-service.a10.rc b/universal7885-common/usb/typeb/android.hardware.usb@1.0-service.a10.rc
new file mode 100644
index 0000000..31507af
--- /dev/null
+++ b/universal7885-common/usb/typeb/android.hardware.usb@1.0-service.a10.rc
@@ -0,0 +1,4 @@
+service usb-hal-1-0 /vendor/bin/hw/android.hardware.usb@1.0-service.a10
+ class hal
+ user system
+ group system
diff --git a/universal7885-common/usb/typeb/service.cpp b/universal7885-common/usb/typeb/service.cpp
new file mode 100644
index 0000000..4128097
--- /dev/null
+++ b/universal7885-common/usb/typeb/service.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2017 The LineageOS jProject
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include
+#include "Usb.h"
+
+using android::sp;
+
+// libhwbinder:
+using android::hardware::configureRpcThreadpool;
+using android::hardware::joinRpcThreadpool;
+
+// Generated HIDL files
+using android::hardware::usb::V1_0::IUsb;
+using android::hardware::usb::V1_0::implementation::Usb;
+
+using android::status_t;
+using android::OK;
+
+int main() {
+ android::sp service = new Usb();
+
+ configureRpcThreadpool(1, true /*callerWillJoin*/);
+ status_t status = service->registerAsService();
+
+ if (status != OK) {
+ ALOGE("Cannot register USB HAL service");
+ return 1;
+ }
+
+ ALOGI("USB HAL Ready.");
+ joinRpcThreadpool();
+ // Under noraml cases, execution will not reach this line.
+ ALOGI("USB HAL failed to join thread pool.");
+ return 1;
+}
diff --git a/universal7885-common/usb/Android.bp b/universal7885-common/usb/typec/Android.bp
similarity index 83%
rename from universal7885-common/usb/Android.bp
rename to universal7885-common/usb/typec/Android.bp
index 2bfe907..2ebcfb7 100644
--- a/universal7885-common/usb/Android.bp
+++ b/universal7885-common/usb/typec/Android.bp
@@ -13,10 +13,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
cc_binary {
- name: "android.hardware.usb@1.1-service.typec",
+ name: "android.hardware.usb@1.1-service.exynos7885",
relative_install_path: "hw",
- init_rc: ["android.hardware.usb@1.1-service.typec.rc"],
- vintf_fragments: ["android.hardware.usb@1.1-service.typec.xml"],
+ init_rc: ["android.hardware.usb@1.1-service.exynos7885.rc"],
+ vintf_fragments: ["android.hardware.usb@1.1-service.exynos7885.xml"],
srcs: ["service.cpp", "Usb.cpp"],
cflags: [
"-Wall",
diff --git a/universal7885-common/usb/Usb.cpp b/universal7885-common/usb/typec/Usb.cpp
similarity index 100%
rename from universal7885-common/usb/Usb.cpp
rename to universal7885-common/usb/typec/Usb.cpp
diff --git a/universal7885-common/usb/Usb.h b/universal7885-common/usb/typec/Usb.h
similarity index 100%
rename from universal7885-common/usb/Usb.h
rename to universal7885-common/usb/typec/Usb.h
diff --git a/universal7885-common/usb/android.hardware.usb@1.1-service.typec.rc b/universal7885-common/usb/typec/android.hardware.usb@1.1-service.exynos7885.rc
similarity index 96%
rename from universal7885-common/usb/android.hardware.usb@1.1-service.typec.rc
rename to universal7885-common/usb/typec/android.hardware.usb@1.1-service.exynos7885.rc
index e507be1..b72ea88 100644
--- a/universal7885-common/usb/android.hardware.usb@1.1-service.typec.rc
+++ b/universal7885-common/usb/typec/android.hardware.usb@1.1-service.exynos7885.rc
@@ -1,4 +1,4 @@
-service vendor.usb-hal-1-1 /vendor/bin/hw/android.hardware.usb@1.1-service.typec
+service vendor.usb-hal-1-1 /vendor/bin/hw/android.hardware.usb@1.1-service.exynos7885
interface android.hardware.usb@1.1::IUsb default
interface android.hardware.usb@1.0::IUsb default
class hal
diff --git a/universal7885-common/usb/android.hardware.usb@1.1-service.typec.xml b/universal7885-common/usb/typec/android.hardware.usb@1.1-service.exynos7885.xml
similarity index 100%
rename from universal7885-common/usb/android.hardware.usb@1.1-service.typec.xml
rename to universal7885-common/usb/typec/android.hardware.usb@1.1-service.exynos7885.xml
diff --git a/universal7885-common/usb/service.cpp b/universal7885-common/usb/typec/service.cpp
similarity index 95%
rename from universal7885-common/usb/service.cpp
rename to universal7885-common/usb/typec/service.cpp
index 2b94a7c..06c23f4 100644
--- a/universal7885-common/usb/service.cpp
+++ b/universal7885-common/usb/typec/service.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#define LOG_TAG "android.hardware.usb@1.1-service.typec"
+#define LOG_TAG "android.hardware.usb@1.1-service.exynos7885"
#include
#include "Usb.h"