[Dev] Kernel code execution - Windows RT Development and Hacking

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

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.

[Release] RT Jailbreak Tool

RT Jailbreak Tool
By Netham45, Version 1.20
An all-in-one program to jailbreak Windows RT tablets using the method recently released by clrokr​
Usage
Boot your RT device and log in, allow it to sit on the desktop for about a minute.
Extract all files out of the latest version of the .ZIP attached to this post. To do this on Windows RT, right-click on the .zip, choose 'Extract all', and select the destination folder.
Run runExploit.bat. It'll prompt you to either install the jailbreak to run on login, uninstall it not to, or run the jailbreak once.
Choose an option and follow all subsequent prompts. They're all quite easy and self-explanatory.
FAQ
Q) What does this do, in layman's terms?
A) It allows non-Microsoft ARM-compiled .exes to run on the desktop. That is it.
Update (03/01/2013): The jailbreak now allows unsigned drivers to load.
Q) Can I use this to run Photoshop, Steam, AutoCAD, <Insert commercial product here>?
A) While it is -technically- possible for the companies to port their stuff over to Windows RT using the hack it is extremely unlikely. As a rule of thumb, if it's a commercial piece of software it won't run on the ARM.
Q) Can I use this to run PuTTY, VNC, X-Chat, <Insert open-source product here>?
A) Yes! Open-source programs are ones that you, having the source code, can recompile to work on the ARM. If it's not already available (A small but growing number of programs are) it's easy to get started. There are some useful threads in the Windows 8 Development and Hacking board on XDA-Developers.
Please note that not all programs can reasonably be ported over to ARM, due to either program complexity, overuse of inline assembly, or the current lack of a GNU Compiler
Q) Can I use this to run any random x86 app I find on the internet?
A) No. Apps must be recompiled for ARM. Stop asking why Chrome doesn't run.
Q) Can I use this to hack my Android tablet?
A) Not really. Most Android hacks require custom kernel-mode drivers (APX, Odin, ADB all require drivers that are unavailable), and this hack only allows us to run unsigned User-mode code.
If you don't know the difference between User-mode and Kernel-mode, I'm sure Wikipedia has a good article on the subject.
Q) Will Chrome/Firefox be ported over?
A) I don't see any major technical hurdles for those, but I probably won't be the one to do it.
Q) Are there any precompiled apps for this available?
A) Check out THIS THREAD for a list of all currently known compiled apps.
Q) I ran the jailbreak, now where can I download pirated apps from?
A) Nowhere. This jailbreak does not allow for pirated apps, and it is a long ways off from actually supporting pirated apps. If you manage to get pirated apps to run on Windows RT you will be doing the entire community a large disservice, along with ruining what credibility this hack may have in Microsoft's eyes.
Q) I don't know how to recompile code, can I get someone else to do it?
A) If it's a simple project you can likely find someone who will be more than happy to recompile it for you. If it's a large project with numerous dependencies, or a commercial project, I will be willing to take a look at it and quote a price to do it. (On that note, please realize that I am not affiliated with XDA-Developers at all.)
Q) I keep BSoD'ing! What's up?
A) I haven't managed to track down the cause of the BSoDs, except that they seem to happen when the exploit is ran within the first minute or so of the tablet booting and logging in. If you're getting BSoDs, boot your tablet to the desktop and wait 2 or 3 minutes before trying the exploit. Also, make sure that you're up to date with Windows Updates, as of 2/26/2013.
Q) I ran the .bat and it told me it couldn't find it's bin folder. What's wrong?
A) Extract the ZIP in entirety. Don't just open the ZIP and double-click on the runExploit.bat.
Q) It's not working! What do?
A) Post in this thread describing what you're doing and the issue you're having, do not PM me, even if you don't have the number of posts to post in the developer sections. I'll consider it spam and disregard it. Don't message me on Twitter either, the only place that I will provide support for this tool is in this thread.
Q) Is this persistent across reboots?
A) No, it resets every time the device reboots.
Q) Is this a tethered exploit?
A) No. Tethering is connecting the device to a computer, or other device to jailbreak it. This is done entirely on the device. It just has to be redone at reboot.
Q) Will this work with all the latest updates, as of 02/26/2013?
A) There was an updated .zip posted for the latest update (Patch Tuesday, Feburary 2013.) It should work.
Q) How do I compile apps for the Surface RT? It says I'm missing a bunch of .libs!
A) Visual Studio 2012 does not come with all the required ARM .libs for compiling most desktop apps. Please see THIS post by _peterdn for a useful utility for generating .libs and .exps from the .dlls on the tablet.
Q) Why would you want desktop apps? They suck for touch.
A) Mainly for the library of easily ported software, along with the things that metro apps just can't do. I agree, they're more inconvenient to use with touch, but that's the tradeoff for having a huge library of software. You also don't have to use desktop mode, the tablet still is quite good without it (Except the mail client). I also believe that since it's my device I should be able to do whatever I want with it, regardless of what MS says. Traditionally MS has leaned the same way with Windows, which makes it rather disappointing they chose to lock this platform down.
Q) Will this void my warranty?
A) Since it doesn't persist across reboots chances are the support center will never know, though it may be against the terms of your devices warranty.
Q) Is there any warranty for this program?
A) No express or implied warranty exists.
Q) Your hack caused the paint to chip off my tablet, the felt to peel off my type keyboard, the kickstand to fall off, and my tablet to display nothing but satanic messages while it's on! I want you to buy me a new one!
A) No it didn't, and see my warranty policy.
Q) Can Microsoft patch this?
A) Yes and no. They can patch it through Windows Update, but since we have the ability to reinstall from recovery partitions we can revert any Windows Updates they release.
Q) Will this allow people to run viruses on my tablet?
A) Yes and no, if something malicious is compiled and ran while jailbroken it could act like a virus, yes. Once you reset, though, it'll be gone.
Q) I came across a malicious RT application! Who do I tell?
A) If it's a jailbroken application then the most you can do is make a post informing about it. That's one downside to having unsigned code, there's no one regulating body who can decide what is and isn't available, and manage safety. If it's a store application then I suggest you contact Microsoft. If it's a Modern UI app that requires the jailbreak to run you still may have luck contacting Microsoft, as they can blacklist the developer's certificate.
Q) Can any random Store app do this?
A) No, this requires tools and privileges that Windows Store apps can't possess. The appcontainer model that MS uses is very strict and good at preventing things like this from happening. There's a number of things that flat-out aren't possible to do from a Store app that this uses, not to mention that it would get rejected by MS.
Q) Will I (The user) get my developer license banned?
A) It's possible, though I doubt that MS will do that.
Update: With the new payload (as of 1/18/2013) users no longer need to get their own developer certificate.
Q) Won't you (Netham45) get your developer license banned?
A) Time will tell, I knew the risk when I posted this. I suspect that their banning system is more geared towards piracy, though, which this doesn't really enable.
Update: With the new payload (as of 1/18/2013) my developer certificate is no longer required.
Q) I've got this great feature/idea for the jailbreak! Where can I tell you at?
A) Post it in this thread. Note that the area where we can script and such before the exploit is limited and restricted to pretty much batch scripts, and that I am under no obligation to implement a feature if you suggest it. And, seriously, do not PM me about it. If you don't have the prerequisite number of posts to post in the developer section then go get them.
Q) Can I throw money at you for writing the tool to automate this?
A) There's a donate link on the side of this post. (I'd love to get a Surface Pro. )
Q) Can I throw money at clrokr for documenting the exploit?
A) You'll have to talk to him about that.Here's his profile.
FAQ last updated 2/26/2013 10:17 PM MST
Thanks to clrokr for documenting the usage of the exploit, and to the numerous people who contributed positively in the [Q] Hacking Windows RT to Run Desktop Apps thread
Download is attached to this post.
Update log
Update 1.01(1/10/2013): Uncommented pause in the PS script to install the ModernUI app -- It was causing it not to prompt to install a developer license/my cert for some reason.
Update 1.02(1/10/2013): Fixed issue on non-English devices.
Update 1.03(1/11/2013): Fixed issue with usernames with spaces in them, fixed issue where the user running the jailbreak isn't the first user logged in
Update 1.1(1/18/2013): Redid functionality; it now gets the kernel base inside the payload, instead of requiring a Metro application. Added a startup folder that gets ran after jailbreak. Cleaned up output. Click for more info
Update 1.11(1/18/2013): Added commandline options, added a simple interface to handle creating scheduled tasks to run, added a powershell script to keep it from running if the system hasn't been up for two minutes, added missing startup folder, added sanity check so it doesn't freak out if the startup folder isn't there
Update 1.12(2/12/2013): Fixed the scheduled task to not require AC power to run, tweaked script to not crash on latest patches, Fixed startup folder not getting executed properly
Update 1.12a(2/12/2013): Fixed it to actually work on the latest updates. Oops.
Update 1.13(2/14/2013): Added the ability to dynamically get the signing level. It now requires internet on the first launch, and after an update changes ntoskrnl.exe. This version is slightly experimental, so if it doesn't work use one of the older versions.
Update 1.13a(2/15/2013): Tweaked the script to return from the hook in a way that seems more robust. If 1.12a or 1.13 work for you there's no need for an update.
Update 1.20(3/01/2013): Made the bat use registry keys instead of files in system32, added registry-based startup folder, altered payload to support unlocking kernel-mode code
Click here to download the latest version​
Older versions may be downloaded here
(Note: If you wish to mirror this post please retain a link to it at http://forum.xda-developers.com/showthread.php?t=2092158 so users can always get the latest version.)
Nice job! Good to have an all-in-one. Is this tool using the decrement by 0x80000 or trying the option of a slightly lesser decrement?
Also, it would be good to have a unified selection of RT-compiled desktop apps. I'm working on porting Pidgin (the Windows Store IM clients kind of suck...) but it's not easy; the "build under Windows" instructions boil down to "make your Windows system as Unix-y as possible, then build it there". There may be a way to target RT from GCC, but I am not aware of it.
EDIT: What I meant to say is, perhaps a thread linking all the various apps that people have built (preferably with links to their source, for those of us mildly paranoid types who like to see what other peoples' code is doing on our systems) would be a good idea.
GoodDayToDie said:
Nice job! Good to have an all-in-one. Is this tool using the decrement by 0x80000 or trying the option of a slightly lesser decrement?
Also, it would be good to have a unified selection of RT-compiled desktop apps. I'm working on porting Pidgin (the Windows Store IM clients kind of suck...) but it's not easy; the "build under Windows" instructions boil down to "make your Windows system as Unix-y as possible, then build it there". There may be a way to target RT from GCC, but I am not aware of it.
Click to expand...
Click to collapse
I'm decrementing by 0x7EFF0, it seems to not get the 0x18 bugcheck at all with that number. The one it gets if you run it too soon is a different bugcheck.
Install Fails
Brilliant!
I tried running it but it keeps going in an endless cycle because the Metro app fails to install.
Using a Surface with the latest patches from Microsoft.
merill said:
Brilliant!
I tried running it but it keeps going in an endless cycle because the Metro app fails to install.
Using a Surface with the latest patches from Microsoft.
Click to expand...
Click to collapse
Does it give you any error messages when it fails to install?
netham45 said:
Does it give you any error messages when it fails to install?
Click to expand...
Click to collapse
When installing the metro app, the installation fails because the certificate isn't added to the cert-store by default and the batch just tries again.
I uncommented the #Pause in PrintMessageAndExit to read the error message and that made it possible to choose to install the certificate, the powershell just closed otherwise.
After that the metro app installs fine, and tries to start it. I can see the app start, though the cmd still doesn't recognize it and tries to install it again...
I wrote my own metro app for that today and installed it instead of yours and it worked fine with mine.
My App is just this:
protected override void OnFileActivated(FileActivatedEventArgs args) {
WriteAddress((StorageFile)args.Files[0]);
}
private async void WriteAddress(StorageFile file) {
using (Stream s = await file.OpenStreamForWriteAsync()) {
using (StreamWriter wrt = new StreamWriter(s)) {
uint adr = GetKernelAddress.Address.Get() + 0x19FFBC;
await wrt.WriteAsync((adr & 255).ToString("X2") + " " + ((adr >> 8) & 255).ToString("X2") + " " + ((adr >> 16) & 255).ToString("X2") + " " + ((adr >> 24) & 255).ToString("X2"));
}
}
App.Current.Exit();
}
Click to expand...
Click to collapse
sebmaster16 said:
When installing the metro app, the installation fails because the certificate isn't added to the cert-store by default and the batch just tries again.
I uncommented the #Pause in PrintMessageAndExit to read the error message and that made it possible to choose to install the certificate, the powershell just closed otherwise.
After that the metro app installs fine, and tries to start it. I can see the app start, though the cmd still doesn't recognize it and tries to install it again...
Click to expand...
Click to collapse
Having the same issue, uncommenting the pause seems to fix it all for me. I'll update the zip in the top in just a second.
Edit: New zip with that uncommented uploaded.
Metro app failed to run. Trying to (re)install the metro app...
Found certificate: C:\Users\Merill\Downloads\RT_Jailbreak\bin\ModernUI_App\Get Kernel Base_1.0.
Before installing this package, you need to do the following:
- Install the signing certificate
Cannot invoke method. Method invocation is supported only on core types in this language mode.
At C:\Users\Merill\Downloads\RT_Jailbreak\bin\ModernUI_App\Add-AppDevPackage.ps1:497 char:9
+ $IsAlreadyElevated = ([Security.Principal.WindowsIdentity]::GetCurrent() ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: ) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MethodInvocationNotSupportedInConstrainedLanguage
merill said:
Metro app failed to run. Trying to (re)install the metro app...
Found certificate: C:\Users\Merill\Downloads\RT_Jailbreak\bin\ModernUI_App\Get Kernel Base_1.0.
Before installing this package, you need to do the following:
- Install the signing certificate
Cannot invoke method. Method invocation is supported only on core types in this language mode.
At C:\Users\Merill\Downloads\RT_Jailbreak\bin\ModernUI_App\Add-AppDevPackage.ps1:497 char:9
+ $IsAlreadyElevated = ([Security.Principal.WindowsIdentity]::GetCurrent() ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: ) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MethodInvocationNotSupportedInConstrainedLanguage
Click to expand...
Click to collapse
Try the new zip I just uploaded, I believe I fixed that.
Edit: I see what happened. The file that MS distributes has a signature at the bottom which allows it to make unrestricted system calls and when I commented out the pause I broke that.
Very Nice job! Thank you again!
Yahoo!!! Works. Have PuTTY running. Now to get all ARM compatible apps in one place!
merill said:
Yahoo!!! Works. Have PuTTY running. Now to get all ARM compatible apps in one place!
Click to expand...
Click to collapse
Glad to hear it's working.
Now, 6 AM, time to go to bed.
merill said:
Yahoo!!! Works. Have PuTTY running. Now to get all ARM compatible apps in one place!
Click to expand...
Click to collapse
I agree! If anyone gets Utorrent working ill be eternally greatful
Sent from my HTC One X using xda premium
vincepg13 said:
I agree! If anyone gets Utorrent working ill be eternally greatful
Click to expand...
Click to collapse
With 7Zip, Putty and an .Net 4.0 FTP Uploader app... all I need now is a Transmission console and I no longer really need my laptop.
Would be great to associate .torrent with Transmission on the Surface.
What other "needed" apps that are projects (like SourceForge) that people can think of?
MediaInfo would be handy... wonder if it could also integrate with explorer...
Perhaps this discussion needs its own thread
I'm actually starting a thread for this topic... but since we're here, one thing that would be awesome (instantly add support for a ton of software) would be a Java runtime. Unfortunately, they're huge and complex beasts, and tend to either require assembly or be buildable only on Linux (sometimes both...).
in asus vivo tab rt , I can not go where I say,
please press the volume down now
Silverlight ideally. But it sounds like thats a no go.
Also Chrome or Firefox would be good!
Filezilla would also be nice.
Nice work guys.
It works, but I still get the SmartScreen filter when I try to run apps from Explorer. When I run them from command line, it works fine.
I believe there's a registry entry that needs to be changed, but I don't remember what it is.
randomned said:
It works, but I still get the SmartScreen filter when I try to run apps from Explorer. When I run them from command line, it works fine.
I believe there's a registry entry that needs to be changed, but I don't remember what it is.
Click to expand...
Click to collapse
in the pop up, click more info then click 'run anyway' - itll never bother you again for that app.
will this work with the latest updates installed

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

[DEV][ROOT] Pi-hole for Android // Deploy Pi-hole DNS server to ANY Android 4.x device.

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 ?

Categories

Resources