Related
Hi everyone,
First, read the readme.txt in the zip file.
You flash it at your own risk. Backup everything. Learn how to use Heimdall. If it eats your dog it's not my problem . Many things are broken - post about it in the thread if nobody posted before. If you have any idea how to fix things, post too or PM me.
Requirements: GSM (Euro, US ATT/TMO tabs), with JQ1 (Gingerbread) unprotected bootloaders that can run Euro JQ1 ROM and gt-p1000_mr.pit partitioning.
Modem versions:
ATT: use I9000UGJK3 modem (this is what I am using)
TMO: try JK5
Euro: reports say that JK5, JPZ modems work
HK: user reports JK5 modem works.
CDMA: This ROM does not support CDMA Tabs.
LTN: experimental kernel included.
The archive with the build with Heimdall is here http://gtab7.nexus-lab.com/cm7sgt/tcm7beta-2012-08-05.zip
Please use heimdall to install. This zip file is not for flashing with CWM. Unzip and read the readme.txt in the zip file. Flash using the Heimdall command line (below).
The update zip for CWM is here http://gtab7.nexus-lab.com/cm7sgt/cm-7-20120805-UNOFFICIAL-galaxytab.zip, (GSM only, no LTN), please be sure to flash it from recovery that supports EXT4 or flash it once so it updates kernel/recovery, reboot to new recovery and flash it again. If you encounter any problems, use the Heimdall version.
P1000L/N
There is experimental P1000L kernel and bootloaders included in LTN directory in Heimdall package. It should work on P1000L and maybe P1000N.
Big thanks to Humberos for patches and testing. Adventureous souls with Latin Tabs please try it and report how it worked for you. You should have Gingerbread bootloaders and partitioning done first, so it should be easy if you are already running Gingerbread on your P1000L/N.
Installation using Heimdall
normal update from previous CM7 version, or a flash from another Gingerbread ROM:
Code:
heimdall flash --kernel zImage --factoryfs factoryfs.ext4
full flash and repartition:
Code:
heimdall flash --repartition --pit gt-p1000_mr.pit --primary-boot boot.bin --secondary-boot sbl.bin --kernel zImage --factoryfs factoryfs.ext4 --cache cache.ext4 --dbdata dbdata.ext4
Please be careful and double check your Heimdall command line when you flash bootladers, you may brick your Tab pretty bad.
If you get stuck on first reboot after install, or your settings aren't saved it means your data partitions need to be reformatted to ext4. This should be handled by setup_fs in init.rc.
If it didn't happen, start adb and run
make_ext4fs /dev/block/mmcblk0p2
make_ext4fs /dev/block/stl10
make_ext4fs /dev/block/stl11
Or try full wipe in recovery.
make_ext4fs is slightly wonky so you could use "/system/bin/mke2fs -t ext4 -m 0" instead (recovery is also using make_ext4fs internally to wipe partitions)
Samsung apps, Swype, Gapps etc
This is an unofficial port of CyanogenMod. I am striving to give us the pure CyanogenMod experience on Galaxy Tab.
So, there are no Samsung apps and don't ask for them.
There is no TouchWiz and don't ask for it.
It comes with ADW Launcher and if you want anything else, there is plenty of launchers in the Market.
If you want Google Apps, get it from the usual place http://goo-inside.me/gapps/ and install from recvery after flashing update.zip. The Heimdall version has Gapps integrated right now.
There is one stupid annoyance on Google sign-in welcome screen. It asks to slide open the keyboard (which we don't have and for now I can't find this setting). So skip the whole set up and sign in to Google account from Settings->Accounts&Sync.
Swype: there is no Swype. Since Swype has a policy of allowing Swype on modded ROMs as long as the original ROM had Swype integrated, if somebody cares to make flashable zip with Swype I can link it from OP.
Market issues.
Market 3.x has much stricter rules about DPI and device checks. So very often it shows apps as not compatible with CM7 on GalaxyTab.
Just go to Settings->Applications and uninstall updated Market it will go back to 2.x for a while.
Or try tool like OldMarket http://forum.xda-developers.com/showthread.php?t=1240344
You can also change build.prop yourself, you will need to change two lines:
ro.build.tags=test-keys to ro.build.tags=release-keys
and
ro.sf.lcd_density=200 ro.sf.lcd_density=240
reboot, delete Market data from Settings->Applications
Big thanks to junkshow for investigating it.
sources at http://github.com/cm7sgt
How to report bugs
If you think you have found a bug.
- verify you can repeat it, make sure it is not caused by the fact you did not wipe the device by rebooting to recovery and using wipe when you first installed CM7. Particularly when coming from other ROMs that use ext4. When coming from RFS your partitions should have been reformatted on first boot but wiping after install will not hurt.
Please read existing open and already closed issues at http://github.com/cm7sgt/android_device_samsung_galaxytab/issues
If your bug is new.
Please see if it is upstream (general CM7 not related to Tab) bug, see in CM7 issues tracker http://code.google.com/p/cyanogenmod/issues/list
If it is already there, please stop or add a comment there.
If the bug is about generic issue, please try to verify it it also happens on other CM7 devices. If so, you should post it in CyanogenMod issues.
If the bug is Galaxy Tab specific, like, some hardware functionality is missing, some driver not working. Dialogs messed up because of resolution etc, this means it belongs to Galaxy Tab device issue tracer and I can fix it.
In this case please open new issue here http://github.com/cm7sgt/android_device_samsung_galaxytab/issues
Please use pastie.org or something like that for posting logs.
SDCARD controversy
By default, the real micro SD is /mnt/sdcard, the internal mmc is /mnt/sdcard/external_sd, like in Galaxy S CyanogenMod builds.
If you don't like it, you can swap the devices, go to Settings -> CyanogenMod settings -> Application and check Use internal storage [ ] checkbox.
Reboot, now internal will be /mnt/sdcard, external will be /mnt/sdcard/external_sd like in Samsung's Android.
In recovery, real sdcard in /sdcard, internal sdcard (embedded MMC) is /emmc.
If you want to flash zip from /emmc just go in recovery "install zip from sdcard" -> "choose zip from internal sdcard" -> choose whatever you want to flash.
--
{
"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"
}
Current status:
Voice calls: OK (make sure to use modem.bin compatible with JQ1 RIL)
3G data: OK
Wifi: OK
Bluetooth: OK
Camera: Photos OK, video encoding (movie capture) back OK, front corrupted
Sensors: seem OK
GPS: OK
Recovery and initramfs: CWM, partitions get mounted, wipe works, havent tried backup/restore
Video playback: overlay and copybit work, OMX libraries are in and decoding works.
Changelog:
2012-08-05 http://gtab7.nexus-lab.com/cm7sgt/tcm7beta-2012-08-05.zip http://gtab7.nexus-lab.com/cm7sgt/cm-7-20120805-UNOFFICIAL-galaxytab.zip
Fixed Bluetooth MAC address issue. Now it is read correctly from EFS. Thanks to ableeker.
2012-07-28 http://gtab7.nexus-lab.com/cm7sgt/tcm7beta-2012-07-28.zip http://gtab7.nexus-lab.com/cm7sgt/cm-7-20120728-UNOFFICIAL-galaxytab.zip
Update to latest from CM7 git.
2012-02-19 http://gtab7.nexus-lab.com/cm7sgt/tcm7beta-2012-02-19.zip http://gtab7.nexus-lab.com/cm7sgt/update-cm-7-2012-02-19-Beta-GalaxyTab-KANG-signed.zip
Update to latest from CM7 git. set default DPI to 240 to fix market issues, advanced users can set any DPI they want anyway.
Go back to stock dialer layout because it has changed a lot.
2011-11-02 http://gtab7.nexus-lab.com/cm7sgt/tcm7beta-2011-11-02.zip http://gtab7.nexus-lab.com/cm7sgt/update-cm-7-2011-11-02-Beta-GalaxyTab-KANG-signed.zip
use android socket for wpa_supplicant control interface. anyone upgrading to this version please delete their /data/misc/wifi/wpa_supplicant.conf
thanks to jt1134, removed extra field in mfc interface in kernel which prevented it from working with aries OMX libraries
updated media_profiles.xml to expose 1024x600 and 800x600 resolutions for camcorder. its not perfect but at least video recording works now. front cam produces broken video.
2011-10-31 http://gtab7.nexus-lab.com/cm7sgt/tcm7beta-2011-10-31.zip http://gtab7.nexus-lab.com/cm7sgt/update-cm-7-2011-10-31-Beta-GalaxyTab-KANG-signed.zip
update to latest from git. we are little past 7.1.0.
fix key setting for AP mode
new init.rc/init.gt-p1000.rc unified with CDMA device
2011-10-09
move download cache to /data/cache_download and system dalvik cache to data, it should fix download issues with large APKs
fix bluetooth keyboard keypad rotation issue
move touchscreen event rotation to kernel to to clean up frameworks/base
use switchable pair and new stacked mounts in vold for /mnt/sdcard and and /mnt/sdcard/external_sd
2011-09-20
Update to latest from git.
Merged P1000L/N kernel. P1000L kernel included in build.
Voodoo Sound update to V10. Switch to JHASH3 hash function in kernel.
Disabled NEW_AP in Wifi driver, fixed hotspot mode.
2011-08-07
Update to latest from git. Android 2.3.5.
Added BLN kernel driver and LIGHT_ID_NOTIFICATIONS -> /sys/class/misc/backlightnotification/notification_led device to liblights. Big thanks to Neldar.
Fix geolocation/networklocation settings in props and frameworks' config.xml
Update EGL driver and pvrsvrkm kernel driver to latest from EF17 Sprint GB release.
2011-07-20
Update to latest from git.
Merge changes from Sprint GB kernel source release. Merge relevant kernel changes to up to 2.6.35.10.
2011-06-21
Enable CRT screen off/on animation.
Add virtual flag to capacitive buttons to enable vibration when they are pressed.
Increase HCI baud rate to 3M, hopefully this will help A2DP issues with BT keyboards.
2011-06-13
Rotary Lockscreen bitmaps and Twelve Key Dialer portrait and landscape layouts have been fixed by Fabrizio. Big thanks!
Fixed wrong parameter to ril->setCallVolume, hopefully will make call audio better.
Switched to use Samsung's binary brcm_patchram_plus with the same parameters in init.rc. Bluetooth SCO works now. Magic?
2011-06-06
Add attribute for available frequencies, fix cpufreq sysfs permissions so CMParts can access it.
Change compile options for kernel to cortex-a8. Enable Tiny RCU.
Fixed calls from other places in the kernel that used olde speed levels and caused frequency spikes to 1.2GHz.
Fixed Low Power Mode (it properly starts /lpm.rc and displays charging animation).
2011-06-05
Added 10-point Multitouch to kernel (thanks to The_Double and hoss_n2)
Added overclock (1.4GHz) and undevolt (thanks to Richard Trip and Koxudaxi)
Added Voodoo Sound V9 (thanks to Supercurio and Richard Trip)
Switched to (some) Crespo EGL SOs, hopefully will fix some OpenGL issues.
2011-06-03
Add usb_connected switch to kernel, fixes usb mounting and usb connection detection.
Use mke2fs instead of make_ext4 for formatting in OTA and setup_fs. Should be more reliable.
Added download mode to reboot menu.
2011-05-30
Fix problems with headphones/headsets and libaudio, kanged common-aries libaudio.
Added OMX libraries and overlay from common-aries.
2011-05-28r2
Fixed setup_fs so it properly formats partitions.
Enabled more tablet tweaks (soft buttons).
Removed format for .android_secure in recovery, should fix wipe.
2011-05-28
Switched to Gingerbread kernel 2.6.35.7 recently released by Samsung.
Use JQ1 binary drivers for OpenGL, sensors, lights, copybit, overylay, camera etc, so they all work!
Portrait is default orientation now, ro.sf.hwrotation=90 is set and touchscreen events are rotated in input layer so they match.
<cut short, more in readme.txt>
Big thanks to noobnl, coolya, codeworkx, rotohammer, KhasMek, deodexed, captainkrtek, lilstevie, a_snowman, frusso, humberos, koxudaxi, spacemoose, oldmacnut and others for help, advice, testing etc etc.
DEVS ONLY HERE ---------------------------------------
How to build CYanogenMod 7 for Galaxy Tab GT-P1000
First, please read this article http://wiki.cyanogenmod.com/index.php?title=Compile_CyanogenMod_for_CaptivateMTD
You will need the same prerequisites.
Then
Get repo as described there. I put mine in /usr/local/bin
Sync Android tree. You need to use manifest from cm7sgt github.
(If you have more/less than 4 cores modify your -j4 accordingly)
Create a directory for your Android, you will need oer 10GB of free space. It helps a lot to put it on SSD.
repo init -u git://github.com/cm7sgt/android.git -b gingerbread
since kernel.org gits are still down, until they are back up you need to sync repo tool from github, so use this command line, thanks to Disgustipated for pointing it out.
curl https://raw.github.com/android/tools_repo/master/repo > ~/bin/repo
chmod a+x ~/bin/repo
repo init -u git://github.com/cm7sgt/android.git -b gingerbread --repo-url=git://github.com/android/tools_repo.git
repo sync -j4
Grab Rom Manager as described.
You can't (no script) and don't need to copy proprietary files, everything is already included in vendor git.
Setup your android build environment and choose device to build:
. build/envsetup.sh
lunch cyanogen_galaxytab-eng
make -j4
There, it should build with no issues. Sometimes it will complain about API changes, run make update-api then.
From here you have two options.
1. Build Heimdall images. You will need kernel with loop support, losetup, ext4 tools (mkfs.ext4).
cd device/samsung/galaxytab/tools
./buildimage
it will grab stuff from out and create ext4 images. Flash with Heimdall.
2. Build update.zip
make -j4 bacon
How to build kernel
First, you will need the arm toolchain from CodeSourcery. You need arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
From http://www.codesourcery.com/sgpp/li...q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
Unpack it in /opt/toolchains. as root
mkdir -p /opt/toolchains
cd /opt/toolchains
tar -xjvf arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
Then in your CM7 tree
BEFORE YOU BUILD CM7 TREE
cd device/samsung/galaxytab
./kernel.sh defconfig
./kernel.sh modules
This will configure the kernel and build and copy modules to prebuilt directories. The kernel build directory is out/target/product/galaxytab/kernel_build
Build your android tree normally so initramfs is created.
Then again
cd device/samsung/galaxytab
./kernel.sh kernel
This will build the kernel using the initramfs in recovery/root and update prebuilt kernel image.
(for Latin kernel use kernel_ltn.sh script and use kernel_ltn file it produces)
Now you need to run make on your android tree again so boot.img is updated.
And proceed to buildimage or make bacon as usual.
sweet news
P1000L tabs too?
I can test for you.
ivannw said:
P1000L tabs too?
I can test for you.
Click to expand...
Click to collapse
AFAIK P1000L hardware is different so it will need different kernel
How do we check which bootloader we have?
TheGrammarFreak said:
How do we check which bootloader we have?
Click to expand...
Click to collapse
If you installed Euro JJ4 ROM you probably have JJ4 bootloader.
It will probably also work with stock ATT and TMO bootloader but I cannot guarantee that. I have JJ4. People have reported issues using Euro ROMs on ATT bootloaders, I believe the same issues will show up in my CM7.
Great news. I have polish rom maybe i help. galaxy tab jm6
That is amazing work!
Well done.
Which issue r u tlaking abt? I have recent att tab went straight to jme no issue. Lemme know if i could hrlp testing. Ubuntu & heimdall ready. I actually pulled your old cm6 and cp kernel-tab and what not to cm7 but failed at lunch cyanogen...
Sent from my GT-P1000 using XDA App
quattr0 said:
Which issue r u tlaking abt? I have recent att tab went straight to jme no issue.
Click to expand...
Click to collapse
some white lines while booting etc. if JME works for you my stuff should work too.
TheGrammarFreak said:
How do we check which bootloader we have?
Click to expand...
Click to collapse
I'm no expert but this seems obvious (for me). If you have a linux box, do a "strings boot.bin" on a protected bl (extract from JMF downloaded from samfirmware for instance), you will see these lines
PBL: Error.. sbl verification failed..
PBL: booting stop!
My at&t backup boot.bin does not have the above 2 lines.
Just my guess.
Technomancer said:
AFAIK P1000L hardware is different so it will need different kernel
Click to expand...
Click to collapse
Can you help me or give the way to compile the correct kernel?
Sent from my GT-P1000L using XDA App
I can't wait for this... My Tab seems to just be less awesome without the love CM gives to Android.
installed but touch doesnt works.
what is the next step?
ivannw said:
installed but touch doesnt works.
what is the next step?
Click to expand...
Click to collapse
this is because of the different hardware!
if ur not a developer, leave it till it is stable because u are missing some necessary features for everyday use!
landroid thanks for your response.
btw i wanna learn how to fix that. can you give me directions ?
first of all I'll try to get stock rom compiled.
too bad again not for CDMA tab user
ivannw said:
landroid thanks for your response.
btw i wanna learn how to fix that. can you give me directions ?
first of all I'll try to get stock rom compiled.
Click to expand...
Click to collapse
First off all u need to find the kernel source for ur tab (i think P1000L, right?) And then apply the patches technomancer made to the kernel but this is very hard to do! The best thing would be to contact technomancer! And if i find some spare time tommorrow ill try to compile a P1000L kernel for u but i cant guarantee that if i manage to do that everything works! But i knoe how to compile kernels from source so it should not be a problem!
Sent from my GT-P1000 using Tapatalk
ivannw said:
landroid thanks for your response.
btw i wanna learn how to fix that. can you give me directions ?
first of all I'll try to get stock rom compiled.
Click to expand...
Click to collapse
Get sources for your kernel from opensource.samsung.com.
Compile it with gingerbread branch of this initramfs https://github.com/cmsgs/android_initramfs_galaxytab
See what happens ;-)
Look awesome!!
I have been building LG Optimus V ROMs from the CM/IHO repo and sharing my builds with the community in the IHO thread since some time. Besides the geek satisfaction, I build for removing some extras and customize for performance. Following the original IHO thread has become too difficult due to its enormous size and simultaneous discussion of many other builds. This thread is for sharing what I build for myself with the community, a place for receiving feedback, posting changes for my builds, and returning at least some of what I received from this community.
Please thank/donate to CM project, and especially the IHO developers, Blarf, Bob, Jerry, LeslieAnn, tdm, thekraven, and many others.
I prefer MiRaGe to be a barebones/basic ROM closely following CyanogenMod. The changes below are only aimed at enhancing the performance, fixing bugs, and slight touches on the interface without diverging from the original.
The followings are added:
Custom MiRaGe kernel compiled with gcc-4.6 linaro toolchain using -O2 optimization
ICS fonts for system and lockscreen clock,
ICS style battery, signal, wifi, sdcard, data icons for statusbar,
ICS icons for the power widgets, menu, and settings,
transparent notification background,
Android boot logo
Cyanbread_light: a tiny theme to replace the orange highlights with cyan/blue that matches with the recent Google Play apps (included in the ROM) (source code is here )
Unique bluetooth MAC addresses. Source code here
Baseband version in About Phone screen. Source code here
Bluetooth volume settings are not limited by voice dialer. Source code here
AGPS patch for better accuracy. Available here
Optional stock Android 2.3.5 Launcher2 available here
Simple IO scheduler in the kernel which has less overhead for the system and more suitable for flash memory
BFS 4.04 CPU scheduler for quicker user interface and better efficiency
TinyRCU Read-copy update (RCU) synchronization mechanism which improves scalability by allowing readers to execute concurrently with writers and reduces the system overhead.
Many bug/security fixes for ext2, ext3, ext4, fat, mmc file systems, sound system, block layer, bluetooth, networking, and ARM architecture backported from 2.6.32.59 kernel.
Computing network protocol sequence numbers and fragment IDs using MD5 instead of inaccurate MD4 in the kernel.
Backport staging android drivers and ashmem from lge msm7x27 kernel
Sluggish accelerometer problem is fixed in the kernel with updated sensor drivers from the 2.6.35.9 lge msm7x27 kernel drivers
Improved Compass accuracy and response time with updated sensor drivers from the 2.6.35.9 lge msm7x27 kernel drivers
Backported the updates and fixes in mach-msm/qdsp5 code from the 2.6.35.9 lge msm7x27 kernel to resolve phone freezing while playing music with Google Play Music app.
Updated the interactive CPU governor with the latest version and removed smartass and interactiveX governors that were derivatives of the old interactive governor in addition to userspace and powersave governors that are more suitable for desktop systems.
Added SLQB as the default memory allocator
use optimized strnlen, strncpy, and crc32 functions in ARM (thanks to faux123)
added KSM support in the kernel and dalvik-vm (reverted in 07302012 build for now)
default to hardware EGL libraries (adreno200) instead of using generic android EGL libraries (thanks to leolawliet)
kernel patched to fix entropy depleting
swtiched to Koush's Superuser
updated to the latest CM bootanimation
CYAN-1602 security fix merged (Android-8219321 security fix to Bluebox security bug)
The followings are removed: extra themes, CMwallpaper, FM radio, large ring tones, CM services, development app, and all languages except English(US) and Spanish.
Changelog for CM and MiRaGe kernel:
Detailed list of CyanogenMod 7 changes are here.
Complete list of my changes on the IHO kernel are here.
Downloads:
MiRaGe 07132013 build. MD5sum: 7a909831b9f1cad23656908c1b32e8a1
VM670_VZW conversion for MiRaGe 07132013 build. MD5sum: 2bb4122d3d16df7796c69b216401ed09 (for VM670 on Verizon network) (read this link first regarding OV with VZW)
LS670 conversion for MiRaGe 07132013 build. MD5sum: 808014d10ce924dcef7b7c412fd19f42 (for LS670 on Sprint network)
Latest build of MiRaGe kernel (04/26/2013). MD5sum: d8cd3b0ead9d37789c916cebbb0e2214
For service providers other than VM, you can flash one of the VM670_VZW or LS670 conversion patches (not both) after flashing the VM670 build. If you are just upgrading from the previous MiRaGe by wiping only cache/dalvik-cache, you can flash either patch right after ROM without rebooting. Otherwise, booting once before flashing the patch is necessary after /system wipe.
GAPPS is not included. You can download it at the following link. Choose the package for CM7 (Android 2.3.7) (20110828).
Latest Version/Google Apps - CyanogenMod Wiki
Please see the IHO Wiki, stickies in this forum, and "Suggestions & Recommendations" section in the third post in this thread before asking questions.
Copying:
You can use my builds without my permission for derivatives/ports to distribute as long as proper credits given. Source is open and I have links above to all of the source code changes I have made on Android and kernel code. You can use the source code without any permission.
Screenshots using Kovdev's ICS theme for ADW Launcher:
{
"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"
}
Suggestions & Recommendations:
- Link2SD is recommended. Learn how to use it and you will be rewarded. I have never had any kind of insufficient space problem with Link2SD. However, as soon as we root our phones and flash a custom ROM, we are now on the other side on our own. You will need to figure out how to find your way around and there are many different ways. Please find the good practices and methods that work for you and don't clutter the thread with insufficient space problems.
I use link2sd with 60 apps and it takes at most 5 minutes to update the ROM with the following way.
- copy the new zip to SDcard and boot into recovery
- wipe cache and dalvik-cache
- flash ROM
- reboot
- wait for link2sd warning for missing mount scripts
- run link2sd and recreate mount scripts (if you touch the link2sd notification from the pull down, link2sd will automatically open with mount scripts dialog)
- reboot
- run link2sd
-- relink dalvik-cache files
-- relink library files
- done!
And no application reinstalls necessary. There are many tricks/mods to link /data to the SD card. Whatever method we choose, there will be disadvantages and problems since OV does not have large internal storage as the other high-end phones do. The best practice is to sticking with one of the methods (I use and recommend Link2SD) and learning to deal with it. I don't want to use a method that is making the ROM dependent on the sdcard since not everybody has a large sdcard. Also, sdcards exhibit extremely wide variation of reliability and performance; mostly inferior to internal storage. If I link /data to sdext by default, people will be bringing here many complaints due to sdcard performance and failure. For my sanity, I will avoid that.
Additionally, if you have missing apps with Link2sd after the first boot following a ROM update, please check this post.
- Quickpic is recommended instead of default Gallery3D in the ROM. I will still keep Gallery3D in the ROM but you can just open the ROM zip file (don't unzip to your disk) with your archive manager (e.g. 7zip in Windows or file-roller in Ubuntu). Go to /system/app and delete Gallery3D.apk before flashing ROM. This is what I do. You don't need to reinstall Quickpic after your ROM updates unless you do a clean wipe.
- If you want an ICS theme, I recommend Achep's ICS theme. I must warn that there is some performance and battery life penalty that goes with such heavy themes. If you also want ICS icons in your launcher, I suggest kovdev's ICS launcher theme.
- The battery consumption is ~1.5% per hour on my OV running MiRaGe when I leave it over the night with data, wifi, location updates, email/calendar sync on and 0% TWS (see the screenshot below). Every phone is configured and used differently and the signal is different in different locations. If you have battery problems, it is not because of the ROM. Again, please don't clutter the thread with battery life problems.
- I don't recommend the Google Play Music app on the Market. The default Music app in the ROM works excellent without the heavy load on the system.
- My cpu settings that give me the best battery life is as follows. I recommend and use interactive governor which is a well-tested cpu governor developed by Google for Android. Just use the updated interactive governor in the latest kernel and choose the minimum CPU frequency as 122. This configuration gives better battery life and does not cause any extra lag. The smartass and interactiveX governors are derivatives of the interactive governor and I don't see any advantage of them over the default interactive governor. I will be removing those governors from the kernel for reducing the kernel size and eliminate unnecessary/idle code. Regarding the maximum CPU frequency, you need to find the maximum stable value by testing. 806 MHz is the maximum recommended value since anything higher increases heat and battery consumption considerably.
- Please check the followings before reporting WiFi problems. Nobody is making popcorn in the microwave, your neighbor or your kids are not hogging the WiFi watching Youtube or Netflix, your router is not a cheap junk, the fridge is not running near the router, your network provider is not having problems, the cat is not sleeping on the warmth of the router, the dog has not tipped the router's antennas, you are not trying to connect to your neighbor's WiFi ...
- If headphone is plugged in and unplugged before starting the camera app, camera records video without sound. There are ways to resolve this temporarily. If you do a quick reboot in Links2SD (it takes 15-20 seconds) camera records video with sound after that. If you disable the shutter sound in camera, this problem does not happen. Lastly, if you take a picture before recording video, the video is recorded with sound normally. I am looking into this and will post here when I can find a permanent solution.
He finally made his own thread. Thank the lord! Lol
hope i have time to go thru this tonight!
gannon5197 said:
He finally made his own thread. Thank the lord! Lol
Click to expand...
Click to collapse
Finally had the motivation to do this
mrg666 said:
Finally had the motivation to do this
Click to expand...
Click to collapse
This Is awesome updates will be so easy to follow what motivated you?
MiRaGe 06112012
I have updated the builds to include two fixes
- Fix occasional completely mute incoming call in Phone.apk
- Timestamp doesn't contain date info, therefore we need to construct it and adjust it if daylight savings applies in frameworks base
Please see the OP to find the download links. The details of the changes are in the CM code review site linked in the OP.
I'm onboard and flashing latest build now.
Could this be flashed over bobzhome version? Just thought I'd ask, was just going to attempt it.
torch2424 said:
This Is awesome updates will be so easy to follow what motivated you?
Click to expand...
Click to collapse
I don't know, simply accumulation of many things I guess. Maybe, I could finally convince myself that there were enough contributions that are worth making a thread.
yolo2die said:
Could this be flashed over bobzhome version? Just thought I'd ask, was just going to attempt it.
Click to expand...
Click to collapse
You can try with just wiping cache/dalvik-cache. If there are problems you can't resolve, (probably Launcher Pro in BobZ will conflict with ADW in MiRaGe), you can do a clean wipe and reflash. Don't forget a nandroid before doing anything.
Thanks mrg666, I hope to give it a try tomorrow nite.
Sent from my Desire HD using XDA
mrg666 said:
My cpu settings that give me the best battery life is as follows. 122-806, interactive governor.
Click to expand...
Click to collapse
Not InteractiveX?
Sent from my IHO phone
InteractiveX is just a derivative of interactive and I have not seen any advantage of locking the minimum cpu frequency when screen is off. Just the opposite, it creates more trouble.
I use and recommend interactive governor. Actually, I have just updated the interactive governor to the latest version today. You can download the latest kernel from my github repo. Just use the updated interactive governor in the latest kernel and choose the minimum CPU frequency as 122. It gives much better battery life and does not cause any extra lag.
Thanks for all your work, mrg666! I'll hit this up when I get home; my work's proxy doesn't allow access to github... apparently, it's "for hackers." ;-)
Kinda obvious, but I have subscribed to this.
I have never had a phone of any kind that has lasted more than 6 months. This LG670 has lasted over two years! And to boot I've used this 5 times more per day than any other phone! This is a great, not good, device. Ultra reliable. Efficient and effective. Two plus years... still just like new!
And to think I've been running MiRaGe more than any other ROM. I have flashed hundreds! But this has always been my favorite!
Thank you mrg! Glad you're still on board with the LG670 CULT!
yolo2die said:
Could this be flashed over bobzhome version? Just thought I'd ask, was just going to attempt it.
Click to expand...
Click to collapse
Ok I flashed this right over Bobzhome. No problems to report so far. And then just made ADW launcher default(not sure if that was necessary). Point is it works.
As far as performance if any, remains to be seen, question will be is if battery drain will be not as quick.
edit: issues with updating apps, says theres insufficient storage, plenty remains, must have some something to do with how bobzhome uses apps2sd vs method used in your rom(haven't done much investigation yet)??? But no problem running apps that were previously install in rom before the install.
I have uploaded the 06142012 build of the kernel.
- Fixed the sluggish accelerometer problem
- Fixed inaccurate/slow Compass
- Updated the interactive governor
See the OP for the links to download from my github repo.
Maybe I'm missing something, but the OP is still sending me to the 06-11 build. The github repo has this same build as well. :/
pandulce1 said:
Maybe I'm missing something, but the OP is still sending me to the 06-11 build. The github repo has this same build as well. :/
Click to expand...
Click to collapse
This is a kernel update not ROM. Go here to get the flashable zip.
This is a complementary guide to [Guide] How to compile and install CM10 for Samsung i9000
Want to add support for another filesystem to the CM10 kernel?
Add a module?
Maybe slim things a bit by removing some stuff?
All fine, but where to start?
Since CM9, the kernel source code should be integrated with CM's source code.
So, if you are building CM10, you should already have a kernel folder in the source code.
So, where's the config file used to build the i9000 kernel?
Well, it's here: ~/android/system/kernel/samsung/aries/arch/arm/configs/cyanogenmod_galaxysmtd_defconfig
You can edit the file directly in a text editor (if you know what you're doing) and it looks something like this:
Code:
CONFIG_EXPERIMENTAL=y
CONFIG_KERNEL_LZMA=y
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_CGROUPS=y
CONFIG_CGROUP_DEBUG=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_RESOURCE_COUNTERS=y
CONFIG_CGROUP_SCHED=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_INITRAMFS_SOURCE="source/usr/galaxysmtd_initramfs.list"
...
You can just edit the text file, but sometimes it's not that easy to find/do what you want because the labels aren't very user-friendly.
It's easy to make several types of mistakes.
... but there is a better way to do it, using the menuconfig tool.
To use menuconfig, just do:
Code:
cd ~/android/system/kernel/samsung/aries
make menuconfig
You should now have a text GUI to access all the options that is much easier and safer to use:
{
"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"
}
Now you need to load the i9000 configuration file.
Select "Load an Alternate Configuration File" at the bottom of the menu
Point to the i9000 default kernel config file: arch/arm/configs/cyanogenmod_galaxysmtd_defconfig
After you hit OK, you'll open the i9000 config file. Make the changes you want and exit. You'll be asked if you want to save the changes.
NOTE: I've had some issues with make menuconfig producing "strange" files.
Do:
Code:
grep CONFIG_USB_G_ANDROID kernel/samsung/aries/arch/arm/configs/cyanogenmod_galaxysmtd_defconfig
and confirm the result is:
Code:
CONFIG_USB_G_ANDROID=y
If it's not, menuconfig "missbehaved".
(There's a backup of the original config in kernel/samsung/aries/arch/arm/configs/cyanogenmod_galaxysmtd_defconfig.old)
Final step: Tidy things up:
Code:
cd ~/android/system/kernel/samsung/aries
make mrproper
That's it.
Build away.
(Don't forget to do a "make installclean" and cleaning things up before building)
For more information on CM's kernel building, see this: http://wiki.cyanogenmod.com/wiki/Integrated_kernel_building
another great summary! thank you!
USB
EDIT: This comment is now obsolete.
--------------
NOTE: While everything builds nicely and is functional, somehow the USB support seems to be gone in the builds produced. Charging still works but ADB and Storage don't.
There's something missing.
If you know what it is, drop a line.
pmos69 said:
NOTE: While everything builds nicely and is functional, somehow the USB support seems to be gone in the builds produced. Charging still works but ADB and Storage don't.
There's something missing.
If you know what it is, drop a line.
Click to expand...
Click to collapse
Did you enable/disable things in the config file? It is not as easy to change things by just changing the config file, often the underlying source code also needs to be changed if you want to enable certain features...
Did you somehow add fast charge support?
kasper_h said:
Did you enable/disable things in the config file? It is not as easy to change things by just changing the config file, often the underlying source code also needs to be changed if you want to enable certain features...
Did you somehow add fast charge support?
Click to expand...
Click to collapse
Just made simple tests enabling simple features, like enabling btrfs filesystem support.
At first I was enabling stuff like swap and zRam, but then thought about what you are saying and went for simple tests.
Just enabling btrfs filesystem support, triggers the behaviour.
I think any change may do it.
Maybe just saving the config file in menuconfig does it.
Sent from my GT-I9000 using xda premium
pmos69 said:
Just made simple tests enabling simple features, like enabling btrfs filesystem support.
At first I was enabling stuff like swap and zRam, but then thought about what you are saying and went for simple tests.
Just enabling btrfs filesystem support, triggers the behaviour.
I think any change may do it.
Maybe just saving the config file in menuconfig does it.
Sent from my GT-I9000 using xda premium
Click to expand...
Click to collapse
I often change stuff in defconfig, but I always do it for code I added to the source. Never had a problem with USB after that. So in principle, it should work...
kasper_h said:
I often change stuff in defconfig, but I always do it for code I added to the source. Never had a problem with USB after that. So in principle, it should work...
Click to expand...
Click to collapse
Make menuconfig + make mrproper are making a mess.
Code:
diff -d <(sort kernel/samsung/aries/arch/arm/configs/cyanogenmod_galaxysmtd_defconfig.old) <(sort kernel/samsung/aries/arch/arm/configs/cyanogenmod_galaxysmtd_defconfig)|grep CONFIG_USB_G_ANDROID
< CONFIG_USB_G_ANDROID=y
> # CONFIG_USB_G_ANDROID is not set
WTF?
Back to hand-editing the config file, I guess...
Edit: Just tried it again, starting from the original config, and it's not happening this time... Building now.
Maybe I did something dumb before? (happens a lot)
pmos69 said:
Make menuconfig + make mrproper are making a mess.
Code:
diff -d <(sort kernel/samsung/aries/arch/arm/configs/cyanogenmod_galaxysmtd_defconfig.old) <(sort kernel/samsung/aries/arch/arm/configs/cyanogenmod_galaxysmtd_defconfig)|grep CONFIG_USB_G_ANDROID
< CONFIG_USB_G_ANDROID=y
> # CONFIG_USB_G_ANDROID is not set
WTF?
Back to hand-editing the config file, I guess...
Edit: Just tried it again, starting from the original config, and it's not happening this time... Building now.
Maybe I did something dumb before? (happens a lot)
Click to expand...
Click to collapse
That is the way you learn quickest: by making mistake. I tell this to my students everyday when the ruin experiments
kasper_h said:
That is the way you learn quickest: by making mistake. I tell this to my students everyday when the ruin experiments
Click to expand...
Click to collapse
Well, don't know what happened (but it happened quite a few times).
Working fine now...
Nice howto, thanks. Have one question. I want to build kernel for ypg1, really similar device to i9000. So what to do next when I have zImage and modules. I mean have only kernel source and toolchain without whole Android sources. I need to make installable pkg but don't know how.
I'm looking for step by step how to build kernel, build recovery etc.
Sent from my GT-I9001 using xda app-developers app
oisis said:
Nice howto, thanks. Have one question. I want to build kernel for ypg1, really similar device to i9000. So what to do next when I have zImage and modules. I mean have only kernel source and toolchain without whole Android sources. I need to make installable pkg but don't know how.
I'm looking for step by step how to build kernel, build recovery etc.
Sent from my GT-I9001 using xda app-developers app
Click to expand...
Click to collapse
I think there are a few how-to's on that in the cm wiki.
I've not looked much into it, sorry.
Guess you'll only have to sync the kernel sources + device specific trees and only build the kernel.
oisis said:
Nice howto, thanks. Have one question. I want to build kernel for ypg1, really similar device to i9000. So what to do next when I have zImage and modules. I mean have only kernel source and toolchain without whole Android sources. I need to make installable pkg but don't know how.
I'm looking for step by step how to build kernel, build recovery etc.
Sent from my GT-I9001 using xda app-developers app
Click to expand...
Click to collapse
You could take a look at my github (github.com/kasperhettinga). I use a kernel building script (developed by stratosk) that does not require the whole source code of cm10 but will build a flashable zip using a separate ramdisk (also originating from the work of stratosk).
Verstuurd van mijn GT-I9000
Could you describe how to, after make when i have zImage and modules, pack everything to img to have CWM installable zip? I don't have this device but would like to learn it. Thanks a lot.
oisis said:
Could you describe how to, after make when i have zImage and modules, pack everything to img to have CWM installable zip? I don't have this device but would like to learn it. Thanks a lot.
Click to expand...
Click to collapse
I adapted the teamhacksung buildscript so it automatically creates a CWM-zip:
https://github.com/kasperhettinga/buildscript
I have a zImage built from CM10 kernel sources in Cygwin and I want to inject it into the CM10 boot.img.
Anyone has any idea how I can do that?
I tried to extract the boot.img from one of the nightlies using the dsxida's android kitchen, but it seems that it does not have ramdisk and the extracted zImage file is 0 bytes.
hey man i ve been trying to compile the kernel for my galaxy s2 and downloaded all the things recomended from the cyanogenmod github
these are the steps that i follow:
1. cd into my kernel root directory.
2. make cyanogenmod_i9100g_defconfig
3. make menuconfig
4. make -j5
after a few seconds i get this error
Code:
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
/home/incarnation95/cm10kernel/t1/scripts/gen_initramfs_list.sh: Cannot open '/home/incarnation95/home/incarnation95/cm10kernel/t1/usr/i9100g_initramfs.list'
make[1]: *** [usr/initramfs_data.cpio] Error 1
make: *** [usr] Error 2
[email protected]:~/cm10kernel/t1$
do you know how to tackle this problem?
please help i am really in a mess due to this.
previously i compiled a stock kernel, in stock kernel the compillation process went very good but it didnt boot
i really want to make this aosp kernel, and this is the only guide which indicates compilling an aosp kernel
hope you could sort out my problem.
thanks in advance
incarnation95 said:
hey man i ve been trying to compile the kernel for my galaxy s2 and downloaded all the things recomended from the cyanogenmod github
these are the steps that i follow:
1. cd into my kernel root directory.
2. make cyanogenmod_i9100g_defconfig
3. make menuconfig
4. make -j5
after a few seconds i get this error
Code:
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
/home/incarnation95/cm10kernel/t1/scripts/gen_initramfs_list.sh: Cannot open '/home/incarnation95/home/incarnation95/cm10kernel/t1/usr/i9100g_initramfs.list'
make[1]: *** [usr/initramfs_data.cpio] Error 1
make: *** [usr] Error 2
[email protected]:~/cm10kernel/t1$
do you know how to tackle this problem?
please help i am really in a mess due to this.
previously i compiled a stock kernel, in stock kernel the compillation process went very good but it didnt boot
i really want to make this aosp kernel, and this is the only guide which indicates compilling an aosp kernel
hope you could sort out my problem.
thanks in advance
Click to expand...
Click to collapse
These steps should resolve it
1. open the .config file that is created after you do make cyanogenmod_i9100g_defconfig
2. check the path of the file i9100g_initramfs.list and gen_initramfs_list.sh
3. edit the .config file to make sure the actual path matches to that in the .config file.
4. make -j5
5. Enjoy the new kernel !!
msri3here said:
These steps should resolve it
1. open the .config file that is created after you do make cyanogenmod_i9100g_defconfig
2. check the path of the file i9100g_initramfs.list and gen_initramfs_list.sh
3. edit the .config file to make sure the actual path matches to that in the .config file.
4. make -j5
5. Enjoy the new kernel !!
Click to expand...
Click to collapse
2. CONFIG_INITRAMFS_SOURCE="source/usr/i9100g_initramfs.list" (THIS WAS THERE BY DEFAULT)
I MADE IT CONFIG_INITRAMFS_SOURCE="~/home/incarnation95/cm10kernel/t1/usr/i9100g_initramfs.list"
as the location was.
i dont think we really have to define the path of gen_initramfs_list.sh or do we? and if yes then where?
There you have the problem...remove the "source/" from the path in the .config file
This path is defined by default and just needs customization for our device...
Sent from my GT-I9000 using xda premium
msri3here said:
There you have the problem...remove the "source/" from the path in the .config file
This path is defined by default and just needs customization for our device...
Sent from my GT-I9000 using xda premium
Click to expand...
Click to collapse
O thanks mate it really worked
Thanks a ton. Was tryna find sol. Since 3 days
Sent from my GT-I9100G using Tapatalk 2
---------- Post added at 11:32 PM ---------- Previous post was at 10:42 PM ----------
now after getting over those errors i am getting this error now :/
Code:
//home/incarnation95/Downloads/arm-2011.03/bin/arm-none-eabi-ld: cannot open linker script file /arch/arm/mach-omap2/sec_omap.lds: No such file or directory
make[1]: *** [arch/arm/mach-omap2/mailbox_mach.o] Error 1
make: *** [arch/arm/mach-omap2] Error 2
and weird thing is the files exists :/
{
"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 2.X <-
A Port of JustArchis Rom to our S1
Changelog
ArchiDroid 2.5.2
- Added additional r_submix audio module, idea thanks to @nelsonw # This should help with chromecast
- Updated PA GAPPS to 25 July
- Updated Nova Launcher to 3.0.2
- Updated Google Keyboard
- Updated XPrivacy to 2.2.2
- Updated Onandroid to 9.51
- Updated cm and ArchDroid sources (31.07.14)
Download
All Files Mediafire
Stable: ArchiDroid 2.4.5 Mediafire
Experimental: ArchiDroid 2.5.2 Dev-Host, Mirror: Mediafire
Remember that you don't need anything else to flash. Google Apps are included already.
Known Issues
All known and unknown Cyanogen Rom bugs (if any)
INSTALLATION INSTRUCTIONS
- Download the latest build of ArchiDroid ROM
1.- Wipe data / factory reset (mandatory if you coming from STOCK OR 4.2.X version or any other ROM)
2.- Install the Main ROM via Aroma installer, make your choices and lean back.
3.- Reboot
Attention: first boot will last a couple of minutes, at least almost 5 minutes or a few more. So after flashing take a rest and drink a coffee or a beer !
And after rom has booted up, led it settle a bit, till all apps and settings are initialised!
UPDATE INSTRUCTIONS
- Download the latest build of ArchiDroid ROM
- Take a nandroid backup
- Flash ROM using recovery and aroma installer
- Reboot
- Enjoy!
Known Bugs
-tethering is not working proper fixed in v2.5.0
In Aroma Installer you can select for example:
- 3 different Kernels: Stock, Neo and Mackay
- different Launchers
- different Keyboards
- different Bootanimations
- many additional apps
- to add nav bar
- to select: ro.config.low_ram=true or ro.config.low_ram=false (transparent statusbar)
and many other things
Follow ArchiDroid On XDA!
Write A Review!
Rate This Thread!
Buy JustArchi a Beer!
Like ArchiDroid On Facebook!
Hit Thanks!
XDA:DevDB Information
[ROM] [4.4.4. - KTU84P] [OmniROM] [Linaro 4.7] [Experimental] [Flexible] [Excellent] [01/08/14] ArchiDroid V2.5.2 | Power In Your Hands, a ROM for the Samsung Galaxy S1 I9000
This Rom is an official kanging of i9300 thread by @JustArchi lead developer and author of ArchiDroid ®. So all credits and thanks goes to JustArchi!!
Contributors
rodman01
ROM OS Version: 4.4.x KitKat
ROM Kernel: Linux 3.0.x
Based On: CyanogenROM / ArchiDroid / SelfKANG
Version Information
Status: Experimental 4.4.4 v
Created 2014-04-23
Last Updated 2014-08-01
[SIZE="+3"]ArchiDroid's FAQ / Q&A Section for i9300[/SIZE][SIZE="+1"]There is a special thread in the SIII section with and for FAQs. If you are interested in, I am sure there are good infos about the rom, for everybody and also related to our S1.[/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.
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.
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:
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
First of all many thanks to JustArchi, who gave me the permission to port this rom
and helped me not only one time to get all things to work :good:!!!
Many many thanks JustArchi for the help and support!
ArchiDroid Core
- AROMA Installer
- AROMA Filemanager
- Didhiy Kernel
- Neo 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
- Spirit 2
- 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
I'm very happy to see ArchiDroid running also on Galaxy S .
Let me know @rodman01 if you need any help or a helpful hand, and watch my github for ArchiDroid updates .
Thanks, yes I am happy too, that I got it to work finally (kernel choice is working, but selectable modes I skipped for the moment)...your help to get this all was highly appreciated and needed and I am sure I will come back again with questions . And yes sure, I will watch your github and when I as soon as I have time, I will create branch on my repo with the changes I made :good:.
rodman01 said:
Thanks, yes I am happy too, that I got it to work finally (kernel choice is working, but selectable modes I skipped for the moment)...your help to get this all was highly appreciated and needed and I am sure I will come back again with questions . And yes sure, I will watch your github and when I as soon as I have time, I will create branch on my repo with the changes I made :good:.
Click to expand...
Click to collapse
If I can suggest anything...
Make sure that my backend works properly on SGS, you can check logs in /data/media/0/ArchiDroid, and use ArchiDroid app to check if everything works properly (haveged, dnsmasq, dnsproxy2, pixelserv etc. should be ON). This give you a few ArchiDroid-unique features described in development thread. I used advanced SGS3-optimizations, so I'm wondering if you can launch it on SGS .
Apart from that my github is a real mine of knowledge, so if you dig deep enough you should get answers to everything .
And of course, I'm very glad to see that you made it!
Yes sure you can and I will check it...to be honest haven't realized this and afraid that this won't work , but will see and probably can fix this in one of the next versions (if possible in general for and with the S1?).
rodman01 said:
Yes sure you can and I will check it...to be honest haven't realized this and afraid that this won't work , but will see and probably can fix this in one of the next versions (if possible in general for and with the S1?).
Click to expand...
Click to collapse
I'll need to recompile these binaries for generic ARM target instead of SGS3 then, just watch my github and cherry-pick proper commit when it arrives .
haveged, dnsmasq, dnsproxy2, pixelserv are on and it seems that they are running. In init.log there are a few lines mentioning for example: no such file or directory. If you want and if helpfull I can pass you the logs you want.
rodman01 said:
haveged, dnsmasq, dnsproxy2, pixelserv are on and it seems that they are running. In init.log there are a few lines mentioning for example: no such file or directory. If you want and if helpfull I can pass you the logs you want.
Click to expand...
Click to collapse
If my binaries are running properly then it's great, you should have working adblock and entropy >= 1024.
Send me RunOnce and Init logs .
Yes sure no problem. Here are the log files attached....
rodman01 said:
Yes sure no problem. Here are the log files attached....
Click to expand...
Click to collapse
Wed Apr 23 00:17:20 CEST 2014
ArchiDroid 2.4.3 EXPERIMENTAL [KVT49L]
Linux localhost 3.0.101-KK44-x-aries-cma #1 PREEMPT Tue Apr 1 07:47:49 WIB 2014 armv7l GNU/Linux
INFO: ArchiDroid_RunOnce executed!
INFO: I'm a child!
WARNING: Forcing Install mode, even if Update mode found!
INFO: Install mode detected, I'm either after full wipe or forced to think so. Turning on ADMANY and DBUPDATE
I found ./de.robv.android.xposed.installer which need merging (data)
I found ./ds.cpuoverlay which need merging (data)
I found ./com.android.settings which need merging (data)
I found ./eu.chainfire.supersu which need merging (data)
I found ./org.omnirom.device which need merging (data)
INFO: I found 5 folders which need merging (data)
INFO: boot-dmesg NOT detected, turning off logcat banner
INFO: RunOnce Semaphore started
INFO: Android created settings.db for me, how cute! Performing DBUPDATE
INFO: Applying AOSP-specific DBUPDATE
INFO: Finished DBUPDATE
INFO: I'm currently merging com.android.settings, called by ADMANY
INFO: Done! 4 to go
INFO: I'm currently merging de.robv.android.xposed.installer, called by ADMANY
INFO: Done! 3 to go
INFO: I'm currently merging ds.cpuoverlay, called by ADMANY
INFO: Done! 2 to go
INFO: I'm currently merging eu.chainfire.supersu, called by ADMANY
INFO: Done! 1 to go
INFO: I'm currently merging org.omnirom.device, called by ADMANY
INFO: Done! 0 to go
INFO: I looped 91 times and didn't have to exit from infinite loop, that's nice (RunOnce Semaphore)
INFO: Calling Post-Installation functions (if any)
INFO: Could not detect RunOnce in init.d after cleanup, that's good
INFO: Reboot required, I'm rebooting the device right now
INFO: ArchiDroid RunOnce finished
Wed Apr 23 00:21:17 CEST 2014
Click to expand...
Click to collapse
RunOnce works great!
However Init not so .
HAVEGED: ArchiDroid entropy set to: 1024. Available entropy can't get below this level
HAVEGED: Current available entropy: 183
Click to expand...
Click to collapse
Looks like haveged is not working at all.
Apart from that, one more issue found:
/system/xbin/ARCHIDROID_INIT[438]: can't create /dev/archidroid/cron/events/internal/MONITOR_START_HAVEGED: No such file or directory
Click to expand...
Click to collapse
Is /dev directory available in your system?
Code:
ADPROC="/dev/archidroid"
mkdir -p "$ADPROC"
Because this piece of code should create archidroid dir in /dev.
---------- Post added at 10:37 PM ---------- Previous post was at 10:29 PM ----------
Also, check Cron.log in ArchiDroid dir (/data/media/0/ArchiDroid) if it's not infinite-looping due to that... .
JustArchi said:
Is /dev directory available in your system?
Code:
ADPROC="/dev/archidroid"
mkdir -p "$ADPROC"
Because this piece of code should create archidroid dir in /dev.
Click to expand...
Click to collapse
Yes the folder is available, but almost all files have 0.0 b size, could it be that sym links and/or missing or wrong permissions are the reason?
rodman01 said:
Yes the folder is available, but almost all files have 0.0 b size, could it be that sym links and/or missing or wrong permissions are the reason?
Click to expand...
Click to collapse
Check if you can create a folder in it as root: mkdir /dev/whatever
Perhaps I'll need to move my ADPROC somewhere else, as your device may not support folders in /dev.
Also, I added a safety check for that .
https://github.com/JustArchi/ArchiDroid/commit/b8cae2000d8802e7f9e270eb43b3c621895d9340
JustArchi said:
Check if you can create a folder in it as root: mkdir /dev/whatever
Perhaps I'll need to move my ADPROC somewhere else, as your device may not support folders in /dev.
Also, I added a safety check for that .
https://github.com/JustArchi/ArchiDroid/commit/b8cae2000d8802e7f9e270eb43b3c621895d9340
Click to expand...
Click to collapse
Yes you are right, seems that creating folders in /dev is not possible.
rodman01 said:
Yes you are right, seems that creating folders in /dev is not possible.
Click to expand...
Click to collapse
Try as root, as user you'll always get permission denied .
ok sorry, but no folder wasn't created, although terminal has asked for su permissions and had been given. But no new folder to see.
rodman01 said:
ok sorry, but no folder wasn't created, although terminal has asked for su permissions and had been given. But no new folder to see.
Click to expand...
Click to collapse
I'll need to add some more tunables to properly support your device. As for now you should sync with my work (mostly https://github.com/JustArchi/ArchiDroid/commit/b8cae2000d8802e7f9e270eb43b3c621895d9340) and ignore those errors .
Thanks for your help and as for now :good:...will sync it and try a new build, think tomorrow.
ANYKERNEL
tuna (maguro / toro / toroplus)[#WARRANTY]
It is difficult to update all Roms frequently, and it does not always makes sense to compile, download and flash a whole rom, if only some kernel changes are applied.
This kernel will include changes before we add them official to our kernel source on Unlegacy-Android (most of the time security bugfixes)!
Android 5.1, Android 6.0 and Android 7.x
This Kernel should work on all Android 5.1, Android 6.0 and Android 7.xRoms
Android 4.4
On Android 4.4 we need a different kernel, 4.4 Kernel includes "KitKat" tag on zip name.
What else to say
Kernel compiled using GCC 4.7
Anykernel based on Anykernel2 by @osm0sis ( https://github.com/osm0sis/AnyKernel2 ) - it will dump your boot.img and replace the zImage and add proper kernel modules.
Roms with default libion
LineageOS (unofficial)
lineage-13.0_maguro-6.0.1-20180130-2235.zip and newer
lineage-13.0_toro-6.0.1-20180130-2258.zip and newer
lineage-13.0_toroplus-6.0.1-20180130-2323.zip and newer
OmniRom (unofficial)
OmniRom 4.4: omni_tuna-4.4.4-20180128-0005.zip and newer
OmniRom 6.0: omni_tuna-6.0.1-20180128-0334.zip and newer
OmniRom 7.x: omni_tuna-7.1.2-20180128-1348.zip and newer
SlimRoms (unofficial)
Slim6: Slim_tuna-6.0.1-20180128-2356.zip and newer
Slim7: Slim_tuna-7.1.2-20180131-1640.zip
Unlegacy-Android:
All official Unlegacy-Android builds starting on 15th feburary use the default libion
On older Roms, using TI's libion, you can use attached kernel from here.
[#DONATETOME]
XDA:DevDB Information
(tuna) Anykernel, Kernel for the Samsung Galaxy Nexus
Contributors
Android-Andi, Ziyan
Source Code: https://github.com/Unlegacy-Android/android_kernel_samsung_tuna/tree/staging
Kernel Special Features: Testing before applying on our source official, CVE fixes
Version Information
Status: Testing
Created 2017-06-23
Last Updated 2018-05-09
Reserved
As requested, here's my setup to compile tuna kernel.
01.05.2020
Follow https://github.com/andi34/android_build-bot/blob/manifest/README.md and https://github.com/andi34/android_build-bot/blob/kernelcompile/README.md
What do you need
Kernel Source (you can get our latest kernel source on SlimRoms, OmniRoms or CyanogenMods github, "tuna kernel")
GCC ( https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7 )
pvr source, added to omap4-common device repo and hardware_ti_omap4 repo (can be found on SlimRoms, OmniRoms or CyanogenMods github)
you can use my scripts put below (update some paths, marked red )
AnyKernel2 Source from osm0sis (update for tuna needed)
build-gcc4.7.env
Code:
export CROSS_COMPILE=[COLOR="Red"]'/home/andi/android2/kernelcompile/arm-eabi-4.7/bin/arm-eabi-'[/COLOR]
export LDFLAGS=''
export CFLAGS=''
export SUBARCH=arm
export ARCH=arm
export STRIP=[COLOR="Red"]/home/andi/android2/kernelcompile/arm-eabi-4.7/bin/arm-eabi-strip[/COLOR]
alias 'stm'='$STRIP --strip-unneeded *.ko'
compile-tuna.sh
Code:
#!/bin/bash
readonly red=$(tput setaf 1) # red
readonly grn=$(tput setaf 2) # green
readonly ylw=$(tput setaf 3) # yellow
readonly blu=$(tput setaf 4) # blue
readonly cya=$(tput setaf 6) # cyan
readonly txtbld=$(tput bold) # Bold
readonly bldred=$txtbld$red # red
readonly bldgrn=$txtbld$grn # green
readonly bldylw=$txtbld$ylw # yellow
readonly bldblu=$txtbld$blu # blue
readonly bldcya=$txtbld$cya # cyan
readonly txtrst=$(tput sgr0) # Reset
err() {
echo "$txtrst${red}$*$txtrst" >&2
}
warn() {
echo "$txtrst${ylw}$*$txtrst" >&2
}
info() {
echo "$txtrst${grn}$*$txtrst"
}
setbuildjobs() {
# Set build jobs
JOBS=$(expr 0 + $(grep -c ^processor /proc/cpuinfo))
info "Set build jobs to $JOBS"
}
info "Kernel source path: $KERNELSOURCE"
info "PVR Source path: $PVRSAUCE"
info "Working directory: $WORKINGDIR"
info "resulting zImage and modules stored at: $WORKINGOUTDIR"
setbuildjobs
info "Moving to kernel source"
cd $KERNELSOURCE
info "Import toolchain environment setup"
info "Toolchain: $TOOLCHAIN"
source $SAUCE/build-$TOOLCHAIN.env
info "Create a buid directory, known as KERNEL_OUT directory"
# then always use "O=$SAUCE/tuna" in kernel compilation
info "create working directory"
mkdir -p $WORKINGDIR
warn "Make sure the kernel source clean on first compilation"
make O=$WORKINGDIR mrproper
warn "Rebuild the kernel after a change, maybe we want to reset the compilation counter"
echo 0 > $WORKINGDIR/.version
info "Import kernel config file: $DEFCONFIGNAME"
make O=$WORKINGDIR $DEFCONFIGNAME
info "Change kernel configuration if needed using:"
info " make O=$WORKINGDIR menuconfig "
info "lets build the kernel"
make -j$JOBS O=$WORKINGDIR
if [ -f $WORKINGDIR/arch/arm/boot/zImage ]; then
info "Copying the resulting zImage and modules to: $WORKINGOUTDIR"
info "Creating directory..."
mkdir -p $WORKINGOUTDIR
mkdir -p $WORKINGOUTDIR/modules
cp $WORKINGDIR/arch/arm/boot/zImage $WORKINGOUTDIR/
find $WORKINGDIR/ -type f -name *.ko -exec cp {} $WORKINGOUTDIR/modules/ \;
info "Files moved!"
info "Pointing KERNELDIR to KERNEL_OUT directory"
export KERNELDIR=$WORKINGDIR
warn "Make sure the PVR source clean."
warn "Running 'make clean'..."
make clean -C $PVRSAUCE/build/linux2/omap4430_android
info "Building the PVR module..."
make -j8 -C $PVRSAUCE/build/linux2/omap4430_android TARGET_PRODUCT="blaze_tablet" BUILD=release TARGET_SGX=540 PLATFORM_VERSION=4.1
info "Copying the resulting PVR module to: $WORKINGOUTDIR"
cp -fr $PVRSAUCE/binary2_omap4430_android_release/target/pvrsrvkm.ko $WORKINGOUTDIR/modules/pvrsrvkm_sgx540_120.ko
mv $PVRSAUCE/binary2_omap4430_android_release/target/pvrsrvkm.ko $WORKINGOUTDIR/modules/
warn "Don't leave any module objects in PVR source!"
warn "Running 'make clean'..."
make clean -C $PVRSAUCE/build/linux2/omap4430_android
info "Properly stripping the kernel modules for smaller size (implified as stm command inside build.env)..."
cd $WORKINGOUTDIR/modules
stm
info "####################"
info "# Done! #"
info "####################"
else
warn "####################"
warn "# FAILED! #"
warn "####################"
fi
cd $SAUCE
tuna_k.sh
Code:
#!/bin/bash
[COLOR="Red"]SAUCE=~/android2/kernelcompile
PVRSAUCE=~/android2/official/omap4/stable/pvr-source/eurasiacon
KERNELSOURCE=~/android2/official/kernel/android_kernel_ti_omap4[/COLOR]
TOOLCHAIN="gcc4.7"
DEFCONFIGNAME=tuna_kitkat_defconfig
WORKINGDIR=$SAUCE/tuna-kitkat
WORKINGOUTDIR=$WORKINGDIR-bin
. `dirname $0`/compile-tuna.sh
tuna_m.sh
Code:
#!/bin/bash
[COLOR="Red"]SAUCE=~/android2/kernelcompile
PVRSAUCE=~/android2/official/omap4/stable/pvr-source/eurasiacon
KERNELSOURCE=~/android2/official/kernel/android_kernel_ti_omap4[/COLOR]
TOOLCHAIN="gcc4.7"
DEFCONFIGNAME=tuna_defconfig
WORKINGDIR=$SAUCE/tuna-marshmallow
WORKINGOUTDIR=$WORKINGDIR-bin
. `dirname $0`/compile-tuna.sh
Hey together!
We started preparing a common 3.0 omap4 kernel.
I have started applying some small stuff to our current kernel (also reverts some previous commits) which needs testing.
The kernel should work on all L, M and N Roms. Please let me know if you face any new issues.
Android-Andi said:
Hey together!
We started preparing a common 3.0 omap4 kernel.
I have started applying some small stuff to our current kernel (also reverts some previous commits) which needs testing.
Click to expand...
Click to collapse
Thanks for your hard work. I flashed your kernel onto DU 11.5 (Android 7.12). It boots fine and I'm writing this post with this configuration. I will test it during the next days. First difference: Nightlight now works...
Android-Andi said:
Want to support development? You can consider donating, we've spent countless of hours with this
Click to expand...
Click to collapse
@Android-Andi @Ziyan Thank you for your work! I have donated $10 and I hope others will join me to support our developers
Android-Andi said:
Please let me know if you face any new issues.
Click to expand...
Click to collapse
It's running very well but I'm getting battery drain cause of missing deep-sleep-cycles.
@guest4711 maguro?
On toro or toroplus issues i need a dmesg always because i own a maguro only.
Android-Andi said:
@guest4711 maguro?
Click to expand...
Click to collapse
Yes, good old maguro (with baseband I9250XXLJ1, see #3).
@guest4711 attached kernel reverts "cpufreq: interactive: sync with p-android-omap-3.0-dev", let's see if this fixes your issue.
double, ignore
Android-Andi said:
@guest4711 attached kernel reverts "cpufreq: interactive: sync with p-android-omap-3.0-dev", let's see if this fixes your issue.
Click to expand...
Click to collapse
Ok, I'll test it. Simple dirty flashing without any wiping?
guest4711 said:
Ok, I'll test it. Simple dirty flashing without any wiping?
Click to expand...
Click to collapse
Yeah if it's not that i have another idea. My maguro was almost empty, only could quick test wifi, camera, audio yesterday. Charging it now and going to work on it later again.
Android-Andi said:
Yeah if it's not that i have another idea. My maguro was almost empty, only could quick test wifi, camera, audio yesterday. Charging it now and going to work on it later again.
Click to expand...
Click to collapse
Ok. Quick tries to enter deep sleeping show "some devices failed to suspend" in dmesg, see attached log.
guest4711 said:
Ok. Quick tries to enter deep sleeping show "some devices failed to suspend" in dmesg, see attached log.
Click to expand...
Click to collapse
Would it help to log the same with "DU kernel" and post it here? Or do you need other logs too?
guest4711 said:
Would it help to log the same with "DU kernel" and post it here? Or do you need other logs too?
Click to expand...
Click to collapse
One more to test.
Android-Andi said:
One more to test.
Click to expand...
Click to collapse
Keep quite, please - the cpus are sleeping...
One more attached. Almost spend the whole day with it.
Have fun with it!
Android-Andi said:
One more attached. Almost spend the whole day with it.
Have fun with it!
Click to expand...
Click to collapse
Thank you. Installed and running, but need a while for testing it.
Have a nice weekend!
Another one, adds a bunch of zram changes (not enabled - shouldn't hurt) and core parts from galaxy tab2 (shouldn't hurt tuna, but we need to test).