Structure of An Android App Binary

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

https://developer.android.

com/guide/topics/permissions/overview
Android categorizes permissions into different types, including install-time permissions,
runtime permissions, and special permissions. Each permission's type indicates the scope
of restricted data that your app can access, and the scope of restricted actions that your app
can perform, when the system grants your app that permission.

Install-time permissions give your app limited access to restricted data, and they allow your
app to perform restricted actions that minimally affect the system or other apps. When you
declare install-time permissions in your app, the system automatically grants your app the
permissions when the user installs your app. Android includes several sub-types of install-
time permissions, including normal permissions and signature permissions.
Runtime permissions, also known as dangerous permissions, give your app additional
access to restricted data, and they allow your app to perform restricted actions that more
substantially affect the system and other apps. Therefore, you need to request runtime
permissions in your app before you can access the restricted data or perform restricted
actions. When your app requests a runtime permission, the system presents a runtime
permission prompt, as allow or deny.

Two Security features of Android


https://source.android.com/security/features
They are many features of Android that provides security to Android users. They include App
Signing, Authentication, Biometrics, Encryption, Keystore, Security Enhanced Linux, Trusty
Trusted Execution Environment (TTE), Verified Boot.
Encryption
Once a device is encrypted, all user-created data is automatically encrypted before
committing it to disk and all reads automatically decrypt data before returning it to the
calling process. Encryption ensures that even if an unauthorized party tries to access the
data, they won’t be able to read it.
Verified Boot
Verified Boot strives to ensure all executed code comes from a trusted source (usually
device OEMs), rather than from an attacker or corruption. It establishes a full chain of trust,
starting from a hardware-protected root of trust to the bootloader, to the boot partition and
other verified partitions.

Cloaking in Android Applications


Cloaking is a black hat SEO technique, in which web page visible to search engine spider is
totally different from the one visible to a regular user. This type of technique is practiced in
order to improve search engine rankings, if a site gets caught practicing cloaking; it will be
penalized by search engines. There have been instances, where users have been tricked, and
the sites visited had deviating information, which was way different from the search engines
description, including pornographic content cloaked to non-pornographic search results.
This gathered customer complaints to search engines, hampering user experience.

Static analysis relies on features extracted without executing code, while dynamic analysis
extracts features based on code execution (or emulation). In general, static analysis is more
efficient, while static analysis is often more informative, particularly in cases of highly
obfuscated code. Static analysis of an Android application can rely on features extracted
from the manifest file or the Java bytecode, while dynamic analysis of Android applications
can deal with features involving dynamic code loading and system calls that are collected
while the application is running.

As obfuscation techniques become more sophisticated, static analysis can be bypassed by


various obfuscation techniques, such as polymorphism, encryption, or packing

You might also like