DeviceFarmer / minicap

Stream real-time screen capture data out of Android devices.
Other
294 stars 76 forks source link

Need android-31 arm64-v8a.so #27

Closed bikeebh closed 3 years ago

bikeebh commented 3 years ago

@pcrepieux I need minicap31.so for armv8_64 as I am using vnc. I have intergrated vnc with android-31 arm64-v8a your current apk approach is not suitalble for me can you provide me android-31 arm64-v8a.so

I will integrate your apk approach later but right now I need minicap.so for android 12 support

varundtsfi commented 3 years ago

I am trying to build the Amdroid_12 r1 but getting errors even libgui.so and other supported libs got generated. I am building the specific module like make minicap Resolve all the new changes but still compiling is done but did not get minicap.so

@koral-- @pcrepieux few people asking about the same solutions because they are still using minicap.so as in their project and not the current minicap.apk.

Following are the changes in Android 12 :- S.No Android 11 Android 12 1 ui/DisplayInfo --> ui/StaticDisplayInfo 2 ui/DynamiDisplayInfo --> ui/DisplayConfig ui/DisplayMode 4 ui/DisplayState.h->viewport --> ui/DisplayState.h->LayerSpaceRect

waiting for your suggestions. Android-11

  1. android::DisplayInfo dinfo;
  2. err = android::SurfaceComposerClient::getDisplayInfo(dpy, &dinfo);
  3. android::DisplayConfig dconfig;
  4. const android::ui::Size& viewport = dstate.viewport;

Android-12

  1. android::ui::StaticDisplayInfo dinfo;
  2. err = android::SurfaceComposerClient::getStaticDisplayInfo(dpy, &dinfo);
  3. android::ui::DisplayMode dconfig;
  4. const android::ui::Size& viewport = dstate.layerStackSpaceRect;
pcrepieux commented 3 years ago

OK thanks. I've just grabbed r2 branch. Will check it 👍

varundtsfi commented 3 years ago

@pcrepieux You can use android-12.0.0_r1 too. It'ss compiling mostly 96%. I am also trying the same But this time I am using
android-12.0.0_r1 . I will keep posted the results here.

varundtsfi commented 3 years ago

Hi @pcrepieux I have build the android-12_0.0.r1 successfully with minicap and get the .so file too. But I am getting the following error CANNOT LINK EXECUTABLE "/data/local/tmp//androidvncserver": cannot locate symbol "_Z28minicap_try_get_display_infoiPN7Minicap11DisplayInfoE" referenced by "/data/local/tmp/androidvncserver"...

I am debugging it step by step. @pcrepieux Any suggestion here.

bikeebh commented 3 years ago

HI @varundtsfi @pcrepieux are you able to crack this for Android 12.

varundtsfi commented 3 years ago

Hi @bikeebh I am trying but getting the same error.

There is a changed from Displayid to android::PhysicalDisplayid Which is creating problem. INFO: (external/minicap/src/minicap_31.cpp:244) Creating SurfaceComposerClient INFO: (external/minicap/src/minicap_31.cpp:247) Performing SurfaceComposerClient init check INFO: (external/minicap/src/minicap_31.cpp:258) Creating virtual display INFO: (external/minicap/src/minicap_31.cpp:266) Creating buffer queue INFO: (external/minicap/src/minicap_31.cpp:269) Setting buffer options INFO: (external/minicap/src/minicap_31.cpp:273) Creating CPU consumer INFO: (external/minicap/src/minicap_31.cpp:277) Creating frame waiter INFO: (external/minicap/src/minicap_31.cpp:281) Publishing virtual display after Publishing virtual display its getting stuck in waitForFrame int waitForFrame() { std::unique_lock lock(mMutex); while (!mStopped) { MCINFO("Wait for frame "); if (mCondition.wait_for(lock, mTimeout, [this]{return mPendingFrames > 0;})) { return mPendingFrames--; MCINFO("Wait for mPendingFrames "); } } return 0; }

@pcrepieux do you have any update on it🤔.

varundtsfi commented 3 years ago

@bikeebh

From here you can use the android 12 support from minicap side using shared libs.

https://github.com/varundtsfi/Android12Support_withso/tree/main/aosp/android-31/arm64-v8a

bikeebh commented 3 years ago

Thanks @varundtsfi it's works for me.