dqzg12300 / mikrom Goto Github PK
View Code? Open in Web Editor NEWROM逆向工具
ROM逆向工具
环境:
Pixel 3
QP1A.190711.020 | android-10.0.0_r2
10.0.0 (QP1A.190711.020, Sep 2019)
错误信息:
Writing 'vbmeta_b' OKAY [ 0.062s] archive does not contain 'vbmeta_system.img' archive does not contain 'vendor_boot.img' archive does not contain 'super_empty.img' archive does not contain 'boot_other.img' archive does not contain 'odm.img' archive does not contain 'odm_dlkm.img' extracting product.img (312 MB) to disk... took 2.007s archive does not contain 'product.sig' Sending sparse 'product_b' 1/2 (262140 KB) OKAY [ 6.475s] Writing 'product_b' FAILED (remote: 'Partition should be flashed in fastbootd') fastboot: error: Command failed
有相关的教程吗?
我编了几次都没有成功
大佬, 我先使用了默认的userdebug模式
adb可直接开启root
然后我使用user模式编译
adb提示没root,但是apk还是提示设备已经root
请问下怎么可以关闭原生root呢?
这个ROM 有问题!脱壳失败,开发者选项界面也无法打开!
大佬 lineageOS 什么时候出啊?
请教大佬,自己编译pixel 2xl下载的安卓10.0.0.r2
发现下载的源码里没有msm文件夹,是直接加进去就行吗?
我在mikrom的art/runtime/Android.bp 中发现没有使用ART_USE_CXX_INTERPRETER这个宏,也没有修改下面的地方
//interpreter.cc
static constexpr InterpreterImplKind kInterpreterImplKind = kSwitchImplKind;
请问这最终是怎么走的?mikrom的代码是没有强制走switch型解释器吗?
https://github.com/dqzg12300/MikRom/blob/main/aosp10r2/frameworks/base/core/java/cn/mik/Fartext.java
//注入dex
public static void loadConfigDex(Application app){
String processName = ActivityThread.currentProcessName();
for(PackageItem item : mikConfigs){
if(!item.packageName.equals(processName))
continue;
if(item.dexPath.length()<=0)
continue;
String[] dexList=item.dexPath.split("\n");
for(String dexpath :dexList){
loadDex(dexpath,app); ??
DexClassLoader dexClassLoader= loadDex(dexpath,app); ??
Class clzz = null;
//////////////////////////////
loadDex 加载两次吗?
11-24 09:28:58.457 5335 5375 W TileUtils: Found com.android.settings.Settings$DataUsageSummaryActivity for intent Intent { act=com.android.settings.action.SETTINGS pkg=com.android.settings } missing metadata com.android.settings.category
11-24 09:28:58.468 5335 5335 D AndroidRuntime: Shutting down VM
11-24 09:28:58.468 5335 5335 E AndroidRuntime: FATAL EXCEPTION: main
11-24 09:28:58.468 5335 5335 E AndroidRuntime: Process: com.android.settings, PID: 5335
11-24 09:28:58.468 5335 5335 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.recyclerview.widget.RecyclerView$ViewHolder.isRemoved()' on a null object reference
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at androidx.recyclerview.widget.RecyclerView$LayoutManager.addViewInt(RecyclerView.java:8528)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at androidx.recyclerview.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:8523)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at androidx.recyclerview.widget.RecyclerView$LayoutManager.addView(RecyclerView.java:8511)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1641)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4115)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3832)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4385)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.View.layout(View.java:22466)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:6304)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.View.layout(View.java:22466)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:6304)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.View.layout(View.java:22466)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:6304)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.View.layout(View.java:22466)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:6304)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.View.layout(View.java:22466)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:6304)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.View.layout(View.java:22466)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:6304)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.View.layout(View.java:22466)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:6304)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.View.layout(View.java:22466)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:6304)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.View.layout(View.java:22466)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:6304)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at com.android.internal.policy.DecorView.onLayout(DecorView.java:779)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.View.layout(View.java:22466)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.ViewGroup.layout(ViewGroup.java:6304)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3157)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2614)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1745)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7768)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:967)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:791)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.Choreographer.doFrame(Choreographer.java:726)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:952)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:883)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:100)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7368)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
11-24 09:28:58.468 5335 5335 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
下载最新代码编译报错。
device/ti/beagle_x15/AndroidProducts.mk:20: error: build/target/product/AndroidProducts.mk: No such file or directory
14:31:45 dumpvars failed with: exit status 1
如题,希望采纳。
ebpf 需要12 才能玩, 希望能支持!
aosp10r2_blueline_1.0.1 面具安装报错
提升不支持安装到外置存储卡
如题,而且没有闪退。
如题
报错如下:
A/Frida: Failed to start: Unable to create socket: Permission denied
rom为非root
反复看了art修改的代码也没有找到原因
如题,请问是不支持还是被检测。
环境:aosp10r2代码,编译成功后刷入到pixel3
as创建普通项目在项目中随便打个断点,或者某个点击事件中打断点。
1:用debug模式启动App,无法进入APP中,一直卡主等待调试页面。
2:中途附加模式,APP运行中,点击as附加到开发的APP中,附近成功了,触发断点代码的时候崩溃。
909-909/? D/[email protected]: LAUNCH: 0
1094-1094/? W/adbd: timeout expired while flushing socket, closing
1376-6568/system_process W/NotificationService: Toast already killed. pkg=com.example.myjike callback=android.app.ITransientNotification$Stub$Proxy@1481bdd
904-904/? I//vendor/bin/hw/[email protected]: Entry state_: 1 charger_status: Charging batteryLevel: 100
904-904/? I//vendor/bin/hw/[email protected]: Exit state_: 1 batteryLevel: 100
1376-3524/system_process E/TaskPersister: File error accessing recents directory (directory doesn't exist?).
1376-1438/system_process W/WindowManager: Unable to start animation, surface is null or no children.
847-4706/? I/netd: trafficSwapActiveStatsMap() <0.57ms>
847-4706/? I/netd: tetherGetStats() <4.71ms>
1376-1449/system_process D/KernelCpuUidUserSysTimeReader: Removing uids 99005-99005
1376-1449/system_process D/KernelCpuUidUserSysTimeReader: Removing uids 90000-90000
1376-1449/system_process D/KernelCpuUidUserSysTimeReader: Removing uids 99006-99006
904-904/? I//vendor/bin/hw/[email protected]: Entry state_: 1 charger_status: Charging batteryLevel: 100
904-904/? I//vendor/bin/hw/[email protected]: Exit state_: 1 batteryLevel: 100
904-904/? I//vendor/bin/hw/[email protected]: Entry state_: 1 charger_status: Charging batteryLevel: 100
904-904/? I//vendor/bin/hw/[email protected]: Exit state_: 1 batteryLevel: 100
11430-11430/com.example.myjike D/AndroidRuntime: Shutting down VM
--------- beginning of crash
11430-11430/com.example.myjike E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.myjike, PID: 11430
java.lang.RuntimeException: Main thread loop unexpectedly exited
at android.app.ActivityThread.main(ActivityThread.java:7380)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
1376-11474/system_process I/DropBoxManagerService: add tag=data_app_crash isTagEnabled=true flags=0x2
1376-6566/system_process W/ActivityTaskManager: Force finishing activity com.example.myjike/.MainActivity
1376-1436/system_process I/ActivityManager: Showing crash dialog for package com.example.myjike u0
1376-4969/system_process E/libc: Access denied finding property "vendor.debug.egl.changepixelformat"
1376-4969/system_process E/libc: Access denied finding property "vendor.debug.egl.swapinterval"
1376-4969/system_process E/libc: Access denied finding property "vendor.debug.egl.swapinterval"
904-904/? I//vendor/bin/hw/[email protected]: Entry state_: 1 charger_status: Charging batteryLevel: 100
904-904/? I//vendor/bin/hw/[email protected]: Exit state_: 1 batteryLevel: 100
1376-1438/system_process W/ActivityTaskManager: Activity top resumed state loss timeout for ActivityRecord{1d18cc7 u0 com.example.myjike/.MainActivity t26 f}
1376-1438/system_process W/ActivityTaskManager: Activity pause timeout for ActivityRecord{1d18cc7 u0 com.example.myjike/.MainActivity t26 f}
904-904/? I//vendor/bin/hw/[email protected]: Entry state_: 1 charger_status: Charging batteryLevel: 100
904-904/? I//vendor/bin/hw/[email protected]: Exit state_: 1 batteryLevel: 100
1376-1376/system_process W/WindowManager: removeWindowToken: Attempted to remove non-existing token: android.os.Binder@684faa7
910-1027/? D/ASH: @ 2039.861: AP has been up: last 1739518271, now 2039861363 usec
910-1027/? D/ASH: @ 2039.863: Sending to ASH storage: 0 189 0
而且我还重新刷了下,也不行,用的就是1.0.1这个包,请处理下
日志如下:
2022-03-15 21:52:47.998 4997-4997/com.mik.mikmanager E/mikrom: initConfig config:
2022-03-15 21:52:47.999 4997-4997/com.mik.mikmanager E/mikrom: loadGadget enter package:com.mik.mikmanager
2022-03-15 21:52:48.000 4997-4997/com.mik.mikmanager E/mikrom: loadIOHook:com.mik.mikmanager
2022-03-15 21:52:48.000 4997-4997/com.mik.mikmanager E/mikrom: m1 build shouldMikRom processName:com.mik.mikmanager
2022-03-15 21:52:48.001 4997-4997/com.mik.mikmanager E/mikrom: shouldMikRom processName:com.mik.mikmanager res:false
2022-03-15 21:55:53.496 4997-4997/com.mik.mikmanager E/MikManager: SaveMikromConfig
2022-03-15 21:55:57.022 5619-5619/com.github.catvod E/mikrom: initConfig config:[{"appName":"猫影视TV","breakClass":"","dexClassName":"","dexPath":"","enabled":true,"fridaJsPath":"","gadgetArm64Path":"","gadgetPath":"","isDeep":false,"isDobby":false,"isInvokePrint":false,"isJNIMethodPrint":false,"isRegisterNativePrint":false,"isTuoke":true,"packageName":"com.github.catvod","port":0,"sleepNativeMethod":"","soPath":"","traceMethod":"","whiteClass":"","whitePath":""}]
2022-03-15 21:55:57.023 5619-5619/com.github.catvod E/mikrom: initConfig package count:1
2022-03-15 21:55:57.023 5619-5619/com.github.catvod E/mikrom: initConfig err:No value for forbids
2022-03-15 21:55:57.024 5619-5619/com.github.catvod E/mikrom: loadGadget enter package:com.github.catvod
2022-03-15 21:55:57.527 5619-5619/com.github.catvod E/mikrom: loadIOHook:com.github.catvod
2022-03-15 21:55:57.527 5619-5619/com.github.catvod E/mikrom: m1 build shouldMikRom processName:com.github.catvod
2022-03-15 21:55:57.528 5619-5619/com.github.catvod E/mikrom: shouldMikRom processName:com.github.catvod res:false
2022-03-15 22:06:34.221 4997-4997/com.mik.mikmanager E/MikManager: SaveMikromConfig
2022-03-15 22:06:37.464 4997-4997/com.mik.mikmanager E/MikManager: SaveMikromConfig
2022-03-15 22:06:44.477 4997-4997/com.mik.mikmanager E/MikManager: SaveMikromConfig
2022-03-15 22:06:57.481 5828-5828/com.hxdy.myapp E/mikrom: initConfig config:[{"appName":"恒星TV","breakClass":"","dexClassName":"","dexPath":"","enabled":true,"fridaJsPath":"","gadgetArm64Path":"","gadgetPath":"","isDeep":false,"isDobby":false,"isInvokePrint":false,"isJNIMethodPrint":false,"isRegisterNativePrint":false,"isTuoke":true,"packageName":"com.hxdy.myapp","port":0,"sleepNativeMethod":"","soPath":"","traceMethod":"","whiteClass":"","whitePath":""}]
2022-03-15 22:06:57.483 5828-5828/com.hxdy.myapp E/mikrom: initConfig package count:1
2022-03-15 22:06:57.483 5828-5828/com.hxdy.myapp E/mikrom: initConfig err:No value for forbids
2022-03-15 22:06:57.484 5828-5828/com.hxdy.myapp E/mikrom: loadGadget enter package:com.hxdy.myapp
2022-03-15 22:06:57.803 5828-5828/com.hxdy.myapp E/mikrom: loadIOHook:com.hxdy.myapp
2022-03-15 22:06:57.803 5828-5828/com.hxdy.myapp E/mikrom: m1 build shouldMikRom processName:com.hxdy.myapp
2022-03-15 22:06:57.803 5828-5828/com.hxdy.myapp E/mikrom: shouldMikRom processName:com.hxdy.myapp res:false
请处理下。
如题
fastboot: error: requirements not met!
Press any key to exit...
2.用官方rom里面的android-info.txt替换后,报错提示:
fastboot: error: could not load 'product.img': No such file or directory
佬,所以说,这个blueline应该怎么刷机,求助
存放frida so的目录应该是frameworks/base/cmds/mycmds . 作者提交的代码目录是有个小错误 frameworks/base/cmd/mycmds
希望提供一个diff文件,否则不知道代码修改了哪里,不方便理解
2022-02-23 12:33:42.092 5465-5465/? E/mikrom: initConfig err:Attempt to invoke interface method 'java.lang.String android.app.IMikRom.readFile(java.lang.String)' on a null object reference
自定义的服务好像没有添加上,这种情况该怎么处理呢?
如题,最好本周解决视频教程问题,过两天我就要出差了,没事的时候可以看看你的视频教程。谢谢。
想问一下大佬,我的pixel 刷了mikrom之后发现wifi连接不了怎么办?
另外还想 提一下建议,能不能更新防root检测,然后adb自动就会有root权限这样的效果。
如题,例如360加固 libjiagu.so ,最好带root权限,可以自由开启关闭root权限比较好,因为有的app有root检测,有的没有,需要的时候开启,不需要的时候关闭,就好了,希望作者采纳。
进程大致如下:
USER PID PPID VSZ RSS WCHAN ADDR S NAME
root 1 0 60588 1576 0 0 S init
root 983 1 4287904 19896 0 0 S zygote64
root 984 1 1618076 18836 0 0 S zygote
webview_zygote 1943 1 1396420 11180 0 0 S webview_zygote32
u0_i188 3756 1943 1474636 20108 0 0 S com.android.webview:sandboxe
u0_i185 29184 1943 1474636 18096 0 0 S com.android.webview:sandboxe
样本下载地址:链接: https://pan.baidu.com/s/1aRAN7VXcOOE12u6-CejwzA?pwd=xinu 提取码: xinu 复制这段内容后打开百度网盘手机App,操作更方便哦
pixel 4 android 10编译好的镜像
链接: https://pan.baidu.com/s/18S19taQITpcvOxLmR-goIQ 提取码: mnbn
不知道怎么用androd_server调试,通过ida调试。
如题,请问如何解决
自己编译好几回了,刷了之后开不了机......没辙了,只能求大佬帮忙编译下了
两个百度云的线刷包分享连接似乎都是pixel的
大佬更新下群二维码,或者wx吧
脱壳失败,提示:detect_tracer() have detected tracer, pid: 808
样本下载地址:链接: https://pan.baidu.com/s/10lnVgNRvKKf7PZdBCPt7tw?pwd=upfa 提取码: upfa 复制这段内容后打开百度网盘手机App,操作更方便哦
我下载了最后一个Android10版本对不上
同上
大老,你编译Aosp10r2源码JDK 是哪个版本?
各位大佬,请教一下,我编译的pixel3 xl版的mikrom(基于安卓10 r2版),编译无错,但是发现刷机后,mikrom管理端app闪退,没有imikrom启动服务,这个怎么解决?
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.