diff --git a/README.md b/README.md index 2dc729f..17c2d1f 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,58 @@ -# gl-android-training-2019 -Android system general course by GlobalLogic Kharkiv, 2019 +# GL hikey960 android howto + +## Sources locations + +Android manifest - git@github.com:svistelnikoff/android_manifest.git ( branch gl-hikey960 ) +Hikey960 BSP - git@github.com:svistelnikoff/hikey-linaro-device.git ( branch svistelnikoff@gl-hikey960-base ) +Hikey960 kernel - git@github.com:svistelnikoff/hikey-linaro-kernel.git ( branch svistelnikoff@gl-hikey960-4.9-base ) + +Vendor specific sources +Software - git@github.com:svistelnikoff/gl-android-training-2019.git ( branch svistelnikoff@vendor-gl ) + +. +├── apps vendor-specific applications +│   └── gl-android-training pllcications implemented as submodule ( svistelnikoff@work-03 ) +│   └── 03-Service +│   ├── GetSetService service: serves get/set random value requests, interacts with HAL +│   ├── GetterApp getter: reads value of saved random value on button click +│   └── SetterApp setter: sets new random, sends intents to control leds +├── config hal: config +├── interfaces hal: interface +│   └── ledcontrol +│   └── 1.0 +│   └── default +└── sepolicy hal: policies + +## Build HOWTO + +Pull sources: +`$ cd ~/` +`$ mkdir hikey960` +`$ cd hikey960` +`$ repo init -u git@github.com:svistelnikoff/android_manifest.git -b gl-hikey960` +`$ repo sync -j4 -c -f` + +Download and extract HDMI proprietary binaries for Hikey960 (from the project home folder): +`$ wget https://dl.google.com/dl/android/aosp/arm-hikey960-OPR-cf4e0c80.tgz` +`$ tar xzf arm-hikey960-OPR-cf4e0c80.tgz` +`$ ./extract-arm-hikey960.sh` + +Build +`$ cd hikey960` +`$ . ./build/envsetup.sh` +`$ lunch hikey960-userdebug` +`$ make -j8` + +## Flash firmware + +Enter fastboot mode. There are two options: +- power off the board, turn ON dipswitch 1 and 3, power on the board. +- connect the board via USB and run from host machine: + `$ adb reboot bootloader` +Check if device has entered bootloader, run from host machine: + `fastboot devices` +Flash device: + `$ cd device/linaro/hikey/installer/hikey960` + `$ ./flash-all.sh` + + diff --git a/config/Android.bp b/config/Android.bp index c56d2ca..38fca93 100644 --- a/config/Android.bp +++ b/config/Android.bp @@ -5,4 +5,4 @@ hidl_package_root { name: "vendor.gl", path: "vendor/gl/interfaces" -} \ No newline at end of file +} diff --git a/config/config.fs b/config/config.fs index 2cd78c8..3961a2d 100644 --- a/config/config.fs +++ b/config/config.fs @@ -5,4 +5,4 @@ value: 2901 mode: 0775 user: AID_VENDOR_LEDCONTROL group: AID_VENDOR_LEDCONTROL -caps: 0 \ No newline at end of file +caps: 0 diff --git a/gl-vendor.mk b/gl-vendor.mk new file mode 100644 index 0000000..bfd7427 --- /dev/null +++ b/gl-vendor.mk @@ -0,0 +1,4 @@ + +PRODUCT_PACKAGES += GetSetService +PRODUCT_PACKAGES += GetterApp +PRODUCT_PACKAGES += SetterApp diff --git a/interfaces/ledcontrol/1.0/ILedControl.hal b/interfaces/ledcontrol/1.0/ILedControl.hal index 7f9edde..597b58c 100644 --- a/interfaces/ledcontrol/1.0/ILedControl.hal +++ b/interfaces/ledcontrol/1.0/ILedControl.hal @@ -31,4 +31,4 @@ interface ILedControl { terminate() generates (int32_t result); -}; \ No newline at end of file +}; diff --git a/interfaces/ledcontrol/1.0/default/Android.bp b/interfaces/ledcontrol/1.0/default/Android.bp index 76ec792..8846ab4 100644 --- a/interfaces/ledcontrol/1.0/default/Android.bp +++ b/interfaces/ledcontrol/1.0/default/Android.bp @@ -14,4 +14,4 @@ cc_binary { "liblog", "vendor.gl.ledcontrol@1.0", ], -} \ No newline at end of file +} diff --git a/interfaces/ledcontrol/1.0/default/vendor.gl.ledcontrol@1.0-service.rc b/interfaces/ledcontrol/1.0/default/vendor.gl.ledcontrol@1.0-service.rc index 4dfe883..827d1f2 100644 --- a/interfaces/ledcontrol/1.0/default/vendor.gl.ledcontrol@1.0-service.rc +++ b/interfaces/ledcontrol/1.0/default/vendor.gl.ledcontrol@1.0-service.rc @@ -20,4 +20,4 @@ on early-boot chown vendor_ledcontrol vendor_ledcontrol /sys/class/leds/user_led3/brightness chown vendor_ledcontrol vendor_ledcontrol /sys/class/leds/user_led3/trigger chown vendor_ledcontrol vendor_ledcontrol /sys/class/leds/user_led4/brightness - chown vendor_ledcontrol vendor_ledcontrol /sys/class/leds/user_led4/trigger \ No newline at end of file + chown vendor_ledcontrol vendor_ledcontrol /sys/class/leds/user_led4/trigger diff --git a/interfaces/ledcontrol/1.0/types.hal b/interfaces/ledcontrol/1.0/types.hal index 76f5072..13a6390 100644 --- a/interfaces/ledcontrol/1.0/types.hal +++ b/interfaces/ledcontrol/1.0/types.hal @@ -14,4 +14,4 @@ enum Leds : uint8_t { LED_2, LED_3, LED_4, -}; \ No newline at end of file +}; diff --git a/interfaces/manifest.xml b/interfaces/manifest.xml index 750228b..384f2e7 100644 --- a/interfaces/manifest.xml +++ b/interfaces/manifest.xml @@ -10,4 +10,4 @@ default - \ No newline at end of file + diff --git a/sepolicy/file.te b/sepolicy/file.te index 5dad2d9..3f4b867 100644 --- a/sepolicy/file.te +++ b/sepolicy/file.te @@ -3,4 +3,4 @@ # type hal_ledcontrol_default_exec, exec_type, vendor_file_type, file_type; -type ledcontrol_app_data, file_type; \ No newline at end of file +type ledcontrol_app_data, file_type; diff --git a/sepolicy/hwservice.te b/sepolicy/hwservice.te index 10389b7..ef53833 100644 --- a/sepolicy/hwservice.te +++ b/sepolicy/hwservice.te @@ -2,4 +2,4 @@ # Copyright # -type hal_ledcontrol_hwservice, hwservice_manager_type; \ No newline at end of file +type hal_ledcontrol_hwservice, hwservice_manager_type; diff --git a/sepolicy/hwservice_contexts b/sepolicy/hwservice_contexts index c58e42f..89e7b6a 100644 --- a/sepolicy/hwservice_contexts +++ b/sepolicy/hwservice_contexts @@ -2,4 +2,4 @@ # Copyright # -vendor.gl.ledcontrol::ILedControl u:object_r:hal_ledcontrol_hwservice:s0 \ No newline at end of file +vendor.gl.ledcontrol::ILedControl u:object_r:hal_ledcontrol_hwservice:s0 diff --git a/sepolicy/installd.te b/sepolicy/installd.te index 6536cf7..ca7edbe 100644 --- a/sepolicy/installd.te +++ b/sepolicy/installd.te @@ -2,4 +2,4 @@ # Copyright # -allow installd ledcontrol_app_data:dir { relabelto rw_dir_perms setattr rmdir }; \ No newline at end of file +allow installd ledcontrol_app_data:dir { relabelto rw_dir_perms setattr rmdir }; diff --git a/sepolicy/ledcontrol_app.te b/sepolicy/ledcontrol_app.te index a417f5a..08162b5 100644 --- a/sepolicy/ledcontrol_app.te +++ b/sepolicy/ledcontrol_app.te @@ -17,4 +17,4 @@ allow ledcontrol_app ledcontrol_app_data:dir { search getattr write add_name cre allow ledcontrol_app ledcontrol_app_data:file { getattr write create open read setattr }; allow ledcontrol_app hal_ledcontrol_default:binder { call }; -allow ledcontrol_app hal_ledcontrol_hwservice:hwservice_manager { find }; \ No newline at end of file +allow ledcontrol_app hal_ledcontrol_hwservice:hwservice_manager { find }; diff --git a/sepolicy/seapp_contexts b/sepolicy/seapp_contexts index 62876c0..1ccd81d 100644 --- a/sepolicy/seapp_contexts +++ b/sepolicy/seapp_contexts @@ -2,4 +2,4 @@ # Copyright # -user=_app domain=ledcontrol_app seinfo=platform name=com.example.getsetservice type=ledcontrol_app_data \ No newline at end of file +user=_app domain=ledcontrol_app seinfo=platform name=com.example.getsetservice type=ledcontrol_app_data