Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Windows Platform #227

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

NingLi670
Copy link
Contributor

@NingLi670 NingLi670 commented Mar 2, 2025

Three changes make AndroidWorld runnable on Windows operating system:

  • Change the hard-coded path /tmp to automatically obtain it according to the operating system.
  • Change most os.path.join into str(Path(*args).as_posix()) to adapt to the path in posix format.
  • Add strip() to deal with \r in Windows platform.

More changes you need to do to make it work on WIndows Platform:

  • Changes in AndroidEnv: Install a11y forwarding apk from filesystem google-deepmind/android_env#265
  • Instead of ~/Library/Android/sdk/emulator/emulator, start the emulator.exe from another path. Usually it is ~\AppData\Local\Android\Sdk\emulator\emulator.exe.
  • Manually specify the adb path and disable _find_adb_directory in minimal_task_runner.py and run.py.
  • Disable _increase_file_descriptor_limit in env_launcher.py.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you check that this worked on unix-based environments as well? I will try and confirm that it does before merging this

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I haven't check it on unix-based environments. It will be great if you can do this.

@anunay1
Copy link

anunay1 commented Mar 4, 2025

@NingLi670 @crawles Tried it on windows. I am running cmd in admin mode.
(android_world) PS C:\Users\xxxx\Documents\android_world\android_world> python .\minimal_task_runner.py --task=SystemBluetoothTurnOff
C:\Users\anuthakur\AppData\Local\anaconda3\envs\android_world\Lib\site-packages\pydub\utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
Traceback (most recent call last):
File "C:\Users\anuthakur\Documents\android_world\android_world\minimal_task_runner.py", line 131, in
app.run(main)
File "C:\Users\anuthakur\AppData\Local\anaconda3\envs\android_world\Lib\site-packages\absl_py-2.1.0-py3.11.egg\absl\app.py", line 308, in run
_run_main(main, args)
File "C:\Users\anuthakur\AppData\Local\anaconda3\envs\android_world\Lib\site-packages\absl_py-2.1.0-py3.11.egg\absl\app.py", line 254, in _run_main
sys.exit(main(argv))
^^^^^^^^^^
File "C:\Users\anuthakur\Documents\android_world\android_world\minimal_task_runner.py", line 127, in main
_main()
File "C:\Users\anuthakur\Documents\android_world\android_world\minimal_task_runner.py", line 89, in _main
env = env_launcher.load_and_setup_env(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\anuthakur\Documents\android_world\android_world\android_world\env\env_launcher.py", line 114, in load_and_setup_env
env = _get_env(console_port, adb_path, grpc_port)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\anuthakur\Documents\android_world\android_world\android_world\env\env_launcher.py", line 35, in _get_env
controller = android_world_controller.get_controller(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\anuthakur\Documents\android_world\android_world\android_world\env\android_world_controller.py", line 320, in get_controller
android_env_instance = loader.load(config)
^^^^^^^^^^^^^^^^^^^
File "C:\Users\anuthakur\AppData\Local\anaconda3\envs\android_world\Lib\site-packages\android_env-1.2.2-py3.11.egg\android_env\loader.py", line 56, in load
File "C:\Users\anuthakur\AppData\Local\anaconda3\envs\android_world\Lib\site-packages\android_env-1.2.2-py3.11.egg\android_env\components\simulators\emulator\emulator_simulator.py", line 144, in init
File "C:\Users\anuthakur\AppData\Local\anaconda3\envs\android_world\Lib\site-packages\android_env-1.2.2-py3.11.egg\android_env\components\adb_controller.py", line 72, in init_server
File "C:\Users\anuthakur\AppData\Local\anaconda3\envs\android_world\Lib\site-packages\android_env-1.2.2-py3.11.egg\android_env\components\adb_controller.py", line 122, in execute_command
File "C:\Users\anuthakur\AppData\Local\anaconda3\envs\android_world\Lib\subprocess.py", line 466, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\anuthakur\AppData\Local\anaconda3\envs\android_world\Lib\subprocess.py", line 548, in run
with Popen(*popenargs, **kwargs) as process:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\anuthakur\AppData\Local\anaconda3\envs\android_world\Lib\subprocess.py", line 1026, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Users\anuthakur\AppData\Local\anaconda3\envs\android_world\Lib\subprocess.py", line 1538, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [WinError 5] Access is denied

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants