Loading ApiDocs.bp +1 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ stubs_defaults { ":opt-telephony-srcs", ":opt-net-voip-srcs", ":art-module-public-api-stubs-source", ":conscrypt.module.public.api.stubs.source", ":conscrypt.module.public.api{.public.stubs.source}", ":android_icu4j_public_api_files", "test-mock/src/**/*.java", "test-runner/src/**/*.java", Loading StubLibraries.bp +1 −1 Original line number Diff line number Diff line Loading @@ -69,7 +69,7 @@ stubs_defaults { name: "metalava-full-api-stubs-default", defaults: ["metalava-base-api-stubs-default"], srcs: [ ":conscrypt.module.public.api.stubs.source", ":conscrypt.module.public.api{.public.stubs.source}", ":framework-updatable-sources", ], sdk_version: "core_platform", Loading apex/blobstore/service/java/com/android/server/blob/BlobMetadata.java +4 −1 Original line number Diff line number Diff line Loading @@ -212,7 +212,10 @@ class BlobMetadata { } boolean isAccessAllowedForCaller(@NonNull String callingPackage, int callingUid) { // TODO: verify blob is still valid (expiryTime is not elapsed) // Don't allow the blob to be accessed after it's expiry time has passed. if (getBlobHandle().isExpired()) { return false; } synchronized (mMetadataLock) { // Check if packageName already holds a lease on the blob. for (int i = 0, size = mLeasees.size(); i < size; ++i) { Loading apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java +12 −0 Original line number Diff line number Diff line Loading @@ -1059,6 +1059,18 @@ public class BlobStoreManagerService extends SystemService { } } boolean isBlobAvailable(long blobId, int userId) { synchronized (mBlobsLock) { final ArrayMap<BlobHandle, BlobMetadata> userBlobs = getUserBlobsLocked(userId); for (BlobMetadata blobMetadata : userBlobs.values()) { if (blobMetadata.getBlobId() == blobId) { return true; } } return false; } } @GuardedBy("mBlobsLock") private void dumpSessionsLocked(IndentingPrintWriter fout, DumpArgs dumpArgs) { for (int i = 0, userCount = mSessions.size(); i < userCount; ++i) { Loading apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerShellCommand.java +18 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,8 @@ class BlobStoreManagerShellCommand extends ShellCommand { return runDeleteBlob(pw); case "idle-maintenance": return runIdleMaintenance(pw); case "query-blob-existence": return runQueryBlobExistence(pw); default: return handleDefaultCommands(cmd); } Loading Loading @@ -91,6 +93,16 @@ class BlobStoreManagerShellCommand extends ShellCommand { return 0; } private int runQueryBlobExistence(PrintWriter pw) { final ParsedArgs args = new ParsedArgs(); if (parseOptions(pw, args) < 0) { return -1; } pw.println(mService.isBlobAvailable(args.blobId, args.userId) ? 1 : 0); return 0; } @Override public void onHelp() { final PrintWriter pw = getOutPrintWriter(); Loading Loading @@ -121,6 +133,8 @@ class BlobStoreManagerShellCommand extends ShellCommand { pw.println(" --tag: Tag of the blob to delete."); pw.println("idle-maintenance"); pw.println(" Run idle maintenance which takes care of removing stale data."); pw.println("query-blob-existence [-b BLOB_ID]"); pw.println(" Prints 1 if blob exists, otherwise 0."); pw.println(); } Loading @@ -147,6 +161,9 @@ class BlobStoreManagerShellCommand extends ShellCommand { case "--tag": args.tag = getNextArgRequired(); break; case "-b": args.blobId = Long.parseLong(getNextArgRequired()); break; default: pw.println("Error: unknown option '" + opt + "'"); return -1; Loading @@ -166,6 +183,7 @@ class BlobStoreManagerShellCommand extends ShellCommand { public long expiryTimeMillis; public CharSequence label; public String tag; public long blobId; public BlobHandle getBlobHandle() { return BlobHandle.create(algorithm, digest, label, expiryTimeMillis, tag); Loading Loading
ApiDocs.bp +1 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ stubs_defaults { ":opt-telephony-srcs", ":opt-net-voip-srcs", ":art-module-public-api-stubs-source", ":conscrypt.module.public.api.stubs.source", ":conscrypt.module.public.api{.public.stubs.source}", ":android_icu4j_public_api_files", "test-mock/src/**/*.java", "test-runner/src/**/*.java", Loading
StubLibraries.bp +1 −1 Original line number Diff line number Diff line Loading @@ -69,7 +69,7 @@ stubs_defaults { name: "metalava-full-api-stubs-default", defaults: ["metalava-base-api-stubs-default"], srcs: [ ":conscrypt.module.public.api.stubs.source", ":conscrypt.module.public.api{.public.stubs.source}", ":framework-updatable-sources", ], sdk_version: "core_platform", Loading
apex/blobstore/service/java/com/android/server/blob/BlobMetadata.java +4 −1 Original line number Diff line number Diff line Loading @@ -212,7 +212,10 @@ class BlobMetadata { } boolean isAccessAllowedForCaller(@NonNull String callingPackage, int callingUid) { // TODO: verify blob is still valid (expiryTime is not elapsed) // Don't allow the blob to be accessed after it's expiry time has passed. if (getBlobHandle().isExpired()) { return false; } synchronized (mMetadataLock) { // Check if packageName already holds a lease on the blob. for (int i = 0, size = mLeasees.size(); i < size; ++i) { Loading
apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java +12 −0 Original line number Diff line number Diff line Loading @@ -1059,6 +1059,18 @@ public class BlobStoreManagerService extends SystemService { } } boolean isBlobAvailable(long blobId, int userId) { synchronized (mBlobsLock) { final ArrayMap<BlobHandle, BlobMetadata> userBlobs = getUserBlobsLocked(userId); for (BlobMetadata blobMetadata : userBlobs.values()) { if (blobMetadata.getBlobId() == blobId) { return true; } } return false; } } @GuardedBy("mBlobsLock") private void dumpSessionsLocked(IndentingPrintWriter fout, DumpArgs dumpArgs) { for (int i = 0, userCount = mSessions.size(); i < userCount; ++i) { Loading
apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerShellCommand.java +18 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,8 @@ class BlobStoreManagerShellCommand extends ShellCommand { return runDeleteBlob(pw); case "idle-maintenance": return runIdleMaintenance(pw); case "query-blob-existence": return runQueryBlobExistence(pw); default: return handleDefaultCommands(cmd); } Loading Loading @@ -91,6 +93,16 @@ class BlobStoreManagerShellCommand extends ShellCommand { return 0; } private int runQueryBlobExistence(PrintWriter pw) { final ParsedArgs args = new ParsedArgs(); if (parseOptions(pw, args) < 0) { return -1; } pw.println(mService.isBlobAvailable(args.blobId, args.userId) ? 1 : 0); return 0; } @Override public void onHelp() { final PrintWriter pw = getOutPrintWriter(); Loading Loading @@ -121,6 +133,8 @@ class BlobStoreManagerShellCommand extends ShellCommand { pw.println(" --tag: Tag of the blob to delete."); pw.println("idle-maintenance"); pw.println(" Run idle maintenance which takes care of removing stale data."); pw.println("query-blob-existence [-b BLOB_ID]"); pw.println(" Prints 1 if blob exists, otherwise 0."); pw.println(); } Loading @@ -147,6 +161,9 @@ class BlobStoreManagerShellCommand extends ShellCommand { case "--tag": args.tag = getNextArgRequired(); break; case "-b": args.blobId = Long.parseLong(getNextArgRequired()); break; default: pw.println("Error: unknown option '" + opt + "'"); return -1; Loading @@ -166,6 +183,7 @@ class BlobStoreManagerShellCommand extends ShellCommand { public long expiryTimeMillis; public CharSequence label; public String tag; public long blobId; public BlobHandle getBlobHandle() { return BlobHandle.create(algorithm, digest, label, expiryTimeMillis, tag); Loading