1// Copyright 2019 The Android Open Source Project
2package {
3    default_applicable_licenses: ["Android-Apache-2.0"],
4}
5
6java_defaults {
7    name: "CellBroadcastServiceCommon",
8    min_sdk_version: "30",
9    srcs: [
10        "src/**/*.java",
11        ":statslog-cellbroadcast-module-java-gen",
12    ],
13    libs: [
14        "framework-annotations-lib",
15        "framework-statsd.stubs.module_lib",
16        "framework-location.stubs.module_lib",
17        "unsupportedappusage",
18    ],
19    sdk_version: "module_current",
20    static_libs: [
21        "modules-utils-build",
22        "modules-utils-handlerexecutor",
23        "modules-utils-locallog",
24        "modules-utils-preconditions",
25        "modules-utils-statemachine",
26    ],
27    certificate: "platform",
28    privileged: true,
29    resource_dirs: ["res"],
30    optimize: {
31        shrink_resources: true,
32        proguard_flags_files: ["proguard.flags"],
33    },
34    jarjar_rules: "cellbroadcast-jarjar-rules.txt",
35    lint: {
36        strict_updatability_linting: true,
37    },
38}
39
40android_app {
41    name: "CellBroadcastServiceModule",
42    defaults: ["CellBroadcastServiceCommon"],
43    certificate: "networkstack",
44    manifest: "AndroidManifest.xml",
45    apex_available: ["com.android.cellbroadcast"],
46    privapp_allowlist: ":privapp_allowlist_com.android.cellbroadcastservice.xml",
47    updatable: true,
48}
49
50android_app {
51    name: "CellBroadcastServiceModulePlatform",
52    target_sdk_version: "33",
53    defaults: ["CellBroadcastServiceCommon"],
54    certificate: "platform",
55    // CellBroadcastServicePlatformModule is a replacement for com.android.cellbroadcast apex
56    // which consists of CellBroadcastServiceModule
57    overrides: ["com.android.cellbroadcast"],
58    manifest: "AndroidManifest_Platform.xml",
59    privapp_allowlist: ":platform_privapp_allowlist_com.android.cellbroadcastservice.xml",
60}
61
62genrule {
63    name: "statslog-cellbroadcast-java-gen",
64    tools: ["stats-log-api-gen"],
65    cmd: "$(location stats-log-api-gen) --java $(out) --module cellbroadcast" +
66        " --javaPackage com.android.cellbroadcastservice --javaClass CellBroadcastStatsLog" +
67        " --minApiLevel 30",
68    out: ["com/android/cellbroadcastservice/CellBroadcastStatsLog.java"],
69}
70
71genrule {
72    name: "statslog-cellbroadcast-module-java-gen",
73    tools: ["stats-log-api-gen"],
74    cmd: "$(location stats-log-api-gen) --java $(out) --module cellbroadcast" +
75        " --javaPackage com.android.cellbroadcastservice --javaClass CellBroadcastModuleStatsLog" +
76        " --minApiLevel 30",
77    out: ["com/android/cellbroadcastservice/CellBroadcastModuleStatsLog.java"],
78}
79
80// used to share common constants between cellbroadcastservice and cellbroadcastreceier
81filegroup {
82    name: "cellbroadcast-constants-shared-srcs",
83    srcs: [
84        "src/com/android/cellbroadcastservice/SmsCbConstants.java",
85        "src/com/android/cellbroadcastservice/CellBroadcastMetrics.java",
86        ":statslog-cellbroadcast-module-java-gen",
87    ],
88}
89
90// used to share src with cellbroadcastreceiver test app
91filegroup {
92    name: "cellbroadcast-util-shared-srcs",
93    srcs: [
94        "src/com/android/cellbroadcastservice/GsmAlphabet.java",
95        "src/com/android/cellbroadcastservice/CbGeoUtils.java",
96        "src/com/android/cellbroadcastservice/SmsCbHeader.java",
97        "src/com/android/cellbroadcastservice/CellBroadcastServiceMetrics.java",
98    ],
99}
100
101// used to share src with unit test app
102filegroup {
103    name: "cellbroadcast-shared-srcs",
104    srcs: [
105        "src/**/*.java",
106        ":statslog-cellbroadcast-module-java-gen",
107    ],
108}
109