[EOL] [ROM] [5.1.1] [CyanogenMod] [GCC 4.9] [Excellent] [12/11/15] ArchiDroid V3.1.5 - Galaxy S III Android Development

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Clean | Stable | Flexible | Optimized | Excellent
Changelog
ArchiDroid 3.1.5
- Newest ArchiKernel snapshot
- Updated GAPPS, sources and other common things
ArchiDroid 3.1.4
- Newest ArchiKernel snapshot
- Updated GAPPS, sources and other common things
ArchiDroid 3.1.3
- [i9300] Changed malloc implementation to dlmalloc
- Implemented dex-preoptimization for ART
- Removed xposed due to incompatibility with dex-preoptimized ART
- Newest ArchiKernel snapshot
- [nicki] AK: Added mpdecision switch to Synapse
- Updated GAPPS, sources and other common things
ArchiDroid 3.1.2
- Switched arm-linux-androideabi toolchain back to SaberMod
- Fixed wrong auto-vectorization of ID3 iterator causing various media crashes with badly-tagged MP3s
- Newest ArchiKernel snapshot
- Updated GAPPS
- Updated Xposed
- Other misc changes and bugfixes
ArchiDroid 3.1.1
- ArchiDroid Optimizations V4.1
- ArchiDroid is now built with UBERTC 4.9 androideabi (instead of SaberMod 4.9) and 5.2 ArchiToolchain eabi (instead of 5.1)
- Newest ArchiKernel snapshot
- Updated GAPPS
- Updated Xposed
- Other misc changes and bugfixes
ArchiDroid 3.1
- Initial release
Important notes
- YOU DIRTY FLASH AT YOUR OWN RISK.
- FULL WIPE IS ALWAYS SUGGESTED WHEN FLASHING NEW VERSION.
- DON'T EXPECT A BUGLESS EXPERIENCE IF YOU DIRTY FLASH OR USE TITANIUM BACKUP.
ArchiDroid 3.1 is major new release based on CyanogenMod 12.1 (Android 5.1.1 Lollipop). There are too many changes compared to previous release of AD 3.0.2, so you should treat this version as totally new ROM. Here you can find some important notes to make update easier, and to avoid some possible issues:
- If coming from AD 3.0.2 or any other ROM, regardless what it is, you should make full wipe. ArchiDroid is smart enough to detect itself during install and offer you an update, but this option should not be used with major release such as this one. Full wipe in necessary.
- It also means that you should AVOID restoring old, incompatible data with apps such as Titanium Backup. Full wipe means full wipe, not half wipe and restoring data later. Of course, it's up to you if you want to follow my suggestions or not, but do not expect that you'll have bugfree experience otherwise.
- You should update your recovery prior to flashing, again, regardless of what recovery you have now. The best way is to do so right from ArchiDroid ZIP, as AD offers updating recovery prior to flashing the rest, from AROMA. On the preset screen you can choose "Recovery" to update to latest (confirmed working) TWRP for i9300, reboot recovery and flash the rest. Only TWRP is supported by me, AD should be universal enough to be flashed with other recoveries as well but you're on your own doing so.
- While not mandatory, I suggest also a wipe of whole internal SD card (/data and /data/media), as this will make sure than no junk is left. If you don't want to do so, at least make sure to remove /data/media/0/ArchiDroid folder prior to flashing, even if you have experimental AD 3.1 already. I do not track all regressions and doing so will make sure that backend works in intended way. A best way to do so is to update your recovery first, then through TWRP file manager navigate to /data/media/0 and remove whole ArchiDroid folder.
- AD already has built-in GAPPS, provided by OpenGApps project. Flashing other GAPPS is not recommended, but if you know what you're doing you can still untick all Google Apps offered in AROMA (Whole GAPPS category including core gapps + also google launcher and google keyboard) and install your own GAPPS package after AD installation. Although, as I said, I suggest to stick with AD gapps, as they're proven to be working well, and they're tested by me and other experimental users.
TL;DR
- Make full wipe
- Update recovery prior to flashing
- Wipe internal storage, or at least remove /data/media/0/ArchiDroid
- Flash AD
- Do not restore old data through titanium backup
- Enjoy your fresh ArchiDroid experience
Download
All Files XDA
Stable: ArchiDroid 3.1.5 GitHub | XDA Direct | XDA Torrent
Oldstable: ArchiDroid 3.0.2 GitHub | XDA Direct | XDA Torrent
Remember that you don't need anything else to flash. Google Apps are included already.
Known Issues
All known and unknown CyanogenMod bugs (if any)
Follow ArchiDroid On XDA!
Like ArchiDroid On Facebook!
Write A Review!
Rate This Thread!
Buy Me A Beer!
Hit Thanks!
Like ArchiDroid On Facebook!
Hit Thanks!
XDA:DevDB Information
[EOL] [ROM] [5.1.1] [CyanogenMod] [GCC 4.9] [Excellent] [12/11/15] ArchiDroid V3.1.5, ROM for the Samsung Galaxy S III I9300
Contributors
JustArchi
Source Code: https://github.com/ArchiDroid/ArchiDroid/tree/i9300-cm-stable
ROM OS Version: 5.1.x Lollipop
ROM Kernel: Linux 3.0.x
Based On: CyanogenMod
Version Information
Status: Stable
Created 2013-08-19
Last Updated 2015-11-20

