1

For example, if I install Google Chrome on my phone (assume it's not prebuilt), whatever the original name of the apk is, it will usually be installed to /data/app/com.android.chrome-1.apk but sometimes /data/app/com.android.chrome-2.apk and even xxx-3.apk or xxx-4.apk
My question is what the number in that case mean and how is it generated? It's often varying and I haven't found any clue.

2 Answers 2

3

The number has no special meanings. It is used to distinguish old and new packages during installation. While installing an app, the Package Installer first finds an available 'packageid-number' pattern, with the number incrementing from 1, and creates the directory (APK file for Android 5.0 and under). Then it places the APK file in it and removes the old one. Therefore, most commonly the number only varies from 1 to 2 because only one instance of an installed app exists. Summing up the old app and the temporary name, there can only be 2 instances. If you have, by some other means like installing 2 of the same app using a parallel container, there can be up to 4 instances of the app, thus creating com.example-4.

Here's my experiment on Android 5.1.1, using Root Explorer to install the app and Terminal Emulator to monitor directory content change.
Preparation: Use XInstaller (an Xposed module) to allow downgrade installing app (so that I can repeatedly install the same version of an app).
1. Tap the prepared APK file in Root Explorer to install it. In my case, it's Termux.
2. Repeatedly run

root@android:/data/app # ls -d com.termux-*

Output:
First: com.termux-1
After some time: com.termux-1 com.termux-2
After more time and finally: com.termux-2
3. Tap the APK to install it again and repeat Step 2.
Output:
First: com.termux-2
After some time: com.termux-1 com.termux-2
After more time and finally: com.termux-1
4. Create placeholder directories named com.termux-2, com.termux-3, com.termux-4 and set correct permissions.
5. Repeat Step 3.
Output:
First:

com.termux-1  com.termux-2  com.termux-3  com.termux-4
After some time:
com.termux-1  com.termux-2  com.termux-3  com.termux-4  com.termux-5
After more time and finally:
com.termux-2  com.termux-3  com.termux-4  com.termux-5
Where com.termux-2, com.termux-3, com.termux-4 are all empty as they are created by me, not the Package Installer. To verify, run

root@android:/data/app # pm list packages -f | grep com.termux
package:/data/app/com.termux-5/base.apk=com.termux
2

If you first install the package, it will have a "-1" appended to the folder name. Every time you update the same package without uninstalling, regardless of how it's done, the number increments by itself.

2
  • Did some experiments and I'm going to answer it myself.
    – iBug
    Commented Jan 31, 2017 at 11:27
  • 1
    Looking forward to it. Dedicated experiment > occasional experience.
    – Andy Yan
    Commented Jan 31, 2017 at 11:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .