Giter Site home page Giter Site logo

meshcentralandroidagent's Introduction

MeshCentral Agent for Android

This is the MeshCentral Agent for Android. It's a completely different code base from the agent used on Windows, Linux, macOS and FreeBSD. You can pair the agent to the server by scanning a QR code. Once paired, you can connect to the server and see the device show up, see the battery state, device details and download pictures, audio and video files.

For more information, visit MeshCentral.com.

Social Media

Reddit
Twitter
BlogSpot

meshcentralandroidagent's People

Contributors

jrf280 avatar si458 avatar ylianst avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

meshcentralandroidagent's Issues

Cannot connect to MeshCentral server on non-standard port

I'm running my MeshCentral on a none standard port 1025 and when I scan the QR code and click 'connect' the MeshCentralAndroidAgent doesn't connect. It prompts to allow access, but still doesn't connect. I've added a lot of remote computers to my MeshCentral already so I know it can be accessed remotely, just not by the mobile app yet.

I'm using Android 9.0 on a rooted Samsung Galaxy S8.

MeshCentral Agent not working on Android 14

Hello everybody,

I am currently experiencing that the awesome MeshCentral Agent for Android crashes, when used on Android 14 devices. I can setup a server in the app, everything is fine. I can click on connect and see the device in MeshCentral, everything is fine. I try to access the desktop, allow everything on my phones and the app crashes. This occours on a Google Pixel 6 Pro running Android 14 as well as a Samsung A54 running Android 14. Devices running Android 13 are working perfectly fine with my server.

Is this behaviour known and maybe a bugfix rising somewhere, or is there any special trick or workaround I was unable to find?

Thanks in advance and best regards :-)

Change name and logo

@Ylianst thank you for the work in all your programs.

  1. I would like to see in editing the red squared blocks (name of verser and logo). I don not want to expose my external domain name because it is my personal network connection.

  2. I would like to see the possiblity to change te language from english to in my case dutch

image

android 14 requiring more permissions again

targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION] any of the permissions allOf=false [android.permission.CAPTURE_VIDEO_OUTPUT, android:project_media]

FATAL EXCEPTION: main
Process: com.meshcentral.agent2, PID: 18580
java.lang.RuntimeException: Unable to start service com.meshcentral.agent.ScreenCaptureService@98247a with Intent { cmp=com.meshcentral.agent2/com.meshcentral.agent.ScreenCaptureService (has extras) }: java.lang.SecurityException: Starting FGS with type mediaProjection callerApp=ProcessRecord{5b4c7a 18580:com.meshcentral.agent2/u0a699} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION] any of the permissions allOf=false [android.permission.CAPTURE_VIDEO_OUTPUT, android:project_media] 
	at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:5286)
	at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2531)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:230)
	at android.os.Looper.loop(Looper.java:319)
	at android.app.ActivityThread.main(ActivityThread.java:8913)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Caused by: java.lang.SecurityException: Starting FGS with type mediaProjection callerApp=ProcessRecord{5b4c7a 18580:com.meshcentral.agent2/u0a699} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION] any of the permissions allOf=false [android.permission.CAPTURE_VIDEO_OUTPUT, android:project_media] 
	at android.os.Parcel.createExceptionOrNull(Parcel.java:3069)
	at android.os.Parcel.createException(Parcel.java:3053)
	at android.os.Parcel.readException(Parcel.java:3036)
	at android.os.Parcel.readException(Parcel.java:2978)
	at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:7214)
	at android.app.Service.startForeground(Service.java:775)
	at com.meshcentral.agent.ScreenCaptureService.onStartCommand(ScreenCaptureService.kt:354)
	at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:5268)
	at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0) 
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2531) 
	at android.os.Handler.dispatchMessage(Handler.java:106) 
	at android.os.Looper.loopOnce(Looper.java:230) 
	at android.os.Looper.loop(Looper.java:319) 
	at android.app.ActivityThread.main(ActivityThread.java:8913) 
	at java.lang.reflect.Method.invoke(Native Method) 
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608) 
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103) 
Caused by: android.os.RemoteException: Remote stack trace:
	at com.android.server.am.ActiveServices.validateForegroundServiceType(ActiveServices.java:2729)
	at com.android.server.am.ActiveServices.setServiceForegroundInnerLocked(ActiveServices.java:2440)
	at com.android.server.am.ActiveServices.setServiceForegroundLocked(ActiveServices.java:1785)
	at com.android.server.am.ActivityManagerService.setServiceForeground(ActivityManagerService.java:15860)
	at android.app.IActivityManager$Stub.onTransact$setServiceForeground$(IActivityManager.java:11873)

Remote control not working

Hi,
even if i connect on the desktop page on the web platofrom, and on the device appear the notification(meschcentral is streaming)
i can't see anything.

Reguarding the fast key present on the webplatform like Reboot, i suggest to add Device Admin permission to the app otherwise in a non rooted device there is no way they will work.

is it still work in progress the remote control? or is it just a bug?

See messages from MC on the Android Agent screen

Would like to request for future a small improvement on the Android Agent, to be able to see messages sent from MC not only on the notification bar, but also after tapping on notification on the Agent screen.
Steps I have done:

  1. Send message from MC server to Android offline agent

1_

  1. Received message on the phone

Screenshot_20220125-103509_

  1. Tapped on the message to open Android Agent, but message has disappeared

Screenshot_20220125-103518_

Possibly to have some dismiss option net to the message, so it can go away once user had attention on it.

Thanks.

MC server: 0.9.71
MC Server OS: Debian Jessie
Android Agent: 1.0.15
Device: OnePlus 7T Pro, Android 11

Does not install on Google TV

Device is the new HD version of the "Chromecast with Google TV".

When viewing the app in the Play Store it gives the message:

This item is not compatible with your device.

I also tried downloading the APK and sideloading it, the install fails with the message:

App not installed as package appears to be invalid.

System details:

Model: Chromecast HD
Android TV OS version: 12
Android TV OS security patch level: May 1, 2022
Android TV OS build: STTF.220621.013

Love Mesh Central, and hoping I can use this to support a streaming device for my family remotely. 💙 Happy to help with debugging the issue if there is anything I can do.

Allow remote control of the phone

scrcpy allows this using ADB.
But it is also doable via AnyDesk (and probably others too) by allowing control via the accessibility settings.

Alongside with allowing control, this would also remove the need for user consent.
If the user does not add it to the accessibility allow list, then tell them a warning every time someone wants to connect to their phone/open the app and connect into view-only for the time being/to assist the user if he can't enable it.

Latest Android agent stops working

Dear @Ylianst

Latest android agent is not working in many Android mobiles. Application stops working while configure the server through QR scanner / while click on connect button.

I have tested the same in Samsung , Redme , Real me & Vivo phones.

Android version - 10,9

Hardcode Server custom APK

Hi, how hard would it be to hardcode the server info into an APK so I can deploy company wide?

Thanks,
Nick

1.0.20 version in Play Store

Hi, i see that on GitHub we have 1.0.20 version of Android Agent but in Google Store is still 1.0.15 version. Can we update it ?

Android App Preconfiguration and Autoconnect

Is there any way to preconfigure the Android MeshCentral App to push it through a Mobile Device Management with following settings?

  1. Set MeshCentral Server Address
  2. Auto Connect to MeshCentral Server
  3. Auto Accept Streming + Recording
  4. Configure User Consent

That would be really nice.

Allow option for more file visibility on Android

Unfortunately on Android 11, I just have some generic Music/Videos folders rather than an actual folder hierarchy.

It would be great if you could add a custom folder to be visible from the agent. Also, possibly if root is available, show the entire hierarchy.

Remote Control Feature

Hi Ylianst,
I can make remote control to my android phone and samsung galaxy tab a7. I can see the secreen. But i can't click shortcuts.
Will you be add fully manage a remote android device? For example i want to unlock, open some applications etc.
IF you can develop we will be happy.
Thanks

Hide Try Icon or Minimize / Hide The Application Icon

Hi Ylianst,
When i open the app on my phone it connects there is no problem. But when i click back button on my phone the connection close automatically. I want that, can you develope a feature like this: when i click back button it can ask me for disconnect/ close application. Or it may minimize automatically when i click back button.
Another if it is possible can you develope a feature for hiding the application to background working. If it is possible can we hide the installed application on phone desktop?

Android agent - Desktop connect brings up mesh agent activity hiding previous activity

Hello,

I have been playing around on a customized Android device which boots and launches a specific activity that I always want to be displayed on top. I was able to sideload the Android agent apk and use adb to enter the server connection URL and I can connect! The problem is that every time I connect to the Desktop, the agent activity is brought to the front, possibly as a simple form of user consent notification. However, this hides the activity that I need to be persistent. Also, I cannot interact with the Desktop to switch back to the desired activity. Disconnect also does not change this so any Desktop connect leaves my device in a "broken" state showing just the mesh agent activity.

Can the foregrounding of the mesh activity be disabled through a setting, or can it default to not switching to the mesh activity?

This is very close to being a great Android monitoring solution if that one "feature" can be changed. Thanks!

EDIT: Hmm, I would also need to auto-start (receiver for RECEIVE_BOOT_COMPLETED) and auto-connect (CONNECT button) as well as keeping the activity in the background the entire time. So I can't really use this unless I have all three of those. This seems a pretty big ask but would make the agent very useful, even without Desktop interaction.

Android Agent doesn't seem to handle User Consent/Notification (yet?)

Testing out the Android Agent, I noticed several issues relating to user consent/notification that I think need to be addressed.

  • When connecting to an Android device via the Desktop tab, it doesn't tell you that you're "Waiting for user to grant access..." like it does when connecting to a desktop PC, it just shows a "Connected" status with nothing showing in the area where the remote view should be.
  • If you tap "Cancel" to deny the request to capture the screen, it doesn't disconnect, it still shows the "Connected" status and a blank remote view.
  • If when connecting, you allow the screen capture, then in the Android Agent's menu tap "Stop Screen Sharing" (on a side note, I think this should not be hidden in a menu, it should be on the main screen, just like the connect/disconnect button) it continues to show that it's "Connected" and the remote view freezes (presumably because the agent isn't sending new data for it).
    [I'd guess this is related to the previous issue.]

The above issues with consent/notification when viewing the Android device's display remotely are things that I think should be fixed to improve the user experience, but next there are some bigger issues, because of their potential for remote actions to go unseen when MeshCentral's settings are set to notify or require consent from the user:

  • If the user checked the "Don't show again" box during a previous remote viewing of their display, they will never again receive a request for their consent to view their display.
    [The Agent should pop to the front, but it doesn't tell them why.]
  • Using the Files tab to remotely view/modify the file system doesn't notify or request the consent of the user in any way, no matter what the User Consent/Notification settings are set to.

Screen Capture hidden in foreground

The screen capture service is hidden in the foreground and will not prompt the user to start recording on Android 10+
To make this work, the MainActivity must be brought forward for the Permission to be prompted to start screen capture.

F-Droid release

Would it be possible to create a version which can be released on F-Droid?
I know that this means without any Google Service dependencies or firebase.
But that effort would please a big part of the open-source community :)

Android apk seems to be invalid if downloaded from invite link and meshcentral.com

I have already mentioned this at #20. But since #20 was mainly another issue, I thought I might start a separate issue for that.

  1. The apk versions directly from https://meshcentral.com/android/meshcentral-agent.apk and that one which I can download directly from the invite page are somewhat no installable. I tried it on two phones: On a Fairphone 5 with Android 12 and a Fairphone 3 with LineageOS 20 (idoéOS fork):
    On both phones, Android throws the error App not installed as package appears to be invalid.

I just tried it now once again, the issue seems to be the same as two days ago.

Environment:

  1. Meshcentral: v1.1.16
  2. Phone 1: Fairphone 5, Android 12 (stock OS)
  3. Phone 2: Fairphone 3, iodéOS v4.6 (forked LineageOS 20, which is based on Android 12)

MeshCentral Agent stucks at Authenticating

Hey all :)
First, thanks for this amazing tool!
I just deployed it on my own server behind Traefik reverse proxy. And so far, everything works great!

Only with the Android app I do have some issues:

  • The apk versions directly from https://meshcentral.com/android/meshcentral-agent.apk and that one which I can download directly from the invite page are somewhat no installable. I tried it on two phones: On a Fairphone 5 with Android 12 and a Fairphone 3 with LineageOS 20 (idoéOS fork):
    On both phones, Android throws the error App not installed as package appears to be invalid.

  • The installation via Google Play Store (or in my case Aurora Store) works. But as soon as I scan the QR code and try to establish a connection, the app gets stuck on Authenticating

    • On the server-side, I do get the following logs:
      New agent at 192.168.20.87:57348 Verified agent connection to <redacted> (192.168.20.87:57348).
    • And then, some minutes later:
      Soft disconnect <redacted> (192.168.20.87:57348)

Since all other connections from windows computers (remote and local ones) are working flawlessly, I don't know what could cause the error here...

Environment:

  • MeshCentral: v1.1.15
  • MeshCentral Agent: v1.0.17

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.