From 402ace6c2549e82a1a0a8f47b8335f15c18db7da Mon Sep 17 00:00:00 2001 From: Jiyong Park Date: Fri, 29 May 2020 22:00:16 +0900 Subject: [PATCH] Notice file embededd in APEX is deterministic Exempt-From-Owner-Approval: cherry-pick from AOSP Bug: 157724521 Test: m Merged-In: I25f6cd9dd0679af6acfc2594314d11fa53ae2151 (cherry picked from commit 33c7736936b2f777dc93bc26cbcbda56c0c144b7) Change-Id: I25f6cd9dd0679af6acfc2594314d11fa53ae2151 --- android/paths.go | 9 +++++++++ apex/builder.go | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/android/paths.go b/android/paths.go index 0edda38bf..1d8d92a34 100644 --- a/android/paths.go +++ b/android/paths.go @@ -483,6 +483,15 @@ outer: return list[:k] } +// SortedUniquePaths returns what its name says +func SortedUniquePaths(list Paths) Paths { + unique := FirstUniquePaths(list) + sort.Slice(unique, func(i, j int) bool { + return unique[i].String() < unique[j].String() + }) + return unique +} + // LastUniquePaths returns all unique elements of a Paths, keeping the last copy of each. It // modifies the Paths slice contents in place, and returns a subslice of the original slice. func LastUniquePaths(list Paths) Paths { diff --git a/apex/builder.go b/apex/builder.go index cebd86aec..4c4225911 100644 --- a/apex/builder.go +++ b/apex/builder.go @@ -238,7 +238,7 @@ func (a *apexBundle) buildNoticeFiles(ctx android.ModuleContext, apexFileName st return android.NoticeOutputs{} } - return android.BuildNoticeOutput(ctx, a.installDir, apexFileName, android.FirstUniquePaths(noticeFiles)) + return android.BuildNoticeOutput(ctx, a.installDir, apexFileName, android.SortedUniquePaths(noticeFiles)) } func (a *apexBundle) buildInstalledFilesFile(ctx android.ModuleContext, builtApex android.Path, imageDir android.Path) android.OutputPath {