From c535eabfd26a1927fc87adb9250e277e19a66c3c Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Tue, 29 Jun 2004 04:54:42 +0000 Subject: - add scripts/remove-boot-splash so we can modify a bootsplash from an initrd without having to rebuild it - make-boot-splash doesn't try to detect the resolution anymore, it now needs to be given one - in switch-themes and remove-theme, use bootloader-config to update the bootloader - remove detect-resolution - requires new mkinitrd (old mkinitrd used detect-resolution) - remove "Patch: glibc-fixed-header.tar.bz2" which is unused (and not in CVS) --- scripts/remove-boot-splash | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 scripts/remove-boot-splash (limited to 'scripts/remove-boot-splash') diff --git a/scripts/remove-boot-splash b/scripts/remove-boot-splash new file mode 100644 index 0000000..e63c3b5 --- /dev/null +++ b/scripts/remove-boot-splash @@ -0,0 +1,34 @@ +#!/usr/bin/perl + +@ARGV == 1 or die "usage: remove-splash \n"; + +my $magic = 'BOOTSPL3'; +my $buffer_size = 15; + +my ($initrd) = @ARGV; +open(my $F, "+< $initrd") or die "can't open $initrd: $!\n"; + +while (1) { + my $got = read($F, my $buffer, $buffer_size); + $got > length($magic) or last; + + my $index = index($buffer, $magic); + if ($index >= 0) { + my $offset = $index + tell($F) - $got; + + seek($F, $offset + 12, 0) && read($F, my $tmp, 4) or last; + my $splash_size = unpack("V", $tmp) + 38; + + my $initrd_size = seek($F, 0, 2) && tell($F); + + if ($offset + $splash_size == $initrd_size) { + truncate($F, $offset); + exit 0; + } else { + warn "bootsplash found at offset $offset, but it is not at the end ($offset + $splash_size != $initrd_size)\n"; + } + } + seek($F, -length($magic), 1); # handle the case BOOTSPL3 when overlaps between buffers +} + +warn "bootsplash not found in $initrd\n"; -- cgit v1.2.1