Skip to content

Commit

Permalink
pdx215: bring up to xperia mark 3 series
Browse files Browse the repository at this point in the history
thanks @ hellobbn for help

Signed-off-by: Saran Thongplong <68327355+lolipuru@users.noreply.github.com>
  • Loading branch information
lolipuru committed Nov 6, 2022
1 parent d9e5625 commit 8e18c20
Show file tree
Hide file tree
Showing 92 changed files with 730 additions and 625 deletions.
4 changes: 2 additions & 2 deletions Android.bp
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
soong_namespace {
imports: ["hardware/qcom/bootctrl"],
}
imports: ["hardware/qcom-caf/bootctrl"],
}
6 changes: 3 additions & 3 deletions Android.mk
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
LOCAL_PATH := $(call my-dir)

ifeq ($(TARGET_DEVICE),pdx206)
include $(call all-subdir-makefiles,$(LOCAL_PATH))
endif
ifneq ($(filter pdx215,$(TARGET_DEVICE)),)
include $(call all-makefiles-under,$(LOCAL_PATH))
endif
3 changes: 1 addition & 2 deletions AndroidProducts.mk
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,4 @@
#

PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/twrp_pdx206.mk \
$(LOCAL_DIR)/twrp_pdx203.mk
$(LOCAL_DIR)/twrp_pdx215.mk
82 changes: 43 additions & 39 deletions BoardConfig.mk
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := kryo
TARGET_CPU_VARIANT_RUNTIME := kryo585
TARGET_CPU_VARIANT_RUNTIME := kryo680

TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := $(TARGET_ARCH_VARIANT)
Expand All @@ -29,58 +29,61 @@ TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := $(TARGET_CPU_VARIANT)
TARGET_2ND_CPU_VARIANT_RUNTIME := $(TARGET_CPU_VARIANT_RUNTIME)

TARGET_USES_64_BIT_BINDER := true
TARGET_SUPPORTS_64_BIT_APPS := true

ENABLE_CPUSETS := true
ENABLE_SCHEDBOOST := true

# Bootloader
PRODUCT_PLATFORM := kona
PRODUCT_PLATFORM := lahaina
TARGET_BOOTLOADER_BOARD_NAME := $(PRODUCT_RELEASE_NAME)
TARGET_NO_BOOTLOADER := true
TARGET_USES_UEFI := true

# Platform
TARGET_BOARD_PLATFORM := sony_sm8250
TARGET_BOARD_PLATFORM_GPU := qcom-adreno650
QCOM_BOARD_PLATFORMS += sony_sm8250
TARGET_BOARD_PLATFORM := sony_sm8350
TARGET_BOARD_PLATFORM_GPU := qcom-adreno660
QCOM_BOARD_PLATFORMS += sony_sm8350

# Kernel
BOARD_KERNEL_CMDLINE := console=ttyMSM0,115200n8 androidboot.hardware=qcom androidboot.console=ttyMSM0 androidboot.memcg=1 lpm_levels.sleep_disabled=1 video=vfb:640x400,bpp=32,memsize=3072000 msm_rtb.filter=0x237 service_locator.enable=1 androidboot.usbcontroller=a600000.dwc3 swiotlb=2048 loop.max_part=7 cgroup.memory=nokmem,nosocket reboot=panic_warm androidboot.usbconfigfs=true androidboot.selinux=permissive buildvariant=eng
BOARD_KERNEL_HEADER_VERSION := 2
BOARD_KERNEL_IMAGE_NAME := Image
BOARD_BOOT_HEADER_VERSION := 3
BOARD_KERNEL_CMDLINE := androidboot.hardware=qcom androidboot.memcg=1 lpm_levels.sleep_disabled=1 video=vfb:640x400,bpp=32,memsize=3072000 msm_rtb.filter=0x237 service_locator.enable=1 androidboot.usbcontroller=a600000.dwc3 swiotlb=2048 loop.max_part=7 cgroup.memory=nokmem,nosocket reboot=panic_warm buildproduct=pdx215 buildid=SAGAMI-1.0.2-211112-0030 zram.backend=z3fold
BOARD_KERNEL_BASE := 0x00000000
BOARD_KERNEL_PAGESIZE := 4096
BOARD_KERNEL_BASE := 0x00000000
BOARD_KERNEL_TAGS_OFFSET := 0x00000100
BOARD_KERNEL_OFFSET := 0x00008000
BOARD_RAMDISK_OFFSET := 0x01000000
BOARD_KERNEL_SECOND_OFFSET := 0x00f00000
BOARD_RAMDISK_OFFSET := 0x01000000
BOARD_KERNEL_TAGS_OFFSET := 0x00000100
BOARD_KERNEL_OFFSET := 0x00008000
BOARD_DTB_OFFSET := 0x01f00000
BOARD_KERNEL_IMAGE_NAME := Image
BOARD_KERNEL_SEPARATED_DTBO := true
TARGET_KERNEL_ARCH := arm64
TARGET_PREBUILT_KERNEL := $(DEVICE_PATH)/prebuilt/$(PRODUCT_RELEASE_NAME)/Image.gz
TARGET_PREBUILT_KERNEL := $(DEVICE_PATH)/prebuilt/$(PRODUCT_RELEASE_NAME)/Image

BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_KERNEL_HEADER_VERSION)
BOARD_MKBOOTIMG_ARGS += --base $(BOARD_KERNEL_BASE)
BOARD_MKBOOTIMG_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE)
BOARD_MKBOOTIMG_ARGS += --ramdisk_offset $(BOARD_RAMDISK_OFFSET)
BOARD_MKBOOTIMG_ARGS += --tags_offset $(BOARD_KERNEL_TAGS_OFFSET)
BOARD_MKBOOTIMG_ARGS += --kernel_offset $(BOARD_KERNEL_OFFSET)
BOARD_MKBOOTIMG_ARGS += --second_offset $(BOARD_KERNEL_SECOND_OFFSET)
BOARD_MKBOOTIMG_ARGS += --dtb $(TARGET_PREBUILT_DTB)
BOARD_MKBOOTIMG_ARGS += --dtb_offset $(BOARD_DTB_OFFSET)
BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)

# Kenel dtb
# BOARD_INCLUDE_DTB_IN_BOOTIMG := true
TARGET_PREBUILT_DTB := $(DEVICE_PATH)/prebuilt/$(PRODUCT_RELEASE_NAME)/dtb.img
BOARD_MKBOOTIMG_ARGS += --dtb $(TARGET_PREBUILT_DTB)

# Kenel recovery dtbo
BOARD_INCLUDE_RECOVERY_DTBO := true
# Kenel dtbo
BOARD_PREBUILT_DTBOIMAGE := $(DEVICE_PATH)/prebuilt/$(PRODUCT_RELEASE_NAME)/dtbo.img

# QCOM
#TARGET_USE_SDCLANG := true

# Assert
TARGET_OTA_ASSERT_DEVICE := $(PRODUCT_RELEASE_NAME)
#A/B
BOARD_USES_RECOVERY_AS_BOOT := true
TARGET_NO_RECOVERY := true
BOARD_BUILD_SYSTEM_ROOT_IMAGE := false

# Avb
# Verified Boot
BOARD_AVB_ENABLE := true
BOARD_AVB_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
BOARD_AVB_RECOVERY_ALGORITHM := SHA256_RSA4096
Expand All @@ -89,13 +92,14 @@ BOARD_AVB_RECOVERY_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
BOARD_AVB_RECOVERY_ROLLBACK_INDEX_LOCATION := 1

# Partitions
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 0x06000000
BOARD_BOOTIMAGE_PARTITION_SIZE := 0x06000000
TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/recovery/root/system/etc/recovery.fstab

# Dynamic Partition
BOARD_SUPER_PARTITION_SIZE := 12884901888
BOARD_SUPER_PARTITION_SIZE := 12348030976
BOARD_SUPER_PARTITION_GROUPS := somc_dynamic_partitions
BOARD_SOMC_DYNAMIC_PARTITIONS_SIZE := 6438256640
BOARD_SOMC_DYNAMIC_PARTITIONS_PARTITION_LIST := product vendor system odm
BOARD_SOMC_DYNAMIC_PARTITIONS_SIZE := 6169821184
BOARD_SOMC_DYNAMIC_PARTITIONS_PARTITION_LIST := product vendor system odm system_ext

# System as root
BOARD_ROOT_EXTRA_FOLDERS := bluetooth dsp firmware persist
Expand All @@ -105,16 +109,10 @@ BOARD_SUPPRESS_SECURE_ERASE := true
TARGET_USERIMAGES_USE_EXT4 := true
TARGET_USERIMAGES_USE_F2FS := true

# Partitions (listed in the file) to be wiped under recovery.
TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/recovery/root/system/etc/recovery.fstab

# Workaround for error copying vendor files to recovery ramdisk
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
TARGET_COPY_OUT_VENDOR := vendor

#Init
TARGET_PLATFORM_DEVICE_BASE := /devices/soc/

# Recovery
BOARD_HAS_LARGE_FILESYSTEM := true
TARGET_RECOVERY_PIXEL_FORMAT := "BGRA_8888"
Expand All @@ -129,34 +127,40 @@ TW_INCLUDE_CRYPTO_FBE := true
TW_INCLUDE_FBE_METADATA_DECRYPT := true
TW_USE_FSCRYPT_POLICY := 2

# Network
BUILD_BROKEN_USES_NETWORK := true

# Tool
TW_INCLUDE_REPACKTOOLS := true
TW_INCLUDE_RESETPROP := true
TW_INCLUDE_LIBRESETPROP :=true

