Fix NNFE when starting PersistentDataBlock
If the PersistentDataBlockService doesn't have a package configured to use the block (R.string.config_persistentDataPackageName == "") then we are currently getting this error: Started executing PersistentDataBlockService.onStart not able to find package android.content.pm.PackageManager$NameNotFoundException: at ApplicationPackageManager.getPackageUidAsUser at PersistentDataBlockService.getAllowedUid at PersistentDataBlockService.lambda$onStart On devices which do not use FRP, this field is blank so we should not log this message every time. Test: adb logcat -b all | grep PersistentDataBlockService.lambda Bug: 168244899 Change-Id: I738f20ad62e5e380181111179efea91cd915faf9
This commit is contained in:
@@ -30,6 +30,7 @@ import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.service.persistentdata.IPersistentDataBlockService;
|
||||
import android.service.persistentdata.PersistentDataBlockManager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Slog;
|
||||
|
||||
import com.android.internal.R;
|
||||
@@ -147,14 +148,15 @@ public class PersistentDataBlockService extends SystemService {
|
||||
private int getAllowedUid(int userHandle) {
|
||||
String allowedPackage = mContext.getResources()
|
||||
.getString(R.string.config_persistentDataPackageName);
|
||||
PackageManager pm = mContext.getPackageManager();
|
||||
int allowedUid = -1;
|
||||
try {
|
||||
allowedUid = pm.getPackageUidAsUser(allowedPackage,
|
||||
PackageManager.MATCH_SYSTEM_ONLY, userHandle);
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
// not expected
|
||||
Slog.e(TAG, "not able to find package " + allowedPackage, e);
|
||||
if (!TextUtils.isEmpty(allowedPackage)) {
|
||||
try {
|
||||
allowedUid = mContext.getPackageManager().getPackageUidAsUser(
|
||||
allowedPackage, PackageManager.MATCH_SYSTEM_ONLY, userHandle);
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
// not expected
|
||||
Slog.e(TAG, "not able to find package " + allowedPackage, e);
|
||||
}
|
||||
}
|
||||
return allowedUid;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user