国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

android_adb pm和adb am@啟動(dòng)Activity@殺死app進(jìn)程@凍結(jié)或卸載系統(tǒng)更新和應(yīng)用商店

這篇具有很好參考價(jià)值的文章主要介紹了android_adb pm和adb am@啟動(dòng)Activity@殺死app進(jìn)程@凍結(jié)或卸載系統(tǒng)更新和應(yīng)用商店。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

adb命令介紹和使用說明

  • Android 調(diào)試橋 (adb) | Android 開發(fā)者 | Android Developers (google.cn)
    • 這部分文檔并不包含所有的指令功能的介紹
    • 可以和命令行的--help選項(xiàng)的本地文檔一同查閱

adb shell pm和am的運(yùn)行方式

  • 運(yùn)行方式有兩種

    • 不進(jìn)入shell直接運(yùn)行
      • 每次執(zhí)行命令(issue command)需要帶上adb shell開頭的前綴
      • 例如:
        • adb shell pm list packages -s -d|nl
          • 統(tǒng)計(jì)被禁用(凍結(jié))的包
    • 進(jìn)入shell再運(yùn)行
      • 這比較適合需要執(zhí)行大量命令交互的情況下
        • adb shell
        • pm ...am ...
  • 下面默認(rèn)當(dāng)前已經(jīng)進(jìn)入了adb shell 模式,采用第二種方式運(yùn)行

手機(jī)端終端應(yīng)用(terminal for android)

  • 有些android 端app提供了可以執(zhí)行adb命令的接口(模擬終端),使得我們可以不依賴電腦就可以執(zhí)行一些adb 命令行

設(shè)備已root

  • 例如MT管理器 (mt2.cn)提供了終端模擬器(Terminal Simulator)
    • 這種方式需要root權(quán)限才能順利執(zhí)行大多數(shù)命令,或者高于一般用戶的權(quán)限才可以調(diào)用

設(shè)備未root

  • Shizuku(moe.shizuku.privileged.api) (coolapk.com)授權(quán)的方式使用(通過無線調(diào)試來激活shizuku,需要android11或更高版本),激活后配合以下之一的app使用:

    • shizukuRunner
    • 黑域
  • 當(dāng)然,還存在一些其他的app可以借助無線調(diào)試來執(zhí)行adb命令行

adb shell pm包管理

  • app管理器

檢索和查找包(app)

  • 檢查所包

    • pm list packages

    •   list packages [-f] [-d] [-e] [-s] [-3] [-i] [-l] [-u] [-U]
            [--show-versioncode] [--apex-only] [--uid UID] [--user USER_ID] [FILTER]
          Prints all packages; optionally only those whose name contains
          the text in FILTER.  Options are:
            -f: see their associated file
            -a: all known packages (but excluding APEXes)
            -d: filter to only show disabled packages
            -e: filter to only show enabled packages
            -s: filter to only show system packages
            -3: filter to only show third party packages
            -i: see the installer for the packages
            -l: ignored (used for compatibility with older releases)
            -U: also show the package UID
            -u: also include uninstalled packages
            --show-versioncode: also show the version code
            --apex-only: only show APEX packages
            --uid UID: filter to only show packages with the given UID
            --user USER_ID: only list packages belonging to the given user
      

查找具有關(guān)鍵字的包(grep)

  • 基于查找全部包的基礎(chǔ)上用管道符過濾具有關(guān)鍵字的包
  • pm list packages|grep <keyword>
    • 例如:pm list packages|grep thaons

導(dǎo)出禁用列表

列舉/導(dǎo)出自己的凍結(jié)列表
  • 列出已經(jīng)禁用的包:

    • pm list package -s -d

      • package:com.miui.systemAdSolution
        package:com.android.vending
        package:com.miui.analytics
        package:com.google.android.ext.shared
        package:com.miui.yellowpage
        package:com.google.android.configupdater
        package:com.google.android.gms
        package:com.google.android.gsf
        package:com.xiaomi.gamecenter.sdk.service
        package:com.xiaomi.migameservice
        package:com.google.android.printservice.recommendation
        package:com.milink.service
        package:com.google.android.onetimeinitializer
        package:com.miui.voiceassist
        
  • 導(dǎo)出后,方便分享給別人??

    • 可以直接復(fù)制文本內(nèi)容
    • 也可以截圖分享
    • 也可以保存到一個(gè)文件文件中
導(dǎo)出凍結(jié)包列表
  • cd /sdcard/
    #back up the current disabled packages list
    pm list package -d|sed 's/package://g'|tee disabled_packaged_list.bak
    
