ART: Update list of reserved boot class path packages.

Test: aosp_taimen-userdebug boots.
Test: oatdump --instruction-set=arm64 \
      --oat-file=$ANDROID_PRODUCT_OUT/system/framework/oat/arm64/services.odex \
      --dex-file=$ANDROID_PRODUCT_OUT/system/framework/services.jar | \
      grep -E 'Landroid/net/.*\(OatClass.*Compiled\)$' | \
      grep -vE '\(NotReady\)'  # Filter out unresolved classes
      # Empty output. (Many classes without the last grep.)
Bug: 151314205
Change-Id: I633fe53a3bc2e5ed93e523428d7dec18363971cf
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc
index 05a03e1..4e3c250 100644
--- a/runtime/class_linker.cc
+++ b/runtime/class_linker.cc
@@ -3149,10 +3149,27 @@
   std::string_view descriptor_sv(descriptor);
   return
       // Reserved conscrypt packages (includes sub-packages under these paths).
-      StartsWith(descriptor_sv, "Landroid/net/ssl/") ||
+      // StartsWith(descriptor_sv, "Landroid/net/ssl/") ||  // Covered by android.net below.
       StartsWith(descriptor_sv, "Lcom/android/org/conscrypt/") ||
       // Reserved updatable-media package (includes sub-packages under this path).
-      StartsWith(descriptor_sv, "Landroid/media/");
+      StartsWith(descriptor_sv, "Landroid/media/") ||
+      // Reserved framework-mediaprovider package (includes sub-packages under this path).
+      StartsWith(descriptor_sv, "Landroid/provider/") ||
+      // Reserved framework-statsd packages (includes sub-packages under these paths).
+      StartsWith(descriptor_sv, "Landroid/app/") ||
+      StartsWith(descriptor_sv, "Landroid/os/") ||
+      StartsWith(descriptor_sv, "Landroid/util/") ||
+      // Reserved framework-permission packages (includes sub-packages under this path).
+      StartsWith(descriptor_sv, "Landroid/permission/") ||
+      // StartsWith(descriptor_sv, "Landroid/app/role/") ||  // Covered by android.app above.
+      // Reserved framework-sdkextensions package (includes sub-packages under this path).
+      // StartsWith(descriptor_sv, "Landroid/os/ext/") ||  // Covered by android.os above.
+      // Reserved framework-wifi packages (includes sub-packages under these paths).
+      StartsWith(descriptor_sv, "Landroid/hardware/wifi/") ||
+      // StartsWith(descriptor_sv, "Landroid/net/wifi/") ||  // Covered by android.net below.
+      StartsWith(descriptor_sv, "Landroid/x/net/wifi/") ||
+      // Reserved framework-tethering package (includes sub-packages under this path).
+      StartsWith(descriptor_sv, "Landroid/net/");
 }
 
 // Helper for maintaining DefineClass counting. We need to notify callbacks when we start/end a