{"id":22448530,"url":"https://github.com/yuvadm/dg-m1q","last_synced_at":"2026-01-07T07:08:36.264Z","repository":{"id":138279711,"uuid":"101051675","full_name":"yuvadm/DG-M1Q","owner":"yuvadm","description":"DG-M1Q IP camera alternative usage","archived":false,"fork":false,"pushed_at":"2017-08-22T13:53:54.000Z","size":562,"stargazers_count":65,"open_issues_count":6,"forks_count":12,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-02-01T16:13:38.347Z","etag":null,"topics":["ip-camera","reverse-engineering"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yuvadm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-22T10:33:49.000Z","updated_at":"2024-10-12T05:19:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"015affae-5b4c-49a5-8a26-a425c7c5a9ca","html_url":"https://github.com/yuvadm/DG-M1Q","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuvadm%2FDG-M1Q","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuvadm%2FDG-M1Q/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuvadm%2FDG-M1Q/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuvadm%2FDG-M1Q/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yuvadm","download_url":"https://codeload.github.com/yuvadm/DG-M1Q/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245841188,"owners_count":20681181,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ip-camera","reverse-engineering"],"created_at":"2024-12-06T04:28:52.665Z","updated_at":"2026-01-07T07:08:36.258Z","avatar_url":"https://github.com/yuvadm.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# DG-M1Q\n\nThis nice little IP camera can be had for [just over $15](https://www.banggood.com/Digoo-DG-M1Q-960P-2_8mm-Wireless-Mini-WIFI-Night-Vision-Smart-Home-Security-IP-Camera-Onvif-Monitor-p-1123595.html) and while it is quite capable it has some horrible software and security properties.\n\nOperating it requires connecting to some shady \"cloud\" service and downloading some apps to your mobile device. Why, did you expect anything else?\n\nEither way, unacceptable. Here's an alternative way of using this thing.\n\n## Usage\n\n![](thumb.png)\n\n### Root Access\n\n1. Setup an **isolated** wireless network called `Free-AP0` with no authentication\n2. Device will connect to it on boot\n3. Hook up to serial UART pins (see PCB pics)\n4. Enjoy root access with lots of crap dumped on screen, not good enough...\n4. Run `/bin/busybox telnetd`\n5. Run `ip a` to get the IP address for the device\n6. From a separate device on the network run `telnet $IP_ADDR`\n7. Login with `root`, no password is needed\n8. Enjoy **real** root access\n\n### Persistent Root\n\nNote that all configs in `/etc` are mounted from ramdisk, so they are not persistent.\n\nPersistent root has to be achieved via other partitions, luckily there is a relevant file that is called by the inittab.\n\nEdit `/npc/boot.sh` and add `/bin/busybox telnetd` to the top of the file.\n\n### Wireless Network Configuration\n\nRunning on an unauthenticated wireless network isn't very smart. Do you want your neighbours sniffing into your apartment? Didn't think so.\n\nAfter setting up your network, edit `/rom/wpa_supplicant0.conf` to match your network configuration, e.g.:\n\n```\nctrl_interface=/etc/Wireless\nnetwork={\n    ssid=\"YOURSSID\"\n    psk=\"YOURPSK\"\n}\n```\n\n**For the sake of all that is good, put this device on a separate VLAN/WLAN and firewall that shit off from the outside world.**\n\n### Stream Access\n\nIf your network configuration is good to go, you can launch your favorite media player and watch your video + audio stream:\n\n```\n$ vlc rtsp://admin:20160404@192.168.1.99/onvif1\n```\n\n## Board Pics\n\n - [front.jpg](front.jpg)\n - [back.jpg](back.jpg)\n\n## Logs\n\n - [First uninterrupted boot log](unbox.log)\n - [U-boot information](uboot.log)\n\n## References\n\n - http://adamwesterberg.se/blog/cheap-chinese-camera-teardown\n - https://github.com/kfowlks/DG-M1Q\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuvadm%2Fdg-m1q","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyuvadm%2Fdg-m1q","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuvadm%2Fdg-m1q/lists"}