Handles the schedule task request from GRPC. Starts a thread
for the scheduled tasks and injects the task data through the grpc
channel.
Test: m -j TestWakeupClientServerHost && atest TestWakeupClientServerHostUnitTest
Bug: 297271235
Change-Id: Ia9f1d7fa3dadb3be68e31987622bc6df9271e929
Implement the ScheduleTask APIs in reference remote access
HAL by using grpc to communicate with an external grpc server.
Test: atest RemoteAccessServiceUnitTest
Bug: 297271235
Change-Id: I2d363aa244c842cea5be0c35f4f3a7961eb3cc0b
These APIs allows a client to schedule a task to be executed later.
If the vehicle is off when the task is to be exectued, the vehicle
will be woken up, execute the task and shutdown. If the vehicle is
already up, the task will be exectued.
Test: None
Bug: 282792374
Change-Id: I97c4fdbe2cba035e8bd9ddede4c94d0331c39eef
Implement a host program that could be used to test the remote
access feature. The program will provides grpc service that the
remote access HAL running on device can talk to to get tasks. The
program will also use adb/aemu command to control the power of the
Android instance.
This CL also changes the GRPC service address for the default
remoteaccess HAL to 10.0.2.2 which points to the host's 127.0.0.1
from the emulator.
Test: m -j TestWakeupClientServerHost, run manually.
TestWakeupClientServerHost
>>> inject task [clientID] taskdata
verify emualtor boot up
verify emulator shutdown after task finish
>>> power on
verify emualtor boot up
>>> inject task [clientID] taskdata
verify emulator does not shutdown after task finish
>>> power off
>>> inject task [clientID] taskdata
verify emulator boot up
>>> set vehicleInUse
verify emulator does not shutdown after task finish
>>> power off
>>> genFakeTask start [clientID]
verify emulator starts up to execute remote tasks.
verify emulator shuts down after 300s.
verify emulator restarts after shutdown.
>>> genFakeTask stop
verify emulator shuts down after finishing last task.
Bug: 285205122
Change-Id: I22b660448d8b495cf3ced3378c1c1dc10051d87a
Update the test folder directory. The previous temp directory
is not allowed to be accessed by selinux rule.
Test: Manual follow remote access test plan on seahawk.
Bug: 272773565
Change-Id: I2b8b05f56560d3d28d0d61e816d345f8d03f59a5
Support a debug command that will inject a fake remote task for
testing on next reboot with specified latency. This is used to
simulate the situation when a remote task arrives while the device
is not booted up and the task will be delivered once the device
boots up.
Test: Manually test on seahawk.
Bug: 275880463
Change-Id: I6eb064893bea0700da80dfa2dcf3079ddb0b59a1
Only expose a factory function in the header. This limits the
internal gRPC dependency to the .cpp file and simplifies the
implementation.
Bug: 280043032
Test: local build
Change-Id: Ic7ea8dac9935231ceb05bec22c2a5902c50ea8db
This allows local remote access HAL test. This CL also adds debug
status dump to remote access HAL.
Test: Manual run on gcar_emu
Bug: 272773565
Change-Id: Ic02b451d800cfe75d8c410a4dc52e8ce15e481b7
Remote access test VHAL requires net_raw to select specific eth
interface to communicate with TCU.
Test: Manual test.
Bug: 261108682
Change-Id: Ieb84a84ffeee2b8f907de8b58501024a3d704945
When enabling wifi on seahawk, the main network interface changes
so we need to explicitly specify the eth interface we want to
use for our grpc connection.
Note that using setsockopt requires NET_RAW permission which is
only granted to limited apps. As a result, selinux permissive
mode is required for this CL to work.
Test: Manual test on seahawk, verify grpc is connected okay.
Bug: 261108682
Change-Id: I95c9f796bf40226b612edf284188ffc6d095086f
We should not delete ClientContext after we TryCancel it since the
reader in the main task loop might still access it, e.g., while
calling reader->Finish. We must wait under reader->Finish is
returned, then to delete the ClientContext.
This CL also updates README.md to incorporate soong namespace change.
Test: manually test on sdk_car_x86_64-userdebug
Run TestWakeupClientServer
Run --set-ap-state 1 0 and then --set-ap-state 0 0 multiple times.
Bug: 261234399
Change-Id: I3b0c632546c218c4ced43af95a585cd41e0da036
This will be useful for testing in different environment, e.g.
emulator v.s. phone where multiple ethernet interface might be
available and we need to explicitly pick an interface to start
the server.
Test: Manual test
Bug: None
Change-Id: I3c046e9549225058178346f529773cffa841ce07
By default, TCU should always try to wake up AP until it receives
wakeup not required from AP.
Test: None
Bug: 254547153
Change-Id: If4d1111aae1d13f121230360317615ea4ba0302f
Define a library for the communication channel between TCU and
application processor. This library will be implemented with
device-specific logic.
Test: local compile
Bug: 254547153
Change-Id: I241ba141f9a5a4a3852017e291fbbc08cadf2bfe
Add remote access HAL interface and reference implementation. This
CL is a merge of multiple CLs commited in internal master.
Test: Presubmit
Bug: 241170646
Change-Id: I55ba98015055d779a362cac05a9f68650b5b92ab
Merged-In: I332221b303274463dfa5b46d78cf0d81f6045e4b
Add the logic to call wakeupAP when required.
Also update target in README.
Test: None, trivial logic.
Bug: 254547153
Change-Id: I0ad59f9f004d0cb5c01d664090fab984ac5420db
Add a README for documentation. Change log to printf so that
it has less android dependency and easier for showing the
message.
Test: Local run following the document.
Bug: 253627094
Change-Id: Ic7377ce763fdbd8599736a745942c1a0e27bc063
Fixes a type issue where uptimeMillis returns in64_t not long
type.
This reverts commit cd8b38611a.
Test: m -j TestWakeupClientServer
forest run on aosp_x86-eng target which failed previously
Change-Id: Ifc51cbe80787b0ecce2ffe42a2888962a8d9f941
Add timeout logic for fake tasks. They will timeout after 20s and
print an error message if not received by the remote access HAL.
Test: Manually run TestWakeupClientServiceImpl and verify the log:
Task for client ID: [ID] timed-out
is printed.
Bug: 246841306
Change-Id: I2173c931da9e0ea40c7b16f9e25a75592fa255c0
Added SPDX-license-identifier-Apache-2.0 to:
automotive/remoteaccess/test_grpc_server/impl/Android.bp
Bug: 68860345
Bug: 151177513
Bug: 151953481
Test: m all
Change-Id: Ic50074db72b2c599360c77d8a93f6d6425938f83
Add debug command to test remote access HAL.
Bug: 241483300
Test: Follow:
change file sytem to read-write.
m -j TestWakeupClientServer
adb push
out/target/product/emulator_car64_x86_64/vendor/bin/TestWakeupClientServer
/vendor/bin
In one adb shell:
/vendor/bin/TestWakeupClientServer
In another shell:
dumpsys android.hardware.automotive.remoteaccess.IRemoteAccess/default --start-debug-callback
dumpsys android.hardware.automotive.remoteaccess.IRemoteAccess/default --show-task
[should show no tasks]
dumpsys android.hardware.automotive.remoteaccess.IRemoteAccess/default --ready-for-remote-task 1
[wait for 5s]
dumpsys android.hardware.automotive.remoteaccess.IRemoteAccess/default --show-task
[should see all the tasks from client ID 1]
dumpsys android.hardware.automotive.remoteaccess.IRemoteAccess/default --ready-for-remote-task 0
[wait for 5s]
dumpsys android.hardware.automotive.remoteaccess.IRemoteAccess/default --show-task
[should see no new tasks]
dumpsys android.hardware.automotive.remoteaccess.IRemoteAccess/default
--ready-for-remote-task 1
dumpsys android.hardware.automotive.remoteaccess.IRemoteAccess/default --show-task
[should see new tasks]
Change-Id: I551bf9ab5b55c4de9d8382d69bd5078ec62cad51
The test implementation will send out a remote task to remote access
HAL every 5s.
Test: Manually test on gcar_emu.
adb root
adb remount
adb reboot
adb root
adb remount
m -j TestWakeupClientServer
cd out/target/product/emulator_car64_x86_64
adb push ./vendor/bin/TestWakeupClientServer /vendor/bin
adb shell
In the shell:
su
/vendor/bin/TestWakeupClientServer
Check adb logcat, verify tasks are received.
Bug: 246841306
Change-Id: Idaf198662f7004e3a9e77d75caeffc00cda49218
Implement a remoteaccess HAL implementation that talks with
the wake up client using grpc.
Test: local build.
Bug: 241483300
Change-Id: I02a51f41427fa2854930d2076ca3a49791488fd9
Define a remote access HAL that talks with a wakeup client on
TCU through grpc.
Test: make android.hardware.automotive.remoteaccess
Bug: 241483300
Change-Id: I3bc6c8b837c157744f1d2b5f2e9c287e44a33883
This proto defines the GRPC interface supported by vendor wakeup
client. remoteaccess HAL will use this interface to communicate
with vendor wakeup client on TCU.
Test: Presubmit
Bug: 241482331
Change-Id: Idc68ad6cdcecac0103245cf8a415bdf6205105cc
Define the HAL interface for a wakeup client. This interface will
be used by remote task client to receive remote tasks.
Test: m android.hardware.automotive.remoteaccess-update-api
Bug: 241170646
Change-Id: I332221b303274463dfa5b46d78cf0d81f6045e4b