diff options
author | ThiƩbaud Weksteen <tweek@google.com> | 2024-02-28 13:26:57 +1100 |
---|---|---|
committer | ThiƩbaud Weksteen <tweek@google.com> | 2024-02-28 13:26:57 +1100 |
commit | f3007e9fd4a5dc94b9acd4e3059c434b0686c271 (patch) | |
tree | 9c009bf2c0e257a2000445b5f64828dd074d0c14 | |
parent | a772618e5ca2ef248304c29fc7b47a7b27f9f920 (diff) | |
download | selinux-f3007e9fd4a5dc94b9acd4e3059c434b0686c271.tar.gz |
Add selabel_get_digests_all_partial_matches binary
Add build rule for selabel_get_digests_all_partial_matches. It is not
included by default in the system image, but can be useful to debug
the computation of security.sehash.
Bug: 317296680
Test: adb remount; adb push selabel_get_digests_all_partial_matches
/system/bin; selabel_get_digests_all_partial_matches -r /data/data
Change-Id: I2b7e8d994f15539849d69ded5695293c4f2cf8b2
-rw-r--r-- | libselinux/Android.bp | 12 | ||||
-rw-r--r-- | libselinux/utils/selabel_get_digests_all_partial_matches.c | 5 |
2 files changed, 17 insertions, 0 deletions
diff --git a/libselinux/Android.bp b/libselinux/Android.bp index ff7dc3d3..766c90ed 100644 --- a/libselinux/Android.bp +++ b/libselinux/Android.bp @@ -222,6 +222,18 @@ cc_binary_host { stl: "", } +cc_binary { + name: "selabel_get_digests_all_partial_matches", + defaults: ["libselinux_defaults"], + srcs: ["utils/selabel_get_digests_all_partial_matches.c"], + + static_libs: [ + "libselinux", + ], + + stl: "", +} + rust_bindgen { name: "libselinux_bindgen", wrapper_src: "rust/selinux.h", diff --git a/libselinux/utils/selabel_get_digests_all_partial_matches.c b/libselinux/utils/selabel_get_digests_all_partial_matches.c index c4e0f836..fc518439 100644 --- a/libselinux/utils/selabel_get_digests_all_partial_matches.c +++ b/libselinux/utils/selabel_get_digests_all_partial_matches.c @@ -5,6 +5,7 @@ #include <errno.h> #include <stdbool.h> #include <fts.h> +#include <selinux/android.h> #include <selinux/selinux.h> #include <selinux/label.h> @@ -71,10 +72,14 @@ int main(int argc, char **argv) paths[0] = argv[optind]; +#ifdef ANDROID + hnd = selinux_android_file_context_handle(); +#else selabel_option[0].value = file; selabel_option[1].value = validate; hnd = selabel_open(SELABEL_CTX_FILE, selabel_option, 2); +#endif if (!hnd) { fprintf(stderr, "ERROR: selabel_open - Could not obtain " "handle: %s\n", |