[Galaxy S III Android Development] JustArchi:
ArchiDroid 1.7.3

Longest Changelog Candidate

Changelog

ArchiDroid 1.7.3

- Updated base to Sammy's XXUGMK6

# Rooted, Deodexed, Zipaligned, Busybox, Busybox run-parts, Multi-CSC (164)

- Added AOSP (KitKat) Theme, thanks to [MENTION=509880]Crussader[/MENTION]

- Enabled development settings by default

- Updated Boeffla kernel to 5.1-beta4

- Updated Boeffla presets

- Updated Yank kernel to 4.0a

- Updated Wanam's Xposed to 2.5.1

- Removed Foxhound All Black Theme

* ArchiDroid Commons

# Common components shared between AD 2.X and 1.X

^ [!] Added built-in ArchiDroid flasher, which allows you to flash any version directly from github

# Write adflash command in terminal to get more info

^ [!] Added built-in Debian "Jessie" 8.0 into ArchiDroid

# Okay, this is big. In general you can jump into debian's chroot and execute

# any program compatible with armhf/armel architecture. Thanks to chroot you

# don't need to waste precious resources for emulating or virtualization

# to gain everything what debian offers. I tried to make as feature-rich

# environment as possible, including pre-tweaked environment, full apt-get

# support, services support and Android compatibility. As for now I couldn't

# find an app/binary which doesn't work well with my "pocket debian".

# Yes. You can launch (nearly) EVERYTHING in my pocket debian, as long as it's

# compiled for armhf/armel architecture. That's why I selected debian as my

# pocket environment, because it has best armhf/armel support.

#

# I even ran nginx, mysql and php-fpm web server, serving dynamic content

# to the clients over standard 80 port, without any problems. It's impossible

# to do so in Android environment.

#

# It's mostly targeted at very advanced linux users, who know exactly what to do

# with such great power which ArchiDroid offers right now. Please take care because

# environment still directly connected with Android (unless you launched debian with

# bare mode), so in fact you CAN damage your system if you have no idea what you're doing.

# (Same goes with root and super user by the way, so it's not that scary)

#

# Write "adlinux" and "debian" commands to start the party.

# More will be described in the main thread on xda soon

^ [!] Added long-awaited delta upgrades integrated into ArchiDroid

# This is a mode called "git" for adflasher implemented in version 2.3

# Delta upgrades use ArchiDroid's Pocket Debian described above

# The whole magic is in creating local ArchiDroid github repository and then pulling

# changes between local and upstream repository instead of downloading static zip file

# used in now called "direct" method. Keep in mind that this mode requires additional

# space on your internal sd card to create a repo, it's about double of ArchiDroid's size

# 1 GB for 2.X, and 2 GB for 1.X.

^ Removed Googy Max kernel (for good)

# Because it doesn't work with Omni and I'm not sure if googy is interested in Omni support...

^ Added Devil kernel

# ... As a perfect replacement for Googy Max with working dual boot. Credits to [MENTION=4196889]DerTeufel1980[/MENTION]

# Comes with bundled Devil Tools apk and loadable ArchiDroid preset available.

^ Introduced ZeroWakeUp build.prop tweak

# Actually, it was possible to do so manualy since introducing of build.prop tweaks but I left it as an option for some time

# It reduces wake up lag from 2 seconds up to 0.5 second, with an average of reducing to 1 second. Of course for some cost of your battery. However if your phone doesn't sleep that much (You have more than 0.5% / hour in deep sleep) then it doesn't really matter for you, it may even reduce your battery drain due to no wakelocks (perma active). This is experimental feature, same as fast dormancy toggle. You need to find out yourself if you like it or not.

# This value controls deep sleep function in your ROM

#sleep_mode=0 (default) -> Collapse Suspend. Standard deep sleep. Default value

#sleep_mode=1 (build.prop tweak) -> Full Collapse. Deeper sleep. It'll aggresively try to power off as much cpu cores as possible, improving battery life in deep sleep. Default ArchiDroid value

