-
Notifications
You must be signed in to change notification settings - Fork 157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for Argus Pro #30
Comments
Hello! I'm interested in this having some Reolink Argus 2/Reolink Eco solar-powered cameras. Not an expert in this particular field but I offer my basic help! |
Hey this is great thanks. Without access to hardware this may be a tricky proposition, but let me take a look at your packet captures and we'll go from there. It's good to hear that it's at least similar. |
Thank you very much for looking into it :) Please let me know if you need further packet captures or want me to try something. |
I've looked at this and it looks like there's an extra wrapper around the typical Baichuan packet that starts The good news is that I see But let me ask you (or anyone else interested in this ticket) before going too much further - how do you envision this working assuming the protocol is reverse engineered? A big part of the Argus camera's user experience is that it only records during a motion event. RTSP is a "streaming" protocol which would drain the battery pretty quickly. (Not being critical here, I don't own any of these cameras so I don't know what you expect out of them.) |
Argus uses his PIR sensor or something to activate the video, notifies users and record on microSD. I suppose that the PIR could turn on and off the RTSP endpoint or the endpoint could be activated upon external request. |
Great, that's what I saw as well and what made me think it would be pretty similar to the regular protocol. About the use-case, I might have a bit of a special thing here. We've built a cat-safe screened porch and I'd like to check/watch what our cats are doing out there. So far I haven't had time to do the wiring and that's why I bought the battery-powered one (actually I have the one with a solar panel), but at some point in time the camera will have continuous power. So currently we let the cats out every few days for a couple of hours, and in the meantime the camera will have re-charged via the solar panel. |
I don't know if there is a significant difference between the Argus Pro and Argus 2, but if it's possible to also support Argus 2 it would be appreciated. |
Ideally - on attempting to open the stream it would request the camera start the RTSP stream. In a similar way that the app supports live viewing, it would be great to be able to request an on demand live stream, for the 15 minutes or so that the camera keeps the stream open. I'm also super interested in support for the Argus 2 - thank you for the great work. Really enjoyable write up |
Another user with an argus2 joining in - if you need any captures or anything I'll do my best to provide them. My initial attempt at hacking these failed, but I'm curious now. |
Would also love to get an RTSP stream for my Argus 2! I don't want my camera feed sending up to China, and also it's super laggy to watch it over their servers. Would be great to be able to get a local stream + connecting to my local Synology Surveilance for saving PIR. |
I had an interest in an Argus Eco - I was after a WiFi camera for time lapse. However, my testing shows that it's impossible to connect to the camera (using the Argus windows client) |
@thirtythreeforty Just to continue this conversation, do you think it'll be the same UDP function (ie. I have an Argus 2 but I'm not very good with embedded electronics (or more like I'm not confident enough to desolder the flash)... Possible instead you could share your firmware dump so I could have a look around? |
No need to desolder the flash if you just want to look around (and don't want to modify anything). You can unpack the official firmware update with I suspect it is |
This talk of disassembly inspired me to tear down my Argus Eco (a bit). Disassembly is quite easy. It has a SPI FLASH soldered on and is based on the CC3200 Wifi MCU. I could read out the FLASH contents - but I'm personally in no huge rush with this one. |
@DavidAustin it's discouraging that you can't directly connect. Have you portscanned the Argus or otherwise tried to directly interrogate it? It's unusual for Reolink cams to be cloud-only. Also very interesting that this cam isn't running Linux, if the CC3200 is really running the show. |
@thirtythreeforty I did port scan - and logged network activity when using the windows client - It appears to be UDP mostly, with a range of ports used - 2015 for device discovery, There is a TCP port open - 54321 - which I think is debugging - I couldn't get it The login message sent to port 2018 is sent after communication to 54.210.7.156 (AWS), I also decoded some of the later packets and there appears to be similar |
I had opened another issue, but I'd bet the Argus cameras are all the same. Neolink throws an "Error streaming from camera" when attempting to connect to the Argus Eco. Reolink camera model and firmware: Argus Eco, build 19120201, firmware 1202_491_352_19 Config.toml:
I've tried with/without h264. Output: etc. I've attached a WireShark packet dump from the macOS app to the camera. I connected, changed stream quality, ran through the configuration options (so the app would pull all the config data from the camera), and finally closed the connection, which presumably causes the camera to go back into power-save mode. Figured that might be useful, if you ever want neolink to be able to fully support the battery-powered cameras. The UID on this camera is 95270001A7KVX76K. I suspect it may use that for part of the encryption. |
I can't speak for anyone else, but my hardware is powered by an existing solar power setup. I'm not really worried about draining the battery, but I do like the power-saving features. A good enhancement for neolink might be an option that tells neolink to only pull a stream from a camera when it's receiving RTSP requests for that camera, instead of full time. The cameras support push & email notifications for motion detection, and I'm pushing Reolink to add MQTT support, so there are ways to get those notifications into HomeKit etc. You can join the camera to Google Home, but it uses Reolink's cloud service. It's obviously preferable to keep security camera data in-house. I'll send you one of these cameras if you want it, and have the time to mess with it. Let me know. No pressure. One thing that everyone else can do who has one of these Argus cameras is to open a ticket with Reolink support and tell them you want to be able to access these cameras with third-party apps. At the very least, they could throw some assistance thirtythreeforty's way. |
I really like the Argus Eco hardware and overall functionality, but the more I learn about the backend setup, the less I like the camera. Everything, and I mean everything, goes through their Chinese servers (well, Hong Kong, but...yeah. China). The camera can't even send local email notifications--those are proxied by their servers. Which means that my email credentials aren't really on the camera, they're on a Chinese server, so now they're reading my mail. Just because I'm paranoid doesn't mean they're not out to get me. Anyway, long story shorter, if you want this Argus Eco, I'll factory reset it and send it to you. I'm going to swap it out for a Dafang-hacked WyzeCam, which only talks to people I tell it to talk to. |
I had a look around for the firmware but it seems that battery-powered device firmwares are not available for download Reolink's website... which is a PITA. From here:
|
I believe Reolink tends to use Amazon AWS for cloud services. So your device is likely not connected to China but that connection via AWS may allow full control by any authorised Reolink employee. There is a good chance the waking of the device is via the connection to AWS. I imagine for power saving while hibernating all the camera keeps awake is the connection to the cloud server. |
AWS makes sense. It's really frustrating that these cameras are completely unable to do anything local, not even SMTP. I guess the Argus product line is just begging for a firmware hack. Conceptually, it doesn't seem it would be too difficult to replicate the power-saving features, since they're mostly tied to either PIR motion detection or incoming network access. Keep the video & IR turned off otherwise, and bingo, you're saving battery. But firmware-fu is not my fu. I've suggested this as an option to the Dafang-hacks guys for those cameras, and if somebody gets motivated to hack Argus, I'm willing to help provide hardware. |
You should see if wake on lan magic packets wake the device also. |
Sucks we can't hack this one, I'd be happy with local notifications and accessing the SD recordings after the event. I can see it records without internet connection so might be able to fancy some way of removing the internet access block from the router for x amount of minutes after the notification. Is there a way to intercept notifications? Spoof a server locally? |
Hello! My usecase is a bit different: I got something that works, but the stream is often interrupted and then i need to reconnect to the camera (which can take up to 2 seconds). I guess it has something to do with the udp reliability layer in the protocol. All communication works 100% in the local network. I never needed to communicate with any remote servers. Thank you for this project and the blog post. Feel free to use my project as a reference to integrate udp support into neolink. |
Hey that's great @jdillenkofer. The proof of concept for local network only is enough to get going. @jlg89 if you're still offering I'll take you up on your Argus hardware offer. |
I have an Argus Eco I can reset & send to you. Do you think you want another Argus model as well (or instead of)? Update: I've pulled the Eco from its perch and reset it. I'll box it up tomorrow and ship it to wherever you tell me. UPS, unless you prefer something else. |
Thanks @jlg89! |
That's an very good new as an starting point to get an linux client, other point i requested to Reolink support but without real response, is the fact of the cam isn't really an security cam as they say, because i'm in france, which is not suported by their cloud, so at this time, the cam can only save video on the sd card and it is easy for an bad boy to take the cam and go away. |
<G>.. getting anything from their support is a big joke, they can't even keep the email messages going to their support group straight.. I keep getting somebody new but still using the same support@reolink.com address and when I reply, I make sure I add their pr@reolink.com and sales @reolink.com to the recipients and I always send me a copy to my backup email accounts too.
The first E1 Pro that came in had some problem with the MicroSD card after a few hours. It formatted and saved video to it but a few hours later when I tested the camera from remote, it said the card was not formatted and when I tried to format it again, it failed. When I got home and accessed it from my PC, it didn't even show a MicroSD card in there... when I tried to remove it, it refused to cycle out no matter what I tried, it didn't even feel like a spring was in it... and the slot is too thin to get a set of tweezers in to try to wiggle it to break it lose. I kept on their support people and they wanted me to take a video of how I was putting the card in ?? ( blooming idiots, if I can't get it out, I can't get another one back in... not my first rodeo ) and since they send email in the middle of the night ( on the other side of the world from the US on Eastern Standard Time ), I was getting up just to make sure I could get something back right away and it still took a few days before I had somebody send me a RMA number and address and it cost me about $14 just to mail it back with a tracking number ( they said they will refund that ). I got an email last night from a new support person asking when I was going to send it back and I had already sent the tracking number and a picture of the receipt days earlier ( their return guy's id name is Yogurt <G> )... I pulled up the copy of the email I had in my backup account and sent it to all of them and told them to get their communication structure fixed with separate email addresses so they know what is going on. I think I had 4 or 5 different names with the same support@reolink.com come from them.
I did get a PDF file from a Hillary in their support earlier on with some code and comments but when trying to extract it, there was routines that parenthesis did not match up when removing ( commenting out their added comments ) and when I asked about it, they said their battery powered units didn't use all the code the ac adapter inside units had to save battery power ( I even got the solar charger for the outside WiFi units since I would be gone for extended times and nobody would be able to swap battery packs ). I have a stationary Argus Pro and their Argus PT unit for outside and 1 of the E1 Pro from them ( $44 and I had to send it back for memory card stuck issues) and then bought 2 more E1 Pro from Amazon about a week ago for $36 each that got here in 2 days.
I attached 2 PDf files... the cgi-jasonv1.1.pdf is the one their support sent me and the cgi_command.pdf file is one I found somewhere else in my search for information... I hope these may help somebody since I am just trying to get back up to speed programming since I've been out of the loop way too long ( since 2001 programming test and control systems in C <G> )
|
Thanks all for the good discussion (and hardware :). I know this ticket is older, but its duplicate #91 has a lot more discussion, and indeed momentum, so I'm going to close this one just to keep the issue queue tidy. |
Thanks for the great piece of software as well as the interesting article on your blog!
I have a Reolink Argus Pro which unfortunately is not yet compatible with Neolink:
NMap tells me port 9000 TCP is closed, so this is not surprising.
I am new to Wireshark, Lua and reverse engineering things, so please forgive me my lack of knowledge. I tried to capture the communication between Reolink's macOS client and the camera, and everything is done over UDP, so no TCP at all. However, I think the protocol works similar to what you described: In the packet capture I can see the magic bytes you described, legacy authentication using md5 hashes missing the last character, and later packets are potentially XML-based, as I see the same bytes in the data reoccurring.
I would be very happy if you would try to support the Argus Pro and please let me know if I can be of assistance.
Please find attached a short packet dump of connecting to the camera (user/pw = admin/123456), getting a few frames of video streams, and disconnecting.
Argus Pro dump.pcapng.zip
The text was updated successfully, but these errors were encountered: