Làm cách nào để có được tệp apk từ thiết bị Android?


484

Làm cách nào để có được tệp apk từ thiết bị Android? Hoặc làm cách nào để chuyển tệp apk từ thiết bị sang hệ thống?

Câu trả lời:


119

Sử dụng adb . Với adb pull, bạn có thể sao chép các tập tin từ thiết bị sang hệ thống của mình, khi thiết bị được gắn với USB.

Tất nhiên bạn cũng cần có quyền để truy cập vào thư mục mà tập tin của bạn đang ở. Nếu không, bạn sẽ cần phải root thiết bị trước.


Nếu bạn thấy rằng nhiều APK được đặt tên là "base.apk", bạn cũng có thể sử dụng lệnh một dòng này để kéo tất cả APK khỏi điện thoại mà bạn có thể truy cập trong khi đổi tên bất kỳ tên "base.apk" nào thành tên gói. Điều này cũng khắc phục sự cố không tìm thấy thư mục cho các đường dẫn APK với các ký tự dường như ngẫu nhiên sau tên:

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 2&> /dev/null ;done

Nếu bạn nhận được "adb: error: fail to stat remote object" cho biết bạn không có quyền cần thiết. Tôi đã chạy nó trên một chiếc Moto Z2 đã root và không thể tải xuống TẤT CẢ các APK mà tôi đã không gỡ cài đặt (xem bên dưới) ngoại trừ youtube.

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

(để xem người dùng chạy adb người dùng danh sách vỏ pm) Đây là một cách để loại bỏ / bỏ cài đặt (không phải từ điện thoại như nó trở lại với factory reset) gần như bất kỳ ứng dụng mà không ứng dụng gốc hệ thống BAO GỒM (gợi ý ứng dụng cập nhật gây phiền nhiễu mà cập nhật điện thoại của bạn dòng nó hoặc không có thể được tìm thấy bằng cách grepping cho "ccc")


1
Cảm ơn Maurits Rijk. Xin hãy giúp tôi. Tôi muốn sao chép tệp iTwips.apk từ thiết bị sang hệ thống. Tôi đang sử dụng lệnh sau đây. nó có đúng không ? Tôi đã nhận lỗi "Android2.2Froyo / sdcard / iTwips.apk" không lối thoát ... / Users / bbb / Android / android-sdk-mac_86 / tools / adb pull Android2.2Froyo / sdcard / iTwips.apk / Users / bbb Cảm ơn là trước .......
Finder

Trên thiết bị của tôi (Android 2.1), lệnh sẽ là "adb pull /sdcard/test.jpg" để sao chép test.jpg từ thẻ sd của tôi vào thư mục hiện tại. Vui lòng xác định vị trí tệp iTwips.apk của bạn bằng cách sử dụng "vỏ adb". Điều này bắt đầu một shell trên thiết bị của bạn và bạn có thể sử dụng các lệnh Unix tiêu chuẩn như ls và cd để duyệt các thư mục của bạn.
Maurits Rijk

Xin chào, Trên thực tế, iTwips.apk được lưu trong bộ nhớ trong trên thiết bị. Làm thế nào tôi có thể sử dụng vỏ cho cái này? Tôi đang sử dụng lệnh sau adp -d <devicenumber> shell .. Nhưng nó không hoạt động .. vui lòng hỗ trợ tôi .. Cảm ơn trước.
tìm kiếm

Xin chào, Cảm ơn bạn rất nhiều. Tôi có thể lấy hình ảnh từ sdcard ngay bây giờ. nhưng tôi muốn kéo tập tin apk từ thiết bị (thư mục ManagementApplication). Các apk iTwips được lưu trữ trên thư mục Ứng dụng. Hãy giúp tôi.
tìm kiếm

16
@ Downloader @Maurits Rijk Trên thực tế, bạn không cần phải root thiết bị chỉ để kéo apk. Chừng nào bạn biết đường dẫn đầy đủ của gói ứng dụng đó. Nếu apk được cài đặt, hãy tìm đường dẫn đầy đủ bằng cách trước tiên nhìn vào tên gói adb shell pm list packagesvà đường dẫn đầy đủ của nó adb shell pm path your.package.namesau đó từ máy tính của bạn, bạn có thể chỉ cầnadb pull /full/path/to/your.apk
Isa A

1550

