Уже принят ответ, но я предполагаю, что приведенная ниже информация будет полезна для других пользователей.Просто пытался понять суффиксы LPr, LPw, LI и LIF и нашел следующее в документации:
Внутренне есть две важные блокировки:
1) **mPackages** is used to guard all in-memory parsed package details
and other related state. It is a fine-grained lock that should only be
held momentarily, as it's one of the most contended locks in the system.
2) **mInstallLock** is used to guard all installd access, whose
operations typically involve heavy lifting of application data on disk.
Since installd is single-threaded, and it's operations can often be slow,
this lock should never be acquired while already holding mPackages .
Conversely, it's safe to acquire mPackages momentarily while already
holding mInstallLock.
Many internal methods rely on the caller to hold the appropriate locks, and
this contract is expressed through method name suffixes:
fooLI(): the caller must hold mInstallLock
fooLIF(): the caller must hold mInstallLock and the package being modified
must be frozen
fooLPr(): the caller must hold mPackages for reading
fooLPw(): the caller must hold mPackages for writing