{
  "schema_version": 1,
  "host": "macOS ARM64",
  "apps": [
    {
      "package": "uk.ac.nott.cs.itxpm",
      "version": "1.0",
      "origin": "third-party",
      "artifact_url": "https://raw.githubusercontent.com/swiftugandan/Simple-Android-Calculator/3ba860b281eba34f144e4e75115f0c0a06bced31/bin/verysimplecalc.apk",
      "sha256": "7c1adc93607c8511a3abd379f74765747d2ae72fb70c4ff5c471f13e94b98921",
      "status": "interactive-subset",
      "native_ui": true,
      "native_mouse": true,
      "native_keyboard_verified": false,
      "native_close_exit_zero": true,
      "logical_viewport": [
        192,
        400
      ],
      "headless_scenarios": 7,
      "notes": "Included in v0.2.0: native addition/multiplication/division. Styling/table/gradient/theme fidelity incomplete; full numerical behavior unverified. Public original APK unmodified and not redistributed."
    },
    {
      "package": "com.kasroudra.kascalc",
      "version": "1.0",
      "origin": "third-party",
      "artifact_url": "https://github.com/KasRoudra/simplecalculator/releases/download/v1.0/KasCalc.apk",
      "sha256": "6010d2f142cd8d0114ab627a44b50b5dc223b4d94ae5a235f836afbae211f505",
      "status": "interactive-subset",
      "native_ui": true,
      "native_mouse": true,
      "native_keyboard_verified": false,
      "native_close_exit_zero": true,
      "headless_scenarios": 10,
      "notes": "Basic arithmetic/native clicks. Menus/gestures/full numerical behavior unverified."
    },
    {
      "package": "c.k",
      "origin": "third-party-sample",
      "artifact_url": "https://github.com/krossovochkin/SmallestAPK/blob/c6e1063d8b6c3b3ad852db534a8ccd63b877e92e/apk/k-release.apk",
      "sha256": "4cd031dca892b0434274af0dee6f07cacc9163a5b685ba0f363f5642e0374318",
      "status": "ui-created",
      "notes": "Original signed sample executes Activity and creates OK TextView."
    },
    {
      "package": "org.droidless.counter",
      "origin": "droidless-fixture",
      "status": "interactive-fixture",
      "native_ui": true,
      "native_mouse": true,
      "native_text_verified": true,
      "native_keyboard_verified": true,
      "native_close_exit_zero": true,
      "source": "examples/counter",
      "notes": "Earlier native text-copy/key listener and clean close; current headless VM conformance adds FrameContract and instruction-slice/GC checks. The normal FrameContract passes on desktop Java 17. No worker or independent APK compatibility claim. Retained DEX Throwable traces, explicit/implicit faults, GC, localized descriptions, refreshed traces, cause cycles and callback fault cleanup pass compiled checks. The portable ThrowableContract passes on desktop Java; source lines, StackTraceElement arrays, stream/writer overloads and suppression remain unsupported. Compiled MenuContract and MenuActivity verify flat XML, item/group state, ordering, GC, virtual tint callbacks, create/prepare caching and rejection, invalidation, listener fallback, stale input, navigation and fault cleanup. The generic view/class layout tag invokes the named guest constructor and onFinishInflate after child attachment; compiled callback-GC and live-region mode checks pass; tint metadata is retained, not painted. A native Options menu bridge is implemented; a standalone AppKit contract checks preparation, copied UTF-8, enabled/checked state, action dispatch and cleanup. Physical menu input remains unverified. Compiled temporary detach/reattach and permanent removal checks cover parent/index/parameter state, virtual onViewRemoved, hierarchy listeners, GC, faults and rejected active touch capture/LayoutTransitions; window attachment and disappearing animations remain unsupported. Compiled float min/max checks cover NaN, signed zero, infinities and subnormal values; the same portable MathContract passes on desktop Java 17. Compiled TextLayoutContract checks measured text/width/line count, wrapping, explicit newlines, invalidation, stable identity, height limits, zero dimensions, supplementary characters, inherited measurement with GC/faults and owning EditText append. Font metrics remain approximate; no Android shaping or native multiline painting parity is claimed. Compiled nested container checks cover weighted EXACTLY/AT_MOST/UNSPECIFIED dimensions, margins, matching cross-axis size, hidden children, rendered bounds, pending layout at unchanged bounds, ancestor requests, callback faults/GC and cleanup. An authored support-class probe validates the unanimated measurement guard using a different animator type and setter GC. Compiled padding checks retain relative XML/setter state, LTR start/end values, physical reset, measured text invalidation and per-View isolation through GC; invalid negative input leaves state unchanged. RTL and legacy target-SDK padding precedence remain unsupported. Compiled PropertyAnimationContract verifies clock-driven alpha and translationX/Y, rendered intermediate geometry, automatic/delayed starts, partial replacement, dynamic token interpolation, reentrant cancellation/restart, callback GC/fault cleanup and shutdown transient-state release. This is an authored bounded profile; standalone ValueAnimator factories, broader property families and Android frame-phase parity remain unsupported. No fresh native animation interaction is claimed.",
      "desktop_java_frame_differential_verified": true,
      "managed_frame_continuations_verified": true,
      "headless_throwable_diagnostics_verified": true,
      "desktop_java_throwable_contract_verified": true,
      "headless_float_min_max_verified": true,
      "desktop_java_float_min_max_verified": true,
      "headless_menu_xml_and_state_verified": true,
      "headless_options_menu_callbacks_verified": true,
      "native_options_menu_input_verified": false,
      "headless_text_layout_verified": true,
      "headless_container_measurement_verified": true,
      "headless_relative_padding_verified": true,
      "headless_view_property_animation_verified": true
    },
    {
      "package": "org.droidless.intents",
      "origin": "droidless-fixture",
      "status": "interactive-fixture",
      "native_ui": true,
      "native_mouse": true,
      "native_text_verified": true,
      "native_back_verified": true,
      "native_close_exit_zero": true,
      "source": "examples/intents",
      "notes": "Current source: explicit navigation, typed copied extras, preserved input/title, Back override and lifecycle/GC tests. Application observer registration, snapshot mutation, canonical identity, retention/release and callback fault cleanup pass compiled checks. Fresh native navigation/Back/close with GC in observers records 33 interface calls and exits 0. Authored fixture, not independent multi-screen APK evidence; saved-state/pre/post callbacks remain unsupported.",
      "headless_application_observers_verified": true,
      "native_application_observers_verified": true,
      "native_observer_interface_calls": 33
    },
    {
      "package": "org.droidless.preferences",
      "origin": "droidless-fixture",
      "status": "interactive-fixture",
      "native_ui": true,
      "native_mouse": true,
      "native_text_verified": true,
      "native_paste_verified": true,
      "native_restart_persistence_verified": true,
      "native_clear_persistence_verified": true,
      "native_close_exit_zero": true,
      "source": "examples/preferences",
      "notes": "Authored fixture: typed/staged preferences, native save/restart/clear and package/path/link isolation. Apply is synchronous. Not independent notes-app evidence."
    },
    {
      "package": "org.droidless.collections",
      "origin": "droidless-fixture",
      "status": "ui-created",
      "native_ui": false,
      "headless_conformance_verified": true,
      "source": "examples/collections",
      "notes": "Authored compiled fixture: ordered/indexed lists, immediate FIFO queues, duplicate/null/capacity behavior, guest equals, Set/Map operations, iterator and inherited queue override dispatch, live read-only views, GC retention, limits and rejected eviction hooks. Native map copying, live/nested read-only List views, shared iterator aliases, snapshot GC roots and error cleanup are checked. Same ListContract, MapCopyContract and immediate QueueContract pass on desktop Java 17 with Java 8 source/target. Queue waits/workers are covered by the separate Scheduling fixture; queue iterators remain unsupported. No native interaction or independent notes-app evidence. SnapshotContract also passes on Java 17: immutable snapshot iteration across live changes, read-only wrapping, nulls/indexes and guest equality. Rust checks cover GC retention/release, serial guest worker writes, entry ceilings and explicit reentrant-remove rejection with root cleanup. Snapshot creation copies O(n) references; main blocking join and parallel CPU execution remain unsupported. ArraySortContract verifies stable natural/custom order, ranges and catchable comparison errors on DROIDLESS and desktop Java; Rust adds GC, mutation rejection and the 16384-element limit.",
      "desktop_java_list_differential_verified": true,
      "desktop_java_immediate_queue_differential_verified": true,
      "android_reference_verified": false,
      "desktop_java_map_copy_differential_verified": true,
      "headless_readonly_list_verified": true,
      "desktop_java_snapshot_differential_verified": true,
      "headless_snapshot_worker_verified": true,
      "headless_object_array_sort_verified": true,
      "desktop_java_array_sort_differential_verified": true
    },
    {
      "package": "org.droidless.reflection",
      "origin": "droidless-fixture",
      "status": "ui-created",
      "native_ui": false,
      "headless_conformance_verified": true,
      "desktop_java_differential_verified": true,
      "android_reference_verified": false,
      "source": "examples/reflection",
      "notes": "Authored compiled APK: class lookup/construction, initialization/access faults, arrays, inherited field aliases and all nine native wrapper TYPE identities; GC, wrong-kind/type and rejected final-write regressions. Same ReflectionContract and PrimitiveContract pass on Java 17 with Java 8 source/target. Primitive metadata does not imply general boxing support. Framework-specific compiled checks add fixed SDK_INT=21, repeated reads, declaring-owner aliases without subclass initialization, and rejected final writes/wrong-kind/type access. SDK checks are separate from desktop Java differential evidence. Class.toString now formats APK/native-profile classes and interfaces, primitive/void identities and array descriptors; these descriptions pass the compiled and portable PrimitiveContract. Unknown native metadata remains explicitly unsupported.",
      "desktop_java_primitive_differential_verified": true,
      "headless_sdk_profile_verified": true,
      "headless_class_descriptions_verified": true,
      "desktop_java_class_descriptions_verified": true
    },
    {
      "package": "org.droidless.scheduling",
      "origin": "droidless-fixture",
      "status": "interactive-fixture",
      "native_ui": true,
      "native_mouse": true,
      "native_timer_verified": true,
      "native_cancellation_verified": true,
      "native_delayed_finish_verified": true,
      "native_close_exit_zero": true,
      "headless_conformance_verified": true,
      "desktop_java_thread_metadata_differential_verified": true,
      "android_reference_verified": false,
      "source": "examples/scheduling",
      "notes": "Earlier native timer/cancellation/delayed finish evidence. Current compiled headless checks also cover deferred workers, independent identities, queue/monitor waits, interrupt, main Handler result delivery, GC, bounded spinning, faults, capacity and shutdown. Same pure WorkerContract passes on desktop Java 17. Serial shared-heap host executor; no parallel CPU execution. Main/native-bridge waits, nested Looper pumps and priority remain unsupported. Fresh native Start worker delivers the complete result in accessibility state and closes with status 0; its long visible label clips at 360x340. No independent asynchronous workflow claim. Java Timer/TimerTask compiled checks now cover long/Date deadlines, fixed-delay/fixed-rate catch-up, one serial guest worker per Timer, blocking/cancellation, purge, GC, task failure, capacity, shutdown and main Handler UI posting. The portable validation/serial contract also passes on desktop Java; full timing/liveness parity and Timer finalization remain unsupported. Optimized native Scheduling at 420x720 delivers Background timer done: 3 through TimerTask-to-main Handler posting; restarting and canceling leaves Background timer cancelled beyond later deadlines. Prepared worker Loopers now pass compiled queue routing/order, callback waits, GC, exception reentry, quit/quitSafely and bounded delivery checks. Authored wait/deliver/cancel UI actions pass headless replay. Native host live-clock finish cancels a blocked Looper callback and exits 0; manual native Looper button clicks remain unverified because the UI service could not attach to its visible window. No Android reference or public-APK Looper workflow claim. Worker sleep and timed/indefinite joins now pass compiled deadline, interrupt, monitor-retention, GC, argument-fault and shutdown checks. Sleeping Callable tests feed input before the deadline and verify the Future completes only after wakeup. The portable ThreadWaitContract also passes on desktop Java. Main positive sleep/live join and synchronous bridge/initializer waits remain unsupported; sub-ms time rounds up. No new public-APK sleep/join workflow or manual native interaction claim. Authored native-host replay prequeues Sleep, join and finish while time is frozen. After AppKit opens, the live clock wakes the sleeper, the join completes, guest code validates the result/main Thread identity and finishes. Visible-window, guest completion and onPause/onStop/onDestroy logs occur in order; exit status 0. This is automated host event-loop evidence, not manual native mouse input or a painted result before immediate finish.",
      "headless_worker_verified": true,
      "native_worker_verified": true,
      "desktop_java_worker_differential_verified": true,
      "native_worker_close_exit_zero": true,
      "headless_java_timer_verified": true,
      "desktop_java_timer_contract_verified": true,
      "native_java_timer_verified": true,
      "native_java_timer_cancellation_verified": true,
      "native_java_timer_close_exit_zero": true,
      "headless_worker_looper_verified": true,
      "headless_worker_looper_ui_flow_verified": true,
      "native_worker_looper_buttons_verified": false,
      "native_blocked_looper_shutdown_verified": true,
      "headless_thread_sleep_join_verified": true,
      "desktop_java_thread_wait_contract_verified": true,
      "native_thread_sleep_join_flow_verified": true,
      "native_thread_sleep_join_manual_input_verified": false,
      "native_thread_sleep_join_close_exit_zero": true
    },
    {
      "package": "org.droidless.images",
      "origin": "droidless-fixture",
      "status": "native-image-fixture",
      "native_ui": true,
      "native_images_verified": true,
      "png_verified": true,
      "jpeg_verified": true,
      "webp_verified": true,
      "source": "examples/images",
      "notes": "Authored fixture checks BitmapFactory resource, stream and byte-array paths, bounds metadata, XML src, and four AppKit ImageViews. The captured native screenshot showed all three formats. No independent image-app claim; bitmap pixel operations and Canvas remain unsupported. Compiled Paint/TextPaint checks verify actual macOS font ascent/descent across three families/four styles, retained sizes/faces, scaling, zero/negative sizes and GC. The native component check compares metrics with actual control fonts; Android font parity remains unsupported. Compiled HostFocusContract verifies real editor focus callbacks, transfers, idempotence, GC, disabled/hidden/non-focusable targets, faults, recovery and released roots. Compiled styled-resource checks cover default/XML precedence, theme snapshots, null src/srcCompat clearing, raw TypedValue floats and actual TypedArray.getValue output, aliases, GC and invalid arguments. Android asset-cookie/qualifier provenance and recycled-array faults remain incomplete. Compiled Material-theme checks cover bounded flat light/dark text defaults, disabled alpha, action-bar size, explicit/implicit ancestry, application overrides and numeric theme aliases.",
      "headless_host_font_metrics_verified": true,
      "headless_host_editor_focus_verified": true
    },
    {
      "package": "ir.cafebazaar.notepad",
      "version": "1.0",
      "origin": "third-party",
      "artifact_url": "https://github.com/MohMah/android-notepad/releases/download/v1.0.0/notepad-v1.0.0.apk",
      "sha256": "2c35d3dc1d41d2c761b52785c591973886fb671a2cc2e7ab047ede89599db47f",
      "status": "interactive-subset",
      "native_ui": true,
      "native_keyboard_verified": true,
      "native_save_verified": true,
      "multi_note_restart_verified": true,
      "notes": "Original release APK unmodified. Headless replay saves two notes, reopens one through its row listener, edits title and multiline body, refreshes the list and restores both fields after restart with the original row ID. Native AppKit checks select an existing row with the mouse, edit its title/body with keyboard input, save through Back and reopen both exact fields in a fresh process. Both native processes close with exit status zero. Headless malformed-body replay logs the real SAX fault with its retained DEX PC, displays the APK's own !ERROR! marker and leaves the stored row unchanged when opened. XML metacharacters still do not round-trip through the original serializer; rich formatting, drawing, worker flow and visual fidelity remain unverified. Not redistributed. The original AppCompat menu and Delete selection execute. Only the intended SQLite row is removed; the other retains its original ID/title/body. Snackbar child binding, queued Handler delivery, float clamping and RecyclerView detached-child removal now execute. Snackbar child measurement now creates the actual measured text Layout and reads its line count. LinearLayout.getOrientation and retained relative padding also resolve. Snackbar completes measurement and starts its original ViewPropertyAnimator translation/alpha callbacks. Headless Delete returns to Notes, removes only the intended row, renders the survivor immediately and after restart, and reopens its exact title/body with the original ID. The bounded property-animation profile passes authored clock/GC/fault checks. Headless timed replay shows the original delete message and UNDO label at 250 ms, then removes the Snackbar after another 3000+250 ms while retaining the exact survivor row. Headless Undo executes the original listener, restores title/body with a fresh auto-increment ID, keeps the survivor exact and reopens the restored fields after restart; advancing past the former timeout causes no further change. Native menu input, Delete/Undo and timed feedback/dismissal remain unverified. The AppKit Options bridge is now implemented and component-checked. The current native editor opened with a traced visible window, but UI control could not attach (cgWindowNotFound); physical menu selection and native Delete remain unverified. Headless navigation taps reveal the original drawer menu partly on screen at 100 ms while retaining both exact note rows. Advancing to 1000 ms now completes the original drawer settlement callback and its View.requestFocus call. Back closes the drawer while retaining Notes and both exact note rows. Explicit generic focus ownership, guest callbacks, GC and adapter-removal cleanup pass compiled contracts. Shared rendering invokes guest computeScroll and attached postInvalidateOnAnimation requests notify host polling. The CLI renders advanced frames before the next action. Native drawer input remains unverified. Selecting Create or edit folders opens Edit Folders and binds its original editor/button listener through the APK's installed AppCompat inflater factory. Back returns to Notes with both exact note rows retained. No APK patch or class alias is used. Starting creation now passes descendant coordinates, resource backgrounds, Throwable logging and the hardware-keyboard service. Software show/hide requests return false. Generic touch focus opens the original folder editor/Done action; its actual listener writes exactly one named Folder row. New-row construction now passes TextPaint, child drawable states, themed text appearance and sized child attachment. The original APK catches the API-21 unresolved-theme RuntimeException and applies its own fallback style. Headless creation displays exactly one named folder; a fresh process reopens the saved row and Back restores both exact note rows. Software keyboards and native folder input remain unverified. Current convenience attachment invokes the real TextInputLayout indexed binding callback. Saved-row focus and pending input exit zero; restart discards unconfirmed input, preserving the exact saved folder and both notes. Typeface state reaches native fonts; TextWatcher and scalar ValueAnimator callbacks execute guest DEX. ARGB and retained Paint shadow state complete focus coloring. Original rename confirmation now completes with actual host-font ascent/descent; the same folder ID/new name survive restart and Back while both exact notes remain unchanged. Physical folder input remains unverified; host metrics do not establish Android font parity. The shared host editor focus dispatcher runs actual guest requestFocus callbacks. Optimized --focus-at replay creates and renames folders, discards unconfirmed input on restart and preserves both exact notes. Native component checks cover first-responder gains, key-view traversal, retained selection and focus refusal/failure; physical folder interaction and complete bidirectional focus remain unverified. The original focused saved-folder delete listener now completes themed-context/inflater setup, dialog creation/start/attachment, clipping, both queued scroll-indicator queries and title measurement. Headless replay displays its original Delete folder? title, message, Cancel and Delete Folder buttons with guest listeners. Cancel dismisses the dialog and retains the exact folder ID/name through restart and Back. Confirmation dismisses the dialog, removes the saved folder, leaves both exact note IDs/titles/bodies unchanged and survives restart and Back. The seed is untouched. Generic modal surfaces pass authored DEX lifecycle/input/GC contracts and real AppKit panel component checks; physical interaction with this public dialog remains unverified. TextView ellipsis state, UTF-16 Layout offsets, snapshots and shortened native display text have compiled checks; shaping and Android font parity remain outside the scalar-width profile. Bounded file output and the unchanged app's optimized real flow now pass: Backup data writes `external/notepad_backup.nbu`, Restore recovers the tampered copy, SQLite integrity and every Note/Folder row match, and a fresh launch shows the restored data. Current source handles the final `System.exit(0)` as CLI status 0 after uncatchable guest-frame unwinding; the v0.3.0 release archive predates this follow-up. The seed remains untouched.",
      "release_tag": "v1.0.0",
      "headless_viewport": [
        390,
        844
      ],
      "headless_scenarios": 4,
      "headless_note_editor_verified": true,
      "headless_text_input_verified": true,
      "save_restart_verified": true,
      "saved_title_visible_after_restart": true,
      "headless_existing_note_edit_verified": true,
      "headless_title_body_restart_verified": true,
      "existing_note_row_id_retained": true,
      "native_existing_note_selection_verified": true,
      "native_existing_note_edit_verified": true,
      "native_title_body_restart_verified": true,
      "native_close_exit_zero": true,
      "headless_malformed_body_error_fallback_verified": true,
      "headless_malformed_body_open_preserves_row_verified": true,
      "native_malformed_body_error_fallback_verified": false,
      "headless_options_menu_construction_verified": true,
      "headless_note_delete_workflow_verified": true,
      "native_options_menu_input_verified": false,
      "headless_delete_survivor_id_title_body_retained": true,
      "headless_timed_delete_feedback_verified": true,
      "headless_timed_delete_dismissal_verified": true,
      "headless_delete_feedback_clock_steps_ms": [
        250,
        3000,
        250
      ],
      "native_timed_delete_feedback_verified": false,
      "headless_delete_undo_verified": true,
      "headless_undo_title_body_restart_reopen_verified": true,
      "headless_undo_fresh_row_id_verified": true,
      "headless_undo_survivor_id_title_body_retained": true,
      "headless_undo_old_timeout_harmless": true,
      "native_delete_undo_input_verified": false,
      "headless_drawer_navigation_tap_verified": true,
      "headless_drawer_open_back_close_verified": true,
      "headless_drawer_existing_note_rows_retained": true,
      "headless_drawer_frame_steps_ms": [
        100
      ],
      "native_drawer_input_verified": false,
      "folder_editing_verified": true,
      "folder_first_current_blocker": null,
      "headless_drawer_animation_frame_verified": true,
      "headless_drawer_open_close_steps_ms": [
        1000,
        1000
      ],
      "headless_folder_activity_binding_verified": true,
      "native_folder_input_verified": false,
      "headless_folder_open_back_verified": true,
      "headless_folder_existing_note_rows_retained": true,
      "headless_folder_creation_verified": true,
      "headless_folder_open_back_verified_with_empty_folder_table": true,
      "headless_saved_folder_display_restart_back_verified": true,
      "folder_creation_existing_note_rows_retained": true,
      "headless_saved_folder_focus_input_verified": true,
      "headless_saved_folder_unconfirmed_input_discarded_verified": true,
      "headless_folder_rename_verified": true,
      "folder_rename_confirmation_blocker": null,
      "headless_folder_editing_verified": true,
      "headless_folder_rename_restart_back_verified": true,
      "folder_rename_id_and_existing_notes_retained": true,
      "headless_saved_folder_host_focus_input_verified": true,
      "headless_folder_delete_dialog_boundary_verified": true,
      "headless_folder_deletion_verified": true,
      "headless_folder_delete_dialog_constructor_verified": true,
      "headless_folder_delete_dialog_builder_verified": true,
      "headless_folder_delete_dialog_oncreate_entered": true,
      "folder_deletion_first_blocker": null,
      "headless_folder_delete_appcompat_foreground_setup_verified": true,
      "headless_folder_delete_dialog_layout_inflation_verified": true,
      "headless_folder_delete_dialog_clipping_setup_verified": true,
      "headless_folder_delete_dialog_start_attachment_verified": true,
      "headless_folder_delete_dialog_scroll_queries_verified": true,
      "headless_folder_delete_dialog_title_measurement_verified": true,
      "headless_folder_delete_dialog_presentation_verified": true,
      "headless_folder_delete_cancel_restart_back_verified": true,
      "headless_folder_delete_restart_back_verified": true,
      "folder_delete_retains_exact_notes": true,
      "native_folder_delete_dialog_input_verified": false,
      "backup_restore_boundary_diagnosed": true,
      "backup_private_input_channel_reached": true,
      "backup_restore_exact_notes_folders_and_seed_retained": true,
      "headless_backup_verified": true,
      "headless_restore_verified": true,
      "backup_restore_completes_before_guest_system_exit": true,
      "backup_restore_exit_boundary": null,
      "guest_system_exit_handled_verified": true,
      "guest_system_exit_status_code": 0
    },
    {
      "package": "org.droidless.grids",
      "origin": "droidless-fixture",
      "status": "interactive-fixture",
      "source": "examples/grids",
      "native_ui": true,
      "native_mouse": true,
      "native_images_verified": true,
      "native_close_exit_zero": true,
      "headless_conformance_verified": true,
      "android_reference_verified": false,
      "notes": "Authored compiled fixture: seven PNG cells, native item clicks with long IDs, disabled item and four-cell refresh. Headless checks cover observer self-removal, auto-fit and all stretch modes, replacement/invalidation, GC, limits and failure recovery. At most 1024 materialized cells; viewport recycling, selection and touch scrolling remain unsupported. Not independent image-app evidence."
    },
    {
      "package": "org.droidless.results",
      "origin": "droidless-fixture",
      "status": "interactive-fixture",
      "source": "examples/results",
      "native_ui": true,
      "native_mouse": true,
      "native_activity_results_verified": true,
      "native_folder_picker_verified": true,
      "native_close_exit_zero": true,
      "headless_conformance_verified": true,
      "android_reference_verified": false,
      "notes": "Authored compiled fixture: child result data is copied at finish, Back cancels, and a real native folder choice returns an opaque URI. Compiled checks cover Intent action/type/data/copy semantics, stopped and finished callers, lifecycle order, window attachment tokens, GC, callback failure cleanup and the 64-grant ceiling. The separate Documents fixture covers bounded queries and streams; writes and persistent grants remain unsupported."
    },
    {
      "package": "org.droidless.documents",
      "origin": "droidless-fixture",
      "status": "interactive-fixture",
      "source": "examples/documents",
      "headless_conformance_verified": true,
      "native_ui": false,
      "android_reference_verified": false,
      "notes": "Compiled guest fixture queries a selected directory, decodes and closes three image streams, and preserves filename accessibility labels across GC. Checks cover natural/null-comparator stable sort and mutation faults, URI encoding and read-only segments, seven ScaleType values, file/foreign/ungranted URIs, traversal, symlinks, hard links, nested files, stream snapshot/close, Cursor close, UTF-16 searches and a 64 MiB stream ceiling. Native public-app rendering is verified separately in SwpieView."
    },
    {
      "package": "org.voidptr.swpieview",
      "version": "1.3.2",
      "origin": "third-party",
      "artifact_url": "https://f-droid.org/repo/org.voidptr.swpieview_15.apk",
      "sha256": "7c7a17ddf254e6f7adb53786ab3928937a4de499785475278df2fe5a034f50f3",
      "status": "static-image-viewer-subset",
      "native_ui": true,
      "notes": "Original F-Droid APK unmodified and not redistributed. Native macOS folder selection runs guest directory queries, Comparable sorting and stream decoding, displaying three CENTER_CROP thumbnails. Native clicks open JPEG, PNG and WebP images in the APK full-screen Activity; Escape returns to the grid after each visit, and normal close exits 0. Real ImageContainer Parcelable writers/CREATORs transfer the image stack; setImageURI decodes a granted stream and closes it. Optimized host replay checks one viewer image and Back to three thumbnails with GC and clean close. Host touch replay runs the APK gesture callbacks, checks exact JPEG/PNG/WebP next/previous image bytes, first/last bounds and confirmed tap control hide/show. GIF animation, slideshow, lifecycle auto-hide and full styling remain unproven; velocity estimation is a bounded single-pointer profile. Optimized native mouse taps hide/restore the controls; Escape restores three thumbnails and normal close exits 0. Native mouse-drag verification is pending: the UI automation tool could not locate the window at its drag coordinate, so swipe evidence is host replay only. FrameLayout gravity places bottom controls below the toolbar. Root touch replay diagnoses the original slideshow listener: DOWN starts a Timer, UP cancels it, and a held DOWN delivers a background TimerTask whose direct UI call is rejected. Usable slideshow remains unproven; APK bytes are unchanged.",
      "native_folder_picker_verified": true,
      "native_picker_cancel_exit_zero": true,
      "host_selection_callback_verified": true,
      "independent_image_workflow_verified": true,
      "native_images_verified": true,
      "native_close_exit_zero": true,
      "native_folder_selection_verified": true,
      "full_screen_viewer_verified": true,
      "native_mouse": true,
      "native_back_verified": true,
      "native_static_image_formats_verified": [
        "JPEG",
        "PNG",
        "WebP"
      ],
      "host_viewer_back_verified": true,
      "host_swipe_navigation_verified": true,
      "host_confirmed_tap_controls_verified": true,
      "native_confirmed_tap_controls_verified": true,
      "native_swipe_navigation_verified": false,
      "host_slideshow_timer_cancel_verified": true,
      "host_slideshow_worker_ui_rejection_verified": true,
      "slideshow_verified": false
    },
    {
      "package": "org.droidless.parcels",
      "origin": "droidless-fixture",
      "status": "headless-conformance-fixture",
      "source": "examples/parcels",
      "headless_conformance_verified": true,
      "native_ui": false,
      "android_reference_verified": false,
      "notes": "Compiled DEX verifies real Parcelable writers/CREATORs, Unicode/wide values, byte positions, nested Bundles/lists/nulls, shallow copies versus transported activity/result state, mutation/GC and throwing callbacks. Host checks cover malformed/truncated data, 4 MiB buffers, 32-level nesting, cycles, recycled use and root cleanup. No Binder, file descriptors, binary marshalling APIs, Java serialization or general Android Parcelable coverage."
    },
    {
      "package": "org.droidless.touch",
      "origin": "droidless-fixture",
      "status": "headless-conformance-fixture",
      "source": "examples/touch",
      "headless_conformance_verified": true,
      "native_ui": false,
      "android_reference_verified": false,
      "notes": "Compiled guest callbacks verify MotionEvent copy/local/raw/time/pointer semantics, child translation/capture, OnTouch before default click, disabled and outside-drag behavior, view translation/alpha, timed show/long press, confirmed/double taps, scroll/fling, paused-drag suppression, CANCEL, callback GC/failure cleanup and invalid host events. Single pointer only; no multi-touch, interception, native text-touch parity or Android VelocityTracker differential evidence."
    }
  ]
}
