Loading AconfigFlags.bp +13 −0 Original line number Diff line number Diff line Loading @@ -1809,11 +1809,24 @@ aconfig_declarations { name: "aconfig_settingslib_flags", package: "com.android.settingslib.flags", container: "system", exportable: true, srcs: [ "packages/SettingsLib/aconfig/settingslib.aconfig", ], } java_aconfig_library { name: "aconfig_settingslib_exported_flags_java_lib", aconfig_declarations: "aconfig_settingslib_flags", defaults: ["framework-minus-apex-aconfig-java-defaults"], mode: "exported", min_sdk_version: "30", apex_available: [ "//apex_available:platform", "com.android.permission", ], } java_aconfig_library { name: "aconfig_settingslib_flags_java_lib", aconfig_declarations: "aconfig_settingslib_flags", Loading MEMORY_OWNERS +0 −1 Original line number Diff line number Diff line Loading @@ -2,5 +2,4 @@ surenb@google.com tjmercier@google.com kaleshsingh@google.com jyescas@google.com carlosgalo@google.com jji@google.com apex/jobscheduler/framework/aconfig/job.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -55,3 +55,14 @@ flag { description: "Introduce a new getPendingJobReasonsHistory() API which returns a limited historical view of getPendingJobReasons()." bug: "372031023" } flag { name: "add_type_info_to_wakelock_tag" namespace: "backstage_power" description: "Append the job type info to wakelock tag" bug: "381880530" metadata { purpose: PURPOSE_BUGFIX } } apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +38 −0 Original line number Diff line number Diff line Loading @@ -5766,6 +5766,41 @@ public class JobSchedulerService extends com.android.server.SystemService } // Shell command infrastructure int getJobWakelockTag(PrintWriter pw, String pkgName, int userId, @Nullable String namespace, int jobId) { try { final int uid = AppGlobals.getPackageManager().getPackageUid(pkgName, 0, userId != UserHandle.USER_ALL ? userId : UserHandle.USER_SYSTEM); if (uid < 0) { pw.print("unknown("); pw.print(pkgName); pw.println(")"); return JobSchedulerShellCommand.CMD_ERR_NO_PACKAGE; } synchronized (mLock) { final JobStatus js = mJobs.getJobByUidAndJobId(uid, namespace, jobId); if (DEBUG) { Slog.d(TAG, "get-job-wakelock-tag " + namespace + "/" + uid + "/" + jobId + ": " + js); } if (js == null) { pw.print("unknown("); UserHandle.formatUid(pw, uid); pw.print("/jid"); pw.print(jobId); pw.println(")"); return JobSchedulerShellCommand.CMD_ERR_NO_JOB; } pw.println(js.getWakelockTag()); } } catch (RemoteException e) { // can't happen } return 0; } int getJobState(PrintWriter pw, String pkgName, int userId, @Nullable String namespace, int jobId) { try { Loading Loading @@ -5945,6 +5980,9 @@ public class JobSchedulerService extends com.android.server.SystemService pw.print(android.app.job.Flags.FLAG_GET_PENDING_JOB_REASONS_HISTORY_API, android.app.job.Flags.getPendingJobReasonsHistoryApi()); pw.println(); pw.print(android.app.job.Flags.FLAG_ADD_TYPE_INFO_TO_WAKELOCK_TAG, android.app.job.Flags.addTypeInfoToWakelockTag()); pw.println(); pw.decreaseIndent(); pw.println(); Loading apex/jobscheduler/service/java/com/android/server/job/JobSchedulerShellCommand.java +48 −0 Original line number Diff line number Diff line Loading @@ -86,6 +86,8 @@ public final class JobSchedulerShellCommand extends BasicShellCommandHandler { return getTransferredNetworkBytes(pw, BYTE_OPTION_DOWNLOAD); case "get-transferred-upload-bytes": return getTransferredNetworkBytes(pw, BYTE_OPTION_UPLOAD); case "get-job-wakelock-tag": return getJobWakelockTag(pw); case "get-job-state": return getJobState(pw); case "heartbeat": Loading Loading @@ -424,6 +426,9 @@ public final class JobSchedulerShellCommand extends BasicShellCommandHandler { case android.app.job.Flags.FLAG_JOB_DEBUG_INFO_APIS: pw.println(android.app.job.Flags.jobDebugInfoApis()); break; case android.app.job.Flags.FLAG_ADD_TYPE_INFO_TO_WAKELOCK_TAG: pw.println(android.app.job.Flags.addTypeInfoToWakelockTag()); break; case com.android.server.job.Flags.FLAG_BATCH_ACTIVE_BUCKET_JOBS: pw.println(com.android.server.job.Flags.batchActiveBucketJobs()); break; Loading Loading @@ -581,6 +586,49 @@ public final class JobSchedulerShellCommand extends BasicShellCommandHandler { } } private int getJobWakelockTag(PrintWriter pw) throws Exception { checkPermission("get job wakelock tag"); int userId = UserHandle.USER_SYSTEM; String namespace = null; String opt; while ((opt = getNextOption()) != null) { switch (opt) { case "-u": case "--user": userId = UserHandle.parseUserArg(getNextArgRequired()); break; case "-n": case "--namespace": namespace = getNextArgRequired(); break; default: pw.println("Error: unknown option '" + opt + "'"); return -1; } } if (userId == UserHandle.USER_CURRENT) { userId = ActivityManager.getCurrentUser(); } final String pkgName = getNextArgRequired(); final String jobIdStr = getNextArgRequired(); final int jobId = Integer.parseInt(jobIdStr); final long ident = Binder.clearCallingIdentity(); try { int ret = mInternal.getJobWakelockTag(pw, pkgName, userId, namespace, jobId); printError(ret, pkgName, userId, namespace, jobId); return ret; } finally { Binder.restoreCallingIdentity(ident); } } private int getJobState(PrintWriter pw) throws Exception { checkPermission("get job state"); Loading Loading
AconfigFlags.bp +13 −0 Original line number Diff line number Diff line Loading @@ -1809,11 +1809,24 @@ aconfig_declarations { name: "aconfig_settingslib_flags", package: "com.android.settingslib.flags", container: "system", exportable: true, srcs: [ "packages/SettingsLib/aconfig/settingslib.aconfig", ], } java_aconfig_library { name: "aconfig_settingslib_exported_flags_java_lib", aconfig_declarations: "aconfig_settingslib_flags", defaults: ["framework-minus-apex-aconfig-java-defaults"], mode: "exported", min_sdk_version: "30", apex_available: [ "//apex_available:platform", "com.android.permission", ], } java_aconfig_library { name: "aconfig_settingslib_flags_java_lib", aconfig_declarations: "aconfig_settingslib_flags", Loading
MEMORY_OWNERS +0 −1 Original line number Diff line number Diff line Loading @@ -2,5 +2,4 @@ surenb@google.com tjmercier@google.com kaleshsingh@google.com jyescas@google.com carlosgalo@google.com jji@google.com
apex/jobscheduler/framework/aconfig/job.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -55,3 +55,14 @@ flag { description: "Introduce a new getPendingJobReasonsHistory() API which returns a limited historical view of getPendingJobReasons()." bug: "372031023" } flag { name: "add_type_info_to_wakelock_tag" namespace: "backstage_power" description: "Append the job type info to wakelock tag" bug: "381880530" metadata { purpose: PURPOSE_BUGFIX } }
apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +38 −0 Original line number Diff line number Diff line Loading @@ -5766,6 +5766,41 @@ public class JobSchedulerService extends com.android.server.SystemService } // Shell command infrastructure int getJobWakelockTag(PrintWriter pw, String pkgName, int userId, @Nullable String namespace, int jobId) { try { final int uid = AppGlobals.getPackageManager().getPackageUid(pkgName, 0, userId != UserHandle.USER_ALL ? userId : UserHandle.USER_SYSTEM); if (uid < 0) { pw.print("unknown("); pw.print(pkgName); pw.println(")"); return JobSchedulerShellCommand.CMD_ERR_NO_PACKAGE; } synchronized (mLock) { final JobStatus js = mJobs.getJobByUidAndJobId(uid, namespace, jobId); if (DEBUG) { Slog.d(TAG, "get-job-wakelock-tag " + namespace + "/" + uid + "/" + jobId + ": " + js); } if (js == null) { pw.print("unknown("); UserHandle.formatUid(pw, uid); pw.print("/jid"); pw.print(jobId); pw.println(")"); return JobSchedulerShellCommand.CMD_ERR_NO_JOB; } pw.println(js.getWakelockTag()); } } catch (RemoteException e) { // can't happen } return 0; } int getJobState(PrintWriter pw, String pkgName, int userId, @Nullable String namespace, int jobId) { try { Loading Loading @@ -5945,6 +5980,9 @@ public class JobSchedulerService extends com.android.server.SystemService pw.print(android.app.job.Flags.FLAG_GET_PENDING_JOB_REASONS_HISTORY_API, android.app.job.Flags.getPendingJobReasonsHistoryApi()); pw.println(); pw.print(android.app.job.Flags.FLAG_ADD_TYPE_INFO_TO_WAKELOCK_TAG, android.app.job.Flags.addTypeInfoToWakelockTag()); pw.println(); pw.decreaseIndent(); pw.println(); Loading
apex/jobscheduler/service/java/com/android/server/job/JobSchedulerShellCommand.java +48 −0 Original line number Diff line number Diff line Loading @@ -86,6 +86,8 @@ public final class JobSchedulerShellCommand extends BasicShellCommandHandler { return getTransferredNetworkBytes(pw, BYTE_OPTION_DOWNLOAD); case "get-transferred-upload-bytes": return getTransferredNetworkBytes(pw, BYTE_OPTION_UPLOAD); case "get-job-wakelock-tag": return getJobWakelockTag(pw); case "get-job-state": return getJobState(pw); case "heartbeat": Loading Loading @@ -424,6 +426,9 @@ public final class JobSchedulerShellCommand extends BasicShellCommandHandler { case android.app.job.Flags.FLAG_JOB_DEBUG_INFO_APIS: pw.println(android.app.job.Flags.jobDebugInfoApis()); break; case android.app.job.Flags.FLAG_ADD_TYPE_INFO_TO_WAKELOCK_TAG: pw.println(android.app.job.Flags.addTypeInfoToWakelockTag()); break; case com.android.server.job.Flags.FLAG_BATCH_ACTIVE_BUCKET_JOBS: pw.println(com.android.server.job.Flags.batchActiveBucketJobs()); break; Loading Loading @@ -581,6 +586,49 @@ public final class JobSchedulerShellCommand extends BasicShellCommandHandler { } } private int getJobWakelockTag(PrintWriter pw) throws Exception { checkPermission("get job wakelock tag"); int userId = UserHandle.USER_SYSTEM; String namespace = null; String opt; while ((opt = getNextOption()) != null) { switch (opt) { case "-u": case "--user": userId = UserHandle.parseUserArg(getNextArgRequired()); break; case "-n": case "--namespace": namespace = getNextArgRequired(); break; default: pw.println("Error: unknown option '" + opt + "'"); return -1; } } if (userId == UserHandle.USER_CURRENT) { userId = ActivityManager.getCurrentUser(); } final String pkgName = getNextArgRequired(); final String jobIdStr = getNextArgRequired(); final int jobId = Integer.parseInt(jobIdStr); final long ident = Binder.clearCallingIdentity(); try { int ret = mInternal.getJobWakelockTag(pw, pkgName, userId, namespace, jobId); printError(ret, pkgName, userId, namespace, jobId); return ret; } finally { Binder.restoreCallingIdentity(ident); } } private int getJobState(PrintWriter pw) throws Exception { checkPermission("get job state"); Loading