Search code examples
androidadb

run-as: Could not set capabilities: Operation not permitted


on android 6.0.1 I am getting this error when trying to use run-as.

⋊> ~ adb shell                                                          14:29:01
shell@trlte:/ $ run-as org.ligi.passandroid                                    
run-as: Could not set capabilities: Operation not permitted

I really like the run-as command - is there a way to get it to work on 6.0.1 ?


Solution

  • If you have a SAMSUNG device, don't bother - SAMSUNG broke run-as by dropping the setuid flag (so run-as has no chance of switching to a different identity).

    Also don't bother trying the Smart Switch "reinitialize device" workaround, it won't work until SAMSUNG fixes it in the firmware (so it is worth updating to the latest version).

    Use some other method to access your app's data, like adb backup:

    adb backup -f data.ab <my.package>
    dd if=data.ab  bs=24 skip=1 | openssl zlib -d > data.tar
    

    Instead of dd you can use the abe tool, which can also write .ab files.