| // |
| // Copyright (C) 2018-2023 The LineageOS 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. |
| // |
| |
| android_app { |
| name: "org.lineageos.platform-res", |
| sdk_version: "core_platform", |
| certificate: "platform", |
| |
| manifest: "lineage/res/AndroidManifest.xml", |
| |
| // Disable dexpreopt and verify_uses_libraries check as the app |
| // contains no Java code to be dexpreopted. |
| enforce_uses_libs: false, |
| dex_preopt: { |
| enabled: false, |
| }, |
| |
| // Soong special-cases org.lineageos.platform-res to install this alongside |
| // the libraries at /system_ext/framework/org.lineageos.platform-res.apk. |
| |
| aaptflags: [ |
| "--private-symbols", |
| "org.lineageos.platform.internal", |
| |
| // Framework doesn't need versioning since it IS the platform. |
| "--no-auto-version", |
| |
| // Allow overlay to add resource |
| "--auto-add-overlay", |
| |
| // Tell aapt to create "extending (non-application)" resource IDs, |
| // since these resources will be used by many apps. |
| "--allow-reserved-package-id", |
| // Use id 0x3f (one less than app id). |
| "--package-id", |
| "63", |
| ], |
| |
| resource_dirs: [ |
| "lineage/res/res", |
| ], |
| |
| // Create package-export.apk, which other packages can use to get |
| // PRODUCT-agnostic resource data like IDs and type definitions. |
| export_package_resources: true, |
| } |
| |
| // The LineageOS Platform Framework Library |
| // ============================================================ |
| |
| lineage_sdk_src = "sdk/src/java/lineageos" |
| lineage_sdk_internal_src = "sdk/src/java/org/lineageos/internal" |
| lineage_sdk_minimal_internal_src = "sdk/src/java/org/lineageos/internal/minimal" |
| library_src = "lineage/lib/main/java" |
| |
| lineage_sdk_LOCAL_STATIC_JAVA_LIBRARIES = [ |
| "vendor.lineage.health-V1-java", |
| "vendor.lineage.livedisplay-V2.0-java", |
| "vendor.lineage.livedisplay-V2.1-java", |
| "vendor.lineage.touch-V1.0-java", |
| "vendor.lineage.trust-V1.0-java", |
| ] |
| |
| java_library { |
| name: "services", |
| installable: true, |
| sdk_version: "core_platform", |
| static_libs: [ |
| "original.services", |
| ] + lineage_sdk_LOCAL_STATIC_JAVA_LIBRARIES, |
| |
| libs: [ |
| "framework", |
| ], |
| |
| srcs: [ |
| library_src + "/**/*.java", |
| lineage_sdk_minimal_internal_src + "/**/*.java", |
| lineage_sdk_src + "/**/*.java", |
| lineage_sdk_src + "/app/I*.aidl", |
| lineage_sdk_src + "/**/I*.aidl", |
| ], |
| // Include aidl files from lineageos.app namespace as well as internal src aidl files |
| aidl: { |
| local_include_dirs: ["sdk/src/java"], |
| }, |
| } |
| |
| // READ ME: ######################################################## |
| // |
| // When updating this list of aidl files, consider if that aidl is |
| // part of the SDK API. If it is, also add it to the list below that |
| // is preprocessed and distributed with the SDK. This list should |
| // not contain any aidl files for parcelables, but the one below should |
| // if you intend for 3rd parties to be able to send those objects |
| // across process boundaries. |
| // |
| // READ ME: ######################################################## |
| |
| java_library { |
| name: "org.lineageos.platform", |
| installable: true, |
| sdk_version: "core_platform", |
| static_libs: lineage_sdk_LOCAL_STATIC_JAVA_LIBRARIES, |
| |
| libs: [ |
| "framework", |
| "original.services", |
| ], |
| |
| srcs: [ |
| lineage_sdk_src + "/**/*.java", |
| lineage_sdk_internal_src + "/**/*.java", |
| library_src + "/**/*.java", |
| lineage_sdk_src + "/**/I*.aidl", |
| lineage_sdk_internal_src + "/**/I*.aidl", |
| ], |
| |
| // Include aidl files from lineageos.app namespace as well as internal src aidl files |
| aidl: { |
| local_include_dirs: ["sdk/src/java"], |
| }, |
| } |
| |
| // Full target for use by platform apps |
| // ============================================================ |
| |
| java_library { |
| name: "org.lineageos.platform.internal", |
| required: ["original.services"], |
| static_libs: lineage_sdk_LOCAL_STATIC_JAVA_LIBRARIES, |
| |
| srcs: [ |
| lineage_sdk_src + "/**/*.java", |
| lineage_sdk_internal_src + "/**/*.java", |
| lineage_sdk_src + "/**/I*.aidl", |
| lineage_sdk_internal_src + "/**/I*.aidl", |
| ], |
| |
| aidl: { |
| local_include_dirs: ["sdk/src/java"], |
| }, |
| } |
| |
| // Resources only target for use by core |
| // ============================================================ |
| |
| java_library { |
| name: "org.lineageos.platform.resources", |
| |
| srcs: [ |
| // For the generated R.java and Manifest.java |
| ":org.lineageos.platform-res{.aapt.srcjar}", |
| ], |
| |
| sdk_version: "core_current", |
| } |
| |
| // The SDK |
| // ============================================================ |
| |
| // Included aidl files from lineageos.app namespace |
| |
| java_library { |
| name: "org.lineageos.platform.sdk", |
| required: ["original.services"], |
| static_libs: lineage_sdk_LOCAL_STATIC_JAVA_LIBRARIES, |
| |
| srcs: [ |
| lineage_sdk_src + "/**/*.java", |
| lineage_sdk_src + "/**/I*.aidl", |
| |
| // For the generated R.java and Manifest.java |
| ":org.lineageos.platform-res{.aapt.srcjar}", |
| ], |
| |
| aidl: { |
| local_include_dirs: ["sdk/src/java"], |
| }, |
| } |
| |
| // Minimal LineageSettings lib for apex use. |
| // ============================================================ |
| |
| java_library { |
| name: "org.lineageos.platform.lineagesettings", |
| min_sdk_version: "30", |
| |
| // LineageSettings is our main target, the rest are deps. |
| srcs: [ |
| lineage_sdk_src + "/app/LineageContextConstants.java", |
| lineage_sdk_src + "/providers/LineageSettings.java", |
| lineage_sdk_src + "/trust/ITrustInterface.aidl", |
| lineage_sdk_src + "/trust/TrustInterface.java", |
| |
| // For the generated R.java and Manifest.java |
| ":org.lineageos.platform-res{.aapt.srcjar}", |
| ], |
| |
| // List of apex modules that can link against this lib |
| apex_available: [ |
| "com.android.tethering", |
| ], |
| } |