diff --git a/app.te b/app.te index f44397763eff767075948c2cdb88d1e29315e980..538c1c453d91075825520e8b56ff8ec2857762c1 100644 --- a/app.te +++ b/app.te @@ -84,7 +84,7 @@ allow appdomain qtaguid_device:chr_file r_file_perms; # Grant GPU access to all processes started by Zygote. # They need that to render the standard UI. -allow appdomain gpu_device:chr_file { rw_file_perms execute }; +allow { appdomain -isolated_app } gpu_device:chr_file { rw_file_perms execute }; # Use the Binder. binder_use(appdomain) diff --git a/isolated_app.te b/isolated_app.te index 5929b259324bd2d6b6dfe67f0e439eb5b6a9e596..ae4445ab83731de04639b7b36fb99a4facf5afcb 100644 --- a/isolated_app.te +++ b/isolated_app.te @@ -13,6 +13,9 @@ type isolated_app, domain; app_domain(isolated_app) net_domain(isolated_app) +# Isolated apps shouldn't be able to access the driver directly. +neverallow isolated_app gpu_device:file { rw_file_perms execute }; + # read and write access to app_data_file is already # granted via app.te. Allow execute. # Needed to allow dlopen() from Chrome renderer processes.