diff options
-rw-r--r-- | api/Android.bp | 1 | ||||
-rw-r--r-- | api/StubLibraries.bp | 9 | ||||
-rw-r--r-- | boot/Android.bp | 7 | ||||
-rw-r--r-- | core/api/system-current.txt | 122 | ||||
-rw-r--r-- | core/java/android/net/metrics/WakeupEvent.java | 4 | ||||
-rw-r--r-- | core/java/android/nfc/TEST_MAPPING | 3 | ||||
-rw-r--r-- | core/java/com/android/internal/net/OWNERS | 2 | ||||
-rw-r--r-- | core/java/com/android/server/net/OWNERS | 2 | ||||
-rw-r--r-- | services/companion/OWNERS | 4 | ||||
-rw-r--r-- | services/core/java/com/android/server/connectivity/OWNERS | 2 | ||||
-rw-r--r-- | services/core/java/com/android/server/net/OWNERS | 2 | ||||
-rw-r--r-- | services/core/java/com/android/server/security/rkp/OWNERS | 2 | ||||
-rw-r--r-- | services/net/OWNERS | 2 | ||||
-rw-r--r-- | services/tests/RemoteProvisioningServiceTests/OWNERS | 2 | ||||
-rw-r--r-- | tools/lint/fix/soong_lint_fix.py | 163 | ||||
-rw-r--r-- | tools/lint/utils/enforce_permission_counter.py | 73 |
16 files changed, 229 insertions, 171 deletions
diff --git a/api/Android.bp b/api/Android.bp index 6aef5fff7c7d..4f14c3779a15 100644 --- a/api/Android.bp +++ b/api/Android.bp @@ -86,6 +86,7 @@ combined_apis { "framework-media", "framework-mediaprovider", "framework-ondevicepersonalization", + "framework-pdf", "framework-permission", "framework-permission-s", "framework-scheduling", diff --git a/api/StubLibraries.bp b/api/StubLibraries.bp index d15b44f16621..8b535926a8e7 100644 --- a/api/StubLibraries.bp +++ b/api/StubLibraries.bp @@ -85,6 +85,9 @@ module_libs = " --show-annotation android.annotation.SystemApi\\(" + droidstubs { name: "system-api-stubs-docs-non-updatable", + srcs: [ + ":framework-minus-apex-aconfig-srcjars", + ], defaults: [ "android-non-updatable-stubs-defaults", "module-classpath-stubs-defaults", @@ -125,6 +128,9 @@ droidstubs { droidstubs { name: "test-api-stubs-docs-non-updatable", + srcs: [ + ":framework-minus-apex-aconfig-srcjars", + ], defaults: [ "android-non-updatable-stubs-defaults", "module-classpath-stubs-defaults", @@ -171,6 +177,9 @@ droidstubs { droidstubs { name: "module-lib-api-stubs-docs-non-updatable", + srcs: [ + ":framework-minus-apex-aconfig-srcjars", + ], defaults: [ "android-non-updatable-stubs-defaults", "module-classpath-stubs-defaults", diff --git a/boot/Android.bp b/boot/Android.bp index 851294cbb56f..6b90f10b511f 100644 --- a/boot/Android.bp +++ b/boot/Android.bp @@ -192,6 +192,13 @@ custom_platform_bootclasspath { ], } +genrule { // This module exists to make the srcjar output available to Make. + name: "platform-bootclasspath.srcjar", + srcs: [":platform-bootclasspath{.srcjar}"], + out: ["platform-bootclasspath.srcjar"], + cmd: "cp $(in) $(out)", +} + platform_systemserverclasspath { name: "platform-systemserverclasspath", } diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 8cf921cb8d36..eda6057cb85a 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -9142,67 +9142,67 @@ package android.nfc { package android.nfc.cardemulation { - @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public final class AidGroup implements android.os.Parcelable { - ctor @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public AidGroup(@NonNull java.util.List<java.lang.String>, @Nullable String); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @Nullable public static android.nfc.cardemulation.AidGroup createFromXml(@NonNull org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException; - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public int describeContents(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public void dump(@NonNull android.util.proto.ProtoOutputStream); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public java.util.List<java.lang.String> getAids(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public String getCategory(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public void writeAsXml(@NonNull org.xmlpull.v1.XmlSerializer) throws java.io.IOException; - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public void writeToParcel(@NonNull android.os.Parcel, int); - field @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public static final android.os.Parcelable.Creator<android.nfc.cardemulation.AidGroup> CREATOR; - } - - @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public final class ApduServiceInfo implements android.os.Parcelable { - ctor @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public ApduServiceInfo(@NonNull android.content.pm.PackageManager, @NonNull android.content.pm.ResolveInfo, boolean) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException; - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public int describeContents(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public void dump(@NonNull android.os.ParcelFileDescriptor, @NonNull java.io.PrintWriter, @NonNull String[]); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public void dumpDebug(@NonNull android.util.proto.ProtoOutputStream); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public java.util.List<android.nfc.cardemulation.AidGroup> getAidGroups(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public java.util.List<java.lang.String> getAids(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public String getCategoryForAid(@NonNull String); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public android.content.ComponentName getComponent(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public String getDescription(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public android.nfc.cardemulation.AidGroup getDynamicAidGroupForCategory(@NonNull String); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @Nullable public String getOffHostSecureElement(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public java.util.List<java.lang.String> getPrefixAids(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public String getSettingsActivityName(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public java.util.List<java.lang.String> getSubsetAids(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public int getUid(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public boolean hasCategory(@NonNull String); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public boolean isOnHost(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public CharSequence loadAppLabel(@NonNull android.content.pm.PackageManager); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public android.graphics.drawable.Drawable loadBanner(@NonNull android.content.pm.PackageManager); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public android.graphics.drawable.Drawable loadIcon(@NonNull android.content.pm.PackageManager); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public CharSequence loadLabel(@NonNull android.content.pm.PackageManager); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public boolean removeDynamicAidGroupForCategory(@NonNull String); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public boolean requiresScreenOn(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public boolean requiresUnlock(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public void resetOffHostSecureElement(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public void setDynamicAidGroup(@NonNull android.nfc.cardemulation.AidGroup); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public void setOffHostSecureElement(@NonNull String); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public void writeToParcel(@NonNull android.os.Parcel, int); - field @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public static final android.os.Parcelable.Creator<android.nfc.cardemulation.ApduServiceInfo> CREATOR; - } - - @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public final class NfcFServiceInfo implements android.os.Parcelable { - ctor @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public NfcFServiceInfo(@NonNull android.content.pm.PackageManager, @NonNull android.content.pm.ResolveInfo) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException; - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public int describeContents(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public void dump(@NonNull android.os.ParcelFileDescriptor, @NonNull java.io.PrintWriter, @NonNull String[]); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public void dumpDebug(@NonNull android.util.proto.ProtoOutputStream); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public android.content.ComponentName getComponent(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public String getDescription(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public String getNfcid2(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public String getSystemCode(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public String getT3tPmm(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public int getUid(); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public android.graphics.drawable.Drawable loadIcon(@NonNull android.content.pm.PackageManager); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public CharSequence loadLabel(@NonNull android.content.pm.PackageManager); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public void setDynamicNfcid2(@NonNull String); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public void setDynamicSystemCode(@NonNull String); - method @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) public void writeToParcel(@NonNull android.os.Parcel, int); - field @FlaggedApi(Flags.FLAG_ENABLE_NFC_MAINLINE) @NonNull public static final android.os.Parcelable.Creator<android.nfc.cardemulation.NfcFServiceInfo> CREATOR; + @FlaggedApi("android.nfc.enable_nfc_mainline") public final class AidGroup implements android.os.Parcelable { + ctor @FlaggedApi("android.nfc.enable_nfc_mainline") public AidGroup(@NonNull java.util.List<java.lang.String>, @Nullable String); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @Nullable public static android.nfc.cardemulation.AidGroup createFromXml(@NonNull org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method @FlaggedApi("android.nfc.enable_nfc_mainline") public int describeContents(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public void dump(@NonNull android.util.proto.ProtoOutputStream); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public java.util.List<java.lang.String> getAids(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public String getCategory(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public void writeAsXml(@NonNull org.xmlpull.v1.XmlSerializer) throws java.io.IOException; + method @FlaggedApi("android.nfc.enable_nfc_mainline") public void writeToParcel(@NonNull android.os.Parcel, int); + field @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public static final android.os.Parcelable.Creator<android.nfc.cardemulation.AidGroup> CREATOR; + } + + @FlaggedApi("android.nfc.enable_nfc_mainline") public final class ApduServiceInfo implements android.os.Parcelable { + ctor @FlaggedApi("android.nfc.enable_nfc_mainline") public ApduServiceInfo(@NonNull android.content.pm.PackageManager, @NonNull android.content.pm.ResolveInfo, boolean) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method @FlaggedApi("android.nfc.enable_nfc_mainline") public int describeContents(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public void dump(@NonNull android.os.ParcelFileDescriptor, @NonNull java.io.PrintWriter, @NonNull String[]); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public void dumpDebug(@NonNull android.util.proto.ProtoOutputStream); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public java.util.List<android.nfc.cardemulation.AidGroup> getAidGroups(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public java.util.List<java.lang.String> getAids(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public String getCategoryForAid(@NonNull String); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public android.content.ComponentName getComponent(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public String getDescription(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public android.nfc.cardemulation.AidGroup getDynamicAidGroupForCategory(@NonNull String); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @Nullable public String getOffHostSecureElement(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public java.util.List<java.lang.String> getPrefixAids(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public String getSettingsActivityName(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public java.util.List<java.lang.String> getSubsetAids(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public int getUid(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public boolean hasCategory(@NonNull String); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public boolean isOnHost(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public CharSequence loadAppLabel(@NonNull android.content.pm.PackageManager); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public android.graphics.drawable.Drawable loadBanner(@NonNull android.content.pm.PackageManager); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public android.graphics.drawable.Drawable loadIcon(@NonNull android.content.pm.PackageManager); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public CharSequence loadLabel(@NonNull android.content.pm.PackageManager); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public boolean removeDynamicAidGroupForCategory(@NonNull String); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public boolean requiresScreenOn(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public boolean requiresUnlock(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public void resetOffHostSecureElement(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public void setDynamicAidGroup(@NonNull android.nfc.cardemulation.AidGroup); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public void setOffHostSecureElement(@NonNull String); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public void writeToParcel(@NonNull android.os.Parcel, int); + field @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public static final android.os.Parcelable.Creator<android.nfc.cardemulation.ApduServiceInfo> CREATOR; + } + + @FlaggedApi("android.nfc.enable_nfc_mainline") public final class NfcFServiceInfo implements android.os.Parcelable { + ctor @FlaggedApi("android.nfc.enable_nfc_mainline") public NfcFServiceInfo(@NonNull android.content.pm.PackageManager, @NonNull android.content.pm.ResolveInfo) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException; + method @FlaggedApi("android.nfc.enable_nfc_mainline") public int describeContents(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public void dump(@NonNull android.os.ParcelFileDescriptor, @NonNull java.io.PrintWriter, @NonNull String[]); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public void dumpDebug(@NonNull android.util.proto.ProtoOutputStream); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public android.content.ComponentName getComponent(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public String getDescription(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public String getNfcid2(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public String getSystemCode(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public String getT3tPmm(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public int getUid(); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public android.graphics.drawable.Drawable loadIcon(@NonNull android.content.pm.PackageManager); + method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public CharSequence loadLabel(@NonNull android.content.pm.PackageManager); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public void setDynamicNfcid2(@NonNull String); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public void setDynamicSystemCode(@NonNull String); + method @FlaggedApi("android.nfc.enable_nfc_mainline") public void writeToParcel(@NonNull android.os.Parcel, int); + field @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public static final android.os.Parcelable.Creator<android.nfc.cardemulation.NfcFServiceInfo> CREATOR; } } diff --git a/core/java/android/net/metrics/WakeupEvent.java b/core/java/android/net/metrics/WakeupEvent.java index af9a73ca31ee..53a3ea516530 100644 --- a/core/java/android/net/metrics/WakeupEvent.java +++ b/core/java/android/net/metrics/WakeupEvent.java @@ -29,7 +29,7 @@ public class WakeupEvent { public String iface; public int uid; public int ethertype; - public MacAddress dstHwAddr; + public MacAddress dstHwAddr; // actually used to store a src mac address public String srcIp; public String dstIp; public int ipNextHeader; @@ -44,7 +44,7 @@ public class WakeupEvent { j.add(iface); j.add("uid: " + Integer.toString(uid)); j.add("eth=0x" + Integer.toHexString(ethertype)); - j.add("dstHw=" + dstHwAddr); + j.add("srcMac=" + dstHwAddr); // really!! http://b/292404319#comment11 if (ipNextHeader > 0) { j.add("ipNxtHdr=" + ipNextHeader); j.add("srcIp=" + srcIp); diff --git a/core/java/android/nfc/TEST_MAPPING b/core/java/android/nfc/TEST_MAPPING index 71ad687b7889..5b5ea3790010 100644 --- a/core/java/android/nfc/TEST_MAPPING +++ b/core/java/android/nfc/TEST_MAPPING @@ -2,6 +2,9 @@ "presubmit": [ { "name": "NfcManagerTests" + }, + { + "name": "CtsNfcTestCases" } ] } diff --git a/core/java/com/android/internal/net/OWNERS b/core/java/com/android/internal/net/OWNERS index 71f997bb57c5..71576837c2e1 100644 --- a/core/java/com/android/internal/net/OWNERS +++ b/core/java/com/android/internal/net/OWNERS @@ -1,4 +1,4 @@ set noparent -file:platform/packages/modules/Connectivity:master:/OWNERS_core_networking +file:platform/packages/modules/Connectivity:main:/OWNERS_core_networking jsharkey@android.com diff --git a/core/java/com/android/server/net/OWNERS b/core/java/com/android/server/net/OWNERS index 62c5737a2e8e..c24680e9b06a 100644 --- a/core/java/com/android/server/net/OWNERS +++ b/core/java/com/android/server/net/OWNERS @@ -1,2 +1,2 @@ set noparent -file:platform/packages/modules/Connectivity:master:/OWNERS_core_networking +file:platform/packages/modules/Connectivity:main:/OWNERS_core_networking diff --git a/services/companion/OWNERS b/services/companion/OWNERS index 734d8b6c5f43..dcf2377b4be1 100644 --- a/services/companion/OWNERS +++ b/services/companion/OWNERS @@ -1 +1,3 @@ -include /core/java/android/companion/OWNERS
\ No newline at end of file +include /core/java/android/companion/OWNERS + +per-file Android.bp,lint-baseline.xml,OWNERS=file:java/com/android/server/companion/virtual/OWNERS
\ No newline at end of file diff --git a/services/core/java/com/android/server/connectivity/OWNERS b/services/core/java/com/android/server/connectivity/OWNERS index 62c5737a2e8e..c24680e9b06a 100644 --- a/services/core/java/com/android/server/connectivity/OWNERS +++ b/services/core/java/com/android/server/connectivity/OWNERS @@ -1,2 +1,2 @@ set noparent -file:platform/packages/modules/Connectivity:master:/OWNERS_core_networking +file:platform/packages/modules/Connectivity:main:/OWNERS_core_networking diff --git a/services/core/java/com/android/server/net/OWNERS b/services/core/java/com/android/server/net/OWNERS index 9c96d46f15b8..d0e95dd55b6c 100644 --- a/services/core/java/com/android/server/net/OWNERS +++ b/services/core/java/com/android/server/net/OWNERS @@ -1,5 +1,5 @@ set noparent -file:platform/packages/modules/Connectivity:master:/OWNERS_core_networking +file:platform/packages/modules/Connectivity:main:/OWNERS_core_networking jsharkey@android.com sudheersai@google.com diff --git a/services/core/java/com/android/server/security/rkp/OWNERS b/services/core/java/com/android/server/security/rkp/OWNERS index 348f94048311..ea6dc727c7b2 100644 --- a/services/core/java/com/android/server/security/rkp/OWNERS +++ b/services/core/java/com/android/server/security/rkp/OWNERS @@ -1 +1 @@ -file:platform/frameworks/base:master:/core/java/android/security/rkp/OWNERS +file:platform/frameworks/base:main:/core/java/android/security/rkp/OWNERS diff --git a/services/net/OWNERS b/services/net/OWNERS index 62c5737a2e8e..c24680e9b06a 100644 --- a/services/net/OWNERS +++ b/services/net/OWNERS @@ -1,2 +1,2 @@ set noparent -file:platform/packages/modules/Connectivity:master:/OWNERS_core_networking +file:platform/packages/modules/Connectivity:main:/OWNERS_core_networking diff --git a/services/tests/RemoteProvisioningServiceTests/OWNERS b/services/tests/RemoteProvisioningServiceTests/OWNERS index 348f94048311..ea6dc727c7b2 100644 --- a/services/tests/RemoteProvisioningServiceTests/OWNERS +++ b/services/tests/RemoteProvisioningServiceTests/OWNERS @@ -1 +1 @@ -file:platform/frameworks/base:master:/core/java/android/security/rkp/OWNERS +file:platform/frameworks/base:main:/core/java/android/security/rkp/OWNERS diff --git a/tools/lint/fix/soong_lint_fix.py b/tools/lint/fix/soong_lint_fix.py index 4a2e37e51d71..2e82beb24b56 100644 --- a/tools/lint/fix/soong_lint_fix.py +++ b/tools/lint/fix/soong_lint_fix.py @@ -14,6 +14,7 @@ import argparse import json +import functools import os import shutil import subprocess @@ -28,6 +29,7 @@ SOONG_UI = "build/soong/soong_ui.bash" PATH_PREFIX = "out/soong/.intermediates" PATH_SUFFIX = "android_common/lint" FIX_ZIP = "suggested-fixes.zip" +MODULE_JAVA_DEPS = "out/soong/module_bp_java_deps.json" class SoongModule: @@ -49,11 +51,26 @@ class SoongModule: print(f"Found module {partial_path}/{self._name}.") self._path = f"{PATH_PREFIX}/{partial_path}/{self._name}/{PATH_SUFFIX}" + def find_java_deps(self, module_java_deps): + """Finds the dependencies of a Java module in the loaded module_bp_java_deps.json. + + Returns: + A list of module names. + """ + if self._name not in module_java_deps: + raise Exception(f"Module {self._name} not found!") + + return module_java_deps[self._name]["dependencies"] + @property def name(self): return self._name @property + def path(self): + return self._path + + @property def lint_report(self): return f"{self._path}/lint-report.txt" @@ -62,52 +79,25 @@ class SoongModule: return f"{self._path}/{FIX_ZIP}" -class SoongLintFix: +class SoongLintWrapper: """ - This class creates a command line tool that will apply lint fixes to the - platform via the necessary combination of soong and shell commands. + This class wraps the necessary calls to Soong and/or shell commands to lint + platform modules and apply suggested fixes if desired. - It breaks up these operations into a few "private" methods that are - intentionally exposed so experimental code can tweak behavior. - - The entry point, `run`, will apply lint fixes using the intermediate - `suggested-fixes` directory that soong creates during its invocation of - lint. - - Basic usage: - ``` - from soong_lint_fix import SoongLintFix - - opts = SoongLintFixOptions() - opts.parse_args(sys.argv) - SoongLintFix(opts).run() - ``` + It breaks up these operations into a few methods that are available to + sub-classes (see SoongLintFix for an example). """ - def __init__(self, opts): - self._opts = opts + def __init__(self, check=None, lint_module=None): + self._check = check + self._lint_module = lint_module self._kwargs = None - self._modules = [] - - def run(self): - """ - Run the script - """ - self._setup() - self._find_modules() - self._lint() - - if not self._opts.no_fix: - self._fix() - - if self._opts.print: - self._print() def _setup(self): env = os.environ.copy() - if self._opts.check: - env["ANDROID_LINT_CHECK"] = self._opts.check - if self._opts.lint_module: - env["ANDROID_LINT_CHECK_EXTRA_MODULES"] = self._opts.lint_module + if self._check: + env["ANDROID_LINT_CHECK"] = self._check + if self._lint_module: + env["ANDROID_LINT_CHECK_EXTRA_MODULES"] = self._lint_module self._kwargs = { "env": env, @@ -117,7 +107,10 @@ class SoongLintFix: os.chdir(ANDROID_BUILD_TOP) - print("Refreshing soong modules...") + @functools.cached_property + def _module_info(self): + """Returns the JSON content of module-info.json.""" + print("Refreshing Soong modules...") try: os.mkdir(ANDROID_PRODUCT_OUT) except OSError: @@ -125,19 +118,54 @@ class SoongLintFix: subprocess.call(f"{SOONG_UI} --make-mode {PRODUCT_OUT}/module-info.json", **self._kwargs) print("done.") - - def _find_modules(self): with open(f"{ANDROID_PRODUCT_OUT}/module-info.json") as f: - module_info = json.load(f) + return json.load(f) - for module_name in self._opts.modules: - module = SoongModule(module_name) - module.find(module_info) - self._modules.append(module) + def _find_module(self, module_name): + """Returns a SoongModule from a module name. - def _lint(self): + Ensures that the module is known to Soong. + """ + module = SoongModule(module_name) + module.find(self._module_info) + return module + + def _find_modules(self, module_names): + modules = [] + for module_name in module_names: + modules.append(self._find_module(module_name)) + return modules + + @functools.cached_property + def _module_java_deps(self): + """Returns the JSON content of module_bp_java_deps.json.""" + print("Refreshing Soong Java deps...") + subprocess.call(f"{SOONG_UI} --make-mode {MODULE_JAVA_DEPS}", **self._kwargs) + print("done.") + + with open(f"{MODULE_JAVA_DEPS}") as f: + return json.load(f) + + def _find_module_java_deps(self, module): + """Returns a list a dependencies for a module. + + Args: + module: A SoongModule. + + Returns: + A list of SoongModule. + """ + deps = [] + dep_names = module.find_java_deps(self._module_java_deps) + for dep_name in dep_names: + dep = SoongModule(dep_name) + dep.find(self._module_info) + deps.append(dep) + return deps + + def _lint(self, modules): print("Cleaning up any old lint results...") - for module in self._modules: + for module in modules: try: os.remove(f"{module.lint_report}") os.remove(f"{module.suggested_fixes}") @@ -145,13 +173,13 @@ class SoongLintFix: pass print("done.") - target = " ".join([ module.lint_report for module in self._modules ]) + target = " ".join([ module.lint_report for module in modules ]) print(f"Generating {target}") subprocess.call(f"{SOONG_UI} --make-mode {target}", **self._kwargs) print("done.") - def _fix(self): - for module in self._modules: + def _fix(self, modules): + for module in modules: print(f"Copying suggested fixes for {module.name} to the tree...") with zipfile.ZipFile(f"{module.suggested_fixes}") as zip: for name in zip.namelist(): @@ -161,13 +189,40 @@ class SoongLintFix: shutil.copyfileobj(src, dst) print("done.") - def _print(self): - for module in self._modules: + def _print(self, modules): + for module in modules: print(f"### lint-report.txt {module.name} ###", end="\n\n") with open(module.lint_report, "r") as f: print(f.read()) +class SoongLintFix(SoongLintWrapper): + """ + Basic usage: + ``` + from soong_lint_fix import SoongLintFix + + opts = SoongLintFixOptions() + opts.parse_args() + SoongLintFix(opts).run() + ``` + """ + def __init__(self, opts): + super().__init__(check=opts.check, lint_module=opts.lint_module) + self._opts = opts + + def run(self): + self._setup() + modules = self._find_modules(self._opts.modules) + self._lint(modules) + + if not self._opts.no_fix: + self._fix(modules) + + if self._opts.print: + self._print(modules) + + class SoongLintFixOptions: """Options for SoongLintFix""" diff --git a/tools/lint/utils/enforce_permission_counter.py b/tools/lint/utils/enforce_permission_counter.py index b5c2ffe9885e..a4c00f79b63f 100644 --- a/tools/lint/utils/enforce_permission_counter.py +++ b/tools/lint/utils/enforce_permission_counter.py @@ -16,57 +16,38 @@ import re import soong_lint_fix -# Libraries that constitute system_server. -# It is non-trivial to keep in sync with services/Android.bp as some -# module are post-processed (e.g, services.core). -TARGETS = [ - "services.core.unboosted", - "services.accessibility", - "services.appprediction", - "services.appwidget", - "services.autofill", - "services.backup", - "services.companion", - "services.contentcapture", - "services.contentsuggestions", - "services.coverage", - "services.devicepolicy", - "services.midi", - "services.musicsearch", - "services.net", - "services.people", - "services.print", - "services.profcollect", - "services.restrictions", - "services.searchui", - "services.smartspace", - "services.systemcaptions", - "services.translation", - "services.texttospeech", - "services.usage", - "services.usb", - "services.voiceinteraction", - "services.wallpapereffectsgeneration", - "services.wifi", -] +CHECK = "AnnotatedAidlCounter" +LINT_MODULE = "AndroidUtilsLintChecker" - -class EnforcePermissionMigratedCounter: +class EnforcePermissionMigratedCounter(soong_lint_fix.SoongLintWrapper): """Wrapper around lint_fix to count the number of AIDL methods annotated.""" - def run(self): - opts = soong_lint_fix.SoongLintFixOptions() - opts.check = "AnnotatedAidlCounter" - opts.lint_module = "AndroidUtilsLintChecker" - opts.no_fix = True - opts.modules = TARGETS - self.linter = soong_lint_fix.SoongLintFix(opts) - self.linter.run() - self.parse_lint_reports() + def __init__(self): + super().__init__(check=CHECK, lint_module=LINT_MODULE) + + def run(self): + self._setup() + + # Analyze the dependencies of the "services" module and the module + # "services.core.unboosted". + service_module = self._find_module("services") + dep_modules = self._find_module_java_deps(service_module) + \ + [self._find_module("services.core.unboosted")] + + # Skip dependencies that are not services. Skip the "services.core" + # module which is analyzed via "services.core.unboosted". + modules = [] + for module in dep_modules: + if "frameworks/base/services" not in module.path: + continue + if module.name == "services.core": + continue + modules.append(module) + + self._lint(modules) - def parse_lint_reports(self): counts = { "unannotated": 0, "enforced": 0, "notRequired": 0 } - for module in self.linter._modules: + for module in modules: with open(module.lint_report, "r") as f: content = f.read() keys = dict(re.findall(r'(\w+)=(\d+)', content)) |