Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 86379b14 authored by Ruchir Rastogi's avatar Ruchir Rastogi Committed by Jeffrey Huang
Browse files

Use cpp aidl_interface within statsd

This CL is part of a larger effort to shift statsd to libbinder_ndk.
This CL specifically accomplishes the following:
    - constructs an aidl_interface soong module that can be used by statsd
      and libstatspull
    - defines the parameters of StatsDimensionsValueParcel
      (conversions to and from StatsDimensionsValueParcel are not yet defined,
      so this CL will break sendSubscriberBroadcast. A later CL will fix this
      issue...)

Test: m -j
Bug: 148682447
Change-Id: I7afa3e21d4c9fc1970e6c393204e1bdb110760fb
parent cf212926
Loading
Loading
Loading
Loading
+12 −16
Original line number Diff line number Diff line
@@ -13,35 +13,31 @@
// See the License for the specific language governing permissions and
// limitations under the License.
//

// TODO(b/145815909): move StatsDimensionsValue.aidl here
filegroup {
    name: "statsd_aidl",
    name: "statsd_java_aidl",
    srcs: ["**/*.aidl"],
}

aidl_interface {
    name: "statsd-aidl",
    srcs: [
        "android/os/IPendingIntentRef.aidl",
        "android/os/IPullAtomCallback.aidl",
        "android/os/IPullAtomResultReceiver.aidl",
        "android/os/IStatsCompanionService.aidl",
        "android/os/IStatsd.aidl",
        "android/os/StatsDimensionsValueParcel.aidl",
        "android/util/StatsEventParcel.aidl",
    ],
}

filegroup {
    name: "statsd_java_aidl",
    srcs: ["**/*.aidl"],
}

// This library is currently unused
aidl_interface {
    name: "stats-event-parcel-aidl",
    srcs: ["android/util/StatsEventParcel.aidl"],
    backend: {
        java: {
            sdk_version: "28",
            enabled: false, // the platform uses statsd_java_aidl
        },
        cpp: {
            enabled: false,
            enabled: true,
        },
        ndk: {
            enabled: true,
        }
    }
}
+3 −3
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

package android.os;

import android.os.StatsDimensionsValue;
import android.os.StatsDimensionsValueParcel;

/**
  * Binder interface to hold a PendingIntent for StatsCompanionService.
@@ -42,5 +42,5 @@ interface IPendingIntentRef {
      */
     oneway void sendSubscriberBroadcast(long configUid, long configId, long subscriptionId,
                                         long subscriptionRuleId, in String[] cookies,
                                         in StatsDimensionsValue dimensionsValue);
                                         in StatsDimensionsValueParcel dimensionsValue);
}
+16 −0
Original line number Diff line number Diff line
package android.os;

/**
 * @hide
 */
parcelable StatsDimensionsValueParcel {
    int atomTag;
    int valueType;

    String stringValue;
    int intValue;
    long longValue;
    boolean boolValue;
    float floatValue;
    StatsDimensionsValueParcel[] arrayValue;
}
+6 −2
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.os.Binder;
import android.os.IPendingIntentRef;
import android.os.Process;
import android.os.StatsDimensionsValue;
import android.os.StatsDimensionsValueParcel;
import android.util.Slog;

import com.android.server.SystemService;
@@ -145,8 +146,9 @@ public class StatsCompanion {

        @Override
        public void sendSubscriberBroadcast(long configUid, long configId, long subscriptionId,
                long subscriptionRuleId, String[] cookies, StatsDimensionsValue dimensionsValue) {
            enforceStatsdCallingUid();
                long subscriptionRuleId, String[] cookies,
                StatsDimensionsValueParcel dimensionsValue) {
            enforceStatsCompanionPermission(mContext);
            Intent intent =
                    new Intent()
                            .putExtra(StatsManager.EXTRA_STATS_CONFIG_UID, configUid)
@@ -167,6 +169,8 @@ public class StatsCompanion {
                                "Statsd sendSubscriberBroadcast with params {%d %d %d %d %s %s}",
                                configUid, configId, subscriptionId, subscriptionRuleId,
                                Arrays.toString(cookies),
                                // TODO (b/148604617): convert StatsDimensionsValueParcel into
                                // StatsDimensionsValue
                                dimensionsValue));
            }
            try {
+1 −4
Original line number Diff line number Diff line
@@ -44,12 +44,8 @@ cc_library_host_shared {

cc_defaults {
    name: "statsd_defaults",
    aidl: {
        include_dirs: ["frameworks/base/core/java"],
    },

    srcs: [
        ":statsd_aidl",
        "src/active_config_list.proto",
        "src/anomaly/AlarmMonitor.cpp",
        "src/anomaly/AlarmTracker.cpp",
@@ -132,6 +128,7 @@ cc_defaults {
        "liblog",
        "libservices",
        "libstatssocket",
        "statsd-aidl-cpp",
    ],
}

Loading