Как получить файл apk с устройства Android? - PullRequest
425 голосов
/ 27 октября 2010

Как получить файл apk с устройства Android?Или как перенести файл apk с устройства на систему?

Ответы [ 24 ]

0 голосов
/ 10 декабря 2018
  1. Откройте приложение, из которого вы хотите извлечь APK из вашего телефона.
  2. Получить текущее открытое приложение с:

    adb shell dumpsys activity activities | grep mFocusedActivity
    
  3. Получить путь к имени пакета

    adb shell pm path <packagename.apk>
    

4. Скопируйте путь, который вы получили в каталог sdcard

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

5. Потяните апк

    adb pull /sdcard/base.apk
0 голосов
/ 06 июня 2018

Самый простой из них: Установите приложение «ShareIt» на телефон. Теперь установите приложение shareIt на ПК или другой телефон. Теперь с телефона, на котором установлено приложение, откройте ShareIt и отправьте. На другом телефоне или ПК откройте ShareIt и получите.

0 голосов
/ 12 октября 2017

Еще один скрипт bash (т.е. будет работать для большинства систем на основе Unix).На основании ответа Педро Родригеса , но его немного проще использовать.

Улучшения по сравнению с версией Педро:

  1. Оригинальный подход не работал для меня на Android7: adb pull продолжал жаловаться на no such file or directory, в то время как adb shell мог получить доступ к файлу.Поэтому я использовал другой подход с временным файлом.
  2. При запуске без аргументов мой скрипт просто перечислит все доступные пакеты.Когда указано неполное имя пакета, он попытается угадать полное имя пакета.Он будет жаловаться, если есть несколько возможных расширений.
  3. Я не прописываю путь назначения;вместо этого APK сохраняются в текущем рабочем каталоге.

Сохраните это в исполняемый файл:

#!/bin/bash
# Obtain APK file for given package from the device connected over ADB

if [ -z "$1" ]; then
    echo "Available packages: "
    adb shell pm list packages | sed 's/^package://'
    echo "You must pass a package to this function!"
    echo "Ex.: android_pull_apk \"com.android.contacts\""
    exit 1
fi

fullname=$(adb shell pm list packages | sed 's/^package://' | grep $1)
if [ -z "$fullname" ]; then
    echo "Could not find package matching $1"
    exit 1
fi
if [ $(echo "$fullname" | wc -l) -ne 1 ]; then
    echo "Too many packages matched:"
    echo "$fullname"
    exit 1
fi
echo "Will fetch APK for package $fullname"

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

destination="${fullname}.apk"

tmp=$(mktemp --dry-run --tmpdir=/sdcard --suffix=.apk)
adb shell cp "${apk_path}" "$tmp"
adb pull "$tmp" "$destination"
adb shell rm "$tmp"

[ $? -eq 0 ] && echo -e "\nAPK saved in \"$destination\""
0 голосов
/ 25 декабря 2016

Это поможет тем, кто ищет нетехнический ответ

Это просто взломать

Скачать приложение App Share/Send Proиз магазина Google Play.Выберите приложение, которое вы хотите отправить, и метод отправки приложения.

Обычно я использую Bluetooth для отправки приложений на мой компьютер или другой телефон.

...