Mobile Software Engineering I - Unit 2 Flashcards
(29 cards)
What general layers exist in the Android architecture?
- applications
- Java application framework
- android runtime / system libraries
- hardware abstraction layer
- linux kernel
- hardware layer
What is a kernel?
The software that creates the environment on which all applications will later run on.
What environmental features does the linux kernel provide?
- virtual execution space
- file system
What are Wakelocks in regard to Android? How do they operate?
A method to control if the device will stay “awake” or will “sleep”. Wakelocks provide a flag value. The kernel constantly tries to “sleep”, however a true wakelock flag will prevent this.
What are some alternatives to wakelocks in Android?
- download manager
- sync adapters
- job scheduler
- firebase cloud messaging
- companion device manager
What is Binder in regard to Android?
An inter-process communication that manages the way that the Android system handles memory pressure and wakelocks.
What does the ashmem module do in the Android kernel?
Allows unrelated processes to share memory.
What are the purposes of the hardware abstraction layer?
- layer of native code inbetween the Java code and the driver code
- abstraction layer for the device’s functionalities
- allows over-the-air updates
What is the main purpose of the android runtime environment?
To convert code from high-level languages into binary or machine code.
What features does the android runtime environment offer over its predecessor Dalvik?
- ahead-of-time compilation
- garbage collection
- debugging improvements
What are some examples of native C or C++ libraries included in the Android architecture?
- OpenGL
- WebKit
- media frameworks
- SSL
- SQLite
What primary examples of building blocks in the Java API Framework for Android exist?
- view system
- notification manager
- location manager
- activity manager
- content providers
- resource manager
- core
Within the Android stack, where are security measures implemented?
In each layer.
What main categories of security issues exist in the Android stack?
- hardware
- operational
- application
What is the concept of verified boot?
Ensuring that the kernel and android system are loaded from a secure location.
What is the StrongBox Keymaster in Android?
A hardware security module, implemented in tamper-resistant hardware to handle cryptographic keys.
What is the concept of application sandboxing?
Applications are loaded and executed in their own process, with individual memory space and a section of the file system they can access. They are isolated from other processes that are simultaneously running.
What does SE Linux define that improved the security of Android?
Security Enhanced Linux determines a set of policies with enforcement rules.
What are the main cryptographic components in the Android system?
-
KeyStore
: storage for cryptographic certificates and keys applicable to specific modules -
KeyChain
: storage for credentials applicable to the entire system
What is the meaning of the following security recommendations as it pertains to Android:
- control permissions given to apps
- use Google Play Protect
- enforce safe browsing
- two-factor authentication
- screen lock and smart lock
- location settings
- encryption
- software update
- unsecure connections
- additional security
- control permissions given to apps
- use Google Play Protect: scans phone for misbehaving or malicious apps
- enforce safe browsing: gives the user a warning when materials from a suspicious website are downloaded or opened
- two-factor authentication
- screen lock and smart lock: smart lock allows the device to remain unlocked in trusted situations or places
- location settings
- encryption
- software update
- unsecure connections
- additional security
What are the most important features of Google Play Protect?
- scanning apps installed from Google Play
- erasing remote location or device data
- warning about suspicious websites
- continuous monitoring of applications
What important security considerations exist when communicating through a network?
- minimize transmission of sensitive data
- set restrictions (only trust certain certificate authorities)
- use SSL
What Android class controls the connectivity to different networks?
ConnectivityManager
What different states can exist in the ConnectivityManager
in regard to network state?
- connected
- connecting
- disconnected
- disconnecting