如何从android设备获取apk文件?或者如何将apk文件从设备传输到系统?


当前回答

打开你想从你的手机上提取apk的应用程序。 获取当前打开的应用程序: adb shell dump活动活动| grep mFocusedActivity 获取包名的路径 Adb shell PM path <packagename.apk>

4.将您获得的路径复制到sdcard目录

    adb shell cp /data/app/<packagename.apk> /sdcard

5.拉apk

    adb pull /sdcard/base.apk

Edit

如果第2步不起作用,使用以下方法:

adb shell dumpsys window windows | grep mCurrentFocus

其他回答

打开你想从你的手机上提取apk的应用程序。 获取当前打开的应用程序: adb shell dump活动活动| grep mFocusedActivity 获取包名的路径 Adb shell PM path <packagename.apk>

4.将您获得的路径复制到sdcard目录

    adb shell cp /data/app/<packagename.apk> /sdcard

5.拉apk

    adb pull /sdcard/base.apk

Edit

如果第2步不起作用,使用以下方法:

adb shell dumpsys window windows | grep mCurrentFocus

在unix系统上,您可以尝试这个函数:

function android_pull_apk() {
    if [ -z "$1" ]; then
        echo "You must pass a package to this function!"
        echo "Ex.: android_pull_apk \"com.android.contacts\""
        return 1
    fi

    if [ -z "$(adb shell pm list packages | grep $1)" ]; then
        echo "You are typed a invalid package!"
        return 1
    fi

    apk_path="`adb shell pm path $1 | sed -e 's/package://g' | tr '\n' ' ' | tr -d '[:space:]'`"
    apk_name="`adb shell basename ${apk_path} | tr '\n' ' ' | tr -d '[:space:]'`"

    destination="$HOME/Documents/Android/APKs"
    mkdir -p "$destination"

    adb pull ${apk_path} ${destination}
    echo -e "\nAPK saved in \"$destination/$apk_name\""
}

例如:android_pull_apk com.android.contacts 注意:识别包:adb shell pm列表包

使用亚行。当设备连接USB时,adb可以将文件从设备复制到系统中。

当然,您还需要正确的权限来访问文件所在的目录。如果没有,则需要先对设备进行根操作。


如果您发现许多apk命名为“base.apk”,您还可以使用这一行命令从您可以访问的电话中提取所有apk,同时将任何“base.apk”名称重命名为包名。这也修复了名称后看似随机字符的APK路径找不到目录的问题:

for i in $(adb shell pm list packages | awk -F':' '{print $2}'); do 
  adb pull "$(adb shell pm path $i | awk -F':' '{print $2}')"
  mv base.apk $i.apk &> /dev/null 
done

如果你得到“adb: error: failed to stat remote object”,这表明你没有所需的权限。我在一台非根Moto Z2上运行了这个程序,并且能够下载所有我没有卸载的apk(见下文),除了youtube。

adb shell pm uninstall --user 0 com.android.cellbroadcastreceiver   <--- kills presidential alert app!

(查看用户运行adb shell PM列表用户) 这是一种删除/卸载(不是从手机出厂复位)几乎任何没有根的应用程序,包括系统应用程序(提示,烦人的更新应用程序更新你的电话线它或不可以通过grepping“ccc”找到)

C:\Users\xyz>adb shell pm list packages -f | findstr whatsapp
package:/data/app/com.whatsapp-1/base.apk=com.whatsapp

C:\Users\xyz>adb pull /data/app/com.whatsapp-1/base.apk Desktop
/data/app/com.whatsapp-1/base.apk: 1 f.... 13.8 MB/s (32803925 bytes in 
2.269s)

你可以这样做:

Download and install APK Extractor in your device. It is free, and is compatible in almost all of the Android devices. Another plus point is it does not even require root or anything to work. After you have it installed, launch it. There you will see a list of apps which are in your device, which include the apps you’ve installed later, along with the system apps. Long press any app you want to extract (you can select multiple or all apps at once), and click on the extract option you see in the top. You will also have the option to share via Bluetooth or messaging. You’re done, you will see the extracted apps as AppName_AppPackage_AppVersionName_AppVersionCode.apk, which will be saved in the path /sdcard/ExtractedApks/ by default.

android中如何提取apk文件的详细说明,请访问:http://appslova.com/how-to-extract-apk-files-in-android/