Com.google.android.packageinstaller: The package installer is precisely known as an Android package installer, which is mostly abbreviated as ‘APK‘ in common language. It is an analogue to the zip file and is used by the Android on your phone, to download or install all apps. The Android itself further compresses this zip file for ease in installation. For the installation of any particular app, the package installer first needs to extract the app. After the extraction is done, the app is ready on your phone or tablet anything. Maybe this installation can take a bit longer in many smartphones as after this, it may ask for security checks also.
In easy words, the package installer is not only used to install new applications on your phone but can also update the apps. It is too responsible for the un-installation of applications from your phone or tablet.
Your smartphone may update your apps daily without your knowledge, and this happens with the help of the package installer. This can be viewed in the history of your apps. This Android package installer is a Google service, and this service provides support in two forms, one as a monolithic APK or else as split APK for apps. So basically, if you see any APK word in your phone history, don’t worry. Nothing wrong has happened to your phone.
Now, this APK downloads the app in small packages, and hence it got this name of package installer. This is a default application on your phone, and you cannot delete it from your device. The package installer gives the user a platform to manage the applications. The package installer asks for permission from the InstallAppProgress to receive the instructions given by the user that is us. Further, this InstallAppProgress again asks its head that is package manager service, to install the package/application. This process is done by installd.
Installd: The process “installd”, processes with a “d” at the end, is a daemon, which implies it operates in the background and manages system functions.
Now here comes to install daemon into the picture. This installd collects the request from the package manager through a Linux socket. These must already be present on your mobile phone. This installd has to follow a few necessary steps in order to install the APK.
Difference between installer and manager
Now you would ask what a package manager is. So, the package manager is precisely an application program interface (API). This interface actually manages the installation or updation of apps. The package manager is widely known as an install manager. Now you would say that this was the work of package installer. So what’s the difference? Often people misinterpret these two as the same things, but they aren’t. Let’s understand the difference.
- Location – the package manager is located in the central install database, whereas the package installer’s location is totally on the judgment of itself. It could be a file in the operating system of your phone or else a file in the app itself.
- Shipping– a package installer is shipped with each computer program, but a package manager is usually shipped with the operating system.
- Maintenance – the scope of package installer’s maintenance is with which it was bundled, but for a package manager, it is, all the packages on the operating system.
- Development – a package installer is developed by numerous installer developers, whereas the package manager has only one vendor.
Basically, the package manager is a bit different and is responsible for the distribution of data and software. Whenever we install any APK file on our device, this package manager analyses the file and pops you the confirmation. And as soon as you press the ‘OK’ button, the manager starts calling the ‘installPackage method.‘ This method has four parameters that are: Uri, Observer, installFlags, and installPackageName.
Now, the package manager initiates a ‘package’ service. Lookup for ‘InstallAppProgress.java’ in the installer source code to know what happens under this service.
Storage of APK files
Now the next question in our mind should be where do these files get stored? So there are multiple ways and answers to this. Not all apps work alike.
One category is the pre-install category that is there in our camera, calendar, browser. In these applications, APK is stored in /system/app/
Secondly, the category is the user install category, and the following are a few things that fall under this category: ApiDemo, any.do, etc. These files stored under /data/app.
The third category is in which package manager makes a directory for all types of data. These data include shared preferences, cache data, and native libraries. All of this is stored under /data/data/<package name>/. Sometimes you may see your APK file ending with *.odex file. This is a bit different thing and currently not relevant to this topic.
The package installation process occurs within the package manager’s service.
- The user will add a package/application for its installation on his phone in the queue.
- The next step is analyzing the location of the application or package.
- Then press install or update
- After that, you have to copy the APK file to someplace or directory.
- Now, locate the User ID of the app.
- Ask for the installd process.
- Prepare an application directory and then fix the permissions.
- After all, this extracts the dex code to another directory of the cache.
- Next step is to reflect the packages.list/system/data/packages.xml with its latest updated status.
- Then transmit it to the system with its name of the complete package.
Storage of data
The package manager stores the data in three forms:
The XML file listed above can store two things:
- One is the permission
- Second is the package/application
These permissions are stored within the permissions tag in your device. And for each permission, there are basically three attributes. These attributes are name, protection, and the package. Let’s start with the first attribute, i.e., name, which has the name of the permission, which we use in AndroidManifest.xml. Next comes the protection attribute that is used to depict the security of the package. Third comes the package attribute, that shows permissions given to the package.
The package tag has around ten attributes within along with some subtags.
read also: Fastboot commands
- Name – it includes the package name.
- NativeLibraryPath – it is the native library whose default path is /data/data/<package name>/lib/.
- CodePath – it can be defined as the location of the installation of the APK file.
- User Id – it is the ID/name of the Linux user.
- Version – it is the code of version of the file AndroidManifest.xml.
- ShareUserId – it is that the Linux UID which will be shared between different apps.
- ft – the hex format timestamp.
- it – the hex format timestamp with the first installation.
- ut – the hex format timestamp with the last update.
- Flags – it stores the information on the flags of apps.
1. Sigs: It stores the information about the signature. Also, the count keeps a check on the number of cert tags in a file.
2. Cert: The cert consists of many certification keys. Also, the index keeps a check on the index of the certification. This value increases when you install new certificates along with applications.
3. Perm: it provides the information about permissions that developers have set in AndroidManifest.xml file.
This can be defined as a simple text file that simply contains the names of the package, the userId, flags, etc. There’s no solid proof, but the only experience with which I can say that package. The list looks up for pre-installed packages faster. The only reason behind this is that it keeps the most important data only.
This method includes the packages that are in stopped condition or state. These stopped-state apps do not get any signal. There are so many package installer apps also that are available online. Following is the list of the best package installers.
Best package installers
- APK installer pro – This is one of the best apps in the package installers category. It has been rated 3.8, which is the highest compares to rest all. It is available in two versions, one is the free version that contains ads, and another one is an in-app purchase that will provide you ad-free service.
- APK installer – This app is an excellent competence of the previous one as nearly rated 3.8 overall. This is 2.2MB storage. This simply has a free version with ads. No other in-app purchase is there. More than 10 million people have also downloaded it.
- APK installer /APK manager/ APK sharer – This app by gallery new, provides more than just the installer does. It has rated 3.7 overall and around 100K downloads by far. This is a 3.2MB app also contains ads with no in-app purchase again. This also gives you an APK backup option.
read also: ok google not working
So basically, if you see com.google.android.packageinstaller anywhere in your Google history, there’s nothing to worry about. It is just the normal process your device is going through and downloading some APK files. This package installer is simply doing its job of installation, Uninstall Action, and updation of apps.