Loading AconfigFlags.bp +17 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,7 @@ aconfig_declarations_group { "com.android.internal.pm.pkg.component.flags-aconfig-java", "com.android.media.flags.bettertogether-aconfig-java", "com.android.media.flags.editing-aconfig-java", "com.android.media.flags.performance-aconfig-java", "com.android.media.flags.projection-aconfig-java", "com.android.net.thread.platform.flags-aconfig-java", "com.android.server.flags.services-aconfig-java", Loading Loading @@ -347,6 +348,7 @@ java_aconfig_library { apex_available: [ "//apex_available:platform", "com.android.mediaprovider", "com.android.permission", ], } Loading Loading @@ -594,6 +596,21 @@ java_aconfig_library { defaults: ["framework-minus-apex-aconfig-java-defaults"], } // Media Performance aconfig_declarations { name: "com.android.media.flags.performance-aconfig", package: "com.android.media.performance.flags", srcs: [ "media/java/android/media/flags/performance.aconfig", ], } java_aconfig_library { name: "com.android.media.flags.performance-aconfig-java", aconfig_declarations: "com.android.media.flags.performance-aconfig", defaults: ["framework-minus-apex-aconfig-java-defaults"], } // Media TV aconfig_declarations { name: "android.media.tv.flags-aconfig", Loading Android.mkdeleted 100644 → 0 +0 −20 Original line number Diff line number Diff line # # Copyright (C) 2008 The Android Open Source 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. # LOCAL_PATH := $(call my-dir) # TODO: Empty this file after all subdirectories' Android.mk have been # converted to Android.bp to avoid using any newly added Android.mk. include $(call first-makefiles-under,$(LOCAL_PATH)) Ravenwood.bp +2 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,7 @@ java_library { "services.core.ravenwood", ], jarjar_rules: ":ravenwood-services-jarjar-rules", visibility: ["//visibility:private"], } java_library { Loading @@ -179,6 +180,7 @@ java_library { "services.core.ravenwood", ], jarjar_rules: ":ravenwood-services-jarjar-rules", visibility: ["//visibility:private"], } java_library { Loading api/coverage/tools/ExtractFlaggedApis.kt +51 −33 Original line number Diff line number Diff line Loading @@ -16,51 +16,69 @@ package android.platform.coverage import com.android.tools.metalava.model.ClassItem import com.android.tools.metalava.model.MethodItem import com.android.tools.metalava.model.text.ApiFile import java.io.File import java.io.FileWriter /** Usage: extract-flagged-apis <api text file> <output .pb file> */ fun main(args: Array<String>) { var cb = ApiFile.parseApi(listOf(File(args[0]))) var builder = FlagApiMap.newBuilder() val cb = ApiFile.parseApi(listOf(File(args[0]))) val builder = FlagApiMap.newBuilder() for (pkg in cb.getPackages().packages) { var packageName = pkg.qualifiedName() val packageName = pkg.qualifiedName() pkg.allClasses() .filter { it.methods().size > 0 } .forEach { for (method in it.methods()) { val flagValue = extractFlaggedApisFromClass(it, it.methods(), packageName, builder) extractFlaggedApisFromClass(it, it.constructors(), packageName, builder) } } val flagApiMap = builder.build() FileWriter(args[1]).use { it.write(flagApiMap.toString()) } } fun extractFlaggedApisFromClass( classItem: ClassItem, methods: List<MethodItem>, packageName: String, builder: FlagApiMap.Builder ) { val classFlag = classItem.modifiers .findAnnotation("android.annotation.FlaggedApi") ?.findAttribute("value") ?.value ?.value() as? String for (method in methods) { val methodFlag = method.modifiers .findAnnotation("android.annotation.FlaggedApi") ?.findAttribute("value") ?.value ?.value() if (flagValue != null && flagValue is String) { var api = ?.value() as? String ?: classFlag val api = JavaMethod.newBuilder() .setPackageName(packageName) .setClassName(it.fullName()) .setClassName(classItem.fullName()) .setMethodName(method.name()) for (param in method.parameters()) { api.addParameters(param.type().toTypeString()) } if (builder.containsFlagToApi(flagValue)) { var updatedApis = builder .getFlagToApiOrThrow(flagValue) .toBuilder() .addJavaMethods(api) .build() builder.putFlagToApi(flagValue, updatedApis) } else { var apis = FlaggedApis.newBuilder().addJavaMethods(api).build() builder.putFlagToApi(flagValue, apis) } if (methodFlag != null) { addFlaggedApi(builder, api, methodFlag) } } } fun addFlaggedApi(builder: FlagApiMap.Builder, api: JavaMethod.Builder, flag: String) { if (builder.containsFlagToApi(flag)) { val updatedApis = builder.getFlagToApiOrThrow(flag).toBuilder().addJavaMethods(api).build() builder.putFlagToApi(flag, updatedApis) } else { val apis = FlaggedApis.newBuilder().addJavaMethods(api).build() builder.putFlagToApi(flag, apis) } val flagApiMap = builder.build() FileWriter(args[1]).use { it.write(flagApiMap.toString()) } } cmds/incidentd/src/PrivacyFilter.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -195,7 +195,9 @@ status_t FieldStripper::strip(const uint8_t privacyPolicy) { ProtoOutputStream proto(mEncodedBuffer); // Optimization when no strip happens. if (mRestrictions == NULL || spec.RequireAll()) { if (mRestrictions == NULL || spec.RequireAll() // Do not iterate through fields if primitive data || !mRestrictions->children /* != FieldDescriptor::TYPE_MESSAGE */) { if (spec.CheckPremission(mRestrictions)) { mSize = mData->size(); } Loading Loading
AconfigFlags.bp +17 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,7 @@ aconfig_declarations_group { "com.android.internal.pm.pkg.component.flags-aconfig-java", "com.android.media.flags.bettertogether-aconfig-java", "com.android.media.flags.editing-aconfig-java", "com.android.media.flags.performance-aconfig-java", "com.android.media.flags.projection-aconfig-java", "com.android.net.thread.platform.flags-aconfig-java", "com.android.server.flags.services-aconfig-java", Loading Loading @@ -347,6 +348,7 @@ java_aconfig_library { apex_available: [ "//apex_available:platform", "com.android.mediaprovider", "com.android.permission", ], } Loading Loading @@ -594,6 +596,21 @@ java_aconfig_library { defaults: ["framework-minus-apex-aconfig-java-defaults"], } // Media Performance aconfig_declarations { name: "com.android.media.flags.performance-aconfig", package: "com.android.media.performance.flags", srcs: [ "media/java/android/media/flags/performance.aconfig", ], } java_aconfig_library { name: "com.android.media.flags.performance-aconfig-java", aconfig_declarations: "com.android.media.flags.performance-aconfig", defaults: ["framework-minus-apex-aconfig-java-defaults"], } // Media TV aconfig_declarations { name: "android.media.tv.flags-aconfig", Loading
Android.mkdeleted 100644 → 0 +0 −20 Original line number Diff line number Diff line # # Copyright (C) 2008 The Android Open Source 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. # LOCAL_PATH := $(call my-dir) # TODO: Empty this file after all subdirectories' Android.mk have been # converted to Android.bp to avoid using any newly added Android.mk. include $(call first-makefiles-under,$(LOCAL_PATH))
Ravenwood.bp +2 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,7 @@ java_library { "services.core.ravenwood", ], jarjar_rules: ":ravenwood-services-jarjar-rules", visibility: ["//visibility:private"], } java_library { Loading @@ -179,6 +180,7 @@ java_library { "services.core.ravenwood", ], jarjar_rules: ":ravenwood-services-jarjar-rules", visibility: ["//visibility:private"], } java_library { Loading
api/coverage/tools/ExtractFlaggedApis.kt +51 −33 Original line number Diff line number Diff line Loading @@ -16,51 +16,69 @@ package android.platform.coverage import com.android.tools.metalava.model.ClassItem import com.android.tools.metalava.model.MethodItem import com.android.tools.metalava.model.text.ApiFile import java.io.File import java.io.FileWriter /** Usage: extract-flagged-apis <api text file> <output .pb file> */ fun main(args: Array<String>) { var cb = ApiFile.parseApi(listOf(File(args[0]))) var builder = FlagApiMap.newBuilder() val cb = ApiFile.parseApi(listOf(File(args[0]))) val builder = FlagApiMap.newBuilder() for (pkg in cb.getPackages().packages) { var packageName = pkg.qualifiedName() val packageName = pkg.qualifiedName() pkg.allClasses() .filter { it.methods().size > 0 } .forEach { for (method in it.methods()) { val flagValue = extractFlaggedApisFromClass(it, it.methods(), packageName, builder) extractFlaggedApisFromClass(it, it.constructors(), packageName, builder) } } val flagApiMap = builder.build() FileWriter(args[1]).use { it.write(flagApiMap.toString()) } } fun extractFlaggedApisFromClass( classItem: ClassItem, methods: List<MethodItem>, packageName: String, builder: FlagApiMap.Builder ) { val classFlag = classItem.modifiers .findAnnotation("android.annotation.FlaggedApi") ?.findAttribute("value") ?.value ?.value() as? String for (method in methods) { val methodFlag = method.modifiers .findAnnotation("android.annotation.FlaggedApi") ?.findAttribute("value") ?.value ?.value() if (flagValue != null && flagValue is String) { var api = ?.value() as? String ?: classFlag val api = JavaMethod.newBuilder() .setPackageName(packageName) .setClassName(it.fullName()) .setClassName(classItem.fullName()) .setMethodName(method.name()) for (param in method.parameters()) { api.addParameters(param.type().toTypeString()) } if (builder.containsFlagToApi(flagValue)) { var updatedApis = builder .getFlagToApiOrThrow(flagValue) .toBuilder() .addJavaMethods(api) .build() builder.putFlagToApi(flagValue, updatedApis) } else { var apis = FlaggedApis.newBuilder().addJavaMethods(api).build() builder.putFlagToApi(flagValue, apis) } if (methodFlag != null) { addFlaggedApi(builder, api, methodFlag) } } } fun addFlaggedApi(builder: FlagApiMap.Builder, api: JavaMethod.Builder, flag: String) { if (builder.containsFlagToApi(flag)) { val updatedApis = builder.getFlagToApiOrThrow(flag).toBuilder().addJavaMethods(api).build() builder.putFlagToApi(flag, updatedApis) } else { val apis = FlaggedApis.newBuilder().addJavaMethods(api).build() builder.putFlagToApi(flag, apis) } val flagApiMap = builder.build() FileWriter(args[1]).use { it.write(flagApiMap.toString()) } }
cmds/incidentd/src/PrivacyFilter.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -195,7 +195,9 @@ status_t FieldStripper::strip(const uint8_t privacyPolicy) { ProtoOutputStream proto(mEncodedBuffer); // Optimization when no strip happens. if (mRestrictions == NULL || spec.RequireAll()) { if (mRestrictions == NULL || spec.RequireAll() // Do not iterate through fields if primitive data || !mRestrictions->children /* != FieldDescriptor::TYPE_MESSAGE */) { if (spec.CheckPremission(mRestrictions)) { mSize = mData->size(); } Loading