一直在应用层开发程序 ,遇到需要底层协助的,都是提供接口或者底层发广播上来 ,阴差阳错的从机器人公司跳到做TV项目的公司 ,现在在一个方案公司,应用层的工作比较少 ,就开始学一下底层的东西 ,刚开始有点吃力,不过还是挺好玩的 ,他们都说Linux系统好用 ,感觉除了快一点,讲真,WIndow系统还是好用一点
不说废话了;push文件到system下面,也没有那么难,首先手机需要root权限 ,因为system文件路径仅支持读,如果需要写入文件的话,需要remount一下, 看代码 ,比较简单,一个工具类,用来执行cmd,
package com.adtv.util; import android.util.Log; import java.io.DataOutputStream; import java.io.OutputStream; public class RootCmd { /*** * @param command * @return */ public static boolean exusecmd(String command) { Process process = null; DataOutputStream os = null; try { process = Runtime.getRuntime().exec("su"); os = new DataOutputStream(process.getOutputStream()); os.writeBytes(command + "\n"); os.writeBytes("exit\n"); os.flush(); Log.e("updateFile", "======000==writeSuccess======"); process.waitFor(); } catch (Exception e) { Log.e("updateFile", "======111=writeError======" + e.toString()); return false; } finally { try { if (os != null) { os.close(); } if (process != null) { process.destroy(); } } catch (Exception e) { e.printStackTrace(); } } return true; } public static void writeFileToSystem(String filePath, String sysFilePath) { exusecmd("mount -o rw,remount /system"); exusecmd("chmod 777 /system/media"); // exusecmd("cp " + filePath + " /system/media/bootanimation.zip"); exusecmd("cp " + filePath + " " + sysFilePath); } }主要打方法就是WriteFileToSystem .传入两个路径,
1 :方法里面,第一行 获取读写权限
2:给system/media 授权
3:执行复制操作