Search code examples
androidshellapkadb

execute adb shell input swipe command from apk


I am trying to execute swipe command from my Apk using

process = Runtime.getRuntime().exec("adb shell input swipe 250 300 -800 300");

but nothing happens and no error occurs during runtime.

Do i have to add anything in manifest to get it to work?


Solution

  • You can only execute /system/bin/input as the root or shell user; this will not work in an app. The command should not start with "adb shell" when running from the app.

    To run the command as root:

    Process su = null; 
    try { 
        su = Runtime.getRuntime().exec("su");
        su.getOutputStream().write("input swipe 250 300 -800 300\n".getBytes());
        su.getOutputStream().write("exit\n".getBytes());
        su.waitFor(); 
    } catch (Exception e) {
        e.printStackTrace();
    } finally { 
        if (su != null) { 
            su.destroy(); 
        } 
    }
    

    You should also check out third party libraries for handling su commands: https://android-arsenal.com/details/1/451