Challenge LAB-0003
Same artifact, different Android versions
Spot the three kinds of layout change (encoding, place, shape), tell an empty read from a missing feature, and use the habits that stop a reader from hiding the difference.
The task
A reader built for one Android layout can return an empty table on another, with no error. Empty looks the same as a feature the person never used. You will work through the article's version switcher and its counts.
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 (to read the first bytes of a file)
- A SQLite browser (optional, for the databases the article describes)
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: 2, 3 and 5 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 2 points
See the section When the right file gives the wrong answer.
Hint 2 costs 3 points
The standard XML parser rejected all of them.
Hint 3 costs 5 points
Five were plain XML, all from the one Android 10 phone.
-
Need a hint?
Three hints, in order. Each one lowers the points you can earn for this question.
Hint 1 costs 2 points
See Same path, different encoding.
Hint 2 costs 3 points
The bytes spell three letters and a zero byte.
Hint 3 costs 5 points
The letters are A, B and X.
-
Need a hint?
Three hints, in order. Each one lowers the points you can earn for this question.
Hint 1 costs 2 points
See Figure 2.
Hint 2 costs 3 points
The one Android 10 phone used plain XML. There was no Android 11 phone in the sample.
Hint 3 costs 5 points
It is the first version after the gap.
-
Need a hint?
Three hints, in order. Each one lowers the points you can earn for this question.
Hint 1 costs 2 points
See Same file, different place, the paragraph on names that move.
Hint 2 costs 3 points
It was on Android 10 and 13 images only.
Hint 3 costs 5 points
The key sp-handle was on all 14. This question asks about the older key.
-
Need a hint?
Three hints, in order. Each one lowers the points you can earn for this question.
Hint 1 costs 2 points
See Figure 3.
Hint 2 costs 3 points
The file moved to an apexdata folder from Android 12.
Hint 3 costs 5 points
The reader finds no file, and no error is raised.
-
Need a hint?
Three hints, in order. Each one lowers the points you can earn for this question.
Hint 1 costs 2 points
The section Reading by version lists six habits. Four of the options come from it.
Hint 2 costs 3 points
Two options are the very behaviours the article warns against.
Hint 3 costs 5 points
Recommended: format from the first bytes, names and paths per release, open a database with its log, match a time to a window.
-
Need a hint?
Three hints, in order. Each one lowers the points you can earn for this question.
Hint 1 costs 2 points
See Same record, different shape.
Hint 2 costs 3 points
The comparison was 1,717 of 3,180.
Hint 3 costs 5 points
Divide, then round to one decimal place. The article prints 54.0.
-
Need a hint?
Three hints, in order. Each one lowers the points you can earn for this question.
Hint 1 costs 2 points
The last paragraph of Same record, different shape has the numbers.
Hint 2 costs 3 points
The unfixed reader returned 0, 0, 0 and 3.
Hint 3 costs 5 points
The fixed reader returned four numbers; take the largest.
You have finished: what you should have learned
- A layout mismatch comes in three kinds: encoding (same path, new bytes), place (the file moved) and shape (the same record means something different).
- Report four states, not two: a value was read; the key is absent from a file that was read; the file is absent; the file could not be read. Add a fifth: this version was not tested.
- No Android 11 and no Android 15 full file system were in the sample. Say so; it is part of the result.
- A database row can be an aggregate. Match a time to a window, not to an equal value.
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.