commit 10b88b5bd84548e5e7a22c88b2b0e917c104d9d6
Author: 1ndev <1ndevelopment@protonmail.com>
Date: Fri Apr 4 15:29:30 2025 -0700
init commit
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..90ba554
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,12 @@
+//
+// Copyright (C) 2023 The Android Open Source Project
+// Copyright (C) 2023 SebaUbuntu's TWRP device tree generator
+//
+// SPDX-License-Identifier: Apache-2.0
+//
+
+soong_namespace {
+ imports: [
+ "hardware/qcom-caf/bootctrl",
+ ],
+}
diff --git a/Android.mk b/Android.mk
new file mode 100644
index 0000000..e50e6f7
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,12 @@
+#
+# Copyright (C) 2023 The Android Open Source Project
+# Copyright (C) 2023 SebaUbuntu's TWRP device tree generator
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+LOCAL_PATH := $(call my-dir)
+
+ifeq ($(TARGET_DEVICE),boston)
+include $(call all-subdir-makefiles,$(LOCAL_PATH))
+endif
diff --git a/AndroidProducts.mk b/AndroidProducts.mk
new file mode 100644
index 0000000..357932b
--- /dev/null
+++ b/AndroidProducts.mk
@@ -0,0 +1,14 @@
+#
+# Copyright (C) 2023 The Android Open Source Project
+# Copyright (C) 2023 SebaUbuntu's TWRP device tree generator
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+PRODUCT_MAKEFILES := \
+ $(LOCAL_DIR)/twrp_boston.mk
+
+COMMON_LUNCH_CHOICES := \
+ twrp_boston-user \
+ twrp_boston-userdebug \
+ twrp_boston-eng
diff --git a/BoardConfig.mk b/BoardConfig.mk
new file mode 100644
index 0000000..95491bc
--- /dev/null
+++ b/BoardConfig.mk
@@ -0,0 +1,194 @@
+#
+# Copyright (C) 2024 The Android Open Source Project
+# Copyright (C) 2024 SebaUbuntu's TWRP device tree generator
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+DEVICE_PATH := device/motorola/boston
+DEVICE_PREBUILT_PATH := device/motorola/boston/prebuilt
+
+# A-Team Maintainer Info
+TW_MAINTAINER := PizzaG
+TW_DEVICE_VERSION := 0.1
+RECOVERY_VARIANT := TWRP_12.1
+
+# A/B
+AB_OTA_UPDATER := true
+BOARD_BUILD_SYSTEM_ROOT_IMAGE := false
+AB_OTA_PARTITIONS += \
+ boot \
+ dtbo \
+ product \
+ system \
+ system_ext \
+ recovery \
+ vbmeta \
+ vbmeta_system \
+ vendor \
+ vendor_dlkm \
+ vendor_boot
+
+# Architecture
+TARGET_ARCH := arm64
+TARGET_ARCH_VARIANT := armv8-a
+TARGET_CPU_ABI := arm64-v8a
+TARGET_CPU_ABI2 :=
+TARGET_CPU_VARIANT := generic
+TARGET_CPU_VARIANT_RUNTIME := kryo300
+
+TARGET_2ND_ARCH := arm
+TARGET_2ND_ARCH_VARIANT := armv7-a-neon
+TARGET_2ND_CPU_ABI := armeabi-v7a
+TARGET_2ND_CPU_ABI2 := armeabi
+TARGET_2ND_CPU_VARIANT := generic
+TARGET_2ND_CPU_VARIANT_RUNTIME := cortex-a75
+
+TARGET_SUPPORTS_64_BIT_APPS := true
+
+# Bootloader
+TARGET_BOOTLOADER_BOARD_NAME := parrot
+TARGET_NO_BOOTLOADER := false
+TARGET_USES_UEFI := true
+TARGET_USES_REMOTEPROC := true
+TARGET_NO_RECOVERY := false
+
+# Build Flags
+LC_ALL="C"
+ALLOW_MISSING_DEPENDENCIES := true
+BUILD_BROKEN_DUP_RULES := true
+BUILD_BROKEN_ELF_PREBUILT_PRODUCT_COPY_FILES := true
+BUILD_BROKEN_MISSING_REQUIRED_MODULES := true
+RELAX_USES_LIBRARY_CHECK := true
+TARGET_DEVICE_ALT += boston_g boston XT2419
+
+# Display
+TARGET_SCREEN_DENSITY := 403
+DEVICE_RESOLUTION := 1080x2400
+TARGET_SCREEN_HEIGHT := 2400
+TARGET_SCREEN_WIDTH := 1080
+
+# Kernel
+BOARD_BOOT_HEADER_VERSION := 4
+BOARD_KERNEL_BASE := 0x00000000
+BOARD_KERNEL_CMDLINE += printk.devkmsg=on firmware_class.path=/data/vendor/param/firmware
+BOARD_BOOTCONFIG += \
+ androidboot.hardware=qcom \
+ androidboot.memcg=1 \
+ androidboot.usbcontroller=a600000.dwc3
+BOARD_KERNEL_IMAGE_NAME := Image
+BOARD_KERNEL_PAGESIZE := 4096
+BOARD_KERNEL_SEPARATED_DTBO := true
+#BOARD_MKBOOTIMG_ARGS += --dtb $(DEVICE_PREBUILT_PATH)/dtb.img
+BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
+#BOARD_INCLUDE_DTB_IN_BOOTIMG := true
+TARGET_KERNEL_ARCH := arm64
+TARGET_KERNEL_HEADER_ARCH := arm64
+BOARD_RAMDISK_USE_LZ4 := true
+
+TARGET_PREBUILT_KERNEL := $(DEVICE_PREBUILT_PATH)/kernel
+#TARGET_PREBUILT_DTB := $(DEVICE_PREBUILT_PATH)/dtb.img
+
+# Copy DTB
+#PRODUCT_COPY_FILES += \
+# $(TARGET_PREBUILT_DTB):dtb.img
+
+TARGET_FORCE_PREBUILT_KERNEL := true
+BOARD_USES_FULL_RECOVERY_IMAGE := true
+BOARD_EXCLUDE_KERNEL_FROM_RECOVERY_IMAGE := true
+BOARD_USES_GENERIC_KERNEL_IMAGE := true
+
+# Hack: prevent anti rollback
+PLATFORM_SECURITY_PATCH := 2099-12-31
+VENDOR_SECURITY_PATCH := $(PLATFORM_SECURITY_PATCH)
+BOOT_SECURITY_PATCH := $(PLATFORM_SECURITY_PATCH)
+PLATFORM_VERSION := 99.87.36
+PLATFORM_VERSION_LAST_STABLE := $(PLATFORM_VERSION)
+
+# Partitions
+BOARD_FLASH_BLOCK_SIZE := 262144 # (BOARD_KERNEL_PAGESIZE * 64)
+BOARD_SUPER_PARTITION_GROUPS := qti_dynamic_partitions
+BOARD_QTI_DYNAMIC_PARTITIONS_PARTITION_LIST := system system_ext product vendor vendor_dlkm
+BOARD_QTI_DYNAMIC_PARTITIONS_SIZE := 9122611200
+BOARD_SUPER_PARTITION_SIZE := 9126805504
+BOARD_BOOTIMAGE_PARTITION_SIZE := 134217728
+BOARD_KERNEL_GKI_BOOTIMAGE_PARTITION_SIZE := $(BOARD_BOOTIMAGE_PARTITION_SIZE)
+BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 100663296
+BOARD_RECOVERYIMAGE_PARTITION_SIZE := 134217728
+BOARD_SYSTEMIMAGE_PARTITION_TYPE := erofs
+BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs
+BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := erofs
+BOARD_USES_METADATA_PARTITION := true
+TARGET_COPY_OUT_VENDOR := vendor
+TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm
+BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := erofs
+BOARD_USES_VENDOR_DLKMIMAGE := true
+TARGET_USERIMAGES_USE_EXT3 := true
+TARGET_USERIMAGES_USE_EXT4 := true
+TARGET_USERIMAGES_USE_F2FS := true
+TARGET_USERIMAGES_USE_EROFS := true
+TARGET_USERIMAGES_USE_E2FSCK := true
+TARGET_USERIMAGES_USE_VFAT := true
+TARGET_USES_MKE2FS := true
+BOARD_HAS_LARGE_FILESYSTEM := true
+BOARD_HAS_NO_SELECT_BUTTON := true
+
+# Platform
+TARGET_BOARD_PLATFORM := parrot
+QCOM_BOARD_PLATFORMS += parrot
+
+# Properties
+TARGET_SYSTEM_PROP += $(DEVICE_PATH)/system.prop
+
+# Recovery
+TARGET_RECOVERY_QCOM_RTC_FIX := true
+TARGET_RECOVERY_PIXEL_FORMAT := RGBX_8888
+TARGET_RECOVERY_DEVICE_DIRS += $(DEVICE_PATH)
+TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/recovery/root/system/etc/recovery.fstab
+TARGET_USERIMAGES_USE_EXT4 := true
+TARGET_USERIMAGES_USE_F2FS := true
+RECOVERY_SDCARD_ON_DATA := true
+
+# TWRP Crypto
+TW_INCLUDE_CRYPTO := true
+TW_INCLUDE_CRYPTO_FBE := true
+TW_INCLUDE_FBE_METADATA_DECRYPT := true
+BOARD_USES_QCOM_FBE_DECRYPTION := true
+TW_USE_FSCRYPT_POLICY := 2
+
+# TWRP Configuration
+TW_THEME := portrait_hdpi
+TW_EXTRA_LANGUAGES := true
+TW_INPUT_BLACKLIST := "hbtp_vm"
+TW_INCLUDE_REPACKTOOLS := true
+TW_INCLUDE_RESETPROP := true
+TW_INCLUDE_LIBRESETPROP := true
+TW_INCLUDE_NTFS_3G := true
+TW_BACKUP_EXCLUSIONS := /data/fonts
+TW_NO_SCREEN_BLANK := true
+TW_MAX_BRIGHTNESS := 3515
+TW_DEFAULT_BRIGHTNESS := 1024
+TW_FRAMERATE := 60
+TW_HAS_EDL_MODE := true
+TW_CUSTOM_CPU_TEMP_PATH := /sys/class/thermal/thermal_zone39/temp
+TW_EXCLUDE_DEFAULT_USB_INIT := true
+TARGET_USE_CUSTOM_LUN_FILE_PATH := /config/usb_gadget/g1/functions/mass_storage.0/lun.%d/file
+TW_SUPPORT_INPUT_AIDL_HAPTICS := true
+TW_SUPPORT_INPUT_AIDL_HAPTICS_FIX_OFF := true
+TW_USE_SERIALNO_PROPERTY_FOR_DEVICE_ID := true
+TW_NO_USB_STORAGE := false
+TW_INCLUDE_FASTBOOTD := true
+TW_INCLUDE_PYTHON := true
+
+# Verified Boot
+BOARD_AVB_ENABLE := true
+BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flags 3
+BOARD_AVB_RECOVERY_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
+BOARD_AVB_RECOVERY_ALGORITHM := SHA256_RSA4096
+BOARD_AVB_RECOVERY_ROLLBACK_INDEX := 1
+BOARD_AVB_RECOVERY_ROLLBACK_INDEX_LOCATION := 1
+BOARD_AVB_VBMETA_SYSTEM := product system system_ext
+BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa4096.pem
+BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA4096
+BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
+BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 2
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..7422f95
--- /dev/null
+++ b/README.md
@@ -0,0 +1,12 @@
+Motorola Moto G Stylus 5G 2024
+
+
+# Building
+```bash
+source build/envsetup.sh
+lunch twrp_boston-eng
+mka recoveryimage -j$(nproc --all)
+```
+
+**Copyright (C) 2024 A-Team Digital Solutions**
+**Tree template from TeamWin, some file from VanFirmwareDumps**
diff --git a/bootctrl/Android.bp b/bootctrl/Android.bp
new file mode 100755
index 0000000..bc91110
--- /dev/null
+++ b/bootctrl/Android.bp
@@ -0,0 +1,28 @@
+//
+// Copyright (C) 2018 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.
+//
+
+cc_library {
+ name: "bootctrl.moto_sm8475",
+ defaults: ["bootctrl_hal_defaults"],
+ static_libs: ["libgptutils.moto_sm8475"],
+}
+
+cc_library_shared {
+ name: "android.hardware.boot@1.2-impl-qti",
+ stem: "android.hardware.boot@1.0-impl-1.2-qti",
+ defaults: ["android.hardware.boot@1.2-impl-qti_defaults"],
+ static_libs: ["libgptutils.moto_sm8475"],
+}
diff --git a/device.mk b/device.mk
new file mode 100644
index 0000000..ba6b01c
--- /dev/null
+++ b/device.mk
@@ -0,0 +1,130 @@
+#
+# Copyright (C) 2023 The Android Open Source Project
+# Copyright (C) 2023 SebaUbuntu's TWRP device tree generator
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+# Soong namespaces
+PRODUCT_SOONG_NAMESPACES += \
+ $(LOCAL_PATH)
+
+# API
+BOARD_SHIPPING_API_LEVEL := 31
+BOARD_API_LEVEL := 31
+PRODUCT_SHIPPING_API_LEVEL := 31
+SHIPPING_API_LEVEL := 31
+
+# A/B
+AB_OTA_POSTINSTALL_CONFIG += \
+ RUN_POSTINSTALL_system=true \
+ POSTINSTALL_PATH_system=system/bin/otapreopt_script \
+ FILESYSTEM_TYPE_system=erofs \
+ POSTINSTALL_OPTIONAL_system=true
+
+AB_OTA_POSTINSTALL_CONFIG += \
+ RUN_POSTINSTALL_vendor=true \
+ POSTINSTALL_PATH_vendor=bin/checkpoint_gc \
+ FILESYSTEM_TYPE_vendor=erofs \
+ POSTINSTALL_OPTIONAL_vendor=true
+
+# Boot control HAL
+PRODUCT_PACKAGES += \
+ android.hardware.boot@1.2-impl-qti \
+ android.hardware.boot@1.2-impl-qti.recovery \
+ android.hardware.boot@1.2-service
+
+PRODUCT_PACKAGES_DEBUG += \
+ bootctl
+
+PRODUCT_PACKAGES += \
+ otapreopt_script \
+ checkpoint_gc \
+ update_engine \
+ update_engine_client \
+ update_verifier \
+ update_engine_sideload
+
+# Crypto
+PRODUCT_PACKAGES += \
+ qcom_decrypt \
+ qcom_decrypt_fbe
+
+# Dynamic partitions
+PRODUCT_USE_DYNAMIC_PARTITIONS := true
+
+# F2FS utilities
+PRODUCT_PACKAGES += \
+ sg_write_buffer \
+ f2fs_io \
+ check_f2fs
+
+# FastbootD
+PRODUCT_PACKAGES += \
+ fastbootd \
+ android.hardware.fastboot@1.1-impl-mock
+
+# HACK: Set vendor patch level
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.bootimage.build.date.utc=0 \
+ ro.build.date.utc=0
+
+# OEM otacert
+PRODUCT_EXTRA_RECOVERY_KEYS += \
+ $(LOCAL_PATH)/security/ota
+
+# Take a few libraries from sources
+TARGET_RECOVERY_DEVICE_MODULES += \
+ android.hardware.vibrator-V2-cpp \
+ android.hidl.allocator@1.0 \
+ android.hidl.memory@1.0 \
+ android.hidl.memory.token@1.0 \
+ libdmabufheap \
+ libhidlmemory \
+ libion \
+ libnetutils \
+ libxml2 \
+ vendor.display.config@1.0 \
+ vendor.display.config@1.1 \
+ vendor.display.config@1.2 \
+ vendor.display.config@1.3 \
+ vendor.display.config@1.4 \
+ vendor.display.config@1.5 \
+ vendor.display.config@1.6 \
+ vendor.display.config@1.7 \
+ vendor.display.config@1.8 \
+ vendor.display.config@1.9 \
+ vendor.display.config@1.10 \
+ vendor.display.config@1.11 \
+ vendor.display.config@2.0 \
+ libdisplayconfig.qti
+
+RECOVERY_LIBRARY_SOURCE_FILES += \
+ $(TARGET_OUT_SHARED_LIBRARIES)/android.hardware.vibrator-V2-cpp.so \
+ $(TARGET_OUT_SHARED_LIBRARIES)/android.hidl.allocator@1.0.so \
+ $(TARGET_OUT_SHARED_LIBRARIES)/android.hidl.memory@1.0.so \
+ $(TARGET_OUT_SHARED_LIBRARIES)/android.hidl.memory.token@1.0.so \
+ $(TARGET_OUT_SHARED_LIBRARIES)/libdmabufheap.so \
+ $(TARGET_OUT_SHARED_LIBRARIES)/libhidlmemory.so \
+ $(TARGET_OUT_SHARED_LIBRARIES)/libion.so \
+ $(TARGET_OUT_SHARED_LIBRARIES)/libnetutils.so \
+ $(TARGET_OUT_SHARED_LIBRARIES)/libxml2.so \
+ $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/vendor.display.config@1.0.so \
+ $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/vendor.display.config@1.1.so \
+ $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/vendor.display.config@1.2.so \
+ $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/vendor.display.config@1.3.so \
+ $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/vendor.display.config@1.4.so \
+ $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/vendor.display.config@1.5.so \
+ $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/vendor.display.config@1.6.so \
+ $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/vendor.display.config@1.7.so \
+ $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/vendor.display.config@1.8.so \
+ $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/vendor.display.config@1.9.so \
+ $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/vendor.display.config@1.1.so \
+ $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/vendor.display.config@1.11.so \
+ $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/vendor.display.config@2.0.so \
+ $(TARGET_OUT_SYSTEM_EXT_SHARED_LIBRARIES)/libdisplayconfig.qti.so
+
+# Namespace definition for librecovery_updater
+SOONG_CONFIG_NAMESPACES += ufsbsg
+SOONG_CONFIG_ufsbsg += ufsframework
+SOONG_CONFIG_ufsbsg_ufsframework := bsg
diff --git a/gpt-utils/Android.bp b/gpt-utils/Android.bp
new file mode 100755
index 0000000..4bb3ecf
--- /dev/null
+++ b/gpt-utils/Android.bp
@@ -0,0 +1,42 @@
+//
+// Copyright (C) 2018 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.
+//
+
+cc_library {
+ name: "libgptutils.moto_sm8475",
+ vendor: true,
+ recovery_available: true,
+ shared_libs: [
+ "libcutils",
+ "liblog",
+ "libz",
+ ],
+ cflags: [
+ "-Wall",
+ "-Werror",
+ "-Wno-unused-parameter",
+ "-D_GENERIC_KERNEL_HEADERS",
+ "-D_BSG_FRAMEWORK_KERNEL_HEADERS",
+ ],
+ srcs: [
+ "gpt-utils.cpp",
+ "recovery-ufs-bsg.cpp",
+ ],
+ owner: "qti",
+ header_libs: [
+ "device_kernel_headers",
+ ],
+ export_include_dirs: ["."],
+}
diff --git a/gpt-utils/gpt-utils.cpp b/gpt-utils/gpt-utils.cpp
new file mode 100755
index 0000000..8f2e3d0
--- /dev/null
+++ b/gpt-utils/gpt-utils.cpp
@@ -0,0 +1,1527 @@
+/*
+ * Copyright (c) 2013,2016,2020 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.
+ */
+
+#define _LARGEFILE64_SOURCE /* enable lseek64() */
+
+/******************************************************************************
+ * INCLUDE SECTION
+ ******************************************************************************/
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include