[DEV][ROOT] Pi-hole for Android // Deploy Pi-hole DNS server to ANY Android 4.x device. - Android Software/Hacking General [Developers Only]

Pi-hole for ARMv7 (2011 and newer) Android devices.
NOTE: This project has been supersceeded by the Raspbian APK installer.
The post below is still useful for Android 4.x devices.
________________
Original post...
[ Preface: I have successfully deployed this to several ARMv7 and ARMv8 devices, but looking for additional test devices to ensure the scripts are robust enough to detect the many various device configurations out there, especially interested in RockChip and Allwinner-based Android HDMI sticks. Please give it a spin and report your results - Thanks! ]
{
"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"
}
Pi-hole is a Linux network-level advertisement and Internet tracker blocking application which acts as a DNS sinkhole intended for use on a private network. It is designed for low-power embedded devices with network capability, most well-known being the Raspberry Pi.
This customized Linux Deploy image works on any rooted Android device with an ARMv7 (or newer) class CPU. This typically includes anything made in the past 10 years. Form factor is not important; it could be a phone, tablet, HDMI stick or any device running Android.
Requirements:
· Android device, rooted
· Developer Options -> Root Access -> Enabled for Apps
Instructions:
· Open browser on device and download+install the Linux Deploy APK below. You can also download it from the Play Store if you prefer:
​· https://github.com/meefik/linuxdeploy/releases​
· Download the Pi-hole for Android disk image: 1.6 [20220908]
· https://github.com/DesktopECHO/Pi-hole-for-Android/releases​​· Restart Phone (This is REQUIRED)
· Open Linux Deploy
· Open Properties Menu (Bottom Right)​· Distribution: rootfs.tar​· Source Path - This varies depending on the device, ie: ${EXTERNAL_STORAGE}/Download/p4a16.tgz​· Set password for user "android"​· Init -> Enable​
· Go back to main window, click Options Menu (Three dots, top right of screen) and click "Install"
· Wait a few minutes for the disk image to install.​· Allow the install to complete before proceeding to next steps.​· When install is complete, the Linux Deploy console window will show the following:​
Code:
[HH:mm:ss] >>> :: Configuring core/launchroot ...
[HH:mm:ss] >>> deploy
· Open Hamburger Menu (Top Left) and touch "Settings"
· Place check mark on Lock Wi-Fi​· Place check mark on Autostart​
Touch the [ -> START ] button and confirm when prompted.
Pi-hole is now installed and running!
Your Android device's IP is shown at the top of the Linux Deploy main window. You can interact with the Pi-hole instance in three ways:
Open a web browser to the Android device's IP address. Example:
http://10.13.12.11/admin
SSH to the instance on port 22. Example:
ssh [email protected]
RDP to the device's IP address to open an XTerm. Example:
mstsc.exe /v:10.13.12.11
Additional Info
You can restart (or "bounce") the Pi-hole instance in Linux Deploy by pressing [ ■ STOP ] and waiting a few seconds for the instance to indicate all services are stopped. Restart the instance by pressing [ ▸ START ]
When a Pi-hole instance starts up, the default setting is to let it automagically configure networking. If you change networks on the Android device simply restart the instance for Pi-hole to pick up the new settings.
Alternatively, set a static assignment by commenting-out two lines in /etc/rc.local (You will see which ones when you open the file in an editor.) After the lines are commented out with a hash "#" you can manually add your IP, subnet and interface name to /etc/pihole/setupVars.conf
The Pi-hole instance on Android otherwise behaves like it is running on a 'real' Raspberry-Pi or a standard PC. Consult the extensive documentation online to learn how to fully leverage Pi-hole's functionality.
Adjust QT display scaling: ~/startwm.sh
Change the font size in QTerminal: ~/.config/qterminal.org/qterminal.ini
If your Android device has a battery and was unused for months or years, replace its battery. Old, worn, or abused Li-ion batteries can fail when pushed back into service. Failure appears as a bulge in the battery, "thermal event" or worse. A new battery makes an excellent UPS for the tiny Linux box you just provisioned!

Thanks a lot for this, I find this the only working solution for Pi-hole + unbound on Linux Deploy. I was able to run pi-hole from scratch on debian/ubuntu based images but was not able to get unbound running and not sure why it always gave SERVFAIL.
Anyways, this worked I wonder why...
On a separate note I tried updating pi-hole but it only updated FTL version to v5.13 and I know the core and web-interface is also updated and newer versions are released but for some reason pihole shows it's up to date in the "pihole -up" command BUT it shows update available on web interface (admin panel).
Can you let me know why?

What model phone do you have?
CentOS 7 Was the only distro I could convince to work on every android phone. Android 4.x shipped with a 3.0 kernel and CentOS has a glibc juuuust old enough to be able to run with a kernel that old.
Yesterday I released version 1.5 which should take care of the update issue. Give that a shot and let me know how things look for you.

I dug into this more seems like this PR merge causes it: https://github.com/pi-hole/pi-hole/pull/4475
I reverted the changes to that script and it worked. I made a comment on that PR, hopefully they'll fix.
Thanks for the update, I'll check it now.
I use Xiaomi Redmi Note 4G (codename: dior). Using my own self-built LineageOS 14.1 (Kernel 3.4.0). I understand the issues with having older kernel version with newer distributions and yes, you're right CentOS 7 would be perfect for this use case. Unfortunately pihole install script by default didn't support CentOS 7 on ARM so I didn't go that way initially.
Also, Is there a way I could check for newer versions of your container other than XDA?

Hi Ashish, The 'official' page is located on GitHib:
https://github.com/DesktopECHO/Pi-hole-for-Android
Nice find with the git versioning issue! You can also just run ``p4a-install`` which does the same thing but skips the version check and force-installs the latest Pi-hole release. I think they will fix this... fyi the Pi-hole installer works on CentOS ARMv7, that may not have been the case a year or two ago. In any case if you're on Kernel 3.4 you should be able to get a modern distro running without too much grief. The project page on GitHub has all my fix-ups, you should be able to apply them against your preferred Linux flavour.

Very nice! Running on OnePlus Nord N10 here. arm64-v8a

Few hours later...
Stopped for some reason...

Going again, nothing is logged, however it seems to function well and good.

Hi there, I'm pretty sure the disk resize had something to do with your issue -- I see "pihole -up" was complaining there was no disk space left.
For what it's worth, my Galaxy S2 has been running Pi-hole months at a time without issues.

One more thing, just an FYI if you're interested... as of P4A update v1.5 you can tell Linux Deploy to install to a folder on your Android device instead of a disk image. That way you don't have to worry about filling up the image file.

ashishkotnala29 said:
I dug into this more seems like this PR merge causes it: https://github.com/pi-hole/pi-hole/pull/4475
I reverted the changes to that script and it worked. I made a comment on that PR, hopefully they'll fix.
Click to expand...
Click to collapse
I rebuilt a newer version of Git (2.34) for CentOS 7 on ARMv7. I can upload the RPMs if you want to try out updating with that version instead. It's probably all academic anyway as the Pi-hole folks are working on a resolution.

DesktopECHO said:
I rebuilt a newer version of Git (2.34) for CentOS 7 on ARMv7. I can upload the RPMs if you want to try out updating with that version instead. It's probably all academic anyway as the Pi-hole folks are working on a resolution.
Click to expand...
Click to collapse
Sure, thanks I can try that later.

Here you go!
GIT 2.34 CentOS 7 ARM v7

DesktopECHO said:
Here you go!
Click to expand...
Click to collapse
Had to figure out the dependencies and I only installed 4 packages out of all those and I think it is working... The results are promising.
This test is on your v1.4 image because it makes sense there. Using old git 1.8.x we only got FTL update here.
Finally going through the update and it was a success!
Thanks a lot for compiling these RPMs.
Here's are the prerequisites which are needed to install the RPMs you complied.
Bash:
sudo yum remove -y git
sudo yum clean all
sudo yum install -y emacs-filesystem pcre2
Then only install git, git-core, git-core-doc and perl-Git. That's all!

We managed to figure out the issue. It was the "git fetch --tags origin" command on v1.8.x. For some reason this doesn't work the same as in modern git versions.
Discussion here: https://github.com/pi-hole/pi-hole/pull/4475
Fix here: https://github.com/pi-hole/pi-hole/pull/4575
Thanks for your help!

ashishkotnala29 said:
We managed to figure out the issue. It was the "git fetch --tags origin" command on v1.8.x. For some reason this doesn't work the same as in modern git versions.
Discussion here: https://github.com/pi-hole/pi-hole/pull/4475
Fix here: https://github.com/pi-hole/pi-hole/pull/4575
Thanks for your help!
Click to expand...
Click to collapse
You’re welcome! And thank you for chasing down that bug.
They had a similar issue with bash on CentOS 7 a few months ago. Next re-spin of P4A I think I’ll just include the updated Git just for a little extra insurance. Will also be switching to OpenSSH from DropBear (so Gravity Sync can work) now that I have sorted out why it wouldn’t start.

