Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

getting SecurityException while running my test script using appium

I'm facing Security Exception while executing my Appium scripts

Hi all, I'm new to appium and I'm in learning stage with appium tool. I created one script to start a basic test. I'm getting below updated error.

I Connected my device through USB debugging and device also listed out in adb. but when i executing it is throwing an error. below is the attached code and error logs.

DesiredCapabilities desire=new DesiredCapabilities();
        desire.setCapability("deviceName", "Redmi");
        desire.setCapability("udid", "3cbaf93d");
        desire.setCapability("platformName", "Android");
        desire.setCapability("platformVersion", "9.0");
        desire.setCapability("appPackage", "com.androi.camera");
        desire.setCapability("appActivity", "com.androi.camera.Camera");
        URL url=new URL("http://127.0.0.1:4723/wd/hub");
        appium=new AppiumDriver<MobileElement>(url,desire);
        System.out.println("app started");
Error log:

Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to create a new remote session. Please check the server log for more details. Original error: An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command 'C\:\\Users\\DELL\\AppData\\Local\\Android\\sdk\\platform-tools\\adb.exe -P 5037 -s 3cbaf93d shell settings delete global hidden_api_policy_pre_p_apps' exited with code 255'; Stderr: 'Security exception: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS

java.lang.SecurityException: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
    at com.android.providers.settings.SettingsProvider.enforceWritePermission(SettingsProvider.java:1815)
    at com.android.providers.settings.SettingsProvider.mutateGlobalSetting(SettingsProvider.java:1023)
    at com.android.providers.settings.SettingsProvider.deleteGlobalSetting(SettingsProvider.java:1006)
    at com.android.providers.settings.SettingsProvider.delete(SettingsProvider.java:592)
    at android.content.ContentProvider$Transport.delete(ContentProvider.java:343)
    at com.android.providers.settings.SettingsService$MyShellCommand.deleteForUser(SettingsService.java:406)
    at com.android.providers.settings.SettingsService$MyShellCommand.onCommand(SettingsService.java:289)
    at android.os.ShellCommand.exec(ShellCommand.java:103)
    at com.android.providers.settings.SettingsService.onShellCommand(SettingsService.java:51)
    at android.os.Binder.shellCommand(Binder.java:634)
    at android.os.Binder.onTransact(Binder.java:532)
    at android.os.Binder.execTransact(Binder.java:735)'; Code: '255'
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'DESKTOP-S3RV3MH', ip: '192.168.1.5', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_151'
Driver info: driver.version: AppiumDriver
remote stacktrace: UnknownError: An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command 'C\:\\Users\\DELL\\AppData\\Local\\Android\\sdk\\platform-tools\\adb.exe -P 5037 -s 3cbaf93d shell settings delete global hidden_api_policy_pre_p_apps' exited with code 255'; Stderr: 'Security exception: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS

java.lang.SecurityException: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
    at com.android.providers.settings.SettingsProvider.enforceWritePermission(SettingsProvider.java:1815)
    at com.android.providers.settings.SettingsProvider.mutateGlobalSetting(SettingsProvider.java:1023)
    at com.android.providers.settings.SettingsProvider.deleteGlobalSetting(SettingsProvider.java:1006)
    at com.android.providers.settings.SettingsProvider.delete(SettingsProvider.java:592)
    at android.content.ContentProvider$Transport.delete(ContentProvider.java:343)
    at com.android.providers.settings.SettingsService$MyShellCommand.deleteForUser(SettingsService.java:406)
    at com.android.providers.settings.SettingsService$MyShellCommand.onCommand(SettingsService.java:289)
    at android.os.ShellCommand.exec(ShellCommand.java:103)
    at com.android.providers.settings.SettingsService.onShellCommand(SettingsService.java:51)
    at android.os.Binder.shellCommand(Binder.java:634)
    at android.os.Binder.onTransact(Binder.java:532)
    at android.os.Binder.execTransact(Binder.java:735)'; Code: '255'
    at getResponseForW3CError (C:\Users\DELL\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\protocol\errors.js:826:9)
    at asyncHandler (C:\Users\DELL\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\protocol\protocol.js:447:37)
    at process._tickCallback (internal/process/next_tick.js:68:7)
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'DESKTOP-S3RV3MH', ip: '192.168.1.5', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_151'
Driver info: driver.version: AppiumDriver
    at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:208)
    at io.appium.java_client.remote.AppiumCommandExecutor.createSession(AppiumCommandExecutor.java:217)
    at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:239)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
    at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42)
    at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
    at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:38)
    at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:84)
    at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:94)
    at test1.Class1.main(Class1.java:27)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at io.appium.java_client.remote.AppiumCommandExecutor$1.createSession(AppiumCommandExecutor.java:186)
    ... 11 more
