編輯:關於Android編程
有時候為了安全性,我們可以實現機器自毀,比如,我要實現一個APP,運行之後能夠使Android系統損害,無法重新開機,除非重新刷寫系統。
第一步破解手機開啟root權限。標志是在system/app文件夾下放入一個可以供調用的su命令。
adb push su /system/bin
adb push SuperUser.apk /system/app
adb shell chmod 4755 /system/bin/su
第二步是獲取root
原理是修改本身的APK的權限為777
public static boolean isRoot(String pkgCodePath) {
Process process = null;
DataOutputStream os = null;
try {
String cmd = "chmod 777 " + pkgCodePath;
process = Runtime.getRuntime().exec("su");
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(cmd + "\n");
os.writeBytes("exit\n");
os.flush();
process.waitFor();
} catch (Exception e) {
return false;
} finally {
try {
if (os != null) {
os.close();
}
process.destroy();
} catch (Exception e) {
}
}
return true;
}
假如手機有安裝superuser.apk,就會有提示說有應用申請超級權限,這時候點擊確定就可以了。
第三步,使用強制重啟
public static boolean reboot() {
Process process = null;
DataOutputStream os = null;
try {
String cmd = "reboot";
process = Runtime.getRuntime().exec("su");
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(cmd + "\n");
os.writeBytes("exit\n");
os.flush();
process.waitFor();
} catch (Exception e) {
return false;
} finally {
try {
if (os != null) {
os.close();
}
process.destroy();
} catch (Exception e) {
}
}
return true;
}
假如設置一個服務,然後開機啟動,執行上面的語句,就是無限開機重啟了。可以執行shutdown,就是關機。
最後我們來個狠招,就是使Android無法開機
public static boolean destroyMachine() {
Process process = null;
DataOutputStream os = null;
try {
String cmd = "rm system/lib/*.jar";
process = Runtime.getRuntime().exec("su");
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(cmd + "\n");
os.writeBytes("exit\n");
os.flush();
process.waitFor();
} catch (Exception e) {
return false;
} finally {
try {
if (os != null) {
os.close();
}
process.destroy();
} catch (Exception e) {
}
}
return true;
}
執行這個命令,把系統庫都刪除,然後執行重啟命令,機子就變磚頭了。除非刷機。
那麼怎樣實現整個業務呢?可以這麼干:做一個開機啟動的系統服務運行在後台,並且能在後台聯網。當我們的手機丟失時,我們通過網絡發送一個指令,手機後台服務接收到指令就自毀。當然,我們也可以利用短信業務來實現,但是,一般手機被盜後,SIM卡也自然被替換掉了,手機還可能被恢復為出廠設置,因此,走網絡是比較靠譜的。
Android-搭建簡單服務端+ListView異步加載數據2014年5月6日 本篇博文帶給大家的是教大家如何在MyEclipse中搭建一個服務端,並通過手機端與其通信,
做過android動畫的人對Interpolator應該不會陌生,這個類主要是用來控制android動畫的執行速率,一般情況下,如果我們不設置,動畫都不是勻速執行的,系統
這陣子遇到了好多事情,挺久沒來更新博文了,這兩天在學這個開源框架Android Annotations,用起來感覺挺方便的,相信用過Spring注解的孩子理解起來應該比
第一篇博客裡面有介紹一篇關於自動換行實現諸多自定義控件跟各種效果的博文,但是礙於當初技術能力有限,寫的jar包裡的代碼亂七八糟,在最近忙完了手頭的工作,不經意間翻看了之前