[Galaxy S III Android Development] JustArchi:
[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://xdaforums.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

Developer's Kitchen

Unless stated otherwise, all ArchiDroid components are licensed under the Apache License:

Copyright 2014 JustArchi@JustArchi.net

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:

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 :p.

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".

[YOUTUBE]TbKQiOp-Io4[/YOUTUBE]