More granular locks.

Basic implementation, turned off for AOSP for now as it's missing packageName.

Bug: 201090222
Test: atest PackageManagerShellCommandTest PackageManagerShellCommandIncrementalTest installd_service_test installd_cache_test installd_utils_test

Change-Id: Ia673b60d043cb99214001d99cbc8c6e6929f7a05
diff --git a/cmds/installd/InstalldNativeService.h b/cmds/installd/InstalldNativeService.h
index 8cfda01..78a47b3 100644
--- a/cmds/installd/InstalldNativeService.h
+++ b/cmds/installd/InstalldNativeService.h
@@ -182,6 +182,9 @@
 private:
     std::recursive_mutex mLock;
 
+    std::unordered_map<userid_t, std::weak_ptr<std::recursive_mutex>> mUserIdLock;
+    std::unordered_map<std::string, std::weak_ptr<std::recursive_mutex>> mPackageNameLock;
+
     std::recursive_mutex mMountsLock;
     std::recursive_mutex mQuotasLock;