apkreport Sign in

Your phone, step by step.

Plug the phone in, then choose what to do with it: check its apps here, back them up to this computer, or put a backup back on a phone.

No cable, or not on Chrome?

The Android app checks the apps from the phone itself: the same reports, and from Pro up, backups to the vault and a notification when an app changes.

Get the Android app

Checking a phone needs an account; a free one is enough.

Sign in to check a phone

Turning on USB debugging

  1. Settings, About phone, tap Build number seven times.
  2. Settings, System, Developer options, turn on USB debugging.
  3. Plug in the cable and accept the prompt the phone shows.

Apps you installed are listed on their own; tick the second box to include the ones that came with the phone. Their APKs can be checked too; there are simply several hundred of them.

If the phone does not appear

Device is busy
A running adb server or the phone maker's desktop software holds the phone. Close it, run adb kill-server (Windows: taskkill /F /IM adb.exe) and try again. The browser cannot do that for you.
Nothing in the picker
USB debugging is off, the cable is charge-only, or on Windows the adb interface sits on a vendor driver; Zadig can bind WinUSB to it.
No prompt on the phone
Unplug, replug, and watch the phone's screen: the "Allow USB debugging" dialog is what authorises this computer.

Checking writes nothing to the phone

Checking and backing up only read, and this is the whole of what they ask the phone for:

getprop                             the phone's settings, in one dump
pm list packages -3                 the apps you installed
pm list packages -s                 the ones that came with the phone
pm list packages -i                 which store each app came from
pm list packages --show-versioncode which version of each
pm path <package>                   where that app's files are
sha256sum <file>                    each APK's checksum, worked out on the phone
stat -c %s <file>                   and its size

The getprop dump comes back whole; what is taken out of it is the model and brand, the marketing name, the Android version and its API level, the build id, the security patch date and the processor kinds. Nothing else of it is kept or sent. The checksums are what tell a build the site has checked before from one it has not, so a build already on file is never copied over the cable.

Then it copies the files of the apps you chose. Nothing is installed, changed or deleted, no app is launched, and nothing else is read - not messages, photos, accounts or app data. An APK is the same file for everyone running that version of that app; it carries none of your own.

Putting apps back is the one thing here that writes, and only when you press Install selected: the files of the apps you picked are copied to /data/local/tmp and installed through the package manager the way adb install does it, then the copies are deleted. The apps come back without their data - that never left the phone.

Rather pull them yourself

The phone does not have to be connected here at all. Pull what you want with your own adb and upload the files on Upload an APK:

adb shell pm list packages -3
adb shell pm path com.example.app
adb pull /data/app/~~Ab.../com.example.app-Xy.../base.apk

Upload every file of one app together - the base and its split_*.apk - and they are checked as one app, which is how the phone installed it. Pulling the whole directory takes the lot in one go:

adb pull /data/app/~~Ab.../com.example.app-Xy.../ com.example.app