[SIZE="+3"]ArchiDroid's FAQ / Q&A[/SIZE]​[SIZE="+1"]This is the development thread. In case of any non-development questions or issues, you should use above link[/SIZE]​
[SIZE="+1"]Features / Why ArchiDroid?[/SIZE]
First of all, ArchiDroid includes everything available in it's base. The whole point of ArchiDroid is to improve the base, without needing of making any trade-offs, so by flashing ArchiDroid, you're getting everything offered by the base itself. There's nothing to lose, everything to gain.
You can read detailed information about every ArchiDroid component here. It's a massive wall of text, so I'm only going to list the core features without describing them.
These were written from scratch, they're completely unique and you won't find exactly the same implementation in any other ROM.
ArchiDroid-Unique features:
- ArchiDroid's AROMA Installer
- ArchiDroid's Pocket Debian
- ArchiDroid's Flasher
- ArchiDroid's RunOnce
- ArchiDroid's Init
- ArchiDroid's Backend Control
- ArchiDroid's HArdware Volatile Entropy Gathering and Expansion Daemon (Haveged)
- ArchiDroid's Fast Random Number Generator (Frandom)
- ArchiDroid's Adblock (dnsmasq/dnrd, dnsproxy2, pixelserv)
- ArchiDroid's Forced Update
Apart from that, here, on the credits page, you can find all third-party projects, which have been implemented into ArchiDroid. In addition to that, it's up to YOU to decide if you want to install something, or not.
ArchiDroid focuses on flexibility and user choice.
If you're looking for fastest ROM, choose ArchiDroid.
If you're looking for most battery-saving ROM, choose ArchiDroid
If you're looking for cutting-edge functions, choose ArchiDroid
If you're looking for the most flexible rom ever created, definitely choose ArchiDroid
ArchiDroid adjusts to your needs. You can make it whatever you want. With bunch of presets, modes and questions, you can make your ArchiDroid behave. Check yourself why ArchiDroid is The TOP 1 ROM for Galaxy S3http://forum.xda-developers.com/galaxy-s3#romList, according to number of followers, rates, reviews and downloads count. Check the Reviews, take a look at Video Reviews, do whatever you want to, ArchiDroid is proven to be one of the best ROMs for Galaxy S3, ever created.
Try ArchiDroid once, and you'll never look back. I can assure you.
Disclaimer
ARCHIDROID SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THE WARRANTIES THAT IT IS FREE OF DEFECTS, VIRUS FREE, ABLE TO OPERATE ON AN UNINTERRUPTED BASIS, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
Click to expand...
Click to collapse
Your warranty is now void.
I am not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed. Please do some research if you have any concerns about features included in this ROM before flashing it! YOU are choosing to make these modifications, and if you point the finger at me for messing up your device, I will laugh at you. Hard. A lot.
Click to expand...
Click to collapse
Developer's Kitchen
Unless stated otherwise, all ArchiDroid components are licensed under the Apache License:
Code:
Copyright 2014 [email protected]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Especially:
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of this License; and
You must cause any modified files to carry prominent notices stating that You changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
Click to expand...
Click to collapse
ArchiDroid is one of the most complex ROMs ever created. When you start digging in my work, you can very easily get lost. And I'm not talking about base itself, but about everything next to it. You can use every part of my work, as long as:
1. You include proper credit where you should. This usually includes proper comment in a script/file and in the credits of the project, including license (if needed)
2. You let me know about this fact. Through PM on xda or e-mail
I'm always happy to help, especially with the problems I faced in the past. However I also want to be respected, considering that most of the ArchiDroid parts were written from scratch.
ArchiDroid 2.X vs. ArchiDroid 1.X
The long battle between choosing over ArchiDroid 2.X and 1.X is still recent. There's no one real and true answer to this. It's up to YOU to decide who wins this battle, because obviously every user is different. I'm only going to give you some tips and briefly describe differences.
Despite the name, ArchiDroid 2.X and 1.X are totally different ROMs. It all started with ArchiDroid 1.X, a ROM based on Sammy's stock firmware, with all needed goodies and features baked in. Then eventually I managed to implement everything what I ever wanted to implement, therefore making ArchiDroid 1.X more or less complete. Then I started with ArchiDroid 2.X project, built from scratch from AOSP sources, with all source codes available.
The point is, ArchiDroid 1.X is more or less complete, there's no "real" development going on, as I obviously don't have samsung sources to begin fun with. On the other hand, ArchiDroid 2.X will never be finished, there's always something to improve, something to add, something to fix... This is ongoing process, which will reach the end when I finally break my SGS3 or change the phone to another one .
If you're new user or you don't know how AOSP works on our SGS3s then I highly suggest to flash ArchiDroid 1.X firstly. ArchiDroid 2.X is targeted at advanced users, who don't mind some "core" features being broken. It will NEVER be as stable as ArchiDroid 1.X is, so if stability is the number 1 for you, choose 1.X.
ArchiDroid comparision
From 1-10, based on my own point of view
Stability
2.X - 5
1.X - 8
Compatibility
2.X - 4
1.X - 9
Battery
2.X - 6
1.X - 9
Performance
2.X - 9
1.X - 6
Features
2.X - 9
1.X - 4
Android Updates
2.X - 9
1.X - 6
-----------
Overall
2.X - 42
1.X - 42
This is ArchiDroid comparision in a nutshell. If you ask me, I think that ArchiDroid 1.X is far better choice for daily driver, but if you're advanced user and you know how to deal with possible broken functions then you can have great time using ArchiDroid 2.X as well.
Remember that only ArchiDroid 1.X supports Samsungs-specific features, such as Smart Stay, Screen mirroring, Allshare or whatever. This also includes closed-source proprietary drivers, such as many bluetooth headsets, which won't work under open-source AOSP. Think twice before considering 2.X if you're addicted to these Samsung goodies.
On the other hand, ArchiDroid 2.X is the only ArchiDroid with "real" development going on, however all universal changes are also backported back to ArchiDroid 1.X, so you're not missing any feature, which benefits also Sammy's base.
That's it. I hope that a choice between both of these awesome roms is a bit easier now. If you still can't decide I suggest to flash both of them for some time and then decide which suits you better.
Know Your ArchiDroid
ArchiDroid is not only a rom. It's not only a baked android with third-party apps, modifications and tweaks. ArchiDroid is an universal backend which improves rom by many built-in functions.
Let me tell you a story. During developing first version of ArchiDroid 2.0 I experienced many problems, which were not that easy to solve. First of all - apps data. Trust me or not but you can't simply extract data, put it in /data/data after install and hope that it works. Android will detect such injection, report inconsistent of data and wipe everything attached to that. Okay so... How I should provide you with my boeffla preset? CoolTool settings? STweaks profile? If I put my data during flashing it'll get wiped. If I put my data and deny wiping it then Android will report inconsistent of data to user and work unstable. Yes guys, it's impossible to do so without a trick or without recompiling whole rom.
I won't tell you a whole story, because you probably don't want to hear about ArchiDroid development. I'll simply tell you that I overcome MANY difficulties, simply because I do what I like, and I like what I do. After countless number of hours, I can finally provide you with the ROM, which is the best. Why is it the best? Because I'm improving the base, and I'm not making any trade-offs.
GitHub / Versioning / Experimental Versions
ArchiDroid version contains 3 numbers. X.Y.Z. X is the base number of the rom. For now it won't change because ArchiDroid 1 is based on Sammy Rom and ArchiDroid 2 is based on CyanogenMod. Basically we have two numbers left, Y and Z. Y number will change when I'll implement something really new, when I'll make some advanced improvements or after many Z changes. Z number is the "standard" update, like updated sources, some bugfixes and so on.
I've learned many things since releasing of first ArchiDroid 1.0.0. Because of that I've also created a GitHub repository, which you can find here. What does it mean for you? First of all as you can see there are 4 different branches. 1.X-STABLE, 1.X-EXPERIMENTAL, 2.X-STABLE and 2.X-EXPERIMENTAL. What does it mean? You can enter selected branch and click on "Commits" button to see every single update which I've made to selected branch. Experimental branches will get updates nearly every single day, especially 2.X-EXPERIMENTAL because of many CM changes and updates. Additionally after some tests I'll merge current 2.X-EXPERIMENTAL into 2.X-STABLE every week and provide as "weekly update", of course if current experimental will be stable enough to do so.
However that doesn't mean you need to wait for my updates! You can easily "pack" latest experimental and flash without needing to wait for my weekly build. I'll tell you how to download and flash it by yourself.
You can see differences between current stable and experimental here.
[Newbie Version]
1. Open 2.X-EXPERIMENTAL branch.
2. Click on Download Zip button located in bottom-right corner.
3. Install 7-Zip if you don't have that already. Other programs may, or may not work correctly.
4. Right-Click on zip, select Extract Here
5. Navigate to newly created ArchiDroid-2.X-EXPERIMENTAL folder
6. Select all files WITHOUT __dont_include folder, right-click and select 7-Zip => Add to archive
7. Make sure that you have zip format, Fastest compression (to save some megabytes) and Deflate method of compression.
8. Voila, copy newly created ArchiDroid-2.X-EXPERIMENTAL.zip to your phone and flash as usual.
[Expert Version]
1. Install Git for Windows or Linux
2. If you're on windows then make sure that windows won't change LF into CRLF (git config --global core.autocrlf false)
3. Clone my git repository using .git file. Keep in mind to specify depth, as this repo is really big. (git clone https://github.com/JustArchi/ArchiDroid.git --branch 2.X-EXPERIMENTAL --depth 1)
4. Select all files WITHOUT __dont_include folder zip them into standard .zip format with Deflate compression or without any compression.
5. Copy .zip to your phone and flash as usual
6. In order to update your local repo execute git pull origin 2.X-EXPERIMENTAL and go to point 4.
Additionally you can watch my short video, which shows how to flash experimental ArchiDroid going through "Expert Version".

Video Reviews / How ArchiDroid looks like?
@Koogly
ArchiDroid User Signatures

ArchiDroid Features
Know your ArchiDroid, learn how to use it
Introduction / Basics
Welcome to ArchiDroid's world mortal. In this tutorial we will show you what ArchiDroid has "inside" and what it really offers. All of things included in this post are ArchiDroid-specific, which means that you won't find any ROM with the same features, as they're written from scratch.
Here you can find some definitions of the words used in sections below. You should know most of them, but in case somebody is lost here you can get back on track.
Terminal, Shell - Typical android shell, which may be obtained in three ways.
1. Through native Android Debug Bridge (ADB) with command "adb shell" from the PC or even "ADB through network" (if supported).
2. Through any Android terminal app, f.e. Android Terminal Emulator bundled with ArchiDroid.
3. Through secure shell daemon (sshd), which needs to be turned on firstly. This is extremely useful in terms of pocket debian, which will be described later.
You can use any of these methods to access android's terminal, however usually Android Terminal Emulator will be the easiest one, as it's android app bundled with ArchiDroid. WARNING! Most of the commands below WILL require root access. You can log in to super user shell by "su" command right after obtaining shell. If you're unsure if you're logged as root or not, "whoami" command should print actual user, "root" or "unknown uid 0" are OK, others are not.
ArchiDroid's Pocket Debian
From wikipedia:
Debian is an operating system composed of free software mostly carrying the GNU General Public License. The operating system is developed by an internet collaboration of volunteers aligned with The Debian Project.
Click to expand...
Click to collapse
From debian site:
As most of you know, Linux is just a kernel. And, for a long time, the Linux kernel ran only on the Intel x86 series of machines, from the 386 up.
However, this is no longer true, by any means. The Linux kernel has now been ported to a large, and growing, list of architectures. Following close behind, we have ported the Debian distribution to these architectures. In general, this is a process with a sticky start (as we get libc and the dynamic linker working smoothly), and then a relatively routine, if lengthy job, of attempting to recompile all our packages under the new architectures.
Debian is an operating system (OS), not a kernel (actually, it is more than an OS since it includes thousands of application programs)
Click to expand...
Click to collapse
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 ) 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.
4. Debian is built and included thanks to debootstrap utility, ArchiDroid command used for creating debian environment is debootstrap --verbose --arch armhf --include=git,ca-certificates,ssh,htop,tightvncserver,xterm,xfonts-base --exclude=manpages,man-db,rsyslog,vim-common,vim-tiny testing debian http://ftp.fr.debian.org/debian
HowTo:
Pocket Debian contains two main terminal commands, "adlinux" and "debian". Both of them are described below. By adlinux and debian you boot and jump into debian's chroot, which means you can use any debian-specific commands.
Examples:
passwd - changes password of actual user. This is needed to login as specific user, for example through ssh.
service ssh start - starts local SSH (secure shell) daemon on native port :22, to which you can easily access via any client supporting ssh, f.e. PuTTY. So basicly after you start shell you can literally connect to your local area network (LAN) IP on port 22 f.e. through PuTTY from your PC.
ifconfig - prints network-related informations about online interfaces, including your local IP, which may be useful for connecting to SSH.
htop - Enhanced top utility. Gives you very good terminal-based view on actual running processes, used ram, load, and more.
apt-get update - Syncs with debian's apt repository. This is mandatory to use many of apt commands because ArchiDroid's debian comes without local repo available, however fully configured to download and access it with just one command
apt-get install XXX - installs packet XXX from debian's repository.
apt-cache search XXX - searches for all packets including keyword "XXX". Ultra useful in terms of searching for specific packet.
Please note that pocket debian is VERY similar to normal native Debian/Ubuntu distribution, therefore above commands are not ArchiDroid's magic, they're very widely used in Debian/Ubuntu distros. If you want to learn more, most of the Debian/Ubuntu tutorials will be very helpful.
ArchiDroid's Pocket Debian Booter (adlinux)
You can call "adlinux" command from your favourite terminal.
adlinux is designed to boot and prepare ArchiDroid's Pocket Debian environment. It requires mode to be specified, and also respects any extra arguments passed.
If you call standalone "adlinux" command then it will print usage and then ask you what you want to do with giving proper informations about every choice. Additionally if you know what you want to do, you can also pass arguments directly to adlinux command, f.e. by executing "adlinux default", which will execute adlinux with "default" mode.
Available modes:
default - Will mount /data /system /storage/sdcard0 /storage/sdcard1 and core filesystems in chroot. Default suggested mode
safe - Will mount only core filesystems in chroot. Useful if you don't want to share your storage in chroot
bare - Won't mount even core filesystems such as /proc /dev or /sys. Requires "debian force" to enter chroot. This is the "real" safe mode. You won't be able to interact with an android in any way, while debian itself will work in very limited environment, making core functions unavailable. Suggested only for testing purposes
rebuild - Will automatically reboot your device and remove debian folder in the safe way. WILL CAUSE ALL DEBIAN DATA TO BE LOST!
unmount - Will automatically reboot your device to safely unmount debian environment
Extra options:
extsd - Use external sd card (/storage/sdcard1 /storage/extSdCard), if possible
intsd - Use internal sd card (/data/media/0)
Additional information about modes:
Debian shares core kernel filesystems in "safe" and "default" modes, while it also shares your internal and external sd card in "default" mode. This is nothing to be scared of, as you have full control of what you run in debian, however please note that you CAN'T do whatever you want. All mounted partitions in debian are "binded". "Bind" means that it's mirrored to the mount point and all changes on mounted partition WILL affect the mount point, which is logical. This is nothing to be scared of, as long as you know that debian only extends your environment, it does not fully works in it's own and you CAN cause serious problems from inside of chroot. The only really safe mode is "bare" mode, however in "bare" mode debian can't really do anything, as kernel filesystems are absolutely required for most of the functions. Okay so, you need to know one thing. If you have booted debian you SHOULD NOT touch debian's folder, which is ArchiDroid/debian (on your internal or external sd card, depends what you choosed).. As you know debian for example binds /data to it's folder /data, which is physically ArchiDroid/debian/data. If you for example delete ArchiDroid/debian through root explorer WITH mounted debian then it will ALSO delete debian/data folder, which is binded to /data, and therefore will delete your whole internal sd card, that's why it's extremely important to take care because booted debian becomes part of the android and deleting it can cause at least soft bricks, with a possibility of hard as well. If you want to delete debian folder PLEASE use "rebuild" mode, only through this way you're absolutely sure that nothing bad happens and you won't delete your whole system partition by accident.
Note about extsd option:
Debian requires symlink functionality, typically native windows filesystems DON'T support symlinks, therefore you need to have your external sd card formatted in one of the native linux filesystems, f.e. ext4. adlinux will automatically tell you if debian can be unpacked and used on your external sd card, however it won't be possible under most common filesystems, such as exFAT or FAT32.
Technical informations:
1. Pocket debian archive is located in ArchiDroid/System/debian.tar.gz file. This is "bare" system used for creating environment for the first time, you should not touch it.
2. adlinux detects if debian is already extracted when booting, if not, it's firstly extracted from the file described above.
3. After extracting (if required), core filesystems are mounted with "bind" option based on the mode you've selected in "mode" question above. Typically it mounts /data /system /storage/sdcard0 /storage/sdcard1 /storage/extSdCard /dev /proc /sys.
4. Unmounting is not fully supported right now (linux barrier), therefore both "unmount" and "rebuild" options require a restart to execute properly.
ArchiDroid's Pocket Debian Shell/Chroot (debian)
You can call "debian" command from your favourite terminal.
debian command is designed to allow you "jumping" into debian chroot created by adlinux. Please read how adlinux command works firstly if you haven't done that already. debian command checks if core filesystems are available (if debian is booted), and if they are then it firstly modifies required environment variables to make debian happy (such as TERM, HOME, PATH), then it changes root (chroots) into debian folder, therefore allowing you to execute everything from inside of chroot. It's very generic command, therefore standalone "debian" command won't give you a choice the way adlinux did.
Available options (parameters):
force - required for jumping into bare debian, created with "adlinux bare" command above. This skips debian checks for mounted core filesystems, normally you should avoid it at all cost, unless you know what you're doing. If core filesystems are missing then it's very likely that your debian will be disabled in more than 90%.
extsd - Use external sd card (/storage/sdcard1 /storage/extSdCard), if possible
intsd - Use internal sd card (/data/media/0)
cmd - Executes command in debian chroot
WARNING! cmd parameter will cause all further parameters to be threated as a command passed to debian, therefore you need to make sure that this is the last debian parameter which you want. For example "debian force cmd service ssh start" will skip filesystems checks and execute "service ssh start" in debian's chroot, however "debian cmd force service ssh start" will pass "force service ssh start" to debian, therefore respecting filesystems checks and passing invalid command.
This function is extremely useful for making init.d and other startup scripts. For example you can easily call "adlinux default" and then "debian cmd service ssh start" to call secure shell daemon on every boot with two easy steps.
Technical informations:
1. debian command uses chroot technology to change root of current shell to debian shell.
2. After chrooting to debian directory, /bin/bash shell is automatically called as default debian shell.
ArchiDroid's Flasher (adflash)
You can call "adflash" command from your favourite terminal.
adflash is a great small utility, which allows you to easily update your ArchiDroid to latest stable or experimental version with one easy command and delta upgrade. It utilizes ArchiDroid functions, therefore you must be running ArchiDroid to use it.
If you call standalone "adflash" command then it will print usage and then ask you what you want to do with giving proper informations about every choice. Additionally if you know what you want to do, you can also pass arguments directly to adflash command, f.e. by executing "adflash 2e git", which will execute adflash with 2.X-EXPERIMENTAL version using git mode.
Available versions:
2e - 2.X-EXPERIMENTAL
2s - 2.X-STABLE
1e - 1.X-EXPERIMENTAL
1s - 1.X-STABLE
Extra options:
git - Sets up local git repository, which gives you delta upgrades and bandwidth saving
direct - Downloads targeted branch as .zip file directly from github
clean - Cleans everything up, including local repo and tmp folder from ArchiDroid directory specified below
extsd - Use external sd card (/storage/sdcard1 /storage/extSdCard)
intsd - Use internal sd card (/data/media/0)
nozip - Shows changelog and changes only
Okay so, the most interesting option is the mode...
Direct mode is simple, fast and effective. It downloads target version (stable or experimental) from GitHub server, then it repacks downloaded zip file and makes it available for flash. You should use this mode for one-time downloads, such as once per stable version or two. The only advantage of this method is the ability to download from github (and with one command).
Git mode is complex. It uses ArchiDroid's Pocket Debian (read above) for cloning and updating local ArchiDroid repo. This gives several number of advantages, mostly for using experimental versions. Firstly, by having local ArchiDroid repo you have to download ONLY changes between your snapshot and server's snapshot, which means delta upgrades. Secondly, you have access to all commits from target branch, so you know exactly what has changed since your latest download. Again, this is extremely useful for experimental branch, as changelog may not be up-to-date. Keep in mind that git mode will require additional space on your device for keeping ArchiDroid repository, therefore you sacrifice some space for delta upgrades. This mode is extremely useful for flashing ArchiDroid often, for example daily experimental versions, because in fact you download only new commits instead of whole repo/archive.
ArchiDroid's RunOnce (Backend)
ArchiDroid's Init (Backend)
ArchiDroid's Backend Control
ArchiDroid Backend Control is a set of settings, which controls behaviour of ArchiDroid's Init. It's located in /system/archidroid/dev and contains a number of files, which are recognized by ArchiDroid's Init. You shouldn't directly touch /system/archidroid/dev, instead you can control behaviour of ArchiDroid's Backend through /system/archidroid/scripts. They can be easily executed through any script manager, f.e. Root Browser or Android Terminal Emulator. Some of the settings are also located in /system/archidroid/etc folder, mostly configurations for binaries utilized by ArchiDroid's Init.
ArchiDroid's HArdware Volatile Entropy Gathering and Expansion Daemon (Haveged)
The haveged project is an attempt to provide an easy-to-use, unpredictable random number generator based upon an adaptation of the HAVEGE algorithm. Haveged was created to remedy low-entropy conditions in the Linux random device that can occur under some workloads, especially on headless servers. Current development of haveged is directed towards improving overall reliablity and adaptability while minimizing the barriers to using haveged for other tasks.
The original HAVEGE research dates back to 2003 and much of the original haveged documentation is now quite dated. Recent work on haveged has included an effort to provide more recent information on the project and its applications.
The original research behind HAVEGE use was based upon studies of the behavior of processor caches from a hardware level. The 'Flutter' documents attempt to provide a modern view of HAVEGE at software level through the use of a diagnostic build of haveged that captures the non deterministic inputs to haveged for analysis by external tools.
ArchiDroid has built-in haveged entropy generator. It's controlable through ArchiDroid's Backend Control - ArchiDroid_Haveged_EnableDisable.sh. It's turned on in default configuration, through HAVEGED_ENABLED
ArchiDroid's Fast Random Number Generator (Frandom)
Frandom is a Linux kernel random number generator, which is 10-50 times faster than what you get from Linux' built-in /dev/urandom. And it uses very little (/dev/frandom) or none (/dev/erandom) of the kernel's entropy pool, so it is very useful for applications that require a handy source for lots of random data.
ArchiDroid has built-in frandom activator. It's controlable through ArchiDroid's Backend Control - ArchiDroid_Frandom_EnableDisable.sh. It's turned on in default configuration, through FRANDOM_ENABLED.
Notice: Kernel must support frandom module to actually make use of that. Init will try to search for frandom.ko module and load it, then use /dev/erandom for both /dev/random and /dev/urandom. If your kernel supports frandom, it will work. If it doesn't, obviously this will be skipped even if you have FRANDOM_ENABLED. Check ArchiDroid Init log located in /data/media/0/ArchiDroid/Init.log to check if frandom works properly for you.
ArchiDroid's Adblock (dnsmasq/dnrd, dnsproxy2, pixelserv)
dnsproxy2 is a replacement DNS proxy for Android 4.3+
This currently allows the user to manually override the DNS server IP,
and it sets the correct UID on outbound requests so they can be filtered
via iptables / AFWall+ / DroidWall / etc.
Dnsmasq is a lightweight server designed to provide DNS, DHCP and TFTP services to a small-scale network. It can serve the names of local machines which are not in the global DNS. The DHCP server integrates with the DNS server and allows machines with DHCP-allocated addresses to appear in the DNS with names configured either in each host or in a central configuration file. Dnsmasq supports static and dynamic DHCP leases and BOOTP for network booting of diskless machines.
Dnrd, Domain Name Relay Daemon is a caching, forwarding DNS proxy server. Most useful on vpn or dialup firewalls but it is also a nice DNS cache for minor networks and workstations.
Pixelserv is a super minimal webserver, it's one and only purpose is serving a 1x1 pixel transparent gif file. Using some creative firewalling (netfilter/iptables) rules you can redirect some webrequests (for adds for example) to pixelserv.
ArchiDroid has built-in Adblock. It's controlable through ArchiDroid's Backend Control:
ArchiDroid_Adblock_DnsmasqDnrdModeSwitch.sh
ArchiDroid_Adblock_EnableDisable.sh
ArchiDroid_Adblock_EnableDisableLocalDNSes.sh
ArchiDroid_Adblock_EnableDisableLocalDNSesDaemon.sh
ArchiDroid_Adblock_LockUnlockHosts.sh
ArchiDroid_Adblock_MoabAdawayHostsSwitch.sh
ArchiDroid_Adblock_Reload.sh
It's turned on in default configuration, through:
ADBLOCK_ENABLED
ADBLOCK_LOCAL_DNSES_DAEMON_ENABLED
ADBLOCK_LOCAL_DNSES_ENABLED
ADBLOCK_USE_ADAWAY_HOSTS
ADBLOCK_USE_DNSMASQ
In short. This is a very advanced and powerful solution for blocking ads through DNS queries. First of all we're forwarding all DNS traffic to localhost (127.0.0.1). Then we're handling them through local DNS server - dnsmasq (default), or dnrd (option). Our local DNS server reads blocked hostnames through special /system/archidroid/etc/hosts file, then if no record is found, it forwards DNS query to OpenDNS/Google DNS servers, or if it's found, returns 127.0.0.1 as the address. Lastly, pixelserv is providing a 1x1 NULLGIF response on local web server, so instead of big black/white screen instead of the AD, we get 1x1 transparent pixel, which usually perfectly hides ad from the app or the website.
Extra features:
1. You can specify if you want to use dnsmasq (default), or dnrd (option) as a local dns server. Dnsmasq is more flexible, modern, faster and has less memory footprint, however I also left dnrd as an option, because it's proven to work stable.
2. You can specify hosts file, which you want to use. In default configuration we use AdAway's hosts file, with more than 30 thousand of records, which results in extra ~2.5 MB memory usage. You have also an option to use MOAB (Mother Of Ad Blocking) hosts file, with more than 330 thousand of records, which will result in about ~30 MB memory usage. Eventually you can append your own rules or use non-standard hosts file, available in /system/archidroid/etc/hosts. Pro tip: You can point AdAway to use this hosts file (/system/archidroid/etc/hosts_adaway), which will result in automatic updates. /system/archidroid/etc/hosts is a symbolic link, either to hosts_away or hosts_moab, if you want to specify your own hosts, you can delete symbolic link and write your own rules.
3. Original /system/etc/hosts file has been locked from editing. This is to ensure that AdAway or other adblockers won't use obsolete and slow method of blocking ads through hosts. The whole point of implementing Adblock in ArchiDroid is to provide you with super-fast, flexible and effective way of blocking ads, also with getting rid of black/white ad screen. In 99% situations you don't want to touch ArchiDroid's default behaviour, as it blocks ads perfectly. Eventually, if you have a very good reason, you can unlock original hosts file through ArchiDroid's Backend Control and modify them, however keep in mind that every additional rule WILL slow down your network speed.
4. In default configuration local dns server uses two OpenDNS servers at port 5353, two Google DNS servers at port 53 and up to two local DNS servers provided by your Wi-Fi/3G connection, which overall gives a sum of 6 remote dns servers. In some rare scenarios (f.e. some wi-fi hotspots) you can notice that a moron, administrator of this wi-fi, blocked all dns queries and forces you to use his DNSes. This is BAD because of freedom and so on, but it's very common practice, that's why I turned on local DNSes as well. If you want to improve your privacy at least a bit, you can disable local DNS servers and then use only OpenDNS and Google DNS.
5. Above option initialy has been written to allow you one-time access to such non-trusty wi-fi's. But if you for any reason need automatic update of your local DNSes (3G and Wi-Fi's will use different local DNSes), you can also turn on Local DNSes Daemon, which will automatically query and update local DNSes if needed. This is also turned on in addition to local dnses above, of course in default preset.
ArchiDroid's Forced Update (RunOnce)
Forced update selected during mode selection in aroma tells RunOnce to work in "INSTALL" mode even on "UPDATE" mode, apart from that it works exactly the same as update mode, only RunOnce is affected.

