2

如果我从我的 Android 设备上卸载一个应用程序并重新安装它,用户 ID 会改变吗?比如用户之前是app-60,重装后会不会又是app-60(uid 60)?

4

2 回答 2

6

摘自安全和权限“在安装时,Android 为每个包提供了一个不同的 Linux 用户 ID。在该设备上包的整个生命周期内,身份保持不变。在不同的设备上,相同的包可能有不同的 UID;什么重要的是每个包在给定设备上都有一个不同的 UID。”

安装应用程序时,Android 默认 (1) 会专门为该包创建一个 UID,以便它可以拥有其私有资源/存储空间。当没有包再使用该 UID 时,该 UID 将被删除。

所以我相信它会改变。您可以使用 Pratik 的代码检查并确定连续安装后的差异。

是包管理器服务的代码。可能是深入挖掘的起点。

于 2013-01-22T07:30:23.187 回答
0

您可以在应用程序中获取UID

String your app_selected = "your package name";
final PackageManager pm = getPackageManager();
//get a list of installed apps.
List<ApplicationInfo> packages = pm.getInstalledApplications(
        PackageManager.GET_META_DATA);
int UID;
//loop through the list of installed packages and see if the selected
//app is in the list
for (ApplicationInfo packageInfo : packages) {
    if(packageInfo.packageName.equals(app_selected)){
        //get the UID for the selected app
        UID = packageInfo.uid;

    }
}
于 2013-01-22T07:27:59.153 回答