summaryrefslogtreecommitdiff
path: root/sl4n/README.md
blob: 8bc260328cf6c7722433294d139b550edfaeac98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Scripting Layer For Native
=============================

### Introduction
Scripting Layer for Native, SL4N, is an automation toolset for calling Android native Binder
APIs and accessing the HAL layer in an platform-independent manner. This tool enables remote
automation of these layers via ADB.

### Build Instructions
Building SL4N requires a system build.

For the initial build of Android:

    cd <ANDROID_SOURCE_ROOT>
    source build/envsetup.sh
    lunch aosp_<TARGET>
    make [-j15]

*where `<ANDROID_SOURCE_ROOT>` is the root directory of the android tree and `<TARGET>` is the lunch
target name*

Then Build SL4N:

    cd <ANDROID_SOURCE_ROOT>/packages/apps/Test/connectivity/sl4n
    mm [-j15]

### Install Instructions
Run the following command:

    adb push <ANDROID_SOURCE_ROOT>/out/target/product/<TARGET>/system/bin/sl4n /system/bin

Library dependencies required:

    adb push <ANDROID_SOURCE_ROOT>/out/target/product/<TARGET>/system/lib/libbinder.so /system/lib
    adb push <ANDROID_SOURCE_ROOT>/out/target/product/<TARGET>/system/lib/libchrome.so /system/lib
    adb push <ANDROID_SOURCE_ROOT>/out/target/product/<TARGET>/system/lib/libevent.so /system/lib

Optional library dependency for running tests that exercise the Bluetoothtbd service:

    cd <ANDROID_SOURCE_ROOT>/system/bt/service
    mm [-j15]
    adb push <ANDROID_SOURCE_ROOT>/out/target/product/<TARGET>/system/bin/bluetoothtbd /system/bin

### Run Instructions
a) SL4N is launched from ADB shell; or  
b) To enable RPC access from the command prompt:

    adb forward tcp:<HOST_PORT_NUM> tcp:<DEVICE_PORT_NUM>
    adb shell -c "/system/bin/sl4n" &
*where `<HOST_PORT_NUM>` and `<DEVICE_PORT_NUM>` are the tcp ports on the host computer and device.*