導(dǎo)出/創(chuàng)建凍結(jié)腳本
  • cd /sdcard/
    #back up the current disabled packages list
    pm list package -d|sed 's/package://g'|tee disabled_packaged_list.bak
    #生成/創(chuàng)建凍結(jié)腳本(create the shell file of list of packages that need to be disable)
    pm list packages -d|sed 's/package:/pm disable /g'|tee disable_pkg_list.sh
    
    
    • 如果直接復(fù)制粘貼到終端中運(yùn)行,那么可能需要按幾次換行好(回車確認(rèn))以便腳本完整執(zhí)行
  • 不出意外的話,你會(huì)得到位于/sdcard/目錄下的一個(gè)腳本文件:

    • 內(nèi)容大概是這樣的:

    • pm disable com.miui.systemAdSolution
      pm disable com.android.vending
      pm disable com.miui.analytics
      pm disable com.xiaomi.mi_connect_service
      pm disable com.google.android.ext.shared
      pm disable com.google.android.configupdater
      pm disable com.xiaomi.mirror
      pm disable com.google.android.gms
      pm disable com.termux
      pm disable com.google.android.gsf
      pm disable com.android.quicksearchbox
      pm disable com.miui.carlink
      pm disable com.miui.cloudservice
      pm disable com.google.android.printservice.recommendation
      pm disable com.microsoft.skydrive
      pm disable com.google.android.onetimeinitializer
      pm disable com.miui.mishare.connectivity
      

啟用/解凍

  • 禁用包:pm disable <packageName>

    • 例如:pm disable com.miui.analytics
  • 啟用包pm enable <packageName>

    • 例如:pm enable com.miui.analytics
  • 批量啟用包

    • 可以將已禁用的包列舉出來

      再用編輯器將packages:替換為pm enable ,然后執(zhí)行這些替換好指令的命令行

    • 具體命令如下:

    • cd /sdcard/
      #back up the current disabled packages list
      pm list package -d|sed 's/package://g'|tee disabled_packaged_list.bak
      #生成/創(chuàng)建解凍腳本(create the shell file of list of packages that need to be enable)
      pm list packages -d|sed 's/package:/pm enable /g'> enable_pkg_list.sh
      nl enable_pkg_list.sh
      source ./enable_pkg_list.sh
      

Note

  • 不是所有app都可以被凍結(jié)成功

    • 比如某些系統(tǒng)核心app
      • 以miui為例,
        • 手機(jī)管家
        • 應(yīng)用商店
        • 系統(tǒng)更新
        • 都是無法通過該方式disable
  • 另一方面,肆意凍結(jié)可能導(dǎo)致系統(tǒng)異常,導(dǎo)致無法開機(jī)

