diff --git a/libinit/Android.bp b/libinit/Android.bp index 3356fe4..cb9dafd 100644 --- a/libinit/Android.bp +++ b/libinit/Android.bp @@ -1,25 +1,24 @@ // -// Copyright (C) 2021 The LineageOS Project +// Copyright (C) 2021-2025 The LineageOS Project // // SPDX-License-Identifier: Apache-2.0 // cc_library_static { - name: "libinit_xiaomi_msmnile", + name: "init_xiaomi_msmnile", srcs: [ + "init_xiaomi_msmnile.cpp", "libinit_dalvik_heap.cpp", "libinit_variant.cpp", "libinit_utils.cpp", ], - whole_static_libs: ["libbase"], - export_include_dirs: ["include"], - recovery_available: true, -} - -cc_library_static { - name: "init_xiaomi_msmnile", - srcs: ["init_xiaomi_msmnile.cpp"], - whole_static_libs: ["libinit_xiaomi_msmnile"], + header_libs: ["libvariant_headers"], + whole_static_libs: [ + "libbase", + ] + select(soong_config_variable("xiaomi_msmnile", "variant_lib"), { + any @ lib: [lib], + default: ["libvariant_default"], + }), include_dirs: ["system/core/init"], recovery_available: true, } diff --git a/libinit/include/libinit_variant.h b/libinit/include/libinit_variant.h index 92cab97..2aff0c4 100644 --- a/libinit/include/libinit_variant.h +++ b/libinit/include/libinit_variant.h @@ -6,22 +6,10 @@ #pragma once -#include +#include + #include -struct variant_info { - std::string hwc_value; - std::string sku_value; - - std::string brand; - std::string device; - std::string marketname; - std::string model; - std::string build_fingerprint; - - bool nfc; -}; - void search_variant(const std::vector& variants); void set_variant_props(const variant_info& variant); diff --git a/libinit/init_xiaomi_msmnile.cpp b/libinit/init_xiaomi_msmnile.cpp index a8fd0f4..164cf77 100644 --- a/libinit/init_xiaomi_msmnile.cpp +++ b/libinit/init_xiaomi_msmnile.cpp @@ -7,7 +7,12 @@ #include "vendor_init.h" #include "include/libinit_dalvik_heap.h" +#include "include/libinit_variant.h" + +#include void vendor_load_properties() { + search_variant(variants); + set_dalvik_heap(); } diff --git a/libinit/libinit_variant.cpp b/libinit/libinit_variant.cpp index 2125bbb..bdadfbd 100644 --- a/libinit/libinit_variant.cpp +++ b/libinit/libinit_variant.cpp @@ -10,6 +10,7 @@ #include #include +#include using android::base::GetProperty; diff --git a/libinit/libvariant_default/Android.bp b/libinit/libvariant_default/Android.bp new file mode 100644 index 0000000..d317584 --- /dev/null +++ b/libinit/libvariant_default/Android.bp @@ -0,0 +1,12 @@ +// +// Copyright (C) 2025 The LineageOS Project +// +// SPDX-License-Identifier: Apache-2.0 +// + +cc_library_static { + name: "libvariant_default", + srcs: ["libvariant_default.cpp"], + header_libs: ["libvariant_headers"], + recovery_available: true, +} diff --git a/libinit/libvariant_default/libvariant_default.cpp b/libinit/libvariant_default/libvariant_default.cpp new file mode 100644 index 0000000..b7041cb --- /dev/null +++ b/libinit/libvariant_default/libvariant_default.cpp @@ -0,0 +1,9 @@ +/* + * Copyright (C) 2025 The LineageOS Project + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +const std::vector variants; diff --git a/libinit/libvariant_headers/Android.bp b/libinit/libvariant_headers/Android.bp new file mode 100644 index 0000000..62afaae --- /dev/null +++ b/libinit/libvariant_headers/Android.bp @@ -0,0 +1,11 @@ +// +// Copyright (C) 2025 The LineageOS Project +// +// SPDX-License-Identifier: Apache-2.0 +// + +cc_library_headers { + name: "libvariant_headers", + export_include_dirs: ["include"], + recovery_available: true, +} diff --git a/libinit/libvariant_headers/include/libvariant.h b/libinit/libvariant_headers/include/libvariant.h new file mode 100644 index 0000000..61724f9 --- /dev/null +++ b/libinit/libvariant_headers/include/libvariant.h @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2021-2025 The LineageOS Project + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#pragma once + +#include +#include + +struct variant_info { + std::string hwc_value; + std::string sku_value; + + std::string brand; + std::string device; + std::string marketname; + std::string model; + std::string build_fingerprint; + + bool nfc; +}; + +extern const std::vector variants;