Không có gợi ý nào trong số này làm việc cho tôi, vì Android đã thêm số thứ tự vào tên gói để tạo tên tệp APK cuối cùng. Trên các phiên bản gần đây hơn của Android (Oreo và Pie), một chuỗi ngẫu nhiên không thể đoán trước được thêm vào. Chuỗi lệnh sau đây là những gì làm việc cho tôi trên một thiết bị không root :

1) Xác định tên gói ứng dụng, ví dụ: "com.example.someapp". Bỏ qua bước này nếu bạn đã biết tên gói.

adb shell pm list packages

Xem qua danh sách các tên gói và cố gắng tìm sự trùng khớp giữa ứng dụng được đề cập và tên gói. Điều này thường là dễ dàng, nhưng lưu ý rằng tên gói có thể hoàn toàn không liên quan đến tên ứng dụng. Nếu bạn không thể nhận ra ứng dụng từ danh sách tên gói, hãy thử tìm ứng dụng trong Google Play bằng trình duyệt. URL cho một ứng dụng trong Google Play chứa tên gói.

2) Lấy tên đường dẫn đầy đủ của tệp APK cho gói mong muốn.

adb shell pm path com.example.someapp

Đầu ra sẽ trông giống như
gói: /data/app/com.example.som Ứng dụng-2.apk
hoặc
gói: /data/app/com.example.somản-nFSFSVxn_CTafgra3Fr_rXQ == / base.apk

3) Sử dụng tên đường dẫn đầy đủ từ Bước 2, kéo tệp APK từ thiết bị Android sang hộp phát triển.

adb pull /data/app/com.example.someapp-2.apk path/to/desired/destination

65
Đây là câu trả lời tốt nhất, không cần thiết phải quay cuồng thiết bị !! cảm ơn rất nhiều
Muhannad A.Alhariri

14
Điều này hoạt động trên tất cả các thiết bị Android của tôi và phải là câu trả lời được chấp nhận.
b.mcewan

8
pm list packageshỗ trợ -fcờ, liệt kê vị trí của .apk cho bạn, như thế nào package:/data/app/com.google.android.apps.maps-1.apk=com.google.android.apps.maps. Trợ giúp pm tích hợp là vô ích, nhưng pm cũng có thể lọc các loại gói, hãy xem developer.android.com/studio/command-line/adb.html#pm để biết thêm thông tin. EDIT: chỉ cần nhận thấy rằng các câu trả lời dưới đây cho biết điều này, nhưng câu trả lời đó là gần như không bỏ phiếu tán như thế này.
Hitechcomputergeek

9
Không làm việc cho tôi. Tôi nhận được lỗi sau: adb: error: remote object '/data/app/path.of.the.app-2/base.apk' does not exist. Nếu tôi duyệt các thư mục này bằng trình duyệt tệp, các thư mục trống.
Bevor

8
Tôi gặp vấn đề tương tự như @Bevor, khi kéo tôi gặp lỗi là apk "không tồn tại". Tôi cố định nó bằng cách sử dụng adb shellvà sau đó cp PathToApk /sdcard/và sau đó sao chép từ sdcard.
colin

124

Không có rễ được yêu cầu:

Mã này sẽ có đường dẫn gói bên thứ 3 với tên để bạn có thể dễ dàng xác định APK của mình

adb shell pm list packages -f -3

đầu ra sẽ là

gói: /data/app/XX.XX.XX.apk=YY.YY.YY

Bây giờ hãy kéo gói đó bằng mã bên dưới:

adb pull /data/app/XX.XX.XX.apk

nếu bạn thực hiện trên cmd trong C:>\, thì bạn sẽ tìm thấy gói đó ở đó.


1
Đây là câu trả lời tuyệt vời! Cảm ơn bạn rất nhiều :)
Drag0

1
Đối với một số lý do tôi không thể tìm thấy gói ứng dụng trong tôi / data / app / thư mục. Luôn luôn có một thư mục con ở đó.
IgorGanapolsky

cho các ứng dụng hệ thống sử dụng -f -sthay vì-f -3
palindrom

57

Tôi đã thấy rằng nhiều giải pháp cho vấn đề này hoặc là bạn phải root điện thoại hoặc bạn phải cài đặt một ứng dụng. Sau đó, sau khi googling nhiều, tôi đã có giải pháp này cho điện thoại không root / root.

