├── BoardConfig.mk
├── README.md
├── compatibility_matrix.xml
├── config.mk
├── extract-files.sh
├── mslgrootfs
├── Android.mk
├── losetup.sh
├── start-rootfs.sh
└── tar-rootfs.sh
├── mslgservice
├── Android.mk
└── mslgservice.rc
├── proprietary-files.txt
├── sepolicy
├── attributes
├── file_contexts
├── hal_mslgkeeper.te
├── hwservice_contexts
├── init.te
├── mslg_app.te
├── mslg_init.te
├── mslg_rootfs_file.te
├── mslgd.te
├── platform_app.te
├── property.te
├── property_contexts
├── seapp_contexts
├── system_app.te
├── system_server.te
├── untrusted_app_30.te
└── vendor_init.te
└── setup-makefiles.sh
/BoardConfig.mk:
--------------------------------------------------------------------------------
1 | # HIDL
2 | DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE += device/xiaomi/wps/compatibility_matrix.xml
3 |
4 | # Sepolicy
5 | BOARD_VENDOR_SEPOLICY_DIRS += device/xiaomi/wps/sepolicy
6 |
7 | # Inherit the proprietary files
8 | include vendor/xiaomi/wps/BoardConfigVendor.mk
9 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ### How to use?
2 |
3 | 1. Clone this repo to `device/xiaomi/wps`
4 |
5 | 2. Inherit it from `device.mk` in device tree:
6 |
7 | ```
8 | $(call inherit-product-if-exists, device/xiaomi/wps/config.mk)
9 | ```
10 |
11 | 3. Inherit it from `BoardConfig.mk` in device tree:
12 |
13 | ```
14 | include device/xiaomi/wps/BoardConfig.mk
15 | ```
16 |
--------------------------------------------------------------------------------
/compatibility_matrix.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | vendor.xiaomi.mslg.keeper
4 | 1.0
5 |
6 | IMSLgKeeper
7 | default
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/config.mk:
--------------------------------------------------------------------------------
1 | # Namespace
2 | PRODUCT_SOONG_NAMESPACES += \
3 | device/xiaomi/wps
4 |
5 | # EXT2 UUID
6 | PRODUCT_PACKAGES += \
7 | libext2_uuid.vendor
8 |
9 | # MSLgRootfs
10 | PRODUCT_PACKAGES += \
11 | losetup.sh \
12 | start-rootfs.sh \
13 | tar-rootfs.sh
14 |
15 | # MSLgService
16 | PRODUCT_PACKAGES += \
17 | mslgservice.rc
18 |
19 | # Properties
20 | PRODUCT_VENDOR_PROPERTIES += \
21 | ro.vendor.mslg.rootfs.version=rootfs-23.09.12.tgz \
22 | sys.mslg.available=1
23 |
24 | # Inherit the proprietary files
25 | $(call inherit-product, vendor/xiaomi/wps/wps-vendor.mk)
26 |
--------------------------------------------------------------------------------
/extract-files.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # Copyright (C) 2016 The CyanogenMod Project
4 | # Copyright (C) 2017-2020 The LineageOS Project
5 | #
6 | # SPDX-License-Identifier: Apache-2.0
7 | #
8 |
9 | set -e
10 |
11 | DEVICE=wps
12 | VENDOR=xiaomi
13 |
14 | # Load extract_utils and do some sanity checks
15 | MY_DIR="${BASH_SOURCE%/*}"
16 | if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
17 |
18 | ANDROID_ROOT="${MY_DIR}/../../.."
19 |
20 | HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh"
21 | if [ ! -f "${HELPER}" ]; then
22 | echo "Unable to find helper script at ${HELPER}"
23 | exit 1
24 | fi
25 | source "${HELPER}"
26 |
27 | # Default to sanitizing the vendor folder before extraction
28 | CLEAN_VENDOR=true
29 |
30 | KANG=
31 | SECTION=
32 |
33 | while [ "${#}" -gt 0 ]; do
34 | case "${1}" in
35 | -n | --no-cleanup )
36 | CLEAN_VENDOR=false
37 | ;;
38 | -k | --kang )
39 | KANG="--kang"
40 | ;;
41 | -s | --section )
42 | SECTION="${2}"; shift
43 | CLEAN_VENDOR=false
44 | ;;
45 | * )
46 | SRC="${1}"
47 | ;;
48 | esac
49 | shift
50 | done
51 |
52 | if [ -z "${SRC}" ]; then
53 | SRC="adb"
54 | fi
55 |
56 | # Initialize the helper
57 | setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}"
58 |
59 | extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
60 |
61 | "${MY_DIR}/setup-makefiles.sh"
62 |
--------------------------------------------------------------------------------
/mslgrootfs/Android.mk:
--------------------------------------------------------------------------------
1 | LOCAL_PATH := $(call my-dir)
2 |
3 | include $(CLEAR_VARS)
4 | LOCAL_MODULE := losetup.sh
5 | LOCAL_MODULE_CLASS := ETC
6 | LOCAL_MODULE_TAGS := optional
7 | LOCAL_SRC_FILES := losetup.sh
8 | LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
9 | include $(BUILD_PREBUILT)
10 |
11 | include $(CLEAR_VARS)
12 | LOCAL_MODULE := start-rootfs.sh
13 | LOCAL_MODULE_CLASS := ETC
14 | LOCAL_MODULE_TAGS := optional
15 | LOCAL_SRC_FILES := start-rootfs.sh
16 | LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
17 | include $(BUILD_PREBUILT)
18 |
19 | include $(CLEAR_VARS)
20 | LOCAL_MODULE := tar-rootfs.sh
21 | LOCAL_MODULE_CLASS := ETC
22 | LOCAL_MODULE_TAGS := optional
23 | LOCAL_SRC_FILES := tar-rootfs.sh
24 | LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
25 | include $(BUILD_PREBUILT)
26 |
--------------------------------------------------------------------------------
/mslgrootfs/losetup.sh:
--------------------------------------------------------------------------------
1 | #! /vendor/bin/sh
2 | optimg=$(getprop vendor.mslg.mslgoptimg)
3 | if [[ $optimg == "/dev/block/loop"* ]]; then
4 | echo "has already losetup, nothing to do"
5 | exit 1
6 | else
7 | optimgloop=`losetup -f`
8 |
9 | while [[ $optimgloop != "/dev/block/loop"* ]]
10 | do
11 | sleep 1
12 | optimgloop=`losetup -f`
13 | done
14 |
15 | losetup -r $optimgloop /vendor/etc/assets/mslgoptimg
16 | setprop vendor.mslg.mslgoptimg $optimgloop
17 |
18 | usrimgloop=`losetup -f`
19 | while [[ $usrimgloop != "/dev/block/loop"* ]]
20 | do
21 | sleep 1
22 | usrimgloop=`losetup -f`
23 | done
24 |
25 | losetup -r $usrimgloop /vendor/etc/assets/mslgusrimg
26 | setprop vendor.mslg.mslgusrimg $usrimgloop
27 |
28 | fi
29 |
--------------------------------------------------------------------------------
/mslgrootfs/start-rootfs.sh:
--------------------------------------------------------------------------------
1 | #! /vendor/bin/sh
2 | rm -rf /data/vendor/mslg/rootfs/home/xiaomi/core
3 | export TMPDIR=/dev/msl/rdp
4 | /vendor/bin/chroot /data/vendor/mslg/rootfs /bin/su - root <