{"id":18943498,"url":"https://github.com/xsavikx/androidscreencast","last_synced_at":"2025-10-11T05:32:39.006Z","repository":{"id":19846928,"uuid":"23108862","full_name":"xSAVIKx/AndroidScreencast","owner":"xSAVIKx","description":"View and control your android device on PC","archived":false,"fork":false,"pushed_at":"2023-06-14T22:42:45.000Z","size":140400,"stargazers_count":682,"open_issues_count":26,"forks_count":157,"subscribers_count":49,"default_branch":"develop","last_synced_at":"2025-04-13T00:49:27.389Z","etag":null,"topics":["adb","android","android-device","java","jnlp","remote-control"],"latest_commit_sha":null,"homepage":"https://xsavikx.github.io/AndroidScreencast","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xSAVIKx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2014-08-19T12:17:11.000Z","updated_at":"2025-04-12T14:04:57.000Z","dependencies_parsed_at":"2022-07-21T07:17:30.429Z","dependency_job_id":"300c2fb2-a0ad-48fa-af8d-7db02e292997","html_url":"https://github.com/xSAVIKx/AndroidScreencast","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xSAVIKx%2FAndroidScreencast","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xSAVIKx%2FAndroidScreencast/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xSAVIKx%2FAndroidScreencast/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xSAVIKx%2FAndroidScreencast/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xSAVIKx","download_url":"https://codeload.github.com/xSAVIKx/AndroidScreencast/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248650436,"owners_count":21139672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adb","android","android-device","java","jnlp","remote-control"],"created_at":"2024-11-08T12:42:03.142Z","updated_at":"2025-10-11T05:32:33.975Z","avatar_url":"https://github.com/xSAVIKx.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"AndroidScreencast\n=================\n\n[![Build Status GitHub Actions][actions_badge]][actions]\u0026nbsp;\n[![Codacy Badge][codacy_badge]][codacy]\u0026nbsp;\n[![Join the chat at https://gitter.im/AndroidScreencast/Lobby][gitter_badge]][gitter]\u0026nbsp;\n[![Apache License][license_badge]][license]\n\n[actions_badge]: https://github.com/xSAVIKx/AndroidScreencast/workflows/CI/badge.svg\n[actions]: https://github.com/xSAVIKx/AndroidScreencast/actions\n\n[versioneye_badge]: https://www.versioneye.com/user/projects/58a746d8b4d2a20055fcb887/badge.svg?style=flat\n[versioneye]: https://www.versioneye.com/user/projects/58a746d8b4d2a20055fcb887\n\n[codacy_badge]: https://api.codacy.com/project/badge/Grade/064bbd2582b544bb9659a01a2872317c\n[codacy]: https://www.codacy.com/app/xSAVIKx/AndroidScreencast?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=xSAVIKx/AndroidScreencast\u0026utm_campaign=badger\n\n[license_badge]: https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat\n[license]: http://www.apache.org/licenses/LICENSE-2.0\n\n[gitter_badge]: https://badges.gitter.im/AndroidScreencast/Lobby.svg?style=flat\n[gitter]: https://gitter.im/AndroidScreencast/Lobby?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge\n\n# Description\n\nAndroidScreencast was developed to view and control your android device from a PC.\n\nThis project gives the opportunity to use your phone even with a broken screen.\n\n## Features\n\n- No client needed\n- Support for Tap and Swipe gestures\n- Write messages using PC keyboard\n- Support for landscape mode\n- Browse your phone files on PC\n- Record video of your phone screen while browsing\n\n[Small wiki of project][wiki]\n\n[wiki]: https://github.com/xSAVIKx/AndroidScreencast/wiki\n\n## Configuration\n\nThere are 2 ways to run application:\n\n1. Run ADB server on your own.\n2. Provide a correct `app.properties` file.\n\n### Run ADB server on your own\n\nIn order to run server on your own you have to run already installed (or one from our OS-specific bundle) `adb` with\nfollowing command:\n\n```bash\nadb start-server\n```\n\n**Note**:\n\nIf `app.properties` will have `adb.path` filled, AndroidScreencast will shutdown the ADB server on application\ntermination.\n\nAdditionally, in order to use for example remote ADB server with ssh forwarding you should not use `app.properties`\nor `adb.path` property should be commented.\n\n### Provide correct `app.properties` file\n\nRight now to successfully run application you **should** create `app.properties` file in the same \nfolder as AndroidScreencast's jar and provide at least one property - `adb.path` which should point \nto the `adb` executable file within your OS, for example such location could be configured \nfor Windows OS:\n\n```properties\nadb.path=adb/windows/adb.exe\n```\n\nBoth absolute and relative paths are supported.\n\nExample of valid `app.properties` could be find [here](app.properties).\n\nAlso, we have got some valid OS-specific examples:\n\n* [OSX app.properties](adb/macosx/app.properties)\n* [Windows app.properties](adb/windows/app.properties)\n* [Linux app.properties](adb/linux/app.properties)\n\nThey are actually the same, just `adb.path` is OS-specific. Files listed above are automatically \nincluded into OS-specific bundles.\n\n\n### Additional properties\nHere is the full list of available properties for application configuration.\nProperties should be places in the `app.properties` file in the same folder as AndroidScreencast's \njar file.\n\n```properties\n#relative or absolute path to ADB\nadb.path=./adb\n#maximum time to wait for device (in seconds)\nadb.device.timeout=30\n#maximum time to execute adb command (in seconds)\nadb.command.timeout=5\n#initial application window width (in pixels)\napp.window.width=1024\n#initial application window height (in pixels)\napp.window.height=768\n#Defines whether application should look 'natively' to OS. Possible values: true/false\napp.native.look=false\n```\n\n## JNLP\n\nApplication is available using Java web start technology via [androidscreencast.jnlp][jnlp].\n\n[jnlp]: https://xsavikx.github.io/AndroidScreencast/jnlp/androidscreencast.jnlp\n\n### Java security configuration\n\nDue to Java security restriction policy, that was updated in java 7 and is restricted even more \nin java 8, we're now not able to run JNLP without some security \"hacks\".\n\nTo use JNLP, please follow this article: [How can I configure the Exception Site List?][exception]\n\n[exception]: https://www.java.com/en/download/faq/exception_sitelist.xml\n\n## Building and running from source\n\nThis project requires at least Java 8.\n\nAfter cloning the project, run `mvnw install`.\n\nThe resulting artifacts will be created in the `target` subdirectory.\n\nYou can run the executable jar via `java -jar target/androidscreencast-VERSION-executable.jar`, \nreplacing `VERSION` with the current version.\n\nFor example, `java -jar target/androidscreencast-0.0.10s-executable.jar`.\n\nAdditionally, OS-packages would be created with ADB executables bundled:\n\n* `androidscreencast-VERSION-windows.zip`\n* `androidscreencast-VERSION-linux.tar.gz`\n* `androidscreencast-VERSION-macosx.tar.gz`\n\nIn order to provide correct configuration see [configuration][configuration_section] section.\n\n[configuration_section]: https://github.com/xSAVIKx/AndroidScreencast/blob/develop/README.md#configuration\n\n# Requirements\n\nCurrently, AndroidScreencast works directly with `adb input` program through `ddmlib` and uses \nthe functionality of:\n\n* `adb input key`\n* `adb input tap`\n* `adb input swipe`\n\nRegarding this point, to use AndroidScreencast you need Smartphone running on Android with \nspecific `input` program version. `adb input tap` and `adb input swipe` were introduced \nin [Android 4.1.1][Android_4_1_1_Input].\n\nSo, right now AndroidScreencast support all Android versions equal or greater than Android 4.1.1.\n\nAlso, to run AndroidScreencast you will need *adb* installed (or you can use bundled in OS bundles adb).\n\n[Android_4_1_1_Input]: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.1.1_r1/com/android/commands/input/Input.java#Input\n\n# Similar Projects\n\n* [Seven Square][seven_square] - QT implementation of Android Screencast (actively developed)\n* [Droid@Screen][droid_at_screen] - implementation of Android Screencast in Java \n    (fancy one, last release in 2013)\n* [Android Screen Monitor][android_screen_monitor] - implementation of Android Screencast in Java \n    (latest release in 2013)\n\n[seven_square]: https://github.com/yangh/sevensquare\n[droid_at_screen]: http://droid-at-screen.org/droid-at-screen/\n[android_screen_monitor]: https://github.com/adakoda/android-screen-monitor\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxsavikx%2Fandroidscreencast","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxsavikx%2Fandroidscreencast","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxsavikx%2Fandroidscreencast/lists"}