Skip to content

Commit

Permalink
Revert "Revert "ota: Make sure we don't install on top of an incompat…
Browse files Browse the repository at this point in the history
…ible system""

This should be fixed now.

This reverts commit 5875e34.

Change-Id: Ie102ff6ecb08bff80c83654a490fd18248d23086
  • Loading branch information
Brint E. Kriebel committed Jul 11, 2014
1 parent 4e5c8c1 commit 99beaeb
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
11 changes: 11 additions & 0 deletions tools/releasetools/edify_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,17 @@ def RunBackup(self, command):
self.script.append('delete("/system/bin/backuptool.sh");')
self.script.append('delete("/system/bin/backuptool.functions");')

def ValidateSignatures(self, command):
if command == "cleanup":
self.script.append('delete("/system/bin/otasigcheck.sh");')
else:
self.script.append('package_extract_file("system/bin/otasigcheck.sh", "/tmp/otasigcheck.sh");')
self.script.append('package_extract_file("META-INF/org/cyanogenmod/releasekey", "/tmp/releasekey");')
self.script.append('set_metadata("/tmp/otasigcheck.sh", "uid", 0, "gid", 0, "mode", 0755);')
self.script.append('run_program("/tmp/otasigcheck.sh");')
## Hax: a failure from run_program doesn't trigger an abort, so have it change the key value and check for "INVALID"
self.script.append('sha1_check(read_file("/tmp/releasekey"),"7241e92725436afc79389d4fc2333a2aa8c20230") && abort("Can\'t install this package on top of incompatible data. Please try another package or run a factory reset");')

def ShowProgress(self, frac, dur):
"""Update the progress bar, advancing it over 'frac' over the next
'dur' seconds. 'dur' may be zero to advance it via SetProgress
Expand Down
6 changes: 6 additions & 0 deletions tools/releasetools/ota_from_target_files
Original file line number Diff line number Diff line change
Expand Up @@ -511,6 +511,10 @@ else if get_stage("%(bcb_dev)s", "stage") == "3/3" then

device_specific.FullOTA_InstallBegin()

script.Mount("/data")
script.ValidateSignatures("data")
script.Unmount("/data")

if OPTIONS.backuptool:
script.Mount("/system")
script.RunBackup("backup")
Expand Down Expand Up @@ -545,6 +549,8 @@ else if get_stage("%(bcb_dev)s", "stage") == "3/3" then
common.ZipWriteStr(output_zip, "boot.img", boot_img.data)
script.ShowProgress(0.2, 0)

script.ValidateSignatures("cleanup")

if OPTIONS.backuptool:
script.ShowProgress(0.2, 10)
script.RunBackup("restore")
Expand Down

0 comments on commit 99beaeb

Please sign in to comment.