diff options
-rw-r--r-- | debuggerd/libdebuggerd/test/UnwinderMock.h | 3 | ||||
-rw-r--r-- | fastboot/bootimg_utils.cpp | 36 | ||||
-rw-r--r-- | fastboot/bootimg_utils.h | 7 | ||||
-rw-r--r-- | fastboot/fastboot.cpp | 8 | ||||
-rw-r--r-- | fs_mgr/libfs_avb/TEST_MAPPING | 12 | ||||
-rw-r--r-- | libcutils/Android.bp | 14 | ||||
-rw-r--r-- | libcutils/rust/cutils.h | 4 | ||||
-rw-r--r-- | libmodprobe/OWNERS | 3 | ||||
-rw-r--r-- | trusty/libtrusty/tipc-test/tipc_test.c | 2 |
9 files changed, 51 insertions, 38 deletions
diff --git a/debuggerd/libdebuggerd/test/UnwinderMock.h b/debuggerd/libdebuggerd/test/UnwinderMock.h index 44a9214e5..8f84346af 100644 --- a/debuggerd/libdebuggerd/test/UnwinderMock.h +++ b/debuggerd/libdebuggerd/test/UnwinderMock.h @@ -33,8 +33,7 @@ class UnwinderMock : public unwindstack::Unwinder { void MockSetBuildID(uint64_t offset, const std::string& build_id) { unwindstack::MapInfo* map_info = GetMaps()->Find(offset); if (map_info != nullptr) { - std::string* new_build_id = new std::string(build_id); - map_info->build_id = new_build_id; + map_info->SetBuildID(std::string(build_id)); } } }; diff --git a/fastboot/bootimg_utils.cpp b/fastboot/bootimg_utils.cpp index 2c0989ed1..d2056aa41 100644 --- a/fastboot/bootimg_utils.cpp +++ b/fastboot/bootimg_utils.cpp @@ -34,22 +34,22 @@ #include <stdlib.h> #include <string.h> -static void bootimg_set_cmdline_v3(boot_img_hdr_v3* h, const std::string& cmdline) { +static void bootimg_set_cmdline_v3_and_above(boot_img_hdr_v3* h, const std::string& cmdline) { if (cmdline.size() >= sizeof(h->cmdline)) die("command line too large: %zu", cmdline.size()); strcpy(reinterpret_cast<char*>(h->cmdline), cmdline.c_str()); } void bootimg_set_cmdline(boot_img_hdr_v2* h, const std::string& cmdline) { - if (h->header_version == 3) { - return bootimg_set_cmdline_v3(reinterpret_cast<boot_img_hdr_v3*>(h), cmdline); + if (h->header_version >= 3) { + return bootimg_set_cmdline_v3_and_above(reinterpret_cast<boot_img_hdr_v3*>(h), cmdline); } if (cmdline.size() >= sizeof(h->cmdline)) die("command line too large: %zu", cmdline.size()); strcpy(reinterpret_cast<char*>(h->cmdline), cmdline.c_str()); } -static boot_img_hdr_v3* mkbootimg_v3(const std::vector<char>& kernel, - const std::vector<char>& ramdisk, const boot_img_hdr_v2& src, - std::vector<char>* out) { +static void mkbootimg_v3_and_above(const std::vector<char>& kernel, + const std::vector<char>& ramdisk, const boot_img_hdr_v2& src, + std::vector<char>* out) { #define V3_PAGE_SIZE 4096 const size_t page_mask = V3_PAGE_SIZE - 1; int64_t kernel_actual = (kernel.size() + page_mask) & (~page_mask); @@ -65,22 +65,27 @@ static boot_img_hdr_v3* mkbootimg_v3(const std::vector<char>& kernel, hdr->ramdisk_size = ramdisk.size(); hdr->os_version = src.os_version; hdr->header_size = sizeof(boot_img_hdr_v3); - hdr->header_version = 3; + hdr->header_version = src.header_version; + + if (src.header_version >= 4) { + auto hdr_v4 = reinterpret_cast<boot_img_hdr_v4*>(hdr); + hdr_v4->signature_size = 0; + } memcpy(hdr->magic + V3_PAGE_SIZE, kernel.data(), kernel.size()); memcpy(hdr->magic + V3_PAGE_SIZE + kernel_actual, ramdisk.data(), ramdisk.size()); - - return hdr; } -boot_img_hdr_v2* mkbootimg(const std::vector<char>& kernel, const std::vector<char>& ramdisk, - const std::vector<char>& second, const std::vector<char>& dtb, - size_t base, const boot_img_hdr_v2& src, std::vector<char>* out) { - if (src.header_version == 3) { +void mkbootimg(const std::vector<char>& kernel, const std::vector<char>& ramdisk, + const std::vector<char>& second, const std::vector<char>& dtb, size_t base, + const boot_img_hdr_v2& src, std::vector<char>* out) { + if (src.header_version >= 3) { if (!second.empty() || !dtb.empty()) { - die("Second stage bootloader and dtb not supported in v3 boot image\n"); + die("Second stage bootloader and dtb not supported in v%d boot image\n", + src.header_version); } - return reinterpret_cast<boot_img_hdr_v2*>(mkbootimg_v3(kernel, ramdisk, src, out)); + mkbootimg_v3_and_above(kernel, ramdisk, src, out); + return; } const size_t page_mask = src.page_size - 1; @@ -122,5 +127,4 @@ boot_img_hdr_v2* mkbootimg(const std::vector<char>& kernel, const std::vector<ch second.size()); memcpy(hdr->magic + hdr->page_size + kernel_actual + ramdisk_actual + second_actual, dtb.data(), dtb.size()); - return hdr; } diff --git a/fastboot/bootimg_utils.h b/fastboot/bootimg_utils.h index b7cf9bd90..0eb003d2f 100644 --- a/fastboot/bootimg_utils.h +++ b/fastboot/bootimg_utils.h @@ -35,7 +35,8 @@ #include <string> #include <vector> -boot_img_hdr_v2* mkbootimg(const std::vector<char>& kernel, const std::vector<char>& ramdisk, - const std::vector<char>& second, const std::vector<char>& dtb, - size_t base, const boot_img_hdr_v2& src, std::vector<char>* out); +void mkbootimg(const std::vector<char>& kernel, const std::vector<char>& ramdisk, + const std::vector<char>& second, const std::vector<char>& dtb, size_t base, + const boot_img_hdr_v2& src, std::vector<char>* out); + void bootimg_set_cmdline(boot_img_hdr_v2* h, const std::string& cmdline); diff --git a/fastboot/fastboot.cpp b/fastboot/fastboot.cpp index f720ddaa4..c946ba95e 100644 --- a/fastboot/fastboot.cpp +++ b/fastboot/fastboot.cpp @@ -523,10 +523,12 @@ static std::vector<char> LoadBootableImage(const std::string& kernel, const std: fprintf(stderr,"creating boot image...\n"); std::vector<char> out; - boot_img_hdr_v2* boot_image_data = mkbootimg(kernel_data, ramdisk_data, second_stage_data, - dtb_data, g_base_addr, g_boot_img_hdr, &out); + mkbootimg(kernel_data, ramdisk_data, second_stage_data, dtb_data, g_base_addr, g_boot_img_hdr, + &out); - if (!g_cmdline.empty()) bootimg_set_cmdline(boot_image_data, g_cmdline); + if (!g_cmdline.empty()) { + bootimg_set_cmdline(reinterpret_cast<boot_img_hdr_v2*>(out.data()), g_cmdline); + } fprintf(stderr, "creating boot image - %zu bytes\n", out.size()); return out; } diff --git a/fs_mgr/libfs_avb/TEST_MAPPING b/fs_mgr/libfs_avb/TEST_MAPPING deleted file mode 100644 index b0f36d40e..000000000 --- a/fs_mgr/libfs_avb/TEST_MAPPING +++ /dev/null @@ -1,12 +0,0 @@ -{ - "postsubmit": [ - { - "name": "libfs_avb_test", - "host": true - }, - { - "name": "libfs_avb_internal_test", - "host": true - } - ] -} diff --git a/libcutils/Android.bp b/libcutils/Android.bp index 0d9f2c79a..0f3763c50 100644 --- a/libcutils/Android.bp +++ b/libcutils/Android.bp @@ -354,3 +354,17 @@ cc_test { defaults: ["libcutils_test_static_defaults"], test_config: "KernelLibcutilsTest.xml", } + +rust_bindgen { + name: "libcutils_bindgen", + wrapper_src: "rust/cutils.h", + crate_name: "cutils_bindgen", + source_stem: "bindings", + local_include_dirs: ["include"], + bindgen_flags: [ + "--whitelist-function", "multiuser_get_app_id", + "--whitelist-function", "multiuser_get_user_id", + "--whitelist-function", "multiuser_get_uid", + "--whitelist-var", "AID_USER_OFFSET", + ], +} diff --git a/libcutils/rust/cutils.h b/libcutils/rust/cutils.h new file mode 100644 index 000000000..9b78af631 --- /dev/null +++ b/libcutils/rust/cutils.h @@ -0,0 +1,4 @@ +#pragma once + +#include <cutils/multiuser.h> +#include <private/android_filesystem_config.h> diff --git a/libmodprobe/OWNERS b/libmodprobe/OWNERS index e6b5bbad9..a6796cbba 100644 --- a/libmodprobe/OWNERS +++ b/libmodprobe/OWNERS @@ -1 +1,2 @@ -smuckle@google.com +dvander@google.com +willmcvicker@google.com diff --git a/trusty/libtrusty/tipc-test/tipc_test.c b/trusty/libtrusty/tipc-test/tipc_test.c index 94aedd75b..29c6f939f 100644 --- a/trusty/libtrusty/tipc-test/tipc_test.c +++ b/trusty/libtrusty/tipc-test/tipc_test.c @@ -914,7 +914,7 @@ static int send_fd_test(void) { } size_t buf_size = PAGE_SIZE * num_pages; - dma_buf = DmabufHeapAlloc(allocator, "system", buf_size, 0); + dma_buf = DmabufHeapAlloc(allocator, "system", buf_size, 0, 0 /* legacy align */); if (dma_buf < 0) { ret = dma_buf; fprintf(stderr, "Failed to create dma-buf fd of size %zu err (%d)\n", buf_size, ret); |