Android 平台的开发策略
鍾文昌 (Mask)
时间: (50min)
地點:北京.2012移动开发者大会
Copyright 2009 - 2012 鍾文昌 All rights reserved.
License Announcement
• All reference data followed by its original
license
3
4
XScale
2006
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Agenda
• Android平台的开发策略
• Hacking for Fun
6
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Agenda
• Android平台的开发策略
• Hacking for Fun
7
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Android架构
8
Slides from "Android Anatomy and Physiology“, Patrick Brady ©
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Android架构概观
9
Application
Middleware
Kernel
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Linux Architecture
10
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Android Architecture
!
11
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Code Flow
!
12
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Android架构剖析
13
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Android架构剖析
硬件平台
库函数
应用开发
14
Copyright 2009 - 2012 鍾文昌 All rights reserved.
硬件平台
硬件平台
15
Copyright 2009 - 2012 鍾文昌 All rights reserved.
库函數
!
库函数
16
Copyright 2009 - 2012 鍾文昌 All rights reserved.
应用开发
!
应用开发
17
Copyright 2009 - 2012 鍾文昌 All rights reserved.
手机制造商的开发策
略
• Google的態度
• 市场
• 技术
• 升級更新
18
Copyright 2009 - 2012 鍾文昌 All rights reserved.
手机制造商
• 品牌商
• 代工
• 山寨
19
Copyright 2009 - 2012 鍾文昌 All rights reserved.
获利机会
• 零组件
• 纯软件开发
• 软件+硬件
20
Copyright 2009 - 2012 鍾文昌 All rights reserved.
未来的明星产业
• 行动医疗
• 智能家庭
• 智能车载
21
Copyright 2009 - 2012 鍾文昌 All rights reserved.
讨论议题
• 多核心
• 安全性
• 硬件加速
• 省电
• HTML5
22
Copyright 2009 - 2012 鍾文昌 All rights reserved.
中国程序员
• 浮躁
• Free your mind
23
Copyright 2009 - 2012 鍾文昌 All rights reserved.
技术重点
• 软硬整合
• 云与端
24
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Agenda
• Android平台的開發策略
• Hacking for Fun
25
Just for Fun
Free Your Mind & Crazy Hacking
26
I know nothing for Android
How do I hack ?
27
Thinking...
The incredible hacking always
from the thinking...
28
Copyright 2009 - 2012 鍾文昌 All rights
How ARM Works
• arm-none-linux-gnueabi-gcc -S
• more
Copyright 2009 - 2012 鍾文昌 All rights
How JNI Works
• ...
Copyright 2009 - 2012 鍾文昌 All rights
What Do I Want
• Reverse(disassemble) .apk
• Code modification/injection
• Re-pack(assemble) to .apk
• Execute .apk
Copyright 2009 - 2012 鍾文昌 All rights
Copyright 2009 - 2012 鍾文昌 All rights reserved.
应用开发
33
Java
resource
xml
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Android Application
34
Java
resource
xml
.apk
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Android Project
35
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Building & Running
36
Copyright 2009 - 2012 鍾文昌 All rights
Sign
ZipAlign
Copyright 2009 - 2012 鍾文昌 All rights
Copyright 2009 - 2012 鍾文昌 All rights
Copyright 2009 - 2012 鍾文昌 All rights reserved.
• 補一張level 1
• uninstall
40
Copyright 2009 - 2012 鍾文昌 All rights
Copyright 2009 - 2012 鍾文昌 All rights
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Tools
• apktool
•
apktool/
• smali / baksmali (assemble/disassemble)
•
43
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Dalvik Opcodes
• nop
• move vx,vy
• return vx
• const vx, lit32
• filled-new-array {parameters},type_id
• iget vx, vy, field_id
• iput vx,vy, field_id
• invoke-virtual { parameters }, methodtocall
• invoke-direct { parameters }, methodtocall
44
Copyright 2009 - 2012 鍾文昌 All rights
reverse
re-pack
Copyright 2009 - 2012 鍾文昌 All rights reserved.
• Dalvik registers operated as local variables
• Each method has a fresh set of registers
46
Copyright 2009 - 2012 鍾文昌 All rights
Copyright 2009 - 2012 鍾文昌 All rights
Copyright 2009 - 2012 鍾文昌 All rights
Copyright 2009 - 2012 鍾文昌 All rights
Copyright 2009 - 2012 鍾文昌 All rights
Puts the 4 bit constant into v3
Move the object reference in v26 to v0
Invokes interface method using
parameters in v0,v2,v3Move the return value of a previous method invocation into p4
Instantiates an object and
puts its reference into v2
Moves p4 into v1
Invoke the constructor of LevleManager
Puts the object reference in v2 into LevelManager:mLevelManager. The
LevelManager instance is referenced by v0
Copyright 2009 - 2012 鍾文昌 All rights
Copyright 2009 - 2012 鍾文昌 All rights
Copyright 2009 - 2012 鍾文昌 All rights
Before After
Copyright 2009 - 2012 鍾文昌 All rights
Before
After
Copyright 2009 - 2012 鍾文昌 All rights reserved.
Reference
•
•
•
•
•
•
•
56
Q & A
57