add Shell-package-library to allow product type level update

- Car proeducts add additional car permissions to shell package for use cases
  like CTS
- This CL will allow overriding the Shell package rather than adding one
  more package with shared shell uid

Bug: 177099512
Test: Check added package when built in car product.
Change-Id: I6e9103c3275cb2e6df5dc586588eccd7d2ab6b06
diff --git a/packages/Shell/Android.bp b/packages/Shell/Android.bp
index c873e30..546642d 100644
--- a/packages/Shell/Android.bp
+++ b/packages/Shell/Android.bp
@@ -1,11 +1,15 @@
+// used both for the android_app and android_library
+shell_srcs = ["src/**/*.java",":dumpstate_aidl"]
+shell_static_libs = ["androidx.legacy_legacy-support-v4"]
+
 android_app {
     name: "Shell",
     defaults: ["platform_app_defaults"],
-    srcs: ["src/**/*.java",":dumpstate_aidl"],
+    srcs: shell_srcs,
     aidl: {
         include_dirs: ["frameworks/native/cmds/dumpstate/binder"],
     },
-    static_libs: ["androidx.legacy_legacy-support-v4"],
+    static_libs: shell_static_libs,
     platform_apis: true,
     certificate: "platform",
     privileged: true,
@@ -13,3 +17,18 @@
         include_filter: ["com.android.shell.*"],
     },
 }
+
+// A library for product type like auto to create a new shell package
+// with product specific permissions.
+android_library {
+    name: "Shell-package-library",
+    defaults: ["platform_app_defaults"],
+    srcs: shell_srcs,
+    aidl: {
+        include_dirs: ["frameworks/native/cmds/dumpstate/binder"],
+    },
+    resource_dirs: ["res"],
+    static_libs: shell_static_libs,
+    platform_apis: true,
+    manifest: "AndroidManifest.xml",
+}