Loading tools/aconfig/Cargo.toml +1 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ members = [ "aconfig", "aconfig_device_paths", "aconfig_protos", "aconfig_storage_file", "aconfig_storage_read_api", Loading tools/aconfig/aconfig_device_paths/Android.bp 0 → 100644 +38 −0 Original line number Diff line number Diff line // Copyright (C) 2024 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. package { default_applicable_licenses: ["Android-Apache-2.0"], } rust_defaults { name: "libaconfig_device_paths.defaults", edition: "2021", clippy_lints: "android", lints: "android", srcs: ["src/lib.rs"], rustlibs: [ "libaconfig_protos", "libanyhow", "libprotobuf", "libregex", ], } rust_library { name: "libaconfig_device_paths", crate_name: "aconfig_device_paths", host_supported: true, defaults: ["libaconfig_device_paths.defaults"], } tools/aconfig/aconfig_device_paths/Cargo.toml 0 → 100644 +9 −0 Original line number Diff line number Diff line [package] name = "aconfig_device_paths" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] anyhow = "1.0.82" tools/aconfig/aconfig_device_paths/partition_aconfig_flags_paths.txt 0 → 100644 +6 −0 Original line number Diff line number Diff line [ "/system/etc/aconfig_flags.pb", "/system_ext/etc/aconfig_flags.pb", "/product/etc/aconfig_flags.pb", "/vendor/etc/aconfig_flags.pb", ] tools/aconfig/aconfig_device_paths/src/lib.rs 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright (C) 2024 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. */ //! Library for finding all aconfig on-device protobuf file paths. use anyhow::Result; use std::path::PathBuf; use std::fs; /// Determine all paths that contain an aconfig protobuf file. pub fn parsed_flags_proto_paths() -> Result<Vec<PathBuf>> { let mut result: Vec<PathBuf> = include!("../partition_aconfig_flags_paths.txt") .map(|s| PathBuf::from(s.to_string())) .to_vec(); for dir in fs::read_dir("/apex")? { let dir = dir?; // Only scan the currently active version of each mainline module; skip the @version dirs. if dir.file_name().as_encoded_bytes().iter().any(|&b| b == b'@') { continue; } let mut path = PathBuf::from("/apex"); path.push(dir.path()); path.push("etc"); path.push("aconfig_flags.pb"); if path.exists() { result.push(path); } } Ok(result) } Loading
tools/aconfig/Cargo.toml +1 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ members = [ "aconfig", "aconfig_device_paths", "aconfig_protos", "aconfig_storage_file", "aconfig_storage_read_api", Loading
tools/aconfig/aconfig_device_paths/Android.bp 0 → 100644 +38 −0 Original line number Diff line number Diff line // Copyright (C) 2024 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. package { default_applicable_licenses: ["Android-Apache-2.0"], } rust_defaults { name: "libaconfig_device_paths.defaults", edition: "2021", clippy_lints: "android", lints: "android", srcs: ["src/lib.rs"], rustlibs: [ "libaconfig_protos", "libanyhow", "libprotobuf", "libregex", ], } rust_library { name: "libaconfig_device_paths", crate_name: "aconfig_device_paths", host_supported: true, defaults: ["libaconfig_device_paths.defaults"], }
tools/aconfig/aconfig_device_paths/Cargo.toml 0 → 100644 +9 −0 Original line number Diff line number Diff line [package] name = "aconfig_device_paths" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] anyhow = "1.0.82"
tools/aconfig/aconfig_device_paths/partition_aconfig_flags_paths.txt 0 → 100644 +6 −0 Original line number Diff line number Diff line [ "/system/etc/aconfig_flags.pb", "/system_ext/etc/aconfig_flags.pb", "/product/etc/aconfig_flags.pb", "/vendor/etc/aconfig_flags.pb", ]
tools/aconfig/aconfig_device_paths/src/lib.rs 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright (C) 2024 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. */ //! Library for finding all aconfig on-device protobuf file paths. use anyhow::Result; use std::path::PathBuf; use std::fs; /// Determine all paths that contain an aconfig protobuf file. pub fn parsed_flags_proto_paths() -> Result<Vec<PathBuf>> { let mut result: Vec<PathBuf> = include!("../partition_aconfig_flags_paths.txt") .map(|s| PathBuf::from(s.to_string())) .to_vec(); for dir in fs::read_dir("/apex")? { let dir = dir?; // Only scan the currently active version of each mainline module; skip the @version dirs. if dir.file_name().as_encoded_bytes().iter().any(|&b| b == b'@') { continue; } let mut path = PathBuf::from("/apex"); path.push(dir.path()); path.push("etc"); path.push("aconfig_flags.pb"); if path.exists() { result.push(path); } } Ok(result) }