Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Rim KHAZHIN
whoami
Rim KHAZHIN
Rim KHAZHIN
optimization
developing mobile device management for 15 million devices
Rim KHAZHIN
Rim KHAZHIN
in two words:
restricts
controls
Rim KHAZHIN
Fatih project
Rim KHAZHIN
Rim KHAZHIN
design
MDM is an app
protect MDM
undetectable, unstoppable, unremovable
prevent rooting
detect if rooted
developing mobile device management for 15 million devices
Rim KHAZHIN
Rim KHAZHIN
Rim KHAZHIN
Rim KHAZHIN
Rim KHAZHIN
Rim KHAZHIN
if permission removed!
DeviceAdminReceiver.onDisabled()
disable accounts
show warning
notify system administrator
Rim KHAZHIN
Rim KHAZHIN
custom launcher
an application
device home screen
lists and launches other apps
keyword: lists and launches
Rim KHAZHIN
Rim KHAZHIN
developing a launcher
Intent filter
<intent-filter>
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
full-screen app
<activity
android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"
Rim KHAZHIN
Rim KHAZHIN
application management
launch apps
Rim KHAZHIN
application management
installing apps
Intent promptInstall = new Intent(Intent.ACTION_VIEW)
.setDataAndType(Uri.parse("file:///RestaurantMenu.apk"),
"application/vnd.android.package-archive");
deleting apps
Intent intent = new Intent(Intent.ACTION_DELETE);
intent.setData(Uri.parse("package:com.facebook.messenger"));
Rim KHAZHIN
Rim KHAZHIN
hard-core Android
unremovable
system application
undetectable
core application
Rim KHAZHIN
PPID
0
0
1
1
157
157
157
157
157
VSIZE RSS
888
740
0
0
883620 45152
4712
1048
920240 31748
896776 21828
903968 29880
954192 33456
905620 25408
NAME
/init
kthreadd
zygote
/system/bin/keystore
com.android.phone
com.mediatek.bluetooth
com.btt.mdm
com.android.launcher3
com.android.contacts
Rim KHAZHIN
core application
use system privileges
developing mobile device management for 15 million devices
Rim KHAZHIN
permissions
<permission android:protectionLevel=["normal" | "dangerous" |
"signature" | "signatureOrSystem"] />
"signatureOrSystem" A permission that the system grants only to
applications that are in the Android system image or that are signed
with the same certificate as the application that declared the
permission.
Rim KHAZHIN
System permission
put app to system ROM
/system/app/
Signature permission:
sign the app with platform key
developing mobile device management for 15 million devices
Rim KHAZHIN
Rim KHAZHIN
Rim KHAZHIN
reverse-engineer Android
android source
http://source.android.com/source/building.html
Rim KHAZHIN
camera control
SystemProperties.set(SYSTEM_PROP_DISABLE_CAMERA, value);
bluetooth control
BluetoothAdapter mBluetoothAdapter =
BluetoothAdapter.getDefaultAdapter();
mBluetoothAdapter.disable();
developing mobile device management for 15 million devices
Rim KHAZHIN
these functions:
undocumented
hidden
unavailable
modify kernel-level params
Rim KHAZHIN
Rim KHAZHIN
Rim KHAZHIN
MDM API
Hardware control
Application management
Install application (silent)
Remove application (silent)
Rim KHAZHIN
procedure
Rim KHAZHIN
scaling
app requirements
low battery
low bandwidth
low latency
Rim KHAZHIN
Rim KHAZHIN
server side
memory
CPU
network bandwidth
example: 15 million devices sending 1KB each
Rim KHAZHIN
how to reduce?
few requests
small packets
Google spdy protocol
faster!
great for poor network!
developing mobile device management for 15 million devices
Rim KHAZHIN
Rim KHAZHIN
Rim KHAZHIN
Rim KHAZHIN
server optimization
microservices
Rim KHAZHIN
microservice workflow
Rim KHAZHIN
background services
Rim KHAZHIN
database optimization
stored procedures
speed
security
business logic
Rim KHAZHIN
Rim KHAZHIN
testing is important!
Rim KHAZHIN
conclusion
android administration
scaling
optimization
don't over-engineer!
release the app
developing mobile device management for 15 million devices
Rim KHAZHIN
questions?
http://google.com/+RimKhazhin
Rim KHAZHIN