Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- new AsyncTest().execute("https://yt-dl.org/downloads/latest/youtube-dl");
- }
- void exec(String cmd, String directory){
- Log.d("test-ytdl",cmd);
- try {
- Process process = Runtime.getRuntime().exec(cmd,null, new File(directory) );
- try (InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream())) {
- BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
- for (String line = bufferedReader.readLine(); line != null; line = bufferedReader.readLine()) {
- Log.d("test-ytdl","=> "+line);
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- Log.d("test-ytdl", " Error : "+e.getMessage());
- }
- }
- void downloadFile(String url, String filename) {
- // need android.permission.INTERNET
- try {
- URL u = new URL(url);
- URLConnection conn = u.openConnection();
- int contentLength = conn.getContentLength();
- DataInputStream stream = new DataInputStream(u.openStream());
- byte[] buffer = new byte[contentLength];
- stream.readFully(buffer);
- stream.close();
- FileOutputStream fos = openFileOutput(filename, Context.MODE_PRIVATE);
- fos.write(buffer);
- fos.flush();
- fos.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- private class AsyncTest extends AsyncTask<String, Void, Void> {
- @Override
- protected Void doInBackground(String... args) {
- File file = getFileStreamPath("youtube_dl");
- if(!file.exists())
- downloadFile(args[0], "youtube_dl");
- file.setExecutable(true, true);
- Log.d("test-ytdl", "# Current folder : " + file.getParent());
- exec("chmod 777 youtube_dl", file.getParent());
- exec("stat youtube_dl", file.getParent());
- exec("whoami", file.getParent());
- exec("youtube_dl", file.getParent());
- return null;
- }
- }
- }
- 01-09 20:33:49.434 9927-9971/fr.klemek.testyoutubedl D/test-ytdl: # Current folder : /data/user/0/fr.klemek.testyoutubedl/files
- 01-09 20:33:49.434 9927-9971/fr.klemek.testyoutubedl D/test-ytdl: chmod 777 youtube_dl
- 01-09 20:33:49.556 9927-9971/fr.klemek.testyoutubedl D/test-ytdl: stat youtube_dl
- 01-09 20:33:49.637 9927-9971/fr.klemek.testyoutubedl D/test-ytdl: => File: `youtube_dl'
- 01-09 20:33:49.637 9927-9971/fr.klemek.testyoutubedl D/test-ytdl: => Size: 1614357 Blocks: 3160 IO Blocks: 4096 regular file
- 01-09 20:33:49.637 9927-9971/fr.klemek.testyoutubedl D/test-ytdl: => Device: 1030fh/66319d Inode: 148472 Links: 1
- 01-09 20:33:49.640 9927-9971/fr.klemek.testyoutubedl D/test-ytdl: => Access: (777/-rwxrwxrwx) Uid: (10022/ u0_a22) Gid: (10022/ u0_a22)
- 01-09 20:33:49.640 9927-9971/fr.klemek.testyoutubedl D/test-ytdl: => Access: 2018-01-09 20:33:49.420537211
- 01-09 20:33:49.640 9927-9971/fr.klemek.testyoutubedl D/test-ytdl: => Modify: 2018-01-09 20:33:49.420537211
- 01-09 20:33:49.640 9927-9971/fr.klemek.testyoutubedl D/test-ytdl: => Change: 2018-01-09 20:33:49.550537211
- 01-09 20:33:49.641 9927-9971/fr.klemek.testyoutubedl D/test-ytdl: whoami
- 01-09 20:33:49.708 9927-9971/fr.klemek.testyoutubedl D/test-ytdl: => u0_a22
- 01-09 20:33:49.708 9927-9971/fr.klemek.testyoutubedl D/test-ytdl: youtube_dl
- 01-09 20:33:49.715 9927-9971/fr.klemek.testyoutubedl D/test-ytdl: Error : Cannot run program "youtube_dl" (in directory "/data/user/0/fr.klemek.testyoutubedl/files"): error=13, Permission denied
Add Comment
Please, Sign In to add comment