Để liệt kê những ứng dụng bạn đã nhận được cho đến nay.

adb shell pm list packages

Sau đó, bạn có thể chọn một ứng dụng, ví dụ twitter

adb backup -apk com.twitter.android

Một điều quan trọng ở đây là không thiết lập mật khẩu để mã hóa bản sao lưu của bạn

Điều này sẽ tạo một tệp có tên là backup.ap, nhưng bạn vẫn không thể mở nó. Đối với điều này, bạn phải giải nén nó một lần nữa nhưng sử dụng lệnh dd.

dd if=backup.ab bs=24 skip=1 | openssl zlib -d > backup.tar

Sau đó, tất cả những gì bạn phải làm là trích xuất nội dung tar và thế là xong.

Hy vọng nó hoạt động cho các bạn


7
Từ blog.shvetsov.com/2013/02/ trên , nếu openssl của bạn không có zlib, điều này có thể hoạt động: dd if = backup.ab bs = 1 Skip = 24 | python -c "nhập zlib, sys; sys.stdout.write (zlib.decompress (sys.stdin.read ()))" | tar -xvf -
kodi

1
Đây là những gì làm việc cho tôi, không phải là thủ tục trong câu trả lời được chấp nhận. Và nó thực sự giúp tôi ngày hôm nay khi tôi cần APK của một trong những ứng dụng cũ của tôi nhưng nó không có sẵn cho tôi ngoài điện thoại của tôi.
zeeshan

1
Dưới đây là thông tin thêm nếu openssl của bạn thiếu hỗ trợ zlib: stackoverflow.com/questions/29830981/ Khăn
Nico Wiedemann

19

Các bước để Tải APK từ thiết bị đến máy tính để bàn

A) Hãy chắc chắn rằng bạn đang chạy (emulator / Device thực). Để kiểm tra sử dụng lệnh này

adb devices

B) Chọn tất cả danh sách gói có sẵn được cài đặt trong thiết bị của bạn. Bạn có thể sử dụng lệnh grep để chọn gói cụ thể mà bạn định tải xuống.

adb shell pm list packages
adb shell pm list packages -f -3

Đầu ra (Danh sách các gói có sẵn)

package:/data/app/com.example.mytestapplication-sOzKi5USzfbYLPNDmaaK6g==/base.apk=com.example.mytestapplication
package:/data/app/com.example.myapplication-nd1I4FGnTZnQ9PyRbPDHhw==/base.apk=com.example.myapplication

C) Sao chép gói (mà bạn muốn tải xuống) từ liên kết trên. Hình thành trường hợp của chúng tôi Tôi chọn gói này (com.example.myapplication)

Syntax : adb shell pm path [your_package_name]
Command: adb shell pm path com.example.myapplication

Đầu ra

package:/data/app/com.example.myapplication-nd1I4FGnTZnQ9PyRbPDHhw==/base.apk

D) Cuối cùng, Để tải xuống APK từ (trình giả lập / thiết bị thực) của bạn

Syntax : adb pull /data/app/[your_package_name]-1/base.apk  [your_destination_path]
Command: adb pull /data/app/com.example.myapplication-3j4CVk0Tb2gysElgjz5O6A==/base.apk /Users/$(whoami)/Documents/your_apk.apk

Ví dụ: Đang cố gắng kéo tệp CertInstaller.apk này trong máy cục bộ của bạn (Mac)

adb pull /system/app/CertInstaller/CertInstaller.apk /Users/$(whoami)/Documents/APK/download_apk/

E) Xác nhận trong thư mục địa phương của bạn

ls -la /Users/$(whoami)/Documents/

Mục tiêu là trích xuất một apk duy nhất, nhưng trong bước 4, bạn kéo hai tệp bổ sung mà không cần giải thích hoặc tham chiếu trước đó.
Carles Alcolea

Tôi sửa đổi bài này bằng cách làm rõ mỗi step.hope sửa đổi này sẽ rất hữu ích và dễ hiểu.
Farid Haq

18
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)

Đây là cách đơn giản nhất theo ý kiến ​​của tôi. Cảm ơn!
8bitcartridge

1
Những kẻ sử dụng linux hoặc mac thay vì findstr sử dụng grep
Jeeva

10

Một lớp lót hoạt động cho tất cả các phiên bản Android:

adb shell 'cat `pm path com.example.name | cut -d':' -f2`' > app.apk

1
@AlexP. bạn muốn nói gì với đường dẫn trên?
Vitaly Dyatlov

7

Hoàn thành câu trả lời @Yojimbo 's, đây là những gì tôi đã làm (Linux / Mac chỉ, sẽ không làm việc ra khỏi hộp trên Windows ... có lẽ trong vỏ bash git):

for i in $(adb shell pm list packages -f -3 | cut -d= -f 1 | cut -d ":" -f 2); do adb pull $i; done

Đây là bash xấu xí, nhưng hoạt động :)

EDIT: Nó không còn hoạt động trên AndroidM: tất cả các tập tin được đặt tên là "base.apk" dưới dir khác. Nên "tầm thường" để sửa chữa.


7

Trên các hệ thống unix, bạn có thể thử chức năng này:

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\""
}
  • Ví dụ :android_pull_apk com.android.contacts
  • Lưu ý : Để xác định gói:adb shell pm list packages

6

Như đã nói ở trên, bạn có thể lấy apk bằng cách sử dụng lệnh pull trong adb.

Vì, bạn đang nói về các ứng dụng đã cài đặt của mình, hãy tiếp tục và xem trong thư mục / data / app của hệ thống tệp Android của bạn. Bạn sẽ tìm thấy APK ở đó.

Sau đó sử dụng lệnh adb - adb pull /data/data/appname.apk


6

Hãy thử lệnh bash liner này để sao lưu tất cả các ứng dụng của bạn:

for package in $(adb shell pm list packages -3 | tr -d '\r' | sed 's/package://g'); do apk=$(adb shell pm path $package | tr -d '\r' | sed 's/package://g'); echo "Pulling $apk"; adb pull -p $apk "$package".apk; done

Lệnh này được bắt nguồn từ kịch bản của Firelord . Tôi chỉ đổi tên tất cả các apks thành tên gói của họ để giải quyết vấn đề với tập lệnh của elcuco , tức là giống nhaubase.apk tệp bị ghi đè trên Android 6.0 "Marshmallow" trở lên.

Lưu ý rằng lệnh này chỉ sao lưu các ứng dụng của bên thứ 3, vì tôi không thấy điểm sao lưu các ứng dụng tích hợp. Nhưng nếu bạn muốn ứng dụng hệ thống sao lưu quá, chỉ cần bỏ qua các -3tùy chọn.


5

