Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit adcd346d authored by Robin Lee's avatar Robin Lee
Browse files

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
parent 6c0b3e82
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -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,15 +148,16 @@ 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;
        if (!TextUtils.isEmpty(allowedPackage)) {
            try {
            allowedUid = pm.getPackageUidAsUser(allowedPackage,
                    PackageManager.MATCH_SYSTEM_ONLY, userHandle);
                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;
    }