camera-hacking · git:20261029.3ad6d1b · 2026-10-29 · sha256 5b7e5ace7377bebc
camera-hacking git:20261029.3ad6d1bA
Immutable. This exact content never changes and is served at /api/v1/blob/5b7e5ace7377bebc.
--- name: camera-hacking description: >- Investigate, reverse-engineer, develop, and validate digital-camera modifications and interoperability, including custom firmware, hidden settings, camera control protocols, feature unlocks, and model-specific recovery. Use for feasibility research, offline analysis, controlled experiments, and explicitly authorized installation on photographic, cinema, and action cameras across manufacturers, especially Fujifilm X and Ricoh GR. Do not use for ordinary photography advice, routine vendor firmware updates, media editing, or unauthorized camera access. license: MIT compatibility: Reference-based methodology; no required runtime. Individual projects require their own tools, hardware, licenses, and supported host environment. --- # Camera Hacking Turn a requested camera capability into a source-grounded investigation, controlled implementation, and verified result. Start with the desired photographic outcome, not a firmware download. The references are dated discovery evidence, not a list of universally supported hacks. Refresh relevant upstream evidence before acting. ## Scope and authorization Support discovery, offline firmware/source analysis, patch development, build and emulator work, protocol interoperability, and explicitly authorized camera-side experiments. Name which stage the user requested. Do not stop at research when the user authorized implementation; continue through the requested deliverable. This workflow can change external state: camera settings, calibration, boot flags, firmware, network services, cards, or physical hardware. > Confirm the target, scope, and rollback path before acting. Read-only discovery may proceed without confirmation. Use authorization already established in the session; ask only for missing scope. A request to research a public skill does not authorize changing a personal camera. Destructive operations require an explicit directive. A reversible card loader may still change persistent camera state. Do not run an unknown tool merely to query a camera: first establish whether the command writes state or enables services. ## Workflow 1. **Define the outcome and deliverable.** Record the feature, execution location, required shooting mode, image/output requirements, and requested stage. For a public survey, keep multiple manufacturers/models; do not require a personal camera choice. For a device operation, resolve the exact body, regional suffix, firmware and image hash when available, board revision if material, existing modifications, accessories, host platform, and ownership/authorization. 2. **Find the narrowest evidence.** Load the matching manufacturer reference and model/family record below. Check official capabilities and SDKs, then original project documentation, source, release artifacts and negative reports. Record URL, date, commit/release, exact tested identity and evidence level. If a brand is absent, use [the evidence method](references/evidence-scope.md) and document the new model; absence is not proof that it cannot be modified. 3. **Classify the mechanism.** Use [mechanisms and compatibility](references/mechanisms.md) to distinguish official control, reverse-engineered protocols, host processing, RAM execution, persistent settings/calibration, firmware replacement and hardware changes. An external phone waveform is not an in-camera waveform. Shared sensor, processor, retail branding or similar firmware number does not establish support. 4. **Make a bounded feasibility decision.** Use [the assessment template](templates/camera-assessment.md). Compare the least invasive path meeting the actual outcome. Mark feasible under stated conditions, infeasible under those conditions, or unresolved with the next evidence needed. A model roster, raw decoder, transfer driver, source directory, successful build or checksum does not prove a working photographic feature. 5. **Develop and analyze offline when requested.** Preserve pristine inputs, source provenance, licenses and hashes. Work on copies. Inspect project scripts and any bundled agent instructions before executing them. Define the hypothesis, target symbols/addresses and expected differences; produce a reviewable patch and build receipt rather than inventing offsets. Separate container integrity, executable behavior and complete source-to-binary reproducibility. Use existing model-specific runbooks; this skill supplies no generic flasher or universal memory-write command. 6. **Prepare the device experiment.** Read [experiments and recovery](references/experiments-and-recovery.md) for build, installation or hardware tasks. Resolve compatibility, conflicting mods, affected persistent state, backups and failure-specific recovery before writing. If recovery is unverified, say so; do not rename it a tested rollback. Deliver any safe offline artifacts while holding the dependent device operation for the missing evidence or explicit scope decision. 7. **Execute the authorized stage and verify its outcome.** Follow the pinned project procedure only for the resolved target. Capture expected/observed changes, hashes, failures and restoration results using [the experiment record](templates/experiment-record.md). Test the intended lifecycle: live view, recording, file integrity, relevant lenses, restart and restoration as applicable. Stop on identity mismatch, unexpected writes, output corruption, thermal/power faults, or loss of the recovery prerequisite. 8. **Deliver the requested artifact.** Provide the assessment, source/patch/build, experiment record or verified device result requested. Separate what was documented, inspected, built, emulated, maintainer-reported and independently reproduced. State unresolved limitations and the next concrete evidence, without claiming a completed installation from a script exit or a menu screenshot. ## Reverse-engineering and neighboring skills Load supporting skills by name only when their work is needed. They are optional companions, not assumed files inside this installation. | Need | Existing skill | Boundary | |---|---|---| | Understand a camera project's source architecture, interfaces and dependencies | `software-architecture-analysis` | Source-based reverse engineering; not greenfield design or camera qualification | | Plan static binary inspection, disassembly and cross references | `binary-analysis` | Its current live Ghidra backend is unimplemented and fails closed; do not promise working decompilation or route patching/protocol work to it | | Board identification, signals, power, measurement or hardware modification | `electronics` | Electrical analysis does not establish firmware compatibility or recovery | | Expand or resolve conflicting primary evidence | `research-methodology` | Source-to-claim closure; preserve dated unknowns | | Probe captured media or inspect a claimed output feature | `ffmpeg` | Media tooling does not establish camera-side execution or editorial truth | If a companion is unavailable, disclose that limitation and complete the work that can be supported; do not invent a skill, CLI backend or analysis result. ## Load references on demand For a named manufacturer, load only its row, then the relevant model evidence. Inventory files linked from manufacturer records are optional source tables for roster questions. Their gPhoto, LibRaw and vendor meanings remain distinct. For a general survey, start with [scope and gaps](references/evidence-scope.md). For refreshing or adding evidence, read [provenance](references/provenance.md). ### Manufacturer routing Load the matching brand only; each includes its inventory routes and known gaps. | Manufacturer | Reference | |---|---| | AgfaPhoto | [agfaphoto](references/manufacturer-agfaphoto.md) | | AKASO | [akaso](references/manufacturer-akaso.md) | | ARRI | [arri](references/manufacturer-arri.md) | | BenQ | [benq](references/manufacturer-benq.md) | | Blackmagic Design | [blackmagic-design](references/manufacturer-blackmagic-design.md) | | Canon | [canon](references/manufacturer-canon.md) | | Casio | [casio](references/manufacturer-casio.md) | | Contax / Kyocera | [contax-kyocera](references/manufacturer-contax-kyocera.md) | | Digital Bolex | [digital-bolex](references/manufacturer-digital-bolex.md) | | DJI | [dji](references/manufacturer-dji.md) | | Epson | [epson](references/manufacturer-epson.md) | | Fujifilm | [fujifilm](references/manufacturer-fujifilm.md) | | GE / General Imaging | [general-imaging](references/manufacturer-general-imaging.md) | | GoPro | [gopro](references/manufacturer-gopro.md) | | Hasselblad | [hasselblad](references/manufacturer-hasselblad.md) | | HP | [hp](references/manufacturer-hp.md) | | Insta360 | [insta360](references/manufacturer-insta360.md) | | JVC | [jvc](references/manufacturer-jvc.md) | | Kinefinity | [kinefinity](references/manufacturer-kinefinity.md) | | Kodak | [kodak](references/manufacturer-kodak.md) | | Konica / Minolta | [konica-minolta](references/manufacturer-konica-minolta.md) | | Leica | [leica](references/manufacturer-leica.md) | | Lytro | [lytro](references/manufacturer-lytro.md) | | Nikon | [nikon](references/manufacturer-nikon.md) | | Olympus / OM System | [olympus-om-system](references/manufacturer-olympus-om-system.md) | | Panasonic / LUMIX | [panasonic](references/manufacturer-panasonic.md) | | Pentax | [pentax](references/manufacturer-pentax.md) | | Phase One / Mamiya | [phase-one-mamiya](references/manufacturer-phase-one-mamiya.md) | | Polaroid | [polaroid](references/manufacturer-polaroid.md) | | RED Digital Cinema | [red](references/manufacturer-red.md) | | Ricoh | [ricoh](references/manufacturer-ricoh.md) | | Rollei | [rollei](references/manufacturer-rollei.md) | | Samsung | [samsung](references/manufacturer-samsung.md) | | Sanyo | [sanyo](references/manufacturer-sanyo.md) | | Sigma | [sigma](references/manufacturer-sigma.md) | | SJCAM | [sjcam](references/manufacturer-sjcam.md) | | Sony | [sony](references/manufacturer-sony.md) | | Toshiba | [toshiba](references/manufacturer-toshiba.md) | | Vivitar | [vivitar](references/manufacturer-vivitar.md) | | Xiaomi / YI | [xiaomi-yi](references/manufacturer-xiaomi-yi.md) | | Yashica | [yashica](references/manufacturer-yashica.md) | | Z CAM | [z-cam](references/manufacturer-z-cam.md) | | ZEISS | [zeiss](references/manufacturer-zeiss.md) | ### Fujifilm X and Ricoh GR model routing Start with [all X-series identities](references/family-fujifilm-x-series.md) or [all digital GR identities and editions](references/family-ricoh-gr-series.md). Load the specific lineage/body below only when it matches the task. Captured versions and project status are dated observations; resolve the current exact target before use. | Target | Focused reference | |---|---| | Fujifilm Legacy fixed-lens and bridge X cameras | [fujifilm-fixed-legacy](references/fujifilm-fixed-legacy.md) | | Fujifilm X-A entry line | [fujifilm-x-a](references/fujifilm-x-a.md) | | Fujifilm X-E rangefinders | [fujifilm-x-e](references/fujifilm-x-e.md) | | Fujifilm X-H line | [fujifilm-x-h](references/fujifilm-x-h.md) | | Fujifilm X half / X-HF1 | [fujifilm-x-half](references/fujifilm-x-half.md) | | Fujifilm X-M line | [fujifilm-x-m](references/fujifilm-x-m.md) | | Fujifilm X-Pro rangefinders | [fujifilm-x-pro](references/fujifilm-x-pro.md) | | Fujifilm X-S10 and X-S20 | [fujifilm-x-s](references/fujifilm-x-s.md) | | Fujifilm X-T100 and X-T200 | [fujifilm-x-t-bayer](references/fujifilm-x-t-bayer.md) | | Fujifilm X-T compact line | [fujifilm-x-t-compact](references/fujifilm-x-t-compact.md) | | Fujifilm X-T main line and IR variant | [fujifilm-x-t-main](references/fujifilm-x-t-main.md) | | Fujifilm X100 fixed-lens line | [fujifilm-x100](references/fujifilm-x100.md) | | Ricoh GR (2013 APS-C) | [model-ricoh-gr-2013](references/model-ricoh-gr-2013.md) | | Ricoh GR DIGITAL II | [model-ricoh-gr-digital-ii](references/model-ricoh-gr-digital-ii.md) | | Ricoh GR DIGITAL III | [model-ricoh-gr-digital-iii](references/model-ricoh-gr-digital-iii.md) | | Ricoh GR DIGITAL IV | [model-ricoh-gr-digital-iv](references/model-ricoh-gr-digital-iv.md) | | Ricoh GR DIGITAL | [model-ricoh-gr-digital](references/model-ricoh-gr-digital.md) | | Ricoh GR II | [model-ricoh-gr-ii](references/model-ricoh-gr-ii.md) | | Ricoh GR III | [model-ricoh-gr-iii](references/model-ricoh-gr-iii.md) | | Ricoh GR IIIx | [model-ricoh-gr-iiix](references/model-ricoh-gr-iiix.md) | | Ricoh GR IV | [model-ricoh-gr-iv](references/model-ricoh-gr-iv.md) | | Ricoh GR variants, editions and announced models | [ricoh-gr-editions-and-variants](references/ricoh-gr-editions-and-variants.md) | | Ricoh GR project inventory | [ricoh-gr-project-inventory](references/ricoh-gr-project-inventory.md) | | Ricoh GRKit: cross-generation card runtime | [ricoh-grkit-runtime](references/ricoh-grkit-runtime.md) | ### Other detailed project/model records Use these for the named model or mechanism; do not transfer their compatibility to other bodies in the manufacturer inventory. | Target | Record | |---|---| | Canon EOS 5D / 5D Mark II | [canon-5d-family](references/model-canon-5d-family.md) | | DJI Osmo / OpenPocketCine | [dji-osmo-pocket](references/model-dji-osmo-pocket.md) | | Fujifilm X-A2 and XF1 | [fujifilm-x-a2-xf1](references/model-fujifilm-x-a2-xf1.md) | | Hasselblad X2D 100C / 907X & CFV 100C | [hasselblad-x2d-907](references/model-hasselblad-x2d-907.md) | | Hasselblad X2D II 400 MP reconstruction | [hasselblad-x2d-ii](references/model-hasselblad-x2d-ii.md) | | Kodak Charmera / Keychain Camera Plus | [kodak-charmera](references/model-kodak-charmera.md) | | Leica M8 / M9 / M240 research routes | [leica-m8-m9-m240](references/model-leica-m8-m9-m240.md) | | Nikon Z30 Wonder Lantern | [nikon-z30](references/model-nikon-z30.md) | | Olympus PEN-F HSL extension | [olympus-pen-f](references/model-olympus-pen-f.md) | | OM System OM-1 and related body reports | [om-system-om1](references/model-om-system-om1.md) | | Panasonic LUMIX DC-S5 remote control | [panasonic-s5](references/model-panasonic-s5.md) | | Samsung NX1 / NX500 | [samsung-nx1-nx500](references/model-samsung-nx1-nx500.md) | | Sigma fp / fpSup | [sigma-fp](references/model-sigma-fp.md) | | Sony PMCA-era cameras | [sony-pmca-era](references/model-sony-pmca-era.md) | ## Completion and stopping conditions Complete when the requested deliverable exists and its evidence level, target and limits are explicit. A research request ends with a usable assessment/source record; a development request requires the requested reviewable implementation and applicable checks; a device request requires observations of the requested behavior and the current/restored state, or a precise unresolved prerequisite. Do not substitute references for an authorized implementation or a build for hardware verification. Stop dependent device work at a compatibility, authorization or recovery boundary while preserving safe completed artifacts. After three non-converging diagnostic passes, report the evidence and next decision instead of repeating writes. ## When not to use For routine vendor firmware maintenance, follow the vendor's exact update documentation. For media editing/conversion, use `ffmpeg`; for general photographic technique, answer that task directly. This skill does not authorize access to someone else's camera, covert capture, capture-indicator suppression, or incidental persistent debug exposure. Surveillance/industrial/phone platforms need a separately scoped investigation; do not pretend the photographic manufacturer inventory covers them.