凍結(jié)系統(tǒng)更新@應(yīng)用商店

  • 系統(tǒng)更新和應(yīng)用商店比一般的系統(tǒng)自帶應(yīng)用級(jí)別更高一些,無法通過adb shell pm disable凍結(jié)(執(zhí)行過程會(huì)報(bào)錯(cuò))

    • mondrian:/ $ pm disable com.xiaomi.market
      
      Exception occurred while executing 'disable':
      java.lang.SecurityException: Shell cannot change component state for null to 2
              at com.android.server.pm.PackageManagerService.setEnabledSettings(PackageManagerService.java:3925)
              at com.android.server.pm.PackageManagerService.-$$Nest$msetEnabledSettings(Unknown Source:0)
      ...
      com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:6187)
              at android.os.Binder.execTransactInternal(Binder.java:1290)
              at android.os.Binder.execTransact(Binder.java:1249)
      
  • 使用pm uninstall配合`` --user `選項(xiàng)(通常搭配參數(shù)0),則不會(huì)報(bào)錯(cuò)

      uninstall [-k] [--user USER_ID] [--versionCode VERSION_CODE]
           PACKAGE [SPLIT...]
        Remove the given package name from the system.  May remove an entire app
        if no SPLIT names specified, otherwise will remove only the splits of the
        given app.  Options are:
          -k: keep the data and cache directories around after package removal.
          --user: remove the app from the given user.
          --versionCode: only uninstall if the app has the given version code.
    
    
  • 即,可以通過偽卸載的方式實(shí)現(xiàn)凍結(jié)的效果,下面以MIUI的應(yīng)用商店為例進(jìn)行禁用操作

    • 不保留數(shù)據(jù)偽卸載

      mondrian:/ $ pm uninstall --user 0 com.xiaomi.market
      Success
      
    • 保留數(shù)據(jù)偽卸載(使用-k選項(xiàng))

      mondrian:/ $ pm uninstall -k --user 0 com.xiaomi.market
      Success
      
    • 安裝復(fù)原(取消偽卸載)

      • mondrian:/ $ pm install-existing --user 0 com.xiaomi.market
        Packag	e com.xiaomi.market installed for user: 0
        
  • 系統(tǒng)更新的禁用或恢復(fù)操作類似

    • mondrian:/ $ pm uninstall -k --user 0 com.android.updater
      Success
      
    • mondrian:/ $ pm install-existing  --user 0 com.android.updater
      Package com.android.updater installed for user: 0
      

徹底卸載刪除系統(tǒng)核心應(yīng)用

  • 諸如系統(tǒng)更新和應(yīng)用商店這類系統(tǒng)自帶應(yīng)用也并非不可完全移除
  • 對(duì)于普通的root(通過magisk修補(bǔ)的方式獲得的root權(quán)限,是無法直接在開機(jī)狀態(tài)下修改/data,/product目錄下的內(nèi)容)
    • 廠商系統(tǒng)應(yīng)用的安裝包通常位于/下的某個(gè)子目錄,例如MIUI位于/product/app
  • 可以借助一些軟件來修改,比如scene,提供了利用magisk修改(重啟生效)

adb shell am

  • How to start an application using Android ADB tools - Stack Overflow

??多用戶&雙開app調(diào)試(multiple user adb)

  • 測(cè)試多用戶 | Android 開源項(xiàng)目 | Android Open Source Project

  • pm和am都支持多用戶app調(diào)試

    • 例如pm下:

      • 下面的例子是掃描用戶999的可用的包(app)

        • 這是miui多開創(chuàng)建的用戶
      • xaga:/ # pm list packages --user 999|nl
             1  package:com.miui.securitycore
             2  package:com.miui.analytics
             3  package:android
             4  package:com.tencent.mm
             5  package:org.mipay.android.manager
             6  package:com.google.android.gms
             7  package:com.android.nfc
             8  package:com.android.permissioncontroller
             9  package:com.tencent.soter.soterserver
            10  package:com.google.android.gsf
            11  package:com.miui.phrase
            12  package:com.xiaomi.gamecenter.sdk.service
            13  package:org.ifaa.aidl.manager
            14  package:com.miui.rom
            15  package:com.google.android.webview
            16  package:com.android.keychain
            17  package:com.miui.contentcatcher
            18  package:com.android.phone
        
    • 多用戶 am

      • 下面這條命嘗試為ID=999的用戶啟動(dòng)微信

        • 實(shí)際效果會(huì)為創(chuàng)建了多開的(dual app)另一個(gè)微信做啟動(dòng)操作
      • am start --user 999 com.tencent.mm/com.tencent.mm.ui.LauncherUI
        

app信息查看

查找某個(gè)app/package

  • 例如,查找桌面啟動(dòng)器相關(guān)的包

  • xaga:/ $ pm list packages|grep -e home -e launcher|nl
         1  package:android.miui.home.launcher.res
         2  package:com.yuk.miuihome
         3  package:com.miui.home
         4  package:com.miui.newhome
         5  package:cn.fuckhome.xiaowine
         6  package:bitpit.launcher
    
查看某個(gè)包的信息
  • dumpsys package com.miui.home|nl
查找android設(shè)備上的音樂/視頻播放軟件
  • pm list packages|grep -e music -e player -e tv -e ku|nl
    • xaga:/ $ pm list packages|grep -e music -e player -e ku |nl
      1 package:com.android.sharedstoragebackup
      2 package:cn.kuwo.player
      3 package:com.android.backupconfirm
      4 package:player.normal.np
      5 package:com.miui.cloudbackup
      6 package:tv.danmaku.bili
      7 package:com.android.calllogbackup
      8 package:com.mylrc.mymusic
      9 package:com.miui.player
      10 package:com.android.wallpaperbackup
      11 package:com.kugou.android.lite
      12 package:com.android.musicfx
      13 package:com.miui.backup
      14 package:moe.shizuku.privileged.api
過濾Activitiy
  • xaga:/ $ dumpsys package com.tencent.mm|nl|grep LauncherUI
       487          b29e6a7 com.tencent.mm/.ui.LauncherUI filter 1484754
       492          b29e6a7 com.tencent.mm/.ui.LauncherUI filter 7a26fd
    

app進(jìn)程管理

  • 利用adb shell am <xxx>monkey進(jìn)行管理

啟動(dòng)某個(gè)app

  • How to start an application using Android ADB tools - Stack Overflow
使用am start啟動(dòng)指定app(app的某個(gè)頁面activity)
  • am start PackageName/activity

  • 例如啟動(dòng)微信

    • am start com.tencent.mm/com.tencent.mm.ui.LauncherUI

    • 簡(jiǎn)寫:am start com.tencent.mm/.ui.LauncherUI

      • xaga:/ $ am start com.tencent.mm/.ui.LauncherUI
        Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.tencent.mm/.ui.LauncherUI }
        Warning: Activity not started, its current task has been brought to the front
        
    • 該命令將啟動(dòng)微信主頁頁面

    • am start還可以其他選項(xiàng)可以接受其他參數(shù),比如,am start -n

    • 但是,這不總是方便的,有時(shí)我們就只需要啟動(dòng)默認(rèn)主頁面,那么Activity就不是一個(gè)很有必要寫的部分

    • 但是我們不寫activity名字,就不再是用am,而是改用monkey

monkey啟動(dòng)指定app??
  • monkey -p PackageName 1

    • 需要將PackageName改為包名(相比于am start方式,不需要指定具體Activity)

    • 例如啟動(dòng)微信 monkey -p com.tencent.mm 1

      • xaga:/ $ monkey -p com.tencent.mm 1
        
          bash arg: -p
          bash arg: com.tencent.mm
          bash arg: 1
        args: [-p, com.tencent.mm, 1]		
         arg: "-p"
         arg: "com.tencent.mm"
         arg: "1"
        data="com.tencent.mm"
        Events injected: 1
        ## Network stats: elapsed time=18ms (0ms mobile, 0ms wifi, 18ms not connected)
        
    • 如果啟動(dòng)失敗,您可以嘗試變動(dòng)參數(shù)(將數(shù)字1改為其他值再試)

殺死某個(gè)app進(jìn)程

使用am stop 殺死
  • testing - Stopping an Android app from console - Stack Overflow

  • 使用adb shell am force-stop PackageName

    • 例如殺死edge瀏覽器:adb shell am force-stop com.microsoft.emmx
  • 或者進(jìn)入shell

  • 調(diào)用am force-stop PackageName進(jìn)行殺滅文章來源地址http://www.zghlxwxcb.cn/news/detail-768540.html

到了這里,關(guān)于android_adb pm和adb am@啟動(dòng)Activity@殺死app進(jìn)程@凍結(jié)或卸載系統(tǒng)更新和應(yīng)用商店的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Android adb命令獲取當(dāng)前Activity或者Fragment

    Android adb命令獲取當(dāng)前Activity或者Fragment

    用adb命令查看下面Demo處于 NO.3 Fragment 時(shí)的 Activity 和 Fragment 信息。 輸出結(jié)果如下: 上面的 com.example.who/com.example.who.ui.activity.SecondActivity} 可以分成兩部分看: / 前的部分是包名, / 后的部分是當(dāng)前 Activity 的類全名。 該命令會(huì)輸出堆棧中全部的窗口信息。 輸出結(jié)果如下, Se

    2024年02月15日
    瀏覽(26)
  • android adb命令獲取處于當(dāng)前屏幕的Activity

    android adb命令獲取處于當(dāng)前屏幕的Activity 使用adb命令: ? 輸出,例如: ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities) Display #0 (activities from top to bottom): ? * Task{38ef601 #5281 type=standard A=10450:com.example.myapplication U=0 visible=true visibleRequested=true mode=fullscreen translucent=false sz=1} ? ? mResizeMo

    2024年02月15日
    瀏覽(24)
  • Android Activity重寫dump方法實(shí)現(xiàn)通過adb調(diào)試代碼

    android為我們提供了dump方法。注釋中聲明該方法會(huì)將活動(dòng)的狀態(tài)打印到給定流中,當(dāng)cmd運(yùn)行“adb?shell dumpsys activity”時(shí)會(huì)調(diào)用此函數(shù)。所以當(dāng)我們要做一些測(cè)試,就可以在activity重寫dump函數(shù)編寫我們的測(cè)試邏輯。 args是adb傳進(jìn)來的命令參數(shù) 調(diào)用 writer.println?即可將想要打印的東

    2024年02月06日
    瀏覽(24)
  • 【Android】使用 adb 命令行工具結(jié)合 pm列出 Android 設(shè)備上已安裝應(yīng)用的應(yīng)用名稱和包名

    要列出 Android 設(shè)備上已安裝應(yīng)用的應(yīng)用名稱和包名,你可以使用 adb 命令行工具結(jié)合 pm(PackageManager)命令來實(shí)現(xiàn)。 首先,確保你已經(jīng)安裝了 Android SDK,并將 adb 工具添加到系統(tǒng)的環(huán)境變量中。 然后,打開終端或命令行窗口,連接你的 Android 設(shè)備,并輸入以下命令: 上述命令

    2024年02月09日
    瀏覽(37)
  • 【Android Framework系列】5章 AMS啟動(dòng)流程

    【Android Framework系列】5章 AMS啟動(dòng)流程

    AMS(Activity Manager Service) 是 Android 中最核心的服務(wù),管理著 四大組件的啟動(dòng) 、 切換 、 調(diào)度 及 應(yīng)用進(jìn)程的管理和調(diào)度 等工作。AndroidQ將Activity移到了 ActivityTaskManagerService 中,但也和AMS相關(guān)聯(lián)。 AMS 通過使用一些系統(tǒng)資源和數(shù)據(jù)結(jié)構(gòu)(如進(jìn)程、任務(wù)棧、記錄四大組件生命周期

    2024年02月15日
    瀏覽(26)
  • 從一個(gè)APP啟動(dòng)另一個(gè)APP的activity的方式

    1、通過自定義action啟動(dòng) 這種方式只需要在代碼中設(shè)置一個(gè)action即可, 系統(tǒng)會(huì)自動(dòng)過濾去找到這個(gè)action所對(duì)應(yīng)的Activity 當(dāng)前APP的代碼 待啟動(dòng)APP 的activity在AndroidManifest.xml中的配置 2、通過在Intent中通過指定包名和類名來查找 直接在當(dāng)前APP中寫以下代碼,即可打開指定APP的acti

    2024年02月08日
    瀏覽(27)
  • android framework之AMS的啟動(dòng)管理與職責(zé)

    AMS是什么? AMS管理著activity,Service, Provide, BroadcastReceiver android10后:出現(xiàn)ATMS,ActivityTaskManagerService:ATMS是從AMS中抽出來,單獨(dú)管理著原來AMS中的Activity組件 。 現(xiàn)在我們對(duì)AMS的分析,也就包含對(duì)ATMS的分析了。 AMS如何被別人管理?---被SystemServer的SystemServiceManager所管理 AMS如何被人

    2024年02月10日
    瀏覽(24)
  • UI繪制流程分析(前篇)--App與Activity的啟動(dòng)

    UI繪制流程分析(前篇)--App與Activity的啟動(dòng)

    徹底搞懂UI繪制流程,看該系列就夠了 作為安卓開發(fā)最重要的知識(shí)點(diǎn)之一,UI繪制無疑是必須掌握的,要想搞懂它的測(cè)量、布局和繪制,得先理解它的整個(gè)流程,但現(xiàn)在讓我們把時(shí)間再往前撥一下,先要從App啟動(dòng)流程以及Activity啟動(dòng)流程講起。 提示:以下是本篇文章正文內(nèi)容

    2024年02月16日
    瀏覽(26)
  • Android Activity啟動(dòng)過程詳解

    Android Activity啟動(dòng)過程詳解

    1,《android系統(tǒng)啟動(dòng)流程簡(jiǎn)介》 2,《android init進(jìn)程啟動(dòng)流程》 3,《android zygote進(jìn)程啟動(dòng)流程》 4,《Android SystemServer進(jìn)程啟動(dòng)流程》 5,《android launcher啟動(dòng)流程》 6,《Android Activity啟動(dòng)過程詳解》 1,《Android 源碼下載和編譯》 2,《android 11源碼編譯和pixel3 刷機(jī)》 3,《Andro

    2024年02月09日
    瀏覽(20)
  • Android 后臺(tái)啟動(dòng)Activity適配

    在Android 9及以下版本,后臺(tái)啟動(dòng)Activity相對(duì)自由,但是如果在Activity上下文之外啟動(dòng)Activity會(huì)有限制。 所以此時(shí)需要給intent添加flag:FLAG_ACTIVITY_NEW_TASK。 在Android版本10及以后版本, 引入了后臺(tái)執(zhí)行限制,限制了應(yīng)用在后臺(tái)執(zhí)行操作的能力。非核心任務(wù)的后臺(tái)啟動(dòng) Activity 可能會(huì)

    2024年02月10日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包