340 lines
7.8 KiB
Protocol Buffer
340 lines
7.8 KiB
Protocol Buffer
/*
|
|
* 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";
|
|
|
|
import "frameworks/base/tools/aapt2/Resources.proto";
|
|
|
|
package aapt.pb;
|
|
|
|
option java_package = "com.android.aapt";
|
|
|
|
// Top level message representing data extracted from the APK for 'apkinfo'
|
|
// command.
|
|
message ApkInfo {
|
|
message XmlFile {
|
|
string path = 1;
|
|
XmlNode root = 2;
|
|
}
|
|
|
|
Badging badging = 1;
|
|
ResourceTable resource_table = 2;
|
|
repeated XmlFile xml_files = 3;
|
|
}
|
|
|
|
// Data extracted from the manifest of the APK.
|
|
message Badging {
|
|
PackageInfo package = 1;
|
|
Application application = 2;
|
|
UsesSdk uses_sdk = 3;
|
|
// Previously: UsesConfiguration uses_configuration = 4;
|
|
reserved 4;
|
|
SupportsScreen supports_screen = 5;
|
|
SupportsInput supports_input = 6;
|
|
LaunchableActivity launchable_activity = 7;
|
|
LeanbackLaunchableActivity leanback_launchable_activity = 8;
|
|
StaticLibrary static_library = 9;
|
|
SdkLibrary sdk_library = 10;
|
|
Overlay overlay = 11;
|
|
PackageVerifier package_verifier = 12;
|
|
CompatibleScreens compatible_screens = 13;
|
|
Architectures architectures = 14;
|
|
SupportsGlTexture supports_gl_texture = 15;
|
|
Components components = 16;
|
|
|
|
repeated string locales = 17;
|
|
repeated int32 densities = 18;
|
|
|
|
repeated UsesPackage uses_packages = 51;
|
|
repeated UsesConfiguration uses_configurations = 52;
|
|
repeated FeatureGroup feature_groups = 53;
|
|
repeated UsesPermission uses_permissions = 54;
|
|
repeated Permission permissions = 55;
|
|
repeated UsesLibrary uses_libraries = 56;
|
|
repeated UsesStaticLibrary uses_static_libraries = 57;
|
|
repeated UsesSdkLibrary uses_sdk_libraries = 58;
|
|
repeated UsesNativeLibrary uses_native_libraries = 59;
|
|
|
|
repeated Metadata metadata = 62;
|
|
repeated Property properties = 63;
|
|
}
|
|
|
|
// Information extracted about package from <manifest> and
|
|
// <original-package> tags.
|
|
message PackageInfo {
|
|
enum InstallLocation {
|
|
DEFAULT_INSTALL_LOCATION = 0;
|
|
AUTO = 1;
|
|
INTERNAL_ONLY = 2;
|
|
PREFER_EXTERNAL = 3;
|
|
}
|
|
|
|
string package = 1;
|
|
int32 version_code = 2;
|
|
string version_name = 3;
|
|
|
|
string split = 4;
|
|
|
|
string platform_version_name = 5;
|
|
string platform_version_code = 6;
|
|
|
|
int32 compile_sdk_version = 7;
|
|
string compile_sdk_version_codename = 8;
|
|
|
|
InstallLocation install_location = 9;
|
|
|
|
string original_package = 10;
|
|
}
|
|
|
|
// Information extracted from <application> element.
|
|
message Application {
|
|
string label = 1;
|
|
string icon = 2;
|
|
string banner = 3;
|
|
|
|
bool test_only = 4;
|
|
bool game = 5;
|
|
bool debuggable = 6;
|
|
|
|
map<string, string> locale_labels = 8;
|
|
map<int32, string> density_icons = 9;
|
|
}
|
|
|
|
// Components defined in the APK.
|
|
message Components {
|
|
bool main = 1;
|
|
bool other_activities = 2;
|
|
bool other_receivers = 3;
|
|
bool other_services = 4;
|
|
|
|
repeated string provided_components = 5;
|
|
}
|
|
|
|
// Application's min and target SDKs.
|
|
message UsesSdk {
|
|
oneof min_sdk {
|
|
int32 min_sdk_version = 2;
|
|
string min_sdk_version_name = 3;
|
|
}
|
|
int32 max_sdk_version = 4;
|
|
oneof target_sdk {
|
|
int32 target_sdk_version = 5;
|
|
string target_sdk_version_name = 6;
|
|
}
|
|
}
|
|
|
|
message UsesConfiguration {
|
|
int32 req_touch_screen = 1;
|
|
int32 req_keyboard_type = 2;
|
|
int32 req_hard_keyboard = 3;
|
|
int32 req_navigation = 4;
|
|
int32 req_five_way_nav = 5;
|
|
}
|
|
|
|
// Screens supported by this application.
|
|
message SupportsScreen {
|
|
enum ScreenType {
|
|
UNSPECIFIED_SCREEN_TYPE = 0;
|
|
SMALL = 1;
|
|
NORMAL = 2;
|
|
LARGE = 3;
|
|
XLARGE = 4;
|
|
}
|
|
repeated ScreenType screens = 1;
|
|
bool supports_any_densities = 2;
|
|
int32 requires_smallest_width_dp = 3;
|
|
int32 compatible_width_limit_dp = 4;
|
|
int32 largest_width_limit_dp = 5;
|
|
}
|
|
|
|
// Inputs supported by this application.
|
|
message SupportsInput {
|
|
repeated string inputs = 1;
|
|
}
|
|
|
|
// Information about used features which is extracted from <uses-permission>
|
|
// elements or implied from permissions.
|
|
message Feature {
|
|
message ImpliedData {
|
|
bool from_sdk_23_permission = 1;
|
|
repeated string reasons = 2;
|
|
}
|
|
|
|
string name = 1;
|
|
bool required = 2;
|
|
int32 version = 3;
|
|
|
|
ImpliedData implied_data = 4;
|
|
}
|
|
|
|
message FeatureGroup {
|
|
string label = 1;
|
|
int32 open_gles_version = 2;
|
|
repeated Feature features = 3;
|
|
}
|
|
|
|
// Information about permission requested by the application.
|
|
message UsesPermission {
|
|
message PermissionFlags {
|
|
bool never_for_location = 1;
|
|
}
|
|
|
|
string name = 1;
|
|
int32 max_sdk_version = 2;
|
|
bool required = 3;
|
|
bool implied = 4;
|
|
bool sdk23_and_above = 5;
|
|
|
|
repeated string required_features = 6;
|
|
repeated string required_not_features = 7;
|
|
|
|
PermissionFlags permission_flags = 8;
|
|
}
|
|
|
|
// Permission defined by the application.
|
|
message Permission {
|
|
string name = 1;
|
|
}
|
|
|
|
// Data extracted about launchable activity. Launchable activity is an entry
|
|
// point on phone and tablet devices.
|
|
message LaunchableActivity {
|
|
string name = 1;
|
|
string icon = 2;
|
|
string label = 3;
|
|
}
|
|
|
|
// Data extracted about leanback launchable activity. Leanback launchable
|
|
// activity is an entry point on TV devices.
|
|
message LeanbackLaunchableActivity {
|
|
string name = 1;
|
|
string icon = 2;
|
|
string label = 3;
|
|
string banner = 4;
|
|
}
|
|
|
|
// Library used by the application.
|
|
message UsesLibrary {
|
|
string name = 1;
|
|
bool required = 2;
|
|
}
|
|
|
|
// Static library this APK declares.
|
|
message StaticLibrary {
|
|
string name = 1;
|
|
int32 version = 2;
|
|
int32 version_major = 3;
|
|
}
|
|
|
|
// Static library used by the application.
|
|
message UsesStaticLibrary {
|
|
string name = 1;
|
|
int32 version = 2;
|
|
int32 version_major = 3;
|
|
repeated string certificates = 4;
|
|
}
|
|
|
|
// SDK library this APK declares.
|
|
message SdkLibrary {
|
|
string name = 1;
|
|
int32 version_major = 2;
|
|
}
|
|
|
|
// SDK library used by the application.
|
|
message UsesSdkLibrary {
|
|
string name = 1;
|
|
int32 version_major = 2;
|
|
repeated string certificates = 3;
|
|
}
|
|
|
|
// Native library used by the application.
|
|
message UsesNativeLibrary {
|
|
string name = 1;
|
|
bool required = 2;
|
|
}
|
|
|
|
// Information extracted from <meta-data> elements defined across
|
|
// AndroidManifest.xml.
|
|
message Metadata {
|
|
string name = 1;
|
|
oneof value {
|
|
string value_string = 2;
|
|
int32 value_int = 3;
|
|
}
|
|
oneof resource {
|
|
string resource_string = 4;
|
|
int32 resource_int = 5;
|
|
}
|
|
}
|
|
|
|
// Information about overlay that is declared in the APK.
|
|
message Overlay {
|
|
string target_package = 1;
|
|
int32 priority = 2;
|
|
bool static = 3;
|
|
string required_property_name = 4;
|
|
string required_property_value = 5;
|
|
}
|
|
|
|
// Data extracted from <package-verifier> element.
|
|
message PackageVerifier {
|
|
string name = 1;
|
|
string public_key = 2;
|
|
}
|
|
|
|
// External packages used by the application
|
|
message UsesPackage {
|
|
string name = 1;
|
|
string package_type = 2;
|
|
int32 version = 3;
|
|
int32 version_major = 4;
|
|
repeated string certificates = 5;
|
|
}
|
|
|
|
// Open GL textures format supported by the current application.
|
|
message SupportsGlTexture {
|
|
repeated string name = 1;
|
|
}
|
|
|
|
// Screens compatible with the application.
|
|
message CompatibleScreens {
|
|
message Screen {
|
|
int32 size = 1;
|
|
int32 density = 2;
|
|
}
|
|
|
|
repeated Screen screens = 1;
|
|
}
|
|
|
|
// Architectures supported by the application.
|
|
message Architectures {
|
|
repeated string architectures = 1;
|
|
repeated string alt_architectures = 2;
|
|
}
|
|
|
|
// Information extracted from <property> elements defined across
|
|
// AndroidManifest.xml.
|
|
message Property {
|
|
string name = 1;
|
|
oneof value {
|
|
string value_string = 2;
|
|
int32 value_int = 3;
|
|
}
|
|
oneof resource {
|
|
string resource_string = 4;
|
|
int32 resource_int = 5;
|
|
}
|
|
} |