Credits
ArchiDroid Core
- AROMA Installer
- AROMA Filemanager
- Devil Kernel
- Googy Max Kernel
- PhilZ Touch Recovery
- SuperSU
- Nova Launcher
- TouchPal Keyboard
- Hacker's Keyboard
- Android Terminal Emulator
- BetterBatteryStats
- Cool Tool
- Greenify
- MX Player & Custom Codec
- LMT
- Root Browser
- Titanium Backup
- CrossBreeder
- Online Nandroid
- Xposed Framework
- App Settings
- XPrivacy
- Debian
- cURL
- GitHub
ArchiDroid 2.X
- OmniROM for GT-I9300
- Linaro Toolchain
- Boeffla Kernel
- Yank555.lu Kernel
- Temasek Kernel
- Spirit 2
ArchiDroid 1.X
- SamMobile
- JustArchi's Android Kitchen & dsixda's Android Kitchen
- Boeffla Kernel
- Yank555.lu Kernel
- KitKat Revolution Theme
- Blue Theme
- All Backs Black Theme
- Wanam Xposed
Special thanks to:
- Kenshin, for graphic design and ArchiDroid Touhou bootanimation
- @mrtur, for graphic design and helpful hand during ArchiDroid experimental tests
- @malachow, for helping users across both international and polish board, sharing the spirit of ArchiDroid
- All ArchiDroid Contributors, for improving and making ArchiDroid better!
- ArchiDroid Facebook Group, for beta-testing the very first alphas of ArchiDroid 2.0.0
- ROM Cleaner, for awesome generic list of bloatware
- Android Revolution HD, for being ex-ArchiDroid 1.X base
- WanamLite, for being ex-ArchiDroid 1.X base
- Temasek's Unofficial Build, for being ex-ArchiDroid 2.X base
- crDroid, for being ex-ArchiDroid 2.X base
- You, for choosing ArchiDroid over other available ROMs

The Keyboard looks a bit too Bulky.. Judging from the Screenshots.
Will give it a try though. Thanks!

Sounds good will give it a go. Thanks!
By the by did you fix the halo bug that is found in temaseks ROM? ( if you use the halo))) app to pin applications to halo the notifications are not hidden in the notification tray)
Sent from my GT-I9300 using xda app-developers app

DiDA™ said:
The Keyboard looks a bit too Bulky.. Judging from the Screenshots.
Will give it a try though. Thanks!
Click to expand...
Click to collapse
Aaaand we have a first visitor!
Don't worry. You have two more keyboards in aroma to choose from .
Pantherx12 said:
Sounds good will give it a go. Thanks!
By the by did you fix the halo bug that is found in temaseks ROM? ( if you use the halo))) app to pin applications to halo the notifications are not hidden in the notification tray)
Sent from my GT-I9300 using xda app-developers app
Click to expand...
Click to collapse
Unfortunately not. Temasek knows better how to merge and fix stuff directly connected with the framework. I'm just a Padawan here . But I'm doing my best, check it yourself .

JustArchi said:
Aaaand we have a first visitor!
Don't worry. You have two more keyboards in aroma to choose from .
Unfortunately not. Temasek knows better how to merge and fix stuff directly connected with the framework. I'm just a Padawan here . But I'm doing my best, check it yourself .
Click to expand...
Click to collapse
Ahh that's a shame its essential for me.
I'll still download and use it for a day let you know how it runs though
Sent from my GT-I9300 using xda app-developers app

Great to see another ROM for our beloved SGS3. I have used a few CM10.1 based ROMs but always seemed to have problems with receiving/making calls
On the other hand I dont like Sammy based ROMs so I'm downloading your ROM to try it out :thumbup:
Sent from my GT-I9300 using xda premium

TonyK2005 said:
Great to see another ROM for our beloved SGS3. I have used a few CM10.1 based ROMs but always seemed to have problems with receiving/making calls
On the other hand I dont like Sammy based ROMs so I'm downloading your ROM to try it out :thumbup:
Sent from my GT-I9300 using xda premium
Click to expand...
Click to collapse
I'm glad to inform you that I haven't got any call issues since start of developing ArchiDroid 2.0, and that was in May . Of course that doesn't mean that you also won't have such issues but personally I think that you will be satisfied . Check it yourself.

Downloaded & flashed!! First time Aroma hung at 0.00% for about 10 minutes, turned phone off/on & changed some installation settings (not sure if any caused the hang) & the installation was successful. ROM feels silky smooth & looks great!
Will use the ROM for the next few days & see if there are any issues, great so far though.
Sent from my GT-I9300 using xda premium

TonyK2005 said:
Downloaded & flashed!! First time Aroma hung at 0.00% for about 10 minutes, turned phone off/on & changed some installation settings (not sure if any caused the hang) & the installation was successful. ROM feels silky smooth & looks great!
Will use the ROM for the next few days & see if there are any issues, great so far though.
Sent from my GT-I9300 using xda premium
Click to expand...
Click to collapse
Thanks. It looks like latest Aroma 2.70 B6 has some hang issues. That not a problem, simply repeat flashing with any combination you like.
Looking forward to further opinions .

And we have first new experimental already .
https://github.com/JustArchi/ArchiDroid/commit/aa8845031dc93adbf08db33dc8b7869f0d5b27b8
https://github.com/JustArchi/ArchiDroid/commit/1acae50c62c7ef59ab2acb022b33fa47c220207a
https://github.com/JustArchi/ArchiDroid/commit/b3c3c87f795970fc14142121892080a9a74f188b
If you're interested in flashing ArchiDroid twice per day then take a look at "GitHub" section in the first post :laugh:. Remember that experimental versions won't be released the same way as stable ones.
@Pantherx12
As far as I know Temasek fixed this issue in V104.3, so you can get your fixed ArchiDroid right now .

By far the best I've had so far on your phone.
Great job,thx JustArchi

JustArchi said:
If you're interested in flashing ArchiDroid twice per day then take a look at "GitHub" section in the first post :laugh:. Remember that experimental versions won't be released the same way as stable ones.
@Pantherx12
As far as I know Temasek fixed this issue in V104.3, so you can get your fixed ArchiDroid right now .
Click to expand...
Click to collapse
Looking nice! Makes me happy that it is based on tema's build. Some more flexibility is always welcomed! As about xposed framework. That's a problem. Because it breaks the some framework tweaks tema included after v100. I was using xposed before but there was a much difference with xposed framwork & without. so i removed it.
Plus, What fix tema included in 104.3? A persistent notification one? No, That is still there. Good Luck! :highfive:

Noob-superuser said:
Looking nice! Makes me happy that it is based on tema's build. Some more flexibility is always welcomed! As about xposed framework. That's a problem. Because it breaks the some framework tweaks tema included after v100. I was using xposed before but there was a much difference with xposed framwork & without. so i removed it.
Plus, What fix tema included in 104.3? A persistent notification one? No, That is still there. Good Luck! :highfive:
Click to expand...
Click to collapse
Last time I've used xposed it worked fine but if you say so then I'll take a closer look, thanks for reporting.
And about halo fix, I was refering to @Striatum_bdr
It seems halo fix is included in 104.3 built that can be founded in Temasek's experimental built on dev-host only repo.
Click to expand...
Click to collapse
But if it's not then we need to wait for temasek to fix it . I'm pushing his updates into my experimental branch as soon as possible, sometimes 10 minutes after release

JustArchi said:
Last time I've used xposed it worked fine but if you say so then I'll take a closer look, thanks for reporting.
And about halo fix, I was refering to @Striatum_bdr
But if it's not then we need to wait for temasek to fix it . I'm pushing his updates into my experimental branch as soon as possible, sometimes 10 minutes after release
Click to expand...
Click to collapse
Take a look on the apps openning speed. & alot smoothness without xposed framework. Keep up the good work. I'll soon give it a try! :good:

At the moment I'm updating Q&A, some user signatures and so on.
Also in the meantime I'm testing some new binary files to ensure less problem with aroma freezes. I'm not quite sure if I'm able to do anything with that but at least I'll try . Every approved update will be available in experimental branch of course.

Fixed Halo bug??

Related

Can Android OS run anything created for Linux if recompiled for Android?

