[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/7] Add stub module for android bootimgs
From: |
Shea Levy |
Subject: |
[PATCH 1/7] Add stub module for android bootimgs |
Date: |
Tue, 26 Jan 2016 13:51:16 -0500 |
---
grub-core/Makefile.core.def | 7 +++
grub-core/fs/android_bootimg.c | 105 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 112 insertions(+)
create mode 100644 grub-core/fs/android_bootimg.c
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
index 0cc40bb..a726abd 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
@@ -1231,6 +1231,13 @@ module = {
};
module = {
+ name = android_bootimg;
+ common = fs/android_bootimg.c;
+ cflags = '$(CFLAGS_POSIX) $(CFLAGS_GNULIB)';
+ cppflags = '$(CPPFLAGS_POSIX) $(CPPFLAGS_GNULIB)';
+};
+
+module = {
name = bfs;
common = fs/bfs.c;
};
diff --git a/grub-core/fs/android_bootimg.c b/grub-core/fs/android_bootimg.c
new file mode 100644
index 0000000..f6b2283
--- /dev/null
+++ b/grub-core/fs/android_bootimg.c
@@ -0,0 +1,105 @@
+/* android-bootimg.c - android bootimg filesystem. */
+/*
+ * GRUB -- GRand Unified Bootloader
+ * Copyright (C) 2016 Free Software Foundation, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdint.h>
+#include <grub/dl.h>
+#include <grub/file.h>
+
+GRUB_MOD_LICENSE ("GPLv3+");
+
+/* from
https://android.googlesource.com/platform/system/core/+/506d233e7ac8ca4efa80768153d842c296477f99/mkbootimg/bootimg.h
*/
+#define BOOT_MAGIC "ANDROID!"
+#define BOOT_MAGIC_SIZE 8
+#define BOOT_NAME_SIZE 16
+#define BOOT_ARGS_SIZE 512
+#define BOOT_EXTRA_ARGS_SIZE 1024
+
+struct boot_img_hdr
+{
+ uint8_t magic[BOOT_MAGIC_SIZE];
+
+ uint32_t kernel_size;
+ uint32_t kernel_addr;
+
+ uint32_t ramdisk_size;
+ uint32_t ramdisk_addr;
+
+ uint32_t second_size;
+ uint32_t second_addr;
+
+ uint32_t tags_addr;
+ uint32_t page_size;
+ uint32_t unused[2];
+
+ uint8_t name[BOOT_NAME_SIZE];
+
+ uint8_t cmdline[BOOT_ARGS_SIZE];
+
+ uint32_t id[8];
+
+ uint8_t extra_cmdline[BOOT_EXTRA_ARGS_SIZE];
+} GRUB_PACKED;
+
+static grub_err_t
+grub_android_bootimg_dir (grub_device_t device, const char *path_in,
+ grub_fs_dir_hook_t hook, void *hook_data)
+{
+ return GRUB_ERR_NOT_IMPLEMENTED_YET;
+}
+
+static grub_err_t
+grub_android_bootimg_open (grub_file_t file, const char *name_in)
+{
+ return GRUB_ERR_NOT_IMPLEMENTED_YET;
+}
+
+static grub_ssize_t
+grub_android_bootimg_read (grub_file_t file, char *buf, grub_size_t len)
+{
+ grub_errno = GRUB_ERR_NOT_IMPLEMENTED_YET;
+ return -1;
+}
+
+static grub_err_t
+grub_android_bootimg_close (grub_file_t file)
+{
+ return GRUB_ERR_NOT_IMPLEMENTED_YET;
+}
+
+static struct grub_fs grub_android_bootimg_fs = {
+ .name = "android_bootimg",
+ .dir = grub_android_bootimg_dir,
+ .open = grub_android_bootimg_open,
+ .read = grub_android_bootimg_read,
+ .close = grub_android_bootimg_close,
+#ifdef GRUB_UTIL
+ .reserved_first_sector = 0,
+ .blocklist_install = 0,
+#endif
+};
+
+GRUB_MOD_INIT (android_bootimg)
+{
+ grub_fs_register (&grub_android_bootimg_fs);
+}
+
+GRUB_MOD_FINI (android_bootimg)
+{
+ grub_fs_unregister (&grub_android_bootimg_fs);
+}
--
2.7.0
- [PATCH 0/7] Add driver for android bootimg filesystem, Shea Levy, 2016/01/26
- [PATCH 2/7] android_bootimg: Implement dir, Shea Levy, 2016/01/26
- [PATCH 4/7] android_bootimg: Implement close, Shea Levy, 2016/01/26
- [PATCH 1/7] Add stub module for android bootimgs,
Shea Levy <=
- [PATCH 5/7] android_bootimg: Implement read, Shea Levy, 2016/01/26
- [PATCH 6/7] android_bootimg: style fixes, Shea Levy, 2016/01/26
- [PATCH 3/7] android_bootimg: Implement open, Shea Levy, 2016/01/26
- [PATCH 7/7] Add android_bootimg to changelog, Shea Levy, 2016/01/26
- Re: [PATCH 0/7] Add driver for android bootimg filesystem, Vladimir 'phcoder' Serbinenko, 2016/01/26