Related
TIME TO MOVE ON
i wil be on xperia section
i am happy that i could help this section
Best Regards, Happy Cookling and Programing!
Hy all
I started this tread because the interest to android is growing
I invite all people with linux knowledge or C programing skills to join
If you know some hardware programing is better
We need
- developpers
- testers
i will not post an guide how to setup the compiler and set variables
if you dont know this stuff please stick to Google Android thread and dont post here stupid questions as IT IS READY / WHEN WILL IT BE READY
WE DO THIS IN OUR SPARE TIME AND WE HAVE FAMILY AND LIFE
So shell we invite the penguin to our phones?
WIKI Page
(Thanks Bikor_gj)
http://wiki.xda-developers.com/index.php?pagename=Niki_Android
GIT Trees
Vogue
http://git.linuxtogo.org/?p=groups/mobile-linux/kernel.git;a=shortlog;h=refs/heads/htc-vogue
MSM
http://git.linuxtogo.org/?p=groups/mobile-linux/kernel.git;a=shortlog;h=refs/heads/htc-msm-2.6.25
Reserved For Messages
Build Instructions for the ones that want to help
- Create working dir:
Code:
mkdir ~/android-kernel
- Go to the dir:
Code:
cd ~/android-kernel
- Clone the Linuxtogo GIT:
Code:
git clone git://git.linuxtogo.org/home/groups/mobile-linux/kernel.git
- Go into newly created dir:
Code:
cd ~/android-kernel/kernel
- Create a new branch, call it htc-msm and link it to the official htc-msm development branch:
Code:
- Descend into the "main" android dir:
Code:
cd ~/android-kernel
- Get toolchain:
Code:
wget http://www.codesourcery.com/gnu_too...-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
- maybe you need to rename the just downloaded file (because after .tar.bz2 wget has added ?lite=arm). (HINT FOR LINUX-NEWBIES: USE TAB TO COMPLETE KNOWN FILENAMES!! - In this case type: mv arm(TAB) arm(TAB) -> backspace till 'bz2' is the last word)
Code:
mv arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2\?lite\=arm arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
- unpack the toolchain:
Code:
tar -xjf arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
- ascend again into the 'kernel' directory:
Code:
cd ~/android-kernel/kernel
- make the kernel:
Code:
git checkout -b htc-vogue origin/htc-vogue
You also have to use
Code:
make vogue_defconfig ARCH=arm
- export path so the newly downloaded toolchain will be used instead of your default compiler (which would compile for your computer instead of your phone):
Code:
export PATH=~/android-kernel/arm-2008q1/bin:$PATH
- make the zImage-file:
Code:
make zImage ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
Now the zImage file is created inside the directory kernel/arch/arm/boot.
When uploading this to your phone, remember that you only have to replace the zImage after each kernel build - the Linux environment on top of the kernel can just stay the same, so initrd (which is the ramdisk filesystem) can stay the same.
BR
Reserved For Kernel Status
Kernel status
no more power button //thanks biktor_gj
nike mtype added
audio working
call working
data working
sms unknown //due to keyboard and ts
keyboard screwed // somethings not right needs investigation
OnSreenKeyboard working
Touch screwed // SOLVED
when this kernel probelms will be solved i will release the new kernel
I have knowledge of both C and linux so I vollunteer
hi,
i can be a tester... also i have some little linux knowledge...
I have limited knowledge of both c and linux, so I possibly could help.
It seems useful however to setup an SVN or something, so even 'non-registered' developers can write patches and submit them for review. You can set up such an SVN for free at assembla.com, together with a wiki, TRAC and more. They even say you can ask for more storage space and stuff if your project is an open-source project.
If you have such an SVN developers like me can help without making any false promises of some sort.
I hope you know what I mean, it sounded better in my head
i know linux and i can do beta tester. i'm studying engineering too.
i also know linux and a bit of C...i can do testing too.
as you already know, I'm in too for development...
i will try the new kernel asap...
I tried this kernel and indeed, the keypad works on mine!
(touched the TS though, just because you said I wasn't allowed ) It froze, so reboot...
awesome! keys work all good! numbers work and also dpad and enter works!
(by the way: how will you make it possible to enter text? android is coded to enter numbers...
the_fish said:
awesome! keys work all good! numbers work and also dpad and enter works!
(by the way: how will you make it possible to enter text? android is coded to enter numbers...
Click to expand...
Click to collapse
I believe by the end of this year or somewhere in the beginning of 2009 Google is making a system for creating software input methods, which would theoretically allow us to write an application that would reroute direct hardware input. I think. We'll have to see what the future will (or the talented developers here) bring.
man, awesome!!! good job, jerpelea. keys work great!!
graey said:
I believe by the end of this year or somewhere in the beginning of 2009 Google is making a system for creating software input methods, which would theoretically allow us to write an application that would reroute direct hardware input. I think. We'll have to see what the future will (or the talented developers here) bring.
Click to expand...
Click to collapse
ok... the onscreen keyboard would be ok for the time we have to wait
Jerpelea: Why do you want Ubuntu as dev os? I'm using OpenSuSE and am able to build the kernel.
I am thinking (since 2 weeks) to try Ubuntu again (used to use it), but may take while before I get to it...
Boylen said:
Jerpelea: Why do you want Ubuntu as dev os? I'm using OpenSuSE and am able to build the kernel.
I am thinking (since 2 weeks) to try Ubuntu again (used to use it), but may take while before I get to it...
Click to expand...
Click to collapse
I think he is just saying that because it's easier for people to use??
works fine for me on vanilla debian
new kernel works fine screen still too responsive keys work calls work
it works! but after few minutes my nike is auto-turned off :O
garsim said:
it works! but after few minutes my nike is auto-turned off :O
Click to expand...
Click to collapse
i guess we have turn the auto turn off in wm to unlimited or run it on usb plug...
For those that are experiencing battery drain because Maps app keeps opening in the background no matter how many times you force close it, I made a very simple script to completely freeze it (and defrost it if it's already frozen) with one click(technically two lol).
Attached Files:
freeze-maps -- it auto detects if Maps is already enabled or disabled, and does the opposite.
maps-disable -- it simply runs the disable Maps command, won't hurt even if the maps is already disabled
maps-enable -- it enables Maps, won't do any harm if Maps is already enabled
Instruction:
1. Download and Install Script Manager in the market (there's a free version)
2. Download the attached freeze-maps.sh.txt and put it in your SD card, say under Documents
3. Open Script Manager, locate the file (freeze-maps.sh.txt) you just downloaded, open it by long press and open as... Script/Executable
Check "run as root", check "Configure as favorite", Click Save and click Exit
4. You can now quit the Script Manager app
5. On your preferred launcher, create a new widget, choose script manager, and then the freeze-maps.sh.txt script (it should be there, since you bookmarked it at step 3).
6. Now you can enable/disable Maps with just using the widget on your Launcher!
************************************************
For those getting an error with freeze-maps.sh.txt, it means your "pm" command doesn't support filter and it won't function as intended. You can either use maps-disable/maps-enable as two separate widgets
or you can do the following(at your own risk):
I attached a copy of my own "pm" executable file that was found in my device, you just gotta replace yours with it.
How-to:
1. Download the attached file - pm.zip
2. Use root explorer and go to /system/bin
3. mount it as writable by pressing the little button says "Mount R/W", it will change to "Mount R/O"
4. rename your pm to pm.bak (for backup) and replace it with the file pm found in pm.zip
5. Long click on the pm file you just extracted here and choose permissions:
Owner = Read/Write/Execute
Group = Read/Execute
Others = Read/Execute
Click Ok
5. Mount your system back to read only by pressing "Mount R/O" and you should be set
******************************************
PS: please let me know if there's any error since this is the very first Android script I wrote, Thanks for Looking ;-)
*Disclaimer: As usual, I am not responsible for any damage to your device, it's do it at your own risk. I will try my best to help though.
PPS: The geeky stuff - you can of course edit the script or run the command "pm" in a terminal and use it to enable/disable any annoying process, but you need to know what you are doing!!!! I personally froze the market updater and twitter app and some other bloatwares that came with the streak.
Shows
# Error: unknown option: -d
+
(loads a stuff)
+
Maps is now disabled
Maps disappears off my Apps list - I re-run the script, same message, and still no maps. How do I get Maps back ?
I am running this fine on streadriod 2.3 by fards, let me check and get back to you
But the new additional attached files at the first post should solve your problem for now.
it wont detect if you have maps enabled or disabled, but it will do what it's file name implied respectively.
Just use Script Manager to Run it, you can also make two Widgets for enabling/disabling.
haynesteve said:
Shows
# Error: unknown option: -d
+
(loads a stuff)
+
Maps is now disabled
Maps disappears off my Apps list - I re-run the script, same message, and still no maps. How do I get Maps back ?
Click to expand...
Click to collapse
if you have a terminal installed, try to run this > ( === enter means hit enter)
su === enter
pm list packages -d === enter
and let me know the result.
Thank you
enable script has 1st line as
pm enable com.google.android.apps.maps\
which doesn't work - however after removing the slash, works perfectly. Thank you
haynesteve said:
Thank you
enable script has 1st line as
pm enable com.google.android.apps.maps\
which doesn't work - however after removing the slash, works perfectly. Thank you
Click to expand...
Click to collapse
yup made a typo in the script, corrected in the OP, thanks =)
asianftw said:
if you have a terminal installed, try to run this > ( === enter means hit enter)
su === enter
pm list packages -d === enter
and let me know the result.
Click to expand...
Click to collapse
Again shows Error: unknown option: -d
(list usage perameters)
Using Streakin v1.1
haynesteve said:
Again shows Error: unknown option: -d
(list usage perameters)
Using Streakin v1.1
Click to expand...
Click to collapse
Oh that's probably why.. Because Streakin is mostly based on stock rom and I guess -d is some kind of option that only available in the custom roms like on DJ steve's or fard's
If it's not too much trouble, it would be great if you can message me the output of the command so I will see if i can write a working script for the stock rom accordingly
just type(in terminal):
su
pm
and in your terminal software, there's an option "email to". just copy and paste the contents in to a private message via xda.
Thanks so much
Sent you a PM (not easy as Emulator kept FC - lol)
haynesteve said:
Sent you a PM (not easy as Emulator kept FC - lol)
Click to expand...
Click to collapse
Thanks for your help !! I see your version of the pm command is missing the filter option, hence rendering the detection error.
I updated my OP
Thanks for this script, it works brilliantly.
I am trying to modify this script to check of com.facebook.katana is running and do the same for Facebook, but I am not sure how to check if that service is running.
hshah said:
Thanks for this script, it works brilliantly.
I am trying to modify this script to check of com.facebook.katana is running and do the same for Facebook, but I am not sure how to check if that service is running.
Click to expand...
Click to collapse
i did it for some of those apps that have the tendency to stay in the background even you force close it.
you can check if it's running by going to Setting -> application -> running service
you can also check what apps are occupying your resource with an app called "Betterbatterystat"
asianftw said:
i did it for some of those apps that have the tendency to stay in the background even you force close it.
you can check if it's running by going to Setting -> application -> running service
you can also check what apps are occupying your resource with an app called "Betterbatterystat"
Click to expand...
Click to collapse
Sorry, I meant via a script to replace "pm list packages -d".
hshah said:
Sorry, I meant via a script to replace "pm list packages -d".
Click to expand...
Click to collapse
you can look into using pid or look here for some similar info
i can get back to you when I have more time in hand.
But what i can ensure you is: if you have facebook installed, it IS running in the background, period. 100% of the time. It's not using much of my battery though, so I just leave it as that.
Done it
It really works!
Thanks Sir.
Fully Working on Karbonn_A9+.
@asianftw & @hshah,
These are great! Thank you. Will try them soon.
Can you add more apps for this.
And can you make it into auto-mode? Meaning any apps will be freeze when not in use, but will be turned ON when user click those app OR triggered by incoming update (like FB) or at least, set to a fix frequencies to check for update (say every 30 minutes / hourly / "x" hours). If it is possible, this will be a must have app.
Dell Streak | InnerSD 8GB | ExternalSD 32GB | LXdroid 0.2
Update 03-04-12:
This project moved to:
http://forum.xda-developers.com/showthread.php?t=1529746
---
Update 02-18-12:
Just to clarify: DONT FLASH THIS ZIP-FILE !!! It's NOT a flashable zip.
On sidenote, maybe the bootloop problem is caused by traing to flash this zip ? Maybe the .txt file in there confuses android ? I don't know but DONT flash this! Use manual installation.
---
Would any OP be willing to move this thread to the Ace Development Subforum ? Thanks a lot !
---
Update 02-09-12 (number 2):
The touchscreen sensitivity tweak was removed from the script as suggested by the posters here. It did not work anyway as the path to the files was non-existant.
Attached the updated script with short installation instructions.
---
Update 02-09-12:
I went through the LagFreeV3 script and cleaned it up / optimized it so there are no more useless repetitions of the same commands. Succesful startup of the script was tested using DDMS.
Attached the cleaned up script with short installation instructions.
---
All,
longtime lurker - first time poster here. Since i'm not allowed to post into the Ace Development subforum i have to post right here.
Looks like there are some bugs in Slaid480's latest LagFreeV3 script. On my ace running DDM during boot i can see it erroring out right here:
Code:
02-08 14:26:50.239: I/run-parts(100): /system/etc/init.d/S95LagfreeV3: 351: Syntax error: word unexpected
02-08 14:26:50.239: I/run-parts(100): run-parts: /system/etc/init.d/S95LagfreeV3 exited with code 2
so it's not even running to its EOF due to this error. Looking at he script the lines around line 351 look like this:
Code:
echo ${READ_AHEAD_KB} > /sys/block/mmcblk1/queue/read_ahead_kb
for i in \ `find /data -iname "*.db"` do \ sqlite3
$i 'VACUUM;'
done
echo "6144 87380 524288" > /proc/sys/net/ipv4/tcp_wmem
with " $i 'VACUUM;' " being on line 351. So: i'm not a BASH pro but maybe someone knows what is the syntax error in here and a way to fix it ?
Also by looking at the script there seem to be a lot of lines / functions doing the same things over and over, like setting minfree or readahead_kb - maybe in a community effort it would be possible to consolidate that script into something smaller and more streamlined ?
Just a thought
Yes I think it might have to do with that word.....try deleting the line .
Herpderp Defy.
maybe slaid can give this a clue?
g_BonE said:
...
Also by looking at the script there seem to be a lot of lines / functions doing the same things over and over, like setting minfree or readahead_kb - maybe in a community effort it would be possible to consolidate that script into something smaller and more streamlined ?
Click to expand...
Click to collapse
slaid did exactly that to
One Script To Roll Them ALL
Click to expand...
Click to collapse
I guess while cutting, pasting and reformatting all of known scripts to streamline them, two more newlines were accidentally added here?
Try to edit the above code snippet to
Code:
for i in \ `find /data -iname "*.db"` do \ sqlite[B][COLOR=Red]3[/COLOR][/B] [COLOR=Blue][B]$[/B][/COLOR]i 'VACUUM;'
and see, if it runs till the end. ...
^^
i will give this a try and come back here to post about the results. meanwhile i was also thinking about shuffling through all the parts in the script that essentially do the same thing, dont know if i'd be allowed to clean this up and repost the cleaned version here ?
I'd PM Slaid and ask him. The android spirit is one of openness, as is the spirit of almost all the work on modifying our favourite android ROMs. LagfreeV3 doesn't specify a software licence so it is not clear what slaid's intentions are in terms of modifications to his code. Ideally code should be licenced (and forkable via github) to make these things clearer. I think the broken bits are supposed to be formatted as in the following (the equivalent function in engengis, written more robustly):
Code:
for i in \
`busybox find /data -iname "*.db"`;
do \
/system/xbin/sqlite3 $i 'VACUUM;';
/system/xbin/sqlite3 $i 'REINDEX;';
done;
There are other sorts of errors, like the broken hashbang on line 387 (which is just a stock turboboost copy'n'pasted in) -- and yes, loads of places in which lagfreeV3 does something which is then done again by the inline turboboost. As some ROMs include turboboost and lagfree, when they upgrade to V3, things will often be repeated 3 times!!!
Looking at the code a bit is another good reason to try engengis, which combines many tweaks in a flexible system without all the duplication.
iandol said:
...
LagfreeV3 doesn't specify a software licence so it is not clear what slaid's intentions are in terms of modifications to his code.
...
Click to expand...
Click to collapse
There ain't any, because he also only copied it from several sources. You can find there names and "Copyrights" verbatim in there.
iandol said:
...
Looking at the code a bit is another good reason to try engengis, which combines many tweaks in a flexible system without all the duplication.
Click to expand...
Click to collapse
Good find! I'll take a closer look. Like it already, that the options are well explained and documented.
^^
iandol said:
Looking at the code a bit is another good reason to try engengis, which combines many tweaks in a flexible system without all the duplication.
Click to expand...
Click to collapse
Maybe a little out of topic, but what if we want to switch to engengis from lagfix? I have both lagfix and turboboost installed on my stock rom and i'd love to switch to this new tweak, but how? Is removing S95lagfix in /system/etc/init.d good enough?
As i mention in his thread, if u looks closedly u will find more lines actually not working...its maybe taken from other device tweaks
regards,
•ƒγяύs ργяσ™•
Delete S95Lagfree to get rid of lagfreeV3.
87calibration, S95zipalign S98CFSK and S98system_tweak remove turboboost.
Engengis contains the cache dropping (S98CFSK), zipaligning (S95zipalign) and deep tweaks (S98system_tweak) of turboboost, and I delete 87calibration as all it does is delete batterystats the first time it is run which I'd rather not do (and engengis can do this via the commandline control when I choose to).
Engengis also contains the same sqlite3 version as turboboost to optimise the sqlite databases, and performs both a a vacuum and a reindex, which is more thorough optimisation than the lagfree/turboboost combination seems to do...
Alright, after some ~6 hours of fiddling with the lagfree V3 script i managed to get it semi-cleaned up. I'll post the zip-file in my first post of this thread.
Regarding Engengis: I'll have a look at this soon and give it a shot
Touchscreen tweak will not working coz there are no path name like that exist...
regards,
•ƒγяύs ργяσ™•
will try it later on! So still thiscompatible with turboboost? Delete s78touchscreen part from turboboost, right?
Thanks...6 hours is a lot of work dude!
thanks g_BonE -- you still have the touchscreen tweaks in at line250
Reading through the code this is much better than lagfreeV3 original, and should combine better with turboboost...
Thanks for the nudge to the non-working touchscreen tweak. I removed the tweak alltogether and reuploaded the fixed script. See first post
I'll have a go at the turboboost v8.5 script: maybe i can integrate all / most of it into the cleaned LFv3 script. Maybe also the "journaling disabler" script can be integrated as it is just a matter of mount options.
g_BonE said:
Thanks for the nudge to the non-working touchscreen tweak. I removed the tweak alltogether and reuploaded the fixed script. See first post
I'll have a go at the turboboost v8.5 script: maybe i can integrate all / most of it into the cleaned LFv3 script. Maybe also the "journaling disabler" script can be integrated as it is just a matter of mount options.
Click to expand...
Click to collapse
I am really not an expert, not even close, but doing a script with so many lines will probably not have the desired result?
As member pyronia suggested it's better to do small scripts for a specific task than having one for all. Maybe the one for all script would suit devices with more power to process the script?
Anyway, already thanked, glad someone cleaned that script, watching you closely for the updates!
I was used this fix script. But when I check in terminal manager 'a2sd check' the end value min RAM free change to 14xxx, when used lagfixv3 the value is 23xxx.
So actually it's works or not? Thanks
Sent from my GT-S5830 using Tapatalk
Hello g_BonE!
I'm having an issue with your last version (I got stucked in Android Screen). Is there anything I did wrong? I just entered in /system/init.d/deleted s95lagfix and simply copied you s99 with all permissions (with root explorer) and then I got stucked.
What can I do?
Thank you very much for your script!
I knew it there was something fishy with these scripts.LOL Thank you g_BonE for your effort! I'll be hitting the thanks button buddy. Oh and another thing, should I delete V8.5 TurboBoost too?
---------- Post added at 08:38 AM ---------- Previous post was at 08:26 AM ----------
For the people who don't read the instructions:
You should delete S95Lagfree first, located at etc/init.d. Then paste S99_LFv3gB on the same folder (etc/init.d), then set permissions to rwe-rwe-rwe.
I used to think that it should be at rw-r-r sir g_BonE.
itasoulas said:
I am really not an expert, not even close, but doing a script with so many lines will probably not have the desired result?
As member pyronia suggested it's better to do small scripts for a specific task than having one for all. Maybe the one for all script would suit devices with more power to process the script?
Anyway, already thanked, glad someone cleaned that script, watching you closely for the updates!
Click to expand...
Click to collapse
Yeah bro, i test so many script but not all working well coz of too much lines..the devices itself maybe could not read the script properly when too much lines in it, thats why i make a single line script that actually u can see the different...
regards,
•ƒγяύs ργяσ™•
Clean | Stable | Carbon | Flexible | Optimized | Excellent
-> ArchiDroid 2.X <-
Ported to the Galaxy Player 4.0
BIG thanks to @JustArchi
{
"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"
}
Changelog
ArchiDroid 2.4.3
- Improved archidroid_pixelserv
# Previously archidroid_pixelserv responded to all requests with the same 1x1 NULLGIF response (GIF89a[]![])
# This was OK but in some apps it showed our gif in binary form (GIF89a[]![]) instead of showing nothing, i.e. in Subway Surfers game
# Now we respond with a "NULL" content proper for request
# If app requests JPG, we respond with NULLJPG, if app requests TEXT, we respond with NULLTEXT etc.
# This way app "gets what it wants" and won't show something, which it can't understand to user
# Surprisingly, at least Subway Surfers doesn't show any ad right now, so it also stops some apps from displaying NULL content, instead of showing NULL in binary form
- Removed VNC Viewer
- Updated ArchiDroid Backend tools (dnsmasq, haveged, dnsproxy2, pixelserv) to latest versions
- Updated PA GAPPS to 0417
- Used Carbon as base; Omni is maybe coming in future (if requested; this eventually needs much time)
Download
All Files Dev-Host
Experimentals on GitHub
Stable: ArchiDroid 2.4.3
Oldstable: ArchiDroid 2.X
Remember that you don't need anything else to flash. Google Apps are included already.
Known Issues
All known and unknown Carbon/CM bugs (if any)
Debian and adflash are not working yet (maybe we have to create a virtual ext4 partition cause of too little /data partition).
If this is working it's possible to modify adflash to fit my GitHub repository.
Follow (original) ArchiDroid On XDA!
Write A Review!
Rate the Official Thread!
Buy The Masterchief A Beer (he created this awesome ROM!!)
Like ArchiDroid On Facebook!
Hit Thanks!
Informations:
[ROM] [KVT49L] [OmniROM] [Linaro] [Stable] [Flexible] [Excellent] [20/04/14] ArchiDroid V2.4.3 | Power In Your Hands, a ROM for the Samsung Galaxy Player 4.0
Contributors
JustArchi
andreasltcf
ROM OS Version: 4.4.x KitKat
ROM Kernel: Linux 3.0.x
Based On: Carbon; ArchiDroid
Version Information
Status: Beta
Created 2014-04-28
Last Updated 2014-04-28
[SIZE="+3"]ArchiDroid's FAQ / Q&A (i9300)[/SIZE][SIZE="+1"]Remember.. This is the Galaxy Player 4.0 thread.. And based an Carbon.. It maybe differs from following information..[/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
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:
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.
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
You can easily "pack" latest experimental and flash without needing to wait for the next build. I'll tell you how to download and flash it by yourself.
[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/andreasltcf/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 @JustArchi's short video, which shows how to flash experimental ArchiDroid going through "Expert Version" (Archi's GitHub).
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:
From debian site:
How exactly this covers our beloved SGS3 (and countless number of other android arm-based phones)?
As you may (or even should!) know, Android operates on it's own Linux-based kernel. Android's kernel is literally a fork of Linux kernel, with a few special/unique functions which are required, mostly hardware-specific. Because of that kernel itself is VERY compatible with everything based on Linux.
However there have always existed one typical problem, lack of proper environment. We have a great kernel, great power, linux-based android environment, but this environment lacks of very common and required libraries/binaries. If you ever wondered what is or what does busybox, this is the answer. Busybox is just a small package which offers a few standalone GNU/Linux binaries, which are required to make certain things work. For example, swap priorities. Android knows what swap is, and nothing else. It doesn't know that swap could have a priority, so if you use android's swapon command on 4 devices, it will firstly fill first device, and then proceed to the next. That's why we need busybox in ALL custom kernels, because android environment isn't enough.
However busybox sometimes isn't enough. If we focus only on Android itself, it is. But if you for example want to run stricly linux-based service, I don't know, a web server for example... Is it possible to run a native linux web server on an android? No, it's not. You should firstly compile such service on arm architecture, including all dynamic and static libraries (wrrr ) 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
- 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
- Carbon Rom
- Linaro Toolchain
- Impulse Kernel
- Spirit 2
Special thanks to:
- @JustArchi for creating ArchiDroid icluding all it's optimizations, a helpful hand to make this possible and his AWESOME SCRIPTS + documentation inside them.. really.. this guy is able to do ALL with scripts..
- @zaclimon for his work on our device with its own very little but awesome community, Impulse kernel, his sources for building and again all his contributions for our device..!!
- 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
Nice to see it here as well, good luck with the port .
okay.. if anybody out there using this rom.. pocket debian is working fine.. (img on external sd).. have to write the scripts to do it all automatically..
edit: ups.. have to upload the rom first.... but if there's any interest in this.... btw if you're using carbon just now.. you'll love this rom..
I think people would be interested... I would be interested in trying it out once I get more time on my hands, maybe use it as a daily driver if it fits my needs.
SailfishOS (SFOS) is a GNU+Linux system using libhybris to leverage Android drivers from LineageOS.
About everything should work (except NFC, no userspace support for now).
You're root and you've SSH, set password in developer-mode settings. Use devel-su like you'd use sudo !
To use/flash SFOS (no wipe needed), you should already be using LineageOS 14.1 20181031 build or newer,
and have booted it at least once (otherwise WLAN problems).
See latest release post for OTA update instructions, or flash ZIP download link.
Warning : flashing zip over previous SFOS install erases it ! So use OTA to avoid that, or use integrated backup app...
Note : SFOS only flashes boot partition and install itself in /data/.stowaways/sailfishos/ so :
you can go back to LineageOS only by flashing the LOS boot image
you can reclaim diskspace used SFOS by removing /data/.stowaways/sailfishos/
Reference Wiki page on merproject.org
Kernel | Device | Vendor source trees
Feeling adventurous ?
This is a SailfishOS community port for the 6045 idol3.
This is not Android (just re-using the lower layers), Android apps can't run on it and there's no support for official-ports-AlienDalvik-emulator.
So please don't ask.
During installation, you'll be asked to create a Jolla account, to have access to basic apps (notes, mediaplayer, documents, etc.).
This is not mandatory (though prefered for the full experience) : should you choose not to register (and even if you do),
you still can install an alternative store using OpenRepos client Storeman
Reserved
Hello, installed version 3, everything works fine, data transfer, wifi, all sensors (including case), location, mtp, calls and SMS. There were only problems with the store, some applications are not installed the first time, you have to install again, and so great work is another alternative for the smartphone, thank you.
andrejchern said:
Hello, installed version 3, everything works fine, data transfer, wifi, all sensors (including case), location, mtp, calls and SMS. There were only problems with the store, some applications are not installed the first time, you have to install again, and so great work is another alternative for the smartphone, thank you.
Click to expand...
Click to collapse
I have installated seilfish os some time ago in my moto g2 and the battery life and boot speed its superior then any version of android ... ?
A very fast, fluid, and consistent UI in this ROM. An interesting one to play with. (However, for my needs, I need the PlayStore apps.)
I now understand how your work on Lineage was a foundation for this one.
I am curious Vknecht, what is your interest in this one?
tess1 said:
A very fast, fluid, and consistent UI in this ROM. An interesting one to play with. (However, for my needs, I need the PlayStore apps.)
I now understand how your work on Lineage was a foundation for this one.
I am curious Vknecht, what is your interest in this one?
Click to expand...
Click to collapse
It's all politics, also it's the system I use daily
some sort of hommage to a french industry of old (1898), rough-rided by financialization (see, can't build idol3 themselves)
fighting planned obsolescence
taking the power back on a device
powering it with an OS independent from GAFAM
having closer to classical GNU+Linux distro, though not totally open in the case of SFOS
Since 2010 I've been a Nokia N900 then N9 user (which ran with Maemo, resp. Meego, predecessors to SailfishOS) until summer 2017 when I got a Xperia X for the SailfishX release. Only ever used Android for a month, until the build-SFOS-for-X documentation was released and dived in the OS-building fun...
At the beginning of 2018 I looked for a cheap and decent french-branded-androphone (2Gb RAM, HD display) with a working LineageOS port and found the idol3 to begin a new SFOS port. It's been a long 8 months journey, where rebuilding LineageOS if only for the patch-level was not much, then also wanted to "upstream" some fixes or upgrades (eg. kernel) I wanted in SFOS...
I started using my idol3 again and I love Sailfish OS as soon as I figure out android apps im gonna use it alot more
Everything work fine, but the double tap to wake up the telephone.
Hi vknecht, great job, how can I contribute (donation) to your work? I've installed everything except Anbox, but I think I'll do it anyway, most of my contacts use Wzap ... Everything works fine except for the double tap to wake up the phone, do you know what it can depend on? Is it a function of hardware or software? With Lineage it worked, with Sailfish no. It's not dramatic, but definitely inconvenient to have to use the power switch every time. Thank you.
Best regard.
Antonio from Italy.
vknecht said:
Feeling adventurous ?
This is a SailfishOS community port for the 6045 idol3.
This is not Android (just re-using the lower layers), Android apps can't run on it* and there's no support for official-ports-AlienDalvik-emulator.
So please don't ask.
It's a systemd-based GNU/Linux with 32bits-userspace system, and about every basis function should work.
You're root, set password in developer-mode settings. Use devel-su like you'd use sudo !
To use/flash SFOS (no wipe needed), you should already be using LineageOS 14.1 20181031 build, and have booted it at least once (otherwise WLAN problems).
During installation, you'll be asked to create a Jolla account, to have access to basic apps (notes, mediaplayer, documents, etc.). This is not mandatory (though prefered for the full experience, for now) : should you choose not to register (and even if you do), you still can install an alternative store using OpenRepos client Storeman
*basic Anbox support was added, but don't count on it for now (plz contribute if you can), it may be broken.
If you really want to try it : (don't just copy/paste, fix the URLs !)
Code:
### As root (devel-su), on the phone via SSH :
# Add mal's Anbox for SFOS repository
ssu ar home_mal_anbox [url]http://repo.merproject.org/obs/home:/mal:/anbox/sailfish_latest_armv7hl/[/url]
pkcon refresh
pkcon install anbox-sailfishos anbox-sailfishos-image-mixed-32-64-bit
rm -f /var/lib/anbox/overlay/system/lib64/libGLESv*
cp /vendor/lib/egl/libEGL_adreno.so /var/lib/anbox/overlay/vendor/lib/egl/
# Install a keyboard APK, eg [url]https://f-droid.org/fr/packages/rkr.simplekeyboard.inputmethod/[/url]
mkdir -p /var/lib/anbox/data/app
cp *apk /var/lib/anbox/data/app
### Networking is broken at the moment... ###
### Comment anbox-bridge.sh lines (ExecStartPre and ExecStopPost) ###
### in /lib/systemd/system/anbox-container-manager.service ###
# Restart Anbox
systemctl restart anbox-container-manager
# There's no "back" button for now
# Run Anbox from app screen again to go back to Anbox app launcher
This is a simultaneous release of SFOS 2.2.1.18 and 3.0.0.8, if you have problem with one version, try the other
SFOS 2.2.1.18
SFOS 3.0.0.8
Sorry no screenshot or video for now, you can find for other devices, looks should be the same.
SailfishOS fir idol3 Wiki page
Kernel | Device | Vendor source trees
Click to expand...
Click to collapse
Any chance of seeing it on the Idol 3 4.7 ? It would give me a good reason to use it again. It's okay if not it's just sad that there's no updated ROM for this version... I could beta test it if you ever do that
zorro_tj said:
Hi vknecht, great job, how can I contribute (donation) to your work? I've installed everything except Anbox, but I think I'll do it anyway, most of my contacts use Wzap ... Everything works fine except for the double tap to wake up the phone, do you know what it can depend on? Is it a function of hardware or software? With Lineage it worked, with Sailfish no. It's not dramatic, but definitely inconvenient to have to use the power switch every time. Thank you.
Click to expand...
Click to collapse
Hello, and thank you for the heads up on dt2w... so I had a look, and found how to enable it
(make sure developer mode is enabled and you've set or checked the password)
Code:
host $ ssh [email protected]
,---
| Sailfish OS 3.0.1.11 (Sipoonkorpi)
'---
[[email protected] ~]$ devel-su
Password:
[[email protected] nemo]# echo 1 > /sys/class/tp_gesture/tp_device/tp_gesture_id
[[email protected] nemo]# printf "[EVDEV]\nKEY_APP_SWITCH=KEY_POWER\n" > /etc/mce/99-doubletap-idol3.ini ; systemctl restart mce
The echo command has to be issued when the screen is on, and each time you reboot, for now (don't know why it's not already set to 1 like in LOS)
The printf and systemctl are only needed once to create the configuration file and restart the service.
Hopefuly you'll see no battery drain, so it can be enabled by default in the future...
For donations, maybe it will be possible later.
h3cat3 said:
Any chance of seeing it on the Idol 3 4.7 ? It would give me a good reason to use it again. It's okay if not it's just sad that there's no updated ROM for this version... I could beta test it if you ever do that
Click to expand...
Click to collapse
One thing I could do is try building LOS 14.1 with idol347 defconfig, but afaik it's not really working.
Otherwise one could follow the SailfishOS HADK using a working CyanogenMod base and I'd be glad to help, but don't have time to start it myself at the moment.
Thanks!
vknecht said:
Hello, and thank you for the heads up on dt2w... so I had a look, and found how to enable it
(make sure developer mode is enabled and you've set or checked the password)
Code:
host $ ssh [email protected]
,---
| Sailfish OS 3.0.1.11 (Sipoonkorpi)
'---
[[email protected] ~]$ devel-su
Password:
[[email protected] nemo]# echo 1 > /sys/class/tp_gesture/tp_device/tp_gesture_id
[[email protected] nemo]# printf "[EVDEV]\nKEY_APP_SWITCH=KEY_POWER\n" > /etc/mce/99-doubletap-idol3.ini ; systemctl restart mce
The echo command has to be issued when the screen is on, and each time you reboot, for now (don't know why it's not already set to 1 like in LOS)
The printf and systemctl are only needed once to create the configuration file and restart the service.
Hopefuly you'll see no battery drain, so it can be enabled by default in the future...
Thanks a lot, it worked! I will pay attention to the the battery drain and will informe you. Just another question: i see your OS version is 3.0.1.11, mine is 3.0.0.8 (Lemmenjoki) is it convenient for me to update it? if yes, in what way? The device is a Idol 3 6045K dual-sim, no external sdcard on board.
Thanks again, greet from Italy.
Click to expand...
Click to collapse
zorro_tj said:
Thanks a lot, it worked! I will pay attention to the the battery drain and will informe you.
Just another question: i see your OS version is 3.0.1.11, mine is 3.0.0.8 (Lemmenjoki) is it convenient for me to update it?
if yes, in what way? The device is a Idol 3 6045K dual-sim, no external sdcard on board.
Thanks again, greet from Italy.
Click to expand...
Click to collapse
You're welcome For now I don't see any drain, let's hope it stays like this.
I found out that the ini file is not necessary if one sets tp_gesture_id to 2, but still have to set this value on boot
and/or find why it's not the same as in LineageOS by default.
3.0.1.11 release for idol3 is still in devel phase, once it's ready (~ one week or so) it will be published in testing phase and then you'll be able to do
OTA through commandline.
One can flash a devel-image, but then can't rely on OTA : will have to re-flash a testing-image or do risky/unsupported repository-switch.
Those are generally built using SailfishOS porters' Gitlab-CI group, latest being the 20190227 devel image
SailfishOS 3.0.1.11 beta3
Backup...
Update using OTA : the integrated graphical updater doesn't work for community ports
Easiest is to install sfos-upgrade either through Storeman or direct RPM dowload.
Flash image : (erases previously installed SailfishOS)
sailfishos-idol3-release-3.0.1.11-20190321-beta3.zip
Changes :
SailfishOS 3.0.1.11 release notes (points specific to officially supported devices don't apply)
Kernel : enabled Yama security module
Enabled doubletap to wake
Sorry, Anbox confirmed to NOT work, have to check required overlayfs support, maybe broken with the kernel updates.
SailfishOS 3.0.1.11 beta3 beta2 Constant reboots, hangs and reboots.
andrejchern said:
SailfishOS 3.0.1.11 beta3 beta2 Constant reboots, hangs and reboots.
Click to expand...
Click to collapse
Sorry to hear that... does it happen regularly/systematically and quite early after boot, or after (somehow) extensive usage, especially browser ?
I supposed you tried with flashing as well as OTA ?
A known cause for reboot is fixed in this build (and beta2 iirc) by an updated connman package ("rpm -qi connman" shows ip6tfix in version).
Maybe it's related to Yama security, will make a build without it...
Arbitrary reboots, after the introduction of the account and login starts hanging and rebooting, I immediately rolled back to the backup and did not understand why this is happening.
andrejchern said:
Arbitrary reboots, after the introduction of the account and login starts hanging and rebooting, I immediately rolled back to the backup and did not understand why this is happening.
Click to expand...
Click to collapse
Could you try flashing the ZIP inside the artifact from this devel build ?
It uses the same kernel as 3.0.0.8, ie. without yama, pstore and iirc RTC write support...
This build works fine, no reboots. Thanks.
SailfishOS 3.0.1.11 beta4
Update from any previous betas using OTA :
has to be done from commandline (on device or through SSH, USB prefered) since the graphical client in settings doesn't support community ports.
Code:
# Install sfos-upgrade package like this, or through Storeman
curl -O https://openrepos.net/sites/default/files/packages/5928/sfos-upgrade-2.4-1.noarch.rpm
devel-su
pkcon install-local sfos-upgrade-2.4-1.noarch.rpm
sfos-upgrade 3.0.1.11
reboot
# Patience, it takes an additional reboot to flash boot partition
# Go to commandline again and run :
devel-su post_sfos-upgrade
or install by flashing sailfishos-idol3-release-3.0.1.11-20190329-beta4.zip
(this replaces previously installed SailfishOS and SailfishOS-data, backup if needed)
Changes
Fall back to previous kernel
Hey mate, great job! Everything worked fine with sfos-upgrade from command line! Thanks a lot!!!
Just a question... I haven't prediction text, it's normal? Thanks again.
Antonio from Italy.