Hi Haldny da Silva dos Santos, thanks for sharing the response.
please go through the below statement for your query:
Android provides an even stronger inter-app trust relationship than using signature permissions, the ability for different apps to run as the same UID, and optionally in the same process. It is usually referred to as ‘shared user ID’. This feature is extensively used by core framework services and system applications, and while the Android team does not recommend that third-party applications use it, it is available to user applications as well. It is enabled by adding the android:sharedUserId
attribute to AndroidManifest.xml
it's the root element. The 'user ID' specified in the manifest needs to be in Java package format (containing at least one '.') and is used as an identifier, much like package names for applications. If the specified shared UID does not exist it is simply created, but if another package with the same shared UID is already installed, the signing certificate is compared to that of the existing package, and if they do not match, a INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
error is returned and installation fails. Adding the sharedUserId
to the new version of an already installed app will cause it to change its UID, which would result in losing access to its own files (that was the case in some previous Android versions). Therefore, this is disallowed by the system, and it will reject the update with the INSTALL_FAILED_UID_CHANGED
error. In short, if you plan to use shared UID for your apps, you have to design for it from the start, and have them use it since the very first release.