Giter Club home page Giter Club logo

zachlungu / self-compile-android Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tribler/self-compile-android

0.0 2.0 0.0 3.98 MB

Autonomous smartphone app. Capable of self-compilation, mutation, and viral spreading. World-first proof-of-principle to bypass Internet kill switches.

License: GNU Lesser General Public License v2.1

Makefile 2.49% C 45.72% C++ 36.23% Shell 6.96% Assembly 0.87% Objective-C 0.10% Java 1.17% CMake 0.18% M4 0.10% Groff 4.81% HTML 1.37%

self-compile-android's Introduction

Self-compiling Android application (Experimental)

Disclaimer: only works on Android 4.3_r3.1 with Galaxy Nexus. Or Cyanogenmod 12.1 of android 5.1.1, comfirmed on Nexus 5,6 and 10 devices.

Autonomous smartphone apps: self-compilation, mutation, and viral spreading

Mutate an Android app at the source code level.

Abstract from the scientific paper: We present the first smart phone tool that is capable of self-compilation, mutation and viral spreading. Our autonomous app does not require a host computer to alter its functionality, change its appearance and lacks the normal necessity of a central app store to spread among hosts. We pioneered survival skills for mobile software in order to overcome disrupted Internet access due to natural disasters and human made interference, like Internet kill switches or censored networks. Internet kill switches have proven to be an effective tool to eradicate open Internet access and all forms of digital communication within an hour on a country-wide basis. We present the first operational tool that is capable of surviving such digital eradication.

{Part of Tribler: 82 contributing developers so far, 1.7 unique users installs to date}

Dependencies:

JAVA

platform -> android-18.jar compiler -> ecj-4.5.jar dexer -> SDK\build-tools\23.0.0\lib\dx.jar apk build -> sdklib-24.3.4.jar signer -> zipsigner-lib-1.17.jar zipsigner-lib-optional-1.17.jar zipio-lib-1.8.jar kellinwood-loggin-lib-1.1.jar sc-core-1.52.0.0.jar sc-prov-1.52.0.0.jar sc-pkix-1.52.0.0.jar sc-pg-1.52.0.0.jar

NATIVE

aapt -> Platform_Framework_Base\tools\aapt aidl -> Platform_Framework_Base\tools\aidl androidfw -> Platform_Framework_Base\include\androidfw

zipalign -> Platform_Build\tools\zipalign host -> Platform_Build\lib\host

libpng -> Platform_External_Libpng expat -> Platform_External_Expat zlib -> Platform_External_Zlib

libcutils -> Platform_System_Core\libcutils cutils -> Platform_System_Core\include\cutils

liblog -> Platform_System_Core\liblog log -> Platform_System_Core\include\log

libutils -> Platform_System_Core\libutils utils -> Platform_System_Core\include\utils

log.h -> Platform_System_Core\include\android

asset_manager.h -> Platform_Framework_Native\include\android looper.h -> Platform_Framework_Native\include\android

zopfli -> zopfli\src

ld -> Tool_Chain_Utils\binutils-2.25\ld

STABLE APIs (at least api level 9)

https://developer.android.com/ndk/guides/stable_apis.html#a18

LOCAL_LDLIBS := -llog (liblog)

LOCAL_LDLIBS := -lz (zlib)

LOCAL_LDLIBS += -landroid (o.a. looper.h)

LOCAL_LDLIBS := -ldl (dynamic linker)

Screenshots

Howto mutate an Android app at the source code level.

Simple proof-of-principle user interface. Both the app name and the icon are changed in real-time in the source code shipped inside the app. By selecting "install" an .apk is created of itself using self-compilation. screenshot_2015-09-18-16-47-38

Changing icon and app name: screenshot_2015-09-18-16-48-30

First self compile step, process resources screenshot_2015-09-18-16-48-49

Compile source:
screenshot_2015-09-18-16-49-29

Integrate dependencies:
screenshot_2015-09-18-16-49-34

(this takes a while)
screenshot_2015-09-18-16-50-09

Package app:
screenshot_2015-09-18-16-55-49

Prepare installation step:
screenshot_2015-09-18-17-12-52

The magic happens. Without any user intervention it asks for a freshly compiled clone of itself to be installed.: screenshot_2015-09-18-17-13-11

User selected "install"
screenshot_2015-09-18-17-13-20

Install completed
screenshot_2015-09-18-17-17-40

Finally open the self-compiled clone of itself. screenshot_2015-09-18-17-17-55

self-compile-android's People

Contributors

intel478 avatar synctext avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.