Caused by: org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command 'C\:\\Users\\DELL\\AppData\\Local\\Android\\sdk\\platform-tools\\adb.exe -P 5037 -s 3cbaf93d shell settings delete global hidden_api_policy_pre_p_apps' exited with code 255'; Stderr: 'Security exception: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS

java.lang.SecurityException: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
    at com.android.providers.settings.SettingsProvider.enforceWritePermission(SettingsProvider.java:1815)
    at com.android.providers.settings.SettingsProvider.mutateGlobalSetting(SettingsProvider.java:1023)
    at com.android.providers.settings.SettingsProvider.deleteGlobalSetting(SettingsProvider.java:1006)
    at com.android.providers.settings.SettingsProvider.delete(SettingsProvider.java:592)
    at android.content.ContentProvider$Transport.delete(ContentProvider.java:343)
    at com.android.providers.settings.SettingsService$MyShellCommand.deleteForUser(SettingsService.java:406)
    at com.android.providers.settings.SettingsService$MyShellCommand.onCommand(SettingsService.java:289)
    at android.os.ShellCommand.exec(ShellCommand.java:103)
    at com.android.providers.settings.SettingsService.onShellCommand(SettingsService.java:51)
    at android.os.Binder.shellCommand(Binder.java:634)
    at android.os.Binder.onTransact(Binder.java:532)
    at android.os.Binder.execTransact(Binder.java:735)'; Code: '255'
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'DESKTOP-S3RV3MH', ip: '192.168.1.5', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_151'
Driver info: driver.version: AppiumDriver
remote stacktrace: UnknownError: An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command 'C\:\\Users\\DELL\\AppData\\Local\\Android\\sdk\\platform-tools\\adb.exe -P 5037 -s 3cbaf93d shell settings delete global hidden_api_policy_pre_p_apps' exited with code 255'; Stderr: 'Security exception: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS

java.lang.SecurityException: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
    at com.android.providers.settings.SettingsProvider.enforceWritePermission(SettingsProvider.java:1815)
    at com.android.providers.settings.SettingsProvider.mutateGlobalSetting(SettingsProvider.java:1023)
    at com.android.providers.settings.SettingsProvider.deleteGlobalSetting(SettingsProvider.java:1006)
    at com.android.providers.settings.SettingsProvider.delete(SettingsProvider.java:592)
    at android.content.ContentProvider$Transport.delete(ContentProvider.java:343)
    at com.android.providers.settings.SettingsService$MyShellCommand.deleteForUser(SettingsService.java:406)
    at com.android.providers.settings.SettingsService$MyShellCommand.onCommand(SettingsService.java:289)
    at android.os.ShellCommand.exec(ShellCommand.java:103)
    at com.android.providers.settings.SettingsService.onShellCommand(SettingsService.java:51)
    at android.os.Binder.shellCommand(Binder.java:634)
    at android.os.Binder.onTransact(Binder.java:532)
    at android.os.Binder.execTransact(Binder.java:735)'; Code: '255'
    at getResponseForW3CError (C:\Users\DELL\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\protocol\errors.js:826:9)
    at asyncHandler (C:\Users\DELL\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\protocol\protocol.js:447:37)
    at process._tickCallback (internal/process/next_tick.js:68:7)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$errorHandler$0(W3CHandshakeResponse.java:62)
    at org.openqa.selenium.remote.HandshakeResponse.lambda$getResponseFunction$0(HandshakeResponse.java:30)
    at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:126)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
    at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
    at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:128)
    ... 16 more
like image 329
Satish Rongala Avatar asked Aug 28 '26 16:08

Satish Rongala


1 Answers

  1. go to developer option.
  2. go to last option called --> Disable Permission Monitoring --> enable it.
like image 138
Sandeep Duve Avatar answered Aug 31 '26 05:08

Sandeep Duve