2017-11-17 9 views
0

私は、シェルコマンドを使用してsystem/appに私のapk 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

私の答えに示唆したunixコマンド "cp"。 –

+0

私はあなたのソリューションを試しました、それは動作しますが、今はそれを* -rwxr-xr-x *に設定します。 "望みの" * -rw-r - r - *とは対照的に、それは大丈夫ですか?私は違いが何であるか分からない。 –

関連する問題