Hey @DesktopECHO I have a small issue idk who to ask maybe you've come across this in your testing.
I have a very old Chinese android tablet running Android v4.1.1 on kernel v3.0.8. It has 2 cores Cortex-A9.
Everything seems to work fine but as soon as I turn the screen off the detected core count reduces to 1. It's like 1 core is put to sleep and is no longer "visible" to the OS. I've verified this using the "htop" utility and on pi-hole web-ui (hover over green/red status beside load averages).
I am using wake lock apps to keep the Wifi performance high. I also tried changing CPU governor to ondemand/interactive/performance still same behavior. Any ideas how can I keep both cores online while keeping screen off?
EDIT: Seems to be working fine when switched to ondemand governor and restarting.

Sometimes the closest you can get is to just turn down the screen brightness to zero which should be 'good enough' for most situations, we just need to find where that control is on your device.
Break out of chroot:
Code:
[[email protected] ~]$ unchroot
Find a hint for where screen brightness is controlled:
Code:
localhost:(unreachable) # find /sys/ -name brightness
For my device I get:
Code:
/sys/devices/platform/soc/1a00000.qcom,mdss_mdp/1a00000.qcom,mdss_mdp:qcom,mdss_fb_primary/leds/lcd-backlight/brightness
/sys/devices/platform/soc/78b5000.i2c/i2c-1/1-005a/leds/vibrator/brightness
/sys/devices/platform/soc/7864900.sdhci/leds/mmc1::/brightness
/sys/devices/platform/soc/200f000.qcom,spmi/spmi-0/spmi0-03/200f000.qcom,spmi:qcom,[email protected]:qcom,[email protected]/leds/charging/brightness
/sys/devices/platform/soc/200f000.qcom,spmi/spmi-0/spmi0-03/200f000.qcom,spmi:qcom,[email protected]:qcom,[email protected]/leds/green/brightness
/sys/devices/platform/soc/200f000.qcom,spmi/spmi-0/spmi0-03/200f000.qcom,spmi:qcom,[email protected]:qcom,[email protected]/leds/blue/brightness
In my case it was the first entry, so to confirm we'll try turning down the brightness:
Code:
echo 0 > /sys/devices/platform/soc/1a00000.qcom,mdss_mdp/1a00000.qcom,mdss_mdp:qcom,mdss_fb_primary/leds/lcd-backlight/brightness
It worked! Sometimes you have to try 1 instead of 0 as the minimum value. Usually it's 0-255

DesktopECHO said:
Sometimes the closest you can get is to just turn down the screen brightness to zero which should be 'good enough' for most situations, we just need to find where that control is on your device.
It worked! Sometimes you have to try 1 instead of 0 as the minimum value. Usually it's 0-255
Click to expand...
Click to collapse
Thanks for this. Yeah I was aware that keeping screen on will let me achieve my goal but I was trying to avoid it unless absolutely necessary.
I've been using this app for keeping wake locks since for some reason the CPU and Wifi lock options in Linux Deploy app do not work for me on the two devices that I tested. "Partial wake lock" option in this app works great, keeps wifi up and CPU too while screen off.

I've googled something like this a month ago, it's like you guessed. Thank you so much @DesktopECHO !!
This is probably a very silly question but give me some leeway.
If I'm browsing the web on the android device where my pihole is deployed, shouldn't it be blocking ads as I'm browsing ?

Related

"Forknife" - the Android G1 controlled robot.

