diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2020-04-07 23:55:43 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2020-04-08 05:57:06 +0200 |
commit | 6fcd69a365365ad828410d0c58970e8bef9112b6 (patch) | |
tree | 489aa8e1a9946e206390f1b38cda76d0bcd5dd8a /tools | |
parent | 61847fbf132dc43ba1386bba387dbc4a0636c8fd (diff) | |
download | rockbox-6fcd69a365365ad828410d0c58970e8bef9112b6.tar.gz rockbox-6fcd69a365365ad828410d0c58970e8bef9112b6.zip |
hiby_patcher: Mangle the version string in the update payload if necessary
Change-Id: I204837f8a0e56fe51b3ee317be7d9f597b89f877
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/hiby_patcher.pl | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/tools/hiby_patcher.pl b/tools/hiby_patcher.pl index e1aa30733e..9c45ce6dd3 100755 --- a/tools/hiby_patcher.pl +++ b/tools/hiby_patcher.pl | |||
@@ -18,8 +18,6 @@ | |||
18 | # need '7z', 'mkisofs', 'md5sum', 'mkfs.ubifs' | 18 | # need '7z', 'mkisofs', 'md5sum', 'mkfs.ubifs' |
19 | # and https://github.com/jrspruitt/ubi_reader | 19 | # and https://github.com/jrspruitt/ubi_reader |
20 | 20 | ||
21 | # Rocker: PEB size 128KiB, I/O 2048, LEBs size: 124KiB, max LEBs 1024 (?) | ||
22 | |||
23 | use strict; | 21 | use strict; |
24 | 22 | ||
25 | use File::Basename; | 23 | use File::Basename; |
@@ -61,13 +59,20 @@ mkdir($isowork) || die ("Can't create '$isowork'"); | |||
61 | @sysargs = ("7z", "x", "-aoa", "-o$isowork", $inname); | 59 | @sysargs = ("7z", "x", "-aoa", "-o$isowork", $inname); |
62 | system(@sysargs); | 60 | system(@sysargs); |
63 | 61 | ||
64 | ### figure out the rootfs image filename | 62 | ### figure out the rootfs image filenames |
65 | my $updatename; | 63 | my $updatename; |
66 | if ( -e "$isowork/UPDATE.TXT") { | 64 | if ( -e "$isowork/UPDATE.TXT") { |
67 | $updatename = "$isowork/UPDATE.TXT"; | 65 | $updatename = "$isowork/UPDATE.TXT"; |
68 | } elsif ( -e "$isowork/update.txt") { | 66 | } elsif ( -e "$isowork/update.txt") { |
69 | $updatename = "$isowork/update.txt"; | 67 | $updatename = "$isowork/update.txt"; |
70 | } | 68 | } |
69 | my $versionname; | ||
70 | if ( -e "$isowork/VERSION.TXT") { | ||
71 | $versionname = "$isowork/VERSION.TXT"; | ||
72 | } elsif ( -e "$isowork/version.txt") { | ||
73 | $versionname = "$isowork/version.txt"; | ||
74 | } | ||
75 | |||
71 | open UPDATE, $updatename || die ("Can't open update.txt!");; | 76 | open UPDATE, $updatename || die ("Can't open update.txt!");; |
72 | 77 | ||
73 | my $rootfs_found = 0; | 78 | my $rootfs_found = 0; |
@@ -137,16 +142,14 @@ system("mv $ubinamenew $ubiname"); | |||
137 | 142 | ||
138 | ### Generate new ISO9660 update image | 143 | ### Generate new ISO9660 update image |
139 | 144 | ||
140 | # Update version string as needed XXX | 145 | # Correct md5sum for new rootfs image |
141 | 146 | open UPDATE, "<$updatename" || die ("Can't open update.txt!"); | |
142 | open UPDATE, "<$updatename" || die ("Can't open update.txt!");; | 147 | open UPDATEO, ">$updatename.new" || die ("Can't open update.txt!"); |
143 | open UPDATEO, ">$updatename.new" || die ("Can't open update.txt!");; | ||
144 | 148 | ||
145 | $rootfs_found = 0; | 149 | $rootfs_found = 0; |
146 | while (<UPDATE>) { | 150 | while (<UPDATE>) { |
147 | if ($rootfs_found) { | 151 | if ($rootfs_found) { |
148 | if (s/md5=.*/md5=$md5/) { | 152 | if (s/md5=.*/md5=$md5/) { |
149 | print "#### $_ ####\n"; | ||
150 | $rootfs_found=0; | 153 | $rootfs_found=0; |
151 | } | 154 | } |
152 | } else { | 155 | } else { |
@@ -159,6 +162,21 @@ while (<UPDATE>) { | |||
159 | close UPDATE; | 162 | close UPDATE; |
160 | close UPDATEO; | 163 | close UPDATEO; |
161 | system("mv $updatename.new $updatename"); | 164 | system("mv $updatename.new $updatename"); |
165 | |||
166 | # Fix up version text, if needed (AGPTek Rocker 1.31 beta) | ||
167 | |||
168 | open UPDATE, "<$versionname" || die ("Can't open version.txt!");; | ||
169 | open UPDATEO, ">$versionname.new" || die ("Can't open version.txt!"); | ||
170 | |||
171 | while (<UPDATE>) { | ||
172 | s/ver=1\.0\.0\.0/ver=2018-10-07T00:00:00+08:00/; | ||
173 | print UPDATEO; | ||
174 | } | ||
175 | |||
176 | close UPDATE; | ||
177 | close UPDATEO; | ||
178 | system("mv $versionname.new $versionname"); | ||
179 | |||
162 | @sysargs = ("mkisofs", "-volid", "CDROM", "-o", $uptnamenew, $isowork); | 180 | @sysargs = ("mkisofs", "-volid", "CDROM", "-o", $uptnamenew, $isowork); |
163 | system(@sysargs); | 181 | system(@sysargs); |
164 | 182 | ||