[ROOT ONLY][TASK] Grant/Revoke Tasker all Permissions (inc 'advanced' permissions)

Search This thread

gps3dx

Senior Member
Jan 24, 2010
789
401
HTC Desire
Samsung Galaxy Tab 10.1
Hi all,

Just wanted to share two tasks that grant/revoke TASKER (i.e packagename 'net.dinglisch.android.taskerm' ) ALL permissions, including 'advanced' permissions like 'Display over other apps' & 'Modify system settings'.

The only 'advanced' perm that the tasks don't include is the 'Install unknown apps' perm.
Not that technically it can't be included, I chose not to, because of Andr Q: apps that are being allowed to use this permission behave weird sometimes ( storage access is changed & limit somehow ) - due to some integral protection included in Andr Q OS.
Also, the tasks DO NOT deal with "Special" permissions like 'device admin' / 'notification access' etc since it either hard or IMPOSSIBLE to do with root only permission w/o 3rd party tools, like in the case of 'device admin'.

IMPORTANT NOTE: YOU MUST HAVE ROOT & MUST ALLOW TASKER ROOT ACCESS !
THE TASKS DON'T WORK OTHERWISE


  • Tasker_perm_Grant
    Code:
    <TaskerData sr="" dvi="1" tv="5.9.beta.4">
    	<Task sr="task143">
    		<cdate>1573298679964</cdate>
    		<edate>1573312849484</edate>
    		<id>143</id>
    		<nme>Tasker_perm_Grant</nme>
    		<pri>100</pri>
    		<Action sr="act0" ve="7">
    			<code>123</code>
    			<se>false</se>
    			<Str sr="arg0" ve="3">appops set net.dinglisch.android.taskerm LEGACY_STORAGE allow
    appops set net.dinglisch.android.taskerm COARSE_LOCATION allow
    appops set net.dinglisch.android.taskerm VIBRATE allow
    appops set net.dinglisch.android.taskerm READ_CONTACTS allow
    appops set net.dinglisch.android.taskerm WRITE_CONTACTS allow
    appops set net.dinglisch.android.taskerm READ_CALL_LOG allow
    appops set net.dinglisch.android.taskerm WRITE_CALL_LOG allow
    appops set net.dinglisch.android.taskerm READ_CALENDAR allow
    appops set net.dinglisch.android.taskerm WRITE_CALENDAR allow
    appops set net.dinglisch.android.taskerm CALL_PHONE allow
    appops set net.dinglisch.android.taskerm READ_SMS allow
    appops set net.dinglisch.android.taskerm RECEIVE_SMS allow
    appops set net.dinglisch.android.taskerm SEND_SMS allow
    appops set net.dinglisch.android.taskerm WRITE_SETTINGS allow
    appops set net.dinglisch.android.taskerm SYSTEM_ALERT_WINDOW allow
    appops set net.dinglisch.android.taskerm CAMERA allow
    appops set net.dinglisch.android.taskerm RECORD_AUDIO allow
    appops set net.dinglisch.android.taskerm READ_CLIPBOARD allow
    appops set net.dinglisch.android.taskerm WRITE_CLIPBOARD allow
    appops set net.dinglisch.android.taskerm WAKE_LOCK allow
    appops set net.dinglisch.android.taskerm GET_USAGE_STATS allow
    appops set net.dinglisch.android.taskerm TOAST_WINDOW allow
    appops set net.dinglisch.android.taskerm READ_PHONE_STATE allow
    appops set net.dinglisch.android.taskerm PROCESS_OUTGOING_CALLS allow
    appops set net.dinglisch.android.taskerm BODY_SENSORS allow
    appops set net.dinglisch.android.taskerm READ_EXTERNAL_STORAGE allow
    appops set net.dinglisch.android.taskerm WRITE_EXTERNAL_STORAGE allow
    appops set net.dinglisch.android.taskerm RUN_IN_BACKGROUND allow
    appops set net.dinglisch.android.taskerm ANSWER_PHONE_CALLS allow
    appops set net.dinglisch.android.taskerm BIND_ACCESSIBILITY_SERVICE allow
    appops set net.dinglisch.android.taskerm START_FOREGROUND allow
    appops set net.dinglisch.android.taskerm READ_MEDIA_IMAGES allow
    appops set net.dinglisch.android.taskerm ACCESS_ACCESSIBILITY allow
    appops set net.dinglisch.android.taskerm READ_DEVICE_IDENTIFIERS allow</Str>
    			<Int sr="arg1" val="0"/>
    			<Int sr="arg2" val="1"/>
    			<Str sr="arg3" ve="3">%out</Str>
    			<Str sr="arg4" ve="3">%err</Str>
    			<Str sr="arg5" ve="3"/>
    		</Action>
    		<Action sr="act1" ve="7">
    			<code>123</code>
    			<se>false</se>
    			<Str sr="arg0" ve="3">pm grant net.dinglisch.android.taskerm android.permission.READ_SMS
    pm grant net.dinglisch.android.taskerm android.permission.READ_CALENDAR
    pm grant net.dinglisch.android.taskerm android.permission.READ_CALL_LOG
    pm grant net.dinglisch.android.taskerm android.permission.ACCESS_FINE_LOCATION
    pm grant net.dinglisch.android.taskerm android.permission.ANSWER_PHONE_CALLS
    pm grant net.dinglisch.android.taskerm android.permission.BODY_SENSORS
    pm grant net.dinglisch.android.taskerm android.permission.RECEIVE_SMS
    pm grant net.dinglisch.android.taskerm android.permission.READ_EXTERNAL_STORAGE
    pm grant net.dinglisch.android.taskerm android.permission.ACCESS_COARSE_LOCATION
    pm grant net.dinglisch.android.taskerm android.permission.READ_PHONE_STATE
    pm grant net.dinglisch.android.taskerm android.permission.SEND_SMS
    pm grant net.dinglisch.android.taskerm android.permission.CALL_PHONE
    pm grant net.dinglisch.android.taskerm android.permission.WRITE_CONTACTS
    pm grant net.dinglisch.android.taskerm android.permission.CAMERA
    pm grant net.dinglisch.android.taskerm android.permission.WRITE_CALENDAR
    pm grant net.dinglisch.android.taskerm android.permission.WRITE_CALL_LOG
    pm grant net.dinglisch.android.taskerm android.permission.PROCESS_OUTGOING_CALLS
    pm grant net.dinglisch.android.taskerm android.permission.WRITE_EXTERNAL_STORAGE
    pm grant net.dinglisch.android.taskerm android.permission.RECORD_AUDIO
    pm grant net.dinglisch.android.taskerm android.permission.READ_CONTACTS
    pm grant net.dinglisch.android.taskerm android.permission.ACCESS_BACKGROUND_LOCATION</Str>
    			<Int sr="arg1" val="0"/>
    			<Int sr="arg2" val="1"/>
    			<Str sr="arg3" ve="3">%out</Str>
    			<Str sr="arg4" ve="3">%err</Str>
    			<Str sr="arg5" ve="3"/>
    		</Action>
    		<Action sr="act2" ve="7">
    			<code>123</code>
    			<Str sr="arg0" ve="3">pm grant net.dinglisch.android.taskerm android.permission.SYSTEM_ALERT_WINDOW
    pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS</Str>
    			<Int sr="arg1" val="0"/>
    			<Int sr="arg2" val="1"/>
    			<Str sr="arg3" ve="3">%out</Str>
    			<Str sr="arg4" ve="3">%err</Str>
    			<Str sr="arg5" ve="3"/>
    		</Action>
    	</Task>
    </TaskerData>
    [/hide]
    [*] Tasker_perm_Revoke
    Code:
    <TaskerData sr="" dvi="1" tv="5.9.beta.4">
    	<Task sr="task142">
    		<cdate>1573298679964</cdate>
    		<edate>1573312802971</edate>
    		<id>142</id>
    		<nme>Tasker_perm_Revoke</nme>
    		<pri>100</pri>
    		<Action sr="act0" ve="7">
    			<code>123</code>
    			<Str sr="arg0" ve="3">appops reset net.dinglisch.android.taskerm</Str>
    			<Int sr="arg1" val="0"/>
    			<Int sr="arg2" val="1"/>
    			<Str sr="arg3" ve="3">%out</Str>
    			<Str sr="arg4" ve="3">%err</Str>
    			<Str sr="arg5" ve="3"/>
    		</Action>
    		<Action sr="act1" ve="7">
    			<code>123</code>
    			<Str sr="arg0" ve="3">pm revoke net.dinglisch.android.taskerm android.permission.READ_SMS
    pm revoke net.dinglisch.android.taskerm android.permission.READ_CALENDAR
    pm revoke net.dinglisch.android.taskerm android.permission.READ_CALL_LOG
    pm revoke net.dinglisch.android.taskerm android.permission.ACCESS_FINE_LOCATION
    pm revoke net.dinglisch.android.taskerm android.permission.ANSWER_PHONE_CALLS
    pm revoke net.dinglisch.android.taskerm android.permission.BODY_SENSORS
    pm revoke net.dinglisch.android.taskerm android.permission.RECEIVE_SMS
    pm revoke net.dinglisch.android.taskerm android.permission.READ_EXTERNAL_STORAGE
    pm revoke net.dinglisch.android.taskerm android.permission.ACCESS_COARSE_LOCATION
    pm revoke net.dinglisch.android.taskerm android.permission.READ_PHONE_STATE
    pm revoke net.dinglisch.android.taskerm android.permission.SEND_SMS
    pm revoke net.dinglisch.android.taskerm android.permission.CALL_PHONE
    pm revoke net.dinglisch.android.taskerm android.permission.WRITE_CONTACTS
    pm revoke net.dinglisch.android.taskerm android.permission.CAMERA
    pm revoke net.dinglisch.android.taskerm android.permission.WRITE_CALENDAR
    pm revoke net.dinglisch.android.taskerm android.permission.WRITE_CALL_LOG
    pm revoke net.dinglisch.android.taskerm android.permission.PROCESS_OUTGOING_CALLS
    pm revoke net.dinglisch.android.taskerm android.permission.WRITE_EXTERNAL_STORAGE
    pm revoke net.dinglisch.android.taskerm android.permission.RECORD_AUDIO
    pm revoke net.dinglisch.android.taskerm android.permission.READ_CONTACTS
    pm revoke net.dinglisch.android.taskerm android.permission.ACCESS_BACKGROUND_LOCATION</Str>
    			<Int sr="arg1" val="0"/>
    			<Int sr="arg2" val="1"/>
    			<Str sr="arg3" ve="3">%out</Str>
    			<Str sr="arg4" ve="3">%err</Str>
    			<Str sr="arg5" ve="3"/>
    		</Action>
    		<Action sr="act2" ve="7">
    			<code>123</code>
    			<Str sr="arg0" ve="3">pm revoke net.dinglisch.android.taskerm android.permission.SYSTEM_ALERT_WINDOW
    pm revoke net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS</Str>
    			<Int sr="arg1" val="0"/>
    			<Int sr="arg2" val="1"/>
    			<Str sr="arg3" ve="3">%out</Str>
    			<Str sr="arg4" ve="3">%err</Str>
    			<Str sr="arg5" ve="3"/>
    		</Action>
    	</Task>
    </TaskerData>


