I am interested in applying program analysis for automated testing, bug finding, security checking and optimization for mobile applications and systems. I am also interested in optimizing the throughput for distributed storage and distributed computing services. I received my Ph.D. from McGill University and my bachelor degree from Shanghai Jiao Tong University.
We design AppAudit, a program analysis tool that checks if an Android application leaks sensitive personal data. AppAudit has three use cases:
- help mobile users to avoid installing data-leaking apps;
- assist app market operators to filter out zero-day privacy threats;
- prevent app developers from accidentally using data-leaking libraries.
AppBox: Sandboxing Apps
Ever tried the privacy browsing mode of web browers? Now AppBox extends this to all Android apps. AppBox is a universal sandbox for Android apps. Apps that enter AppBox appear like newly installed and have limited accesses to system resources and user data. When app exits from the AppBox, all traces and data produced are scrubed, like it never happened.
Program Mobile Applications Correctly and Easily
Hey, Your App is Draining Battery for Leaking Memory
When programming mobile applications, memory leaks would be a common but tiny mistake, since they never get noticed unless the program crashes due to memory outage. However, we surprisingly find that memory leaks lead to more on mobile devices. When this happens, the system has to kick out normal apps to accommodate leaking ones. This causes some apps to be loaded repeatedly, slowing down the device and drains the battery. Our study confirms that this is not rare among real mobile applications.
We provide a tool-chain written in Python to capture, replay, manipulate and analyze the live user interactions with a smartphone. Our record-and-replay capability is universal for all Android boxes. The manipulation and analyses can be highly customized with Python code. See a video showing record-and-replay AngryBirds.
Storage Systems Meet Big Data
A Tale of Two Erasure Codes in HDFSEnterprises continue to invest more and more disks to store growing data. Now petabyte-scale data poses a great challenge on the maintenance cost (for replacing dead disks), which largely confines the scalability of big data systems. Erasure coding is the technique that can store the same amount of data with 50% fewer disks, but at the cost of greater costs to recover unavailable data. In this paper, we explore novel erasure coding inventions and system techniques to tame the challenging recovery cost.
Optimizing Enterprise and Campus VM Deployments
Nowadays, enterprises and campuses virtualize their infrastructure to cut down capital cost and enable better IT management. Due to a mix of workloads, these VM deployments usually encounter IO spikes during some periods. In this work, we aim to understand IO patterns of these deployment and propose an automatic tool to reconfigure storage to better serve VMs.
Givs: Controlling Mobile Devices with Gestures in Vehicles
The small screen and touchscreen interactions of mobile devices could be uncomfortable for users in a moving vehicle. To overcome this limitation, we propose a rich set of gestures for performing fine-grained interacting with mobile device in a vehicle environment. Our system carefully picks gestures to allow easy control of vehicle applications (such as navigation, audio playback and phone call). Our algorithms overcome various road conditions that affect gesture recognition accuracy. This is an on-going project and we have a simple demo here:
SLIM: An STL-like library for mobile-cloud programming
Programming a mobile-cloud application is hard considering the efforts of synchronizing data, managing different views, consistency and performance. We provide SLIM, a library that provide STL-like interfaces while distributing data across the device and the cloud. SLIM reduces the programming efforts by providing interfaces familiar to developers along with various pre-defined policies that address common trade-offs. This project is an intern project with Microsoft Research Asia and has been published on Asia-Pacific System Symposium 2011.
CuteStrike: A Cute Multi-player 2D Shooting Game
dumpvb6: A Practical VB6 Decompiler
I was born in Shanghai, the economy center of China. In 1843, the Treaty of Nanking opens this city to the world, which once comprises the distinct areas of settlement for British, French, American and European. As a treaty port, it survives the great destruction of WW2. Thus Shanghai develops and maintains a unique fusion of cultures from traditional China and various European countries. The city as well as I value peace, diversity and quality of life.
After twenty-two years in this city, I moved to Montréal for my doctoral degree. The English-French city has indeed impressed me with its wonderful French maisons and unbelievable cold winter as well as accidental fall of snow flake from the roof, kidding. Ironically, I grow awareness of Chinese traditions and value systems that are being replaced by aggressive modernization, by looking at Montreal.
I have interests in many things, and am willing to waste time on them. Occasionally, just occasionally, I would sneak out of my office to for a late night movie, a decent meal, a lazy afternoon with sunshine and Kindle, an afternoon tea, cuisine research, a spa, a visit to antique and art design stores or an obsessed afternoon of browsing Swiss watch catalog.Here are some great works and people that inspired me, and some quotes I would like to share:
The simulacrum is never that which conceals the truth — it is the truth which conceals that there is none. The simulacrum is true.
Did you ever know an officer to handcuff a prisoner to his right hand?
Where is the boundary between human and machine when the differences between the two become more philosophical than physical?
Gordon: I'm sorry, Harvey. For everything. But, please. Please don't hurt him.
I’ve found the light of your voice; it has always been with me