Since I got my G1 I have been thinking of interesting ways to talk with my arduino prototyping board since there is no USB support yet (my next software/hardware project?.. it would be handy to use a G1 as a serial console)
I ended up using DTMF tones and to see how well it worked, I quickly built a simple robot for testing. You can take a look at a video, pictures, overview of how it works, and the GPL-ed source code/schematics to build your own or improve it here:
http://macpod.net/misc/android_robot/android_robot.php
{
"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"
}
Enjoy!
this is awesome man. fantastic work!
EDIT: Dude I got forknife on engadget!
http://www.engadget.com/2009/01/26/video-t-mobile-g1-powered-forknife-robot-goofs-off-eats-cupcak/
http://www.engadgetmobile.com/2009/...powered-forknife-robot-goofs-off-eats-cupcak/
If I just had your knowledge!
Awsome work !!!!!!!!
Awesome project!
Could someone make a quick program for the Dream to output all of its sensor data (GPS, Compass, accelerometer)?
It would save money from having to buy these parts for the arduino...
Yep, you could do this pretty easily. If you did it via dtmf you could send 1 nibble of data per tone without checksumming it. If you modified the kernel and made you own ttl level cable (I'm waiting on parts to make mine) you might be able to do two way communications up to 115Kbps!
I do not have a dtmf decoder to do this yet, so I am looking into alternate means to send the data.
It looks that I will have it set up opposite of the Forknife robot, with Android sending data over wifi (via a modified Gmote program) through the serial monitor in the Arduino Environment.
I'm also gonna try to grab the sensor data from the Tricorder app on my phone.
Time to see if I can get the Source code for these two.
-Brian
If you have wifi avaliable why would you need to reverse how this is done? I would just setup a server socket on the arduino, connect to it via the arduino and talk.
What wifi module will you use?
Oh, if you have a light sensor you could try sending out the G1's data by blinking the LED (you even have multiple colors so if you had a color sensor you could perform flow control!)
edit: check out bluetooth solutions too.
edit2: I guess it would make sense to reverse the flow.. I was thinking you were suggesting that there would be only one way communications from the arduino --> phone
My arduino doesnt have wifi, Android and my computer do.
At this point the Arduino isn't going anywhere, its plugged in with USB.
Would Android's Bluetooth API's allow for serial communication? as I was considering getting bluetooth modules for the Arduino.
Blinking the tricolor LED would be fun, but i have no experience coding Android, I am still working on setting up Eclipse for it.
Oh! Sorry, I didn't look at how the gmote setup worked.
If computer is in the picture this is really easy. You already have server code on the computer and client network code on the G1. All you would have to do is change what data is sent (and also send to the server as opposed to the server sending data to the client.. that's a trivial change).
On the server side you would need to forward the data you recieve from the G1 to your arduino.. and I'm sure the gmote code already shows how to work with serial ports.
On the client side, you would just need to rewrite the data in the thread to write out values from the sensors.
Edit: I'm not sure about bluetooth setups with the arduino as I have never worked with them. Something tells me that the communication protocols could be proprietary (i.e. both sender and recievers just work as serial ports.. they can't actually connect to other real bluetooth devices)
Hm, I cannot get the souce code for either the gmote.apk nor the server. I found a PICaxe based color sensor on sparkfun.com for $35, could that be used with the ardiuno to read the rgb notification LED on the G1? I would need a program to encode sensor data to the rgb.
I feel it would be easier to make a photo resistor read IO from the g1, and input directly into the RX on the arduino.
Using a photo sensor is a very hackish way to do this.. and would also cost more than just using wifi. It would also require significantly more code. Not to mention it only allows one way communication.
Just use the wifi method! It's the simplest method
I'm sure there is example code for how to read the sensors in android.
On the client side I'm sure there is code that discusses how to read sensor values
and on the computer side, all you need to do is implement code to talk to the serial port the arduino is associated with.. for linux/unix/os x it's just opening up a device in /dev/ for reading/writing!
Okay, i have eclipse set up for android, but still cannot get source code for the gmote.apk, I tried adb pulling it, but it is encrypted, so I cannot edit it's settings.
could i use "ghost" programs to control my input through these programs. I can easily place the cursor in the Serial Monitor for Arduino, but could I use a program to copy the serial data, then Paste the input into the gmote program to be sent to the serial monitor on the computer's side.
How easy would a code like this be? it would have to run on top (or underneath another program).
Now, I heard you say that a kernel patch could enable serial communication through the USB port. A friend of mine is really good in linux and modifying kernels.
Would you have any idea of what part of the kernel I should look for, and what it has to be changed to? I have to have an idea of what to ask him.
Thanks
-Brian
belding said:
Now, I heard you say that a kernel patch could enable serial communication through the USB port. A friend of mine is really good in linux and modifying kernels.
Would you have any idea of what part of the kernel I should look for, and what it has to be changed to? I have to have an idea of what to ask him.
Thanks
-Brian
Click to expand...
Click to collapse
It's actually supported in the kernel already, although I'm not sure if that particular configuration option is turned on in the default built. So at worst you would just have to recompile the kernel with a different configuration.
So I will have to ask my friend to find usb serial communicaton in the kernel, and enable it for program use?
If that is the case, how would I write programs to take advantage of this, wouldn't I need a new API?
Or since the kernel already has it, is there already an API for serial communication?
Thanks
belding said:
So I will have to ask my friend to find usb serial communicaton in the kernel, and enable it for program use?
If that is the case, how would I write programs to take advantage of this, wouldn't I need a new API?
Or since the kernel already has it, is there already an API for serial communication?
Thanks
Click to expand...
Click to collapse
I haven't played with it, but I assume it's just a device in /dev that you can read/write
belding, what is it about the wifi solution you don't like? It is a software only solution to your problem and alot of code is already written for you in the robot project.
Indeed the serial solution over the 11 pin connector would be best, but that requires you to buy hardware, solder tiny pins, and then modify your kernel which you don't seem to be comfortable doing. In addition, it is my understanding the modification requires you to disable adb support!
Perhaps if you told us your knowledge background I could explain it better? I kinda assumed you were computer science oriented, but I suppose if you are cpe or ee oriented I could have lost you. It would also help to know what your computer is runnng.
The wifi solution would work, but i cannot get source code to rewrite the gmote client or server.
I do not currently have the hardware (DTMF decoder) to implement your premade solution.
Okay, For my knowledge background: in Android, most things I can see are update.zip based, and I can change anything in the android system that is contained on the update. Looking through /system/usr I found the kernel config, but most options were enabled, and the two that were not do not seem to be related to Serial. I have basic knowledge of command prompt tools in Windows and the Android terminal.
Knowledge again, I am learning Arduino and processing, and am fairly good with electrical circuits, the ee you mentioned.
My computer is dual booting Windows XP and Windows 7.
PS, I talked to my friend, and we are looking into the Android Kernel, specifically where it is located, and where the terminal is located.
Where is the terminal in android located, inside or outside Dalvik VM?
belding said:
The wifi solution would work, but i cannot get source code to rewrite the gmote client or server.
I do not currently have the hardware (DTMF decoder) to implement your premade solution.
Okay, For my knowledge background: in Android, most things I can see are update.zip based, and I can change anything in the android system that is contained on the update. Looking through /system/usr I found the kernel config, but most options were enabled, and the two that were not do not seem to be related to Serial. I have basic knowledge of command prompt tools in Windows and the Android terminal.
Knowledge again, I am learning Arduino and processing, and am fairly good with electrical circuits, the ee you mentioned.
My computer is dual booting Windows XP and Windows 7.
PS, I talked to my friend, and we are looking into the Android Kernel, specifically where it is located, and where the terminal is located.
Where is the terminal in android located, inside or outside Dalvik VM?
Click to expand...
Click to collapse
Well, you can get to a terminal with the terminal emulator application of course, or through adb shell.
But if you want an actual console on the phone itself, try out the recovery image from JFv1.41. It boots into the normal recovery image, but it provides an alt+x option to exit the recovery program, and go to a console.
Also, the android kernel source is here. Make sure you grab the .25 branch if you want it to work with the current official builds. The .27 branch is only for cupcake.
To download the source, make sure you have git installed, and then:
git clone git://android.git.kernel.org/kernel/msm.git
cd msm
git checkout android-msm-htc-2.6.25
to build the kernel, you can use the pre-compiled gcc cross-compiler that is provided in the android source. make sure that it is in your path, and then invoke make with the arguments ARCH=arm CROSS_COMPILE=arm-eabi-
(or you can set those variables in the Makefile, so you can just do "make").
If you have any questions about getting everything set up to compile the kernel, feel free to ask. It seems a bit daunting the first time you do it, but it's actually fairly straight forward.

[Dev] Kernel code execution

{
"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"
}
Decrement ci.dll!g_CiOptions(ci.dll+0xF984) by 0x08 using the exploit (It is 0x26, we need the 0x08 bit high, I chose 0x1E as the result since it's the closest we can get to the original mask).
I haven't actually compiled a driver for it yet, but I'm working on that.
Edit: Played with loading a default system driver with modified code and a custom signature. Instead of subtracting 0x08 to set testsigning high, subtract 0x25 to set all but the 1 bit low. Seems to be working, now. There is absolutely no driver signing now, though. Perhaps setting only 0x08 high would give a similar result but still require a test signature. Not sure, I don't like kernel driver signatures anyways.
More edit: Fun fact: Windows acts odd if null.sys is unloaded.
Even more edit: I'm going to get this, along with a couple other small tweaks, such as a registry-based startup, pushed in the next Jailbreak release, too.
Now, to get the DDK working. I haven't had any luck getting a driver compiled for ARM so far. I heard that there was a leaked DDK out there, anyone happen to know where it is?
oh hoo... awesome! :good:
I was able to use a tweaked version of THIS to get a driver built that loads into the kernel. I had to dump my own libs for ntoskrnl.exe (and somehow managed to get it to look for ntoskrnl.dll, blah), but I did get a Hello BSoD driver to run.
Also I've been looking for ARM DDK, but still not find yet.
It must be only released to device manufacture, but that also can be meaning that it already might have been leaked.
M-m-m, Netham45 I'm not so perfect Guru as you. Please, tell me, using "english", what are we allowed to obtain? Persistent JB or possibility to use/install system drivers w/o signaturest?
Denis_63 said:
M-m-m, Netham45 I'm not so perfect Guru as you. Please, tell me, using "english", what are we allowed to obtain? Persistent JB or possibility to use/install system drivers w/o signaturest?
Click to expand...
Click to collapse
Second part, this lets you get system drivers loaded without valid signatures. It's not ready for the average joe quite yet, but I'm working on getting it implemented into the jailbreak so everyone can use it.
Edit: Latest version of the jailbreak should support kernel-mode code unlocking now.
I've been working on the same thing, to allow unsigned drivers to dynamically load
I decrement by 0x22
I would strongly suggest keeping this separate from the run unsigned user mode win32 code jailbreak
as most people wont need it except in rare circumstances
(and its more likely to lead to the vunerability we all need being closed off)
xsoliman3 said:
I've been working on the same thing, to allow unsigned drivers to dynamically load
I decrement by 0x22
I would strongly suggest keeping this separate from the run unsigned user mode win32 code jailbreak
as most people wont need it except in rare circumstances
(and its more likely to lead to the vunerability we all need being closed off)
Click to expand...
Click to collapse
I think it'd be better if they were both loaded at the same time, so tools like OpenVPN and whatnot that require kernel-mode drivers can still function properly.
By the way, would the drivers work on the RT without this hack (but with a jailbreak) if they were signed with my own (bought, not self signed) code signing certificate or is there a specific list of trusted publishers (ony Microsoft?) that are allowed?
DarkoLord said:
By the way, would the drivers work on the RT without this hack (but with a jailbreak) if they were signed with my own (bought, not self signed) code signing certificate or is there a specific list of trusted publishers (ony Microsoft?) that are allowed?
Click to expand...
Click to collapse
I think the certificate for drivers is different from the certificate for applications.
Nice job, netham.
I'll try incorporating this into what I'm working on. My implementation works like this:
1. Start Notepad with a specific name in the title bar.
2. Attach nonobtrustively to Notepad with cdb.exe.
3. Overwrite user32!GetMessageW using a cdb.exe script.
4. Use taskkill to send a WM_CLOSE to that Notepad, causing the GetMessageW overwrite to execute.
5. The injected code I wrote with cdb.exe loads a DLL and runs it. It loads the DLL by mapping it as a file instead of an image, then marks it PAGE_EXECUTE_READWRITE with VirtualProtect.
6. The initialization sequence of the DLL fixes relocations and loads imports.
7. The DLL finds csrss.exe in the current session.
8. Open ntoskrnl.exe and ci.dll to look for the needed addresses.
9. EnumDeviceDrivers to find the ntoskrnl.exe and ci.dll base addresses.
10. The DLL injects itself into csrss.exe using NtMapViewOfSection and RtlCreateUserThread. (CreateRemoteThread can't be used on csrss.exe, because the new thread will try to connect to csrss over LPC.)
Steps 1-10 are already implemented and working. This leaves the next few steps:
11. Use the exploit to set g_CiOptions as per this thread.
12. Load the driver using NtSetSystemInformation(SystemLoadAndCallImage).
13. Use DeviceIoControl to communicate with the driver in order to set the variables we want.
14. Unload the driver somehow.
Myriachan said:
Nice job, netham.
I'll try incorporating this into what I'm working on. My implementation works like this:
1. Start Notepad with a specific name in the title bar.
2. Attach nonobtrustively to Notepad with cdb.exe.
3. Overwrite user32!GetMessageW using a cdb.exe script.
4. Use taskkill to send a WM_CLOSE to that Notepad, causing the GetMessageW overwrite to execute.
5. The injected code I wrote with cdb.exe loads a DLL and runs it. It loads the DLL by mapping it as a file instead of an image, then marks it PAGE_EXECUTE_READWRITE with VirtualProtect.
6. The initialization sequence of the DLL fixes relocations and loads imports.
7. The DLL finds csrss.exe in the current session.
8. Open ntoskrnl.exe and ci.dll to look for the needed addresses.
9. EnumDeviceDrivers to find the ntoskrnl.exe and ci.dll base addresses.
10. The DLL injects itself into csrss.exe using NtMapViewOfSection and RtlCreateUserThread. (CreateRemoteThread can't be used on csrss.exe, because the new thread will try to connect to csrss over LPC.)
Steps 1-10 are already implemented and working. This leaves the next few steps:
11. Use the exploit to set g_CiOptions as per this thread.
12. Load the driver using NtSetSystemInformation(SystemLoadAndCallImage).
13. Use DeviceIoControl to communicate with the driver in order to set the variables we want.
14. Unload the driver somehow.
Click to expand...
Click to collapse
I really don't get the point of this, we already have an established and working "jailbreak" (god I really hate this term) procedure.
lilstevie said:
I really don't get the point of this, we already have an established and working "jailbreak" (god I really hate this term) procedure.
Click to expand...
Click to collapse
No volume button required. No 2 minute delay after boot. No hardwired addresses - the last remaining one in the .bat file, in winsrv.dll, is obviated by thread injection. Higher stability, because we're not messing with csrss.exe's existing threads. No Internet access needed, because the code can find addresses without symbols.
By the way, Windows RT does not require validate signatures on .msi files. You'll get the otherwise-never-seen yellow UAC dialog box, and then it will install. So another part of my jailbreak is that you'll install it by double-clicking an .msi file. I've tested the .msi functionality. You could then even uninstall the jailbreak the usual way.
These are just improvements to make jailbreaking more user-friendly.
I'm not a fan of the term "jailbreak" either, but it's the current one.
Myriachan said:
I'm not a fan of the term "jailbreak" either, but it's the current one.
Click to expand...
Click to collapse
Me either, I always rename the bat FreeRT.
lilstevie said:
I really don't get the point of this, we already have an established and working "jailbreak" (god I really hate this term) procedure.
Click to expand...
Click to collapse
It's also got the benefit of not being automatic at reboot, unlike what he's talking about. I think that this is part of the reason that MS decided it wasn't a security issue because it requires user interaction every single boot, and a malicious program couldn't possibly install it silently.
Wow, a lot of news, GOOD news!!!
Myriachan
By the way, Windows RT does not require validate signatures on .msi files. You'll get the otherwise-never-seen yellow UAC dialog box, and then it will install. So another part of my jailbreak is that you'll install it by double-clicking an .msi file. I've tested the .msi functionality. You could then even uninstall the jailbreak the usual way.
Click to expand...
Click to collapse
First, that .msi container doesn't need signature for installing - this fact simplifies installation process! And now, if anyone wants to create programs for non-JB devices with Win RT on board, all he needs - is to make out the program in .msi formfactor. Magnificently!!!
No volume button required. No 2 minute delay after boot. No hardwired addresses - the last remaining one in the .bat file, in winsrv.dll, is obviated by thread injection. Higher stability, because we're not messing with csrss.exe's existing threads. No Internet access needed, because the code can find addresses without symbols.
These are just improvements to make jailbreaking more user-friendly.
Click to expand...
Click to collapse
Heavenly!!! When ordinary users (like me) will obtain user-friendly variant of your product? Next moment - will your variant of JB be persistenet, or non-persistent, just like actual (Netham45)? If even non-persistent, it won't be the problem with those perfect features ))) We'll place it in auto-startup
Netham45
About unsigned drivers. Should unsigned drivers be recompilled for Win RT (ARM), or non-modified drivers for Win7 (8) usage is possible (in .msi variant or by right-button clicking on .inf file) ??? And, also, when your usefull decision with user-friendly interface will be available for ordinary users???
Guys, thanks for your work and for your help from all Win RT users community :good:
netham45 said:
It's also got the benefit of not being automatic at reboot, unlike what he's talking about.
Click to expand...
Click to collapse
I was referring to what he was talking about
Denis_63 said:
Wow, a lot of news, GOOD news!!!
Myriachan
First, that .msi container doesn't need signature for installing - this fact simplifies installation process! And now, if anyone wants to create programs for non-JB devices with Win RT on board, all he needs - is to make out the program in .msi formfactor. Magnificently!!!
Heavenly!!! When ordinary users (like me) will obtain user-friendly variant of your product? Next moment - will your variant of JB be persistenet, or non-persistent, just like actual (Netham45)? If even non-persistent, it won't be the problem with those perfect features ))) We'll place it in auto-startup
Netham45
About unsigned drivers. Should unsigned drivers be recompilled for Win RT (ARM), or non-modified drivers for Win7 (8) usage is possible (in .msi variant or by right-button clicking on .inf file) ??? And, also, when your usefull decision with user-friendly interface will be available for ordinary users???
Guys, thanks for your work and for your help from all Win RT users community :good:
Click to expand...
Click to collapse
We've been able to use MSIs for a while, I documented it in the desktop apps thread, I believe. I've even posted some MSIs (MWB, DosBOX). They're just a pain in the ass to deal with right now, and most people don't feel like it.
His jailbreak will also be non-persistent. The persistence is because we are not saving any changes to Windows files, but only overwriting bits in memory (which are reset on next boot). I would love to have a persistent JB, but we just don't.
Unsigned drivers need to be compiled for Windows RT. That should be obvious, it's an ARM process and kernel-space has no knowledge of any JIT languages, so everything is compiled into assembly before being ran. x86 assembly will not run on ARM.
As far as the kernel exploit, it's available in the latest version of my jailbreak (1.2.0). There are also some other tweaks in there (registry-based startup, cleaned up how I check for admin, etc...), but since there are no ARM-compiled drivers available it's not really required to update right now.
lilstevie said:
I was referring to what he was talking about
Click to expand...
Click to collapse
And I was referring to my jailbreak in relation to his.
His jailbreak will also be non-persistent.
Click to expand...
Click to collapse
Clear... but what about uselessness of "Vol -" button pressing? Its the great step forward, I think :good: Automatical startup will be the solution for non-persisting
but since there are no ARM-compiled drivers available it's not really required to update right now.
Click to expand...
Click to collapse
Sad, but true (c)... but what about non-system, for example, peripheral drivers - printers, scanners etc. Its very simple, does peripheral drivers also need recompilling? :crying:
netham45 said:
And I was referring to my jailbreak in relation to his.
Click to expand...
Click to collapse
Ah right.
Denis_63 said:
Clear... but what about uselessness of "Vol -" button pressing? Its the great step forward, I think :good: Automatical startup will be the solution for non-persisting
Click to expand...
Click to collapse
Personally I think it is a great step back, the step requiring you to press "vol-" is one of the reasons microsoft aren't as interested in patching the exploit at this point in time, the more "Automatical" it becomes, the bigger the chance of it being used malliciously becomes, at which point microsoft will be forced to act (infact it would be rather irresponsible of them to not patch it at the first signs of mallicious use).
Denis_63 said:
Sad, but true (c)... but what about non-system, for example, peripheral drivers - printers, scanners etc. Its very simple, does peripheral drivers also need recompilling? :crying:
Click to expand...
Click to collapse
Yes

[Beta] Win86emu: list of compatible applications

This post would contain a list of applications that can be run under Win86emu with the instructions on getting them running.
As I can't test all of the applications in the world - feel free to post your findings here.
SilverHedgehog made a list of compatible programs in a form of a spreadsheet, that can be edited by anyone: https://docs.google.com/a/silverblo...1vlWDspVdERIZlFHcnVhLV9EaDZIOEpqN2tQT1E#gid=0
Please do not post your problems here and do not ask questions. This thread should contain only the list of working apps and instructions on getting them running.
Ask questions and post your problems in this thread: http://forum.xda-developers.com/showthread.php?p=36622756
When instructions tell to edit registry - use native (i.e. Windows RT) registry editor unless explicitly stated to use the x86 one.
Version 0.05:
Might and Magic VI. There is a fixed MM6.EXE file here: http://forum.xda-developers.com/showthread.php?p=40959944#post40959944, use it to avoid crashes.
Fallout 2. Notes are here: http://forum.xda-developers.com/showthread.php?p=41292319#post41292319
Version 0.04:
WinAmp 2.95. Installs fine, music is playing correctly. Bugs: winamp browser is not working, visualization plugins crash, "stop bugging me" is not saved.
WinRAR 4.20, 7Zip 9.22. Both install and work, but are too slow.
Pinball from Windows 95. Works fine, but the picture is small (you may lower the desktop resolution to make it look larger).
Heroes of Might and Magic III. Instructions are here: http://forum.xda-developers.com/showthread.php?p=40924235#post40924235
Age of Empires 1. Instructions are here: http://forum.xda-developers.com/showthread.php?p=40924456#post40924456
IrfanView. Checked by GoodDayToDie here: http://forum.xda-developers.com/showthread.php?p=40954195#post40954195, some hints here
Might and Magic VI. Instructions are here: http://forum.xda-developers.com/showthread.php?p=40959944#post40959944
Reserved.
Reserved.
Reserved.
Heroes of Might and Magic III
Both the original and complete/gold editions are working.
You can install a game from the ISO image or copy the installed directory from a PC.
To play in a high resolution - use the heroes 3 hd mod: https://sites.google.com/site/heroes3hd/eng/download, it also contains a no-cd patch. I recommend to set "color mode"=standard, as this should provide the best speed.
If you prefer to play in the native 800x600 resolution and observe large black space on the right and bottom sides of the screen - this is due to a problem in recent Nvidia tegra3 video driver. It no longer provides the 800x600 mode, so the emulator sets the nearest available mode (probably 1024x768).
To enable the 800x600 mode you'll need to edit the registry. Warning: editing the registry incorrectly may make your device unbootable!
Run regedit and navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{D7F0B22A-58DF-4A4D-AAA5-B7766CED7EFE}\0000 key. Edit the value "NV_Modes", it looks like: "{*}S 1024x768x32,64 1280x720x32,64 1280x768x32,64=1;". Add the 800x600 32 and 64 bit mode, so that the line would look like "{*}S 800x600x32,64 1024x768x32,64 1280x720x32,64 1280x768x32,64=1;". Then reboot the device.
This hack would work only on Tegra 3 devices! I don't know how to enable 800x600 mode on Qualcom-based tablets.
Known problems:
- network games are not working
- no MP3 music
- the game may hang. This is due to a bug in mss32.dll, the same bug is present on a desktop PC too. To increase the stability - disable the music and sound effects or add this compatibility setting to registry:
Code:
[HKEY_CURRENT_USER\Software\x86node\Compatibility\Heroes3.exe]
"SetProcessAffinityMask"=dword:00000001
This would force the EXE file to run on only one CPU core and mss32.dll would be happy. But this would decrease the overall game speed.
Age of Empires 1
Tested on the AOE Gold with the expansion pack.
Installer is not working. You'll need to copy the game files from your PC.
Known problems:
Only the 1024x768 display mode is supported.
No network game.
Palette issues - you may get the unreadable text on buttons.
If the game don't find CD-ROM - edit the registry key:
Code:
[HKEY_CURRENT_USER\Software\x86node\HKLM\Software\Microsoft\Games\Age of Empires\1.00]
"CDPath"="E:\\"
Here E: - the drive letter of the mounted ISO file.
I'll try my version of AOE II when I get a chance and let you know how it goes... My patch could be different, but who knows.
EDIT: Doesn't really work. Still tries to launch a single-player game, then crashes. Campaign says there's no disc inserted... and of course multiplayer doesn't even show up. But the auto-run is AMAZING! Great work as always!
The Powder Toy (legacy exe) runs, but even on an empty level you get ~2.50 fps.
C-Lang said:
I'll try my version of AOE II when I get a chance and let you know how it goes...
...
Campaign says there's no disc inserted...
Click to expand...
Click to collapse
Regarding the AOE2 no-cd crack, there is a note in the comments on russian site: http://habrahabr.ru/post/168269/
There is a bug in the no-CD, it checks for the installation drive letter in registry and if it is not present - no-cd code returns error. I have not checked that myself yet, but you should try to edit the registry.
SilverHedgehog said:
The Powder Toy (legacy exe) runs, but even on an empty level you get ~2.50 fps.
Click to expand...
Click to collapse
empty level only gives 20fps on my 2ghz Intel Celeron laptop so that was hardly unexpected. Dunno if it would be a candidate for porting though.
IrfanView (a popular image file viewer/resizer/basic editor) works for the most part. Install it (from http://irfanview.com) on a Windows PC, then copy the installed files over to the RT device. It actually may be possible to use the installer with the lasted emu version; the one I last tried with didn't work. It's definitely slower than on native x86, but for reasonably-sized images the difference isn't important (I've been using this app since 400MHz single-core Pentium 2 CPUs from circa 2000; it's not performance-intensive but manages to run very, very fast). I haven't tested all the features or plugins yet. Configuring it to automatically open the relevant file types doesn't currently work (probably due both to registry redirection and to the fact that the OS can't directly invoke the iview.exe program).
Might and Magic VI
Tested on the Might and 6 Limited Edition.
Game installer is 16-bit, so it cannot be run with my emulator or on desktop x64 Windows.
Install the game on 32-bit desktop Windows, then apply the GrayFace MM6 Patch from here: https://sites.google.com/site/sergroj/mm and copy files to your device. You don't need to export registry.
Game asks for CD2. To mount it on RT you'll need to extract the data track as an ISO file and mount that ISO on your device. I've used Nero. Or you may try to use USB CD-ROM (never tried that myself), or use the no-CD built into GrayFace's patch.
There is an incompatibility that causes the game to crash when you enter buildings. Use the EXE file from the attached archive to fix that. This EXE requires the GrayFace's patch to be installed.
Introduction is choppy, but overall game speed is fine.
Game uses the 640x480 mode that cannot be set on Asus VivoTab due to a limitation in Tegra 3 drivers. To enable the 640x480 you'll need to edit the registry as described in the HOMM3 post: http://forum.xda-developers.com/showthread.php?p=40924235#post40924235 but the modified string should look like this: "{*}S 640x480x32,64 800x600x32,64 1024x768x32,64 1280x720x32,64 1280x768x32,64=1;". Be careful while editing registry!
GoodDayToDie said:
Configuring it to automatically open the relevant file types doesn't currently work (probably due both to registry redirection and to the fact that the OS can't directly invoke the iview.exe program).
Click to expand...
Click to collapse
This is due to registry redirection. I "protect" the OS native registry from being trashed by emulated programs. You can override this by adding this compatibility setting:
Code:
[HKEY_CURRENT_USER\Software\x86node\Compatibility\iview.exe]
"UseDirectRegistry"=dword:00000001
This setting is not tested and may cause side effects, so be careful.
It is safer to manually associate iview.exe with needed file extensions.
Oh, I'm quite familiar with using assoc and ftype, or indeed manually tweaking the registry, to set file associations. However, unless you've already implemented the "automatically use the emulator for x86 programs" feature, that won't work. I suppose I could point it at a script that launches the emulator pointing at iview.exe and passes along the argument (file name) that the script itself received, though.
Thanks for this great piece of work!
GoodDayToDie said:
Oh, I'm quite familiar with using assoc and ftype, or indeed manually tweaking the registry, to set file associations. However, unless you've already implemented the "automatically use the emulator for x86 programs" feature, that won't work. I suppose I could point it at a script that launches the emulator pointing at iview.exe and passes along the argument (file name) that the script itself received, though.
Thanks for this great piece of work!
Click to expand...
Click to collapse
That feature is apparently implemented and it is working like a charm, all you need to do is to run the c:\x86node\windows\autostart_x86.cmd after the jailbreak. I was unable to do it automatically because I haven't found a way to schedule a task after another task completes. If you manage to schedule it to run automatically after the jailbreak, please share your solution.
How about we use something like a spreadsheet for this? A thread is pretty hard to navigate.
Here, I made a spreadsheet on Google Drive everyone can edit:
https://docs.google.com/a/silverblo...1vlWDspVdERIZlFHcnVhLV9EaDZIOEpqN2tQT1E#gid=0
Jimm98y said:
That feature is apparently implemented and it is working like a charm, all you need to do is to run the c:\x86node\windows\autostart_x86.cmd after the jailbreak. I was unable to do it automatically because I haven't found a way to schedule a task after another task completes. If you manage to schedule it to run automatically after the jailbreak, please share your solution.
Click to expand...
Click to collapse
Herp derp, I can't read changelogs. Thanks for pointing that out. As restitution, I shall attempt to get the automatic launching of the automatic launching working. I'm betting I can do it by tinking with the jailbreak task itself.
The jailbreak will run commands that are either put in its startup folder or added to the registry keys:
HKLM\Software\Jailbreak\RunOnBoot\
HKCU\Software\Jailbreak\RunOnBoot\
Add them as REG_SZ values, you can set the name to whatever and set the value to the command you want to execute.
{
"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"
}
Like that.
Edit: Now that I look at it the 'RunOnBoot' name isn't the most accurate, but whatever, it works.
Fallout 2
Tested on a Russian localized version by 1C.
Game installs fine, but you can't change the installation folder.
Game requires 640x480 mode, so on Asus VivoTab RT with the recent video driver update you'll need to edit registry as noted here: http://forum.xda-developers.com/showpost.php?p=40959944&postcount=12
High resolution Fallout2 patch is useless. It works, but the game speed becomes too slow to be playable. To try hires mod - copy d3dx9_31.dll from a recent DirectX distribuition to the same directory as a patched fallout2.exe (D3D mode is not working, this DLL is needed by the patch to load), or you may use the attached DLL.
Keyboard hotkeys should be working in Win86emu 0.06+. The attached DLL is not needed since 0.06 for HiRes mod. Only the "normal" hires mode is available due to bug, it would be fixed later.
Double note: hires mode is too slow to be playable.
Thank you very much, it works! How exactly were you able to run the game with the High Resolution patch? I tried it, but the emulator gives me a message that it could not run the exe and then starts the game without the patch. Does it need the DirectX 9 redistributable? The timestamp of the file changes each time I configure it in the high resolution patch configurator - I have the version 1.02US.

[BETA] RT Desktop Store (moved from RT General forum, NOT Subvert)

(got enough posts so I could move this thread here)
{
"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"
}
Desktop Store
(didn't habe the brains to come up with a nice name like "Subvert", if you have something good in mind, tell me, but I still would be glad to merge with toxickills project, even if it's only for the cool name )
Screenshots
Program Download Links:
RT Desktop Store Installer
Features
50 apps packaged
install/uninstall packages
all items on the startpage get shuffled
tile creation
start apps directly from the store
Todo
sometimes uninstalled packages are still displayed as installed (restarting the store currently fixes this)
tile management (delete, check for already existant tile)
add store tile to the start screen
add screenshots to existing packages
pack the remaining packages
distributed repositories
package/installation updates
and much more - if you have ideas, tell me
How can you help?
If you would like to help me with the packages until I release the package manager: send me screenshots from the packaged applications available in the store, as this is hard for me to do (I don't even use every application myself).
Here are some criteria for screenshots I would like you to check before sending them to me:
make the size exactly 1366x768 or 683x384, so that they don't scale bad in the screenshots control
If the app can't run fullscreen or maximized window, its always nice to have the pc property window in the background showing the Windows RT logo text
you can also make only screenshots from the application window itself and place them on a canvas complying to point 1., maybe applying a nice dropshadow
don't edit the screenshots in any other way, let them look natural
and if you can: screenshot them in a productive/properly used scenario, that's always the best to see
Mail adress should be viewable in my profile, just sent it there, or if you have mailbox space issues, sent me a link to the screenshot(s), Thanks!
Further information:
Pretext
Hey guys, so i have been sitting some hours and tried to take up what djboo (thread) had no time to continue on.
I've build a little RT Desktop Store based on his idea on getting a repository to present packages and let you download them via a custom store client.
If you are confused: No this is not the store called "Subvert" build by Toxickill, which he posted on this thread.
So what's the reason for this "duplicate" ? Well i wrote my own store during the same time Toxickill did, but when i released my first screenshots, i saw he had released his first beta only a few hours earlier. We used the same UI Framework it seems, so our applications even look similar. I wrote him asking what to do, if we could work together, etc. because it would be dumb not to use our resources together, to make this work for you even better. But since he hasn't been answering my PM and I don't have the permission to post in his development thread as of yet, I thought i could at least release what i have build so far, let you review it and maybe even Toxickill will notice me And if not? Well i don't mind doing this alone since I already spent all this time doing it this way, and im so glad of being able to give back something to the community (This is my first ever publicly released application!). If you like my store (or don't like it), please comment so that I can make it better
And while I'm on the road, i can as well earn my 10+ posts, so that i can post in the development threads
If you are interested in working together: i have setup a TFS on my server which we can use for working on this project.
Ok now for the application.
Concept
Basically, it's the same concept djboo originally pointed out: have a repository with packages, let a store client download, unpack and install them. So far so good.
I've gone a bit further and tried to make the client look & feel like the normal windows store app (still a lot to be done, but it really looks alike).
The current repository is hosted on my server. While i have plans to release my the package creator too, i will first release the client, because the package creator is not that, erm, user friendly right now. In fact i have, because of my store client design, divided packaging and the repository, because the basic packages that can be build contain more that what is needed to simply install the application. After building a package you can add it to a repository (using a repository manager) which then will unwrap all that is only needed for the store client presentation of the package (tile images, screenshots, etc.) and present the rest of the package as downloadable file for the store client.
If you want to see it, here is a screenshot from my package builder application that I will release once all the applications available have been packaged and added to my repository (thinking of a simple package creation service that spawns new guids, so that ppl creating packages for the same application will get the same application guid to prevent presentation of duplicate entries by the store client)
Installation & Files
First and foremost: you need to jailbreak your device (Windows 8.0 only, hopefully 8.1 will follow soon)
To install the store client, simply download and run this Installer from my server.
The store client will get installed under your Program Files folder, creating a new Folder named "RT Desktop Store". Installation consists of 2 steps:
The Installer downloads and then and runs the launcher for the store client
The Launcher downloads the latest store client files and starts the RT Desktop store (this will happen every time you start the store client)
Packages that you install from the store will not be installed under your Program Files folder, but a Folder called "Program Files (RTDS)" (same parent directory as your Program Files folder). This is for not confusing the packages installed from the store with any existing applications in your Program Files folder. Uninstallers for all all installed packages will be held in the "__storepackages" folder of your RT Desktop Store installation directory (like C:\Program Files\RT Desktop Store\__storepackages).
If you install an app, the store client will also create a Tile on your start screen, using the command line interface of OblyTile - if a tile is supported by the package. If no tile is specified by the package, the application will start after installation, so that you can at least pin it directly to your task bar. Unfortunately, programmatic removal of tiles via OblyTile is not possible as of yet, so you would need to unpin them yourself. The same goes for checking of already existing tiles. The same tile will just get created a gain. But the will most likely be pointing to the same file, so just delete all but one of the tiles.
Shortcuts
As long as i dont release a proper installer that creates shortcuts, start menu entries and/or a live tile, you will have to pin the store client yourself. I recommend you to create a shortcut to "RTDStore.exe", not "RTDStore.Launcher.exe", because the launcher application may get renamed during an update process. That aside, it doesn't matter if you run the launcher or the store client directly, the launcher will be called either way to check for updates.
Packages
I have yet to package every application that has been ported already, but i got roughly 1/3 of them already packaged (they may not all include screenshots, tiles etc, but that will follow this week, along with the remaining ported apps i think.
Finally
Have fun and i hope everything works well. If you experience any errors, please comment here or sent me a PM, so that i can fix them and let the new versions get pushed to you by my launcher as soon as possible
Disclaimer
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
NICE WORK BRO!!!
Question) after installing an app though your store, could we specify the desktop-shortcut-Icon in your package Manager? (Im asking this because some of my Projects use a cmd file to start the app, and the Icon is pretty boring)[subvert has NOT this Feature]
Cheers
Blade
EDIT:
Just tested it. it Looks AWESOME
Notes:
-No Settings available (how to add own repo-URLs?)
-We Need your Package-Manager
Improvements:
-small visual bugs while going through. Perhaps you can include a "wait-till-loaded"-function, this will solve all visual bugs and make it all soo much smoother
-Possible to add "touch-scrolling"? that would be soo cool, if we dont Need to use the scrollbar at the bottom and are able to also scroll via dragging in the middle...just like the real store
(also the scrolling brings visual bugs while moving. Bug disappear on stopping...)
I think this has got a HUGE potential! Please Keep it up the good work.
BIade said:
NICE WORK BRO!!!
Question) after installing an app though your store, could we specify the desktop-shortcut-Icon in your package Manager? (Im asking this because some of my Projects use a cmd file to start the app, and the Icon is pretty boring)[subvert has NOT this Feature]
Cheers
Blade
Click to expand...
Click to collapse
Hi Blade! (Cheers from Cologne)
If I understand you correctly, you use some kind of launcher for some of your programs, which in turn starts your program (i guess you mean something like ClassicStartMenu, where you need to restart the explorer after launching the start menu, because otherwise it won't show up in the taskbar). And because of this, you pin, of course, your launcher to the desktop instead of the program that's getting started - makes sense. In my package manager you can specify a list of applications that are included in the package and, as of now, a small and normal sized tile for OblyTile to generate the start screen tile for each application. I guess i could extend this to support desktop shortcuts, but would have to look into the windows shortcut file format (.lnk) - which I had planned anyway, because I need more control over the created tiles than simply creating them, and they're essentially .lnk files, too. Currently you can put a launcher in the package and run it via the tile that will get created for it - I will show you how that works once I've released the package manager.
BIade said:
EDIT:
Just tested it. it Looks AWESOME
Notes:
-No Settings available (how to add own repo-URLs?)
-We Need your Package-Manager
Click to expand...
Click to collapse
As I've written in my todo-list above, distributed repositories are yet to come, I just have to find a way to make the packages unique - maybe by providing a packaging service for the package manager, that spawns a GUID for a given application name, so that the same package doesn't get listed twice in the store. But that in turn would create a new problem: how do you decide from where to get a package? As there is no real server behind an application that could work as some kind of load balancer. I would display a message from which hosting the package is being retrieved upon installation, but rather not show them as separate repositories in the store. But I think it would be reasonable to give the user the opportunity to select from which repository to get the package if he wants to install it - if a package is broken, or not available on the repository automatically selected by the store.
But furthermore, what about a package where someone includes a nice launcher and someone else doesn't? Need to think about it.
Today I will try to get over with packaging most of the remaining apps. After that's done, I will take up getting the package manager ready to release accompanied by a distributed repository mechanism, as those two go hand in hand.
BIade said:
Improvements:
-small visual bugs while going through. Perhaps you can include a "wait-till-loaded"-function, this will solve all visual bugs and make it all soo much smoother
Click to expand...
Click to collapse
Yeah I did most of it with the new async-feature of C#, for the smaller installations that works perfectly, but larger ones make the application hang - that was to be expected because async just executes on the GUI thread too, just does lazy evaluation. I already moved a part of the installation to background threads, but will move the whole thing. And the last few days were just dirty hacking, so i don't have a centralized installation overview as of yet, that's why the installation messages start bugging once you switch to another app page.
BIade said:
-Possible to add "touch-scrolling"? that would be soo cool, if we dont Need to use the scrollbar at the bottom and are able to also scroll via dragging in the middle...just like the real store
Click to expand...
Click to collapse
I guess that's somehow possible, just wasn't on the top of my list.
BIade said:
(also the scrolling brings visual bugs while moving. Bug disappear on stopping...)
Click to expand...
Click to collapse
I daresay that's an issue with the not-so-lightning-fast ARM processor, as this runs perfectly fine on my desktop pc. Surely GDI+ related, but i guess there is something that can be done for some smooth animation.
BIade said:
I think this has got a HUGE potential! Please Keep it up the good work.
Click to expand...
Click to collapse
Thank you very much!
Cheers back from Cologne
For the repos:
Adding a Settings-tab with a list of repos, where only your repo is listened, but where users can add/delete custom repos.
For the "not duplicated" and the "from whom" problem:
Custom-repos could get their own tab like:
[Available(perhaps rename it to "Main") | Custom1 | Custom2 | Installed | Settings]
And Custom-Titles could been set in settings to make it look like:
[Main Apps | Blade's Apps | xda-Apps | Installed | Settings]
Totally off topic:
On the 12.12 I write an important exam in the uni. But after that I would like to meet you for a coffee, if you want. Since we both live in cologne, perhaps we can share some ideas or/and learn something from each other. I would love to help you with your store, and perhaps i got some cool stuff for you:
(ps3-hacking, Android-app-development, Micro-controller-programming, home-automation, and many many more....)
Your idea for the different repositories is quite nice, I will implement this soon, as it will be quite easy I think. But for the long run I will still be looking for a more integrated solution.
Offtopic too:
Sure why not! Just PM me the details of the approximate when and where and we'll go for it You can also write your PM in german
Hit the 50 packages mark! Hurray!
And ~160 RT Desktop Store Downloads!
If you would like to help me with the packages until I release the package manager: send me screenshots from the packaged applications available in the store, as this is hard for me to do (I don't even use every application myself). Here are some criteria for screenshots I would like you to check before sending them to me:
make the size exactly 1366x768 or 683x384, so that they don't scale bad in the screenshots control
If the app can't run fullscreen or maximized window, its always nice to have the pc property window in the background showing the Windows RT logo text
you can also make only screenshots from the application window itself and place them on a canvas complying to point 1., maybe applying a nice dropshadow
don't edit the screenshots in any other way, let them look natural
and if you can: screenshot them in a productive/properly used scenario, that's always the best to see
Mail adress should be viewable in my profile, just sent it there, or if you have mailbox space issues, sent me a link to the screenshot(s), Thanks!
Hi
Tried to install it today but cannot.
My device is nokia lumia 2520
Before installation i did jailbreak, looks done well.
When im trying install desktop store getting info there is it not possible, please visit market etc.8
wojtas29 said:
My device is nokia lumia 2520
Before installation i did jailbreak, looks done well.
Click to expand...
Click to collapse
You didnt do the jailbreak then. the jailbreak works on RT 8.0 only, it does not function on 8.1 and the lumia 2520 comes pre loaded with 8.1.
wojtas29 said:
Hi
Tried to install it today but cannot.
My device is nokia lumia 2520
Before installation i did jailbreak, looks done well.
When im trying install desktop store getting info there is it not possible, please visit market etc.8
Click to expand...
Click to collapse
Just as SixSixSevenSeven mentioned: if you didn't downgrade your lumia to Windows 8.0 (don't know if it's possible), it won't work. Maybe you ran the jailbreak, but it failed for sure. If not, this would be breaking news for Myriachan and the others xD
Short update:
I'm currently working an a packaging modification. I'll package the apps directly as .appx files using the windows store package builder shipped with visual studio. Toxickill told me, that despite this, the Original Windows store won't install the packages directly, so I'll be building an appx installer afterwards. And if we ever get the Windows Store to install our custom .appx packages without a custom installer, we will already have the correct package format Furthermore, the windows store package format is quite convenient regarding structure of package information and files. And in any case better than me trying to reinvent the package-format-wheel.
For the store client/repositoriy, the packages will be wrapped with additionaly info (images and other stuff, and I'm modifying my package builder to be a combination of the visual studio built-in package manifest editor and the devcenter web page for publishing windows store apps (some of you may know what I'm talking about, the others will just get to see the new package builder in a few days^^). This way, ppl can create packages of ported apps, without needing their own repository to publish it, but send it to someone hosting a package repository, who can simple import the package, which then gets unwrapped and put into the repository, presenting it's information to the store client.
In my opinion, microsoft has done some nice work, streamlining the app creation and publishing process for the windows store. And by trying to comply to their application, packaging, redistribution standards, I hope we may be able to get something out of them regarding jailbreak and such, making them see, that, if correctly managed, desktop apps are not lowering the user experience on windows rt at all, but are an enrichment instead
Fasin said:
if you didn't downgrade your lumia to Windows 8.0 (don't know if it's possible)
Click to expand...
Click to collapse
It isn't possible unfortunately :/
SixSixSevenSeven said:
It isn't possible unfortunately :/
Click to expand...
Click to collapse
That's rather unfortunate :/ Then the only hope for you, wojtas29, is the next jailbreak...
Just to let you know, I'm not dead yet Sadly I don't get as much time as I would like to. I'll package some more apps when I have some spare minutes at work this week and hopefully I will get a huge step done with the package manager this weekend, so that you can use it. Bear with me
Yeah!
Inviato dal mio Nexus 4 utilizzando Tapatalk
not installing on surface rt
I don't if your still working on this project or not but I need your help!!
I can't install this app on surface rt 8.1 jailbreak.
when I want to run this app it sez "this app can't run on your pc to find apps on this pc, open the windows store."
and then I tried to open it using the x86 emulator and then the notepad opened. at the last line it seas :
[ 6500]E: Error loading program: 1168
(I don't known if this in the emulator error or D.stores error.
helllllp!!!!
Dead horse LoL
Anyway, I did get the installer to launch after signing the file using the 'signtool', however it looks like the dependencies aren't available (probably dead server). Stuck at 'Downloading Launcher' ... 0/0B
Windows 8.1 Jailbroke.
Happily, the 2017 community edition of Visual Studio still let's us compile apps as 'Any CPU', so at least I can still build stuff.
brandoncomputer said:
Dead horse LoL
Anyway, I did get the installer to launch after signing the file using the 'signtool', however it looks like the dependencies aren't available (probably dead server). Stuck at 'Downloading Launcher' ... 0/0B
Windows 8.1 Jailbroke.
Happily, the 2017 community edition of Visual Studio still let's us compile apps as 'Any CPU', so at least I can still build stuff.
Click to expand...
Click to collapse
hey did you get it to work Im having the same problem .
trying this in 2019 on my surface RT Win8.1 jailbreak with no luck. Is the app dead?
frayes said:
trying this in 2019 on my surface RT Win8.1 jailbreak with no luck. Is the app dead?
Click to expand...
Click to collapse
Yes
frayes said:
trying this in 2019 on my surface RT Win8.1 jailbreak with no luck. Is the app dead?
Click to expand...
Click to collapse
It says it can only work on Windows 8.0, not 8.1. Did you also try that? I want to try this on my RT too but I am reading into the downgrade first.

[ROM][Discontinued] ArchiDroid [CM_ROM][GCC 4.8][Flexible] [V2.5.1] [15/07/14]

{
"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 <- || Change to ArchiDroid 1.X
A Port of JustArchis Rom to our S3 LTE
Changelog
ArchiDroid 2.5.1
- ArchiDroid_Init code review
- ArchiDroid_RunOnce code review
- Fixed ArchiDroid backend not being executed in some scenarios
- Updated all ArchiDroid backend tools to latest versions
- Updated PA GAPPS to 8 July
- Reverted back to official Google PlayStore # This means that multi-dpi patch is not included anymore in the app itself, use xposed module or patch yourself
- PlayStoreFix is now included with Xposed
- App Settings is now included with Xposed
- Updated BetterBatteryStats to 1.16 RC5
- Updated XPrivacy to 2.1.24
- Updated GravityBox to 3.2.5
- Updated sources
Download
All Files Dev-Host
ArchiDroid-20140715-i9305-2.5.1-Experimental: ArchiDroid 2.5.1 Dev-Host, Mirror: Mediafire
Oldstable: ArchiDroid 2.4.6 Dev-Host
Remember that you don't need anything else to flash. Google Apps are included already.
Recovery-Philz_Touch_6.41.6: http://www.mediafire.com/download/?rf75pfrp34zws7b
Known Issues
All known and unknown CyanogenROM 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 initialized!
UPDATE INSTRUCTIONS
- Download the latest build of ArchiDroid ROM
- Take a nandroid backup
- Flash ROM using recovery and aroma installer
- Reboot
- Enjoy!
Known Bugs:
none...-> tell me if any.
In Aroma Installer you can select for example:
- 3 different Kernels: Boeffla, Angi and Cyanogen Stock
- different Launchers
- different Keyboards
- different Bootanimations
- many additional apps
- to add nav bar
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] [GCC 4.8] [Experimental] [Flexible] [Excellent] [27/06/14] ArchiDroid V2.5.1 | Power In Your Hands, a ROM for the Samsung Galaxy S3 LTE I9305
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
Created 2014-05-01
Last Updated 2014-07-15
[ROM] [XXUEMKC] [4.3] ArchiDroid V1.7.15 [25/05/14] & FAQs
Clean | Stable | Flexible | Optimized | Excellent
-> ArchiDroid 1.X <- || Change to ArchiDroid 2.X
INSTALLATION INSTRUCTIONS
Be aware that this ROM includes Knox!!!
So your counter will be increased to 1
- 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
4.- After rom is up, led it settle and start SU app to led it deactivate Knox
Changelog
Sammy_ArchiDroid 1.7.15
- Initial release
- removed S5 Theme, because of systemui fc
- Boeffla Kernel as default
Download
Download: Sammy_ArchiDroid-XXUEMKC Dev Host
Known Issues
All known and unknown Sammy bugs (if any)
Wifi strength is a bit low
[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
- Boeffla Kernel-> @Hbohd plus his team not only because he was the first who ported and provided us a kernel for JB 4.3 and is doing it till today!!!
- Angi Kernel -> @psndna88
- 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
ArchiDroid 1.X
- SamMobile
- JustArchi's Android Kitchen & dsixda's Android Kitchen
- Boeffla Kernel
- Yank555.lu Kernel
- KitKat Revolution Theme
- Blue Theme
- All Backs Black Theme
- Wanam Xposed
Special thanks to:
- Kenshin, for graphic design and ArchiDroid Touhou bootanimation
- @mrtur, for graphic design and helpful hand during ArchiDroid experimental tests
- @malachow, for helping users across both international and polish board, sharing the spirit of ArchiDroid
- All ArchiDroid Contributors, for improving and making ArchiDroid better!
- ArchiDroid Facebook Group, for beta-testing the very first alphas of ArchiDroid 2.0.0
- ROM Cleaner, for awesome generic list of bloatware
- Android Revolution HD, for being ex-ArchiDroid 1.X base
- WanamLite, for being ex-ArchiDroid 1.X base
- Temasek's Unofficial Build, for being ex-ArchiDroid 2.X base
- crDroid, for being ex-ArchiDroid 2.X base
- You, for choosing ArchiDroid over other available ROMs
So finally finished
looks good bro, keep up the good work :good:
Thanks...yes and high five ...fortunately today is public holiday here in germany I got some time !
Awesome, I tried porting using porting guide before but unfortunately it didn't boot compiling from source is probably the way to go, I guess. Thanks very much @rodman01 and @JustArchi!
ohh typo in thread under the xda Dev
his Rom is an official kanging of i9300 <---- link has extra h in the http
chongc1996 said:
Awesome, I tried porting using porting guide before but unfortunately it didn't boot compiling from source is probably the way to go, I guess. Thanks very much @rodman01 and @JustArchi!
Click to expand...
Click to collapse
yeah tried that too, unfortunatly didnt boot. now im trying to build from source with VirtualBox Ubuntu, of course getting help from some guys like my neighbor Rodman, great guy btw! :laugh:
Nice looking ROM
I ran this ROM on my S1, nice to see it on the S3LTE now.
Thanks
For me it's better to port Archis 1.X rather than 2.X. We are still lacking of stable roms on our devices.
Waiting for boot fix since it's not booting ATM.
Wysłane z mojego GT-I9305 za pomocą Tapatalk 2
Perhaps I will do the 1.X too, because I am interested in too. But nor sure when...
painball said:
For me it's better to port Archis 1.X rather than 2.X. We are still lacking of stable roms on our devices.
Waiting for boot fix since it's not booting ATM.
Wysłane z mojego GT-I9305 za pomocą Tapatalk 2
Click to expand...
Click to collapse
Not sure if it doesn't boot, it should boot, me and maho_66 were talking about our own attempts to port this. You should give it a shot!
Sent from my GT-I9305 using XDA Free mobile app
rodman01 said:
Perhaps I will do the 1.X too, because I am interested in too. But nor sure when...
Click to expand...
Click to collapse
Get in touch with my ArchiKitchen if you wish to make 1.X release.
http://forum.xda-developers.com/showthread.php?t=2597220
Basically:
1. You download any Samsung release in .tar.md5 format for Odin.
2. You extract from this .tar.md5 system.img boot.img (cache.img modem.bin - these are optional)
3. You load it with ArchiKitchen and you make deodexing, rooting, busyboxing, zipaligning and ArchiDroid init.d.
4. Then you create a ROM from AK and the effect should be similar to my base release: http://forum.xda-developers.com/galaxy-s3/general/rom-sammys-stock-deodexed-rooted-t2682453
5. You put in in the ADROOT and you run known magic build.sh script with "sammy" parameter - "bash build.sh sammy"
6. It should start extracting and replacing everything, as you know .
What is a difference with sammy and no sammy parameter?
- When building in sammy mode, build.sh doesn't compile anything and jumps straight to extracting .zip
- It also applies some sammy-related misc tweaks like ArchiDroid wallpaper, because this requires putting image in .png format in framework-res.apk
The fact that its not booting has i.m.h.o something to do with the correct/missing libs and or wrong permissions, for someone who is new to all of this its very frusturating i know, but you could give it a try whe sure need more stable roms i agree
Sent from my GT-I9305 using XDA Premium 4 mobile app
@rodman01
https://github.com/JustArchi/ArchiDroid/commit/14739db139ca50eedbfef5b26ac2933a24c70cf5
This should make you happier .
Make sure to check RunOnce Init and Cron logs after you merge upstream.
2.X works a great here.. Many customizations very smooth battery friendly.. Illl be sticking with this for the time being for sure.. Great work mate!
Sent from my GT-I9305 using XDA Premium 4 mobile app
The lockscreen notifications commit to omni hasn't been merged as of yet, I'll be watching until it gets merged
Sent from my GT-I9305
Performance wise this is definitely the best ROM out for the 9305 and I've tries them all.... Highly recommended !!
Sent from my GT-I9305 using XDA Premium 4 mobile app
Has anyone worked out a way to add different quick tiles?
Sent from my GT-I9305 using XDA Premium HD app

Categories

Resources