我总是使用这种方法(显然使用root和mount系统作为RW)来复制android 4.1.2中/system/etc/init.d文件夹中的资产但是因为我已经切换到kitkat这种方法不再适用。 SELinux被禁用,我没有外部SD卡写入错误。 我在我的设备中制作了一些日志,但我没有收到任何错误,该应用程序获得了正确的SU权限,将系统安装为RW,但它没有复制文件。
// File name, path , file permission, context.
public static void copyAssets(String script,String path,int mode,Context context) {
AssetManager assetManager = context.getAssets();
InputStream in = null;
OutputStream out = null;
try {
in = assetManager.open(script);
File outFile = new File(Environment.getExternalStorageDirectory().getPath(), script);
out = new FileOutputStream(outFile);
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
} catch(IOException e) {
Log.e("cocoremanager", "Failed to handle: " + script, e);
}
}
我打电话的时候:
Utils.copyAssets("asset_name", "/system/etc/init.d", 777, getActivity().getApplicationContext());
已解决:忘了在清单中添加WRITE_EXTERNAL_STORAGE权限。