TO CHECK the status of permissions - beside opening the app's UI of 'app info' & 'app info'->permission screens, you can run the following shell commands:
Code:
dumpsys package net.dinglisch.android.taskerm  | grep -i permission
 appops get net.dinglisch.android.taskerm

* small note on why 'pm grant' is NOT enough to allow certain permissions & why I also use 'appops' command
on Andr Q ( might also be true to previous Andr versions ) I noticed that in *some instances* the OS don't let me apply the app permissions ( by running the 'pm' commands ) in such a way that are also being reflected in an app's 'app info'->'permissions' screen.
i.e I run 'pm grant...' command, then run 'dumpsys' and can see that the permissions are being allowed, BUT when I check the app's UI 'app info' screen & 'app info'->'permission' screen - the permissions statuses ARE NOT being updated/changed.
I figured that these *some instances* are due to 'appops' denied permission/s.
So the RIGHT WAY to give an app a permission is to first give it 'allowed' access in 'appops', thus lifting the limitation I mentioned above... then run the 'pm' command, which then causes the apps permissions to not only being seen by 'dumpsys' but also reflect the current status in the app's UI ( i.e the app's 'app info' screen and 'app info'->'permission' screen ).
 

Attachments

  • Tasker_perm_Grant.tsk.xml
    4.7 KB · Views: 360
  • Tasker_perm_Revoke.tsk.xml
    2.7 KB · Views: 135
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 3
    Hi all,

    Just wanted to share two tasks that grant/revoke TASKER (i.e packagename 'net.dinglisch.android.taskerm' ) ALL permissions, including 'advanced' permissions like 'Display over other apps' & 'Modify system settings'.

    The only 'advanced' perm that the tasks don't include is the 'Install unknown apps' perm.
    Not that technically it can't be included, I chose not to, because of Andr Q: apps that are being allowed to use this permission behave weird sometimes ( storage access is changed & limit somehow ) - due to some integral protection included in Andr Q OS.
    Also, the tasks DO NOT deal with "Special" permissions like 'device admin' / 'notification access' etc since it either hard or IMPOSSIBLE to do with root only permission w/o 3rd party tools, like in the case of 'device admin'.

    IMPORTANT NOTE: YOU MUST HAVE ROOT & MUST ALLOW TASKER ROOT ACCESS !
    THE TASKS DON'T WORK OTHERWISE


    • Tasker_perm_Grant
      Code:
      <TaskerData sr="" dvi="1" tv="5.9.beta.4">
      	<Task sr="task143">
      		<cdate>1573298679964</cdate>
      		<edate>1573312849484</edate>
      		<id>143</id>
      		<nme>Tasker_perm_Grant</nme>
      		<pri>100</pri>
      		<Action sr="act0" ve="7">
      			<code>123</code>
      			<se>false</se>
      			<Str sr="arg0" ve="3">appops set net.dinglisch.android.taskerm LEGACY_STORAGE allow
      appops set net.dinglisch.android.taskerm COARSE_LOCATION allow
      appops set net.dinglisch.android.taskerm VIBRATE allow
      appops set net.dinglisch.android.taskerm READ_CONTACTS allow
      appops set net.dinglisch.android.taskerm WRITE_CONTACTS allow
      appops set net.dinglisch.android.taskerm READ_CALL_LOG allow
      appops set net.dinglisch.android.taskerm WRITE_CALL_LOG allow
      appops set net.dinglisch.android.taskerm READ_CALENDAR allow
      appops set net.dinglisch.android.taskerm WRITE_CALENDAR allow
      appops set net.dinglisch.android.taskerm CALL_PHONE allow
      appops set net.dinglisch.android.taskerm READ_SMS allow
      appops set net.dinglisch.android.taskerm RECEIVE_SMS allow
      appops set net.dinglisch.android.taskerm SEND_SMS allow
      appops set net.dinglisch.android.taskerm WRITE_SETTINGS allow
      appops set net.dinglisch.android.taskerm SYSTEM_ALERT_WINDOW allow
      appops set net.dinglisch.android.taskerm CAMERA allow
      appops set net.dinglisch.android.taskerm RECORD_AUDIO allow
      appops set net.dinglisch.android.taskerm READ_CLIPBOARD allow
      appops set net.dinglisch.android.taskerm WRITE_CLIPBOARD allow
      appops set net.dinglisch.android.taskerm WAKE_LOCK allow
      appops set net.dinglisch.android.taskerm GET_USAGE_STATS allow
      appops set net.dinglisch.android.taskerm TOAST_WINDOW allow
      appops set net.dinglisch.android.taskerm READ_PHONE_STATE allow
      appops set net.dinglisch.android.taskerm PROCESS_OUTGOING_CALLS allow
      appops set net.dinglisch.android.taskerm BODY_SENSORS allow
      appops set net.dinglisch.android.taskerm READ_EXTERNAL_STORAGE allow
      appops set net.dinglisch.android.taskerm WRITE_EXTERNAL_STORAGE allow
      appops set net.dinglisch.android.taskerm RUN_IN_BACKGROUND allow
      appops set net.dinglisch.android.taskerm ANSWER_PHONE_CALLS allow
      appops set net.dinglisch.android.taskerm BIND_ACCESSIBILITY_SERVICE allow
      appops set net.dinglisch.android.taskerm START_FOREGROUND allow
      appops set net.dinglisch.android.taskerm READ_MEDIA_IMAGES allow
      appops set net.dinglisch.android.taskerm ACCESS_ACCESSIBILITY allow
      appops set net.dinglisch.android.taskerm READ_DEVICE_IDENTIFIERS allow</Str>
      			<Int sr="arg1" val="0"/>
      			<Int sr="arg2" val="1"/>
      			<Str sr="arg3" ve="3">%out</Str>
      			<Str sr="arg4" ve="3">%err</Str>
      			<Str sr="arg5" ve="3"/>
      		</Action>
      		<Action sr="act1" ve="7">
      			<code>123</code>
      			<se>false</se>
      			<Str sr="arg0" ve="3">pm grant net.dinglisch.android.taskerm android.permission.READ_SMS
      pm grant net.dinglisch.android.taskerm android.permission.READ_CALENDAR
      pm grant net.dinglisch.android.taskerm android.permission.READ_CALL_LOG
      pm grant net.dinglisch.android.taskerm android.permission.ACCESS_FINE_LOCATION
      pm grant net.dinglisch.android.taskerm android.permission.ANSWER_PHONE_CALLS
      pm grant net.dinglisch.android.taskerm android.permission.BODY_SENSORS
      pm grant net.dinglisch.android.taskerm android.permission.RECEIVE_SMS
      pm grant net.dinglisch.android.taskerm android.permission.READ_EXTERNAL_STORAGE
      pm grant net.dinglisch.android.taskerm android.permission.ACCESS_COARSE_LOCATION
      pm grant net.dinglisch.android.taskerm android.permission.READ_PHONE_STATE
      pm grant net.dinglisch.android.taskerm android.permission.SEND_SMS
      pm grant net.dinglisch.android.taskerm android.permission.CALL_PHONE
      pm grant net.dinglisch.android.taskerm android.permission.WRITE_CONTACTS
      pm grant net.dinglisch.android.taskerm android.permission.CAMERA
      pm grant net.dinglisch.android.taskerm android.permission.WRITE_CALENDAR
      pm grant net.dinglisch.android.taskerm android.permission.WRITE_CALL_LOG
      pm grant net.dinglisch.android.taskerm android.permission.PROCESS_OUTGOING_CALLS
      pm grant net.dinglisch.android.taskerm android.permission.WRITE_EXTERNAL_STORAGE
      pm grant net.dinglisch.android.taskerm android.permission.RECORD_AUDIO
      pm grant net.dinglisch.android.taskerm android.permission.READ_CONTACTS
      pm grant net.dinglisch.android.taskerm android.permission.ACCESS_BACKGROUND_LOCATION</Str>
      			<Int sr="arg1" val="0"/>
      			<Int sr="arg2" val="1"/>
      			<Str sr="arg3" ve="3">%out</Str>
      			<Str sr="arg4" ve="3">%err</Str>
      			<Str sr="arg5" ve="3"/>
      		</Action>
      		<Action sr="act2" ve="7">
      			<code>123</code>
      			<Str sr="arg0" ve="3">pm grant net.dinglisch.android.taskerm android.permission.SYSTEM_ALERT_WINDOW
      pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS</Str>
      			<Int sr="arg1" val="0"/>
      			<Int sr="arg2" val="1"/>
      			<Str sr="arg3" ve="3">%out</Str>
      			<Str sr="arg4" ve="3">%err</Str>
      			<Str sr="arg5" ve="3"/>
      		</Action>
      	</Task>
      </TaskerData>
      [/hide]
      [*] Tasker_perm_Revoke
      Code:
      <TaskerData sr="" dvi="1" tv="5.9.beta.4">
      	<Task sr="task142">
      		<cdate>1573298679964</cdate>
      		<edate>1573312802971</edate>
      		<id>142</id>
      		<nme>Tasker_perm_Revoke</nme>
      		<pri>100</pri>
      		<Action sr="act0" ve="7">
      			<code>123</code>
      			<Str sr="arg0" ve="3">appops reset net.dinglisch.android.taskerm</Str>
      			<Int sr="arg1" val="0"/>
      			<Int sr="arg2" val="1"/>
      			<Str sr="arg3" ve="3">%out</Str>
      			<Str sr="arg4" ve="3">%err</Str>
      			<Str sr="arg5" ve="3"/>
      		</Action>
      		<Action sr="act1" ve="7">
      			<code>123</code>
      			<Str sr="arg0" ve="3">pm revoke net.dinglisch.android.taskerm android.permission.READ_SMS
      pm revoke net.dinglisch.android.taskerm android.permission.READ_CALENDAR
      pm revoke net.dinglisch.android.taskerm android.permission.READ_CALL_LOG
      pm revoke net.dinglisch.android.taskerm android.permission.ACCESS_FINE_LOCATION
      pm revoke net.dinglisch.android.taskerm android.permission.ANSWER_PHONE_CALLS
      pm revoke net.dinglisch.android.taskerm android.permission.BODY_SENSORS
      pm revoke net.dinglisch.android.taskerm android.permission.RECEIVE_SMS
      pm revoke net.dinglisch.android.taskerm android.permission.READ_EXTERNAL_STORAGE
      pm revoke net.dinglisch.android.taskerm android.permission.ACCESS_COARSE_LOCATION
      pm revoke net.dinglisch.android.taskerm android.permission.READ_PHONE_STATE
      pm revoke net.dinglisch.android.taskerm android.permission.SEND_SMS
      pm revoke net.dinglisch.android.taskerm android.permission.CALL_PHONE
      pm revoke net.dinglisch.android.taskerm android.permission.WRITE_CONTACTS
      pm revoke net.dinglisch.android.taskerm android.permission.CAMERA
      pm revoke net.dinglisch.android.taskerm android.permission.WRITE_CALENDAR
      pm revoke net.dinglisch.android.taskerm android.permission.WRITE_CALL_LOG
      pm revoke net.dinglisch.android.taskerm android.permission.PROCESS_OUTGOING_CALLS
      pm revoke net.dinglisch.android.taskerm android.permission.WRITE_EXTERNAL_STORAGE
      pm revoke net.dinglisch.android.taskerm android.permission.RECORD_AUDIO
      pm revoke net.dinglisch.android.taskerm android.permission.READ_CONTACTS
      pm revoke net.dinglisch.android.taskerm android.permission.ACCESS_BACKGROUND_LOCATION</Str>
      			<Int sr="arg1" val="0"/>
      			<Int sr="arg2" val="1"/>
      			<Str sr="arg3" ve="3">%out</Str>
      			<Str sr="arg4" ve="3">%err</Str>
      			<Str sr="arg5" ve="3"/>
      		</Action>
      		<Action sr="act2" ve="7">
      			<code>123</code>
      			<Str sr="arg0" ve="3">pm revoke net.dinglisch.android.taskerm android.permission.SYSTEM_ALERT_WINDOW
      pm revoke net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS</Str>
      			<Int sr="arg1" val="0"/>
      			<Int sr="arg2" val="1"/>
      			<Str sr="arg3" ve="3">%out</Str>
      			<Str sr="arg4" ve="3">%err</Str>
      			<Str sr="arg5" ve="3"/>
      		</Action>
      	</Task>
      </TaskerData>


    TO CHECK the status of permissions - beside opening the app's UI of 'app info' & 'app info'->permission screens, you can run the following shell commands:
    Code:
    dumpsys package net.dinglisch.android.taskerm  | grep -i permission
     appops get net.dinglisch.android.taskerm

    * small note on why 'pm grant' is NOT enough to allow certain permissions & why I also use 'appops' command
    on Andr Q ( might also be true to previous Andr versions ) I noticed that in *some instances* the OS don't let me apply the app permissions ( by running the 'pm' commands ) in such a way that are also being reflected in an app's 'app info'->'permissions' screen.
    i.e I run 'pm grant...' command, then run 'dumpsys' and can see that the permissions are being allowed, BUT when I check the app's UI 'app info' screen & 'app info'->'permission' screen - the permissions statuses ARE NOT being updated/changed.
    I figured that these *some instances* are due to 'appops' denied permission/s.
    So the RIGHT WAY to give an app a permission is to first give it 'allowed' access in 'appops', thus lifting the limitation I mentioned above... then run the 'pm' command, which then causes the apps permissions to not only being seen by 'dumpsys' but also reflect the current status in the app's UI ( i.e the app's 'app info' screen and 'app info'->'permission' screen ).