iiordanov / remote-desktop-clients Goto Github PK
View Code? Open in Web Editor NEWVNC, RDP, SPICE, and oVirt/RHEV/Proxmox Clients for Android and Blackberry 10
License: GNU General Public License v3.0
VNC, RDP, SPICE, and oVirt/RHEV/Proxmox Clients for Android and Blackberry 10
License: GNU General Public License v3.0
Hey,
it's me again. By using your vnc app i found two new settings i would like two find.
First one is to set the compression level. At the moment it's hard-coded to "9" (RfbProto class, "compressLevel") but for example in my case (running a local vnc server) a lower value would be better. Quality setting would also be nice. Perhaps you've already planned to implement this, i think i saw some comments in the code suggesting this.
Second setting i could really need is to hide the remote cursor (my android shows i cursor if connected to the lapdock and as consequence i have to cursors in your vnc app). As a workaround i have set the cursorRect.left value in setCursorRect method in AbstractBitmapDrawable class to a negative value, but i think you now your code much better and could just not draw the cursor if this option is selected.
Perhaps you also think this could be useful and add it to your app, thanks,
Carsten
I download aSpice from Google Play, app terminated after I send Ctrl+Alt+Delete key to guest OS.
Crash source code:
keyboardMapper.processAndroidKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, 112));
Root cause is system unable convert VK_DEL to correct key_code. There are another issue “Send key dialog” is unable to send “Delete” key due to unable convert “Delete” key to Unicode.
I hava encountered some question needed you help.thanks for glad;
2 I need the aSPICE. I hava released the bVNC from github , and have obtained gstreamer_android.so and spice-android.so from aSPCIE.apk. But the hava a question, is right this way? and is enough to *.so library.
According to jni/src/android.mk, thie spice.so is anther library or is necessary for aSPICE? the spice.so is equals to spice-android.so from aSPICE.apk?
Hi,
some versions ago i could use the back button as right mouse button. That was very convenient. Now its 'escape' key or something (it closes some windows when i press it).
Can you make the back key configurable to get that back?
bVNC v3.6.2
CM11/Android 4.4
UltraVNC v1.1.9.6 (Win7/32Bit)
According to LICENSE-bVNC
, the entire bVNC codebase is GPLv2-compatible. However, since commit 10166068, several of its source files have had GPLv3 license blocks attached:
eclipse_projects/bVNC/jni/src/android/android-io.c
eclipse_projects/bVNC/jni/src/android/android-io.h
eclipse_projects/bVNC/jni/src/android/android-service.c
eclipse_projects/bVNC/jni/src/android/android-service.h
Is there any chance you could relicense those files back to GPLv2?
Hi
I have git the codes ,and use eclipse to buid it.It have ceated bVNC.apk. but I must use spice protocal .How to set the project to build aSPICE.apk? Who can help me?
thanks
I was about to review and uninstall the app when I noticed that the description and other reviewers mention an input mode setting. However, I cannot find it.
I don't see any way to close a connection either, other than switching away from the app.
I have a question about the properties of the client mouse cursor.The version of my bVNC project is v3.6.6.My terminal platform is thin client about android system without touch screen,and virtual desktop system is win7.Of course,my thin client has the usb mouse.After thin client connecting to the virtual desktop,I open a dialog.But when I move the mouse to the dialog edge,the shape of mouse cursor don't have the changes.Don't like the phenomenon under win7.I have a look at the sources about aspice,the mouse cursor is the native mouse about android.There are channel-cursor.c and spice-widget.c in the sources of aspice,but they don't have the action.If thin client is under ubuntu system,the native mouse cursor shape will have the changes with the win7.If my thin client is about android system ,what should I do in order to make the native mouse cursor have the same changes with the win7? Thanks!
if I switch on my android device to russian keyborad it stops working. The only way I found is to change keyboard on virtual machine and use english keyboard on android, that is very uncomfortable. Is there any way to use other than english language with your app?
when I run bVNC ,console output :
[2015-04-01 12:28:40 - ZoomerWithKeys] Could not find ZoomerWithKeys.apk!
[2015-04-01 12:28:40 - PubkeyGenerator] Could not find PubkeyGenerator.apk!
[2015-04-01 12:28:40 - FreeRDPCore] Could not find FreeRDPCore.apk!
I notice there is someone else has the same issue,and I go through my eclipse according his advice,but not resolve it
(I have sqlitegen_0.1.19 in my eclipse ,I have checked SQlitgen annotation processing in bVNC project, and select the "Android private libraries" entry in Project Properties,also add the ZoomerWithKeys, PubkeyGenerator, and FreeRDPCore projects as Library References to bVNC)
if anyone can give me some advice to resolve it ,I shall be very grateful
I tried the 'Send Keys' menu option to send Shift+A. But, I'm seeing small caps 'a' only on the server machine (notepad).
shame forthis,
I'm unable to compile the source caused by missing "AbstractConnectionBean" class. Perhaps you forgot to add it to the repo? Or do you have an idea what else could be the reason? Thanks!
NDK-r9d
GSTREAMER-1.0
when I build, I get the following errors, could you tell me the reason. thanks.
[armeabi-v7a] Install : libgstreamer_android.so => libs/armeabi-v7a/libgstreamer_android.so
[armeabi] SharedLibrary : libspice.so
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/spice/gtk/spice-gstaudio.o: in function record_bus_cb:jni/src/gtk/spice-gstaudio.c:159: error: undefined reference to 'gst_app_sink_pull_buffer'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/spice/gtk/spice-gstaudio.o: in function record_bus_cb:jni/src/gtk/spice-gstaudio.c:169: error: undefined reference to 'GST_BUFFER_DATA'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/spice/gtk/spice-gstaudio.o: in function record_bus_cb:jni/src/gtk/spice-gstaudio.c:169: error: undefined reference to 'GST_BUFFER_SIZE'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/spice/gtk/spice-gstaudio.o: in function playback_data:jni/src/gtk/spice-gstaudio.c:357: error: undefined reference to 'gst_app_buffer_new'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/spice/virt-viewer/virt-viewer-util.o: in function virt_viewer_util_extract_host:jni/src/virt-viewer/virt-viewer-util.c:65: error: undefined reference to 'xmlParseURI'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/spice/virt-viewer/virt-viewer-util.o: in function virt_viewer_util_extract_host:jni/src/virt-viewer/virt-viewer-util.c:110: error: undefined reference to 'xmlFreeURI'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/spice/virt-viewer/virt-viewer-util.o: in function virt_viewer_util_extract_host:jni/src/virt-viewer/virt-viewer-util.c:65: error: undefined reference to 'xmlParseURI'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/spice/virt-viewer/virt-viewer-util.o: in function virt_viewer_util_extract_host:jni/src/virt-viewer/virt-viewer-util.c:110: error: undefined reference to 'xmlFreeURI'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/spice/android/android-service.o: in function connectSession:jni/src/android/android-service.c:278: error: undefined reference to 'g_thread_init'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/spice/android/android-service.o: in function CreateOvirtSession:jni/src/android/android-service.c:324: error: undefined reference to 'xmlParseURI'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/spice/android/android-service.o: in function CreateOvirtSession:jni/src/android/android-service.c:344: error: undefined reference to 'xmlFreeURI'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi/objs/spice/android/android-service.o: in function CreateOvirtSession:jni/src/android/android-service.c:357: error: undefined reference to 'xmlFreeURI'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/libgovirt.a(libgovirt_la-ovirt-resource-rest-call.o): in function append_params:ovirt-resource-rest-call.c(.text+0x434): error: undefined reference to 'soup_form_encode_hash'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function authenticate:rest-proxy.c(.text+0x7d4): error: undefined reference to 'soup_auth_authenticate'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function rest_proxy_constructed:rest-proxy.c(.text+0x83c): error: undefined reference to 'soup_cookie_jar_new'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function rest_proxy_constructed:rest-proxy.c(.text+0x854): error: undefined reference to 'soup_session_add_feature'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function rest_proxy_constructed:rest-proxy.c(.text+0x868): error: undefined reference to 'soup_session_add_feature'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function rest_proxy_constructed:rest-proxy.c(.text+0x894): error: undefined reference to 'soup_logger_new'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function rest_proxy_constructed:rest-proxy.c(.text+0x8ac): error: undefined reference to 'soup_session_add_feature'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function rest_proxy_constructed:rest-proxy.c(.text+0x8c0): error: undefined reference to 'soup_logger_new'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function rest_proxy_constructed:rest-proxy.c(.text+0x8d8): error: undefined reference to 'soup_session_add_feature'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function rest_proxy_init:rest-proxy.c(.text+0xe98): error: undefined reference to 'soup_session_async_new'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function rest_proxy_init:rest-proxy.c(.text+0xea8): error: undefined reference to 'soup_session_sync_new'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function _rest_proxy_queue_message:rest-proxy.c(.text+0x1bf4): error: undefined reference to 'soup_message_get_type'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function _rest_proxy_queue_message:rest-proxy.c(.text+0x1cc0): error: undefined reference to 'soup_session_queue_message'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function _rest_proxy_cancel_message:rest-proxy.c(.text+0x1da4): error: undefined reference to 'soup_message_get_type'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function _rest_proxy_cancel_message:rest-proxy.c(.text+0x1e6c): error: undefined reference to 'soup_session_cancel_message'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function _rest_proxy_send_message:rest-proxy.c(.text+0x1f54): error: undefined reference to 'soup_message_get_type'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy.o): in function _rest_proxy_send_message:rest-proxy.c(.text+0x201c): error: undefined reference to 'soup_session_send_message'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-auth.o): in function rest_proxy_auth_new:rest-proxy-auth.c(.text+0x438): error: undefined reference to 'soup_session_get_type'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-auth.o): in function rest_proxy_auth_new:rest-proxy-auth.c(.text+0x4e0): error: undefined reference to 'soup_message_get_type'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-auth.o): in function rest_proxy_auth_new:rest-proxy-auth.c(.text+0x588): error: undefined reference to 'soup_auth_get_type'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-auth.o): in function rest_proxy_auth_pause:rest-proxy-auth.c(.text+0x7f0): error: undefined reference to 'soup_session_pause_message'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-auth.o): in function rest_proxy_auth_unpause:rest-proxy-auth.c(.text+0x988): error: undefined reference to 'soup_auth_authenticate'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-auth.o): in function rest_proxy_auth_unpause:rest-proxy-auth.c(.text+0x9c4): error: undefined reference to 'soup_session_unpause_message'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-call.o): in function finish_call:rest-proxy-call.c(.text+0x1a08): error: undefined reference to 'soup_message_headers_foreach'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-call.o): in function set_header:rest-proxy-call.c(.text+0x1d6c): error: undefined reference to 'soup_message_headers_replace'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-call.o): in function prepare_message:rest-proxy-call.c(.text+0x1fbc): error: undefined reference to 'soup_message_new'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-call.o): in function prepare_message:rest-proxy-call.c(.text+0x1fe0): error: undefined reference to 'soup_message_set_request'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-call.o): in function prepare_message:rest-proxy-call.c(.text+0x2040): error: undefined reference to 'soup_form_request_new_from_hash'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-call.o): in function prepare_message:rest-proxy-call.c(.text+0x2060): error: undefined reference to 'soup_multipart_new'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-call.o): in function prepare_message:rest-proxy-call.c(.text+0x20bc): error: undefined reference to 'soup_multipart_append_form_string'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-call.o): in function prepare_message:rest-proxy-call.c(.text+0x2108): error: undefined reference to 'soup_buffer_new_with_owner'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-call.o): in function prepare_message:rest-proxy-call.c(.text+0x2148): error: undefined reference to 'soup_multipart_append_form_file'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-call.o): in function prepare_message:rest-proxy-call.c(.text+0x2150): error: undefined reference to 'soup_buffer_free'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-call.o): in function prepare_message:rest-proxy-call.c(.text+0x218c): error: undefined reference to 'soup_form_request_new_from_multipart'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-call.o): in function prepare_message:rest-proxy-call.c(.text+0x2198): error: undefined reference to 'soup_multipart_free'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-call.o): in function prepare_message:rest-proxy-call.c(.text+0x21d8): error: undefined reference to 'soup_message_headers_append'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-proxy-call.o): in function rest_proxy_call_continuous:rest-proxy-call.c(.text+0x2c44): error: undefined reference to 'soup_message_body_set_accumulate'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-xml-parser.o): in function rest_xml_parser_parse_from_data:rest-xml-parser.c(.text+0x304): error: undefined reference to 'xmlReaderForMemory'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-xml-parser.o): in function rest_xml_parser_parse_from_data:rest-xml-parser.c(.text+0x314): error: undefined reference to 'xmlTextReaderNodeType'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-xml-parser.o): in function rest_xml_parser_parse_from_data:rest-xml-parser.c(.text+0x338): error: undefined reference to 'xmlTextReaderConstName'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-xml-parser.o): in function rest_xml_parser_parse_from_data:rest-xml-parser.c(.text+0x4b8): error: undefined reference to 'xmlTextReaderIsEmptyElement'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-xml-parser.o): in function rest_xml_parser_parse_from_data:rest-xml-parser.c(.text+0x560): error: undefined reference to 'xmlTextReaderHasAttributes'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-xml-parser.o): in function rest_xml_parser_parse_from_data:rest-xml-parser.c(.text+0x574): error: undefined reference to 'xmlTextReaderMoveToFirstAttribute'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-xml-parser.o): in function rest_xml_parser_parse_from_data:rest-xml-parser.c(.text+0x57c): error: undefined reference to 'xmlTextReaderConstLocalName'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-xml-parser.o): in function rest_xml_parser_parse_from_data:rest-xml-parser.c(.text+0x588): error: undefined reference to 'xmlTextReaderConstValue'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-xml-parser.o): in function rest_xml_parser_parse_from_data:rest-xml-parser.c(.text+0x610): error: undefined reference to 'xmlTextReaderMoveToNextAttribute'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-xml-parser.o): in function rest_xml_parser_parse_from_data:rest-xml-parser.c(.text+0x644): error: undefined reference to 'xmlTextReaderConstLocalName'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-xml-parser.o): in function rest_xml_parser_parse_from_data:rest-xml-parser.c(.text+0x770): error: undefined reference to 'xmlTextReaderConstValue'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-xml-parser.o): in function rest_xml_parser_parse_from_data:rest-xml-parser.c(.text+0x7f8): error: undefined reference to 'xmlTextReaderNodeType'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-xml-parser.o): in function rest_xml_parser_parse_from_data:rest-xml-parser.c(.text+0x840): error: undefined reference to 'xmlTextReaderRead'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-xml-parser.o): in function rest_xml_parser_parse_from_data:rest-xml-parser.c(.text+0x854): error: undefined reference to 'xmlTextReaderClose'
/root/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: jni/src/../libs/deps/lib/librest-0.7.a(librest_0.7_la-rest-xml-parser.o): in function rest_xml_parser_parse_from_data:rest-xml-parser.c(.text+0x85c): error: undefined reference to 'xmlFreeTextReader'
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/libspice.so] Error 1
make: *** Waiting for unfinished jobs....
Hello @iiordanov
had establish a server with cent-os on the public network,Is there anyway to access my server by aSpice pro?
Thanks for your help.
by shoxive
Hello.
Would be nice to have support for something like the command "ssvncviewer -listen" in Linux or the command "xvncviewer -listen" or in Remmina the "VNC - Incoming Connection" option.
They listen for connections on port 5500 from the servers.
So, it is a VNC Client but awaiting connections instead of making them.
It is useful for avoiding firewall issues on server side, etc.
Thanks!
Hi,
we are using bVNC intensive.
But annoys us again and again the lack of the option "shareDesktop".
Can you please add this option or can you change at least the default "not share" to "shareDesktop" in RfbProto.java:writeClientInit() ... os.write(0); to os.write(1);
I tried to compile your project but I failed. (PubkeyGenerator doesn't compile).
Thank you.
There is an oddity that seems to exist with VNC and Emacs. Emacs within VNC for"Alt-x" produces "A-x" when it should be "M-x" (aka Meta-x). The only way around this seems to be to enable "Scroll Lock". If you could add "Scroll Lock" like you did for "Ctrl" and "Alt" what would be fantastic.
By the way great work; great improvement over android-vnc-viewer.
I have a bluetooth keyboard connected to my Android device, on which I run bVNC to connect to a VNC server running on that same Android device (Archlinux ARM in a chroot, created using LinuxDeploy). When I run xev (xorg-xev) over this VNC connection, whenever I press any right side modifier (RAlt,RShift,RControl) on that keyboard, instead of xev seeing it, it sees LAlt/LShift/LControl. While that may be ok for most use-cases, I need RAlt as the ISO_LEVEL3_SHIFT, or I cannot enter pipes, brackets, or curly braces with the default German keyboard layout present.
I looked at VNCKeyboard.java, which I believe is the correct class for that, but I'm not sure on how to add it, since there's a lot of different control logic there. I'd be willing to add it myself, but I have not been able to figure out how, so far, so I'd appreciate any input / help you could offer on that (or, if this is actually an easy change, maybe do it?).
I just get black screen and mouse icon on my tv with aspice 3.5.6 and 3.7.7.
When click aspice's scaling menu, the remote desktop show up.
BTW, bvnc 3.6.5 work fine on my tv.
My tv: chip mstar msd6a801, android 4.0.3(TCL China, no source code)
If you need other detail, please tell me.
Thanks for help!
I am trying to compile bVNC in eclipse 3.7.2 on Windows 7 (x64).
After compiling all the dependencies and adjusting the eclipse project settings, I still cannot build bVNC successfully:
Description Resource Path Location Type
The type VncCanvas must implement the inherited abstract method LibFreeRDP.UIEventListener.OnRemoteClipboardChanged(String) VncCanvas.java /bVNC/src/com/iiordanov/bVNC line 81 Java Problem
I suspect that I am using a wrong version of FreeRDP (I am using the git master branch, downloaded 7/31/2013), could you please comment on the issue and/or list prefrerred versions of the dependencies. Thank you.
I have tried following the relevant steps to build aSpice from the BUILD file, but for aRDP. I did get a binary out, but it conflicted with bVNC. Could you document the process for building aRDP?
但是你要遵守协议,比如这个事,就不要辟谣,把代码托管在github上,估计原作者都不鸟你。
COPIED this project's source code
and WON THE FIRST PRIZE of China 2014 State Science and Technology Prizes!
News link of this prize (you need translate it into English) http://news.qq.com/a/20150109/031729.htm
Chinese coders' discussion https://www.v2ex.com/t/167200#reply95
This is Zhangyaoxue's profile http://baike.haosou.com/doc/5334505.html
Zhangyaoxue ,male,Chinese,1956 Jan Born in Hunan Province. He was The Director of the Division of the Ministry of Higher Education .
你们看一下第一链接的视频,10分25秒 用平板的画面,和 10分48秒 用手机的画面
屏幕中出现的 toast: “Direct, Swipe Pan: Swipe to pan around. Tap ...”
// Take a look at the Capture image : 10min 25s and 10min 48 s , displayed on the screen toast: “Direct, Swipe Pan: Swipe to pan around. Tap ...”
自己 Google 一下这些提示,看到了什么?
//Google it ,what you will find
https://github.com/iiordanov/remote-desktop-clients/blob/master/eclipse_projects/bVNC/res/values/strings.xml
这个项目叫什么? "remote-desktop-clients"
//what's this project's name?? "remote-desktop-clients"
"VNC, RDP, SPICE, and oVirt/RHEV/Proxmox Clients for Android and Blackberry 10"
根本就是个远程桌面,用的还是别人的开源项目。
//In effect it's a remote desktop at all , and copied from an open source project.
Hello iiordanov and future readers,
This may be obvious to anyone who has experience using the NDK, but I came at this with only pure Java and pure C experience...
When modifying the bVNC project to build aSPICE, the package com.iiordanov.bVNC and subpackages need to be renamed to com.iiordanov.aSPICE in order to use the native methods. While doing this, it is probably also a good idea to right-click on the project > Android Tools > Rename Application Package to aSPICE as well, so bVNC and aSPICE can be installed at the same time.
Additionally, I found this guide: https://github.com/FreeRDP/FreeRDP/blob/stable-1.1/docs/README.android helpful for installing the FreeRDP. It is a little difficult to find, so it might be good if you linked to it in your guide as well :).
Thank you for this excellent application!
-Sompom
I've been trying to follow these instructions: https://github.com/iiordanov/remote-desktop-clients/blob/master/BUILDING
The last step described under 2, "Add FreeRDPCore from the FreeRDP/client/Android/ directory to Eclipse as an Existing Android Project.", does not work; Eclipse cannot find any existing Android Projects to import there.
I'm on Windows 8.1 with Eclipse 'Kepler Service Release 2' + ADT and latest Android SDK. After inspecting the directory FreeRDP\client\Android\FreeRDPCore, there is indeed no 'AndroidManifest.xml' file, only a 'AndroidManifest.xml.cmake'. Is there some step between cloning FreeRDP and importing its Android client project that I'm missing (I have also tried the older Eclipse Indigo version, same result)?
Hi,I am using spice client(master) on android4.0 device.When I play video(both image and sound),I find that the video is playing not smoothly.The image is out of sync to the sound.But when I disable the sound setting on spice client,the video is play very well.When I enable the sound setting, the mp3 is playing very well.It's likely a little bug.
Dear iiordanov!
How are you?
Please help me. I'm Chinese. I don't know English.
Errors occur compiling your projects.
I think that errors occur because of "AbstractConnectionBean.java" file.
I have no "AbstractConnectionBean.java" file.
I am novice android developer.
I think that you will help me.
I wait for help.
Thank you very much.
My email is [email protected].
Hi
I have encounter following error when running the aSPICE
Any suggestion?
01-04 12:26:33.340: E/AndroidRuntime(28392): java.lang.UnsatisfiedLinkError: Native method not found: com.iiordanov.bVNC.SpiceCommunicator.SpiceClientConnect:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)I
01-04 12:26:34.970: W/dalvikvm(28392): No implementation found for native Lcom/iiordanov/bVNC/SpiceCommunicator;.SpiceClientDisconnect:()V
It seem that the I can't start the activity "VncCanvasActivity" from other application/apk because the jni_loading(System.loadLibrary) is moved to aSPICE.java.
If I start it directly with intent intent.setClassName("com.iiordanov.bVNC", "com.iiordanov.bVNC.VncCanvasActivity"), it gives following error:
11-30 02:47:56.589 2282-2282/com.iiordanov.bVNC W/dalvikvm﹕ No implementation found for native Lcom/iiordanov/bVNC/SpiceCommunicator;.SpiceClientDisconnect:()V
11-30 02:47:56.669 2282-2282/com.iiordanov.bVNC D/AndroidRuntime﹕ Shutting down VM
I think dalvik could handle duplicated jni-loading gracefully so it would be better to enable the system.load function in SpiceCommunicator.java:21.
Thanks && regards
I constructure the aSPICE projet from bVNC,having some change according to this BUILDING。bVNC can normally run, but aSPICE cann't connect.
Can you tell me, I should how to do?
Thanks
for use from moVirt, we need this 3 parameters to be part of the data uri. The relevant code should be something like: zyx0225@5233d9b
Do you think you could add it to aSPICE?
Thank you!
[armeabi] Compile arm : spice <= spice-audio.c
[armeabi] Compile arm : spice <= spice-gstaudio.c
[armeabi] Compile arm : spice <= channel-usbredir.c
jni/src/gtk/channel-usbredir.c:26:26: fatal error: usbredirhost.h: No such file or directory
compilation terminated.
make: *** [obj/local/armeabi/objs/spice/gtk/channel-usbredir.o] Error 1
make: *** Waiting for unfinished jobs....
root@max-VirtualBox:/home/max/git/remote-desktop-clients/eclipse_projects/bVNC#
eclipse_projects/Opaque/jni/src/gtk/channel-usbredir.c
24 #ifdef USE_USBREDIR
25 #include <glib/gi18n.h>
26 #include <usbredirhost.h>
27 #if USE_POLKIT
eclipse_projects/Opaque/jni/src/gtk/usb-device-manager.c
42 #include "channel-usbredir-priv.h"
43 #include "usbredirhost.h"
44 #include "usbutil.h"
45 #endif
eclipse_projects/Opaque/jni/src/android/android-config.h
156 /* Define if supporting usbredir proxying /
157 #define USE_USBREDIR 1
158
159 / Version number of package */
160 #define VERSION "0.22"
I had clone this project and build it success,when I click the button "Connect"
An error has occured with error log as shown bellow:
04-27 01:50:40.557: E/AndroidRuntime(1231): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.iiordanov.bVNC.RemoteCanvas" on path: DexPathList[[zip file "/data/app/com.iiordanov.bVNC-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.iiordanov.bVNC-1, /system/lib]]
I have no way to solve this problem,hope somebody can help me,Thanks a million!!
I have been unable to VNC (Secure VNC over SSH) from my nexus 4 to my Fedora 19 desktop since upgrading to fedora 19. I'm not sure if it was the Android 4.3 upgrade on my phone or the Fedora 18 -> 19 upgrade which did it. I get the error message:
"Connection Failed!
Connectionto VNC server 127.0.0.1 at port: 5900 failed. Reason: Server did not offer supported security type"
I have VNC, a.k.a. screen sharing turned on in Fedora as shown below.
If you click a link like spice://192.168.0.1?port=5901&password=sfdlkjlksdfjkl it should start the aSpice App with.
Hello,
I exported connections for VNC over SSH as XML. Than I edited some entries and changed SSH password which was clear text. After importing all SSH passwords are empty but it should use the ones from the imported XML (like it was in export).
With many connections editing is much easier in an external editor as for each item in bVNC.
I tried this using Galaxy Note II. Unlike, for example, video player, it doesn't use whole screen.
Hi,I have installed ndk (r10) and gstreamer on Ubuntu14.04 LTS (32's),when i built by “ndk-build",i got the next errors!
lto1: fatal error: bytecode stream generated with LTO version 2.1 instead of the expected 3.0
compilation terminated.
lto-wrapper: /home/moview/android-ndk-r10/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc returned 1 exit status
/home/moview/android-ndk-r10/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld.gold: fatal error: lto-wrapper failed
collect2: error: ld returned 1 exit status
make: *** [buildsharedlibrary] Error 1
my gcc version is 4.8.2.
I want to know how i can fix it. Thanks a lot.
I have git the codes ,and use eclipse to buid it.It have ceated bVNC.apk. but I only want to spice protocal .How to set the project to build aSPICE.apk? Thanks.
In bVNC project I set global parameter soundEnabled = TRUE and test. I found the playback channel is normally works and I can hear music on the client, but when I check record channel find : at gstreamer record watch function "record_bus_cb" works flow is in default branch ,so the client did not send recoord protocal messge.
I wonder whether something is wrong with my configuration/environment or record function is not support yet?
Thanks a lot.
version is 3.3.5
Hello,
I'am working on a Desktop as a Service solution based on OpenStack and I have about a month to submit a working prototype. And I would ask your permission to use your solution to be part of my BlackBerry Playbook desktop client.
I was also wondering if it's compatible with one of OpenStack's VNC servers (noVNC , XVP or Spice).
I would also like to have your opinion on the ability to respect the deadline.
Thank you for your time.
With at the very least the MessagEase and AnySoftKeyboard keyboards, the shortcuts involving the Ctrl modifier don't work. Works in Hacker's Keyboard, however.
Ctrl seems to work fine in the terminal emulator, but not, for example, bVNC client.
Hello, I would like to ask you for advice on what might be the problem, I compiled signed bVNC.apk, but when running android version 4 it reports an error: Unfortunately, bVNC has stopped.
Apk size is 1.03 megabytes In addition, when running in the emulator it shows an error:
E / dalvikvm (555): Could not find class 'com.iiordanov.bVNC.ConnectionBean', referenced from method com.iiordanov.bVNC.androidVNC $ 8.onItemSelected...
A further errors in the implementation:
[bVNC] Installing bVNC.apk ...
[bVNC] Success!
[ZoomerWithKeys] Could not find ZoomerWithKeys.apk!
[PubkeyGenerator] Could not find PubkeyGenerator.apk!
[FreeRDPCore] Could not find FreeRDPCore.apk!
Thank you.
I am using v3.3.6 market version on android 4.3.1 on nexus 7 2013.
I have connected Apple Magic Mouse.
the application behaves like it has mouse with touchpad on top:
working ok:
not working ok:
other interesting observation is that after left-click (left-touch rather), the "show keyboard icon appears". this does not happen when using normal bluetooth mouse.
with normal work on android with this mouse when you tap the "touchpad" area nothing happens. you have to click stronger to make mouse mechanically "click" to make left or right click. scrolling works by swiping surface up and down.
androidVNC and other VNC clients work like they have a normal mouse with a left click only, they do not react to the touch events.
I know that this issue is not significant, but perhaps it can be solved easily?
I can install some kind of debug version to gather logs and provide any info requested.
Pawel
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.