Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 53 additions & 11 deletions BoardConfig.mk
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,28 @@
#

DEVICE_PATH := device/mobvoi/ricefish
PLATFORM_PATH := device/mobvoi/ricefish

# For building with minimal manifest
LC_ALL=C
ALLOW_MISSING_DEPENDENCIES := true

# Architecture
TARGET_ARCH := arm
TARGET_ARCH_VARIANT := armv7-a-neon
TARGET_CPU_ABI := armeabi-v7a
TARGET_CPU_ABI2 := armeabi
TARGET_CPU_VARIANT := generic
TARGET_CPU_VARIANT_RUNTIME := generic
TARGET_CPU_ABI := armeabi
TARGET_CPU_VARIANT := cortex-a15

TARGET_USES_64_BIT_BINDER := true

# APEX
OVERRIDE_TARGET_FLATTEN_APEX := true

# Bootloader
TARGET_BOOTLOADER_BOARD_NAME := ricefish
TARGET_NO_BOOTLOADER := true
TARGET_BOOTLOADER_BOARD_NAME := MSM8937
TARGET_BOARD_PLATFORM := msm8937
TARGET_BOARD_PLATFORM_GPU := qcom-adreno505

# Display
TARGET_SCREEN_DENSITY := 280
Expand Down Expand Up @@ -64,8 +66,16 @@ BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
TARGET_COPY_OUT_VENDOR := vendor

# Platform
TARGET_BOARD_PLATFORM := msm8937
# Fstab
TARGET_RECOVERY_FSTAB := $(PLATFORM_PATH)/recovery.fstab

# Init
TARGET_INIT_VENDOR_LIB := libinit_ricefish
TARGET_RECOVERY_DEVICE_MODULES := libinit_ricefish
TARGET_PLATFORM_DEVICE_BASE := /devices/soc/

# QCOM Stuff
BOARD_USES_QCOM_HARDWARE := true

# Recovery
BOARD_INCLUDE_RECOVERY_DTBO := true
Expand All @@ -88,9 +98,41 @@ PLATFORM_SECURITY_PATCH := 2099-12-31
VENDOR_SECURITY_PATCH := 2099-12-31
PLATFORM_VERSION := 16.1.0

# TWRP Configuration
TW_THEME := portrait_hdpi
# Crypto
TW_INCLUDE_CRYPTO := true
TW_INCLUDE_CRYPTO_FBE := true
TW_INCLUDE_FBE_METADATA_DECRYPT := true
BOARD_USES_METADATA_PARTITION := true

# TWRP Stuff
BOARD_HAS_LARGE_FILESYSTEM := true
TARGET_RECOVERY_PIXEL_FORMAT := "RGBX_8888"
# TW_ROUND_SCREEN := true
TW_THEME := watch_mdpi
TW_USE_TOOLBOX := true
HAVE_SELINUX := true
RECOVERY_SDCARD_ON_DATA := true
TARGET_RECOVERY_QCOM_RTC_FIX := true
TW_BRIGHTNESS_PATH := "/sys/class/leds/lcd-backlight/brightness"
TW_NO_LEGACY_PROPS := true
TW_EXTRA_LANGUAGES := true
TW_SCREEN_BLANK_ON_BOOT := true
TW_INCLUDE_NTFS_3G := true
TW_SCREEN_BLANK_ON_BOOT := false
TWRP_INCLUDE_LOGCAT := true
TW_HAS_EDL_MODE := true
TW_EXCLUDE_TWRPAPP := true
TARGET_USES_LOGD := true
TW_NO_USB_STORAGE := true
TW_EXCLUDE_DEFAULT_USB_INIT := true
TW_INPUT_BLACKLIST := "hbtp_vm"
TW_USE_TOOLBOX := true
TW_USE_MODEL_HARDWARE_ID_FOR_DEVICE_ID := true


# Show build time on the splash screen
TW_DEVICE_VERSION=$(shell date '+%Y%m%d')

# Hack: prevent anti rollback
PLATFORM_SECURITY_PATCH := 2025-12-31

# Platform version
PLATFORM_VERSION := 16.1.0
28 changes: 28 additions & 0 deletions init/Android.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#
# Copyright (C) 2020 TeamWin 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.
#

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional
LOCAL_C_INCLUDES := \
system/core/base/include \
system/core/init
LOCAL_SRC_FILES := init_ricefish.cpp
LOCAL_MODULE := libinit_ricefish

include $(BUILD_STATIC_LIBRARY)
58 changes: 58 additions & 0 deletions init/init_ricefish.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
/*
Copyright (C) 2020 The TeamWin Recovery Project
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 <cstdlib>
#include <unistd.h>
#include <fcntl.h>
#include <android-base/logging.h>
#include <android-base/properties.h>

#include "property_service.h"
#include "log.h"

namespace android {
namespace init {

void load_properties(const char *model) {
property_set("ro.product.name", model);
property_set("ro.build.product", model);
property_set("ro.product.device", model);
property_set("ro.build.date", "Fri Jul 20 15:18:00 CST 2018");
property_set("ro.build.date.utc", "1592832458");
property_set("ro.bootimage.build.date", "1592832458");
}


void vendor_load_properties() {
std::string device_region = android::base::GetProperty("ro.boot.product.cert", "");

load_properties("ricefish");

}

}
}
8 changes: 8 additions & 0 deletions omni.dependencies
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[
{
"remote":"github",
"repository": "TeamWin/android_device_qcom_common",
"target_path": "device/qcom/common",
"revision":"android-9.0"
}
]
11 changes: 11 additions & 0 deletions omni_ricefish.mk
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,21 @@ PRODUCT_NAME := omni_ricefish
PRODUCT_BRAND := Mobvoi
PRODUCT_MODEL := TicWatch E3
PRODUCT_MANUFACTURER := mobvoi
PRODUCT_RELEASE_NAME := Mobvoi TicWatch E3

PRODUCT_GMS_CLIENTID_BASE := android-mobvoi

PRODUCT_BUILD_PROP_OVERRIDES += \
PRIVATE_BUILD_DESC="ricefish-user 9 PMKB.211102.002 442 release-keys"

BUILD_FINGERPRINT := Mobvoi/ricefish/ricefish:9/PMKB.211102.002/442:user/release-keys

PRODUCT_SYSTEM_PROPERTY_BLACKLIST += \
ro.product.device \
ro.product.name \
ro.build.product

PRODUCT_PROPERTY_OVERRIDES += \
ro.vendor.build.security_patch=2025-12-31 \
ro.secure=1 \
ro.adb.secure=0
68 changes: 60 additions & 8 deletions recovery.fstab
Original file line number Diff line number Diff line change
@@ -1,8 +1,60 @@
/ ext4 /dev/block/bootdevice/by-name/system flags=display=
/cache ext4 /dev/block/bootdevice/by-name/cache flags=display=cache
/vendor ext4 /dev/block/bootdevice/by-name/vendor flags=display=vendor
/data f2fs /dev/block/bootdevice/by-name/userdata flags=display=data
/sdcard vfat /dev/block/mmcblk1p1 flags=display=sdcard
/boot emmc /dev/block/bootdevice/by-name/boot flags=display=boot
/recovery emmc /dev/block/bootdevice/by-name/recovery flags=display=recovery
/misc emmc /dev/block/bootdevice/by-name/misc flags=display=misc
# Userdata
/data f2fs /dev/block/bootdevice/by-name/userdata flags=backup=1;wipeingui;encryptable=footer

# Cache
/cache ext4 /dev/block/bootdevice/by-name/cache flags=backup=1;wipeingui;wipeduringfactoryreset

# System
/system_root ext4 /dev/block/bootdevice/by-name/system flags=backup=1;wipeingui;display="System"
/system_image emmc /dev/block/bootdevice/by-name/system flags=backup=1;flashimg=1;display="System Image"

# Boot-Aboot-Recovery
/boot emmc /dev/block/bootdevice/by-name/boot flags=backup=1;flashimg=1;display="Boot"
/recovery emmc /dev/block/bootdevice/by-name/recovery flags=backup=1;flashimg=1;display="Recovery"
/aboot emmc /dev/block/bootdevice/by-name/aboot flags=display="Bootloader";backup=1;flashimg=1
/abootbak emmc /dev/block/bootdevice/by-name/abootbak flags=display="Bootloader Backup";backup=1;flashimg=1

# Vendor
/vendor ext4 /dev/block/bootdevice/by-name/vendor flags=display="Vendor";backup=1;wipeingui
/vendor_image emmc /dev/block/bootdevice/by-name/vendor flags=display="Vendor Image";flashimg=1;backup=1

# Modem
/firmware vfat /dev/block/bootdevice/by-name/modem flags=display="Firmware"
/firmware_image emmc /dev/block/bootdevice/by-name/modem flags=display="Firmware Image";flashimg=1;backup=1

# Persist
/persist ext4 /dev/block/bootdevice/by-name/persist flags=display="Persist";backup=1
/persist_image emmc /dev/block/bootdevice/by-name/persist flags=display="Persist Image";flashimg=1
/persistbak_image emmc /dev/block/bootdevice/by-name/persistbak flags=display="Persist Backup";flashimg=1

# EFS
/efs1 emmc /dev/block/bootdevice/by-name/modemst1 flags=backup=1;display="efs1"
/efs2 emmc /dev/block/bootdevice/by-name/modemst2 flags=backup=1;subpartitionof=/efs1;display="efs2"

# Misc
/dsp ext4 /dev/block/bootdevice/by-name/dsp flags=display="dsp";backup=1
/dsp_image emmc /dev/block/bootdevice/by-name/dsp flags=display="dsp";flashimg=1
/splash emmc /dev/block/bootdevice/by-name/splash flags=display="splash";backup=1;flashimg=1
/sbl1 emmc /dev/block/bootdevice/by-name/sbl1 flags=display="sbl1";backup=1;flashimg=1
/rpm emmc /dev/block/bootdevice/by-name/rpm flags=display="rpm";backup=1;flashimg=1
/tz emmc /dev/block/bootdevice/by-name/tz flags=display="tz";backup=1;flashimg=1
/vbmeta emmc /dev/block/bootdevice/by-name/vbmeta flags=display="vbmeta";backup=1;flashimg=1
/misc emmc /dev/block/bootdevice/by-name/misc
/keystore emmc /dev/block/bootdevice/by-name/keystore
/ssd emmc /dev/block/bootdevice/by-name/ssd
/DDR emmc /dev/block/bootdevice/by-name/DDR
/devinfo emmc /dev/block/bootdevice/by-name/devinfo flags=display="devinfo";backup=1;flashimg=1
/fsc emmc /dev/block/bootdevice/by-name/fsc
/sec emmc /dev/block/bootdevice/by-name/sec
/fsg emmc /dev/block/bootdevice/by-name/fsg flags=display="fsg";backup=1
/msadp emmc /dev/block/bootdevice/by-name/msadp flags=display="msadp";backup=1;flashimg=1
/apdp emmc /dev/block/bootdevice/by-name/apdp flags=display="apdp";backup=1;flashimg=1
/cmnlib64 emmc /dev/block/bootdevice/by-name/cmnlib64 flags=display="cmnlib64";backup=1;flashimg=1
/cmnlib emmc /dev/block/bootdevice/by-name/cmnlib flags=display="cmnlib";backup=1;flashimg=1
/keymaster emmc /dev/block/bootdevice/by-name/keymaster flags=display="keymaster";backup=1;flashimg=1
/devcfg emmc /dev/block/bootdevice/by-name/devcfg flags=display="devcfg";backup=1;flashimg=1
/mdtp emmc /dev/block/bootdevice/by-name/mdtp flags=display="mdtp";backup=1;flashimg=1
/dtbo emmc /dev/block/bootdevice/by-name/dtbo flags=display="dtbo";backup=1;flashimg=1
/oem ext4 /dev/block/by-name/oem flags=display="OEM"
/frp emmc /dev/block/by-name/config flags=backup=1

Loading