# TWRP specific build flags
TW_THEME := portrait_hdpi
ifeq ($(TW_DEVICE_VERSION),)
TW_DEVICE_VERSION=12.0
endif
RECOVERY_SDCARD_ON_DATA := true
TARGET_RECOVERY_QCOM_RTC_FIX := true
TW_EXCLUDE_DEFAULT_USB_INIT := true
TW_EXCLUDE_ENCRYPTED_BACKUPS := false
TW_EXTRA_LANGUAGES := true
TW_INCLUDE_NTFS_3G := true
TW_USE_TOOLBOX := true
TW_INPUT_BLACKLIST := "hbtp_vm"
TW_BRIGHTNESS_PATH := "/sys/class/backlight/panel0-backlight/brightness"
TW_MAX_BRIGHTNESS := 2047
TW_DEFAULT_BRIGHTNESS := 300
TW_DEFAULT_BRIGHTNESS := 200
TWRP_INCLUDE_LOGCAT := true
TARGET_USES_LOGD := true
TW_NO_SCREEN_BLANK := true
PLATFORM_VERSION := 99.86.37
PLATFORM_VERSION_LAST_STABLE := $(PLATFORM_VERSION)
TW_HAS_EDL_MODE := false
TW_INCLUDE_FASTBOOTD := true
TW_EXCLUDE_APEX := true
PLATFORM_VERSION := 12
PLATFORM_VERSION_LAST_STABLE := 12
TW_CUSTOM_CPU_TEMP_PATH := "/sys/class/thermal/thermal_zone20/temp"
TW_BATTERY_SYSFS_WAIT_SECONDS := 5

TW_NO_HAPTICS := true
TW_EXCLUDE_APEX := true

ALLOW_MISSING_DEPENDENCIES := true

Expand Down
63 changes: 30 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,53 +1,53 @@
# twrp_device_sony_pdx20x
# twrp_device_sony_pdx215

For building TWRP for Sony Xperia mark II series
For building TWRP for Sony Xperia mark III series

TWRP device tree for Sony Xperia mark II series
TWRP device tree for Sony Xperia mark III series

The Sony Xperia mark II series (codenamed _"pdx203 & pdx204 & pdx206"_) are flagship smartphones from Sony.
The Sony Xperia Mark III series (codenamed _"pdx214 & pdx215 & pdx217"_) are flagship smartphones from Sony.

Sony Xperia 1 II was announced and released in February 2020.
Sony Xperia 1 III was announced and released in August 2021.

Sony Xperia 5 II was announced and released in September 2020.
Sony Xperia 5 III was announced and released in October 2021.

Sony Xperia pro was announced and released in February 2020.
Sony Xperia pro-i was announced and released in December 2021.

## Device specifications

| Device | Xperia 1 II (Mark 2) |
| Device | Xperia 1 III (Mark 3) |
| ----------------------: | :-------------------------------------- |
| SoC | Qualcomm SM8250 Snapdragon 865 |
| CPU | 8x Qualcomm® Kryo™ 585 up to 2.84GHz |
| GPU | Adreno 650 |
| Memory | 8GB / 12GB (LPDDR5) |
| SoC | Qualcomm SM8350 Snapdragon 888 |
| CPU | 8x Qualcomm® Kryo™ 680 up to 2.84GHz |
| GPU | Adreno 660 |
| Memory | 12GB (LPDDR5) |
| Shipped Android version | 10 |
| Storage | 256GB UFS 3.0 flash storage |
| Battery | Non-removable Li-Po 4000mAh |
| Dimensions | 158 x 68 x 8 mm (6.22 x 2.68 x 0.31 in) |
| Storage | 256GB / 512GB UFS 3.0 flash storage |
| Battery | Non-removable Li-Po 4500mAh |
| Dimensions | 165 x 71 x 8.2mm (6.50 x 2.80 x 0.32in) |
| Display | 1644 x 3840 pixels, 21:9 6.5 inches |

| Device | Xperia 5 II (Mark 2) |
| Device | Xperia 5 III (Mark 3) |
| ----------------------: | :-------------------------------------- |
| SoC | Qualcomm SM8250 Snapdragon 865 |
| CPU | 8x Qualcomm® Kryo™ 585 up to 2.84GHz |
| GPU | Adreno 650 |
| SoC | Qualcomm SM8350 Snapdragon 888 |
| CPU | 8x Qualcomm® Kryo™ 680 up to 2.84GHz |
| GPU | Adreno 660 |
| Memory | 8GB (LPDDR5) |
| Shipped Android version | 10 |
| Storage | 128GB / 256GB UFS 3.0 flash storage |
| Battery | Non-removable Li-Ion 4000mAh |
| Dimensions | 158 x 68 x 8 mm (6.22 x 2.68 x 0.31 in) |
| Battery | Non-removable Li-Ion 4500mAh |
| Dimensions | 157 x 68 x 8.2mm (6.18 x 2.68 x 0.32in) |
| Display | 1080 x 2520 pixels, 21:9 6.1 inches |