Nếu bạn biết (hoặc nếu bạn có thể "đoán") đường dẫn đến .apk( dường như định dạng /data/app/com.example.someapp-{1,2,..}.apk, thì bạn có thể sao chép nó từ/data/app . Điều này hoạt động ngay cả trên điện thoại Android gốc, không root của tôi.

Chỉ cần sử dụng ứng dụng Trình mô phỏng đầu cuối (chẳng hạn như ứng dụng này ) và chạy:

# step 1: confirm path
ls /data/app/com.example.someapp-1.apk
# if it doesn't show up, try -2, -3. Note that globbing (using *) doesn't work here.
# step 2: copy (make sure you adapt the path to match what you discovered above)
cp /data/app/com.example.someapp-1.apk /mnt/sdcard/

Sau đó, bạn có thể di chuyển nó từ thẻ SD đến bất cứ nơi nào bạn muốn (hoặc đính kèm nó vào email, v.v.). Bit cuối cùng có thể là tùy chọn về mặt kỹ thuật, nhưng nó giúp cuộc sống của bạn dễ dàng hơn rất nhiều khi cố gắng làm điều gì đó với .apktệp.


5

Các quy trình được nêu ở đây không hoạt động cho Android 7 (Nougat) [và có thể là Android 6, nhưng tôi không thể xác minh]. Bạn không thể kéo các tệp .apk ngay dưới Nougat (trừ khi ở chế độ root, nhưng điều đó yêu cầu điện thoại đã root). Nhưng, bạn có thể sao chép .apk sang một đường dẫn thay thế (giả sử / sdcard / Tải xuống) trên điện thoại bằng cách sử dụng vỏ adb, sau đó bạn có thể thực hiện thao tác kéo adb từ đường dẫn thay thế.


3
Câu trả lời được chấp nhận (bao gồm các adb shelllệnh từ nhận xét của @Isa A) hoạt động tốt với tôi trên Android 7.1.1, chưa được root.
Jonathan Cottrill

4
  1. Mở ứng dụng mà bạn muốn trích xuất các gói ứng dụng từ trên điện thoại của bạn.
  2. Tải ứng dụng hiện đang mở với:

    adb shell dumpsys activity activities | grep mFocusedActivity
  3. Nhận đường dẫn đến tên gói

    adb shell pm path <packagename.apk>

4. Sao chép đường dẫn bạn đến thư mục sdcard

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

5. Đóng gói apk

    adb pull /sdcard/base.apk

Biên tập

Nếu bước 2 không hoạt động, hãy sử dụng bước này:

adb shell dumpsys window windows | grep mCurrentFocus

3

Đây là cách bạn làm điều đó:

Tải xuống và cài đặt APK Extractor trong thiết bị của bạn. Nó là miễn phí và tương thích trong hầu hết các thiết bị Android. Một điểm cộng nữa là nó thậm chí không yêu cầu root hay bất cứ thứ gì để hoạt động. Sau khi bạn đã cài đặt nó, khởi chạy nó. Ở đó bạn sẽ thấy một danh sách các ứng dụng có trong thiết bị của bạn, bao gồm các ứng dụng bạn đã cài đặt sau đó, cùng với các ứng dụng hệ thống. Nhấn và giữ bất kỳ ứng dụng nào bạn muốn giải nén (bạn có thể chọn nhiều hoặc tất cả các ứng dụng cùng một lúc) và nhấp vào tùy chọn giải nén mà bạn thấy ở trên cùng. Bạn cũng sẽ có tùy chọn để chia sẻ qua Bluetooth hoặc nhắn tin. Bạn đã hoàn tất, bạn sẽ thấy các ứng dụng được trích xuất là AppName_AppPackage_AppVersionName_AppVersionCode.apk, sẽ được lưu trong đường dẫn / sdcard / ExtractedApks / theo mặc định.

Để biết mô tả chi tiết về cách giải nén tệp apk trong Android , hãy truy cập: http://appslova.com/how-to-extract-apk-files-in-android/


3

Tất cả các câu trả lời này yêu cầu nhiều bước cho mỗi tệp apk được truy xuất từ ​​thiết bị. 1. xác định tên gói, 2. tìm tệp và 3. tải xuống. Tôi đã xây dựng một apk_grabberkịch bản python đơn giản để làm điều này cho bất kỳ ứng dụng nào phù hợp với một regex nhất định, và sau đó dịch ngược các apks đó thành các tệp jar.


1

Tôi chưa sử dụng mã để kéo tệp .apk từ thiết bị di động nhưng tôi đã sử dụng phần mềm để trích xuất tệp .apk từ điện thoại di động và phần mềm tôi đã sử dụng ở bên dưới với liên kết google play:

  1. Trình quản lý tệp ES File Explorer
  2. ASTRO Cloud & File Manager 3. Cáp dữ liệu phần mềm

Hy vọng nó sẽ giúp bạn.


2
Tôi đã sử dụng ES File Explorer. Tôi không bắt nguồn từ. Tôi vừa truy cập Công cụ -> Trình quản lý ứng dụng và nhấn lâu ứng dụng tôi muốn APK. Điều này đã chọn ứng dụng (và cho phép tôi chọn người khác). Tôi nghĩ đã nhấn nút Chia sẻ và có thể tự gửi APK cho mình (sử dụng Push Bullet, nhưng những gì đã từng làm cho bạn).
schultzter

Nếu bạn không bị mục nát thì bạn có thể thử sao lưu ứng dụng và khôi phục play.google.com/store/apps/details?id=mobi.infolife.appbackup
surhidamatya


1

Không có Root và không có công cụ ADB yêu cầu phương pháp. Cài đặt ứng dụng MyAppSharer từ cửa hàng play.


1

tôi có một does not exist error

Đây là cách tôi làm cho nó hoạt động

adb shell pm list packages -f | findstr zalo
package:/data/app/com.zing.zalo-1/base.apk=com.zing.zalo

adb shell
mido:/ $ cp /data/app/com.zing.zalo-1/base.apk /sdcard/zalo.apk
mido:/ $ exit


adb pull /sdcard/zalo.apk Desktop

/sdcard/zalo.apk: 1 file pulled. 7.7 MB/s (41895394 bytes in 5.200s)

0

Một tập lệnh bash khác (tức là sẽ hoạt động cho hầu hết các hệ thống dựa trên unix). Dựa trên câu trả lời của Pedro Coleues , nhưng hơi dễ sử dụng hơn.

Những cải tiến so với phiên bản của Pedro:

  1. Cách tiếp cận ban đầu không hiệu quả với tôi trên Android 7: adb pulltiếp tục phàn nàn no such file or directorytrong khi adb shellcó thể truy cập tệp. Do đó tôi đã sử dụng phương pháp khác nhau, với tập tin tạm thời.
  2. Khi được khởi chạy mà không có đối số, tập lệnh của tôi sẽ chỉ liệt kê tất cả các gói có sẵn. Khi tên gói một phần được cung cấp, nó sẽ cố gắng đoán tên gói đầy đủ. Nó sẽ khiếu nại nếu có một số mở rộng có thể.
  3. Tôi không đường dẫn đích mã hóa cứng; thay vào đó APK được lưu vào thư mục làm việc hiện tại.

Lưu cái này vào một tập tin thực thi:

#!/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

Đơn giản nhất là: Cài đặt ứng dụng "ShareIt" trên điện thoại. Bây giờ cài đặt ứng dụng shareIt trong PC hoặc điện thoại khác. Bây giờ từ điện thoại, nơi ứng dụng được cài đặt, hãy mở ShareIt và gửi. Trên điện thoại hoặc PC khác, hãy mở ShareIt và nhận.


0

Tôi thực sự thích tất cả những câu trả lời. Hầu hết các tập lệnh để xuất và đổi tên tất cả chúng được viết bằng Bash. Tôi đã tạo một tập lệnh Perl nhỏ tương tự (hoạt động cả trong Perl cho windows và linux, chỉ được thử nghiệm trên Ubuntu).

tải về -apk.pl

#!/usr/bin/perl -w
# Automatically export all available installed APK's using adb
use strict;
print "Connect your device...\n";
system("adb", "wait-for-device");
open(my $OUT, '-|', 'adb', 'shell', 'pm', 'list', 'package', '-f');
my @list = split(/\s*/, `adb shell pm list packages -f`);
my $count = 0;
while(my $line = <$OUT>) {
        $line =~ s/^\s*|\s*$//g;
        my ($type, $path, $package) = $line =~ /^(.*?):(.*)=(.*)$/ ? ($1,$2,$3) : die('invalid line: '.$line);
        my $category = $path =~ /^\/(.*?)\// ? $1 : 'unknown';
        my $baseFile = $path =~ /\/([^\/]*)$/ ? $1 : die('Unknown basefile in path: '.$path);
        my $targetFile = "$category-$package.apk";
        print "$type $category $path $package $baseFile >> $targetFile\n";
        system("adb", "pull", $path);
        rename $baseFile, $targetFile;
}
  1. Đảm bảo adb (.exe) nằm trong đường dẫn của bạn hoặc cùng thư mục
  2. Kết nối điện thoại của bạn
  3. Chạy download-apk.pl

Đầu ra là một cái gì đó tương tự như:

# ./download-apk.pl
Connect your device...
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
package system /system/app/YouTube/YouTube.apk com.google.android.youtube YouTube.apk >> system-com.google.android.youtube.apk
5054 KB/s (11149871 bytes in 2.154s)
package data /data/app/com.ghostsq.commander-1/base.apk com.ghostsq.commander base.apk >> data-com.ghostsq.commander.apk
3834 KB/s (1091570 bytes in 0.278s)
package data /data/app/de.blinkt.openvpn-2/base.apk de.blinkt.openvpn base.apk >> data-de.blinkt.openvpn.apk
5608 KB/s (16739178 bytes in 2.914s)
etc.

-1

Điều này sẽ giúp cho một người đang tìm kiếm một câu trả lời phi kỹ thuật

Đây là hack đơn giản

Tải ứng dụng App Share/Send Protừ cửa hàng google play. Chọn ứng dụng bạn muốn gửi và phương thức gửi ứng dụng.

Tôi thường sử dụng Bluetooth để gửi các ứng dụng đến máy tính của tôi hoặc điện thoại khác.


Thật không dễ sử dụng
APEXBoi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.