{"id":3279,"date":"2013-09-27T18:53:57","date_gmt":"2013-09-27T13:23:57","guid":{"rendered":"http:\/\/live-42gears-site.pantheonsite.io\/blog\/?p=3279"},"modified":"2020-07-10T07:03:13","modified_gmt":"2020-07-10T07:03:13","slug":"android-shell-scripting-with-suremdm","status":"publish","type":"post","link":"https:\/\/www.42gears.com\/nl\/blog\/android-shell-scripting-with-suremdm\/","title":{"rendered":"Android Shell Scripting with SureMDM"},"content":{"rendered":"\n<p>SureMDM supports execution of both <strong>Android Shell Script Commands<\/strong> and <strong>Custom SureMDM Scripts<\/strong> using Runscripts job. Android Shell Commands are series of scripts that executes on device within its shell and Custom SureMDM Scripts are special scripts that are specifically created and supported only within SureMDM. Jobs including these scripts can be remotely pushed to the enrolled devices for execution.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" width=\"2006\" height=\"437\" src=\"https:\/\/www.42gears.com\/wp-content\/uploads\/2013\/09\/runscript-flow.png\" alt=\"runscript-flow\" class=\"wp-image-15208\" srcset=\"https:\/\/www.42gears.com\/wp-content\/uploads\/2013\/09\/runscript-flow.png 2006w, https:\/\/www.42gears.com\/wp-content\/uploads\/2013\/09\/runscript-flow-300x65.png 300w, https:\/\/www.42gears.com\/wp-content\/uploads\/2013\/09\/runscript-flow-1024x223.png 1024w\" sizes=\"(max-width: 2006px) 100vw, 2006px\" \/><\/figure>\n\n\n\n<p><a href=\"https:\/\/www.42gears.com\/wp-content\/uploads\/2013\/09\/runscript-flow.png\" rel=\"attachment wp-att-15208\"><br><\/a><\/p>\n\n\n\n<p><strong>List of&nbsp;Android Shell Scripts:<\/strong><\/p>\n\n\n\n<p><strong>1. List all files in sdcard<\/strong><\/p>\n\n\n\n<div>\n<pre>ls \/sdcard<\/pre>\n<\/div>\n\n\n\n<p><strong>2. Create sample folder inside sdcard<\/strong><\/p>\n\n\n\n<div>\n<pre>mkdir \/sdcard\/sample<\/pre>\n<\/div>\n\n\n\n<p><strong>3. Change current directory<\/strong><\/p>\n\n\n\n<div>\n<pre>cd \/sdcard\/sample<\/pre>\n<\/div>\n\n\n\n<p><strong>4. Rename sample.txt to sample1.txt<\/strong><\/p>\n\n\n\n<div>\n<pre>mv \/sdcard\/sample.txt \n\/sdcard\/sample1.txt<\/pre>\n<\/div>\n\n\n\n<p><strong>5. Moves folder test to test1<\/strong><\/p>\n\n\n\n<div>\n<pre>mv \/sdcard\/test\n\/sdcard\/test1<\/pre>\n<\/div>\n\n\n\n<p><strong>6. Delete all files inside test folder with extensions<\/strong><\/p>\n\n\n\n<div>\n<pre>rm -r \/mnt\/sdcard\/test\/sample.txt<\/pre>\n<\/div>\n\n\n\n<p><strong>7. Delete all files(even without extensions) and folders inside test folder<\/strong><\/p>\n\n\n\n<div>\n<pre>rm -r \/mnt\/sdcard\/test\/*<\/pre>\n<\/div>\n\n\n\n<p><strong>8. Delete file with name test.txt inside sdcard<\/strong><\/p>\n\n\n\n<div>\n<pre>rm -r \/sdcard\/test.txt<\/pre>\n<\/div>\n\n\n\n<p><strong>9. Launch specific activity<\/strong><\/p>\n\n\n\n<div>\n<pre>am start -n com.android.settings.Settings<\/pre>\n<\/div>\n\n\n\n<p><strong>10. Launch settings<\/strong><\/p>\n\n\n\n<div>\n<pre>am start -a android.intent.action.MAIN -n com.android.settings\/.Settings<\/pre>\n<\/div>\n\n\n\n<p><strong>11. Launch Default HomeScreen<\/strong><\/p>\n\n\n\n<div>\n<pre>am start -c android.intent.category.HOME -a android.intent.action.MAIN<\/pre>\n<\/div>\n\n\n\n<p><strong>12. Open google.com in default browser<\/strong><\/p>\n\n\n\n<div>\n<pre>am start -a android.intent.action.VIEW http:\/\/www.google.com<\/pre>\n<\/div>\n\n\n\n<p><strong>13. Open dialer with phone number<\/strong><\/p>\n\n\n\n<div>\n<pre>am start -a android.intent.action.CALL tel:1234567890<\/pre>\n<\/div>\n\n\n\n<p><strong>14. Make call to 123<\/strong><\/p>\n\n\n\n<div>\n<pre>am start -a android.intent.action.CALL tel:123<\/pre>\n<\/div>\n\n\n\n<p><strong>15. Broadcast fake battery low message<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a android.intent.action.BATTERY_LOW<\/pre>\n<\/div>\n\n\n\n<p><strong>16. Launch SureFox<\/strong><\/p>\n\n\n\n<div>\n<pre>am start -a android.intent.action.MAIN -n com.gears42.surefox\/.SurefoxBrowser<\/pre>\n<\/div>\n\n\n\n<p><strong>17. Launch SureLock<\/strong><\/p>\n\n\n\n<div>\n<pre>am start -a android.intent.action.MAIN -n com.gears42.surelock\/.ClearDefaultsActivity<\/pre>\n<\/div>\n\n\n\n<p><strong>18. Launch Nix<\/strong><\/p>\n\n\n\n<div>\n<pre>am start -n com.nix\/.MainFrm<\/pre>\n<\/div>\n\n\n\n<p><strong>19. Exit SureLock<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.gears42.surelock.COMMUNICATOR -e password Password -e command exit_surelock com.gears42.surelock<\/pre>\n<\/div>\n\n\n\n<p><strong>20. Exit SureFox<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.gears42.surefox.COMMUNICATOR -e password Password -e command exit_surefox com.gears42.surefox<\/pre>\n<\/div>\n\n\n\n<p><strong>21. Apply Nix Settings<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command apply_settings -e settings_path \/sdcard\/NixSettings.xml com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>22. Apply Nix Settings<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command apply_settings -e %input~text% -e password %input~text% com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>23. Change Polling mechanism to periodic polling<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command change_nix_settings -e setPollingType 1 -e setPeriodicPollingIntervalInMins %input~text% -e password %input~text% com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>24. Change Polling mechanism to Normal polling<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command change_nix_settings -e setPollingType 0 -e password Password com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>25. Change Polling mechanism to Periodic ,Device Name ,Security Type to Http.<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command change_nix_settings -e setDeviceName %input~text% -e setPollingType 1 -e setPeriodicPollingIntervalInMins %input~text% -e useSecureProtocol %input~text% -e password %input~text% com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>26. To Stop Nix Service<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command change_nix_settings -e startNix false -e password Password com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>27. Start Nix Service<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command change_nix_settings -e startNix true -e password Password com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>28. Script to change Nix Settings Password<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast --user 0 -a com.nix.COMMUNICATOR -e command change_nix_settings -e startNix true -e password Password com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>29. Script with Password Authentication<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command change_nix_settings -e setPollingType 0 -e password Password com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>30. Get Device Name<\/strong><\/p>\n\n\n\n<div>\n<p>am broadcast -a com.nix.COMMUNICATOR -e command get_device_name com.nix<\/p>\n<\/div>\n\n\n\n<p><strong>31. Send Messages<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command send_message -e account_id test@test.com -e subject Test Subject -e message Test Message <strong>com.nix<\/strong><\/pre>\n<\/div>\n\n\n\n<p><strong>32. Register Location<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command register_location -e locations 24,24\\n60,60\\n...80,80\/\/ 24,24,2016-08-24 02:05:30 - latitude,longitude,yyyy-MM-dd HH:mm:ss com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>33. Start Nix<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command change_nix_settings -e startNix true com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>34. Set Device Name<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command change_nix_settings -e setDeviceName test com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>35. Set Polling Type<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command change_nix_settings -e setPollingType %input~text% com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>36. Set Periodic Polling Interval in Minutes<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command change_nix_settings -e setPeriodicPollingIntervalInMins 1234 com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>37. Use Secure Protocol<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command change_nix_settings -e useSecureProtocol TRUE com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>39. Open SureLock settings from MDM Without having to enter password<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.gears42.surelock.COMMUNICATOR -n com.gears42.surelock\/com.gears42.surelock.service.SureLockCommunicator -e \"command\" \"open_admin_settings\" -e \"password\" Password com.gears42.surelock<\/pre>\n<\/div>\n\n\n\n<p><strong>40. Clear App Data<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command clearAppData -e packages package1,package2,...packageN com.nix<\/pre>\n<p><em><strong>Note<\/strong>: Available for devices with Signed Enterprise Agent.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>41. Activate SureLock license with preferred activation ID as IMEI through SureMDM<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.gears42.surelock.COMMUNICATOR -n com.gears42.surelock\/com.gears42.surelock.service.SureLockCommunicator -e \"command\" \"activate\" -e \"password\" \"0000\" -e activation_code\" \"Enter Code Here\" -e \"prefered_activation_id\" \"Enter Id Here\" com.gears42.surelock<\/pre>\n<\/div>\n\n\n\n<p><strong>42. Activate SureFox license with preferred activation ID as IMEI through SureMDM<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.gears42.surefox.COMMUNICATOR -e \"command\" \"activate\" -e \"password\" \"0000\" -e \"activation_code\" \"Enter Code Here\" -e \"prefered_activation_id\" \"Enter Id Here\" com.gears42.surefox<\/pre>\n<\/div>\n\n\n\n<p><strong>Note<\/strong>: Prefered_activation_id = 0 = IMEI \/ 2 = WIFIMAC \/ 3 = BLUETOOTHMAC \/ 4 = GUID<\/p>\n\n\n\n<p><strong>43. Forget the Network<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.gears42.system.eaplugin.COMMUNICATOR -e ssid \"WifiNetwork SSID\" -e command forget_wifi_network -f 0x00000020 com.gears42.system.eaplugin<\/pre>\n<\/div>\n\n\n\n<p><strong>44. Reboot device<\/strong><\/p>\n\n\n\n<div>\n<pre>su -c reboot<\/pre>\n<\/div>\n\n\n\n<p><strong>45. Install test application<\/strong><\/p>\n\n\n\n<div>\n<pre>su -c pm install \/sdcard\/test.apk<\/pre>\n<\/div>\n\n\n\n<p><strong>46. Uninstall application<\/strong><\/p>\n\n\n\n<div>\n<pre>su -c pm uninstall com.example.MyApp<\/pre>\n<\/div>\n\n\n\n<p><strong>47. Clear App Data<\/strong><\/p>\n\n\n\n<div>\n<pre>am broadcast -a com.nix.COMMUNICATOR -e command clearAppData -e packages package1,package2,...packageN com.nix<\/pre>\n<\/div>\n\n\n\n<p><strong>48.&nbsp;Force prompt for activation of Samsung KNOX settings of SureLock<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">am broadcast -a com.gears42.surelock.COMMUNICATOR -n com.gears42.surelock\/com.gears42.surelock.service.SureLockCommunicator -e password 0000 -e command force_knox com.gears42.surelock<\/pre>\n\n\n\n<p class=\"m_9023358102514892167gmail-p1\"><strong>49. Export SureLock analytics data to File\/SureMDM<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">am broadcast -a com.gears42.surelock.COMMUNICATOR -n com.gears42.surelock\/com.gears42.surelock.service.SureLockCommunicator -e password 0000 -e command export_analytics com.gears42.surelock<\/pre>\n\n\n\n<p class=\"m_9023358102514892167gmail-p1\"><strong>50. Export SureLock Multi User analytics data to File\/SureMDM<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">am broadcast -a com.gears42.surelock.COMMUNICATOR -n com.gears42.surelock\/com.gears42.surelock.service.SureLockCommunicator -e password 0000 -e command export_analytics export_multi_user_analytics com.gears42.surelock<\/pre>\n\n\n\n<p class=\"m_9023358102514892167gmail-p1\"><strong>51. Force prompt for enabling modify system permission of SureLock (for marshmallow and above devices)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">am broadcast -a com.gears42.surelock.COMMUNICATOR -n com.gears42.surelock\/com.gears42.surelock.service.SureLockCommunicator -e password 0000 -e command force_modify_system com.gears42.surelock<\/pre>\n\n\n\n<p>List of&nbsp;Custom SureMDM&nbsp;Scripts:<\/p>\n\n\n\n<p><strong>1. Change time zone<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nSetTimeZone(Continent\/country)<\/pre>\n<\/div>\n\n\n\n<p><strong>2. Turn ON GPS <\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nTurnOnGPS(true)<\/pre>\n<\/div>\n\n\n\n<p> *<em><strong>Note: <\/strong>It prompts the user to enable GPS on the devices that are non-Knox\/Platform signed\/Rooted.<\/em> <\/p>\n\n\n\n<p><strong>3. Turn ON GPS Status <\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">!#suremdm \nTurnOnGPS(true,N)&nbsp;&nbsp; <\/pre>\n\n\n\n<p>N value can be:<\/p>\n<Ui>\n<li>0 = LOCATION_MODE_OFF <\/li> \n<li>1 = LOCATION_MODE_SENSORS_ONLY <\/li>   \n<li>2 = LOCATION_MODE_BATTERY_SAVING<\/li>   \n<li>3 = LOCATION_MODE_HIGH_ACCURACY<\/li><\/ui>\n\n\n\n<p>*<em><strong>Note: <\/strong>It prompts the user to enable GPS on the devices that are non-Knox\/Platform signed\/Rooted.<\/em><\/p>\n\n\n\n<p><strong>4. Change Device&#8217;s Screen Brightness<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nSetScreenBrightness(0, 255)<\/pre>\n<\/div>\n\n\n\n<p><strong>5. Enable Logger<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nenableLogger<\/pre>\n<\/div>\n\n\n\n<p><strong>6. Disable Logger<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\ndisableLogger<\/pre>\n<\/div>\n\n\n\n<p><strong>7. Run Script in Sync<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm \nRunScriptsInSync(TRUE)<\/pre>\n<\/div>\n\n\n\n<p><strong>8. Scale Down Clicks<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nRunScriptsInSync(TRUE)<\/pre>\n<\/div>\n\n\n\n<p><strong>9. Kill Process<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nkillProcess(enter pacakge1,pacakge2...pacakgen)<\/pre>\n<\/div>\n\n\n\n<p><strong>10. Sleep<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nsleep(100)<\/pre>\n<\/div>\n\n\n\n<p><strong>11. Keep CPU On<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nKeepCPUOn(TRUE)<\/pre>\n<\/div>\n\n\n\n<p><strong>12. Copy text to clipboard<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\ncopyToClipboard(text)<\/pre>\n<\/div>\n\n\n\n<p><strong>13. RunScript to clear clipboard<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nclearClipboard()<\/pre>\n<\/div>\n\n\n\n<p><strong>14. Make device screen on when remote screen is running<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nRemoteScreenDeviceSleep(FALSE)<\/pre>\n<\/div>\n\n\n\n<p><strong>15. Launch app by package name or app name<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nlaunch(package\/appName)<\/pre>\n<\/div>\n\n\n\n<p><strong>16. Ignore Nix app from Battery optimization<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nforceIgnoreBatteryOptimizaion(TRUE)<\/pre>\n<\/div>\n\n\n\n<p><strong>17. Activate admin of SureMDM Nix Samsung Verison on Device:<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nactivateadmin(com.gears42.nixsam)<\/pre>\n<\/div>\n\n\n\n<p><strong>18. Ignore Nix app from Battery optimization with true\/false<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nforceIgnoreBatteryOptimization(true\/false)<\/pre>\n<\/div>\n\n\n\n<p><strong>19. Change Nix Service Restart Time<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nNixServiceRestartTime(TimeInMinutes)<\/pre>\n<\/div>\n\n\n\n<p><strong>20. Wake the screen up and even to turn the screen off<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nscreen(ON\/OFF)<\/pre>\n<\/div>\n\n\n\n<p><strong>21. Turn bluetooth On\/Off on the device<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nBluetooth(on\\off)<\/pre>\n<\/div>\n\n\n\n<p><strong>22. Wrong security type<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nsetMinimumWifiSecurity(WPA)<\/pre>\n<\/div>\n\n\n\n<p><strong>23. Connect to open network<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nsetMinimumWifiSecurity(open)<\/pre>\n<\/div>\n\n\n\n<p><strong>24. Connect to WPA network<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nsetMinimumWifiSecurity(wpa)<\/pre>\n<\/div>\n\n\n\n<p><strong>25. Create website shortcut and launch through Firefox<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nCreateAppShortcut(org.mozilla.firefox,org.mozilla.firefox.App,www.42gears.com,42Gears,\/storage\/emulated\/0\/42Gears.jpg)<\/pre>\n<\/div>\n\n\n\n<p><strong>26. Disable Close button<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nDisableCloseButton(true)<\/pre>\n<\/div>\n\n\n\n<p><strong>27. Create a short cut of a web page in Home Screen from SureMDM<\/strong><\/p>\n\n\n\n<div>\n<pre> !#suremdm\nCreateAppShortcut(PackageName,ClassName,Url,Title,IconPath)<\/pre>\n<\/div>\n\n\n\n<p><strong>28. Delete SMS<\/strong><\/p>\n\n\n\n<div>\n<pre> !#suremdm\ndelete(sms)<\/pre>\n<\/div>\n\n\n\n<p><strong>29. Unlock an application:<\/strong><\/p>\n\n\n\n<div>\n<pre> !#suremdm\nunlockApplication(AppPackageName,AppPackagename,...)<\/pre>\n<\/div>\n\n\n\n<p><strong>30. Remove all users from device for Samsung devices<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nremoveAllUsersFromDevice<\/pre>\n<\/div>\n\n\n\n<p><strong>31. Apply a restriction from creating users<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nallowUserCreation(false\/true)<\/pre>\n<\/div>\n\n\n\n<p><strong>32. Block notifications on lock screen Except Nix<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nblockLockScreenNotifications(true)<\/pre>\n<p><em>*<strong>Note<\/strong>: This feature Requires Knox Standard SDK version 5.0.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>33. Show the notification on Lock Screen<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nblockLockScreenNotifications(false)<\/pre>\n<p><em>*<strong>Note<\/strong>: This feature Requires Knox Standard SDK version 5.0.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>34. Control data saver android settings of the device<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nallowDataSaving(true\/false)<\/pre>\n<\/div>\n\n\n\n<p><strong>35. Remove website shortcuts on device through SureMDM<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nDeleteAppShortcut(PackageName,ClassName,URL,Name)<\/pre>\n<\/div>\n\n\n\n<p><strong>36. Stop SureMDM Nix as a Foreground Service<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nstopNixFromForeGround<\/pre>\n<\/div>\n\n\n\n<p><strong>37. Enable analytics of SureLock\/SureVideo\/SureFox<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nEnableAnalytics(com.gears42.surelock,043e370a)<\/pre>\n<\/div>\n\n\n\n<p><strong>38. Control power saver mode android settings of the device<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\ndisablePowerSavingMode(true\/false)<\/pre>\n<\/div>\n\n\n\n<p><strong>39. Disable Multi Window View on Samsung Knox devices<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nallowMultiWindowMode(false)<\/pre>\n<\/div>\n\n\n\n<p><strong>40. Enable Multi Window View on Samsung Knox devices<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nallowMultiWindowMode(true)<\/pre>\n<\/div>\n\n\n\n<p><strong>41. Enable\/Disable battery optimization for any third party applications<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\naddAppToBatteryOptimization (packageName1,\u2026,packageNameN)<\/pre>\n<\/div>\n\n\n\n<p><strong>42. Block uninstallation of apps in Dedicated Devices (formerly called COSU or Corporate-Owned Single-Use)<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nblockAppUninstallation(packageid)<\/pre>\n<\/div>\n\n\n\n<p><strong>43. Unblock uninstallation of apps in Dedicated Devices&nbsp;<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nunblockAppUninstallation(packageid)<\/pre>\n<\/div>\n\n\n\n<p><strong>44. Change Nix Service Restart Time<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nNixServiceRestartTime(TimeInMinutes)<\/pre>\n<\/div>\n\n\n\n<p><strong>45. Delete Google account<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nremoveAccountFromDevice(account type)<\/pre>\n<\/div>\n\n\n\n<p><strong>46. Remove Gmail account from Email App<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nremoveAccountFromDevice(package name for Email app)<\/pre>\n<\/div>\n\n\n\n<p><strong>47. Wake up the screen<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nscreen(ON\/OFF)<\/pre>\n<\/div>\n\n\n\n<p><strong>48. Turn bluetooth on and off<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nBluetooth(on\\off)<\/pre>\n<\/div>\n\n\n\n<p><strong>49. Set System name script (the name you see in the Blutooth setting \/ About)<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nSetBTDeviceName(name)<\/pre>\n<\/div>\n\n\n\n<p><strong>50. Launch Package RunScript (by Package and App Name)<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\n launch(package\/appName)<\/pre>\n<\/div>\n\n\n\n<p><strong>51. Run scripts when nix services are disabled<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdmoffline (script)<\/pre>\n<\/div>\n\n\n\n<p><strong>52. Prefer Mobile Data<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\n preferMobileData(true\/false)<\/pre>\n<p><em>*<strong>Note<\/strong>: Available for Android devices with Android Lollipop and above.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>53. Delete file from external SD Card for older than specified days<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\n deleteFromSDcard(path,days)<\/pre>\n<p><em>*<strong>Note<\/strong>:&nbsp;Available for Android devices with Android Lollipop and above.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>54. Block uninstallation of application in Dedicated Devices<\/strong><\/p>\n\n\n\n<div>\n<pre> !#suremdm\n blockAppUninstallation(packageid)<\/pre>\n<p><em>*<strong>Note<\/strong>:&nbsp;Available for Android devices with Android Lollipop and above.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>55. Unblock uninstallation of application in Dedicated Devices<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\n unblockAppUninstallation(packageid)<\/pre>\n<p><em>*<strong>Note<\/strong>:&nbsp;Available for Android devices with Android Lollipop and above.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>56. Use Lollipop screen capture<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\n LollipopScreenCapture(true)<\/pre>\n<p><em>*<strong>Note<\/strong>:&nbsp;Available for Android devices with Android Lollipop and above.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>57. Change the language<\/strong><\/p>\n\n\n\n<div>\n<pre> !#suremdm\n changeDeviceLanguage(fr)<\/pre>\n<p><strong>57. Reboot device<\/strong><\/p>\n<\/div>\n\n\n\n<div>\n<pre>!#suremdm\nreboot<\/pre>\n<p><em>*<strong>Note<\/strong>:&nbsp;Available for devices with Signed Enterprise Agent.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>58. Install test application<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\ninstall(\/sdcard\/file name)<\/pre>\n<p><em>*<strong>Note<\/strong>:&nbsp;Available for devices with Signed Enterprise Agent.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>59. Uninstall application<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nuninstall(package name)<\/pre>\n<p><em>*<strong>Note<\/strong>:&nbsp;Available for devices with Signed Enterprise Agent.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>60. Turn GPS ON\/OFF<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm TurnOnGPS(FALSE)<\/pre>\n<p><em>*<strong>Note<\/strong>:&nbsp;Available for devices with Signed Enterprise Agent.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>61. Disable Third Party App Administrator<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\ndeactivateadmin(com.xyz)<\/pre>\n<p><em>*<strong>Note<\/strong>:&nbsp;Available for devices with Signed Enterprise Agent.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>62. Create APN Settings<\/strong><\/p>\n\n\n\n<div>\n<pre>!!#suremdm\ncreateApnSettings\n(apnname,user,password,server,mmsc,mmsproxy,mmsport,mcc,mnc,type,name, setdefaultValue)<\/pre>\n<p><em>*<strong>Note<\/strong>:&nbsp;Available for devices with Signed Enterprise Agent.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>63. Set Time ,Date and Time Zone<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nSetDateTime\n(DD-MM-YYYY,00:00:00AM\/PM,Continent\/State)<\/pre>\n<p><em>*<strong>Note<\/strong>:&nbsp;Available for devices with Signed Enterprise Agent.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>64. Set screen off timeout<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nscreenofftimeout(60)<\/pre>\n<p><em>*<strong>Note<\/strong>:&nbsp;Available for devices with Signed Enterprise Agent.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>65. Delete APN Settings<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\ndeleteApnSettings(APN_name)<\/pre>\n<p><em>*<strong>Note<\/strong>:&nbsp;Available for devices with Signed Enterprise Agent.<\/em><\/p>\n<\/div>\n\n\n\n<p><strong>66. Change Bluetooth name of device<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nSetBTDeviceName(name)<\/pre>\n<\/div>\n\n\n\n<p><strong>67. Changed device bluetooth name to serial number in device grid<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nSetBTDeviceName(1234567890)<\/pre>\n<\/div>\n\n\n\n<p><strong>68. Allow and deny runtime permissions <\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nallowRuntimePermissions(true\/false,packagename)<\/pre>\n<\/div>\n\n\n\n<p><strong>69. Change the Date format <\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nputSystemSettings(date_format,dd\/MM\/yyyy)<\/pre>\n<\/div>\n\n\n\n<p><strong>70. Disable Admin of Any App if device is signed:<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\ndeactivateadmin(com.xyz)<\/pre>\n<\/div>\n\n\n\n<p><strong>71. Turn GPS ON\/OFF<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nTurnOnGPS(FALSE)<\/pre>\n<\/div>\n\n\n\n<p><strong>72. Enable app by package name<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nenable(pkg1,pkg2..pkN)<\/pre>\n<\/div>\n\n\n\n<p><strong>73. Disable app by package name To disable app by package name<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\ndisable(pkg1,pkg2..pkN)<\/pre>\n<\/div>\n\n\n\n<p><strong>74. Force stop an app<\/strong><\/p>\n\n\n\n<div>\n<pre>!#suremdm\nStopApp(package1,package2,..,packageN)<\/pre>\n<p><strong>75. Enable SureLock Multi User Analytics settings from SureMDM Console<\/strong><\/p>\n<pre>!#suremdm\nEnableMultiUserAnalytics(com.<wbr>gears42.surelock,&lt;secretkey&gt;)<\/pre>\n<\/div>\n\n\n\n<center><a class=\"blog_button\" href=\"https:\/\/www.42gears.com\/products\/suremdm\/signup\/\">Signup for SureMDM Free Trial<\/a><\/center>\n","protected":false},"excerpt":{"rendered":"<p>SureMDM supports execution of both Android Shell Script Commands and Custom SureMDM Scripts using Runscripts job. Android Shell Commands are series of scripts that executes on device within its shell and Custom SureMDM Scripts are special scripts that are specifically created and supported only within SureMDM. Jobs including these scripts can be remotely pushed to&hellip;<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9,26],"tags":[],"class_list":["post-3279","post","type-post","status-publish","format-standard","hentry","category-android","category-suremdm"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Android Shell Scripting with SureMDM - 42Gears Mobility Systems<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android Shell Scripting with SureMDM\" \/>\n<meta property=\"og:description\" content=\"SureMDM supports execution of both Android Shell Script Commands and Custom SureMDM Scripts using Runscripts job. Android Shell Commands are series of scripts that executes on device within its shell and Custom SureMDM Scripts are special scripts that are specifically created and supported only within SureMDM. Jobs including these scripts can be remotely pushed to&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/\" \/>\n<meta property=\"og:site_name\" content=\"42Gears Mobility Systems\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/42gears\" \/>\n<meta property=\"article:published_time\" content=\"2013-09-27T13:23:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-10T07:03:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.42gears.com\/wp-content\/uploads\/2013\/09\/runscript-flow.png\" \/>\n<meta name=\"author\" content=\"42Gears Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@42Gears\" \/>\n<meta name=\"twitter:site\" content=\"@42Gears\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"42Gears Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/\"},\"author\":{\"name\":\"42Gears Team\",\"@id\":\"https:\/\/www.42gears.com\/#\/schema\/person\/28a14f2c32de4a7903ac672579a88a2d\"},\"headline\":\"Android Shell Scripting with SureMDM\",\"datePublished\":\"2013-09-27T13:23:57+00:00\",\"dateModified\":\"2020-07-10T07:03:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/\"},\"wordCount\":1000,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.42gears.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.42gears.com\/wp-content\/uploads\/2013\/09\/runscript-flow.png\",\"articleSection\":[\"Android\",\"SureMDM\"],\"inLanguage\":\"nl\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/\",\"url\":\"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/\",\"name\":\"Android Shell Scripting with SureMDM - 42Gears Mobility Systems\",\"isPartOf\":{\"@id\":\"https:\/\/www.42gears.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.42gears.com\/wp-content\/uploads\/2013\/09\/runscript-flow.png\",\"datePublished\":\"2013-09-27T13:23:57+00:00\",\"dateModified\":\"2020-07-10T07:03:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#breadcrumb\"},\"inLanguage\":\"nl\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl\",\"@id\":\"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#primaryimage\",\"url\":\"https:\/\/www.42gears.com\/wp-content\/uploads\/2013\/09\/runscript-flow.png\",\"contentUrl\":\"https:\/\/www.42gears.com\/wp-content\/uploads\/2013\/09\/runscript-flow.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.42gears.com\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android Shell Scripting with SureMDM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.42gears.com\/#website\",\"url\":\"https:\/\/www.42gears.com\/\",\"name\":\"42Gears Mobility Systems\",\"description\":\"Mobile Device Management (MDM), Mobile Security &amp; Mobile Device Lockdown\",\"publisher\":{\"@id\":\"https:\/\/www.42gears.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.42gears.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.42gears.com\/#organization\",\"name\":\"MDM - 42Gears\",\"url\":\"https:\/\/www.42gears.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl\",\"@id\":\"https:\/\/www.42gears.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.42gears.com\/wp-content\/uploads\/2018\/12\/Featured-Image-42Gears-logo.png\",\"contentUrl\":\"https:\/\/www.42gears.com\/wp-content\/uploads\/2018\/12\/Featured-Image-42Gears-logo.png\",\"width\":499,\"height\":330,\"caption\":\"MDM - 42Gears\"},\"image\":{\"@id\":\"https:\/\/www.42gears.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/42gears\",\"https:\/\/x.com\/42Gears\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.42gears.com\/#\/schema\/person\/28a14f2c32de4a7903ac672579a88a2d\",\"name\":\"42Gears Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl\",\"@id\":\"https:\/\/www.42gears.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/7d257fb658a429b8607872336eac3833a8314ca3ca67d72c90ceeddc7700c42e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/7d257fb658a429b8607872336eac3833a8314ca3ca67d72c90ceeddc7700c42e?s=96&d=mm&r=g\",\"caption\":\"42Gears Team\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Android Shell Scripting with SureMDM - 42Gears Mobility Systems","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/","og_locale":"nl_NL","og_type":"article","og_title":"Android Shell Scripting with SureMDM","og_description":"SureMDM supports execution of both Android Shell Script Commands and Custom SureMDM Scripts using Runscripts job. Android Shell Commands are series of scripts that executes on device within its shell and Custom SureMDM Scripts are special scripts that are specifically created and supported only within SureMDM. Jobs including these scripts can be remotely pushed to&hellip;","og_url":"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/","og_site_name":"42Gears Mobility Systems","article_publisher":"https:\/\/www.facebook.com\/42gears","article_published_time":"2013-09-27T13:23:57+00:00","article_modified_time":"2020-07-10T07:03:13+00:00","og_image":[{"url":"https:\/\/www.42gears.com\/wp-content\/uploads\/2013\/09\/runscript-flow.png","type":"","width":"","height":""}],"author":"42Gears Team","twitter_card":"summary_large_image","twitter_creator":"@42Gears","twitter_site":"@42Gears","twitter_misc":{"Written by":"42Gears Team","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#article","isPartOf":{"@id":"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/"},"author":{"name":"42Gears Team","@id":"https:\/\/www.42gears.com\/#\/schema\/person\/28a14f2c32de4a7903ac672579a88a2d"},"headline":"Android Shell Scripting with SureMDM","datePublished":"2013-09-27T13:23:57+00:00","dateModified":"2020-07-10T07:03:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/"},"wordCount":1000,"commentCount":0,"publisher":{"@id":"https:\/\/www.42gears.com\/#organization"},"image":{"@id":"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#primaryimage"},"thumbnailUrl":"https:\/\/www.42gears.com\/wp-content\/uploads\/2013\/09\/runscript-flow.png","articleSection":["Android","SureMDM"],"inLanguage":"nl","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/","url":"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/","name":"Android Shell Scripting with SureMDM - 42Gears Mobility Systems","isPartOf":{"@id":"https:\/\/www.42gears.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#primaryimage"},"image":{"@id":"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#primaryimage"},"thumbnailUrl":"https:\/\/www.42gears.com\/wp-content\/uploads\/2013\/09\/runscript-flow.png","datePublished":"2013-09-27T13:23:57+00:00","dateModified":"2020-07-10T07:03:13+00:00","breadcrumb":{"@id":"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#breadcrumb"},"inLanguage":"nl","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/"]}]},{"@type":"ImageObject","inLanguage":"nl","@id":"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#primaryimage","url":"https:\/\/www.42gears.com\/wp-content\/uploads\/2013\/09\/runscript-flow.png","contentUrl":"https:\/\/www.42gears.com\/wp-content\/uploads\/2013\/09\/runscript-flow.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.42gears.com\/fr\/blog\/android-shell-scripting-with-suremdm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.42gears.com\/nl\/"},{"@type":"ListItem","position":2,"name":"Android Shell Scripting with SureMDM"}]},{"@type":"WebSite","@id":"https:\/\/www.42gears.com\/#website","url":"https:\/\/www.42gears.com\/","name":"42Gears Mobility Systems","description":"Mobile Device Management (MDM), Mobile Security &amp; Mobile Device Lockdown","publisher":{"@id":"https:\/\/www.42gears.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.42gears.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl"},{"@type":"Organization","@id":"https:\/\/www.42gears.com\/#organization","name":"MDM - 42Gears","url":"https:\/\/www.42gears.com\/","logo":{"@type":"ImageObject","inLanguage":"nl","@id":"https:\/\/www.42gears.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.42gears.com\/wp-content\/uploads\/2018\/12\/Featured-Image-42Gears-logo.png","contentUrl":"https:\/\/www.42gears.com\/wp-content\/uploads\/2018\/12\/Featured-Image-42Gears-logo.png","width":499,"height":330,"caption":"MDM - 42Gears"},"image":{"@id":"https:\/\/www.42gears.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/42gears","https:\/\/x.com\/42Gears"]},{"@type":"Person","@id":"https:\/\/www.42gears.com\/#\/schema\/person\/28a14f2c32de4a7903ac672579a88a2d","name":"42Gears Team","image":{"@type":"ImageObject","inLanguage":"nl","@id":"https:\/\/www.42gears.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/7d257fb658a429b8607872336eac3833a8314ca3ca67d72c90ceeddc7700c42e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7d257fb658a429b8607872336eac3833a8314ca3ca67d72c90ceeddc7700c42e?s=96&d=mm&r=g","caption":"42Gears Team"}}]}},"author_meta":{"ID":"7","user_nicename":"42gears","user_email":"42gears@gmail.com","user_registered":"2015-07-15 04:55:37","display_name":"42Gears Team","first_name":"42Gears","last_name":"Team"},"_links":{"self":[{"href":"https:\/\/www.42gears.com\/nl\/wp-json\/wp\/v2\/posts\/3279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.42gears.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.42gears.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.42gears.com\/nl\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.42gears.com\/nl\/wp-json\/wp\/v2\/comments?post=3279"}],"version-history":[{"count":45,"href":"https:\/\/www.42gears.com\/nl\/wp-json\/wp\/v2\/posts\/3279\/revisions"}],"predecessor-version":[{"id":54612,"href":"https:\/\/www.42gears.com\/nl\/wp-json\/wp\/v2\/posts\/3279\/revisions\/54612"}],"wp:attachment":[{"href":"https:\/\/www.42gears.com\/nl\/wp-json\/wp\/v2\/media?parent=3279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.42gears.com\/nl\/wp-json\/wp\/v2\/categories?post=3279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.42gears.com\/nl\/wp-json\/wp\/v2\/tags?post=3279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}