2012-01-28 28 views
13

我可以使用adb shell命令將自己的應用程序安裝到/ system/app中。但如何卸載它?有沒有什麼命令可以做到這一點?我的手機紮根了。如何從/ system/app中卸載自己的應用程序?

+1

我想你可能會喜歡通過[鏈接](http://wiki.cyanogenmod.com/wiki/Barebones) – Relsell 2012-01-28 20:03:46

回答

14

手動卸載使用ADB:

http://www.careace.net/2010/05/12/how-to-remove-android-apps-through-adb/

編程:

public static void deleteFromSystem (final String file) 
    { 
     try 
     { 
      if (new File(file).exists()) 
      { 
       String path  = new File(file).getParent(); 
       Process process  = Runtime.getRuntime().exec("su"); 
       DataOutputStream os = new DataOutputStream(process.getOutputStream()); 
       os.writeBytes("mount -o rw,remount /system; \n"); 
       os.writeBytes("chmod 777 "  + path + "; \n"); 
       os.writeBytes("chmod 777 "  + file + "; \n"); 
       os.writeBytes("rm -r "   + file + "; \n"); 
       os.writeBytes("mount -o ro,remount /system; \n"); 
       os.writeBytes("reboot \n"); 
       os.flush(); 
       os.close(); 
       process.waitFor(); 
      } 
     } 
     catch (Throwable e) {e.printStackTrace();} 
    } 
+0

我在你的應用程序中試過了你的代碼片段。已經從主屏幕中刪除。但是卸載應用程序然後重新安裝應用程序來管理它的sharedpreference狀態後,我遇到了問題。我需要清楚的偏好。 – 2013-06-06 06:41:26

+0

此代碼給我以下IO異常: Working Directory:null環境:null 是的,我使用了正確的應用程序名稱。 – Behnam 2013-11-26 12:40:33

+0

@ Campiador你有沒有根? – XXX 2013-11-26 14:17:00

1

我不確定你是否必須在每臺設備上都這樣做(可能只是通過某些設備上的root訪問來實現),但是對於htc,你需要重啓到恢復模式 然後你可以複製你的apk到SD卡,然後使用亞行外殼到/系統/應用程序文件夾 你應該創建一個備份nandroid第一

+0

對不起,我不能讀:D無論如何,它應該有可能在恢復中刪除它模式 – sherif 2012-01-28 19:38:49

11
adb shell rm /system/app/MyApp* 
adb uninstall org.my.app 
0

假設你必須設備根訪問:

ADB殼 ス 安裝鄰RW,重新裝入/系統 室射頻/system/app/myApp.apk 室射頻/數據/數據/ com.example.myapp 安裝鄰RO,重新裝入/系統 出口 出口

3

假設你必須設備根訪問:

adb shell 
su 
mount -o rw,remount /system 
rm -rf /system/app/myApp.apk 
rm -rf /data/data/com.example.myapp 
mount -o ro,remount /system 
exit 
exit