I'm new to the Android world, but not to Linux/Solaris/BSD; even though they are supposedly cousins I still have that doubt in my mind.
Therefore, can some one with more coding experience tell me if it's safe to assume we can recompile anything made for Linux to work in Android? or it's not as simple as it seems say like Linux/Unix/Solairs/BSD ?
Android is Linux.
Android runs on a linux kernel, but it is not a traditional gnu/linux system. There is not even a glibc.
On top of the kernel is a managed virtual machine based on (but not compatible to) the Java platform, and a completely different api stack against which you build applications.
See http://developer.android.com/guide/basics/what-is-android.html
AllGamer said:
I'm new to the Android world, but not to Linux/Solaris/BSD; even though they are supposedly cousins I still have that doubt in my mind.
Therefore, can some one with more coding experience tell me if it's safe to assume we can recompile anything made for Linux to work in Android? or it's not as simple as it seems say like Linux/Unix/Solairs/BSD ?
Click to expand...
Click to collapse
yes, you can cross compile linux stuff to run on your android device (but there could be limitations since it's not running a complete linux OS).
a good example is busybox.
you can also install Android Scripting Engine to run python, ruby, perl & shell scripts from the android UI.
Yes, but not in the way you think.
Android doesn't have standard libraries and no x windows (so no gui apps).
Basically you still have to do a full port unless its a simple CLI app
Thanks for all the helpful info.
I'm sure that most apps or "replacement" apps are already available for anything we can imagine, but there will always be that one app that you need but it's not available.
in those cases, it might be easier to recompile the application to run in Android, asuming it is compatible; in the worst case scenario, it might require a complete port as mentioned above.
You can, but you have two (or three, if my trials are worth it ) ways to do it:
1 - You statically compile (cross-compile, actually) all linux application you want (be careful of the dependencies tho ). This way isn't what I prefer since applications become huge when they're statically linked.
2- You compile Bionic C library (which is embedded to android system) for your cross compiler first, then you can compile applications with it. This is one way to do it, but Binoic library is a trimmed library, so you might not compile everything.
3* (still developmental ) - You can compile GlibC first for your device, then compile your applications. The problem with that is GlibC is huge and you have to find a way to tell your Android system to look for GlibC libraries as well.
I'm currently working on step 3 now; will see what it brings : http://forum.xda-developers.com/showthread.php?t=1299962 . You can read it here.

[Q] [Qs] Install custom-built native 100% open-source Linux on G1

As the title above suggests, I am after building and using a complete Linux native-built (not over-android and such like) system, which is build from source (no propriety google and other such closed-source nonsense) with the following features:
- 'standard' kernel (again, built from source) with, possibly, the SELinux hooks enabled (see below);
- NO GUI (at least not for now anyway) - just plain old terminal environment;
- iptables and associate tools;
- SELinux + associated tools built and installed - this, although not mandatory, it is highly desired. I can build the security policy myself, though the tools I need to use require recent working version of perl, python & m4 to name a few packages required.
- auditd (highly desirable and obviously dependent on whether SELinux could be build & installed);
- dev-mapper tools;
- vim (minimal configuration);
- bash;
- crond
- openvpn - i have my own 'customised' sources for this, which I use on all of my machines;
- linphonec - this, from what I understand, could be build from source for armv7 (which is what G1 is based on afaik);
That's it. I don't need any other fancy tools/packages. I would also like the root image (/) to be as a 'live cd', though I am not sure with the 192MB RAM available to G1 whether this is at all possible?
As evident from the above, I intend to use the phone as a mini-pc-station, which connects to my network (via vpn) and uses sip-based voip. The intended method of connection is about 70% wifi (various hotspots as well as my own wifi router when I am at home) and 30% gps 2/3g, HSDPA/HSUPA when no hotspots/wifi is available (that probably means the use of sim card, I guess). I also need the audio to be usable in full-duplex mode.
My G1 phone is already rooted and contains custom android 2.1 rom upgrade from here, though I have to admit that even though I have quite a bit of skills as a programmer, my experience with embedded devices - and g1 in particular - is the grand total of nil, I am complete n00b as far as this goes, so if anything I have included in this post is a bit...erm...stupid, I apologise in advance.
I did a bit of research and came across various attempts to build and install Debian[1][2], build and use OpenMoko[3][4] and SHR[5], as well as getting rid of the unnecessary - bulk - stuff[6][7] and according to some[8] what I want to achieve seems 'doable', though as a newbie I am not sure what route to take, thus I ask for a 'second opinion' from the more knowledgable on here before I dive-in and start spending more time on this.
What concerns me are the crucial bits that seem to drive the G1 hardware - wifi and gps connectivity in particular - they all seem to be propriety and closed-source[8]. I don't know whether this problem has been overcome (if so, I'd like to know how exactly?), but I would like my phone to be 100% build from open source and have the functionality I described briefly above, if that's possible.
Also, I'd like to build the phone image on a 'regular' PC - I have quad core CPU (x86_64 arch), which should be sufficient for the task, I think. I tried to build x86-64 -> armv7 (arm11) cross toolchain, but do not know enough about what 'flavour' of the core c library is in use or shoud be in use on G1?
Again, any help with this would be much appreciated, thanks. As a newbie with less than 10 posts I am only allowed to post on here instead of the dev forum, which was my intention initially!
[1] Debian & Android Together on G1 - Jay Freeman (saurik)
[2] Native Debian on HTC Dream G1 | Novaspirit - Notepad
[3] Main Page - Openmoko
[4] Openmoko on HTC-Dream
[5] Devices/HTCDream/InstallGuide - SHR
[6] xda-developers - View Single Post - [Q] G1 rom without phone bulk?
[7] Official "Native Linux/Debian" Thread - xda-developers
[8] Dream - Htc-linux
The architecture you need to build for is armv6 / armv6j. Terry has a complete AOSP setup on github, probably you can extract some additional information from there.
Thanks for the the answer and the link provided - it seems that all of these repositories contain Android-based stuff.
As I indicated in my initial post, this is not what I am after - I already have rooted system with an old-ish android installed (2.1). I just want a 'standard' customised kernel (Fedora, Debian, Ubuntu) so that I could then easily build and install the software components I indicated above and possibly lock them in in a security domains using SElinux as well as get rid of all the propriety stuff which currently exists in android.
'open source' android is not where I want to go.
Yes, it's mostly android, but there you can find also his kernel sources and how to build them. In addition there is busybox, ... i.e. everything you need to build a command line linux. Additional packages, like python, ... you want to integrate you have to get and to integrate from different sources. The "final" setup is to be done by you. What else you are looking for?
Sent from my Gingerbread on Dream using XDA App
Maybe I am not looking in the right place, but from the link you provided I could only see GB-* (gingerbread?) repos with the exception of 'kernel-biff-testing' which contains the android kernel, which, to my understanding, is not the 'standard' kernel and is therefore not what I am after (again, see my initial post).
Its a kernel for the htc dream.. yes there are are android related components (all under gpl v2) you can if you wish configure them out. And patch it to use some device memory like the camera ram and video ram as general ram since you wont be using the android libraries used by these, you will also want to enable the console.
Use that and a debian or other gnu userspace if you wish, on system, userdata,cache, partitions and ans ext partition on the sdcard..
Not sure how well your ideas for audio will work. Seems somewhere are alsa drivers.
That or look up the openmoko port to the dream.
What you are missing is unlike x86 the linux kernels for arm devices frequently need patches to work.. there is a movement to reduce this but most devices at current require some patches not in mainline.
FYI
Wifi: drivers are open source,
Bluetooth: the serial port is open but the device its self requires a binary firmware blob to be uploaded to it
Mobile (3g/gsm) camera and gps: kernel has some api calls to the arm9 and provides access to userspace.. binary blobs in android userspace talk to these devices so I don't know the details, openmoko is the best place to look at details here.
Thanks for taking the time ezterry! Comments below:
ezterry said:
Its a kernel for the htc dream.. yes there are are android related components (all under gpl v2) you can if you wish configure them out.
Click to expand...
Click to collapse
Are we talking about the 'standard' kernel or the android one? If it is the latter that won't be of much use to me 'cos the arhitecture of the android kernel is very different from the standard one (the likes of Ubuntu, Debian, Fedora etc). In addition, there are no SELinux hooks afaik, which makes building and deploying SELinux policies impossible[1].
Moving on...
ezterry said:
Use that and a debian or other gnu userspace if you wish
Click to expand...
Click to collapse
Do you mean deploying Debian on top of android? If so, this is not what I need - I want native system, one which my phone boots into as soon as I turn it on - without touching anything android-related!
ezterry said:
That or look up the openmoko port to the dream.
Click to expand...
Click to collapse
I did, but from what I could gather it isn't complete and has a lot of rough edges.
ezterry said:
FYI
Wifi: drivers are open source,
Click to expand...
Click to collapse
Erm, yes and no - WL1251 (which is what g1 uses) has 2 drivers - 1) TIWLAN, which is GPL'd, but not very useful as it relies on non-standard (i.e. android-specific) stack. That stack has nothing to do with the 'standard' Linux stack; and 2) 'native' wl12xx driver which does use the standard Linux stack, but seems not very complete and requires a lot of quite ugly hacks to enable some sort functionality approaching acceptable levels[2][3].
ezterry said:
Bluetooth: the serial port is open but the device its self requires a binary firmware blob to be uploaded to it
Click to expand...
Click to collapse
Thankfully, I am not interested in bluetooth - at least not at this stage anyway.
ezterry said:
Mobile (3g/gsm) camera and gps: kernel has some api calls to the arm9 and provides access to userspace.. binary blobs in android userspace talk to these devices so I don't know the details, openmoko is the best place to look at details here.
Click to expand...
Click to collapse
Please ellaborate! I did look and Openmoko seems to suggest 3g/gsm status ' fairly complete w/ FSO2' (freesmartphone.org?)[4].
[1] The case for SEAndroid
[2] WL1251 - HTC Linux
[3] wifi firmware - xda-developers
[4] Dream - HTC Linux (core status)
YES You need to download some dream source and look at menuconfig... and yes disable the android specific addons and moduels. and build it
YES you need to ditch the android init, and bionic ect, and replace them with the arm builds from debian or other GNU project source, and change the android ramdisk (root directory) into a debian (or distro of choice) ramdisk to pivot_root to what android calls /system and mount sd-ext if/as needed
YES you need to find the open source AMSS drivers from openmoko rather than use the android binary blobs,
YES you many need a special WPA Supplement (but still 100% open source) to deal with wifi. (its still normal linux networking .. just setup is strange)
NO Android will not boot or exist if you remove lowmemory killer Ashmem, and if it still exists binder from the kernel
NO dalvik will not exist when you install a debian ramdisk to your boot.img, and debian base system to /system and /sd-ext as you see fit
MAYBE SELinux will work with.. maybe it needs some patching.. but once the android parts are disabled in menuconfig you can try to enable SELinux (just the code is modified for the dream and you may find rough edges that need ironing first)
Your direction need be as follows: 1. realize its still the linux kernel (with some new modules that linus is not sure belong in the actual kernel) 2. learn how the linux kernel enters userspace (starts init) yes all of android userspace is re-written from the ground up, so you want to dump androids init and use a gnu-linux one.. and dump bionic for proper gnulinux libc/utilities
_----
It ought to be noted in your links are openmoko and others that effectively tried what you are asking,
It may be rough at the edges but they may have the starting point for you.. but the effectively tried and cleaned up some larger edges on what I am describing. Thus fixing the rough edges in these other projects may be better that starting from scratch.. at least keep them for refference..
I however have openwrt routers and Linux desktops and netbooks for Linux, OS's MacBook for OS's and android phones/tabs for android, and vmware for windows XP.... so have not exactly hadthe need to transform a htcdream to gnu Linux or have reason to.
I'd personally would be more interested in *.ipkg as used by openwrt to install Linux packages in the bionic userspace of android (for use on the command line but keeping android, and without need of a full debian chroot)

[EOL] [ROM] [UBUGNG1] [4.3] [Samsung] | [11/08/14] ArchiDroid V1.7.18

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Clean | Stable | Flexible | Optimized | Excellent
-> ArchiDroid 1.X <- || Change to ArchiDroid 2.X
Power In Your Hands​
Changelog
ArchiDroid 1.7.18
- [!] Updated base to I9300UBUGNG1
- [!] Removed all incompatible and outdated themes: AOSP, Blue, S5 # If they get update for UBUNG1 base, they'll be added back.
- Black theme is still available, as it's universal and works with every base
- ArchiDroid 1.X now uses ArchiDroid's 2.X Busybox (previously: Stericson's)
- Fixed hardswap not being activated on ArchiDroid 1.X, when placed on external sd card # Reported by @bolt890
- Removed BBS app as per developer request
- Reverted Modem back to XXUGNA8 # There's no point in including UB modems
- Updated ArchiKernel to 1.4
- Updated Boeffla kernel to 5.4-beta2
- Updated MX Player to 1.7.30
- Updated XPrivacy to 2.2.7
Download
Stable: ArchiDroid 1.7.18 XDA
Bloatware: ArchiDroid UBUGNG1 XDA
Oldstable: ArchiDroid 1.6.4 XDA
Known Issues
All known and unknown Sammy's bugs (if any)
Follow ArchiDroid On XDA!
Write A Review!
Rate This Thread!
Buy Me A Beer!
Like ArchiDroid On Facebook!
Hit Thanks!
XDA:DevDB Information
[EOL] [ROM] [UBUGNG1] [4.3] [Samsung] | [11/08/14] ArchiDroid V1.7.18, ROM for the Samsung Galaxy S III I9300
Contributors
JustArchi
Source Code: https://github.com/JustArchi/ArchiDroid-legacy
ROM OS Version: 4.3.x Jellybean
ROM Kernel: Linux 3.0.x
Based On: Samsung
Version Information
Status: No Longer Updated
Current Stable Version: 1.X-STABLE
Current Beta Version: 1.X-EXPERIMENTAL
Created 2013-08-21
Last Updated 2015-04-04
Reserved
[SIZE="+3"]ArchiDroid's FAQ / Q&A[/SIZE]​[SIZE="+1"]This is the development thread. In case of any non-development questions or issues, you should use above link[/SIZE]​
[SIZE="+1"]Features / Why ArchiDroid?[/SIZE]
First of all, ArchiDroid includes everything available in it's base. The whole point of ArchiDroid is to improve the base, without needing of making any trade-offs, so by flashing ArchiDroid, you're getting everything offered by the base itself. There's nothing to lose, everything to gain.
You can read detailed information about every ArchiDroid component here. It's a massive wall of text, so I'm only going to list the core features without describing them.
These were written from scratch, they're completely unique and you won't find exactly the same implementation in any other ROM.
ArchiDroid-Unique features:
- ArchiDroid's AROMA Installer
- ArchiDroid's Pocket Debian
- ArchiDroid's Flasher
- ArchiDroid's RunOnce
- ArchiDroid's Init
- ArchiDroid's Backend Control
- ArchiDroid's HArdware Volatile Entropy Gathering and Expansion Daemon (Haveged)
- ArchiDroid's Fast Random Number Generator (Frandom)
- ArchiDroid's Adblock (dnsmasq/dnrd, dnsproxy2, pixelserv)
- ArchiDroid's Forced Update
Apart from that, here, on the credits page, you can find all third-party projects, which have been implemented into ArchiDroid. In addition to that, it's up to YOU to decide if you want to install something, or not.
ArchiDroid focuses on flexibility and user choice.
If you're looking for fastest ROM, choose ArchiDroid.
If you're looking for most battery-saving ROM, choose ArchiDroid
If you're looking for cutting-edge functions, choose ArchiDroid
If you're looking for the most flexible rom ever created, definitely choose ArchiDroid
ArchiDroid adjusts to your needs. You can make it whatever you want. With bunch of presets, modes and questions, you can make your ArchiDroid behave. Check yourself why ArchiDroid is The TOP 1 ROM for Galaxy S3http://forum.xda-developers.com/galaxy-s3#romList, according to number of followers, rates, reviews and downloads count. Check the Reviews, take a look at Video Reviews, do whatever you want to, ArchiDroid is proven to be one of the best ROMs for Galaxy S3, ever created.
Try ArchiDroid once, and you'll never look back. I can assure you.
Disclaimer
ARCHIDROID SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THE WARRANTIES THAT IT IS FREE OF DEFECTS, VIRUS FREE, ABLE TO OPERATE ON AN UNINTERRUPTED BASIS, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
Click to expand...
Click to collapse
Your warranty is now void.
I am not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed. Please do some research if you have any concerns about features included in this ROM before flashing it! YOU are choosing to make these modifications, and if you point the finger at me for messing up your device, I will laugh at you. Hard. A lot.
Click to expand...
Click to collapse
Developer's Kitchen
Unless stated otherwise, all ArchiDroid components are licensed under the Apache License:
Code:
Copyright 2014 [email protected]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Especially:
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of this License; and
You must cause any modified files to carry prominent notices stating that You changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
Click to expand...
Click to collapse
ArchiDroid is one of the most complex ROMs ever created. When you start digging in my work, you can very easily get lost. And I'm not talking about base itself, but about everything next to it. You can use every part of my work, as long as:
1. You include proper credit where you should. This usually includes proper comment in a script/file and in the credits of the project, including license (if needed)
2. You let me know about this fact. Through PM on xda or e-mail
I'm always happy to help, especially with the problems I faced in the past. However I also want to be respected, considering that most of the ArchiDroid parts were written from scratch.
ArchiDroid 2.X vs. ArchiDroid 1.X
The long battle between choosing over ArchiDroid 2.X and 1.X is still recent. There's no one real and true answer to this. It's up to YOU to decide who wins this battle, because obviously every user is different. I'm only going to give you some tips and briefly describe differences.
Despite the name, ArchiDroid 2.X and 1.X are totally different ROMs. It all started with ArchiDroid 1.X, a ROM based on Sammy's stock firmware, with all needed goodies and features baked in. Then eventually I managed to implement everything what I ever wanted to implement, therefore making ArchiDroid 1.X more or less complete. Then I started with ArchiDroid 2.X project, built from scratch from AOSP sources, with all source codes available.
The point is, ArchiDroid 1.X is more or less complete, there's no "real" development going on, as I obviously don't have samsung sources to begin fun with. On the other hand, ArchiDroid 2.X will never be finished, there's always something to improve, something to add, something to fix... This is ongoing process, which will reach the end when I finally break my SGS3 or change the phone to another one .
If you're new user or you don't know how AOSP works on our SGS3s then I highly suggest to flash ArchiDroid 1.X firstly. ArchiDroid 2.X is targeted at advanced users, who don't mind some "core" features being broken. It will NEVER be as stable as ArchiDroid 1.X is, so if stability is the number 1 for you, choose 1.X.
ArchiDroid comparision
From 1-10, based on my own point of view
Stability
2.X - 5
1.X - 8
Compatibility
2.X - 4
1.X - 9
Battery
2.X - 6
1.X - 9
Performance
2.X - 9
1.X - 6
Features
2.X - 9
1.X - 4
Android Updates
2.X - 9
1.X - 6
-----------
Overall
2.X - 42
1.X - 42
This is ArchiDroid comparision in a nutshell. If you ask me, I think that ArchiDroid 1.X is far better choice for daily driver, but if you're advanced user and you know how to deal with possible broken functions then you can have great time using ArchiDroid 2.X as well.
Remember that only ArchiDroid 1.X supports Samsungs-specific features, such as Smart Stay, Screen mirroring, Allshare or whatever. This also includes closed-source proprietary drivers, such as many bluetooth headsets, which won't work under open-source AOSP. Think twice before considering 2.X if you're addicted to these Samsung goodies.
On the other hand, ArchiDroid 2.X is the only ArchiDroid with "real" development going on, however all universal changes are also backported back to ArchiDroid 1.X, so you're not missing any feature, which benefits also Sammy's base.
That's it. I hope that a choice between both of these awesome roms is a bit easier now. If you still can't decide I suggest to flash both of them for some time and then decide which suits you better.
Know Your ArchiDroid
ArchiDroid is not only a rom. It's not only a baked android with third-party apps, modifications and tweaks. ArchiDroid is an universal backend which improves rom by many built-in functions.
Let me tell you a story. During developing first version of ArchiDroid 2.0 I experienced many problems, which were not that easy to solve. First of all - apps data. Trust me or not but you can't simply extract data, put it in /data/data after install and hope that it works. Android will detect such injection, report inconsistent of data and wipe everything attached to that. Okay so... How I should provide you with my boeffla preset? CoolTool settings? STweaks profile? If I put my data during flashing it'll get wiped. If I put my data and deny wiping it then Android will report inconsistent of data to user and work unstable. Yes guys, it's impossible to do so without a trick or without recompiling whole rom.
I won't tell you a whole story, because you probably don't want to hear about ArchiDroid development. I'll simply tell you that I overcome MANY difficulties, simply because I do what I like, and I like what I do. After countless number of hours, I can finally provide you with the ROM, which is the best. Why is it the best? Because I'm improving the base, and I'm not making any trade-offs.
GitHub / Versioning / Experimental Versions
ArchiDroid version contains 3 numbers. X.Y.Z. X is the base number of the rom. For now it won't change because ArchiDroid 1 is based on Sammy Rom and ArchiDroid 2 is based on CyanogenMod. Basically we have two numbers left, Y and Z. Y number will change when I'll implement something really new, when I'll make some advanced improvements or after many Z changes. Z number is the "standard" update, like updated sources, some bugfixes and so on.
I've learned many things since releasing of first ArchiDroid 1.0.0. Because of that I've also created a GitHub repository, which you can find here. What does it mean for you? First of all as you can see there are 4 different branches. 2.X-STABLE, 2.X-EXPERIMENTAL, 1.X-STABLE and 1.X-EXPERIMENTAL. What does it mean? You can enter selected branch and click on "Commits" button to see every single update which I've made to selected branch. Experimental branches will get updates nearly every single day, especially 2.X-EXPERIMENTAL because of many AOSP changes and updates. Additionally after some tests I'll merge current 1.X-EXPERIMENTAL into 1.X-STABLE and provide as update, of course if current experimental will be stable enough to do so.
However that doesn't mean you need to wait for my updates! You can easily "pack" latest experimental and flash without needing to wait for my weekly build. I'll tell you how to download and flash it by yourself.
You can see differences between current stable and experimental here.
[Newbie Version]
1. Open 1.X-EXPERIMENTAL branch.
2. Click on Download Zip button located in bottom-right corner.
3. Install 7-Zip if you don't have that already. Other programs may, or may not work correctly.
4. Right-Click on zip, select Extract Here
5. Navigate to newly created ArchiDroid-1.X-EXPERIMENTAL folder
6. Select all files WITHOUT __dont_include folder, right-click and select 7-Zip => Add to archive
7. Make sure that you have zip format, Fastest compression (to save some megabytes) and Deflate method of compression.
8. Voila, copy newly created ArchiDroid-1.X-EXPERIMENTAL.zip to your phone and flash as usual.
[Expert Version]
1. Install Git for Windows or Linux
2. If you're on windows then make sure that windows won't change LF into CRLF (git config --global core.autocrlf false)
3. Clone my git repository using .git file. Keep in mind to specify depth, as this repo is really big. (git clone https://github.com/JustArchi/ArchiDroid.git --branch 1.X-EXPERIMENTAL --depth 1)
4. Select all files WITHOUT __dont_include folder zip them into standard .zip format with Deflate compression or without any compression.
5. Copy .zip to your phone and flash as usual
6. In order to update your local repo execute git pull origin 1.X-EXPERIMENTAL and go to point 4.
Additionally you can watch my short video, which shows how to flash experimental ArchiDroid going through "Expert Version".
Video Reviews / How ArchiDroid looks like?
@Koogly
@SkywalkerZ
ArchiDroid User Signatures
ArchiDroid Features
Know your ArchiDroid, learn how to use it
Introduction / Basics
Welcome to ArchiDroid's world mortal. In this tutorial we will show you what ArchiDroid has "inside" and what it really offers. All of things included in this post are ArchiDroid-specific, which means that you won't find any ROM with the same features, as they're written from scratch.
Here you can find some definitions of the words used in sections below. You should know most of them, but in case somebody is lost here you can get back on track.
Terminal, Shell - Typical android shell, which may be obtained in three ways.
1. Through native Android Debug Bridge (ADB) with command "adb shell" from the PC or even "ADB through network" (if supported).
2. Through any Android terminal app, f.e. Android Terminal Emulator bundled with ArchiDroid.
3. Through secure shell daemon (sshd), which needs to be turned on firstly. This is extremely useful in terms of pocket debian, which will be described later.
You can use any of these methods to access android's terminal, however usually Android Terminal Emulator will be the easiest one, as it's android app bundled with ArchiDroid. WARNING! Most of the commands below WILL require root access. You can log in to super user shell by "su" command right after obtaining shell. If you're unsure if you're logged as root or not, "whoami" command should print actual user, "root" or "unknown uid 0" are OK, others are not.
ArchiDroid's Pocket Debian
From wikipedia:
Debian is an operating system composed of free software mostly carrying the GNU General Public License. The operating system is developed by an internet collaboration of volunteers aligned with The Debian Project.
Click to expand...
Click to collapse
From debian site:
As most of you know, Linux is just a kernel. And, for a long time, the Linux kernel ran only on the Intel x86 series of machines, from the 386 up.
However, this is no longer true, by any means. The Linux kernel has now been ported to a large, and growing, list of architectures. Following close behind, we have ported the Debian distribution to these architectures. In general, this is a process with a sticky start (as we get libc and the dynamic linker working smoothly), and then a relatively routine, if lengthy job, of attempting to recompile all our packages under the new architectures.
Debian is an operating system (OS), not a kernel (actually, it is more than an OS since it includes thousands of application programs)
Click to expand...
Click to collapse
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 ) 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.
4. Debian is built and included thanks to debootstrap utility, ArchiDroid command used for creating debian environment is debootstrap --verbose --arch armhf --include=git,ca-certificates,ssh,htop,tightvncserver,xterm,xfonts-base --exclude=manpages,man-db,rsyslog,vim-common,vim-tiny testing debian http://ftp.fr.debian.org/debian
HowTo:
Pocket Debian contains two main terminal commands, "adlinux" and "debian". Both of them are described below. By adlinux and debian you boot and jump into debian's chroot, which means you can use any debian-specific commands.
Examples:
passwd - changes password of actual user. This is needed to login as specific user, for example through ssh.
service ssh start - starts local SSH (secure shell) daemon on native port :22, to which you can easily access via any client supporting ssh, f.e. PuTTY. So basicly after you start shell you can literally connect to your local area network (LAN) IP on port 22 f.e. through PuTTY from your PC.
ifconfig - prints network-related informations about online interfaces, including your local IP, which may be useful for connecting to SSH.
htop - Enhanced top utility. Gives you very good terminal-based view on actual running processes, used ram, load, and more.
apt-get update - Syncs with debian's apt repository. This is mandatory to use many of apt commands because ArchiDroid's debian comes without local repo available, however fully configured to download and access it with just one command
apt-get install XXX - installs packet XXX from debian's repository.
apt-cache search XXX - searches for all packets including keyword "XXX". Ultra useful in terms of searching for specific packet.
Please note that pocket debian is VERY similar to normal native Debian/Ubuntu distribution, therefore above commands are not ArchiDroid's magic, they're very widely used in Debian/Ubuntu distros. If you want to learn more, most of the Debian/Ubuntu tutorials will be very helpful.
ArchiDroid's Pocket Debian Booter (adlinux)
You can call "adlinux" command from your favourite terminal.
adlinux is designed to boot and prepare ArchiDroid's Pocket Debian environment. It requires mode to be specified, and also respects any extra arguments passed.
If you call standalone "adlinux" command then it will print usage and then ask you what you want to do with giving proper informations about every choice. Additionally if you know what you want to do, you can also pass arguments directly to adlinux command, f.e. by executing "adlinux default", which will execute adlinux with "default" mode.
Available modes:
default - Will mount /data /system /storage/sdcard0 /storage/sdcard1 and core filesystems in chroot. Default suggested mode
safe - Will mount only core filesystems in chroot. Useful if you don't want to share your storage in chroot
bare - Won't mount even core filesystems such as /proc /dev or /sys. Requires "debian force" to enter chroot. This is the "real" safe mode. You won't be able to interact with an android in any way, while debian itself will work in very limited environment, making core functions unavailable. Suggested only for testing purposes
rebuild - Will automatically reboot your device and remove debian folder in the safe way. WILL CAUSE ALL DEBIAN DATA TO BE LOST!
unmount - Will automatically reboot your device to safely unmount debian environment
Extra options:
extsd - Use external sd card (/storage/sdcard1 /storage/extSdCard), if possible
intsd - Use internal sd card (/data/media/0)
Additional information about modes:
Debian shares core kernel filesystems in "safe" and "default" modes, while it also shares your internal and external sd card in "default" mode. This is nothing to be scared of, as you have full control of what you run in debian, however please note that you CAN'T do whatever you want. All mounted partitions in debian are "binded". "Bind" means that it's mirrored to the mount point and all changes on mounted partition WILL affect the mount point, which is logical. This is nothing to be scared of, as long as you know that debian only extends your environment, it does not fully works in it's own and you CAN cause serious problems from inside of chroot. The only really safe mode is "bare" mode, however in "bare" mode debian can't really do anything, as kernel filesystems are absolutely required for most of the functions. Okay so, you need to know one thing. If you have booted debian you SHOULD NOT touch debian's folder, which is ArchiDroid/debian (on your internal or external sd card, depends what you choosed).. As you know debian for example binds /data to it's folder /data, which is physically ArchiDroid/debian/data. If you for example delete ArchiDroid/debian through root explorer WITH mounted debian then it will ALSO delete debian/data folder, which is binded to /data, and therefore will delete your whole internal sd card, that's why it's extremely important to take care because booted debian becomes part of the android and deleting it can cause at least soft bricks, with a possibility of hard as well. If you want to delete debian folder PLEASE use "rebuild" mode, only through this way you're absolutely sure that nothing bad happens and you won't delete your whole system partition by accident.
Note about extsd option:
Debian requires symlink functionality, typically native windows filesystems DON'T support symlinks, therefore you need to have your external sd card formatted in one of the native linux filesystems, f.e. ext4. adlinux will automatically tell you if debian can be unpacked and used on your external sd card, however it won't be possible under most common filesystems, such as exFAT or FAT32.
Technical informations:
1. Pocket debian archive is located in ArchiDroid/System/debian.tar.gz file. This is "bare" system used for creating environment for the first time, you should not touch it.
2. adlinux detects if debian is already extracted when booting, if not, it's firstly extracted from the file described above.
3. After extracting (if required), core filesystems are mounted with "bind" option based on the mode you've selected in "mode" question above. Typically it mounts /data /system /storage/sdcard0 /storage/sdcard1 /storage/extSdCard /dev /proc /sys.
4. Unmounting is not fully supported right now (linux barrier), therefore both "unmount" and "rebuild" options require a restart to execute properly.
ArchiDroid's Pocket Debian Shell/Chroot (debian)
You can call "debian" command from your favourite terminal.
debian command is designed to allow you "jumping" into debian chroot created by adlinux. Please read how adlinux command works firstly if you haven't done that already. debian command checks if core filesystems are available (if debian is booted), and if they are then it firstly modifies required environment variables to make debian happy (such as TERM, HOME, PATH), then it changes root (chroots) into debian folder, therefore allowing you to execute everything from inside of chroot. It's very generic command, therefore standalone "debian" command won't give you a choice the way adlinux did.
Available options (parameters):
force - required for jumping into bare debian, created with "adlinux bare" command above. This skips debian checks for mounted core filesystems, normally you should avoid it at all cost, unless you know what you're doing. If core filesystems are missing then it's very likely that your debian will be disabled in more than 90%.
extsd - Use external sd card (/storage/sdcard1 /storage/extSdCard), if possible
intsd - Use internal sd card (/data/media/0)
cmd - Executes command in debian chroot
WARNING! cmd parameter will cause all further parameters to be threated as a command passed to debian, therefore you need to make sure that this is the last debian parameter which you want. For example "debian force cmd service ssh start" will skip filesystems checks and execute "service ssh start" in debian's chroot, however "debian cmd force service ssh start" will pass "force service ssh start" to debian, therefore respecting filesystems checks and passing invalid command.
This function is extremely useful for making init.d and other startup scripts. For example you can easily call "adlinux default" and then "debian cmd service ssh start" to call secure shell daemon on every boot with two easy steps.
Technical informations:
1. debian command uses chroot technology to change root of current shell to debian shell.
2. After chrooting to debian directory, /bin/bash shell is automatically called as default debian shell.
ArchiDroid's Flasher (adflash)
You can call "adflash" command from your favourite terminal.
adflash is a great small utility, which allows you to easily update your ArchiDroid to latest stable or experimental version with one easy command and delta upgrade. It utilizes ArchiDroid functions, therefore you must be running ArchiDroid to use it.
If you call standalone "adflash" command then it will print usage and then ask you what you want to do with giving proper informations about every choice. Additionally if you know what you want to do, you can also pass arguments directly to adflash command, f.e. by executing "adflash 2e git", which will execute adflash with 2.X-EXPERIMENTAL version using git mode.
Available versions:
2e - 2.X-EXPERIMENTAL
2s - 2.X-STABLE
1e - 1.X-EXPERIMENTAL
1s - 1.X-STABLE
Extra options:
git - Sets up local git repository, which gives you delta upgrades and bandwidth saving
direct - Downloads targeted branch as .zip file directly from github
clean - Cleans everything up, including local repo and tmp folder from ArchiDroid directory specified below
extsd - Use external sd card (/storage/sdcard1 /storage/extSdCard)
intsd - Use internal sd card (/data/media/0)
nozip - Shows changelog and changes only
Okay so, the most interesting option is the mode...
Direct mode is simple, fast and effective. It downloads target version (stable or experimental) from GitHub server, then it repacks downloaded zip file and makes it available for flash. You should use this mode for one-time downloads, such as once per stable version or two. The only advantage of this method is the ability to download from github (and with one command).
Git mode is complex. It uses ArchiDroid's Pocket Debian (read above) for cloning and updating local ArchiDroid repo. This gives several number of advantages, mostly for using experimental versions. Firstly, by having local ArchiDroid repo you have to download ONLY changes between your snapshot and server's snapshot, which means delta upgrades. Secondly, you have access to all commits from target branch, so you know exactly what has changed since your latest download. Again, this is extremely useful for experimental branch, as changelog may not be up-to-date. Keep in mind that git mode will require additional space on your device for keeping ArchiDroid repository, therefore you sacrifice some space for delta upgrades. This mode is extremely useful for flashing ArchiDroid often, for example daily experimental versions, because in fact you download only new commits instead of whole repo/archive.
ArchiDroid's RunOnce (Backend)
ArchiDroid's Init (Backend)
ArchiDroid's Backend Control
ArchiDroid Backend Control is a set of settings, which controls behaviour of ArchiDroid's Init. It's located in /system/archidroid/dev and contains a number of files, which are recognized by ArchiDroid's Init. You shouldn't directly touch /system/archidroid/dev, instead you can control behaviour of ArchiDroid's Backend through /system/archidroid/scripts. They can be easily executed through any script manager, f.e. Root Browser or Android Terminal Emulator. Some of the settings are also located in /system/archidroid/etc folder, mostly configurations for binaries utilized by ArchiDroid's Init.
ArchiDroid's HArdware Volatile Entropy Gathering and Expansion Daemon (Haveged)
The haveged project is an attempt to provide an easy-to-use, unpredictable random number generator based upon an adaptation of the HAVEGE algorithm. Haveged was created to remedy low-entropy conditions in the Linux random device that can occur under some workloads, especially on headless servers. Current development of haveged is directed towards improving overall reliablity and adaptability while minimizing the barriers to using haveged for other tasks.
The original HAVEGE research dates back to 2003 and much of the original haveged documentation is now quite dated. Recent work on haveged has included an effort to provide more recent information on the project and its applications.
The original research behind HAVEGE use was based upon studies of the behavior of processor caches from a hardware level. The 'Flutter' documents attempt to provide a modern view of HAVEGE at software level through the use of a diagnostic build of haveged that captures the non deterministic inputs to haveged for analysis by external tools.
ArchiDroid has built-in haveged entropy generator. It's controlable through ArchiDroid's Backend Control - ArchiDroid_Haveged_EnableDisable.sh. It's turned on in default configuration, through HAVEGED_ENABLED
ArchiDroid's Fast Random Number Generator (Frandom)
Frandom is a Linux kernel random number generator, which is 10-50 times faster than what you get from Linux' built-in /dev/urandom. And it uses very little (/dev/frandom) or none (/dev/erandom) of the kernel's entropy pool, so it is very useful for applications that require a handy source for lots of random data.
ArchiDroid has built-in frandom activator. It's controlable through ArchiDroid's Backend Control - ArchiDroid_Frandom_EnableDisable.sh. It's turned on in default configuration, through FRANDOM_ENABLED.
Notice: Kernel must support frandom module to actually make use of that. Init will try to search for frandom.ko module and load it, then use /dev/erandom for both /dev/random and /dev/urandom. If your kernel supports frandom, it will work. If it doesn't, obviously this will be skipped even if you have FRANDOM_ENABLED. Check ArchiDroid Init log located in /data/media/0/ArchiDroid/Init.log to check if frandom works properly for you.
ArchiDroid's Adblock (dnsmasq/dnrd, dnsproxy2, pixelserv)
dnsproxy2 is a replacement DNS proxy for Android 4.3+
This currently allows the user to manually override the DNS server IP,
and it sets the correct UID on outbound requests so they can be filtered
via iptables / AFWall+ / DroidWall / etc.
Dnsmasq is a lightweight server designed to provide DNS, DHCP and TFTP services to a small-scale network. It can serve the names of local machines which are not in the global DNS. The DHCP server integrates with the DNS server and allows machines with DHCP-allocated addresses to appear in the DNS with names configured either in each host or in a central configuration file. Dnsmasq supports static and dynamic DHCP leases and BOOTP for network booting of diskless machines.
Dnrd, Domain Name Relay Daemon is a caching, forwarding DNS proxy server. Most useful on vpn or dialup firewalls but it is also a nice DNS cache for minor networks and workstations.
Pixelserv is a super minimal webserver, it's one and only purpose is serving a 1x1 pixel transparent gif file. Using some creative firewalling (netfilter/iptables) rules you can redirect some webrequests (for adds for example) to pixelserv.
ArchiDroid has built-in Adblock. It's controlable through ArchiDroid's Backend Control:
ArchiDroid_Adblock_DnsmasqDnrdModeSwitch.sh
ArchiDroid_Adblock_EnableDisable.sh
ArchiDroid_Adblock_EnableDisableLocalDNSes.sh
ArchiDroid_Adblock_EnableDisableLocalDNSesDaemon.sh
ArchiDroid_Adblock_LockUnlockHosts.sh
ArchiDroid_Adblock_MoabAdawayHostsSwitch.sh
ArchiDroid_Adblock_Reload.sh
It's turned on in default configuration, through:
ADBLOCK_ENABLED
ADBLOCK_LOCAL_DNSES_DAEMON_ENABLED
ADBLOCK_LOCAL_DNSES_ENABLED
ADBLOCK_USE_ADAWAY_HOSTS
ADBLOCK_USE_DNSMASQ
In short. This is a very advanced and powerful solution for blocking ads through DNS queries. First of all we're forwarding all DNS traffic to localhost (127.0.0.1). Then we're handling them through local DNS server - dnsmasq (default), or dnrd (option). Our local DNS server reads blocked hostnames through special /system/archidroid/etc/hosts file, then if no record is found, it forwards DNS query to OpenDNS/Google DNS servers, or if it's found, returns 127.0.0.1 as the address. Lastly, pixelserv is providing a 1x1 NULLGIF response on local web server, so instead of big black/white screen instead of the AD, we get 1x1 transparent pixel, which usually perfectly hides ad from the app or the website.
Extra features:
1. You can specify if you want to use dnsmasq (default), or dnrd (option) as a local dns server. Dnsmasq is more flexible, modern, faster and has less memory footprint, however I also left dnrd as an option, because it's proven to work stable.
2. You can specify hosts file, which you want to use. In default configuration we use AdAway's hosts file, with more than 30 thousand of records, which results in extra ~2.5 MB memory usage. You have also an option to use MOAB (Mother Of Ad Blocking) hosts file, with more than 330 thousand of records, which will result in about ~30 MB memory usage. Eventually you can append your own rules or use non-standard hosts file, available in /system/archidroid/etc/hosts. Pro tip: You can point AdAway to use this hosts file (/system/archidroid/etc/hosts_adaway), which will result in automatic updates. /system/archidroid/etc/hosts is a symbolic link, either to hosts_away or hosts_moab, if you want to specify your own hosts, you can delete symbolic link and write your own rules.
3. Original /system/etc/hosts file has been locked from editing. This is to ensure that AdAway or other adblockers won't use obsolete and slow method of blocking ads through hosts. The whole point of implementing Adblock in ArchiDroid is to provide you with super-fast, flexible and effective way of blocking ads, also with getting rid of black/white ad screen. In 99% situations you don't want to touch ArchiDroid's default behaviour, as it blocks ads perfectly. Eventually, if you have a very good reason, you can unlock original hosts file through ArchiDroid's Backend Control and modify them, however keep in mind that every additional rule WILL slow down your network speed.
4. In default configuration local dns server uses two OpenDNS servers at port 5353, two Google DNS servers at port 53 and up to two local DNS servers provided by your Wi-Fi/3G connection, which overall gives a sum of 6 remote dns servers. In some rare scenarios (f.e. some wi-fi hotspots) you can notice that a moron, administrator of this wi-fi, blocked all dns queries and forces you to use his DNSes. This is BAD because of freedom and so on, but it's very common practice, that's why I turned on local DNSes as well. If you want to improve your privacy at least a bit, you can disable local DNS servers and then use only OpenDNS and Google DNS.
5. Above option initialy has been written to allow you one-time access to such non-trusty wi-fi's. But if you for any reason need automatic update of your local DNSes (3G and Wi-Fi's will use different local DNSes), you can also turn on Local DNSes Daemon, which will automatically query and update local DNSes if needed. This is also turned on in addition to local dnses above, of course in default preset.
ArchiDroid's Forced Update (RunOnce)
Forced update selected during mode selection in aroma tells RunOnce to work in "INSTALL" mode even on "UPDATE" mode, apart from that it works exactly the same as update mode, only RunOnce is affected.
Credits
ArchiDroid Core
- AROMA Installer
- AROMA Filemanager
- Devil Kernel
- Googy Max Kernel
- PhilZ Touch Recovery
- SuperSU
- Nova Launcher
- TouchPal Keyboard
- Hacker's Keyboard
- Android Terminal Emulator
- BetterBatteryStats
- Cool Tool
- Greenify
- MX Player & Custom Codec
- LMT
- Root Browser
- Titanium Backup
- Online Nandroid
- Xposed Framework
- App Settings
- XPrivacy
- GravityBox
- Debian
- cURL
- GitHub
ArchiDroid 2.X
- OmniROM for GT-I9300
- Linaro Toolchain
- Boeffla Kernel
- Yank555.lu Kernel
- AGNi Kernel
- Spirit 2
ArchiDroid 1.X
- SamMobile
- ArchiKitchen
- Boeffla Kernel
- Yank555.lu Kernel
- AGNi Kernel
- KitKat Revolution Theme
- Blue Theme
- All Backs Black Theme
- S5 Theme
- Wanam Xposed
Special thanks to:
- Kenshin, for graphic design and ArchiDroid Touhou bootanimation
- @mrtur, for graphic design and helpful hand during ArchiDroid experimental tests
- @malachow, for helping users across both international and polish board, sharing the spirit of ArchiDroid
- All ArchiDroid Contributors, for improving and making ArchiDroid better!
- ArchiDroid Facebook Group, for beta-testing the very first alphas of ArchiDroid 2.0.0
- ROM Cleaner, for awesome generic list of bloatware
- Android Revolution HD, for being ex-ArchiDroid 1.X base
- WanamLite, for being ex-ArchiDroid 1.X base
- Temasek's Unofficial Build, for being ex-ArchiDroid 2.X base
- crDroid, for being ex-ArchiDroid 2.X base
- You, for choosing ArchiDroid over other available ROMs
Reserved
Sent from my GT-I9300 using Tapatalk 2
Ah, and because some people are asking already. Yes you can install this rom without any modification and in fact get clean Android Revolution HD, just without bloatware. In fact you can install full bloatware as well in included .zip file. That's what I call flexibility .
Just what I was looking for. Excellent job!
Haha Polak witam wśród deweloperów
welcome among developers
SGS III / Grisza Monster Beam v7.1 / Perseus 35 / JKay deluxe framework 14.93.1 / JB Domination (edit by me) / Tapatalk 2 / Swype
grzesdroid said:
Haha Polak witam wśród deweloperów
welcome among developers
SGS III / Grisza Monster Beam v7.1 / Perseus 35 / JKay deluxe framework 14.93.1 / JB Domination (edit by me) / Tapatalk 2 / Swype
Click to expand...
Click to collapse
No cześć .
I've probably just fixed CrossBreeder issue but I won't release a version just with this fix, it's not needed anyway for clean install .
Looking forward to opinions from the community!
any screen shot of the battery life?
Sure.
It's just a deep sleep without wifi/gps/data connection. Of course battery usage depends on your usage of the phone so I prefer to take shots with ROM just turned on, without any additional apps.
~12 hours. I can update this screenshot after some time with normal usage if somebody wants to .
Default settings from AROMA.
Yes please normal use & the screen on time when the battery is low
Sent from my GT-I9300 using Tapatalk 2
Sure, I've just locked screen on "always on", will report back in few hours.
Hey.
Sorry for no screenshot but I totally forgot about that and needed to test some new things in my next release :laugh:
Anyway when I last checked it drained about 15-20% of battery with screen on (lowest brightness) for 1 hour and 50 minutes. I don't have a screenshot but you can obviously try yourself and confirm my report. Battery usage mostly depends only on the usage of the phone. As long as it's clean from bloatware, running newest firmware and well-made kernel then only very little things could change it to drain even less, for example greenify included in my rom already :good:
However I'll try to upload screenshot prove of battery draining when I'm finished testing new cool things.
And now special thing for ArchiDroid users already:
Dirty Changelog for 1.1:
- Crossbreeder issue fixed (needs testing, hangs only after direct format of /sdcard or /data/media, I'll need to check that again)
- Elegant theme added as default (needs permissions from the author, awaiting). Of course JB Domination still available.
- Shark Kernel added (needs permissions from the author, awaiting)
- Cleaned up aroma config a bit to make further upgrades easier to implement.
- Still waiting for XXEMC3 from mike, but it'll be last build on XXEMC2 probably.
- Some hidden tweaks which need further testing .
look good. i see this thread when im exploring Android HD. Gonna give a try. And will report back soon
A little change of plans, ArchiDroid 1.1 will be already on XXEMC3. Looking forward to mike's release of ARHD and then instantly pushing it as my current base.
So dear user, if you haven't already downloaded ArchiDroid... wait a little more!
i been tested ur rom. Seem very smooth, fast and battery friendly. Keep up a good work. I will support u.
---------- Post added at 09:48 AM ---------- Previous post was at 09:42 AM ----------
add 1 more custom dpi. 270 dpi. lol. love that look. but it will need some config on samsung stock app in xposed
Thank you, trying my best with optimization .
I'll look what I can do with 270 dpi. Probably it'll work without problems but need some further tests. Also I'm merging ARHD 25.0 now so I guess ArchiDroid 1.1 will be ready this evening .
cant wait to try out your rom man

[KERNEL] Kali NetHunter for the Galaxy S7 Edge WORKING

ALL CORES WORKING FULLY WORKING 3 g935 KERNELS TO CHOOSE FROM LOOK BELOW
THAT THIS IS FULLY WORKING AND UPDATED TO NETHUNTER 3.1.0
ZIP MODDED FOR S7 EDGE FOR 1440X2560 WITH NEWEST BUSYBOX AND SUPERSU
WARNING: This is completely untested, highly theoretical, and possibly dangerous. Flash at your own risk.
Back up your original boot image in TWRP before attempting to flash this! If it doesn't boot, you can simply restore your previous boot image.
This is Kali NetHunter 3.1.0 for the Galaxy S7 Edge.
If you don't know what Kali NetHunter is, well, it's the entire Kali Linux operating system in a chroot on your phone, plus a bunch of awesome apps for executing exploits, fixing things, doing cool things. It goes on, I suppose.
I'm gonna be honest guys, I'm not a security person. When it comes to security, I'm more of a Paul Blart.
What I do know though, is that there is apt-get, and apt-get is life.
Find much more information here: https://github.com/offensive-securit...nethunter/wiki
The answer to all your questions, generally the answer is YES, IT CAN DO THAT.
Most ROMs should be supported, as our installer uses a dynamic patching method on your current boot image!
The updater zip will add a few files to your /system partition, and install all of the NetHunter apps to your /data partition.
The chroot is located in /data/local, so you don't have to worry about your system partition being full. It's full read/write capable.
Understand that the zip will replace your current kernel with a completely different one.
This is necessary because most stock or custom kernels don't provide the drivers needed to operate most of Kali NetHunter's features.
DOWNLOAD
https://mega.nz/#!3QIHzQ5b!x77Wad9OUAyQqAtJJucak3C_3twfFFwZqJ77Wt1j6-c
Current version: 3.1.0 (beta, 07/03/2016)
Please be careful to download the right version based on this table:
SM-G935F, SM-G935FD, SM-G935X, SM-G935W8: hero2lte
SM-G930F, SM-G930FD, SM-G930X, SM-G930W8: See proper forum.
All others be sad.
Download is available at: kernel below
Grab the 700 MB+ zip.
Kernel-only zip is for upgrading your kernel, or just using the NetHunter kernel by itself. (yes, you can do that!)
BEFORE INSTALLING
Currently, Samsung encryption is not supported by TWRP, so we have to disable it.
Sorry security freaks! There's a lot of irony here, isn't there?
The Kali chroot and apps are installed on your data partition (in /data/local for chroot). To initialize the chroot and install Kali Linux, you need to start the Kali NetHunter app.
The NetHunter installer will automatically install SuperSU (2.76) in system mode, which I consider to be more stable. Since NetHunter already modifies your system partition, there is no need to use systemless SuperSU anyways.
Also included is an extra Busybox that gives you full large file support and some extra applets.
FULL FRESH INSTALL STEPS
Install Team Win Recovery Project to your recovery partition.
If your data partition doesn't mount in TWRP:
Go to [Wipe] -> [Format Data] (not advanced wipe) -> type "yes".
WARNING: This will wipe your internal storage, disable encryption, and factory reset your phone!
Once your data partition is formatted, go to [Reboot] -> [Recovery].
Download dm-verity and force encryption disabler.
Without exiting TWRP, transfer no-verity-opt-encrypt.zip to your device over MTP* and flash it using [Install] in TWRP.
If you wiped your data partition in step 2:
Go to [Reboot] -> [System].
Set up your phone by following the Android setup wizard.
Once it's set up, reboot back into recovery.
Download Kali NetHunter.
Without exiting TWRP, transfer the NetHunter installer zip to your device over MTP* and flash it using [Install] in TWRP.
Go to [Reboot] -> [System].
Wait 5-15 minutes for your device to finish setting itself up.
Open the NetHunter app to initialize the environment
You're done!
* MTP, known as Media Transfer Protocol, is the same way you transfer files from your PC to your device when booted into system.
UPDATING TO A NEWER BUILD
Going from 3.0.0 and up, all you have to do is flash the new build in recovery and wipe dalvik cache.
UPDATING YOUR ROM
To get all your NetHunter and SuperSU functions back after flashing a new ROM, just flash the ~700+ MB update-nethunter-* zip again.
THE KERNEL
The NetHunter kernel for the Galaxy S7 Edge is based on Samsung's OSRC G935FXXU1APF2 kernel sources.
It has the following changes:
F2FS updated to Jaeguek Kim's latest kernel.org f2fs-stable sources
F2FS formatted system, data, and cache partition support
UKSM Ultra Kernel Same-page Merging KSM support
Updated and enabled USB (OTG) Atheros, Ralink, and Realtek WiFi drivers
Simple IO (SIO) scheduler as default IO scheduler
USB HID Gadget keyboard support
mac80211 packet injection support
DriveDroid compatibility
Additional drivers built in for the full Kali NetHunter experience
Data partition encryption changed from forced to optional (disabled during installation)
Disables dm-verity and allows you to boot modified system partitions
RAN INTO AN ISSUE OR BUG?
In order for me to help you, you have to at minimum reply with:
The link to the exact zip you downloaded
Your device model (it better not be something other than G935F, dangit!)
The name of the ROM you're flashing it on
The version and build date of the ROM you're flashing it on
A complete description of your problem
Optional: An audio recording of you reading this entire post
If your issue is with a specific app, it might be better to contact the developer of that app.
If your issue is during the installation (ex. flashing the NetHunter zip), then please collect a TWRP recovery.log for me.
If you found a problem and were able to fix it, and no one's mentioned it in the thread already, it would be kind to state the issue and your fix for others to make use of as well.
You can join me and the other NetHunter developers on IRC at the #nethunter room on freenode to more handily diagnose problems together.
I apologize, but I can't do house calls at this time.
KNOWN ISSUES
USB Keyboard - The keyboard is unusable when using Google Keyboard as your input method. Switch to Hacker's Keyboard.
NetHunter Terminal - It doesn't automatically set the columns/rows, so you need to type "resize" sometimes to fix the display.
DEVELOPMENT
You can see branch of the installer development here:
Alternatively, the main branch is also available on the Offensive Security GitHub: https://github.com/offensive-security/kali-nethunter
Kernel source: https://github.com/BoostFlash/nethunter_kernel_herolte
DISCLAIMER
I am not affiliated with Offensive Security. They seem like cool guys though.
I'm not even a novice when it comes to security and penetration. I'm just a simple system administrator with a passion for breaking Android.
Please restrain yourselves from asking me security related questions.
XDAevDB Information
Kali NetHunter for the Galaxy S7 Edge, Kernel for the Samsung Galaxy S7 Edge
Contributors
jcadduono, The Kali NetHunter team ,ohap
Source Code: https://github.com/BoostFlash/SuperKernel
https://github.com/BoostFlash/nethunter_kernel_herolte
Kernel Special Features:
Version Information
Status: Beta
Current Beta Version: 3.1.0
Beta Release Date: 2016-07-03
new links :
jcadduono nethunter patcher with new superkernel plus nethunter patches , make sure your on a kernel thats fully working before flashing this as it only patches ramdisk
https://mega.nz/#!LR4BgbyJ!vezMFaob3mIETH__mVMd9WjCXwLCFvzouObX7f72wmY
my kernel compiles from superkernels source with makeshift ramdisk + nethunter patches
https://mega.nz/#!rEQDBD4B!v_4JRruBe6exR-O40ax5DECJA7nLikSpbIbEDI7YVyM
superskernel with his modded ramdisk plus nethunterpatches added by me synapse support <--best one
https://mega.nz/#!qcYnBAoT!KSHvaX7EtJLDeQq0kPmZHK4N200cnyirHP4X7-jUavg
Kali nethunter
https://telegram.me/kalinethunter
must thanks and credit to:
lucu/Tkkg1994 superkernel dev
jesse for fp patch
jcadduono for his help with github and patcher scripts
webhost420/hayden for brainstorming with me
So I'm good to just flash this with TWRP over the current one I'm using?
CPU core 6 and 7 still stopped as with previously used kernel.
Kali still working, everything seems the same so far. Will see with time.
umKthxbye said:
So I'm good to just flash this with TWRP over the current one I'm using?
CPU core 6 and 7 still stopped as with previously used kernel.
Kali still working, everything seems the same so far. Will see with time.
Click to expand...
Click to collapse
ya i cant seem to get them to work as i dont know , this is compiled from a old source , me and a other are trying to fix it no , BUT this is way faster then ael kernel , and im no way a professional kernel dev so this is my first shot at kernel i compiled my self which was a pain
ohap said:
ya i cant seem to get them to work as i dont know , this is compiled from a old source , me and a other are trying to fix it no , BUT this is way faster then ael kernel , and im no way a professional kernel dev so this is my first shot at kernel i compiled my self which was a pain
Click to expand...
Click to collapse
Are you using that AEL kernel as a base or the stock kernel?
Since the stock kernel or even Jesse kernel have all cpus active maybe use those and add support for the USB wifi adapters.
I'm also working on this with stock kernel but fixing compiling errors.
umKthxbye said:
Are you using that AEL kernel as a base or the stock kernel?
Since the stock kernel or even Jesse kernel have all cpus active maybe use those and add support for the USB wifi adapters.
I'm also working on this with stock kernel but fixing compiling errors.
Click to expand...
Click to collapse
No not using ael anything as there $%&$ , message me on telegram we have a group working on it . My name on there is Boostflash
ohap said:
No not using ael anything as there $%&$ , message me on telegram we have a group working on it . My name on there is Boostflash
Click to expand...
Click to collapse
Just post when there is a new one to test, the current one seems stable other then the 6 core problem.
Fixed the cores being off line they all come online at boot , but now facing maybe CPUFreq driver initialization failed ?? Which causes now all cores to go offline and stay off after a few seconds . And makes kernel unusable
ohap said:
Fixed the cores being off line they all come online at boot , but now facing maybe CPUFreq driver initialization failed ?? Which causes now all cores to go offline and stay off after a few seconds . And makes kernel unusable
Click to expand...
Click to collapse
Did you upload it for testing? Or not reliable enough to bother?
umKthxbye said:
Did you upload it for testing? Or not reliable enough to bother?
Click to expand...
Click to collapse
I thought the unusable kernel term would explain that , its not good for upload if you want to join group on telegram you can test if you want
good news jcadduono back working on this again , he first trying to fix his patcher zip , i told him how i got mine working but its different then what he doing , so once he gets that fix we see if its a issuse with original Samsung source or nethunter patches the core issues
The best way to use terminal in this since Hacker keyboard has so much **** on it you can't type properly.
1. Open Nethunter, Menu, Kali services, add check mark to SSH start at boot, and check it to turn on.
2. Go into Kali terminal(last time you'll need to use this crap) type; passwd "whateveryouwant", this will be used for your user in the next step.
3. Download Juice SSH and add user root with password what ever you made.
4. Create a connection using IP 127.0.0.1 (this is the local loopback address) leave port blank, it will use 22 by default.
5. Connect with one click and enjoy using any keyboard with bonus juice addon keys for terminal use.
JuiceSSH also give you a nifty little extra keyboard ontop of the one you use with the tab function, making bash autofill work.
I use swiftkey keyboard and have been using JuiceSSH for years to access my CentOS 7 servers and its been a dream to work with.
The one packaged with Nethunter is just terrible, and most of the other one found on app store are terrible as well.
Also, Ohap, you don't have to reboot after formatting the /data, just go back and clear the dalvik, cashe, etc, and other stuff like the guide I posted in your other thread.
Feel free to use the one I posted in the last thread.
Great work so far. The last kernel is still going strong, with no random reboot or other problem other the the 2 cores we all know about.
umKthxbye said:
The best way to use terminal in this since Hacker keyboard has so much **** on it you can't type properly.
1. Open Nethunter, Menu, Kali services, add check mark to SSH start at boot, and check it to turn on.
2. Go into Kali terminal(last time you'll need to use this crap) type; passwd "whateveryouwant", this will be used for your user in the next step.
3. Download Juice SSH and add user root with password what ever you made.
4. Create a connection using IP 127.0.0.1 (this is the local loopback address) leave port blank, it will use 22 by default.
5. Connect with one click and enjoy using any keyboard with bonus juice addon keys for terminal use.
JuiceSSH also give you a nifty little extra keyboard ontop of the one you use with the tab function, making bash autofill work.
I use swiftkey keyboard and have been using JuiceSSH for years to access my CentOS 7 servers and its been a dream to work with.
The one packaged with Nethunter is just terrible, and most of the other one found on app store are terrible as well.
Also, Ohap, you don't have to reboot after formatting the /data, just go back and clear the dalvik, cashe, etc, and other stuff like the guide I posted in your other thread.
Feel free to use the one I posted in the last thread.
Great work so far. The last kernel is still going strong, with no random reboot or other problem other the the 2 cores we all know about.
Click to expand...
Click to collapse
This was a poorly edited post for newbies , i know hacker keyboard sucks , and you dont have to wipe ect .. thanks for support & feedback
awsome update coming i have fixed the core issue !!! with the power of superkernel "luca" source ,plus nethunter patches, and a make shift ramdisk !!!! i got it to boot and all cores online plus all the goodys of superkernel !!
Now Need to just include patch for hid keyboards now I do that latter
umKthxbye said:
The best way to use terminal in this since Hacker keyboard has so much **** on it you can't type properly.
1. Open Nethunter, Menu, Kali services, add check mark to SSH start at boot, and check it to turn on.
2. Go into Kali terminal(last time you'll need to use this crap) type; passwd "whateveryouwant", this will be used for your user in the next step.
3. Download Juice SSH and add user root with password what ever you made.
4. Create a connection using IP 127.0.0.1 (this is the local loopback address) leave port blank, it will use 22 by default.
5. Connect with one click and enjoy using any keyboard with bonus juice addon keys for terminal use.
JuiceSSH also give you a nifty little extra keyboard ontop of the one you use with the tab function, making bash autofill work.
I use swiftkey keyboard and have been using JuiceSSH for years to access my CentOS 7 servers and its been a dream to work with.
The one packaged with Nethunter is just terrible, and most of the other one found on app store are terrible as well.
Click to expand...
Click to collapse
Hacker's Keyboard is there for use with USB keyboard app and editing configs and stuff in the NetHunter app.
As for terminal in NetHunter...
As you said, I recommend JuiceSSH as well. You can create a Local Terminal profile to get into Android console, then type:
Code:
su -c bootkali_login
You can also purchase JuiceSSH premium features and create a snippet that does all of that for you!
This way, you don't need to use SSH and waste battery!
ohap said:
awsome update coming i have fixed the core issue !!! with the power of superkernel "luca" source ,plus nethunter patches, and a make shift ramdisk !!!! i got it to boot and all cores online plus all the goodys of superkernel !!
Now Need to just include patch for hid keyboards now I do that latter
Click to expand...
Click to collapse
fixed hid
umKthxbye said:
The best way to use terminal in this since Hacker keyboard has so much **** on it you can't type properly.
1. Open Nethunter, Menu, Kali services, add check mark to SSH start at boot, and check it to turn on.
2. Go into Kali terminal(last time you'll need to use this crap) type; passwd "whateveryouwant", this will be used for your user in the next step.
3. Download Juice SSH and add user root with password what ever you made.
4. Create a connection using IP 127.0.0.1 (this is the local loopback address) leave port blank, it will use 22 by default.
5. Connect with one click and enjoy using any keyboard with bonus juice addon keys for terminal use.
JuiceSSH also give you a nifty little extra keyboard ontop of the one you use with the tab function, making bash autofill work.
I use swiftkey keyboard and have been using JuiceSSH for years to access my CentOS 7 servers and its been a dream to work with.
The one packaged with Nethunter is just terrible, and most of the other one found on app store are terrible as well.
Also, Ohap, you don't have to reboot after formatting the /data, just go back and clear the dalvik, cashe, etc, and other stuff like the guide I posted in your other thread.
Feel free to use the one I posted in the last thread.
Great work so far. The last kernel is still going strong, with no random reboot or other problem other the the 2 cores we all know about.
Click to expand...
Click to collapse
New kernel out built from superkernel check it out . Recommend the super ramdisk ver I posted
Yes I saw. I'm using it already. I like seeing the 8 cores back. Time will tell how stable it is. Good work guys.
is it work with superman rom?
please tell me how to flash
mdrobiulhasan said:
is it work with superman rom?
please tell me how to flash
Click to expand...
Click to collapse
How to flash is in first post . It should work with any rom with system root not systemless
Anyone having issues with call forwarding? Since I flashed King rom my call forwarding has been messed up, even going back to stock. Not sure if it's cuz of root, rom, or kernels.
Still running stable btw.

[UNOFFICIAL][ROM]ALPHA LineageOS 20 for SM-T810 - June 23, 2023

LineageOS 20 UNOFFICIAL for 2015 Samsung Galaxy Tab S2 SM-T810 ONLY
Model: SM-T810 (wifi) - gts210wifi - 9.7" screen, Exynos 5433 SoC, no LTE
This is the ONLY model that the ROM will work on.​
You MUST READ posts 1-4 (about 10 minute read) before deciding to install this rom. If you think this is an unreasonable request, then stop reading now and find another rom. Thank you.
DISCLAIMER
I am not responsible for lost data, identity theft, lost money, security vulnerabilities, bricked devices or any other hardware or software malfunctions that comes as a result of flashing this rom.
All involved in bringing this build to you are working voluntarily on it in very limited spare time, and their other life commitments have much higher priority. Don't expect a prompt, or even any, response to questions and bug reports.
Before attempting to install this ROM
1. Ask yourself: would bricking your device be a disaster for you? If yes, don't try this ROM! It can't be guaranteed stable and reliable enough to depend on for daily use.
2. BACKUP YOUR DATA AND EXISTING ROM. Be prepared for a complete restore if anything goes wrong.
3. RESEARCH adb, fastboot, Odin/heimdall, and TWRP and how to use them, if not already familiar with these.
What works
1. bluetooth
2. wifi
3. brightness
4. external audio
5. GPS
6. audio through headphone jack
7. audio over bluetooth
8. selinux enforcing
9. DRM level 3 (SD definition)
10. deep sleep
11. camera
What doesn't work/What hasn't been tested
1. fingerprint is completely removed in 19.1. When I tested it in March 2022, it wasn't compatible with keystore2 and as I wrote in post 1891 at
https://forum.xda-developers.com/t/...t810-t815-t815y.3879302/page-95#post-85533725
it never worked properly after deep sleep. If you need fingerpint to work, stay with stock Samsung rom.
2. DRM level 1 (no HD definition). There's more detail in post 1891 above. I will not be trying to achieve level 1 for HD definition. If you need HD definition for your $treaming media, stay with stock Samsung rom.
3. full disk encryption has been deprecated in Android 13 (LineageOS 20).
4. If you charge the device while it's powered off and then want to power it on, you MUST wait at least 30 seconds AFTER disconnecting the charger cable before pressing the power button otherwise you might run into strange boot problems.
5. There has no been no fix for the “Connected to device. Can’t provide internet” (CPI). DO NOT ASK when this will be fixed. If/when it is fixed, it will be announced public in this thread.
If you have a lot of apps installed, you may run into CPI as we suspect it's possibly a slow memory leak. Depending on how many apps you have installed CPI may show up in 14 days. The only way to "fix" CPI is to reboot.
CPI may also show up if you have even just one app that somehow triggers a huge/large memory leak. Again, the only "fix" is to reboot.
We've spent a lot of time trying various kernel binder patches and updating the binder code as much as possible, but some users, NOT all, still run into CPI. Since I use Aurora Store and minimal apps, I never run into CPI like some pre ALPHA testers.
6. Device running really slow/laggy due to low memory. If you run a lot of apps that "phone home/connect to mothership", there's a possibility that it triggers a slow memory leak and the device, over time, becomes slow and laggy. You can see if you're low on memory by running
Bash:
$ adb shell dumpsys meminfo
Total RAM: 2,827,980K (status critical)
Free RAM: 256,196K ( 53,728K cached pss + 87,128K cached kernel + 115,340K free)
Used RAM: 3,638,878K (3,067,642K used pss + 571,236K kernel)
Lost RAM: -346,213K
ZRAM: 671,040K physical used for 1,412,244K in swap (1,413,984K total swap)
Tuning: 192 (large 512), oom 184,320K, restore limit 61,440K
When the above shows "status critical", that's a sign of a memory leak and you may get CPI or slow/laggy performance. The only "fix" is to reboot. It should show "status normal" after a reboot.
If you're a developer, we could use some help here determining where the memory leak is.
7. gapps. Some of you require gapps for whatever reason. I use Aurora Store for my purposes and thus have NO KNOWLEDGE of the current state of gapps.
There are various gapps projects (at least 5 in 2023). Each has pros and cons. It's your job to do the research and find a suitable gapps project. I suggest you allocate at least a couple of hours/days doing your own research. My rom works by itself fine without gapps. DO NOT talk about gapps in this thread.
I have created a new 20 thread for those wanting to discuss gapps at
https://forum.xda-developers.com/t/...sion-for-20-roms-sm-t710-and-sm-t810.4600455/
In there, you will find what pre ALPHA testers have been using.
8. Possibly other features/apps that I haven't tested or do not use.
Source Code
Kernel source code
https://github.com/retiredtab/andro...ersal5433-selinux/tree/lineage-20-8916-binder
See FAQ 1 for links to the device tree, manifest and build instructions in post #2.
Thanks
1. LineageOS team for source code.
2. LineageOS-UL team for merging, maintaining the legacy patches needed for old devices into one common repository so everyone can benefit.
https://github.com/orgs/LineageOS-UL/people
3. In alphabetical order.
@ananjaser1211
- answering 5433 related questions wrt to certain features.
@bmwdroid
- testing many pre ALPHA 20 builds and reporting the results
@lpedia
- testing many pre ALPHA T710 builds starting in late Oct 2022 and reporting the results
- verifying my build instructions work so that the technically inclined can build this from source
- building, maintaining and most importantly, testing the T710 20 builds before monthly security patches release
@metterschling
- suggestions, feedback on 20
- verifying my build instructions work so that the technically inclined can build this from source
@pflyaz
- testing many pre ALPHA 20 builds and reporting the results
@Yogi555
- testing many pre ALPHA 20 builds and reporting the results
- verifying my build instructions work so that the technically inclined can build this from source
- building, maintaining and most importantly, testing the T810 20 builds before monthly security patches release
Frequently Asked Questions. You MUST READ this before posting any questions. If you think this is unreasonable, then find another rom. Thank you.
QuestionAnswerQ1. Can I build this ROM for myself? Where are the source and kernel source files?A1. Yes, you can. The source files are listed below.
Kernel
https://github.com/retiredtab/android_kernel_samsung_universal5433-selinux
Device Tree
https://github.com/retiredtab/android_device_samsung_gts2-common-selinux
https://github.com/retiredtab/android_device_samsung_gts210wifi
Vendor
https://github.com/retiredtab/proprietary_vendor_samsung-selinux
The build manifest and instructions on how to compile from source are at
https://github.com/retiredtab/LineageOS-build-manifests/tree/main/20/exynos5433Q2. Is this ROM suitable as a daily driver?A2. It might be, depending on your requirements. You would need to try it yourself, with your preferred apps, to see if suits your purposes. I've been using it myself since Oct, 2022 with no major issues.Q3. What do I do if my app xyz doesn't work?A3. I can't help diagnose problems with random apps I know nothing about. If the app is critically important to you and it doesn't work on this ROM, go back to a ROM where it did work.Q4. Why is this ROM laggy and/or buggy?A4. The device will be noticeably slower if you're using any Gapps package. Consider going gapps-free. A lot of apps will work without Google's services, or there exist alternatives that will. Check out F-Droid, Aurora Store, NewPipe, etc.Q5. What TWRP should I use?A5. You MUST use TWRP 3.6.2_9. Get it from
https://dl.twrp.me/gts210wifi/Q6. Why should I use this ROM?A6. You don't have to! If you don't like it, go back to your old ROM.Q7. Will you offer monthly updates with security patches?A7. We plan to do so. We will try to update the ROM with the monthly security patches after LineageOS has released them, free time permitting. Each monthly build will be tested to make sure all the "What works" functionality listed in post #1 still works, before it's made available (which might in some cases delay the release).Q8. I'm a newbie. Can you provide step by step instructions?A8. We simply don't have the time to do this, but there are lots of tutorials, videos, etc online showing how to flash custom ROMs and how to deal with common problems. Newbie questions are also accepted in the XDA General Questions and Answers forum.Q9. Can I report a bug with respect to the ROM?A9. Yes, but you need to supply the following information. If you don't, I won't look at it.
Provide an adb logcat of the problem, and if possible describe how to reproduce it. Note that I can't help if it involves downloading any app I don't already use that requires payment or creating a userid/password.
To get a logcat, open a terminal window on your PC, connect your device to it via USB, and do this:
Code:
# clear the logcat first
adb logcat -c
# start logcat trace
adb logcat > problem.txt
# reproduce problem
# wait until problem has occurred,
# then stop trace by hitting ctrl-c
# zip the problem.txt file before uploading it.
Q10. How long will you build 20 for this device?A10. For now, 20 will be built for all of 2023. After that, we will make a decision depending on a number of factors.Q11. Do I need to erase everything and format my data before installing this ROM for the first time?A11. If you're coming from stock Samsung Android, or an earlier version of LineageOS, or a different custom ROM, you MUST 'clean flash': boot to TWRP recovery, wipe system, data, dalvik/art cache, and cache partitions, then Format Data, then install this ROM.
If you don't do this you're likely to run into problems, such as getting stuck at the boot animation for more than 5 minutes.Q12. What Gapps should I use?A12. Your choice! There are several well-known Gapps packages, such as NikGapps, BiTGapps and MindTheGapps. Do your own research as to what is the most reliable gapps option for you. As a courtesy to gapps users, I opened a thread at
https://forum.xda-developers.com/t/...sion-for-20-roms-sm-t710-and-sm-t810.4600455/
for you to discuss gapps. Do not discuss gapps in this thread. Thank you.
You could also consider Google alternatives, such as Aurora Store, which mirrors the Google Play Store apps but doesn't need any Google services itself. Many Play Store apps do not actually depend on Google services.
If you are going to install any Gapps package, follow the installation instructions given for that particular package.Q13. I'm having problems with Gapps. Can you tell me why it's not working?A13. I can't answer any questions about Gapps, because I don't use them. Ask your questions on the XDA thread for the Gapps package you're using.Q14. Why isn't my post answered?A14. There are several possible reasons: the question is answered in the FAQ (in which case it will be ignored completely); or it involves apps or operating systems that I don't use; or it's about Gapps, which I don't use; or I simply have not had time to answer any questions.Q15. What speed up/optimization tips do you suggest?A15. These steps can make a big difference to performance:
Turn off animations. Go to Settings > System > Developer options, scroll down to the Drawing section, and set Window, Transition and Animator scale all to "Animation off".
Don't install Gapps unless you depend on something that only Google is providing. Use Aurora Store to get your preferred Play Store apps - they will all be available on Aurora Store. You can choose to access this anonymously or use a Google account.
Don't run more than two apps at the same time. You can probably listen to music in the background and use a web browser at the same time.
Use a web browser with built-in adblock and privacy features, such as Brave.
Use NewPipe to watch your streaming content. It has built in adblock so you don't have to watch forced ads.
Look for apps that are open source, ad-free and lightweight.
Q16. Does this ROM support Magisk so I can root my device?A16. Magisk works with this ROM as reported by beta testsers, but that could change with any revision and changes by Google. However I don't use it myself and can't help with any related issues. Direct any questions about Magisk to the XDA Magisk forum.Q17. Will this ROM ever become official?A17. With 19.1 and up, legacy devices like ours will NEVER be official due to lack of ebpf support. See https://lineageos.org/Changelog-26/Q18. What is the difference between this ROM and others?A18. This ROM tries to be pure LineageOS with little or no modification. Other ROMs may come with a different UI, different bundled apps, etc.Q19. Will there be any major 20 code modifications in the future?A19. There may be some major modifications along with some slight tweaking to the SEpolicy, small bug fixes and minor code cleanup, but all the hard work - getting the rom up and running, and fixing all the major bugs - has been done.Q20. Why did you fork the trees?A20. I wanted my own private branch where I could make changes that would only affect my own personal builds.Q21. Can you build a variant of this device? For example, a LTE or S-pen version?A21. I cannot and will not try to build for a variant device if I don't physically have that device. I have to be able to boot and test it myself, and there's no guarantee that I can get those variant features working.Q22. Can I load this ROM on a variant device like LTE or S-pen version?A22. This ROM is for the device explicitly listed and will only work on that device. Do not try to install it on any other device.
ONLY if you are an advanced user and understand TWRP, adb, odin, heimdall, etc, you could try loading it on a LTE or S-pen variant by modifying the updater-script, but be warned: there are likely to be problems, including a bricked device, bootloops, or the ROM not being able to support the functionality of LTE/S-pen.Q23. Does this ROM have any wifi connection issues?A23. This ROM's wifi has been stable on the specified device ever since lpedia and I determined the root cause of the wifi problems back in July 2021 and re-installed the original S2 network 'blobs' with LOS 17.1.Q24. Is this ROM secure so I can do financial transactions?A24. Although Android monthly security patches do improve general security, this ROM's outdated kernel and old proprietary vendor blobs/drivers will NEVER get updates of any kind, and could have significant security holes.
In addition, although the ROM is SElinux enforcing, there's a good chance that the rules written (about 1000+ lines of code) have some errors.
If the device is rooted, this would further weaken the security.
With this information, it's up to you to make an informed decision about whether you trust this ROM to be secure enough for your financial transactions.Q25. How do I turn off the taskbar at the bottom of the screen?A25. Goto settings, system, buttons and disable taskbar.Q26. Okay, I understand the consequences and willing to take the risks outlined, now where can I find the ALPHA rom?A26. Downloads are at https://sourceforge.net/projects/retiredtab/files/SM-T810/20/
Release notes
NOTE: All builds that I upload have been personally tested on my device to boot and function as described in post #1. Having said that, there's still a chance it won't work on your device due to human error, your configuration, your apps, etc. If it won't boot, always start with a complete wipe of everything and format your data in TWRP. This is known has a clean install. Backup your data before a clean install.
June 23, 2023
1. Initial 20 ALPHA public release.
2. Incorporates June 5th security patches as per https://review.lineageos.org/q/topic:"T_asb_2023-06"
3. If you are coming from stock rom or an older LineageOS version (example, 18.1 or 19.1), you MUST format your data in TWRP. Remember to backup your data and verify that restore data works before upgrading to 20.
Reserved.

Categories

Resources