# bcwc_pcie: auditing the FaceTime HD camera driver against Apple's kext

> bcwc_pcie audits the community FaceTime HD Linux driver against Apple's AppleCameraInterface.kext for Broadcom PCI 14e4:1570 cameras. Its scripts trace MMIO register accesses through the kext and compare offsets, masks and sequencing with the vendored driver; the author reports finding 19 registers the Linux implementation does not cover.

- Type: Case study
- Targets: Binary
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-08
- Original resource: <https://github.com/unfallenwill/bcwc_pcie>
- Primary source: <https://github.com/unfallenwill/bcwc_pcie/blob/8ed2655de76db02ba027a8e8730419ca2b6e8409/docs/reverse-engineering.md>
- Catalog page: <https://awesomerea.org/resources/bcwc-pcie-camera-audit-case/>
- Record JSON: <https://awesomerea.org/resources/bcwc-pcie-camera-audit-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/bcwc-pcie-camera-audit-case/index.md)

## Requirements & limits

- **Scope:** Targets Broadcom FaceTime HD PCI 14e4:1570 cameras; Apple firmware is extracted locally and is absent from the repository.
- **Attribution:** The driver derives from patjak/facetimehd; the audit and extraction tools are this repository's added work.
- **Testing evidence:** The author reports hardware testing on Ubuntu 26.04.1 with kernel 7.0.0-38.
- **License:** GPL-2.0-only for the driver modifications, tools, scripts and documentation.

## Primary sources

1. <https://github.com/unfallenwill/bcwc_pcie/blob/8ed2655de76db02ba027a8e8730419ca2b6e8409/docs/reverse-engineering.md>
2. <https://github.com/unfallenwill/bcwc_pcie/blob/8ed2655de76db02ba027a8e8730419ca2b6e8409/README.md>
3. <https://github.com/unfallenwill/bcwc_pcie/blob/8ed2655de76db02ba027a8e8730419ca2b6e8409/third-party/README.md>

## More in Native binaries

- [XexTool-RE: reconstructing the Xbox 360 XexTool utility](https://awesomerea.org/resources/xextool-re-case/index.md) · Case study
- [slopgs: reconstructing Microsoft GS Wavetable Synth](https://awesomerea.org/resources/slopgs-case/index.md) · Case study
- [Surface Pro 11: reconstructing native Linux audio behavior](https://awesomerea.org/resources/sp11x1e-audio-case/index.md) · Case study
- [uniq-reconstruction: rebuilding GNU uniq from behavioral probes](https://awesomerea.org/resources/uniq-reconstruction-case/index.md) · Case study
- [Watcom C 6.5: reconstructing damaged runtime libraries](https://awesomerea.org/resources/watcom-c-6-5-restoration-case/index.md) · Case study
- [IOReport: investigating and decompiling Apple’s reporting library](https://awesomerea.org/resources/ioreport-decompile-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
