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.

Starter 25 to 40 minutesAndroid8 questions, 100 pointsAlways open, self-paced

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

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.

  1. Question 1 of 810 points

    In case c017-two-wipes-01, what is the run code of the second factory reset?

    Answers are not case sensitive.

    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.

  2. Question 2 of 810 points

    Across all 56 cases, how many history entries contain --wipe_data? Count only the efs/recovery/history files.

    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.

  3. Question 3 of 810 points

    How many of the 56 cases have no efs/recovery/extra_history file at all?

    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.

  4. Question 4 of 815 points

    Select the case folders in which no factory reset is recorded in the history.

    Select all that apply.

    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.

  5. Question 5 of 810 points

    In case c026-region-change-only-02, which region code did the last entry switch the phone to?

    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.

  6. Question 6 of 815 points

    In case c042-truncated-02 the history file ends inside its last entry. Counting the run codes that format /data in extra_history, how many factory resets does the case record?

    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.

  7. Question 7 of 815 points

    In case c035-clock-1970-03, how many hours, to the nearest hour, passed between the wipe and the last region change, by the recovery clock as printed?

    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.

  8. Question 8 of 815 points

    In the same case, the wipe has a requested_time. On what date in UTC was the reset requested? Answer as YYYY-MM-DD.

    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.