samtap / fang-hacks Goto Github PK
View Code? Open in Web Editor NEWCollection of modifications for the XiaoFang WiFi Camera
Collection of modifications for the XiaoFang WiFi Camera
@samtap
Hi, showed your hack collection here and found one litte problem.
You use the original iSC3S binary to establish a wireless connection. Thats no problem except you will use the Cam only local (like me) and block the path to the Internet because when iSC3S can't connect to the Manufacturer-Servers the wireless connection will also be aborted. So telnetd and so on is not accessible. Thats why i use the wpa-supplicant hack we described on yi-hack all together.
I got really exited once i saw your project after reading the discussion on the other github repo(yi-hack).
I'v setup everything the way you mentioned it in your readme.
100mb on /dev/sdd1 using mkfs.vfat
rest of the 16gb on /dev/sdd1 using mkfs.ext2
After inserting the SD card in the booted camera it does make a sound after a few seconds so I guess the runscript got executed (as I read in the yi-hack repo)
Sadly I'm getting a 404
The Camera is running on 2.8.3.5
ref: fritz-smh/yi-hack#118 (comment)
snx_isp_ctl
It allows an onscreen timestamp which is useful if you want to record
This is the settings I am using:
snx_isp_ctl --osdset-en 1 --osdset-ts 1 --osdset-template 1234567890./-:Date --osdset-gain 2 --osdset-bgtransp 0x1 --osdset-bgcolor 0x000000
gain 2
doubles the size of the font
The first line seems reserved for a string (--osdset-datastr), so it's always 1 line offset. There's other options for mirror, privacy mask etc.
Usage: ./snx_isp_ctl [options]
Supported options:
-c, --channel 0: ISP0(default), 1:ISP1
--osdset-en Set OSD Enable(1: Enable, 0: Disable)
--osdget-datastr Get OSD Data String
--osdset-datastr Set OSD Data String
--osdget-ts Get OSD TimeStamp en
--osdset-ts Set OSD TimeStamp en
--osdget-gain Get OSD Gain(0 7)
--osdset-gain Set OSD Gain(0 7)
--osdset-txtcolor(0xFFFFFF) Set OSD TXT Color
--osdset-bgcolor(0x000000) Set OSD Backgroud Color
--osdset-txttransp (yes: 0x0, no:0x1) Set OSD TXT Transparency
--osdset-bgtransp (yes: 0x0, no:0x1) Set OSD Backgroud Transprency
--osdget-position Get OSD Position
--osdset-position x,y Set OSD Position
--osdset-template Set OSD Template
--osdset-font Set OSD Font
--osdget-width Get OSD Width
--osdget-height Get OSD Height
--mdget-en Get Motion Detection Enable
--mdset-en Set Motion Detection Enable(1: Enable, 0: Disable)
--mdget-thre Get MD threshold(0~65535)
--mdset-thre Set MD threshold(0~65535)
--mdget-int Get MD Int
--mdget-inttimeout Get MD Int Timeout
--mdset-inttimeout Set MD Int Timeout
--mdget-intthre Get MD Int Threshold
--mdset-intthre Set MD Int Threshold
--mdget-blkmask Get MD Block Mask
--mdset-blkmask Set MD Block Mask
--mdget-blkrepo Get MD Block Mask
--mfset-mode Set Mirror Flip Mode(mode:off:0, flip:1, mirror:2, flip&mirror:3)
--aecset-en Enable ISP AEC(auto exposure control)enable(enable:1,disable:0)
--awbset-en Enable ISP AWB(auto white balance)(enable:1,disable:0)
--sensorset-mir Enable sensor mirror(mode:enable 1, disable 0)
--sensorset-flip Enable sensor flip(mode:enable 1, disable 0)
--sensorset-aec Enable sensor AEC (mode:enable 1, disable 0)
--sensorset-exp Set sensor exposure time(exp:0x1 ~0xffff)
--sensorset-awb Enable sensor AWB(val:enable 1, disable 0)note:when use ISP AWB, should disable sensor AWB
--sensorset-rgain Set sensor red gain(gain:0x0000~0xffff)
--sensorset-ggain Set sensor green gain(gain:0x0000~0xffff)
--sensorset-bgain Set sensor blue gain(gain:0x0000~0xffff)
--sensorget-name Get current sensor name
--hdrset-en Enable hdr (enable 1, disable 0)
--drcget-status Get drc status(enable 1, disable 0)
--drcset-status Set drc status(enable 1, disable 0)
--drcget-value Get drc intensity value
--drcset-value Set drc intensity value(val:0~15)
--pmset-en Enable private mask(enable:1,disable:0)
--pmset-color Set private mask block color(color:rgb888 format)
--pmset-area Set private mask area(area:[6], 6*32bit represent 192blocks)(0x11 0x11 0x11 0x11 0x11 0x11)
--filterset-contrast Set image contrast (val range is [0~64])
--filterset-sharp Set image sharpness (val range is [0~6])
--filterset-sat Set image saturation (val range is [0~127])
--filterset-hue Set image hue (val range is [0~359])
--filterset-bright Set image brightness (val range is [0~127])
--afget-sum get auto focus w0-sum (200ms + period time)
I life in The Netherlands. That is GMT +2.
If I fill in on the status page GMT -1 I get the correct time.
Is it possible to add date on image?
Hi, I think I have made some mistake in the process.
from the status page I have this warning:
Script is already installed!
Error: No 'data' directory found in /media/mmcblk0p2!
here's my logs:
Contents of /tmp/hacks.log:
Wed Jan 18 17:04:36 GMT 2017 - /etc/fang_hacks.sh: Removed stale logfile
Wed Jan 18 17:04:36 GMT 2017 - /etc/fang_hacks.sh: Executing script (enabled: 1)
Wed Jan 18 17:04:36 GMT 2017 - /etc/fang_hacks.sh: Not linking /media/mmcblk0p1/bootstrap/www/action: already exists
Wed Jan 18 17:04:36 GMT 2017 - /etc/fang_hacks.sh: Not linking /media/mmcblk0p1/bootstrap/www/action.orig: already exists
Wed Jan 18 17:04:36 GMT 2017 - /etc/fang_hacks.sh: Not linking /media/mmcblk0p1/bootstrap/www/func.cgi: already exists
Wed Jan 18 17:04:36 GMT 2017 - /etc/fang_hacks.sh: Not linking /media/mmcblk0p1/bootstrap/www/scripts: already exists
Wed Jan 18 17:04:36 GMT 2017 - /etc/fang_hacks.sh: Not linking /media/mmcblk0p1/bootstrap/www/status: already exists
Wed Jan 18 17:04:36 GMT 2017 - /etc/fang_hacks.sh: Failed to find hacks in /media/mmcblk0p2/data!
mount: mounting /dev/mmcblk0p2 on /media/mmcblk0p2 failed: Device or resource busy
Wed Jan 18 17:04:36 GMT 2017 - /etc/fang_hacks.sh: Failed to find /media/mmcblk0p2/data!
I can't stream nor FTP into the camera.
Happy user of two hacked xiaoyi ants (another one is still in the drawer), I like the clock on the video feed, so at least I know the stream is going and not frozen.
Is there a way to have it on this camera as well?
What does pressing the setup button do to your hack? Does it clear the total sd or just restore the old configurations?
I was wondering if it's possible to secure the video stream with a username/password?
I would like to see the video stream from outsite my network. So I open the port in my gateway.
But in that case the whole world can have access to my camera to see the stream.
Does anyone know how to make it secure?
How to do as per instructions? Any tool for windows machine? Instead of VFAT can I use FAT32?
The first partition on the device must be a vfat partition. It will only contain some small scripts so 100MiB should be more than enough. The second partition must be an ext2 partition and will contain all other files.
Hi,
my Xiaofang is running in Access Point mode right now, and I try to connect it to my wifi. But the selection box is broken, most of the networks shows garbage information for wifis like "Address:Fon" (Fon is part of the SSID) or "Signal 7170%" (???) or "Security:WLAN"
When I try to connect to my Wifi there is an error that the Security is not supported, I guess the information is wrong!
Greets, Sören
First off all, thank you very much for this hack. It works wonderfull.
Can a image URL be added? This to use it for snapshots for programs and applications that don't support RTSP?
I have a fully working hacked camera. Thanks for the SD-Image.
I setup an development invironment with the 1.50 SDK.
I can compile the RTSP-Server. But this version gives errors on the device.
snx_codec_rc_qp:1149: ioctl: Invalid argument
snx_codec_rc_qp:1149: ioctl: Invalid argument
open /proc/isp/md/block-reports failed.
open /proc/isp/md/block-reports failed.
open /proc/isp/md/block-reports failed.
open /proc/isp/md/block-reports failed.
So I think I have something wrong setup in the SDK. I guess the wrong model.
Who compiled the RTSP-Server that is included in the SD-Image?
Hi. First of all great work with the hack. I managed to get it working through instructions and can access video source through VLC.
I use zoneminder on ubuntu server and having big challenges with RTSP feed through Ffmpeg source type. Picture is choppy, signal drops and so on.
Any chance for a script that enables MJPEG video source instead of RTSP? I have much better results on zoneminder using MJPEG source from other cameras.
Applying fang hacks scripts...
Source file not found: '/media/mmcblk0p1/bootstrap/sdcard'
Source file not found: '/media/mmcblk0p1/bootstrap/rc.local'
Source file not found: '/media/mmcblk0p1/bootstrap/fang_hacks.sh'
Device is running firmware v2.8.0.0. Latest is 2.8.3.5 according to the Mi Home app.
/tmp # cat hacks.log
Thu Jan 1 08:00:06 GMT 1970 - /media/mmcblk0p1/snx_autorun.sh: Running (device: mmcblk0p1)
Thu Jan 1 08:00:06 GMT 1970 - /media/mmcblk0p1/snx_autorun.sh: Starting telnetd
ln: /tmp/www/cgi-bin/action: No such file or directory
ln: /tmp/www/cgi-bin/action.orig: No such file or directory
ln: /tmp/www/cgi-bin/func.cgi: No such file or directory
ln: /tmp/www/cgi-bin/scripts: No such file or directory
ln: /tmp/www/cgi-bin/status: No such file or directory
Wed Jan 18 06:37:37 GMT 2017 - /media/mmcblk1p1/snx_autorun.sh: Running (device: mmcblk1p1)
Wed Jan 18 06:37:37 GMT 2017 - /media/mmcblk1p1/snx_autorun.sh: Starting telnetd
/tmp #
I write the image using win32 disk imager and boot the device without the sd-card then i insert the sd but nothing work, i get always the same "404" and "OpenDir faile".
I tried everything but nothing work..What are ami doing wrong ?
I use the last firmware.
PS: Sorry for my english.
I've set up the camera with a 128GB SD card using a large FAT32 partition and the MiHome app to record continuously and save to SD, and then activating ftpd so that I can access the recordings - works perfectly.
However, Timezone adjustments work great for displaying timestamps on the live video and recorded video, but if recording continuously using the MiHome app onto the sd card, 1 minute mp4 files are saved in /media/mmcblk0p1/record/ but the folder structure is saved still in Chinese time.
Any way to change the way the camera creates the folder structure so that it is in local time?
Is it possible to disable the xiaomi cloud feature and use our local network?
Can you add rstp authentication?
Thx
Has anyone tried combining 2 camera together to create a wider video stream like the Cloud app does? I still haven't received my cameras yet but this is a feature that would be interesting to have. I assume that connecting a camera to another via USB adds a video device, but I cannot confirm that...
Hello,
Could you tell me, can I modify camera resolution and frame rate on the camera? (with config or command)
I tried to use zoneminder but the 1080p gives a performance hit on the server.
Best Regards,
Attila
Hi, camera only stream video, but does not save it do sd card. Any ideas?
Can we split the script for IR control into two scripts, one to control the LEDs when it is dark and the other switching the image to BW? This would be useful for a camera pointing out a window onto a street where the street lighting is enough for a clear BW image but not enough for a clear colour image, but obviously the LEDs reflect off the glass.
Looking at what has been posted in the hacks already, it may be easier to do this as one script for standard night mode with both LEDs on and BW image and another for this scenario turning image to BW but keeping LEDs turned off, and then just enable whichever script is more appropriate for individual needs.
Hello,
Congratulations for the hack.
Is necessary extract the SD every time we reboot the cam?
Is possible execute the script after reboot with SD in the cam?
Best regards.
Hi,
I enabled time overlay on my RTSP stream and it's more than 1 month wrong.
I'm not sure if that's a way to adjust time without rebooting to cloud management, but even then, is there (or would it be possible to add) a NTP server to have it get the right time from a server (either on the internet or within the same subnet) on its own?
Thanks!
Hi.
What is parameter --osdset-font in snx_isp_ctl? I think it's used to set the type of font, but what values can be set in this parameter? Thanks
Hi,
Is it possible to make work this Xiaofang camera with the iSmartalarm app
Because it is the same camera as the iSmartalarm Spot
https://www.ismartalarm.com/devices/cameras/spot/isa00013.html
Maybe with an edited firmware?
Thanks
Hi @samtap
I have forked your repository imaginarydenmark@4a03b97
And tried to move the files into a subdirectory called dist (did not go too well).
I would like to add whatever developer documentation about the board and device additionally I would like to add the source code for tools compiled for the board as well.
I have been gaining access to more information about the board and I will be getting more. I need to figure out how to share as much as I can.
Would it be possible to add an alternative (and more user friendly) text editor?
My personal preference would be nano, assuming this is trivial to do?
Main reason would be so it is a little easier to create and edit files on the camera over SSH whilst running. Obviously this can be done with vi
hello I bought this camera:
http://www.banggood.com/Xiaomi-XiaoFang-1080P-110-F2_0-WiFi-IP-Camera-Night-Vision-8X-Zoom-p-1095214.html?rmmds=myorder
and burned the sd image (the first version by mistake) from releases and inserted to the camera.
I have this log and do not know what to do next
$@0000000057FBBB01sizek 7
$@0000000057FBBB01help_n 1
$@0000000057FBBB01filp_n 1
$@0000000057FBBB02NewsChannel_usrInfoClear: success
$@0000000057FBBB02Alarm_set_load_File
$@0000000057FBBB02Video 0 5 1 1 1 1
$@0000000057FBBB02Audio 0 5 1 1 1 1
$@0000000057FBBB02Smoke 0 5 1 1 1 1
$@0000000057FBBB02CO 0 5 1 1 1 1
$@0000000057FBBB02InfraredAlarm 0 5 1 1 1 1
$@0000000057FBBB02InfraredAndMotionAlarm 0 5 1 1 1 1
$@0000000057FBBB02Other 0 5 1 1 1 1
$@0000000057FBBB02************************time Open : 0 time Num : 1***********************************
$@0000000057FBBB03IOTC_Initialize2 success !!
$@0000000057FBBB03frame size:1024
$@0000000057FBBB03max output bytes:768
$@0000000057FBBB04pstAlarmFuncInfo->nCloudyStateFlag = 0
$@0000000057FBBB04begin Cooee
$@0000000057FBBB04change_isp_md_args Video Open 1 -------5-------
$@0000000057FBBB04AudioAlarm Thread start ok v1.1, 5, 1
$@0000000057FBBB04AudioAlarmMain: MSG_AUDIOALARM_T_START_AUDIO_CAPTURE
$@0000000057FBBB04AudioAlarmMain: level=5
$@0000000057FBBB06change_isp_md_args Video Open 1 -------5-------
$@0000000057FBBB07is_video_capture_num 0
$@0000000057FBBB0Ais_video_capture_num 27
$@0000000057FBBB0Dis_video_capture_num 30
$@0000000057FBBB0ELS: MSG_LS_T_RECORD_STATE = 0 (0:ready 1:stop)
$@0000000057FBBB10is_video_capture_num 30
$@0000000057FBBB13is_video_capture_num 30
$@0000000057FBBB16is_video_capture_num 30
$@0000000057FBBB19is_video_capture_num 30
$@0000000057FBBB1Cis_video_capture_num 30
$@0000000057FBBB1Fis_video_capture_num 30
$@0000000057FBBB22is_video_capture_num 28
$@0000000057FBBB25is_video_capture_num 30
$@0000000057FBBB28is_video_capture_num 30
$@0000000057FBBB29is_video_capture_num 16
$@0000000057FBBB2Cis_video_capture_num 30
$@0000000057FBBB2Fis_video_capture_num 30
$@0000000057FBBB32is_video_capture_num 30
$@0000000057FBBB35is_video_capture_num 30
$@0000000057FBBB38is_video_capture_num 30
$@0000000057FBBB3Bis_video_capture_num 30
$@0000000057FBBB3Eis_video_capture_num 30
$@0000000057FBBB41is_video_capture_num 30
$@0000000057FBBB44is_video_capture_num 30
$@0000000057FBBB47is_video_capture_num 30
$@0000000057FBBB4Ais_video_capture_num 23
$@0000000057FBBB4Dis_video_capture_num 30
$@0000000057FBBB50is_video_capture_num 30
$@0000000057FBBB53is_video_capture_num 27
$@0000000057FBBB56is_video_capture_num 30
$@0000000057FBBB59is_video_capture_num 30
$@0000000057FBBB5Cis_video_capture_num 30
$@0000000057FBBB5EIR_CUT OPEN
$@0000000057FBBB5Fis_video_capture_num 30
$@0000000057FBBB5FIR_CUT CLOSE
$@0000000057FBBB60----------readDir /media/mmcblk0p1----------
$@0000000057FBBB60----------newDir /media/mmcblk0p1/----------
$@0000000057FBC910SD path is /media/mmcblk0p1/,Insert !!!!!
$@0000000057FBC910Open file /media/mmcblk0p1/record/20161011/01/00.mp4 /media/mmcblk0p1/record/20161011/01/00.mp4
$@0000000057FBC911wifissid No File !!!!!
$@0000000057FBC911wifipasswd No File !!!!!
$@0000000057FBC911camera_encyid No File !!!!!
Hey, first thanks very much for the hacks!
I bought 2 xiaofang for time lapse purposes. How do you think I can do that?
I saw that motion or motion-noffmpeg could do the trick.
Do I need to find binaries for armv5 ?
Another thing, how can I know the specs of the camera ?
I really want to contribute, If you can show me the direction I will follow ! :)
Thanks for your project, installing and running SNMP Agent on this camera Feature is Requested
Would it be possible to add a MJPEG Stream (over HTTP)? So we could stream the picture live to a website.
Hi there.
Been messing around and with the help from people in the chat I could make this work on vlc.
Since, I'm trying to forward the ip address of the camera to a public domain (so I can check the camera from any network), but I think I'm missing something.
I can't find a way to forward the RTSP address. Can anyone give a hint?
Thanks in advance
Just bricked some of my cameras by applying the hacks from Image 2 on the v3 firmware.
Works fine until you reboot. Camera bricked, orange light stays on, no network activity, even when removing the card.
I suppose i need to open the cameras to get serial access.
Hello,
Thank you for your effort.
I have got this camera yesterday from Gearbest.
I connected with MiHome, but it is a security risk.
I would like to install your solution.
I have created a Pendrive by your description and image (V 0.2). I checked the drive with Linux and it seems like correct.
I booted the camera and after the blue constant light I inserted the PenDrive.
The message from http://192.168.1.33/cgi-bin/hello.cgi -> OpenDir faile
The message from http://192.168.1.33/cgi-bin/status: 404 Not Found
Could you help me?
Thanks,
Attila
Hi everyone,
I use your hacks on my Xiaomi 1080p cube cam (iSmartAlarm) and it works pretty well, but the video quality is quite bad compared to the original MiHome app. Is there anything I can do about it?
Thank you!
Hi, first of all: awesome repository, thanks a lot for the pre-baked image!
I'm trying to create a portable Youtube/Facebook live streaming device, would it technically be possible to run ffmpeg on the camera itself and output a rtmp stream as described here?
Thanks for the great hack.
I found out that on my camera the rtsp server crashes all the time.
default in script: snx_rtsp_server -W 1920 -H 1080 -Q 10 -b 4096 -a >$LOG 2>&1 &
I changed it to use the defaults of the server:
snx_rtsp_server >$LOG 2>&1 &
Now it runs fine stable. But with lower resolution.
Hello,
I'm not sure if the motion detections is being used there ?
There's been a lot of discussion around this here it seems:
fritz-smh/yi-hack#118
Hi !
I have to Xiaofang and one is on the 3.0.3.56fw. When I put sdcard with FH 0.2.0 I can go to the cgi page but I cannot apply patch, for some reason it mount on mmcblk1pX:
Error
Applying fang hacks scripts...
Source file not found: '/media/mmcblk0p1/bootstrap/sdcard'
Source file not found: '/media/mmcblk0p1/bootstrap/rc.local'
Source file not found: '/media/mmcblk0p1/bootstrap/rcS'
Source file not found: '/media/mmcblk0p1/bootstrap/fang_hacks.sh'
Source file not found: '/media/mmcblk0p1/bootstrap/fang_hacks.cfg'
/media # ls -lia
143 drwxrwxrwt 6 root root 120 Jan 28 09:03 .
76 drwxr-xr-x 1 1000 232 272 Jan 1 1970 ..
1 drwxrwxrwx 5 root root 512 Jan 1 1970 mmcblk0p1
1391 drwxrwxrwx 2 root root 40 Jan 28 09:03 mmcblk1
1 drwxrwxrwx 5 root root 512 Jan 28 09:03 mmcblk1p1
1390 drwxrwxrwx 2 root root 40 Jan 28 09:03 mmcblk1p2
I tried to reboot but nothing changes.
Where do I need to change the path to make it works ?
Thnks !
Hi, first of all thanks for the effort to make this little cam more useable. Few questions.
EDIT:
So i have made vfat partition a large one (left ext2 part @ 150MB). Telnet, ftp works, but i can't start rtsp server. Does Mi cloud has to be disabled for rtsp to work?
tried to start rtsp via telnet.
/media/mmcblk0p2/data/usr/bin # ./snx_rtsp_server
Video source = /dev/video1
Cannot open '/dev/video0': 16, Device or resource busy
I can start rtsp when i disable cloud tho. Can we have both mi cloud and rtsp enabled, like on Mi Ants cam?
thank you!
I have writed the sd image on a 16gb microsd and booted ok and apllied de hack, i have extended the 2nd partition in the script menu. Now i have rebooted and in the scipt page says the message on the subject: "Nothing is mounted on /media/mmcblk0p2". if i get into the tlenet and mount manually on /media/mmcblk0p2 this show me a mount failure because is busy.
Thanks!
First let me ask if the cloud apps are still the Xiaomi's ones?
Second if I disable them I can't run the local RTSP server successfully.
I always get the NOK message.
I am running the camera Wi-Fi into client mode and using your latest hack.
There's an issue in v0.2.0 that causes the custom WiFI modes (WiFi Client / AP mode) to not get applied when cloud apps are used (DISABLE_CLOUD=0 and 00-stop-cloud script disabled).
The cloud apps take quite a while to get the interface up and the custom script that sets up the interface runs too early. It sets up the interface correctly, but the settings are lost as soon as the cloud apps re-configure it, using credentials from /etc/config instead of custom configuration from /media/mmcblk0p2/data/etc.
As a short term workaround you can insert a sleep in the 01-network script, to make it wait until the cloud apps are done before overriding the interface with custom configuration. A proper fix will be in the next release.
I've found that snx_rtsp_server can occasionally crash on my two XiaoFang cameras and doesn't restart (not sure if it is meant to). To "fix" this I've added a very simple script to check if it is running, which I will create a pull request for. I guess that is a temporary fix, let me know if you'd like some more info to try and diagnose it.
It's possible?
How can I clean the cam from this hack?
I have the v3 firmware running on my camera and it has a few changes from v2. For reference, I started with the v0.0.1 sd card release. Here are the things I noticed or had to tweak to get it running on my v3 firmware vs the v2 firmware:
Once I stopped the snx_wdt module from loading, then modified the 00- script to kill iCamera and used 03- to start up rtsp I have a stable stream coming from the camera running 3.0.3.53 firmware.
I understand and like the idea of making as few changes to the core system as possible, but I wasn't aware of any other way to stop the snx_wdt module from running without commenting it out on the actual device itself vs running a script post-boot. Maybe someone can figure a better way to take care of that.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.