Android-based car entertainment system architecture

introduction

This article refers to the address: http://

The automotive electronics industry has huge market potential as car owners expect some of the applications they use on their phones to run directly on their private cars. But at the same time, it also faces many challenges. In-vehicle electronics manufacturers need to meet the requirements of different car models, and even different models of the same brand often need different customization. Today's car owners want to be able to install or remove applications as they would with a smartphone. To port the software used on the phone to the in-vehicle electronic system, developers must face the daunt of having to run a third-party application in an isolated environment to prevent interference with other in-vehicle functional modules. And threats that may cause the owner to leak information. At the same time, third-party applications must be effectively integrated with other in-vehicle systems to provide a more user-friendly experience for users. Finally, third-party software developers must develop a common platform for the common features of in-vehicle systems to facilitate porting by different car manufacturers, and to enable the same application to be seamlessly used on different brands of cars.

This article is an innovative extension to Google's Android system application, which isolates third-party applications and gives trusted third-party applications access to the automotive functional software layer, enhancing security against car security.

1 Background knowledge

People intuitively feel that the consumer electronics inside the car seems to provide functions similar to those of smart phones, PDAs, and MP3s, but because they are inevitably in contact with other functional modules of the car, car entertainment electronics are more expensive than other consumer electronics. complex. Under normal circumstances, most of the application software on the car is solidified by the manufacturer at the time of automobile production. They are generally scrapped with the scrapping of the car, so the life cycle is generally 5 to 10 times that of the mobile phone or MP3. This requires in-vehicle electronics design companies to support long-term upgrades to their factory-installed applications. However, due to the rapid replacement of electronic products, software upgrades alone have greatly increased costs.

Last year, the GENIVI Alliance held a conference with a number of auto giants, chip design giants, and software development companies to discuss how to establish a standard open development platform for in-vehicle electronic products. GENIVI proposes to develop a scalable architecture that may be applied to the next generation of automotive electronics. It needs to work in the following areas:

1 By adding seamless software patches and plug-ins from the open source community and professional software development alliances, it is possible to add more content and features, and always consider the security and reliability of the system.

2 Increase the personal enjoyment of the owners and passengers, and try to make it more cost-effective, and strive to reduce equipment costs.

GENIVI's software architecture leverages Intel's Moblin platform as a framework to meet specific automotive needs and usage by adding or removing components. Support for user-defined installation applications is being discussed, and many of the platforms available for negotiation are under negotiation, and Google's Android system is one of them.

It should be emphasized that the automotive electronic hardware devices (network-specific devices on the CAN bus) currently supported by GENIVI and Moblin are currently not implemented on Android. However, due to Android's strong support for open source, allowing users to install and uninstall terminal programs, Moblin has not yet licensed these features.

2 Google Android

At the end of 2007, at the Open Handset Alliance Conference hosted by Google, a completely free and open mobile phone platform was born, with the goal of extending to a wider range of hardware devices. The basic feature of Google Android is its openness. Free SDK source developers can easily download it. Google's appeal and Android's open source quickly prompted the formation of the developer community.

Android is a development platform primarily for mobile devices that includes a system kernel, middle-tier and underlying drivers, and some bundled applications. The entire project is licensed under the Apache License Version 2, so mobile operators, software companies, and any developer can add or remove features. According to the 2.0 sample protocol, sharing applications is possible even if it is not a content provider. The platform allows some secondary developers to add new features or applications to their needs, so it's easy to develop rich end-to-end applications.

2.1 Structure Overview

The Android system architecture consists of five parts: the Linux kernel, library functions, Android runtime, application framework, and applications.
At the bottom of the linear architecture is the Linux kernel, which is basically the Linux 2.6.27 version. The Linux kernel is used to update patches for Android. The kernel is responsible for managing system service programs and driver modules, memory management, and task scheduling. The root file system uses rootfs, while the data and files use YAFFS, which is a file system designed specifically for NAND and NOR memory.

The application framework and Android runtime tense mainly through the C/C++ library, which includes standard C libraries, multimedia libraries, graphical interface libraries, browsers, font libraries, and databases.

The Android running state includes the core library and the Java Dalvik virtual machine. Dalvik is a virtual machine that allows multiple processes to run on a limited amount of memory. Each program runs in a separate Linux process.

The application framework consists of many classes, interfaces, and packages. Its purpose is to provide a simple, continuous way to manage graphical user interfaces, access resource memory, receive notifications, or handle incoming calls. The main components are visual system, activity class management, sharing management, resource management, Notification management, telephone management.

2.2 Security

Android internal process communication and security mainly refers to ensuring the stability of the system as much as possible when installing third-party applications. The underlying licensing mechanism is provided by the Linux kernel and file system, and basically satisfies other systems based on the Linux kernel. Since the Android device is for a single user, the multi-user service device can be applied by assigning a unique identifier.

In addition, Android is a static security licensing system that is enforced when the program is installed.

2.3 Interprocess communication

Android has two models for interprocess communication: intent and code binding. The intent class framework provides upper-level interprocess communication, which is the best way to dynamically exploit the SDK package for development and bind to the upper application. The intent class contains several fields that describe the caller's true intent. The caller sends the intent to the Android intent parser. The And-roid system will select the most suitable activity for the intent from all the applications through the intent filter. class. The intent field contains the expected processing methods, classes, and data characters, MIME types of the data.
The intent can be used to trigger activities, send data to the broadcast and start the corresponding service. Security restrictions are mainly achieved through the permission framework class provided by the Android system.

