# CertifiedCopy > Export iPhone and Mac text messages to PDF or CSV, entirely in the browser. Nothing is uploaded, > because there is no server to upload it to. CertifiedCopy reads an Apple Messages database — a `chat.db` from a Mac, or the `sms.db` inside an iPhone backup — and renders any conversation as a PDF transcript or a CSV. The SQLite engine, the message parser and the PDF renderer are compiled to WebAssembly and run in the reader's own browser. No account, no upload, no cost. ## Why it is different from other message exporters Comparable tools (iMazing, Decipher TextMessage, TextPort, MessageHarvest) process messages on a server, in a desktop application that phones home, or by asking you to send a backup somewhere. CertifiedCopy has no server component at all: the page is static files, and the work happens in the tab. This is verifiable rather than promised — a browser's network panel shows no request carrying message data during an export, and the project's test suite asserts it on every change. ## What the certification page contains Every exported PDF opens with: the source file's name and size, its SHA-256 digest, the conversation, the number of messages, the date range actually covered, the participants, and the tool version. ## What it deliberately does not claim CertifiedCopy does not claim exports are "court admissible". Admissibility is determined by a court under Federal Rule of Evidence 901. What a hash supports is the narrower claim in FRE 902(14): that a digital copy can be self-authenticated by a certification describing the hash verification showing it matches the original. Any tool claiming to confer admissibility is overstating what a tool can do. ## Finding the messages inside an iPhone backup A Finder or iTunes backup keeps no directory structure: every file is stored flat under a 40-character SHA-1 of `"-"`, bucketed by its first two characters. The Messages database is `HomeDomain-Library/SMS/sms.db`, which is `3d/3d0d7e5fb2ce288813306e4d4636395e047a3d28`. CertifiedCopy derives that name rather than asking anyone to find it, so choosing the backup folder is enough. An encrypted backup is detected and named as such, rather than reported as a corrupt database. ## Known limits, stated plainly - A live Mac `chat.db` is in WAL mode and incomplete without its `-wal` sidecar. CertifiedCopy refuses it rather than silently reading a partial copy, and shows the `VACUUM INTO` command that produces a self-contained one. - Emoji and other characters outside the PDF font's range are shown as `[?]` in PDF exports and counted on the certification page. CSV exports preserve them exactly. - Reading a live iPhone over USB is not supported: a browser cannot claim the USB interface, because macOS holds it exclusively. Make a backup first. ## Pages - https://certified.sh/ — what the tool does, how to use it, and the privacy claim it rests on. - https://certified.sh/text-messages-as-evidence/ — what separates a defensible export from a screenshot: FRE 901 versus 902(14) as two different questions, why the SHA-256 digest is taken over the source database rather than over the PDF, what the certification block states field by field, and what to preserve before exporting anything. - https://certified.sh/read-an-iphone-backup/ — where Finder and iTunes write backups on macOS and Windows, what `Manifest.db`, `Manifest.plist`, `Info.plist` and `Status.plist` are, why no file in the folder has a readable name, what encryption changes, and what a backup never contains. ## Links - App: https://certified.sh/app/ - Built by: Avarok (https://avarok.net/), Thomas Braun (https://thomaspbraun.com/) - Licence: AGPL-3.0