自己動手清除Android系統中的不良程式

來源:互聯網
上載者:User

標籤:android   style   java   get   使用   strong   

自己動手清除Android系統中的不良程式

陳躍峰

2014/6/29

 

         最近在使用我的Nexus7時,總是經常莫名其妙的彈出一些廣告彈窗,還會自動下載一些應用程式,還會在案頭上產生一個叫做“精彩應用”的表徵圖,這個捷徑關聯的程式顯示的內容和廣告內容是一致的,很是煩人,使用360手機衛士和樂安全都發現不了這個不良程式,所以就自己動手來清除這個程式。

         由於Nexus 7平時用於測試程式,安裝的應用很多,手動刪除了一些可疑的應用以後還是不行,猜測是某些app可能被人篡改了,就不再去刪除app了,而把目光轉向了案頭捷徑上。

         既然產生了“精彩應用”這個表徵圖,而且點擊可以啟動程式,但是安卓系統的捷徑和app之間沒有很直觀的聯絡,這就需要寫些代碼來解決了:

         1、擷取捷徑對應的包名

         眾所周期,每個安卓app依靠一個唯一的包名就行區分,只要能發現這個包名,剩下就簡單了。

         擷取捷徑需要讀寫系統設定的許可權:

                   <uses-permissionandroid:name="com.android.launcher.permission.READ_SETTINGS" />

   <uses-permissionandroid:name="com.android.launcher.permission.WRITE_SETTINGS" />

         讀取捷徑的代碼如下:

/**

          * 顯示捷徑資訊

          * @param context 內容物件

          */

         publicstatic void printShortcutInfo(Context context){

                   try{

                            ContentResolverresolver = context.getContentResolver();

                 Cursor cursor = resolver.query(Uri.parse("content://com.android.launcher2.settings/favorites?notify=true"),null,null,null,null);

                 int index = 0;

                 while(cursor.moveToNext()){

                          intnum = 5;

                          try{

                                    Stringinfo = "";

                                    for(inti = 0;i < num;i++){

                                              info+= cursor.getString(i) + ",";

                                    }

                                    System.out.println(index+++ "  " + info);

                          }catch(Exceptione1){}

                 }

                 cursor.close();

                   }catch(Exceptione){

                            e.printStackTrace();

                   }

         }

         通過執行這些代碼,發現“精彩應用”這個捷徑對應的包名是“cn.com.hkgt.gasapp”,通過這個包名也不能直接找到對應的程式,那下面就自己編碼卸載這個程式,看看到底是哪裡出了問題。

         2、根據包名卸載app

         對於沒有root的程式,卸載時只是調用卸載介面,但是這個對於我來說足夠了。

         卸載程式需要的許可權:

                   <uses-permissionandroid:name="android.permission.DELETE_PACKAGES" />

         卸載程式的方法代碼:

                   /**

              * 卸載軟體

              *@param context 內容物件

              *@param pkgName 包名

              */

             public static void deletePackage(Contextcontext,String pkgName){

                       try{

                                Uri packageURI =Uri.parse("package:" + pkgName);    

                                Intent uninstallIntent = newIntent(Intent.ACTION_DELETE, packageURI);    

                                context.startActivity(uninstallIntent);

                       }catch(Exception e){

                                e.printStackTrace();

                       }

             }

         執行這個方法卸載上麵包名的程式時,終於發現是中石化營業廳程式被人篡改了,卸載該app,去他們的官網再次下載安裝app,世界終於一片清靜了。

        

         最後發現百度應用中心和應用寶裡面提供的中石化營業廳程式都是被篡改的程式,看來以後下載和安裝app還是小心一點的好。

        

         把自己的這一小段經曆和大家一起分享,如果大家有更好的方法也請告訴我,謝謝。連絡方式:[email protected]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.