Each program runs in its own process, but the developer can write a service to run in a different process, and some objects are allowed to pass between processes. On the Android platform, a process usually cannot access other process memory. Therefore, if two processes communicate with each other, they need to decompose their objects into basic types that the operating system can recognize, and control the objects through the boundaries of the process. The AIDL tool with SDK automatically generates control code segments, and AIDL is an interface description language used to generate communication code between two processes. The AIDL IPC mechanism uses a proxy class to pass parameters on both the client and the implementation side.

3 Android application in an architecture of car electronics

Android extends the overall structure of the car. The basic architecture is shown in Figure 1. The custom Android platform is applied on one side of the car's functional modules and supporting components. The purpose of this extension is to provide a security mechanism that allows trusted applications to access automotive function modules (vehicle braking, steering, or electric drive distribution) that are not trusted and are not accessible. This mandatory security policy between applications is an IVI system that derives from reliability requirements. Trusted applications through car management have the opportunity to access some features (CAN bus), but improper handling can also jeopardize vehicle safety (eg, by continuously transmitting invalid data frames to saturate the CAN bus bandwidth). The main feature of this scheme is to decouple the upper logic, so that the upper application can easily acquire and process the underlying data.

3.1 Automotive Management Module

As can be seen from the above figure, the car management module can be regarded as an intermediate class library responsible for the interaction between the in-vehicle application and the underlying Android. Only through this, the in-vehicle application can obtain the corresponding underlying data.

It has two interfaces: one for the application and one for the platform. It is an application developed on the Android SDK and with platform certification. Because this management class is not part of the platform itself, users cannot update themselves without the help of a professional.

3.2 Interaction with the application

Android is based on a communication model between opaque IPCs. The application passes its functionality to the operating system, and at runtime, other applications can get their functionality. Basically, the platform provides the ability to manage and maintain code later, and this model can also be used to interact between third-party applications and car management classes.

Car management class handles car function modules via properties android. Permission. Car. Speed. Read and android. Permission. Car. Speed. Write. For each property (such as the car bus sending real-time speed), Android provides two permissions, created and assigned to the management class.

With a predefined level of security, it can specify different security levels with the following permissions:

1 all. Anyone can access the app 2 normally. Access is determined by permissions, but some application permissions do not specify the permissions; after the program is installed, permissions are manually set.
3 danger. When access is restricted, the user must have an exhaustive security license when installing.
4 signature. Access is restricted, and as long as the application is certified by the platform, the permissions are automatically agreed.
Platform certification is the signing platform used by car designers in the development and design process. It is also used to sign car management classes. If a third party applies for this certificate, it has full control over the car extension (in fact, the car management class is just an application that signs the application platform certificate). The car functions defined by the following attributes can be accessed through the high-level AIDL interface:

1.jpg

This way of reading/writing allows access to the value of an attribute via input/output. By adding or removing a listener method to allow registration or cancellation of the relevant callback function, the attribute value of the notification can be changed. The car management class inherits this interface. The personal phone is verified by the Android privilege related attribute. If the caller is allowed to execute, the car management process will automatically process it, otherwise an exception will be thrown.
When developing an application, developers need to know their property names and the type of data to be able to develop third-party applications. And all interactions occur on the previous AIDL interface. This means that, thanks to the architecture of the Android system, developers do not need to know the entire SDK, but only know the phone attributes defined by the AIDL file and the callback function described by the AIDL file. Moreover, if different IVIs come from different manufacturers but have the same attribute functionality, third-party applications can use such attributes to run seamlessly on IVI.

In order to verify the practicability of the above architecture, a working module that implements full functionality has been developed, consisting of a proof of concept for a custom Android distribution. The module has been tested with the Andr-oid simulator, based on the ARM processor, the typical features of the custom mode and the user interface on the IVI, and runs on a netbook with an Intel Atom processor.

Conclusion

This article outlines the relevant knowledge of the car electronic system, and introduces the background knowledge of Google Android system; designs an in-vehicle electronic scalable platform based on Android architecture to meet the needs of personalized car development. The next step is to boot the system on custom hardware and get real-time car data.

An Audio Cable, referred to as an audio cable, is used to transmit electrical acoustic signals or data. Broadly speaking, there are two major categories of electrical signals and optical signals. The line that the audio cable uses to spread the sound. It consists of two parts: the audio cable and the connector. The audio cable is usually a two-core Shielded Cable. The common connectors are RCA (commonly known as lotus head), XLR (commonly known as card head), and TRS JACKS (commonly known as plug head).

Chinese name

Audio Line
effect
Used to transmit electroacoustic signals or data
Generalized classification
Electrical and optical signals
composition
Audio cable and connector
 
Full name
Audio cable
connection method
Balanced connection, unbalanced connection
classification
Audio electric signal cable, audio optical signal cable

Audio Cable

Audio Cable,Optical Audio Cable,Digital Optical Audio Cable,Rca Audio Cable

Jiangsu QiSheng Cable Co., Ltd. , https://www.shuaihe-cable.com