2017-11-17 1 views
0

나는 쉘 명령을 사용하여 system/appapk SD에서 카드를 복사 할 수 있습니다 :내 앱을 시스템 앱으로 만드는 방법은 무엇입니까?

Process process = Runtime.getRuntime().exec("su"); 
DataOutputStream out = new DataOutputStream(process.getOutputStream()); 
out.writeBytes("mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system\n"); 
out.writeBytes("cat /sdcard/myApp.apk > /system/app/myApp.apk\n"); 
out.writeBytes("mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system\n"); 
out.writeBytes("exit\n"); 
out.flush(); 
process.waitFor(); 

문제는,이 설정에 속성이 없기 때문에 내 장치를 무시합니다.

루트 브라우저를 사용하여 -rw-r-r--으로 변경하면 작동합니다! 어떻게하면 코드를 사용하여이 작업을 수행 할 수 있습니까? :)

답변

0

알다시피, 뿌리가 맞지 않는 기기에서는 그렇게 할 수 없습니다. 또한,

out.writeBytes("chmod 644 /system/app/myApp.apk\n"); 

를, 파일 파마를 변경하려면

out.writeBytes("cat /sdcard/myApp.apk > /system/app/myApp.apk\n"); 

는해야한다 : 대상 파일이 존재 후

out.writeBytes("cp /sdcard/myApp.apk /system/app/myApp.apk\n"); 
+0

외부에서 당신이 원하는. 아마'cp' 바로 뒤에있을 것입니다. –

+0

유닉스 명령어 "cp"는 필자의 대답에서 제안했다. –

+0

나는 당신의 솔루션을 시험해 보았다. 작동하지만, 지금은 * -rwxr-xr-x *로 설정했다. "원하는"* -rw-r - r -와 대조적으로 * 괜찮습니까? 나는 그 차이가 무엇인지조차 모른다. –

관련 문제