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

Commit 907b70ae authored by Will Coster's avatar Will Coster
Browse files

Add build target for permissions text file

This CL adds a genrule that generates a text file that contains all of
the normal / non-signature permissions formatted with one permission per
line.

This can be used by tools that require a list of permissions known as
part of their build. Without this support, it would be difficult to
write the build rules for such tools as it is not possible to access the
frameworks/base/core/res/AndroidManifest.xml from Android.bp files in
other directories.

Test: Built locally and manually verified the file
Change-Id: I01046e5faa1f0a81c3d2ee82643094d4cf82f221
parent 8b4325f8
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -54,3 +54,22 @@ filegroup {
        "res/**/*",
    ],
}

// Generate a text file containing a list of permissions that non-system apps
// are allowed to obtain.
genrule {
  name: "permission-list-normal",
  out: ["permission-list-normal.txt"],
  srcs: ["AndroidManifest.xml"],
  cmd: "cat $(in) " +
       // xmllint has trouble accessing attributes under the android namespace.
       // Strip these prefixes prior to processing with xmllint.
       " | sed -r 's/android:(name|protectionLevel)/\\1/g' " +
       " | $(location xmllint) /dev/stdin --xpath " +
       " '//permission[not(contains(@protectionLevel, \"signature\"))]/@name'" +
       // The result of xmllint is name="value" pairs. Format these to just the
       // permission name, one per-line.
       " | sed -r 's/\\s*name=\\s*//g' | tr -d '\"'" +
       " > $(out)",
  tools: ["xmllint"]
}