41 lines
1.5 KiB
Diff
41 lines
1.5 KiB
Diff
From 0883dddcc377f9c8c271b4ee1b5796cca6b9938c Mon Sep 17 00:00:00 2001
|
|
From: Pierre-Hugues Husson <phh@phh.me>
|
|
Date: Mon, 3 Dec 2018 20:54:54 +0100
|
|
Subject: [PATCH 3/6] ::Kirin:: Workaround some conflicting Kirin tether
|
|
SELinux context
|
|
|
|
Some Kirin devices declared some android.hardware.tetheroffload HALs,
|
|
but they didn't use AOSP contexts.
|
|
This leads to libselinux aborting when loading hwservice_contexts.
|
|
|
|
Workaround it the ugly way, by making them match.
|
|
This most likely kills tetheroffload for those devices.
|
|
---
|
|
libselinux/src/label_backends_android.c | 10 ++++++++++
|
|
1 file changed, 10 insertions(+)
|
|
|
|
diff --git a/libselinux/src/label_backends_android.c b/libselinux/src/label_backends_android.c
|
|
index eaca5947..ab92985b 100644
|
|
--- a/libselinux/src/label_backends_android.c
|
|
+++ b/libselinux/src/label_backends_android.c
|
|
@@ -62,6 +62,16 @@ static int nodups_specs(struct saved_data *data)
|
|
curr_spec->property_key)) {
|
|
if (strcmp(spec_arr[jj].lr.ctx_raw,
|
|
curr_spec->lr.ctx_raw)) {
|
|
+ if(strcmp(spec_arr[jj].lr.ctx_raw, "u:object_r:hal_ipacm_hwservice:s0") == 0) {
|
|
+ free(spec_arr[jj].lr.ctx_raw);
|
|
+ spec_arr[jj].lr.ctx_raw = strdup("u:object_r:hal_tetheroffload_hwservice:s0");
|
|
+ continue;
|
|
+ }
|
|
+ if(strcmp(curr_spec->lr.ctx_raw, "u:object_r:hal_ipacm_hwservice:s0") == 0) {
|
|
+ free(curr_spec->lr.ctx_raw);
|
|
+ curr_spec->lr.ctx_raw = strdup("u:object_r:hal_tetheroffload_hwservice:s0");
|
|
+ continue;
|
|
+ }
|
|
rc = -1;
|
|
errno = EINVAL;
|
|
selinux_log
|
|
--
|
|
2.17.1
|
|
|