Define a unified protobuf message for "aapt2 optimize" metadata.
This helps solve three problems: * obfuscation maps are now documented. * obfuscation maps will not require hand-rolled parsers. * no additional plumbing will be required for future optimizations---plumbing individual mapping files in Bazel for ProGuard, aapt2, etc. has been a pain. Bug: 153201806 Test: make aapt2 Change-Id: Ie3829834527e8875d768ae28242d3aeca28c6db2
This commit is contained in:
@@ -161,6 +161,7 @@ cc_library_host_static {
|
||||
"ApkInfo.proto",
|
||||
"Configuration.proto",
|
||||
"Resources.proto",
|
||||
"ResourceMetadata.proto",
|
||||
"ResourcesInternal.proto",
|
||||
"ValueTransformer.cpp",
|
||||
],
|
||||
@@ -218,6 +219,7 @@ genrule {
|
||||
srcs: [
|
||||
"Configuration.proto",
|
||||
"ResourcesInternal.proto",
|
||||
"ResourceMetadata.proto",
|
||||
"Resources.proto",
|
||||
],
|
||||
out: ["aapt2-protos.zip"],
|
||||
|
||||
49
tools/aapt2/ResourceMetadata.proto
Normal file
49
tools/aapt2/ResourceMetadata.proto
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Copyright (C) 2022 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package aapt.pb;
|
||||
|
||||
option java_package = "com.android.aapt";
|
||||
option java_multiple_files = true;
|
||||
|
||||
message ResourceMappings {
|
||||
ShortenedPathsMap shortened_paths = 1;
|
||||
CollapsedNamesMap collapsed_names = 2;
|
||||
}
|
||||
|
||||
// Metadata relating to "aapt2 optimize --shorten-resource-paths"
|
||||
message ShortenedPathsMap {
|
||||
// Maps shorted paths (e.g. "res/foo.xml") to their original names (e.g.
|
||||
// "res/xml/file_with_long_name.xml").
|
||||
message ResourcePathMapping {
|
||||
string shortened_path = 1;
|
||||
string original_path = 2;
|
||||
}
|
||||
repeated ResourcePathMapping resource_paths = 1;
|
||||
}
|
||||
|
||||
// Metadata relating to "aapt2 optimize --collapse-resource-names"
|
||||
message CollapsedNamesMap {
|
||||
// Maps resource IDs (e.g. 0x7f123456) to their original names (e.g.
|
||||
// "package:type/entry").
|
||||
message ResourceNameMapping {
|
||||
uint32 id = 1;
|
||||
string name = 2;
|
||||
}
|
||||
repeated ResourceNameMapping resource_names = 1;
|
||||
}
|
||||
Reference in New Issue
Block a user