Challenge DS-0004
Read 56 synthetic recovery histories
Count wipes and region changes in plain-text recovery histories, notice what a 1970 clock and a cut file do to a count, and check your counts against a set with reference answers.
The task
The set holds 56 invented recovery histories in the layout the Lab describes in LAB-0001. Each case is a small folder of plain text. You can read a case in a text editor or count across the whole set with a short script. The reference answers are in the zip, so you can test a reader blind and compare after.
All challenge data is synthetic or comes from the Lab's published articles. No account is needed, nothing you type here leaves your browser except each answer you check, and the optional form if you send it.
What you need
Read and download
- Article LAB-0001: Samsung recovery and reset trail
- Dataset DS-0004: Synthetic recovery-history set
- synthetic-recovery-1.0.zip The whole set, 66 KB, CC BY 4.0
- manifest.json File list with sizes and SHA-256 hashes
Tools (all free)
- A plain text editor
- Python 3 (standard library) or a shell with grep
- A spreadsheet (optional, for reference_answers.csv)
Any tool that reads text will do. You do not need the Lab's own software or an account.
Questions
Each answer is checked when you press Check answer, and you see the result straight away. A wrong answer costs nothing, and you may try again. A hint lowers the points you can earn for that question: 1, 2 and 3 points for hints 1, 2 and 3, and a correct answer always earns at least 1 point. Checking needs JavaScript; reading does not.
-
Need a hint?
Three hints, in order. Each one lowers the points you can earn for this question.
Hint 1 costs 1 point
Open cases/c017-two-wipes-01/efs/recovery/history.
Hint 2 costs 2 points
Look for entries with --wipe_data. There are two.
Hint 3 costs 3 points
The code is the two letters in square brackets at the start of the later one.
-
Need a hint?
Three hints, in order. Each one lowers the points you can earn for this question.
Hint 1 costs 1 point
A short script or grep -c over the 56 history files is enough. Do not count the cache copies.
Hint 2 costs 2 points
In Python, add up history_text.count('--wipe_data') over the cases folder.
Hint 3 costs 3 points
The reference answers say 61 resets were generated in total. Your count is smaller, and question 6 shows why.
-
Need a hint?
Three hints, in order. Each one lowers the points you can earn for this question.
Hint 1 costs 1 point
List the efs/recovery folders. A missing file is not the same as an empty one.
Hint 2 costs 2 points
One of the seven categories is built this way.
Hint 3 costs 3 points
Check that the number matches the category name.
-
Need a hint?
Three hints, in order. Each one lowers the points you can earn for this question.
Hint 1 costs 1 point
Search each history file for --wipe_data.
Hint 2 costs 2 points
Two of the five folders have none. A region change is not a factory reset.
Hint 3 costs 3 points
One of the two is in the no_wipe category, the other is in region_change_only.
-
Need a hint?
Three hints, in order. Each one lowers the points you can earn for this question.
Hint 1 costs 1 point
Open its history file. There are two entries.
Hint 2 costs 2 points
Read the reason line of the last one: old code, arrow, new code.
Hint 3 costs 3 points
Three letters, the name of a carrier code used across the set.
-
Need a hint?
Three hints, in order. Each one lowers the points you can earn for this question.
Hint 1 costs 1 point
Read both files. The history is cut, the companion file is not.
Hint 2 costs 2 points
A wipe has format lines under its run code.
Hint 3 costs 3 points
The history shows one readable wipe; the cut entry belongs to another.
-
Need a hint?
Three hints, in order. Each one lowers the points you can earn for this question.
Hint 1 costs 1 point
Both entries are on a 1970 clock. Only the gap between them is reliable.
Hint 2 costs 2 points
Subtract the clock of the wipe from the clock of the last entry.
Hint 3 costs 3 points
The two dates are two days and a part apart. Convert to hours.
-
Need a hint?
Three hints, in order. Each one lowers the points you can earn for this question.
Hint 1 costs 1 point
--requested_time is a Unix time in seconds since 1970-01-01 00:00 UTC.
Hint 2 costs 2 points
Python: datetime.datetime.fromtimestamp(value, datetime.timezone.utc).
Hint 3 costs 3 points
It is in 2026, in the spring.
You have finished: what you should have learned
- Run code, command and reason together tell a wipe from a region change. The format lines in the second file confirm the wipe.
- A readable count and a true count can differ. A cut history hides an entry that the companion file still shows.
- A 1970 clock is wrong in absolute terms and, in this synthetic set, right in elapsed terms. Use the requested time when the entry has one.
- Run your reader blind first, then compare with the reference answers. A reader that passes here has passed on a model, not on a phone.
Completion note
Typed here only. It appears on the printed note and is not saved or sent anywhere.
Optional: tell us a little about yourself
This helps the Lab see who the challenges reach. It is not needed to keep your points, and it is never linked to your answers. You can also use the stand-alone form at any time.
Thank you
Your answers were received.
Your id, kept in this browser. Write it down if you want to delete your answers from another device.