These 55 commits are when the Protocol Buffers files have changed:
Commit: | c513070 | |
---|---|---|
Author: | Nick Chalko | |
Committer: | Nick Chalko |
Set system property from list of backported fixes Because the caluculation of a BitSet is to compicated for make a genrule and java are used to ro.build.backported_fixes.alias_bitset.long_list to the end of the system property file. This part of the API for backported fixes. See go/android-backported-fixes-spec Bug: 377727445 Test: atest applied_backported_fixes_test backported_fixes_common_test Change-Id: I2621e2fb52401495f796a5a4db330c5dfafbda40
The documentation is generated from this commit.
Commit: | 585b434 | |
---|---|---|
Author: | Zhuoyao Zhang |
Make edit monitor error type clearer Before this change, edit monitor will send a EXCEEDED_RESOURCE_USAGE error to clearcut, however, it does not tell whether it is due to memory or CPU usage overload. This CL separate the errory type to EXCEEDED_MEMORY_USAGE and EXCEEDED_CPU_USAGE to make it easier to debug Test: atest daemon_manager_test Bug: 365617369 Change-Id: Ib0605249d87544c0a2ec82d72f05b2cc9aaa17c1
Commit: | c5b4bfb | |
---|---|---|
Author: | Zhuoyao Zhang | |
Committer: | Zhuoyao Zhang |
Update edit_event proto To make it consistent with the proto stored in g3 logs/proto/wireless/android/adte/edit_monitor/edit_event.proto Test: None Change-Id: I93ffa3651563eaf2137cb6b30b00c4d180f84923
Commit: | 11986e8 | |
---|---|---|
Author: | Zhuoyao Zhang | |
Committer: | Zhuoyao Zhang |
Add the protobuf defintion to store edit event logs Test: make edit_event_proto bug: 365617369 Change-Id: Icffb9a281331cd9f6270487b8a7e74fc94dac008
Commit: | 11670f3 | |
---|---|---|
Author: | Michael Merg | |
Committer: | Gerrit Code Review |
Merge "Update ide_query script to new format" into main
Commit: | 83f0e74 | |
---|---|---|
Author: | Michael Merg | |
Committer: | Gerrit Code Review |
Merge "Add prober scripts for language services features" into main
Commit: | d8a48c7 | |
---|---|---|
Author: | Michael Merg |
Add prober scripts for language services features Change-Id: I8c4a39a575f7977c524cfd450cf952b20c8c2c11
Commit: | d067588 | |
---|---|---|
Author: | Zhuoyao Zhang | |
Committer: | Zhuoyao Zhang |
Support uploading host_name info in the tool event logger host_name info is useful in several use cases including 1) to distinguish the concurrent tool invocations from the same user. 2) to understand the potential different performance from different hosts (e.g. local workstation VS cloudtop). 3) required to integrate the tool event log with the EPR system. Test: atest tool_event_logger_test Bug: 348482213 Change-Id: I98422b3f8ccec73d57fcdcdedac91780c448dc47
Commit: | 86cca74 | |
---|---|---|
Author: | Michael Merg | |
Committer: | Michael Merg |
Update ide_query script to new format This includes using a separate (but backward compatible) proto for the cc_analyzer since some of the fields/messages were removed in the new ide_query format. Tested the ide_query.go with the old and the new cc_analyzer to ensure backward compatibility. Change-Id: If149f5f9dd88a8f50c184274e8b258dfce117498
Commit: | a2fb60b | |
---|---|---|
Author: | Dennis Shen |
aconfig: simply proto Bug: b/339514174, b/312444587 Test: atest -c Change-Id: I5511efd04af9f57b22e4c89bd2db65496aaf4398
Commit: | d772eb3 | |
---|---|---|
Author: | Dennis Shen | |
Committer: | Dennis Shen |
aconfig: make MutableMappedStorageFiles inherit MappedStoargeFiles Bug: b/321077378 Test: atest -c Change-Id: Ib052df74bf79b5bc2a0f8c793701e3ff18f4aa30
Commit: | 7b11b71 | |
---|---|---|
Author: | Zhuoyao Zhang | |
Committer: | Zhuoyao Zhang |
Add a Clearcut tool event logger Implement a binary that logs tool events to Clearcut. The binary is designed to be eventually called by the `run_tool_with_logging` script in the `envsetup.sh` script that sets up the build environment. Only start and stop events are currently logged for each invocation. Test: atest tool_event_logger_test bug: 331638854 Change-Id: I9268e4cb986975ceda171204e6ce8ef1732eaeea
Commit: | 9f23603 | |
---|---|---|
Author: | Dennis Shen |
aconfig: add support for local override 1, add a new field in storage metadata proto, for each container, there is a local override file. 2, update write api to expose the api to map a writable file given the specific path. the cannonical api will require a storage metadata proto, and then find the right file path and map it. 3, minor update to make the proto lib cc_library instead of cc_library_static Bug: b/312444587 Test: atest -c Change-Id: Iaf0aff44c1ca3ad4bffc5e06bb99bb276b9069c5
Commit: | eff5363 | |
---|---|---|
Author: | Dennis Shen |
aconfig: add flag info field to proto Bug: b/321077378 Test: m Change-Id: I1b974f83ea49e8d4b19b3392cb7feab3d4b3fcdc
Commit: | dd020a1 | |
---|---|---|
Author: | Wei Li |
Add some comments to the field "third_party.identifier.type" in METADATA files. Bug: 332409257 Test: CIs Change-Id: I7db2e12e0f780003f94544177812cc3fabe2968c
Commit: | 5f1a854 | |
---|---|---|
Author: | Zhi Dou | |
Committer: | Gerrit Code Review |
Merge "aconfig_proto: add document for container filed" into main
Commit: | bca2f3c | |
---|---|---|
Author: | Dennis Shen | |
Committer: | Dennis Shen |
aconfig: move aconfig_storage_metadata proto and its apis to aconfig_storage_file crate Bug: b/321077378 Test: m aconfig_storage_file.test; m aconfig_storage_read_api.test Change-Id: Ifeeeff62dc09e172b7e88c45860d2febccc29570
Commit: | 2d2610c | |
---|---|---|
Author: | Zhi Dou | |
Committer: | Zhi Dou |
aconfig_proto: add document for container filed Test: n/a Bug: 328027300 Change-Id: Ieec2c24cb9024f429fcd7888ef6c7c89d212ff63
Commit: | 61d8c5a | |
---|---|---|
Author: | Dennis Shen | |
Committer: | Dennis Shen |
aconfig: split aconfig_storage_file crate Current aconfig_storage_file crate contains two things: 1, aconfig storage file definition (which is used by aconfig crate for storage file creation) and 2, flag storage file read api. With this change, we are splitting 2 into its own crate aconfig_storage_read_api In the long run, there will be 3 crates for aconfig_storage 1, aconfig_storage_file It contains aconfig storage file definition, as well as a binary to help print/dump aconfig storage binary files into some readable format. 2, aconfig_storage_read_api This crate contains flag read apis. This crate depends on aconfig_storge_file crate. This crate will be used by codegen. 3, aconfig_storage_write_api This crate contains flag write apis. This crate depends on aconfig_storage_file crate. This crate will only be used by aconfig daemon to update flag values. Bug: b/321077378 Test: atest aconfig_storage_read_api.test; atest aconfig_storage_file.test; atest aconfig_storage_read_api.test.rust; atest aconfig_storage_read_api.test.cpp Change-Id: Ia6afdc40a45c7c59652fbfd123c2b77bf6666dd9
Commit: | 0769200 | |
---|---|---|
Author: | Kadir Çetinkaya | |
Committer: | Kadir Çetinkaya |
Add CC analysis support to ide_query Introduces ide_query_cc_analyzer, which figures out relevant build targets that needs to be built for a given C++ source or header file. Once these targets are built, it analyzes the sources in question and reports any generated files that are used back. Full ide_query integration relies on this binary also being available in prebuilts clang-tools, it'll be done in a future patch. Change-Id: Ib0ef6da7a2bc8ecf66940b326e037fb1ee230bf9
Commit: | 6bafd75 | |
---|---|---|
Author: | Michael Merg | |
Committer: | Michael Merg |
Create IDE query script This will be the integration point to provide build artifacts to Cider G. NOTE FOR REVIEWERS - original patch and result patch are not identical. PLEASE REVIEW CAREFULLY. Diffs between the patches: files := flag.Args() > - > - if prev, ok := modules[f]; ok && !strings.HasSuffix(prev.Name, ".impl") { > - log.Printf("File %q found in module %q but is already part of module %q", f, m.Name, prev.Name) > + if modules[f] != nil { > + log.Printf("File %q found in module %q but is already covered by module %q", f, m.Name, modules[f].Name) > - var genFiles []*pb.GeneratedFile > + var generated []*pb.GeneratedFile > - // Note: Contents will be filled below. > - genFiles = append(genFiles, &pb.GeneratedFile{Path: relPath}) > + contents, err := os.ReadFile(d) > + if err != nil { > + fmt.Printf("Generated file %q not found - will be skipped.\n", d) > + continue > + } > + > + generated = append(generated, &pb.GeneratedFile{ > + Path: relPath, > + Contents: contents, > + }) > - file.Generated = genFiles > + file.Generated = generated > - for _, s := range sources { > - for _, g := range s.GetGenerated() { > - contents, err := os.ReadFile(path.Join(env.OutDir, g.GetPath())) > - if err != nil { > - fmt.Printf("Failed to read generated file %q: %v. File contents will be missing.\n", g.GetPath(), err) > - continue > - } > - g.Contents = contents > - } > - } > - > - if strings.HasSuffix(name, "-jarjar") { > + if strings.HasSuffix(name, "-jarjar") || strings.HasSuffix(name, ".impl") { Original patch: diff --git a/tools/ide_query/ide_query.go b/tools/ide_query/ide_query.go old mode 100644 new mode 100644 --- a/tools/ide_query/ide_query.go +++ b/tools/ide_query/ide_query.go @@ -1,3 +1,5 @@ +// Binary ide_query generates and analyzes build artifacts. +// The produced result can be consumed by IDEs to provide language features. package main import ( @@ -34,10 +36,10 @@ var _ flag.Value = (*LunchTarget)(nil) -// Get implements flag.Value. -func (l *LunchTarget) Get() any { - return l -} +// // Get implements flag.Value. +// func (l *LunchTarget) Get() any { +// return l +// } // Set implements flag.Value. func (l *LunchTarget) Set(s string) error { @@ -64,13 +66,12 @@ env.RepoDir = os.Getenv("TOP") flag.Var(&env.LunchTarget, "lunch_target", "The lunch target to query") flag.Parse() - if flag.NArg() == 0 { + files := flag.Args() + if len(files) == 0 { fmt.Println("No files provided.") os.Exit(1) return } - - files := flag.Args() ctx := context.Background() javaDepsPath := pa [[[Original patch trimmed due to size. Decoded string size: 2916. Decoded string SHA1: 5d8fd4a92cc403da51c9ddb8442da2e391e6fcb1.]]] Result patch: diff --git a/tools/ide_query/ide_query.go b/tools/ide_query/ide_query.go index 2e76738..0fdb6de 100644 --- a/tools/ide_query/ide_query.go +++ b/tools/ide_query/ide_query.go @@ -1,3 +1,5 @@ +// Binary ide_query generates and analyzes build artifacts. +// The produced result can be consumed by IDEs to provide language features. package main import ( @@ -34,10 +36,10 @@ var _ flag.Value = (*LunchTarget)(nil) -// Get implements flag.Value. -func (l *LunchTarget) Get() any { - return l -} +// // Get implements flag.Value. +// func (l *LunchTarget) Get() any { +// return l +// } // Set implements flag.Value. func (l *LunchTarget) Set(s string) error { @@ -64,14 +66,13 @@ env.RepoDir = os.Getenv("TOP") flag.Var(&env.LunchTarget, "lunch_target", "The lunch target to query") flag.Parse() - if flag.NArg() == 0 { + files := flag.Args() + if len(files) == 0 { fmt.Println("No files provided.") os.Exit(1) return } - files := flag.Args() - ctx := context.Background() javaDepsPath := path [[[Result patch trimmed due to size. Decoded string size: 3022. Decoded string SHA1: a8824749eafbbb8d09c4e95fe491a16e3ea82569.]]] NOTE FOR REVIEWERS - original patch and result patch are not identical. PLEASE REVIEW CAREFULLY. Diffs between the patches: var javaFiles []string > + for _, f := range files { > + switch { > + case strings.HasSuffix(f, ".java") || strings.HasSuffix(f, ".kt"): > + javaFiles = append(javaFiles, f) > + default: > + log.Printf("File %q is supported - will be skipped.", f) > + } > + } > + > - modules := make(map[string]*javaModule) // file path -> module > - for _, f := range files { > + fileToModule := make(map[string]*javaModule) // file path -> module > + for _, f := range javaFiles { > - if modules[f] != nil { > - log.Printf("File %q found in module %q but is already covered by module %q", f, m.Name, modules[f].Name) > + if fileToModule[f] != nil { > + // TODO(michaelmerg): Handle the case where a file is covered by multiple modules. > + log.Printf("File %q found in module %q but is already covered by module %q", f, m.Name, fileToModule[f].Name) > - modules[f] = m > + fileToModule[f] = m > - for _, m := range modules { > + for _, m := range fileToModule { > + type depsAndGenerated struct { > + Deps []string > + Generated []*pb.GeneratedFile > + } > + moduleToDeps := make(map[string]*depsAndGenerated) > - m := modules[f] > + m := fileToModule[f] > + file.Status = &pb.Status{Code: pb.Status_OK} > + if moduleToDeps[m.Name] != nil { > + file.Generated = moduleToDeps[m.Name].Generated > + file.Deps = moduleToDeps[m.Name].Deps > + continue > + } > + > - > + moduleToDeps[m.Name] = &depsAndGenerated{deps, generated} > - file.Status = &pb.Status{Code: pb.Status_OK} Original patch: diff --git a/tools/ide_query/ide_query.go b/tools/ide_query/ide_query.go old mode 100644 new mode 100644 --- a/tools/ide_query/ide_query.go +++ b/tools/ide_query/ide_query.go @@ -72,6 +72,16 @@ os.Exit(1) return } + + var javaFiles []string + for _, f := range files { + switch { + case strings.HasSuffix(f, ".java") || strings.HasSuffix(f, ".kt"): + javaFiles = append(javaFiles, f) + default: + log.Printf("File %q is supported - will be skipped.", f) + } + } ctx := context.Background() javaDepsPath := path.Join(env.RepoDir, env.OutDir, "soong/module_bp_java_deps.json") @@ -85,22 +95,23 @@ log.Fatalf("Failed to load java modules: %v", err) } - modules := make(map[string]*javaModule) // file path -> module - for _, f := range files { + fileToModule := make(map[string]*javaModule) // file path -> module + for _, f := range javaFiles { for _, m := range javaModules { if !slices.Contains(m.Srcs, f) { continue } - if modules[f] != nil { - log.Printf("File %q found in [[[Original patch trimmed due to size. Decoded string size: 2629. Decoded string SHA1: 4517ba713fdb898ba9d77c4acbe934c08a2d9fe0.]]] Result patch: diff --git a/tools/ide_query/ide_query.go b/tools/ide_query/ide_query.go index 0fdb6de..7335875 100644 --- a/tools/ide_query/ide_query.go +++ b/tools/ide_query/ide_query.go @@ -73,6 +73,16 @@ return } + var javaFiles []string + for _, f := range files { + switch { + case strings.HasSuffix(f, ".java") || strings.HasSuffix(f, ".kt"): + javaFiles = append(javaFiles, f) + default: + log.Printf("File %q is supported - will be skipped.", f) + } + } + ctx := context.Background() javaDepsPath := path.Join(env.RepoDir, env.OutDir, "soong/module_bp_java_deps.json") // TODO(michaelmerg): Figure out if module_bp_java_deps.json is outdated. @@ -85,22 +95,23 @@ log.Fatalf("Failed to load java modules: %v", err) } - modules := make(map[string]*javaModule) // file path -> module - for _, f := range files { + fileToModule := make(map[string]*javaModule) // file path -> module + for _, f := range javaFiles { for _, m := range javaModules { if !slices.Contains(m.Srcs, f) { continue } [[[Result patch trimmed due to size. Decoded string size: 2717. Decoded string SHA1: 5e5223251ebdc548258bc27daf3528d662c39410.]]] Change-Id: Ibe5d386399affd2951206bb5a714972e0e2fee92
Commit: | d43b446 | |
---|---|---|
Author: | Zhi Dou | |
Committer: | Zhi Dou |
aconfig_proto: add doc in aconfig.proto file This change adds docs in aconfig.proto file and adds more detail in the error message for bad package, name and namespace. Bug: 318759389 Test: atest aconfig.test Change-Id: I0d45495cd864506b2fcc06ad47e3ffbd6caca9fb
Commit: | 997745d | |
---|---|---|
Author: | Dennis Shen | |
Committer: | Dennis Shen |
aconfig: add aconfig_storage_metadata proto Introduce a new proto to capture storage file location for each container. This proto file will appeara as /metadata/aconfig/storage_file_location.pb. Storage service daemon is responsible for writing entires to it when a new storage file set is available. The flag read lib will use this file to find the corresponding storage file and mmap them. Bug: b/321077378 Test: atest aconfig_storage_file.test Change-Id: I226e76be895805dce52a075050dcd5b42d337be8
Commit: | 277e5dc | |
---|---|---|
Author: | Dennis Shen | |
Committer: | Dennis Shen |
Restructure aconfig repo to be a cargo workspace with many crates Previously, aconfig repo is the root directory of aconfig binary crate, but it also hosts printflags crate inside, and there is no cargo support for printflags binary crate. In addition, with more aconfig development, more crates are being added to this repo. Thus this repo should be configured as a Cargo workspace with multiple crates rather than a single crate. Note the top level Cargo.toml file specifies the crates this workspace carries: (1) aconfig_protos: the proto library crate that will be used by many other crates such as aconfig binary crate and printflags binary crate (2) aconfig: the aconfig binary crate (3) printflags: the printflags binary crate (1) aconfig_protos crate setup: Inside aconfig_protos dir we set up the aconfig_protos crate, the previously src/proto.rs is now aconfig_protos/src/lib.rs, the build.rs is carried over to this crate. (2) aconfig binary crate setup: Notice its Cargo.toml file claims package dependency on aconfig_protos crate. It no longer carries proto related module and build.rs file. (3) printflags binary crate setup: Similary, notice that in its Cargo.toml file, it claims package dependency on aconfig_protos crate. With this setup, we can Cargo build/test each crate individually when inside a specific crate dir. But we can also run Cargo build/test at repo root level, which will build/test all the crates in this workplace. This is the structuring cl. The next cl is to move storage modules into its own library crate. This storage file library crate will be used by both aconfig binary crate as well as flag read library crate (to be created as another new crate here). Bug: b/321984352 Test: top and individual crate dir level Cargo build/test, m each individual targets Change-Id: I75833f4997f7ee554ff6c1557df9ac87f62b2732 Merged-In: I75833f4997f7ee554ff6c1557df9ac87f62b2732
Commit: | c77c661 | |
---|---|---|
Author: | Dennis Shen | |
Committer: | Dennis Shen |
Restructure aconfig repo to be a cargo workspace with many crates This is cherry pick of aosp/2924191 to avoid merge conflict in git main Previously, aconfig repo is the root directory of aconfig binary crate, but it also hosts printflags crate inside, and there is no cargo support for printflags binary crate. In addition, with more aconfig development, more crates are being added to this repo. Thus this repo should be configured as a Cargo workspace with multiple crates rather than a single crate. Note the top level Cargo.toml file specifies the crates this workspace carries: (1) aconfig_protos: the proto library crate that will be used by many other crates such as aconfig binary crate and printflags binary crate (2) aconfig: the aconfig binary crate (3) printflags: the printflags binary crate (1) aconfig_protos crate setup: Inside aconfig_protos dir we set up the aconfig_protos crate, the previously src/proto.rs is now aconfig_protos/src/lib.rs, the build.rs is carried over to this crate. (2) aconfig binary crate setup: Notice its Cargo.toml file claims package dependency on aconfig_protos crate. It no longer carries proto related module and build.rs file. (3) printflags binary crate setup: Similary, notice that in its Cargo.toml file, it claims package dependency on aconfig_protos crate. With this setup, we can Cargo build/test each crate individually when inside a specific crate dir. But we can also run Cargo build/test at repo root level, which will build/test all the crates in this workplace. This is the structuring cl. The next cl is to move storage modules into its own library crate. This storage file library crate will be used by both aconfig binary crate as well as flag read library crate (to be created as another new crate here). Bug: b/321984352 Test: top and individual crate dir level Cargo build/test, m each individual targets Ignore-AOSP-First: cherrypick to git main to resolve merge conflict Change-Id: I75833f4997f7ee554ff6c1557df9ac87f62b2732
Commit: | 1a1a08a | |
---|---|---|
Author: | Micha Schwab | |
Committer: | Micha Schwab |
Add metadata to aconfig Flag metadata will be used both for release strategy, such as allowing faster rollouts for flags, and for test infrastructure such as which platform tests need running. Doc: go/aconfig-metadata Test: atest aconfig.test Change-Id: Idc4b1c6b03c257a1cf92afdfb0b6e54b43741b06
Commit: | 7afc7e7 | |
---|---|---|
Author: | Oriol Prieto Gasco | |
Committer: | Oriol Prieto Gasco |
Add container field to flag_declarations A container is software which is always built in its entirety using the same build environment. In particular, all of its parts are built using the same build-time default flag values. In addition, containers are always installed as a single unit. Bug: 312696545 Test: atest aconfig.test && m all_aconfig_declarations Change-Id: I2ef3db836c4456f4f4fb5c066edf9094e38f89cc
Commit: | 0b9d289 | |
---|---|---|
Author: | Oriol Prieto Gasco | |
Committer: | Oriol Prieto Gasco |
Add is_exported field to aconfig.proto When a flag is exported, it can be read by code built in other containers. By default flags are not exported. Set this to true if your flag is gating a public API which may be called from other containers (typically, a flag used in @FlaggedAPI annotations). Test: atest aconfig.test Bug: 311152500 Change-Id: I53e3ed18b96c1518f04172d5933ef96b41ccda7e
Commit: | 427dacb | |
---|---|---|
Author: | Wei Li |
Support third_party.identifier in METADATA files of external packages. Bug: 303688820 Test: CIs Test: "m sbom" after lunch Change-Id: Ic329d87cdcfbe4152b0fe6a8fd71c4867593b674
Commit: | 71f1b35 | |
---|---|---|
Author: | Zhi Dou | |
Committer: | Zhi Dou |
aconfig: add fixed read only flag Add a new field in the declaration to indicate whether the permission can be overridden. When the field “is_fixed_read_only” is set to true, the flag permission will be set as fixed “READ_ONLY”, and the permission should not be changed by Gantry. Bug: 292521627 Test: atest aconfig.test Change-Id: Ic9bcd7823bccb8b947cf05568c7ced3763490a23
Commit: | 1b8636b | |
---|---|---|
Author: | Mårten Kongstad | |
Committer: | Mårten Kongstad |
aconfig: add proto `bug` field Add a `bug` field on the flag_declaration and parsed_flag proto messages. This field is optional in the sense that it can occur zero or more times, and aconfig will simply pass any value through. Bug fields are included in the aconfig dump format, which can be processed by other tools. Also unify how protos.rs checks that fields marked 'optional' in the proto file, but in practice are 'required', are actually set. Test: atest aconfig.test aconfig.test.java Bug: 288261336 Change-Id: I93de0005674822c6ff4d699bdc2c6509763a7f7f
Commit: | a2e5ab8 | |
---|---|---|
Author: | Mårten Kongstad | |
Committer: | Mårten Kongstad |
aconfig: make proto fields optional Change all required proto fields to optional. While the proto file is supposed to be a backwards compatible API, and fields are not supposed to be deprecated, this commit will allow for that option if needed. Implementation wise this change doesn't matter much: any parsed data needs additional verification outside what the protobuf crate's parser provides anyway, so adding checks to verify that all required fields, even though marked optional in the proto file, were found is a minor increase in code complexity. If in the future a proto field should no longer be used: - keep the field in the proto, still marked optional and clearly document that it is no longer in use - change protos.rs from checking struct.has_field() to explicitly dropping any value via struct.clear_field() Bug: 286337317 Test: atest aconfig.test Change-Id: Iad1ccfe50ecac286ff7a796aec909bec70b9520d
Commit: | 066575b | |
---|---|---|
Author: | Mårten Kongstad | |
Committer: | Mårten Kongstad |
aconfig: add namespace field to flag_declaration and parsed_flag Add a new field to the proto messages flag_declaration and parsed_flag. The new field will be used verbatim as a parameter when calling DeviceConfig.getBoolean to read the value of a READ_WRITE flag. See the DeviceConfig API for more info. Note: not to be confused with the old namespace field, which has been renamed to package. Bug: 285211724 Test: atest aconfig.test Change-Id: I2181be7b5e98fc334e5277fb5f7e386f1fe0b550
Commit: | 9fb5896 | |
---|---|---|
Author: | Mårten Kongstad | |
Committer: | Mårten Kongstad |
aconfig: rename namespace -> package What used to be referred to as a namespace is now called a package. This CL is a semantic change only. Bug: 285000854 Test: m nothing Test: atest aconfig.test Change-Id: If3fca67c415af75b44f316e16666b97089407069
Commit: | fa23d29 | |
---|---|---|
Author: | Mårten Kongstad | |
Committer: | Mårten Kongstad |
aconfig: separate flag declarations and flag values Simplify how aconfig configurations work: remove the ability to set flag values based on build-id. The aconfig files now some in two flavours: - flag declaration files: introduce new flags; aconfig will assign the flags a hard-coded default value (disabled, read-write) - flag value files: assign flags new values `aconfig create-cache` expects flags to be declared exactly once, and for their values to be reassigned zero or more times. The flag value files are identical what used to be called override files. Also, remove the now obsolete build-id parameter: this was used to calculate default values before applying overrides, and is no longer needed. Also rename a few more structs and functions to be closer to the .proto names. This will make it easier to use the generated proto structs directly, and get rid of the hand-crafter wrappers. Bug: 279485059 Test: atest aconfig.test Change-Id: I7bf881338b0567f932099ce419cac457abbe8df8
Commit: | 3095078 | |
---|---|---|
Author: | Mårten Kongstad | |
Committer: | Mårten Kongstad |
aconfig: introduce namespace, rename proto messages Flags belong to a namespace. Update the proto files to reflect this. Config files can only refer to a single namespace. Override files can refer to multiple namespaces; an override directive for a flag in a different namespace than the one represented by the cache will be silently ignored. Rename the proto messages to make it more clear what they are. Propagate this change through the wrappers in aconfig.rs and the rest of the code. Also, settle on Tracepoint instead of TracePoint. Bug: 279485059 Test: atest aconfig.test Change-Id: I16e69dd14687bc498b2ba89d6a35879459903801
Commit: | a102909 | |
---|---|---|
Author: | Mårten Kongstad | |
Committer: | Mårten Kongstad |
aconfig: add dump protobuf format Introduce a new protobuf format to represent the all flags parsed by aconfig. This data in this new format is similar to that of the internal cache object, but the protobuf is a public API for other tools to consume and any changes to the proto spec must be backwards compatible. When aconfig has matured more, Cache can potentially be rewritten to work with proto structs directly, removing some of the hand-written wrapper structs and the logic to convert to and from the proto structs. At this point, the intermediate json format can be replaced by the protobuf dump. Also, teach `aconfig dump` to accept an --out <file> argument (default: stdout). Also, teach `aconfig dump` to read more than once cache file. Note: the new protobuf fields refer to existing fields. It would make sense to split the .proto file in one for input and one for output formats, and import the common messages, but the Android build system and cargo will need different import paths. Keep the definitions in the same file to circumvent this problem. Bug: 279485059 Test: atest aconfig.test Change-Id: I55ee4a52c0fb3369d91d61406867ae03a15805c3
Commit: | c68c4ea | |
---|---|---|
Author: | Mårten Kongstad |
aconfig: change flag values to enabled/disabled enum Change the underlying type of a flag's value from bool to an explicit enum (Disabled, Enabled): this will hopefully reduce future confusion on how flags are intended to be used. Bug: 279485059 Test: atest aconfig.test Change-Id: I9535f9b23baf93ad5916ca06fb7d21277b4573eb
Commit: | 416330b | |
---|---|---|
Author: | Mårten Kongstad | |
Committer: | Mårten Kongstad |
aconfig: add read/write permission Introduce the concept of flag read/write permissions: a read-only flag can only have its value set during the build; a writable flag can by updated in runtime. Bug: 279485059 Test: atest aconfig.test Change-Id: I3ec5c9571faa54de5666120ccd60090d3db9e331
Commit: | 09c28d1 | |
---|---|---|
Author: | Mårten Kongstad | |
Committer: | Mårten Kongstad |
aconfig: add support for changing flag value based on build Teach aconfig about build IDs (continuously increasing integers). Extend the aconfig file format to allow flags to say "by default, my value is X, but starting from build ID A, it's Y, and from build ID B, it's Z". Bug: 279485059 Test: atest aconfig.test Change-Id: Idde03dee06f6cb9041c0dd4ca917c8b2f2faafdd
Commit: | bb52072 | |
---|---|---|
Author: | Mårten Kongstad | |
Committer: | Mårten Kongstad |
aconfig: define Aconfig proto Fill in aconfig.proto. Define Aconfig definitions (for introducing flags and setting their values) and Overrides (for overriding flags regardless of what their definitions say). More changes to the proto schema are expected when more of the aconfig project is outlined. Use proto2 instead of proto3: this will cause the protobuf text parser to error on missing fields instead of returning a default value which is ambiguous, especially for booleans. (Also, the text protobuf parser doesn't provide good error messages: if the input is missing a field, the error is always "1:1: Message not initialized"). Unfortunately the generated Rust wrappers around the proto structs land in an external crate, which prevents aconfig from adding new impl blocks. Circumvent this by converting the data read from proto into structs defined in the aconfig crate. Change main.rs to parse (static) text proto. Also add dependency on anyhow. Bug: 279485059 Test: atest aconfig.test Change-Id: I512e3b61ef20e2f55b7699a178d466d2a9a89eac
Commit: | 867a349 | |
---|---|---|
Author: | Mårten Kongstad | |
Committer: | Mårten Kongstad |
aconfig: add project scaffolding Introduce a new tool, aconfig, to manage build time configurations, such as feature flags. This CL adds a project skeleton. Later CLs will add the actual implementation. Note: there is no need for an explicit TEST_MAPPING file; rust_test_host are automatically included in host-unit-tests and explicitly adding these tests via TEST_MAPPING will cause an error. Bug: 279485059 Test: m aconfig && aconfig Test: atest aconfig.test Change-Id: I94047a19a55ae4d45b4fd7a0c8105a91ddcdfd79
Commit: | 4993336 | |
---|---|---|
Author: | Wei Li | |
Committer: | Wei Li |
Generate SBOM of the target product in file sbom.spdx.json in product out directory. Original aosp/2374663 was reverted, so this change cnotains the implementation but disabled by default and SBOM will not be built by default with "m dist". The feature will be enabled later in small CLs after running tests successfully in forrest. Test: m sbom Test: m dist Test: on aosp, lunch aosp_bluejay-userdebug && m dist Bug: 266726655 Change-Id: I926d0f97f3a0330ef61d059f12ea660005d370e6
Commit: | 161d711 | |
---|---|---|
Author: | Kevin Han | |
Committer: | Gerrit Code Review |
Revert "Generate SBOM of the target product in file sbom.spdx in..." Revert submission 2481062-sbom Reason for revert: b/273332655 Reverted changes: /q/submissionid:2481062-sbom Change-Id: Ie8a73d8dc50592204acd489482e0e9d96ffbd5df
Commit: | 88ac7ae | |
---|---|---|
Author: | Wei Li | |
Committer: | Wei Li |
Generate SBOM of the target product in file sbom.spdx in product out directory. Original aosp/2374663 was reverted, try to submit it again with some fixes in this. Test: m sbom Test: m dist Test: on aosp, lunch aosp_bluejay-userdebug && m dist Bug: 266726655 Change-Id: Icf305770473f0c448a1ad721cbe7addf737115e4
Commit: | 95c3ea8 | |
---|---|---|
Author: | Android Culprit Assistant | |
Committer: | Gerrit Code Review |
Revert "Generate SBOM of the target product in file sbom.spdx in..." This revert was created by Android Culprit Assistant. The culprit was identified in the following culprit search session (http://go/aca-get/5b65d203-d364-4ade-aabb-1330fe45236a). Change-Id: I4c7d7645ec0c266eb4d591b3089ba02e78da0659
Commit: | 02797aa | |
---|---|---|
Author: | Wei Li | |
Committer: | Wei Li |
Generate SBOM of the target product in file sbom.spdx in product out directory. Test: m sbom Test: m dist Bug: 266726655 Change-Id: I6464fa2dc416dea62c5cf688c923d6b496f044f5
Commit: | a5fca03 | |
---|---|---|
Author: | Tianjie | |
Committer: | Tianjie |
Amend the apex info for ota package We have already logged the compressed apexes in the target-files. Because we want to support the apex metrics during OTA update, also include the uncompressed apexes in the META/apex_info.pb. For incremental OTA packages, include the source apex version for each apex package as well. Bug: 190244686 Test: unit test Change-Id: I5cf2647c56c4feb5517f9a81aa1e9abc52515bf1
Commit: | 2b6a9c3 | |
---|---|---|
Author: | Kelvin Zhang | |
Committer: | Kelvin Zhang |
Add ota_metadata_proto_java Test: th Change-Id: Iac9b679299db6a23cdf85d7c46f20d0538ba6015
Commit: | 05ff705 | |
---|---|---|
Author: | Kelvin Zhang | |
Committer: | Kelvin Zhang |
Add spl-downgrade field to ota metadata In aosp/1581143 , we banned generation of SPL downgrade OTAs. However, caller of OTA script can still force an SPL downgrade OTA by passing --spl_downgrade flag. If this flag is specified, we propagate it to OTA metadata so that GOTA server can properly honor this flag. Test: th Change-Id: Ic8cdc850d2210f4149ad9121fa4ed2e5a4f59bcc
Commit: | 5f0fcee | |
---|---|---|
Author: | Kelvin Zhang | |
Committer: | Kelvin Zhang |
Emit apex_info to target_files META/apex_info.pb Test: mm -j Bug: 172911822 Change-Id: I5a70b75dbe1cd546c66beaa8e4e3a63c3987461e
Commit: | 9fd5886 | |
---|---|---|
Author: | Mohammad Samiul Islam | |
Committer: | Kelvin Zhang |
Create a function that can generate ApexInfo using target-files If an OTA contains compressed APEX inside it, then the device will need to allocate space on /data partition for their decompression. In order to calculate how much space the OTA process needs to allocate, the process needs more information about the APEX contained inside the OTA. In this CL, we are adding functionality to the OTA generation script that allows us to gather information about the APEX stored inside the target-file zip. However, we did not integrate the new functionality with the ota_from_target_files.py scrip yet. That will be done on follow up CL. Bug: 172911822 Test: atest releasetools_py3_test Change-Id: I2ac42018f628c2c21527b3e086be1f4e7e7247ad
Commit: | 4d50ea4 | |
---|---|---|
Author: | Kelvin Zhang | |
Committer: | Kelvin Zhang |
Add ota_metadata_pb2 to otatools.zip Sometimes tests are being run by executing python -m unittest *.py. In that case, invocation will fail due to missing ota_metadata_pb2, which is auto generated from ota_metadata.proto(added in recent change). Bug: 166718341 Test: unzip otatools.zip and python releasetools/test_utils.py Change-Id: I597c7ef6dbd8e46ccde020b3122cc38a8df28dc9
Commit: | d556337 | |
---|---|---|
Author: | Tianjie |
Add more enums to the ota type We'd better have a default type for enums. It's safe to change the proto definition now since no one is parsing the new meta. Also add the brick type for manually generated brick pkgs. Bug: 166154730 Test: unit tests pass Change-Id: Ie6d4e695c298313276b559601509c9a7a7ee91b1
Commit: | a207613 | |
---|---|---|
Author: | Tianjie | |
Committer: | Tianjie |
Define the protobuf for OTA metadata Background in http://go/android-partial-updates. For partial update (e.g. system-only) or devices with mixed build, the current fingerprint & device name no longer suffice as the precondition to install the package. Therefore, we need to additionally include the per-partition build props into the ota metadata. We also define a protobuf for the metadata so it can be extended later. The metadata of the legacy format is also kept for backward compatibility. Bug: 151088567 Test: unittest pass, generate an OTA and check the result Change-Id: I716f7da54a393cd340280dbddc3c92b3460f8ef8