教你获取别人抖音uid 达人uid在哪里查看

多条告白如次剧本只需引入一次
uid体制
uid:Android体例中uid用来标识一个运用步调,uid在运用安置时被调配,而且在运用生存于大哥大上功夫,都不会变换 。一个运用步调只能有一个uid,多个运用不妨运用sharedUserId 办法共享同一个uid,基础是那些运用的出面要沟通 。
uid pid gid gids 的含意和效率uid 的调配察看运用UID 的几种办法经过uid获得包名,经过包名获得uid底下一切波及的示例代码都是鉴于 Android 8.1的 。
1. uid pid gid gids 的含意和效率
uid:android中uid用来标识一个运用步调,uid在运用安置时被调配,而且在运用生存于大哥大上功夫,都不会变换 。一个运用步调只能有一个uid,多个运用不妨运用sharedUserId 办法共享同一个uid,基础是那些运用的出面要沟通 。pid:过程ID,可变的gid:对应于linux顶用户组的观念,android 中 gid 即是uidgids:个GIDS十分于一个权力的汇合,一个UID不妨关系GIDS,表白该UID具有多种权力一个过程即是host运用步调的沙箱,内里普遍有一个UID和多个GIDS,每个过程只能考察UID的权力范畴内的文献和GIDs所承诺考察的接口,形成了Android最基础的安定普通 。
2. UID 的调配:
app 的 UID 和 GID 是安置的功夫就确认的, 要害的代码如次:PMS中:
private PackageParser.Package scanPackageDirtyLI(PackageParser.Package pkg,final int policyFlags, final int scanFlags, long currentTime, @Nullable UserHandle user)throws PackageManagerException {if (DEBUG_PACKAGE_SCANNING) {if ((policyFlags & PackageParser.PARSE_CHATTY) != 0)Log.d(TAG, "Scanning package " + pkg.packageName);}applyPolicy(pkg, policyFlags);.....................................if (pkgSetting == null) {.......................// SIDE EFFECTS; updates system state; move elsewhereif (origPackage != null) {mSettings.addRenamedPackageLPw(pkg.packageName, origPackage.name);}//主假如这句,PMS 保护着 mSettings 这个数据构造,内里保存着一切运用的安置消息mSettings.addUserToSettingLPw(pkgSetting);} else {// REMOVE SharedUserSetting from method; update in a separate call.//// TODO(narayan): This update is bogus. nativeLibraryDir & primaryCpuAbi,// secondaryCpuAbi are not known at this point so we always update them// to null here, only to reset them at a later point.Settings.updatePackageSetting(pkgSetting, disabledPkgSetting, suid, destCodeFile,pkg.applicationInfo.nativeLibraryDir, pkg.applicationInfo.primaryCpuAbi,pkg.applicationInfo.secondaryCpuAbi, pkg.applicationInfo.flags,pkg.applicationInfo.privateFlags, pkg.getChildPackageNames(),UserManagerService.getInstance(), usesStaticLibraries,pkg.usesStaticLibrariesVersions);}....................return pkg;}framework *** aseservicescorejavacomandroidserverpmSettings.java:
【教你获取别人抖音uid达人uid在哪里查看】/** * Registers a user ID with the system. Potentially allocates a new user ID. * @throws PackageManagerException If a user ID could not be allocated. */void addUserToSettingLPw(PackageSetting p) throws PackageManagerException {if (p.appId == 0) {// Assign new user IDp.appId = newUserIdLPw(p);} else {// Add new setting to list of user IDsaddUserIdLPw(p.appId, p, p.name);}if (p.appId < 0) {PackageManagerService.reportSettingsProblem(Log.WARN,"Package " + p.name + " could not be assigned a valid UID");throw new PackageManagerException(INSTALL_FAILED_INSUFFICIENT_STORAGE,"Package " + p.name + " could not be assigned a valid UID");}}// uid 的调配// Returns -1 if we could not find an available UserId to assignprivate int newUserIdLPw(Object obj) {// Let's be stupidly inefficient for now...final int N = mUserIds.size();//从0发端,找到之一个未运用的ID,此处对应之前有运用被移除的情景,复用之前的IDfor (int i = mFirstAvailableUid; i < N; i++) {if (mUserIds.get(i) == null) {mUserIds.set(i, obj);return Process.FIRST_APPLICATION_UID + i;}}//最多只能安置 9999 个运用// None left?if (N > (Process.LAST_APPLICATION_UID-Process.FIRST_APPLICATION_UID)) {return -1;}mUserIds.add(obj);// 不妨证明干什么普遍运用的UID 都是从 10000发端的return Process.FIRST_APPLICATION_UID + N;}3. 察看运用UID 的几种办法
本领1: ps 吩咐计划这个 u0_a106 就表白该运用是 user 0(主用户)底下的运用,id是 106,前方说过 普遍运用步调的UID 都是从 10000发端的,以是 最后计划出的 UID 即是 10106
多用户情景下的 UID 计划一致:
不妨看到 工效率户的 userID 是 14,反面是一律的 。计划办法是:
/*** Returns the uid that is composed from the userId and the appId.* @hide*/public static int getUid(@UserIdInt int userId, @AppIdInt int appId) {if (MU_ENABLED) {//能否扶助多用户//PER_USER_RANGE为 100000return userId * PER_USER_RANGE + (appId % PER_USER_RANGE);} else {return appId;}}以是结果 处事空间内运用的 UID 是 100000 * 14 + 10106 = 1410106

推荐阅读