MES三层架构与离散制造流程制造差异:钢铁行业实施避坑指南
2026/10/14 11:11:09
release/frameworks/base/services/core/java/com/android/server/pm/InstallPackageHelper.java#handlePackagePostInstallvoidhandlePackagePostInstall(InstallRequestrequest,booleanlaunchedForRestore){finalbooleankillApp=(request.getInstallFlags()&PackageManager.INSTALL_DONT_KILL_APP)==0;finalbooleansucceeded=request.getReturnCode()==PackageManager.INSTALL_SUCCEEDED;finalbooleanupdate=request.isUpdate();finalbooleanarchived=request.isArchived();finalStringpackageName=request.getName();finalComputersnapshot=mPm.snapshotComputer();finalPackageStateInternalpkgSetting=succeeded?snapshot.getPackageStateInternal(packageName):null;finalbooleanremovedBeforeUpdate=(pkgSetting==null)||(pkgSetting.isSystem()&&!pkgSetting.getPath().getPath().equals(request.getPkg().getPath()));if(succeeded&&removedBeforeUpdate){Slog.e(TAG,packageName+" was removed before handlePackagePostInstall "+"could be executed");request.setReturnCode(INSTALL_FAILED_PACKAGE_CHANGED);request.setReturnMessage("Package was removed before install could complete.");// Remove the update failed package's older resources safely nowmRemovePackageHelper.cleanUpResources(packageName,request.getOldCodeFile());mPm.notifyInstallObserver(request);return;}if(succeeded){Slog.i(TAG,"installation completed for package:"+packageName+". Final code path: "+pkgSetting.getPath().getPath());if(Flags.aslInApkAppMetadataSource()&&pkgSetting.getAppMetadataSource()==APP_METADATA_SOURCE_APK){if(!extractAppMetadataFromApk(request.getPkg(),pkgSetting.getAppMetadataFilePath(),pkgSetting.isSystem())){synchronized(mPm.mLock){PackageSettingsetting=mPm.mSettings.getPackageLPr(packageName);if(setting!=null){setting.setAppMetadataFilePath(null).setAppMetadataSource(APP_METADATA_SOURCE_UNKNOWN);}}}}// Clear the uid cache after we installed a new package.mPm.mPerUidReadTimeoutsCache=null;mPm.notifyInstantAppPackageInstalled(request.getPkg().getPackageName(),request.getNewUsers());finalint[]firstUserIds=request.getFirstTimeBroadcastUserIds();if(request.getPkg().getStaticSharedLibraryName()==null){mPm.mProcessLoggingHandler.invalidateBaseApkHash(request.getPkg().getBaseApkPath());//add install gts test-------------------if(packageName.equals("com.google.android.gts.media.router")||packageName.equals("com.google.android.usb.gts")){SystemProperties.set("persist.stb.gts.test","true");}}......release/frameworks/base/services/core/java/com/android/server/pm/DeletePackageHelper.java#deletePackageVersionedInternalpublicvoiddeletePackageVersionedInternal(VersionedPackageversionedPackage,finalIPackageDeleteObserver2observer,finalintuserId,finalintdeleteFlags,finalintcallingUid,finalbooleanallowSilentUninstall){mPm.mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DELETE_PACKAGES,null);finalComputersnapshot=mPm.snapshotComputer();finalbooleancanViewInstantApps=snapshot.canViewInstantApps(callingUid,userId);Preconditions.checkNotNull(versionedPackage);Preconditions.checkNotNull(observer);Preconditions.checkArgumentInRange(versionedPackage.getLongVersionCode(),PackageManager.VERSION_CODE_HIGHEST,Long.MAX_VALUE,"versionCode must be >= -1");finalStringpackageName=versionedPackage.getPackageName();finallongversionCode=versionedPackage.getLongVersionCode();//add uninstall gts test--------------------if("com.google.android.gts.media.router".equals(packageName)||"com.google.android.usb.gts".equals(packageName)){SystemProperties.set("persist.stb.gts.test","false");}......如果对你有帮助,就一键三连呗(关注+点赞+收藏),我会持续更新更多干货~~