Create ResourceManager class for allocd

The Resource manager services requests for static resources, and
manages them for the duration of the request.

Each time a client connects, it requests a new resource,
such as a network interface, through a UNIX domain socket.

Upon receiving the request, the manager tries to allocate the
requested resources, and communicates the status of the request
back to the client.

Currently, clients must request resources to be deallocated, but
the ResourceManager will deallocate all owned resources when
it receives a shutdown request, and its lifetime ends.

Future implementations can modify the current behavior to tie the
lifetime of a resource to another mechanism, such as a long
lived TCP connection w/ a heartbeat to prevent clients from leaking
static resources.

Supported request types are defined in Request.h

Operations are as follows:
Request ID: Allocates a new global ID
Create Interface: Adds a new network interface of the requested type
                 (mtap, wtap, wbr)
Destroy Interface: Removes the specified interface and if it is
                  managed, and perform necessary cleanup
Shutdown: Stops the daemon, and releases all acquired resources

Bug: 148823285
Test: None
Change-Id: Idb1ba21217ae8b672624be173650bedf8dc99780
2 files changed
tree: 616e2e95525d86dc457a5cfc8a63adf93dc01e46
  1. common/
  2. guest/
  3. host/
  4. recovery/
  5. shared/
  6. tests/
  7. tools/
  8. vsoc_arm64/
  9. vsoc_arm64_only/
  10. vsoc_x86/
  11. vsoc_x86_64/
  12. vsoc_x86_64_only/
  13. vsoc_x86_noapex/
  14. Android.bp
  15. Android.mk
  16. AndroidProducts.mk
  17. CleanSpec.mk
  18. dtb.img
  19. fetcher.mk
  20. host_package.mk
  21. METADATA
  22. OWNERS
  23. README.md
  24. required_images
  25. TEST_MAPPING
README.md

So you want to try cuttlefish?

  1. Download, build, and install the host debian package:
git clone https://github.com/google/android-cuttlefish
cd android-cuttlefish
debuild -i -us -uc -b
sudo dpkg -i ../cuttlefish-common_*_amd64.deb
sudo apt-get install -f
  1. Go to http://ci.android.com/
  2. Enter a branch name. Start with aosp-master if you don‘t know what you’re looking for
  3. Navigate to aosp_cf_x86_phone and click on userdebug for the latest build
  4. Click on Artifacts
  5. Scroll down to the OTA images. These packages look like aosp_cf_x86_phone-img-xxxxxx.zip -- it will always have img in the name. Download this file
  6. Scroll down to cvd-host_package.tar.gz. You should always download a host package from the same build as your images.
  7. On your local system, combine the packages:
mkdir cf
cd cf
tar xvf /path/to/cvd-host_package.tar.gz
unzip /path/to/aosp_cf_x86_phone-img-xxxxxx.zip
  1. Launch cuttlefish with:

    $ HOME=$PWD ./bin/launch_cvd

  2. Stop cuttlefish with:

$ HOME=$PWD ./bin/stop_cvd

So you want to debug cuttlefish?

You can use adb to debug it, just like a physical device:

$ ./bin/adb -e shell

So you want to see cuttlefish?

You can use the TightVNC JViewer. Once you have downloaded the TightVNC Java Viewer JAR in a ZIP archive, run it with

$ java -jar tightvnc-jviewer.jar -ScalingFactor=50 -Tunneling=no -host=localhost -port=6444

Click “Connect” and you should see a lock screen!