#sleep_mode=2 (NEW!) -> Sleep. CPU is still on, but put into low power mode, all registers are still saved, thus all apps are in fact working and they're not suspended.

^ ArchiDroid Backend Update

* Added custom boot sound support. ArchiDroid will now play /data/media/0/ArchiDroid/PowerOn.wav if available. It's for you if you'd like to have boot sound instead of silence. Other formats are NOT available, only .wav.

* Added Keyboard handling. ArchiDroid will now set your keyboard according to your aroma choice. This is extremely important because Android doesn't do it automatically now (in 4.4)

* [2.X] Some new DBUPDATE values based on OmniROM.

^ Updated Cool Tool to 5.1.1 + Archi's preset for Cool Tool

# It'll now show you the most resource-intensive process if it takes more than

# 80% of available resources. May be useful if you notice 100% CPU consumption

# Additionally deleted cpu graph, hidden annoying notification, fixed iostat

# (showing proper I/O after full wipe) and various other misc improvements

^ Added Simplified Chinese language to aroma, thanks to Syrone Wong

^ Silent CrossBreeder update, which fixes network buffers and some related problems

^ All inverted apps are disabled in default preset now

^ Updated Inverts (Facebook + Messenger, Google Hangouts/Chrome)

^ Updated Modem to XXUGMK6

^ Updated SuperSU to 1.85

^ Updated Greenify to 1.99

^ Updated MX Player to 1.7.21

^ Updated Nova Launcher to 2.3

^ Updated Google Play to 4.5.10

^ Updated BetterBatteryStats to 1.15.0.0 RC8

^ Updated Inverts (Facebook + Messenger, Google Chrome/Calendar/Hangouts/Keep/Plus, Youtube)

^ Updated XPrivacy to 1.10.43

^ Removed ZRAM Status (as it's not working, neither useful in latest kernels)

^ Updated PhilZ Touch Recovery to 6.00.8

^ Updated Xposed to 2.4.1

^ Updated App Settings to 1.6

^ Updated Titanium Backup to 6.1.4.3

^ Updated TouchPal X to 5.4.6.5

Download

Stable: ArchiDroid 1.7.3 XDA

Oldstable: ArchiDroid 1.6.4 XDA

Bloatware: ArchiDroid XXUGMK6 XDA

What is "ArchiDroid's Pocket Debian"?

From wikipedia:

From debian site:

How exactly this covers our beloved SGS3 (and countless number of other android arm-based phones)?

As you may (or even should!) know, Android operates on it's own Linux-based kernel. Android's kernel is literally a fork of Linux kernel, with a few special/unique functions which are required, mostly hardware-specific. Because of that kernel itself is VERY compatible with everything based on Linux.

However there have always existed one typical problem, lack of proper environment. We have a great kernel, great power, linux-based android environment, but this environment lacks of very common and required libraries/binaries. If you ever wondered what is or what does busybox, this is the answer. Busybox is just a small package which offers a few standalone GNU/Linux binaries, which are required to make certain things work. For example, swap priorities. Android knows what swap is, and nothing else. It doesn't know that swap could have a priority, so if you use android's swapon command on 4 devices, it will firstly fill first device, and then proceed to the next. That's why we need busybox in ALL custom kernels, because android environment isn't enough.

However busybox sometimes isn't enough. If we focus only on Android itself, it is. But if you for example want to run stricly linux-based service, I don't know, a web server for example... Is it possible to run a native linux web server on an android? No, it's not. You should firstly compile such service on arm architecture, including all dynamic and static libraries (wrrr :mad:) in it only to finally get mad because of missing libraries or other dependencies. Of course if you're patient you'd finally compile everything and set up, however how long would it take? A few days maybe? If you're skilled in what you're doing...

This is why I included built-in "pocket" debian in ArchiDroid. It's FULLY compatible with everything compiled/based on armhf/armel GNU/Linux architecture, for example Raspberry Pi. With two easy commands you can literally jump into debian environment and use every typical GNU/Linux utilities known from debian itself. Of course this means nothing for most of the users, because they'll never have any reason to use such debian environment but from the developer side, it's big step forward. The best example is with github. As you know ArchiDroid has it's own repo on github, from where you can download/manage stuff. There also exists git app for linux and windows. If you want to follow "expert" way of flashing experimental ArchiDroid version, such program is required. The scenario is the same as compiling web server for an android, it requires much more effort than it's worth. And even then you can end up with syncing external dependencies and searching for solutions for the problems you've never seen before... And with ArchiDroid's pocket debian? It's as simple as in any debian/ubuntu distro. "apt-get update && apt-get install git" and voila. Your git is installed and ready for work. Going further I've even included git in pocket debian itself. Okay, I have debian, I have git, and what next? With git utility I can for example provide you with delta updates for ArchiDroid! ArchiDroid can easily use pocket debian to set up and sync ArchiDroid's repository and then pack and flash latest version without even needing of a PC, using 7-zip or anything else. Another example? A web server. I know that it's very dev-specific but if you for any reason need a web server running, just for example to test simple website, you can have it with just one command. Going further, VNC? MySQL server? PHP? Python? Perl? Ruby? Maybe conditional tasks with cron? Persistent minimal IRC client? rtorrent with rutorrent GUI over WWW? The list goes on... Anything based on linux will work. You can even host a server for your favourite game, as long as it has armhf/armel binaries (unfortunately most of the games don't).

So that's it. In short, debian is an operating system built-in in ArchiDroid to provide you with (unfortunately missing) GNU/Linux environment, with full power, ready to handle anything you could request. I made my best to include fully working debian in ArchiDroid for a minimal cost. Whole OS is packed in one big tar file, compressed using highest bzip2. As for now pocket debian has ONLY 40 megabytes of size, maybe in future it will have up to 50 megabytes, but no more. It's a VERY small cost for having such great power, especially if you know how to use it.

This is a really cutting-edge feature, mostly because I have no limitiations what I can include in my ROM right now, and while other developers are dealing with OpenDelta updates and many Android-based problems, I'm just launching my pocket debian and manages linux stuff.

I'm SURE that most of the advanced ArchiDroid user will just LOVE this feature, as much as I love it. I'm looking forward to your responses how YOU use pocket debian with your ArchiDroid. It's also a great time to learn what does the debian offer and how you can simplify your common tasks with just one example debian utility ;).

Technical informations:

1. Pocket Debian does not cause any additional overhead. We don't need to use emulation, neither virtualization to boot our monster. I used chroot technology to "jump" into debian environment with already running kernel and Android. That means additional required CPU/RAM is based on what you run in pocket debian. Booting itself doesn't require anything, just about one megabyte of ram for /bin/bash shell :).

2. Android has some restrictions, mostly sockets. It doesn't allow to create inet sockets by default, even for root users. You will need to add your custom debian users to special group called "inet" (GID 3003) to allow creating of inet sockets, and you may also need to add a group to net_raw group (GID 3004) to allow creating of raw sockets. Please keep in mind that it's only required if you're running an app which required it's own socket, for example mysql server. So apt-get install mysql-server will fail right after booting, you will need to use "addgroup mysql inet" and then apt-get -f install to complete installation. Of course "mysql" is the new user under which mysql-server really operates. I've added root to both of these groups by default.

3. The only "real" restriction is the kernel. Our debian uses Android kernel and it's filesystem. It should work with most common tasks but in some cases our kernel may lack specific modules or built-in code, for example tun/tap required for OpenVPN. Still it's enough to run pretty much everything and if you get in touch with your favourite kernel developer you can also kindly ask for specific missing things.

Q: How to use delta upgrades provided by ArchiDroid?

A: Simply open any terminal, for example Android Terminal Emulator, type "su" and then "adflash" command. You'll be able to set various options and get exactly what you want.

Follow ArchiDroid On XDA!

Like ArchiDroid On Facebook!

Write A Review!

Rate This Thread!

Buy Me A Beer!

Hit Thanks!

Have Fun! :cool: