Skip to content
This repository

an simple installer app for Debian on top of Android (click below to download an apk, the bottom is the newest)

branch: master

download cdebootstrap using an HTTPS:// mirror

This lowers the profile of the build process from a network
observer.  It also provides an extra layer of encryption in case
other layers fail.
latest commit 14c056b722
Hans-Christoph Steiner eighthave authored April 17, 2014
Octocat-spinner-32 .tx transifex: map sl_SI to sl and pt_BR to pt September 27, 2013
Octocat-spinner-32 assets update to latest debian-archive-keyring (fixes: #93) April 17, 2014
Octocat-spinner-32 etc added resolv.conf with known public nameservers April 01, 2011
Octocat-spinner-32 external download cdebootstrap using an HTTPS:// mirror April 17, 2014
Octocat-spinner-32 javadoc do not include javadoc jars in apk when built using ant April 09, 2014
Octocat-spinner-32 libs do not include javadoc jars in apk when built using ant April 09, 2014
Octocat-spinner-32 res in Terminal Emulator is installed, add menu item to launch Debian shell January 03, 2014
Octocat-spinner-32 src do not bzip2 cdebootstrap.tar April 17, 2014
Octocat-spinner-32 supporting_files use a list of mirrors that will work for both Debian and Ubuntu May 10, 2013
Octocat-spinner-32 .classpath do not include javadoc jars in apk when built using ant April 09, 2014
Octocat-spinner-32 .gitignore update to latest debian-archive-keyring (fixes: #93) April 17, 2014
Octocat-spinner-32 .gitmodules build busybox to provide ar, echo, dpkg-deb, grep, patch, wget, gunzi… April 26, 2012
Octocat-spinner-32 .project first stab at an Eclipse project May 12, 2011
Octocat-spinner-32 AndroidManifest.xml in Terminal Emulator is installed, add menu item to launch Debian shell January 03, 2014
Octocat-spinner-32 ChangeLog update ChangeLog for v0.4.6 January 04, 2014
Octocat-spinner-32 LICENSE.txt added GPLv3 as license June 09, 2011
Octocat-spinner-32 LilDebi.iml first stab at an Eclipse project May 12, 2011
Octocat-spinner-32 README.txt do not bzip2 cdebootstrap.tar April 17, 2014
Octocat-spinner-32 ant.properties updated to committing new standard ant.properties and project.properties February 24, 2012
Octocat-spinner-32 make-release-build.sh when making a release, sign the actual release apk, not the unsigned one May 14, 2013
Octocat-spinner-32 project.properties bump target SDK version to android-19 (4.4.2) KitKat January 03, 2014
Octocat-spinner-32 update-ant-build.sh update reference to use official var: $ANDROID_HOME April 09, 2014
README.txt
Lil' Debi
=========

This is an app to setup and manage a Debian install in parallel on an Android
phone.  It can build a Debian install from scratch or use an existing image.
It manages the starting and stopping of the Debian install.

It uses cdebootstrap to build up the disk image as a chroot, and then provides
start and stop methods for handling mounting, fsck, starting/stopping sshd,
etc.

It is 100% free software. Ultimately, our aim is to have the whole
process for every bit of this app documented so that it can be freely
inspected, modified, ported, etc.  We want this app to build a trusted Debian
install on the phone, so free software is the only way to get there.  This is
currently functional alpha software, so do not rely on it to produce a trusted
Debian install.  Please do try it out, use it, and report criticisms, bugs,
improvements, etc.


Installing Debian
=================

The process of installing Debian with Lil' Debi is self-explanatory, just run
the app and click the Install... button.  But it doesn't yet work on all
phones.  If the install process fails on your phone, you can still use Lil'
Debi by downloading a pre-built Debian image.  It should work with any
Debian/Ubuntu/Mint armel image file.  Here is a Debian image file that was
built by Lil' Debi:

https://github.com/guardianproject/lildebi/downloads

Download the file, uncompress it and rename it 'debian.img' and copy it to
your SD Card.  Launch Lil' Debi, and you should now see the button says "Start
Debian".  Click the button to start your new Debian install.


Build Setup
===========

On Debian/Ubuntu/Mint/etc.:

  sudo apt-get install autoconf automake libtool transfig wget patch \
       texinfo ant make openjdk-6-jdk

Both the Android SDK and the Android NDK are needed:

SDK: http://developer.android.com/sdk/
NDK: http://developer.android.com/sdk/ndk/


Building
========

Building Lil' Debi is a multi-step process including clone the sources,
getting busybox code as a submodule, building the native utilities, and then
finally building the Android app.  Here are all those steps in a form to run
in the terminal:

  git clone https://github.com/guardianproject/lildebi
  cd lildebi
  git submodule init
  git submodule update
  make NDK_BASE=/path/to/your/android-ndk -C external assets
  ./update-ant-build.sh
  ant debug

Once that has completed, you can install it however you would normally install
an .apk file.  You will find the .apk in the bin/ folder.  An easy way to
install it via the terminal is to run:

  adb install bin/LilDebi-debug.apk


NDK build options
-----------------

The following options can be set from the make command line to tailor the NDK
build to your setup:

 * NDK_BASE             (/path/to/your/android-ndk)
 * NDK_PLATFORM_LEVEL   (7-17 as in android-17)
 * NDK_ABI              (arm, mips, x86)
 * NDK_COMPILER_VERSION (4.4.3, 4.6, 4.7, clang3.1, clang3.2)
 * HOST                 (arm-linux-androideabi, mipsel-linux-android, x86)


Original Sources
================

cdebootstrap
-----------
http://packages.debian.org/unstable/cdebootstrap

cdebootstrap is downloaded directly from Debian, extracted, and then
tar'ed into the included tarball assets/cdebootstrap.tar. See
external/cdebootstrap/Makefile for details.


busybox
-------
git://busybox.net/busybox.git

busybox is included as a git submodule and built from source by
externals/Makefile using a custom config file.


gpgv
----
https://github.com/guardianproject/gnupg-for-android

Building gpgv for Android is quite complicated, so the binary is included in
this project. The binary is built from source using the gnupg-for-android
build system.  The binary ends up in external/data/ called gpgv2-static.  To
build it yourself, follow the included instructions.
Something went wrong with that request. Please try again.