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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
|
---
title : Application Framwork
author: imported from Doors-ng by Fulup(iot.bzh)
date : 2016-06-30
categories: architecture, automotive
tags: architecture, automotive, linux
layout: techdoc
---
## Application Framework Layer
The Application Framework layer provides the methods needed to create software applications
and their user interfaces. The platform can support multiple application frameworks any of
which may be built into an SDK or product build. The application framework contains any code
specifically written for that framework as well the bindings to the Services and Operating
Systems layers that the application framework provides for its applications.
4.1 AGL Application Framework
The AGL Application Framework provides basic services to all applications regardless of the
framework they are implemented in so that there is a standard method providing the services.
Page 20 of 159
Automotive Grade Linux Requirements Spec v1.0 ![](../media/picture114.jpeg)
{: class="image"}
May 28, 2015
### Application Manager
Application Manager describes requirements for AGL application lifecycle function. Application
lifecycle contains application installation/removal and launch/hide/resume/kill.
### Requirements
AGL System must support application lifecycle (install/uninstall, launch/kill, suspend/resume) based on
appid/pid via launcher.
AGL System must support a database to store application metadata (appid, exec path etc.).
AGL System must provide an interface to get a list of installed applications.
AGL System must provide an interface to get the state of an application.
AGL System must provide application privilege control.
### Window Manager
A window system is a software component that facilitates an implementation of graphical user interface. A
window system is responsible for managing display devices, Graphics Processing Units (GPUs), input
devices, and graphics memory. A window system works with the software component named window
manager that is responsible for a layout management of windows, and a routing of user interactions.
A window manager is as software component that is responsible for a layout management of
windows.
Window manager of automotive middleware layer makes up for traditional window management
system to be satisfied IVI’s complex requirements, typically requested from Policy Manager.
Also, AGL aims to provide well-portability among various hardware platforms.
Page 21 of 159
**No.** | **Role** | **Description**
-----------| -----------------------------|--------------------------------------------------------------
1 | Window drawing | Provide capability to draw a window to any place
| |
| | and any size and any scale.
| |
| | Also provide capability to change visibility of the
| |
| | window.
2 | Overlay of multiple | Provide capability to overlay two or more windows
| |
| windows | with any z-order.
| |
| | Also provide capability to use hardware layer
| |
| | efficiently.
3 | Visual effect | Provide capability to adapt visual effect as below.
| |
| | · Animation effect to change visibility
| |
| | · Animation effect to transit between two or
| |
| | more windows
| |
| | · Visual effect for a window, such as gray-out
| |
| | and transparent.
4 | Frame rate control | Provide capability to control dynamic frame rate
| |
| | change. This is useful if system resource was
| |
| | shortage.
5 | Multiple hardware layer | Provide capability to use hardware layer efficiently
| |
| support | if hardware supports two or more hardware layers.
![](media/picture115.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
#### Use Case
Please refer “screen resource control” of Policy Manger section.
#### Role
Table 7-148 describes the role of window manager to be satisfied above purpose and use
cases.
Page 22 of 159
----------------------------------------------------------------------------------------------
| 6 | Reduced dependency of | Provide well-defined interface to reduce
| |
| hardware | dependency of hardware. Well-defined interface
|
| also makes it possible to increase the effect of
|
| portability and development cost.
----- --------------------------- ------------------------------------------------------------
| 7 | Multi window / multi | Support multi window management and multi
| |
| display | display.
| 8 | Compatibility | From the compatibility point of view, AGL should
|
| use public API, and shall not rely on hardware
|
| specific API.
----------------------------------------------------------------------------------------------
![](media/picture116.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
#### Requirements
4.1.2.3.1 Window Drawing
System must provide a mechanism to manage surfaces, such as create, delete, make visible and
make invisible.
System must provide a mechanism to create and delete surface.
When surface is created or deleted, system must notify status change to GUI resource.
This notification mechanism makes possible to assign surface to proper area by GUI resource.
System must provide a mechanism to change visibility per each surface.
And, provide an interface to change visibility.
All the surfaces must be set to invisible for initial state.
Surface will be visible only if GUI resource issues to change visibility.
System must provide a mechanism to move surface’s area. If area size was different between
previous area and new one, then system must support to fit into new area by VIC.4.1.4.
*System must provide a mechanism to fit surface into area. Because, size of area may differe*nt
Page 23 of 159
![](media/picture117.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
from size of surface.
If resize was happened, system must notify to surface’s owner application.
If size of surface and size of area was different, system must provide a mechanism to fit surface
into area by squeeze.
If size of surface and size of area was different, system must provide a mechanism to fit surface
into area by using combination of scaling and trimming function.
That means, system must provide a mechanism to fit surface into area keeping original aspect
ratio. This makes it possible to fit by “pan & scan”.
If size of surface and size of area was different, system must provide a mechanism to fit surface
into area by using combination of scaling and background color.
That means, system must provide a mechanism to fit surface into area keeping original aspect
ratio. System also provides a mechanism to fill background color into redundant pixels. This
mechanism makes it possible to do “letterbox” method.
4.1.2.3.2 Overlay of Multiple Windows
System must provide a mechanism to create and delete a layer.
Layer must have a concept of z-order. That means, display order for each layer is decided by
their z-order attribute.
Z-order attribute is fixed value. So, if application wants to change display order of surfaces,
then, attached layer must be changed.
System must provide a mechanism to create and delete “area” to display surface.
Area is a concept which defines where to display in specific layer.
System must provide a mechanism to attach surface to any layer.
Also, system must be able to change attached layer.
And, provide an interface to attach and change.
Page 24 of 159
![](media/picture118.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
System must provide a mechanism to assign surface to any area in a layer.
And, provide an interface to assign surface to any area.
System must provide a mechanism to change visibility per each layer.
That means all the surfaces belonging to same layer will be changed visible or invisible at the
same time.
And, provide an interface to change visibility per layer.
Initial state must be set to invisible.
System must provide a mechanism to enable superimposed display based on z-order of each
layer, and disposition of surfaces.
4.1.2.3.3 Visual Affect
System must provide a mechanism to apply animation effect when visibility change was
happened.
Per each animation, system must provide a mechanism to apply below attributes.
- Duration
Animation type
System must provide typical animation effects, such as slide-in, slide-out, zoom-in and zoom-
out.
Also, system must provide a mechanism to add, delete and change animation effect easily by
plug-in architecture.
System must provide a mechanism to apply animation effect when move surface was happened.
Per each animation, system must provide a mechanism to apply below attributes.
· Duration
Animation type
System must provide typical animation effects, such as slide-in, slide-out, zoom-in and zoom-
Page 25 of 159
![](media/picture119.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
out.
Also, system must provide a mechanism to add, delete and change animation effect easily by
plug-in architecture.
System must provide a mechanism to make effect to surface.
And, provide an interface to set effect type from application and other software components.
System must provide a mechanism to make specific surface to gray-out.
System must provide a mechanism to make specific surface to low brightness
System must provide a mechanism to add, delete and change effect for surface easily by plug-in
architecture.
4.1.2.3.4 Frame Rate Control
System must provide a mechanism to reduce frame rate independent from refresh interval of
application.
System also provides a mechanism to set frame rate as 0fps, independent from refresh interval
of application.
This function is useful to keep whole system quality even if high load status, such as live
thumbnail and moving surface.
4.1.2.3.5 Multiple Hardware Layer Support
If hardware supports two or more hardware layers, system must provide a mechanism to use
hardware layers efficiently.
·
Never use software overlay when superimposing two or more hardware layers
Assign hardware layer for graphical high load function, such as video playback
4.1.2.3.6 Reduced Dependency of Hardware
Page 26 of 159
![](media/picture120.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
Window Manager must be able to retrieve system structure regarding displays and layers of
each display. And system must provide a mechanism to adapt any structure without re-build,
such as by using re-configuration.
4.1.2.3.7 Multi Window
AGL specifies that automotive grade Linux shall manage multiple windows owned by multiple
processes on a display.
AGL specifies that automotive grade Linux shall support multi-headed display.
4.1.2.3.8 Compatibility
AGL specifies that automotive grade Linux shall have a window manager that uses only public
APIs provided by Window System and OpenGL/ES 2.0 for rendering and user interaction.
AGL specifies that automotive grade Linux shall have a window manager that relies on a
standard rendering API such as OpenGL/ES 2.0 only. The window manager shall not rely on any
hardware specific API.
A window system and OpenGL/ES 2.0 API are responsible for a hardware abstraction.
**4.1.3 Policy Manager**
**4.1.3.1 Overview**
4.1.3.1.1 Purpose
Policy Manager collects information and makes decisions based on them. To do that, Policy
Manager collects lots of status, such as user operation and application status, then issue Vehicle
Info Control or Resource Control to provide information. Policy Manager controls two types of
resource, one is called “GUI resources” such as screen and sound, and other one is called
Page 27 of 159
![](media/picture121.jpeg)![](media/picture122.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
“System resources” such as CPU and memory.
4.1.3.1.2 GUI Resources
(1) Definition
· About Control of GUI Resources
AGL is supposed the following devices in this feature. For example, display with touch panel,
speaker, and microphone. And AGL defines that “GUI resources” are resources that provide user
or is provided by user on those devices, such as windows, sound streams and input events.
**Figure 7-1: GUI resources**
Page 28 of 159
![](media/picture123.jpeg)![](media/picture124.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
Policy Manager controls GUI resources according to external conditions. For example, Policy
Manager limits the information of GUI resources while the vehicle is driving, because, the too
much information distracts the attention of driver from driving operations.
· Associated Software Architecture
The software architecture of Policy Manager and related components regarding GUI resources
control is as below.
**Figure 7-2: Associated Software Expected Use Case**
Page 29 of 159
-----------------------------------------------------------------------------------------------------------------------------------------------------
| **No** | **Component** | **Description**
|
| **.**
---------- ------------------------ --------------------------------------------------------- -------------------------------------------------------
| 1 | Homescreen | Request to control of GUI resources.
| 2 | Applications | Request to output or input of GUI resources.
| 3 | UI Component | Receive driving mode and day night mode. And
|
| then provide the corresponding feature to
|
| applications UI such as input limitation and
|
| changing the theme.
| 4 | Application Manager | Detect application installation. Then Notify the
|
| definition of GUI resources such as role by
|
| application configurations.
| 5- | Vehicle | Window Manager
| |
| 1 | Info
|
| Control
| 5- | Sound Manager
|
| 2
| 5- | Input Manager
|
| 3
| 5- | Vehicle Info Distributor
|
| 4
| 5- | User Manager
|
| 5
-----------------------------------------------------------------------------------------------------------------------------------------------------
![](media/picture125.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
Policy Manager is related with the below components.
(2) Role
Page 30 of 159
-----------------------------------------------------------------------------------------------------
| **ID** | **Role** | **Description**
---------- ------------------------------ -----------------------------------------------------------
| 1 | External condition | (1) Receives the external conditions.
|
| collection
| 2 | Judgment of priority of | (1) Receives the input/output/control request of
| |
| GUI resource | GUI resources.
|
| (2) Judgment the GUI resource owner according to
|
| external conditions.
| 3 | GUI resource control | (1) Issue the GUI resource control according to
|
| judgment.
|
| (2) Notify the driving mode and day night mode
|
| that is calculated by external conditions.
-----------------------------------------------------------------------------------------------------
![](media/picture126.jpeg)![](media/picture127.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
Policy Manager has the below role.
Page 31 of 159
![](media/picture128.jpeg)![](media/picture129.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
**Figure 7-3: Definition of Role**
GUI resource classifies screen resource, sound resource and input resource. Details of each
resource type are as follows:
a. Screen Resource
a-1. External Condition Collection
Policy Manager collects the below definition that is related with screen resource.
**Figure 7-4: Definition of screen resource**
• Concept of Display, Layer, Layout and Area
AGL supports not only one physical display but also two or more displays. Each display has one
or more layer. And each layer must be connected to one layout defined by Homescreen. Layout
Page 32 of 159
![](media/picture130.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
consists of one or more areas. “Area” is graphics composed area to display specific graphics
window.
The z-order of layers is flexible. Policy Manager decides the z-order of each layer depending on
objectives of them. For example, layer-1 was used as “phone call notification”, and layer-2 was
used as displaying “map”, then Policy Manager will decide that layer-1 should be upper than
layer-2.
Layer is created by application including Homescreen. When application creates layer,
application specifies layer type. Layer type is roughly categorized as “Basic” and “Interrupt”.
“Basic” layers are used to display application itself such as media playback, map drawing and
setting menu. “Interrupt” layers are used to display overlay windows such as information alert
and enlarged view.
When application creates layer with ”Basic” type, application must specify layout type for it. On
the other hand, the case layer with “Interrupt”, application must specify corresponding “Basic”
layer. The layout of “Interrupt” layer is followed by “Basic” layer’s layout.
From the capability of Policy Manager point of view, the main purpose of layer is to decide z-
order. In other words, if there is a scenario to change z-order of two or more windows triggered
by system status change and/or user operation, then such kind of window must assign to
individual layer.
• Concept of Layer Owner, Role and Surface
“Layer owner” is application which created that layer. “Layer owner” can request each area of
that layer. When “Layer owner” requests specific area, “Layer owner” also specify “Role” of
area. “Role” represents how to be used that area, and used to define z-order of layers by Policy
Manager.
“Layer owner” also can request to change “Role” for specific area, however, whether “Role”
change is acceptable or not is decided by Policy Manager by using policy rule.
One area should connect to one graphics window. AGL defines the term “Surface” as graphics
window to display into one area.
Page 33 of 159
![](media/picture131.jpeg)![](media/picture132.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
Surface is a canvas to draw graphical image by application. To show via physical display, surface
drawn by application must be assigned to specific area. Figure 7-16 describes simplest example
to assign one surface to full screen with one layer. If layer has two or more areas, then
corresponding surfaces are mapped to each area. According to example of Figure 7-16, surface
is fit to area size as “squeeze”, however AGL also provide a way to fit as “letterbox” and “pan &
scan”.
**Figure 7-5: Definition of Surface**
• Subdivision of “Interrupt” Layer
Basically, “Basic” layer corresponding to “Interrupt” layer is used to display application’s main
surface. However there are some exceptions. For example virtual keyboard is not needed main
surface. However, to follow this layer type rule, virtual keyboard must have corresponding
“Basic” layer. But this “Basic” layer never used to display. Also on-screen, such as alert message
is not needed main surface too. But it must have corresponding “Basic” layer from same reason.
According to above concept and some exceptions, AGL defines four layer types described
as Table 7-3.
Page 34 of 159
---------------------------------------------------------------------------------------------------------
| **No** | **Type** | **Summary** | **Example**
---------- ------------- -------------------------------------------------------- -----------------------
| 1 | Basic | This is application’s basic screen. Typically, | Map of navigation
|
| application requests this layer at first time.
| 2 | Interrupt | This is application’s popup screen. | Enlarged view of
|
| navigation
| 3 | On-screen | This is system popup screen. Typically, On- | Warning message
| |
| screen service (e.g. Homescreen) requests | popup
|
| this layer.
| 4 | Software | This is the software keyboard screen. | Software keyboard
| |
| keyboard | Typically, software keyboard service
|
| requests this layer.
---------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
| **No** | **Contents** | **Summary** | **Example**
---------- ---------------- ------------------------------------------------------- ------------------
| 1 | Role | This is screen owner (such as application or | Navigation
|
| service) role.
| 2 | Sub role | This is specific screen role. | Enlarged view
------------------------------------------------------------------------------------------------------
![](media/picture133.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
a-2. Judgment of Priority of GUI Resource
Policy Manager receives the request with “Role” that is related with each screen resource. Role
is the category name of screen resource priority. Role is used to judgment of priority by Policy
Manager. Table 7-4 and Figure 7-6 describes the definition of role and sub role.
Role consists of role and sub role. Role is screen owner role such as “Navigation” and “Software
Page 35 of 159
![](media/picture134.jpeg)![](media/picture135.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
keyboard”. Sub role defines when layer type of the screen resource is not “Basic”. Sub role is
popup screen role such as “Enlarged view” (of Navigation).
**Figure 7-6: Definition of Role and Sub role**
The screen resources are sorted of priority that is related to role by Policy Manager. If display
has two or more layers, then all layers will be superimposed by z-order.
In addition, Policy Manager decides the area of "Interrupt" layer using role. Area of "Interrupt"
layer must be same area of the related "Basic" layer. "related" means that "Role" (is not "Sub
role") of "Basic" and "Interrupt" is same. For examples, if "Interrupt" layer is set “Navigation”
role and “Lane guidance” sub role, this is set in same area of "Navigation" role.
a-3. GUI resource control
Policy Manager controls the screen resources using Vehicle Info Control. Policy Manager only
issues to control the screen resources but it is actually controlled by Vehicle Info Control
directly.
Page 36 of 159
![](media/picture136.jpeg)![](media/picture137.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
There are three types of screen resource control:
One is allocation of each surface such as position, size and size-fitting method.
Second one is visibility control. Basically, visibility should be “ON” during area owner was
assigned. However, visibility may set to “OFF” during driving mode due to driving restriction.
Last one is order control of each layer. Policy Manager decides the order of each layer, and issue
z-order information for each layer.
b. Sound Resource
b-1. External Condition Collection
Policy Manager receives the below definition that is related with sound resource.
**Figure 7-7: Definition of Sound Resource**
• Zone
Zone is a place in the car, such as driver zone, passenger zone, rear seat zone. Each zone can
play at the same time.
Page 37 of 159
-------------------------------------------------------------------------------------------------
| **No** | **Type** | **Summary** | **Example**
---------- ------------- ---------------------------------------------- -------------------------
| 1 | Basic | This is application’s basic sound. | Music of media
|
| player
| 2 | Interrupt | This is application’s interrupt sound. | Guidance of
|
| Navigation
| 3 | Beep | This is beep. Typically, Homescreen | Display touch sound
|
| requests this type.
-------------------------------------------------------------------------------------------------
![](media/picture138.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
• Sound type
Sound type is the category of sound resource. Sound type must be set by each sound resource
owner such as application. If application wants to play sound, it must be assigned to proper
sound type of proper zone. Only one sound stream can occupy specific sound type of specific
zone. In other words, if two or more sound streams should be mixed in same zone, then each
sound stream must assign to individual sound type.
AGL supports the following sound type, however it’s just sample and should be configurable.
• Stream
Stream is connection of sound resource that is made in applications. Sound is transferred in
stream.
b-2. Judgment of Priority of GUI resource
Policy Manager receives the request with “Role” that is related with each sound resource. Role
is the category name of sound resource. Role is used to judgment of priority by Policy
Manager. Figure 7-8 describes the definition of role.
Page 38 of 159
![](media/picture139.jpeg)![](media/picture140.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
**Figure 7-8: Sample Role**
The sound resources in the same zone and same sound type are switched along the priority that
is related to role by Policy Manager. In other words, the sound resources of different zones or
different sound type are not switched. They are mixed.
b-3. GUI Resource Control
Policy Manager controls the sound resources using Vehicle Info Control. Policy Manager only
issues to control the sound resources but it is actually controlled by Vehicle Info Control
directly.
There are two types of sound resource control:
One is playback control such as play, pause and stop. Policy Manger issues to play sound for
sound area owner, and if area owner was changed, then issue to stop previous playing sound
Page 39 of 159
![](media/picture141.jpeg)![](media/picture142.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
stream and to start play latest area owner.
Other one is volume control. Two or more sound streams of same zone may playback
simultaneously if each sound streams are assigned to different sound type. In this case, Policy
Manager specifies volume parameter for each sound stream. For example, if route guidance and
music playback are mixed, assign higher volume to route guidance and volume down for music
playback.
c. Input Resource
c-1. External Condition Collection
Policy Manager receives the below definition that is related with input resource.
**Figure 7-9: Definition of Input Resource**
• Device Name
Device name is identity of input device such as steering SW and microphone.
• Event Type
Event type is logical group of input event from each input device such as volumes and
temperatures.
c-2. Judgment of Priority of GUI resource
Page 40 of 159
![](media/picture143.jpeg)![](media/picture144.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
If application wants to be notified input event, it must request input event notice with device
name and event type. The request is judged whether to notify by Policy Manager using policy
DB. And Vehicle Info Control notifies input event to applications along the result of the
judgment as below.
**Figure 7-10: Definition of routing rule**
OEM special switch means product variant configuration in Figure 7-10.
c-3. GUI Resource Control
Policy Manager controls the input resources using Vehicle Info Control. Policy Manager only
issues to control the input resources but it is actually controlled by Vehicle Info Control directly.
Input resource control is to specify event target to Vehicle Info Control.
4.1.3.1.3 System Resources
(1) Definition
Policy Manager controls System resources according to external conditions. For example, Policy
Manager limits memory usage of background applications when memory shortage was occurred.
Page 41 of 159
----------------------------------------------------------------------------------------------------
| **ID** | **Role** | **Description**
---------- ----------------------------- -----------------------------------------------------------
| 1 | External condition | (1) Receives the external conditions.
|
| collection
| 3 | System resource control | 1. Issue the System resource control according
|
| to external condition change.
|
| 2. Kill process(s) forcibly according to external
|
| condition change.
----------------------------------------------------------------------------------------------------
![](media/picture145.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
Policy Manager controls System resources by using “Resource Control” of kernel layer. So,
target resources are CPU, memory, storage bandwidth and network bandwidth.
**4.1.3.2 Requirements**
4.1.3.2.1 Screen Resource
(1) External Condition Collection
System must provide a mechanism to receive the definition that is used judgment of resource
owner.
System must provide a mechanism to receive the physical display information. Because system
uses physical display information with to control surface to other system. The receive
information must include as follows.
a. ID
b. Display resolution (Vertical and horizontal number of pixels)
c. DPI
d. Connected ECU
Page 42 of 159
![](media/picture146.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
System must provide a mechanism to receive the layout definition. Layout definition must be
able to identify the all areas of display. As a result, system recognizes the available area list
according to current layout of each display.
The receive definition must include the follows.
a. ID
b. Area list
System must provide a mechanism to receive the area definition. Area is set application surface
by system if the request is accepted by system. As a result, application surface displays on the
device.
The receive request must include the follows.
a. Layout ID
b. ID
c. Area position (Coordinate of the upper-left)
d. Area size (Length \* Width)
System must provide a mechanism to receive the layout type of each display. System can specify
the available areas if layout type is defined. The receive information must include the follows.
a. Display ID
b. Layout ID
System must provide a mechanism to receive the priority rule. Because system must judge the
providing resource using it when the request is collision.
The receive information must include the follows.
a. Role
b. Priority
System must provide a mechanism to receive the vehicle status. Because system must judge
driving mode.
The receive information must include the follows.
a. Velocity
Page 43 of 159
![](media/picture147.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
b. Brake status
System should provide a mechanism to receive the vehicle status. Because system should judge
day night mode.
The receive information should include the follows.
a. The brightness of the interior
System should provide a mechanism to receive the user status. Because system should judge the
providing resource using it.
System should provide a mechanism to receive the infrastructure status. Because system should
judge the providing resource using it.
(2) Judgment of Priority of GUI Resource
System must provide a mechanism to assign resource owner to the requested resource
according to external condition. This means that system judges the providing resource.
System must provide a mechanism to receive the layer request. System allocates the physical
resource. Application must request the area on this layer if application needs to display the
resource.
The receive request must include as follows.
a. Role
b. Layer type
The receive request should include as follows.
c. Display ID
System must provide a mechanism to receive the area request. System sorts layers in order by
priority that is related with the specified role. Then system displays the application surface on
the specified area on the specified layer.
The receive request must include as follows.
a. Role
Page 44 of 159
![](media/picture148.jpeg)![](media/picture149.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
b. Layer ID
The receive request must include as follows when layer type of the specified layer is “Basic”.
Because there is a specification that the area on layer except basic type must be located on the
related basic type area.
c. Area ID
**Figure 7-11: Sequence to display**
System should provide an interface to request both screen and sound resource simultaneously.
In this request, requester should choose below options.
a.
Requester needs both screen and sound. For example, if screen resource was available,
but sound resource was occupied by other owner of higher priority, then, request should
be refused.
b.
Requester wants screen and sound resource as much as possible. For example, if screen
resource was available, but sound resource was occupied by other owner of higher
priority, then, only screen resource should be assigned to requester.
Page 45 of 159
![](media/picture150.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
System should provide a mechanism to receive the request of forcibly acquire and forcibly
release. System should be able to forcibly acquire and forcibly release request during system
running. System should raise the requested surface to the top of the display.
The receive request should include the follows in addition to the information of the normal
request.
a. Effective period (Can set unlimited)
System should not raise the other surface above its during effective period.
System should provide a mechanism to receive the request that is specified the following effect.
a. The effect at the transition
b. The effect of display surface
System must provide a mechanism to judge priority of resources. The screen resources are
sorted of priority that is related to role by system. If display has two or more layers, then all
layers will be superimposed by z-order.
System must provide a mechanism to judge visible surfaces according to vehicle running state.
System must hide the surface that has too much information.
(3) GUI Resource Control
System must provide a mechanism to issue the resource control according to judgment.
System must provide a mechanism to issue the following resource control.
a. Visible / Invisible
b. Change position
c. Raise
The receive request must include as follows.
i. Surface ID \*Only case of visible.
ii. Display ID \*Only case of visible.
iii. Layer ID \*Only case of visible.
Page 46 of 159
![](media/picture151.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
iv. Position (Coordinate of the upper-left) \*Only case of visible and change position.
v. Size (Length \* Width) \*Only case of visible.
System should provide a mechanism to set the following effect of the surface to other system.
a. The effect at the transition
b. The effect of display surface
4.1.3.2.2 Sound Resource
(1) External Condition Collection
System must provide a mechanism to receive the definition that is used judgment of resource
owner.
System must provide a mechanism to receive the zone definition. Because system uses zone
information with to control stream to other system. The receive information must include as
follows.
a. ID
b. Sound device ID
System must provide a mechanism to receive the sound type definition. Because system uses
sound type information with to control stream to other system. The receive information must
include as follows.
a. ID
(2) Judgment of Priority of GUI resource
System must provide a mechanism to assign resource owner to the requested resource
according to external condition. This means that system judges the providing resource.
System must provide a mechanism to receive the owner request. System must be able to receive
request during system running.
Page 47 of 159
![](media/picture152.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
The receive request must include as follows.
a. Role
b. Zone ID
c. Sound type ID
System should provide a mechanism to receive the request of forcibly acquire and forcibly
release. System should be able to forcibly acquire and forcibly release receive request during
system running.
The receive request should include as follows in addition to the information of the normal
request.
a. Effective period (Can set unlimited)
System must assign resource owner as requested. And system must not assign resource owner
by other request on same area during effective period.
System should provide a mechanism to receive the request that is specified the following effect.
a. The effect at the transition
b. The effect of output sound
System must provide a mechanism to judge priority of resources when there are two or more
resources on same sound type on same zone. System judges the providing resource by priority
of resources that is related to role.
\* Boundary of the role between Policy Manager and application.
Page 48 of 159
![](media/picture153.jpeg)![](media/picture154.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
Figure 7-12: Boundary of role (Case of reverse)
System should provide a mechanism to manage order of the owner request. Because system
should provide a mechanism to hold the request until the request is approved.
For example, if current playing interrupt sound completed, select the next play interrupt sound
from request history based on the priority.
(3) GUI Resource Control
System must provide a mechanism to issue the resource control according to judgment.
System must provide a mechanism to issue the following resource control.
a. Mute / Unmute
b. Change zone
The receive request must include as follows.
i. Stream ID
ii. Device
In the case of multi-channel speaker, the receive request should include as follows.
iii. Channel ID
Page 49 of 159
![](media/picture155.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
System should provide a mechanism to set the below effect of the sound to other system.
a. The effect at the transition
b. The effect of output sound
4.1.3.2.3 Input Resource
(1) External Condition Collection
System must provide a mechanism to receive the definition that is used judgment of resource
owner.
System must provide a mechanism to receive the input device information. Because system uses
input device information with to control input event to other system. The receive information
must include as follows.
a. ID
System must provide a mechanism to receive the event type definition. Because system uses
input device definition with to control input event to other system. The receive definition must
include as follows.
a. ID
b. Related event IDs
(2) Judgment of Priority of GUI resource
System must provide a mechanism to assign resource owner to the requested resource
according to external condition. This means that system judges the providing resource.
System must provide a mechanism to receive the owner request. System must be able to receive
request during system running.
The receive request must include as follows.
a. Input device ID
Page 50 of 159
![](media/picture156.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
b. Event type ID
System should provide a mechanism to judge whether to accept request according to the
limitation routing rule of policy DB.
(3) GUI Resource Control
System must provide a mechanism to issue the resource control according to judgment.
System must provide a mechanism to issue the following resource control.
a. Set the routing rule
The receive request must include as follows.
i. Input device ID
ii. Event type ID
The receive request must include either as follows.
iii. The allowed application
iv. The denied application
System should provide a mechanism to set the following information.
a. Application that has active surface
System should notify the touch event from touch panel to user operating application. This
feature is needed because there may be case that privilege application such as Homescreen
changes the active surface.
4.1.3.2.4 System Resources
(1) External Condition Collection
System must provide a mechanism to collect external conditions to be used by Policy Manager
to decide proper system resource.
Page 51 of 159
![](media/picture157.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
Policy Manager must detect creation and deletion of process.
To detect creation of process, Policy Manager can assign proper system resource to created
process.
Also, to detect deletion of process, Policy Manager can assign resources of deleted process to
other active processes.
To assign proper system resource to specific process, system must provide a mechanism to
identify process’s role. In other words, Policy Manager must recognize the purpose of each
active process.
Policy Manager must detect current memory consumption periodically.
To detect current memory consumption, Policy Manager can control maximum memory to each
process to prevent memory shortage. Also, Policy Manager may kill processes which were
thought as not so important process.
Policy Manager must detect current CPU consumption periodically.
To detect current CPU consumption, Policy Manager can control priority to each process to keep
system performance. Also, Policy Manager may kill processes which seem to be in unexpected
busy state.
System must provide a mechanism to notify application status change to Policy Manager.
Application status includes as below.
· GUI resource status, such as foreground or background.
·
Resuming last status or not. When system starts up or log-in user changes, system must
resume last status. In this case, Policy Manager should assign much resource to last
application to resume quickly as much as possible.
(2) System Resource Control
System must provide a mechanism to change assigned system resource per process or process
group according to external conditions.
According to policy based decision, Policy Manager must assign proper system resource to
target process or process group by using “Resource Control” of kernel layer. (typically cgroups
Page 52 of 159
![](media/picture158.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
will be used)
System must provide a mechanism to kill process or process group forcibly.
4.1.3.2.5 Resource Management
Resource Management shall consist of three functional components - Resource Manager, Policy
Manager, Connection Manager.
Resource Management shall provide CORBA interfaces to rest of the components in the system.
Each resource request shall be in form a:
AppID,
SourceID,
RequestorZoneID,
NeedAll Flag (to specify if all the resources need to be allocated ),
Required Resource List.
Resource Management shall be able to handle resource requests for Audio Sinks (eg: Cabin
Speakers, HeadPhones)
Resource Management shall be able to handle resource requests for Video Sinks (eg: Display)
Resource Management shall be able to handle Source arbitration (Mic, WavPlayer instances,
Tuners etc.)
Resource Management shall be able to validate all the input parameters for a resource request
from resource requestors.
Resource Management shall be able to keep track of all the available resources.
Use CCF data to identify all the resources that are possible in the system. (static identification)
Page 53 of 159
![](media/picture159.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
Use dynamic registration by the resource owners to identify what resources out of the above list
are available at a point of time in the system. (dynamic identification)
Resource Management shall inform about resource availability and unavailability in the system
through status update.
Resource Management shall support stacking/queuing of resource requests.
> Receive the requests from the resource requestors.
> Handle each request in chronological order and check for policy validation through Policy
Manager.
> Add the validated requests into a priority queue.
> Process each request from the top of the queue for establishing the connection.
> If a request is still in the pending queue and the requestor requests to withdraw the request, it
shall be removed from the queue.
Each request for resource shall be handled as an independent request irrespective of any earlier
request by the same requestor. In case of multiple resources requested in a single request, it
shall be treated as a single request and will be processed based on the request parameters.
If the NeedAll flag is set by the requestor, it shall either grant all the requested resources to the
requestor or none of them shall be granted. There shall be no partial allocation of resources.
If the NeedAll flag is not set, it shall be able to do partial allocation of resources i.e. grant
some/all of the resources requested by the requestor.
Resource Management shall provide an interface to a request owner to remove/withdraw an
existing resource request.
Resource Management shall check for every requested resource against a pre-defined set of
policies if the request can be served at this point of time or not. Below is a list of possible inputs
for the policy decision:
> Currently Free or InUse Sink status
> Who is the resource owner of the currently used sink resource (if it is in use)
Page 54 of 159
![](media/picture160.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
> Priority of the new requestor compared to the currently using requestor.
Resource Management shall use the system state as an additional input to make a decision if a
request can currently be serviced or not. Below system states can be taken as input to the
policy decision:
> Based on the speed restriction setting for a specific region, a request can be granted/kept
pending.
> Low Power Mode, Eco Mode, System errors shall also be used to make policy decisions.
At any point of time it shall maintain the following information for each ZONE for use by
resource requestor:
> Zone ID
> Allocated Source Instance
> Allocated Sink Instance
> Mute status
Resource Management shall not consider requirements to achieve a specific feature functionality
(e.g. : Lowering audio volume of rest of the sinks when a phone call is in progress) as an input to
the resource management policy.
Resource Management shall not provide support for requirements to achieve a specific feature
functionality (e.g.: Pausing a pausable source when phone call is in progress).
Resource Management shall maintain priorities for all non-entertainment sources (eg:
AMFM\_TA, PHONE\_NORMAL, NAV\_VG, etc. shall all have priorities). In case two sources have
same priority, the first requestor shall be granted a resource. In case of difference in priorities,
the highest priority resource request shall be the one that is granted the resource.
Resource Management shall maintain same priority for all entertainment sources (eg: MP, DVD,
AMFM\_NORMAL, etc. shall all have the same priority). The last received Entertainment resource
request will be the one that is granted the resource.
A valid (parameter and policy validated) resource request shall never be denied to the requestor.
It shall either be granted or kept as a pending request in the priority queue.
Page 55 of 159
![](media/picture161.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
Resource Management shall be responsible for reporting a broken resource status.
It shall be the responsibility of the resource requestor to remove the request from Resource
Manager if the resource is no longer needed.
Resource Management shall assign a sink instance (the specific instance allocated out of all
available instances of the requested sink type for a particular zone) to a resource request, once
the request is granted against the set policy.
Resource Management shall maintain connection state of an already granted connection.
Possible connection states are Active or Passive.
> When a source has the primary (master) control over a sink, the connection state will be
active.
Ex: In normal mode, a driver requesting for AMFM source to Driver HeadPhone Sink connection.
> When a source has the secondary (slave) control over a sink, the connection state will be
passive.
Ex: Driver using the AMFM source, at the same time the rear passenger requesting for same
AMFM source on Rear headphone sink.
Resource Management shall be responsible for connecting/building a new source-sink
connection using the underlying platform support.
Resource Management shall be responsible for removing/releasing an existing source-sink
connection using the underlying platform support.
Resource Management shall request to mute the audio sink before an existing connection is
removed/released.
Resource Management shall provide an interface to unmute the audio sink when a connection is
re-established and the active source is ready to use the sink for audio routing.
Resource Management shall provide an interface to unmute an audio sink.
Page 56 of 159
![](media/picture162.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
Resource Management shall inform the resource requestor when the sink is connected and ready
to be used for audio routing.
Resource requestor needs to inform the Resource Manager when they are ready to start audio
routing. This information shall be used to unmute the allocated sink.
Resource Management shall maintain the system connection table at any point of time.
Connection table contains information regarding which sink is currently allocated to which
source instance.
Resource Management shall support handling of change in behaviour based on Limo setting:
> Share the source between the Rear Seat headphone (Limo mode owner) and Cabin Speakers.
System shall support 4 ForegroundBeep sinks and 2 ForegroundSpeech sinks. 2 additional sinks
are reserved for Engine noise synthesis which is outside the scope of this document. Additionally
1 FG speech sink and 1 FG beep sink is reserved for future use by ISC.
The number of sinks supported by the system shall be configurable through LCF parameter.
Headphones shall not be required to support any foreground sinks.
In case of Foreground sources and Tuner interrupt sources, any sink that is taken away from a
source because of a high-priority interruption, need to be returned back to the previous source
(if the request from the previous source is still valid and it's the next highest priority request).
As part of requirement to improve connection handling efficiency, it shall have exceptions to not
disconnect the active connection while switching between any Tuner Source-Sink Background
connection to another Tuner Interrupt Source with same sink connection.
It shall inform Resource Manager about a errors/failure in any of the existing sinks.
It shall inform Resource Manager about a errors/failure in any of the existing sources.
Page 57 of 159
![](media/picture163.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
It shall provide the error state information about all resources to the Platform Error State
Manager.
It shall inform the resource requestors in case the request is for an erroneous or faulty sink.
It shall wait for the application manager to notify it to prepare for shutdown.
It shall interact with the data storage manager to access (read and write) persistence data.
It shall interact with the data storage manager to access CCF data.
It shall support rules/exceptions (Blacklist) that define resource allocation strategy based on
current system scenario.
E.g.: If there is a blacklist rule that says a Speech session shall not be allowed while phone call
is in progress, then even if a FG sink is available, Speech shall be denied resources and kept as a
pending request.
It shall provide an interface to receive Limo mode setting status.
It shall provide an interface to receive status when a rear-user selects to take Cabin control.
It shall use interfaces of early app to receive information if it's already using Audio/Video
resources and update its internal status accordingly.
On any change in input to the Policy Manager (system state) it shall reevaluate all active
connections and reconnect or disconnect if required.
E.g. An Amp gets disconnected, then all active connects have to be disconnected.
Once the Amp gets reconnected, the connection info shall be reevaluated and final set of
connections shall be rebuilt with Amp.
It shall provide CORBA interfaces to the Resource Manager.
Page 58 of 159
![](media/picture164.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
It shall be responsible for connecting/building a new source-sink connection using the underlying
platform support.
It shall be responsible for removing/releasing an existing source-sink connection using the
underlying platform support.
It shall request to mute the audio sink before an existing connection is removed/released.
It shall provide an interface to unmute an audio sink.
System shall support 4 ForegroundBeep sinks and 2 ForegroundSpeech sinks. 2 additional sinks
are reserved for Engine noise synthesis which is outside the scope of this document. Additionally
1 FG speech sink and 1 FG beep sink is reserved for future use by ISC.
The no. of sinks supported by the system shall be configurable through LCF parameter.
It shall inform Resource Manager about a errors/failure in any of the existing sinks.
Headphones shall not be required to support any foreground sinks.
It shall wait for the application manager to notify it to prepare for shutdown.
It shall interact with the data storage manager to access (read and write) persistence data.
It shall interact with the data storage manager to access CCF data.
**4.1.4 Sound Manager**
A sound manager is a mechanism in which a sound output demand in two or more zones from
two or more applications is arbitrated, an audio server manages control of a sound output and a
policy manager manages a mediation rule.
Page 59 of 159
----------------------------------------------------------------------------------------------------
| **No.** | **Role** | **Description**
----------- --------------------------- ------------------------------------------------------------
| 1 | Routing sound streams | To route each sound stream to proper zone(s).
| 2 | Mixing level control | Mixing two or more sound streams after volume
|
| control of each sound streams.
| 3 | Sound effect | Provide a capability of sound effect as follows,
|
| · When changing sound stream. E.g. fade-in,
|
| fade-out and cross-fade.
| 4 | Reduced dependency of | Provide well-defined interface to reduce
| |
| hardware | dependency of hardware. Well-defined interface
|
| also makes it possible to increase the effect of
|
| portability and development cost.
----------------------------------------------------------------------------------------------------
![](media/picture165.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
A zone is a place in the car divided by the purpose of output power of sound like a driver zone, a
passenger zone, and a rear seat zone. Each zone can play at the same time. Refer to "Sound
resource" of "7.1.1.2 (2) Role" of "7.1 Policy Manager" for the details of a zone.
Applications that play and capture audio via the audio server, applications that control things like
volume and routing via the audio server, and a policy manager that works with the audio server
to implement automatic audio policies.
**4.1.4.1 Use Case**
Please refer “sound resource control” of Policy Manger section.
Table 7-14 describes the role of sound manager to be satisfied above purpose and use cases.
**4.1.4.2 Requirements**
Page 60 of 159
![](media/picture166.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
4.1.4.2.1 Routing Sound Streams
System must provide a mechanism to manage sound “zone”.
Refer to "(2) Sound resource" of "7.3.1.2.2 Role" of "7.3 Policy Manager" for the details of a
zone and how to manage zone.
System must provide a mechanism to manage one or more connected sound devices, and each
channels of each sound device.
One or more sound devices are usually connected to a system, and each sound device consists
of one or more channels. And each channel outputs the sound of a monophonic recording.
For example, as for a stereo sound, a speaker is connected to each of two channels, and it is
arranged at the driver side of a car, and the passenger seat side. If a telephone call is got when
outputting stereo music from both of speakers, only the channel of a driver side needs to lower
musical volume, and needs to mix and output the sound of a telephone (to louder sound than
music). For this reason, the system needs to recognize and control each channel of each sound
device.
The system must determine the route which outputs two or more sound streams to two or more
zones.
Although the output place zone of a sound stream may change dynamically according to the
present state of vehicles and a policy manager makes the decision, sound manager requires the
mechanism in which a route is smoothly changed based on the determination of policy manager.
System must provide a mechanism to manage two or more sound zone as grouped zone.
System must provide a mechanism to do volume control for specific zone.
All the sound outputted to a certain zone is adjusted by the volume of the zone.
System must provide a mechanism to control sound stream.
Control of a sound stream is as follows.
·
Mute/unmute: System must provide a mechanism to do mute or unmute to any sound
stream.
·
Suspend/resume: System must provide a mechanism to suspend or resume to any sound
Page 61 of 159
![](media/picture167.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
stream.
Volume control: System must provide a mechanism to change volume to any sound stream.
4.1.4.2.2 Mixing Level Control
The system must offer the mechanism for arbitrating two or more sound streams outputted to
the same zone according to a policy manager's arbitration.
System must provide a mechanism to do mixing after volume control of each sound streams.
System must provide a mechanism to attenuate sound volume when other sound stream
requested to play into same sound zone.
In this case, system must also provide a mechanism to return to the volume before attenuating
the volume of a sound stream when interrupted sound stream was ended.
System must provide a mechanism to mute sound volume when other sound stream requested
to play into same sound zone.
In this case, system must also provide a mechanism to unmute sound volume when interrupted
sound stream was ended.
System must provide a mechanism to suspend sound stream playback when other sound stream
requested to play into same sound zone.
In this case, system must also provide a mechanism to resume playback when interrupted sound
stream was ended.
4.1.4.2.3 Sound Effect
When sound stream was changed, system must provide a mechanism to do sound effect.
System must provide typical sound effect such as fade in and fade out.
System must provide a mechanism to add, replace and delete sound effect easily by using plugin
architecture.
Page 62 of 159
-------------------------------------------------------------------------------------------------------------------------
| **No.** | **Input type** | **Associated device** | **Description**
----------- ------------------- -------------------------- --------------------------------------------------------------
| 1 | Key | Steering switch | Simple key event.
|
| Deliver to application.
| 2 | Keyboard | Virtual keyboard | Keyboard event.
|
| Deliver to application, then use input
|
| method backend if needed.
| 3 | Touch | Touch panel | Touch event, such as start, stop and move.
|
| Also supports double click and multi-touch
|
| capability.
|
| Deliver to application.
| 4 | Sound | Microphone | Sound input.
-------------------------------------------------------------------------------------------------------------------------
![](media/picture168.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
4.1.4.2.4 Reduced Dependency of Hardware
Sound Manager must be able to retrieve system structure regarding sound device and channels
of each device. And the system must enable addition/deletion of a sound device by the means
which does not need rebuild of systems, such as a configuration.
**4.1.5 Input Manager**
The Input Manager provides a capability to deliver input events to the proper application
depending on request from Policy Manager. Policy Manager will decide event target per each
input area. Also, the IVI system may use various car-oriented input devices such as steering
switch. Input manager provides a capability to abstract such kind of input event.
**4.1.5.1 Use Case**
Please refer “input resource control” of Policy Manger section.
---------------------------------------------------------------------------------------------------------
| **No.** | **Role** | **Description**
----------- --------------------------- -----------------------------------------------------------------
| 1 | Abstract device event | Provide capability to abstract from device event to
|
| application readable event name, such as “volume
|
| up” and “right arrow”.
| 2 | Event delivery | Provide capability to deliver input event to specified
|
| application.
---------------------------------------------------------------------------------------------------------
![](media/picture169.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
Deliver to application or voice recognition
engine.
Table 7-14 describes the role of input manager to be satisfied above purpose and use cases.
**4.1.5.2 Requirements**
**4.1.5.3 Abstract Device Event**
System must provide a mechanism to re-configuration regarding input devices without re-build.
Because, connected input devices may different by car grade, car type, destination and optional
equipment.
**4.1.5.4 Event Delivery**
System must provide a mechanism to deliver any input event to any application.
System must provide an interface to apply event delivery rule by using attribute pair “device id”
and “destination application id”.
Device id specifies a logical device name. Logical device name will link to physical device by
UIM.2.1.2.
Page 64 of 159
![](media/picture170.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
Also, system must provide a mechanism to change event delivery rule dynamically.
System must provide a mechanism to link between logical device name and physical device.
System must provide a mechanism to deliver any input event to any application depending on
delivery rule defined in UIM.2.1.1.
System must provide a mechanism to inhibit any event delivery.
This function makes it possible to restrict input event during driving mode.
**4.1.6 User Manager**
**4.1.6.1 Use Case**
**4.1.6.2 Personal Identification**
User manager provides multi-user environment. A car may be used by two or more people, and a
person may use two or more cars, by using rent-a-car, for example.
**4.1.6.3 User Preference**
Multi-user environment provides same user experience for each user.
Also, multi-user aims seamless personal data sharing not only between cars but also including
other devices such as smartphones and smart TVs. Furthermore, it will include seamless data
sharing from your home and your office.
Identify the person, and log-in to the IVI system as a specified user. Personal identify may be
provided by traditional user name and password pair, smart key or biometrics.
Once a user has logged-in to IVI system, IVI system should provide personalized user
experience. For example, Bob uses English, but Alice uses French. Also, Bob likes rock-music,
*but Alice likes classic-music. In this case, English and rock-music should be selected when B*ob is
Page 65 of 159
![](media/picture171.jpeg)![](media/picture172.jpeg)![](media/picture173.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
logged-in, and Japanese and classic-music should be selected when Alice is logged-in.
**Figure 7-24 : Provide Logged-in User’s UE (User Experience)**
**4.1.6.4 Rent-a-car and/or Replacing a Car**
When Bob uses a rent-a-car, same preference should be adapted as if he rode his own car. If
Bob’s preference was stored in a cloud, then this can be supported. However, security is
important in this scenario. For example, Bob must not be able to access to other user’s
preference.
**Figure 7-25 : User data sharing between cars**
Page 66 of 159
![](media/picture174.jpeg)![](media/picture175.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
**4.1.6.5 Seamless Data Sharing**
Cloud-based user data syncing will enable seamless data sharing between IVI systems and
smart-phones, home networks and accessing from your offices.
**Figure 7-26 : User data sharing over the cars**
**4.1.6.6 Role**
**Error! Reference source not found.** describes the role of the User Manager to satisfy the above
purpose and use cases.
**Table 7-17 : Role of User Manager**
**No.** **Role** **Description**
Page 67 of 159
![](media/picture176.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
1 User identification
Provide a mechanism to identify user, such as user
name and password pair, smart key and biometrics.
Provide a mechanism to log-in to the IVI system as
a specified user.
When a different user logs in, proper user
preference for the user must be applied, and
resume last state of corresponding user.
Also, each application can store application’s data
per user. In such cases, proper user data must be
applied when a different user logs in.
2 User preference
Provide a mechanism to apply user preference of
logged-in user.
User preference includes the following data.
· User interface, such as locale and wall-
paper.
· Resume last application’s status of specified
user.
· Application specific data.
3 User data management
Provide a mechanism to manage cloud based user
data.
The following capabilities are required.
· Download user data of the logged-in user
from the cloud.
· Update cloud data if the user data was
updated by user operation or otherwise.
· Periodically sync-up w/ cloud because user
data may be updated by other devices.
In addition to the above basic capabilities, user data
cache is essential for a car, since a car may not
always have a reliable network connection.
4 Security Because cloud based sharing user data may be
accessed from any place, user data must be
protected from unexpected data access.
Page 68 of 159
![](media/picture177.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
So, IVI system must provide security mechanism
regarding accessing to cloud based user data.
**4.1.6.7 Requirements**
4.1.6.7.1 User Identification
System must provide a mechanism to identify logged-in user.
System must provide a mechanism to enter user name and password, and verify password to
identify logged-in user.
System should provide a mechanism to read smart key attribute to identify logged-in user. For
example, using NFC.
System should provide a mechanism to identify logged-in user by using biometrics.
4.1.6.7.2 User Preference
When a logged-in user is identified, system must apply user preference depending on the
currently logged-in user.
System must provide a mechanism to apply personalized user experience as follows.
- Locale settings
- UX theme
Wall paper
System must provide an easy mechanism to add plugin function and/or attribute of personalized
user experience.
Page 69 of 159
![](media/picture178.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
System must provide a mechanism to switch application data per user, and apply logged-in
user’s application data automatically.
When user is identified and logged-in, the system must apply last status of logged-in user. Last
status refers to the status of the system as the current logged-in user has last logged-out of the
system. Specifically, last status includes the following.
- Foreground applications. That means displayed applications.
Background applications.
When user logs in for the first time, the system must apply user preference for new log-in user.
System must provide a mechanism to apply default preference attributes for new log-in user.
System must provide default preference attributes and HMI to apply for first time log-in user.
4.1.6.7.3 User Data Management
System must provide a mechanism to manage user data.
AGL defines “user data” as a general term which includes all the data necessary to realize user
preference.
User data shall be stored in the cloud. The cloud provides user data not only to IVI systems but
also other systems and/or devices such as smartphones, Home-PCs, business-PCs, HEMS and
home electronics.
System must provide a mechanism to apply user preference and to supply user data to
application by using cloud based user data.
System must provide a mechanism to download cloud based user data and apply it as user data
of the IVI system.
When user data is updated in the IVI system, then the system must upload updated user data to
the cloud.
Also, since other device or system may update shared user data elsewhere, system must provide
Page 70 of 159
![](media/picture179.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
a mechanism to sync with the cloud periodically to keep user data in the IVI system up-to-date.
Because the IVI system is not necessarily connected to a network, the system must provide a
mechanism to cache downloaded user data.
If the IVI system re-connected to a network, system must sync with the cloud as soon as
possible.
4.1.6.7.4 Security
Because user data may include personal information, system must provide a mechanism to
protect user data from risks including but not limited to leakage, tampering and theft.
System must provide a mechanism to protect user data when accessing to the cloud.
-
System must authenticate communication entity. In other words, IVI system must
authenticate cloud server, and cloud server must authenticate client such as IVI system,
smartphone or PC.
-
System must provide a mechanism to encrypt transported data via a network.
-
System must provide a mechanism to transport data via a network with protection
against falsification of data from unauthorized access or illegal access.
-
Cloud server must provide a mechanism to authenticate individual user, and provide
user data only to the authorized user.
Because, two or more user’s user data may be stored in IVI system as a cache, system must
provide a mechanism to protect cache data from other users. The protection of cached data to
include not only the current multi-user environment risk, but also the risk of attacks against
cached data. In other words, only logged-in user’s cache data can be accessed.
4.2 Web HMI
Web based HMI. Contains applications, web runtime environment, and web-based home screen.
**4.2.1 Web API**
Page 71 of 159
![](media/picture180.jpeg)![](media/picture181.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
It is discussed that HMI parts of IVI system will be developed using HTML5. APIs to use service
function in IVI system from web applications is needed. Audio Visual API provides APIs for audio
visual equipment control to web applications. (e.g. Media files on storage, CD, DVD, BT-Audio,
Photo, etc.)
Web applications use Audio Visual API to play audio visual contents on IVI system. Use case of
Audio Visual API is shown in Figure 6-1.
**Figure 6-1: Use case of Audio Visual API**
**4.2.1.1 Requirements**
Audio Visual API must provide API to select Audio Visual contents.
· Select content using URL
·
Select content using contents list provided by multimedia subsystem
Page 72 of 159
![](media/picture182.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
Audio Visual API must provide API to playback Audio Visual contents. (Media file on storage, CD,
DVD, BT-Audio, Photo, etc.)
· Play
· Pause
· Fast-forward
· Rewind
· Track up
· Track down
· Select playmode (Repeat/Random)
Audio Visual API must provide API to control a volume.
· Volume up
· Volume down
· Mute
Audio Visual API must provide API for metadata access about Audio Visual contents.
Audio Visual API must provide API for notifications.
· The case that playback state is changed
· The case that Audio Visual contents is add / removed
Audio Visual API must provide API to play AM/FM radio.
· Change the frequency.
· Change the broadcasting stations.
· Receive the list of broadcasting stations.
· Select the preset channel.
· Get the information of the broadcasting station.
Audio Visual API must provide API to play digital radio.
· Store the broadcast program information.
Page 73 of 159
![](media/picture183.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
· Get the broadcast program information.
· Get the play time.
· Play the radio broadcast cached.
AGL System must support a web API to access Vehicle information.
AGL System must support web API to control STT/TTS daemon.
AGL System must support web API to control navi engine.
AGL System needs to provide a Web API to allow peer to peer communication between two web
apps.
AGL System needs to provide an API to allow peer to peer communication between a web app
and a native app.
AGL System must support access control over app to app communications. Service provider
should be able to restrict subscriber.
AGL System must support W3C/HTML5 DOM, Forms and Styles.
AGL System must support W3C/HTML5 Device APIs: Touch Events, Device Orientation,
Network Information
AGL System must support W3C/HTML5 Graphics APIs: canvas, canvas 2D context, and SVG
AGL System must support W3C/HTML5 Media: audio and video tags, user media and web audio
AGL System must support W3C/HTML5 Communication APIs: websocket, web messaging,
server sent events, session history of browsing context
*AGL System must support W3C/HTML5 Storage APIs: Web storage, File, Database, Web S*QL
Page 74 of 159
![](media/picture184.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
AGL System must support W3C/HTML5 Security APIs: Cross-Origin Resource Sharing, HTML5
The iframe element, Content Security Policy 1.0.
AGL System must support W3C/HTML5 UI APIs: Clipboard, DnD, Web Notifications
AGL System must support W3C/HTML5 Performance APIs: Web workers, Page Visibility, Timing
control, Navigation timing
AGL System must support W3C/HTML5 Location API: Geolocation
AGL System must support W3C/HTML5 Widget: Widget Packaging and XML Configuration,
Widget Interface, XML Digital Signatures for Widgets, Widget Access Request Policy
AGL System must support Khronos WebGL API.
**4.2.2 Web Runtime**
The Web Runtime module contains the bindings for the Web Application Framework to access
the AGL Application Framework and Services.
**4.2.2.1 Requirements**
AGL system Web Runtime shall provide full web application lifecycle management (e.g.,
installation/removal).
AGL System Web Runtime shall provide full execution environment for web apps (i.e., launch,
view generation, rendering, etc.)
AGL system Web Runtime shall provide a mechanism to implement plugins/extensions to add
better device/platform integration.
Page 75 of 159
![](media/picture185.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
AGL system Web Runtime shall provide a mechanism to manage apps' access control and also to
categorize apps with different privileges.
System must provide high level GUI components for Web application.
At least, below components are required.
· Text labels
· Button
· Radio button
· Check box
· Tab panel
· Animation (e.g. MNG, GIF animation)
· Slider
· Accordion list
· Anchor
· Text input form
· Dropdown list box
· Date picker
4.3 Native HMI
The Native HMI provides an application framework for those applications that are not written
using Javascript or other web technologies.
**4.3.1 Native App Runtime**
The Native Runtime module contains the bindings for the Native Application Framework to
access the AGL Application Framework and Services.
**4.3.1.1 Requirements**
System must provide high level GUI components for native application.
Page 76 of 159
![](media/picture186.jpeg)Automotive Grade Linux Requirements Spec v1.0
May 28, 2015
At least, below components are required.
· Text labels
· Button
· Radio button
· Check box
· Tab panel
· Animation (e.g. MNG, GIF animation)
· Slider
· Accordion list
· Anchor
· Text input form
· Dropdown list box
· Date picker
**4.3.2 Native Application Framework**
The platform can support multiple application frameworks any of which may be built into an
SDK or product build. The application framework contains any code specifically written for that
framework as well the bindings to the Services and Operating Systems layers that the
application framework provides for its applications.
|