| Device | Xperia Pro |
| Device | Xperia Pro-I |
| ----------------------: | :-------------------------------------- |
| SoC | Qualcomm SM8250 Snapdragon 865 |
| CPU | 8x Qualcomm® Kryo™ 585 up to 2.84GHz |
| GPU | Adreno 650 |
| SoC | Qualcomm SM8350 Snapdragon 888 |
| CPU | 8x Qualcomm® Kryo™ 680 up to 2.84GHz |
| GPU | Adreno 660 |
| Memory | 12GB (LPDDR5) |
| Shipped Android version | 10 |
| Storage | 512GB UFS 3.0 flash storage |
| Battery | Non-removable Li-Po 4000mAh |
| Dimensions | 158 x 68 x 8 mm (6.22 x 2.68 x 0.31 in) |
| Battery | Non-removable Li-Po 4500mAh |
| Dimensions | 166 x 72 x 8.9mm (6.54 x 2.83 x 0.35in) |
| Display | 1644 x 3840 pixels, 21:9 6.5 inches |

## Features
Expand All @@ -58,13 +58,10 @@ Sony Xperia pro was announced and released in February 2020.
- **Decryption** (Android 11)
- ADB
- MTP
- OTG
- Vibration

**Notes**

- Xperia pro **doesn't have proper kernel source yet** because device itself is expensive and rare, so it is placeholder until someone got it
- Mark 2 series using Virtual A/B (vAB) instead super partitions
**Not Working**
- Vibration
- OTG

## Thanks

Expand Down
11 changes: 9 additions & 2 deletions bootctrl/Android.bp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,14 @@
//

cc_library {
name: "bootctrl.sony_sm8250",
name: "bootctrl.sony_sm8350",
defaults: ["bootctrl_hal_defaults"],
static_libs: ["libgptutils.sony_sm8250"],
static_libs: ["libgptutils.sony"],
}

cc_library_shared {
name: "android.hardware.boot@1.1-impl-qti",
stem: "android.hardware.boot@1.0-impl-1.1-qti",
defaults: ["android.hardware.boot@1.1-impl-qti_defaults"],
static_libs: ["libgptutils.sony"],
}
36 changes: 22 additions & 14 deletions device.mk
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/gsi_keys.mk)
# Configure Virtual A/B
$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota.mk)

# Configure SDCard replacement functionality
$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)

# Configure twrp
$(call inherit-product, vendor/twrp/config/common.mk)

Expand All @@ -34,12 +37,15 @@ AB_OTA_UPDATER := true

AB_OTA_PARTITIONS += \
boot \
system \
dtbo \
odm \
product \
vendor \
system \
system_ext \
vbmeta \
vbmeta_system \
dtbo
vendor \
vendor_boot

PRODUCT_PACKAGES += \
otapreopt_script \
Expand All @@ -61,20 +67,22 @@ AB_OTA_POSTINSTALL_CONFIG += \
POSTINSTALL_OPTIONAL_vendor=true

PRODUCT_PACKAGES += \
bootctrl.sony_sm8250 \
bootctrl.sony_sm8250.recovery \
android.hardware.boot@1.0-service \
android.hardware.boot@1.0-impl \
android.hardware.boot@1.0-impl.recovery
bootctrl.sony_sm8350.recovery \
android.hardware.boot@1.1-impl-qti.recovery

PRODUCT_HOST_PACKAGES += \
libandroidicu

# fastbootd
PRODUCT_PACKAGES += \
android.hardware.fastboot@1.0-impl-mock \
fastbootd

# SHIPPING API
PRODUCT_SHIPPING_API_LEVEL := 30

# Props for a Successful Casefold Format
PRODUCT_PROPERTY_OVERRIDES += \
ro.crypto.dm_default_key.options_format.version=2 \
ro.crypto.volume.metadata.method=dm-default-key \
ro.crypto.volume.options=::v2
# VNDK API
PRODUCT_TARGET_VNDK_VERSION := 31

# Soong namespaces
PRODUCT_SOONG_NAMESPACES += \
Expand All @@ -84,4 +92,4 @@ PRODUCT_USE_DYNAMIC_PARTITIONS := true

# PRODUCT_RELEASE_NAME ro.twrp.device.name
PRODUCT_PROPERTY_OVERRIDES += ro.twrp.device.name=$(PRODUCT_RELEASE_NAME)
TWRP_REQUIRED_MODULES += sony_touchscreen
TWRP_REQUIRED_MODULES += sony_firmware
Loading

0 comments on commit 8e18c20

Please sign in to comment.