From 9b5bf8c2102db1ae3811cb82999ac9cd2f621814 Mon Sep 17 00:00:00 2001 From: Soul Trace Date: Wed, 1 Apr 2020 16:43:56 +0300 Subject: [PATCH] ipacm: Fix WLAN tethering offload Fix reboot after 120 seconds on WLAN tethering enable. Fix "target device is connected but no internet" issue. Move ipacm-related sections from rootdir/etc/init.qcom.rc to data-ipa-cfg-mgr/ipacm/src/ipacm.rc Make ipacm.rc look like vendor/qcom/opensource/data-ipa-cfg-mgr/ipacm/src/ipacm.rc but add writepid /dev/cpuset/system-background/tasks to the service definition. This let ipacm start after data decryption (it got killed on data decrypt and not respawned, because was disabled). This fixes following errors: 04-01 14:35:57.525 591 17586 W libc : Unable to set property "ctl.interface_start" to "android.hardware.tetheroffload.config@1.0::IOffloadConfig/default": error code: 0x20 04-01 14:35:57.526 2665 3190 I ServiceManagement: getService: Trying again for android.hardware.tetheroffload.config@1.0::IOffloadConfig/default... 04-01 14:35:57.526 591 17586 E hwservicemanager: Failed to set property for starting android.hardware.tetheroffload.config@1.0::IOffloadConfig/default Set wifi.active.interface context to exported_wifi_prop and allow hal_wifi_default to set it. I don't know why context definition was not embedded to the contexts file, but now it is. This fixes following errors: [163263.846522] selinux: avc: denied { set } for property=wifi.active.interface pid=2733 uid=1010 gid=1010 scontext=u:r:hal_wifi_default:s0 tcontext=u:object_r:default_prop:s0 tclass=property_service permissive=0 Change-Id: I735e7d8d8d07b9545ef16a6baa35a13aba3cd116 --- data-ipa-cfg-mgr/ipacm/src/ipacm.rc | 11 +++++++---- rootdir/etc/init.qcom.rc | 12 ------------ sepolicy/vendor/ipacm.te | 4 ++++ sepolicy/vendor/property_contexts | 4 ++++ 4 files changed, 15 insertions(+), 16 deletions(-) create mode 100644 sepolicy/vendor/ipacm.te diff --git a/data-ipa-cfg-mgr/ipacm/src/ipacm.rc b/data-ipa-cfg-mgr/ipacm/src/ipacm.rc index c1c876be..8381bf22 100644 --- a/data-ipa-cfg-mgr/ipacm/src/ipacm.rc +++ b/data-ipa-cfg-mgr/ipacm/src/ipacm.rc @@ -25,10 +25,13 @@ # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# msm specific files that need to be created on /data +on post-fs-data + mkdir /data/vendor/ipa 0770 radio radio + chmod 0770 /data/vendor/ipa + service vendor.ipacm /system/vendor/bin/ipacm - class main + class late_start user radio group radio inet - -on post-fs - start vendor.ipacm + writepid /dev/cpuset/system-background/tasks diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc index 3b9c9890..3aab631f 100755 --- a/rootdir/etc/init.qcom.rc +++ b/rootdir/etc/init.qcom.rc @@ -359,10 +359,6 @@ on post-fs-data mkdir /data/vendor/netmgr 0770 radio radio chmod 0770 /data/vendor/netmgr - #create ipacm log dir - mkdir /data/vendor/ipa 0770 radio radio - chmod 0770 /data/vendor/ipa - #Create QTI dir for logs mkdir /data/vendor/dataqti 0770 radio radio chmod 0770 /data/vendor/dataqti @@ -630,14 +626,6 @@ service vendor.port-bridge /system/vendor/bin/port-bridge oneshot writepid /dev/cpuset/system-background/tasks -service vendor.ipacm /system/vendor/bin/ipacm - class main - user radio - group radio inet - disabled - writepid /dev/cpuset/system-background/tasks - - service vendor.sensors /vendor/bin/sscrpcd sensorspd class early_hal user system diff --git a/sepolicy/vendor/ipacm.te b/sepolicy/vendor/ipacm.te new file mode 100644 index 00000000..3c1d3a4f --- /dev/null +++ b/sepolicy/vendor/ipacm.te @@ -0,0 +1,4 @@ +# Fix for WLAN tethering offload +# SELinux : avc: denied { set } for property=wifi.active.interface pid=2918 uid=1010 gid=1010 scontext=u:r::s0 tcontext=u:object_r:default_prop:s0 tclass=property_service +allow hal_wifi_default exported_wifi_prop:property_service set; + diff --git a/sepolicy/vendor/property_contexts b/sepolicy/vendor/property_contexts index 628a84a2..49a7a6b3 100644 --- a/sepolicy/vendor/property_contexts +++ b/sepolicy/vendor/property_contexts @@ -40,3 +40,7 @@ sys.post_boot.parsed u:object_r:vendor_mpctl_prop:s0 # Hall wakeup persist.service.folio_daemon u:object_r:system_prop:s0 + +# Fix for WLAN tethering offload +# SELinux : avc: denied { set } for property=wifi.active.interface pid=2918 uid=1010 gid=1010 scontext=u:r::s0 tcontext=u:object_r:default_prop:s0 tclass=property_service +wifi.active.interface u:object_r:exported_wifi_prop:s0