So this is probably a silly question.
I have this rather complicated app that would be a heck of a lot of work to convert to Java.
It runs in the command line and works fine in Linux.
Trying to run it fails, but x86 bytecode probably isn't very ARM friendly.
Is there a specific way I need to compile the application?
Is it even possible to run it from a console emulator?
Thanks.
Try Android NDK
I am also new to Android Dev ( 15+ years Linux, 10+ years Java, etc.)
I am not an expert but for your purposes you need the "Android NDK" in addition to the "Android SDK" that most developers utilize.
"The Android NDK is a toolset that lets you embed components that make use of native code in your Android applications.
Android applications run in the Dalvik virtual machine. The NDK allows you to implement parts of your applications using native-code languages such as C and C++. "
Basically the tools are needed to cross compile C++ source code for the target ARM environment.
I am prevented from posting the download URL for some bizarre reason, but it is listed under "Native Development Tools" on the left side of the web page for the standard "Android SDK" download.
Yeah that's because you are new. It's a system to prevent spammers from posting URLs.
When you have a couple of posts the restriction will disappear
Anyway; found it, seems to be what I'm looking for.
I'll check it out in the morning.
Big thanks
Dmitry Moskalchukhas written a patch for the ndk to better support c++ see crytax dot net there are posts on google groups android-ndk talking about it
Thxs for the info. I was aware that the NDK did not include all of the libs that desktop Linux/UNIX developers expect. The suggested patched version adds the STL libs back in.
Sent from my PC36100 using XDA App
There are A LOT of libraries missing
I guess I'll just keep it a hosted app.
Thanks for all the input
The purpose of this thread is to provide a list of desktop apps which have been recompiled to run on hacked Windows RT devices. A secondary purpose is to request or discuss such ports. Listing apps which run without recompilation (.NET 4.x) and providing libraries which are ported and/or known to work are also good uses of the thread. However, major apps, or those expected to lead to significant discussion, should probably get their own thread. Please help keep this one organized.
Please post links to compiled apps for Windows RT desktop, and if possible also link to their source code. I will make minimal testing of the apps before listing them, but nothing extensive; apps may have known or unknown issues, and it's even possible that somebody will link malicious apps here. Use at your own risk.
DO NOT request ports of closed-source applications! It's not possible (unless they're pure .NET 4.x, in which case they don't need to be ported) and you will look like a fool and waste your time. Additionally, at this time, code which requires GCC to build (i.e. can't build under MSVC) is impractical to port.
Latest changes
06 Apr: Updated link for IceChat to a newer version (thanks @TheExileFox!)
03 Sep: Updated the link for Process Hacker (thanks again, @bfosterjr!)
10 Apr: Added pForth and Python's LibFFI.
22 Dec: Added TeXStudio.
20 Dec: Added Nethack and Greenshot.
12 Dec: Added MicroEMACS. Updated Subversion and Notepad++.
21 Aug: Added AvP Classic.
20 Aug: Added Paint.NET, highlighted the step needed to use ClassicStartMenu.
16 Aug: Added Subversion and AutoHotKey.
10 Aug: Added Fossil.
22 Jul: Added ffmpeg, Halite, and Lua.
8 Jul: Added QupZilla, SPGT client, and QuiteRSS.
26 Jun: Added Snes9x, FileZilla, and WinMerge.
25 Jun: Added OpenSSL, QT4, and Perl, updated Synergy.
10 Jun: Added Coolplayer (Update: now with FLAC plugin).
7 Jun: Added GlDirect library and ioQuake3.
5 Jun: Updated link for Quake to the D3D version.
12 May: Added MFPDemo (sorry I was late posting it).
2 May: Added WinDjVu.
28 Apr: Added an updated version of MFC.
truncated...
Apps which have been recompiled:
Bochs. x86 Emulator. Known issue: no network support. http://forum.xda-developers.com/attachment.php?attachmentid=1625048&d=1357575232
TightVNC. VNC server and client. http://forum.xda-developers.com/attachment.php?attachmentid=1624600&d=1357561475
PuTTY Suite. SSH/Rsh/telnet client and helpers. Printing fixed in this build. http://forum.xda-developers.com/attachment.php?attachmentid=1637160&d=1357948281
7-Zip. Utility for file archives and disk images. https://mega.co.nz/#!FhQV3SZA!MWayY1mV4b7Bvjs9nJNq_yiQxDEaJFQpnnA3ZNApq7g
Notepad++. Powerful but simple text/code editor New update and Compare plugin. http://forum.xda-developers.com/showthread.php?t=2556112
SciTE. Code editor (http://www.scintilla.org/SciTE.html). http://fearthecowboy.com/stuff/wscite.zip (Thanks to XDA-Devs member FearTheCowboy)
IP Messenger. Peer-to-peer chat/file transfer (http://ipmsg.org/index.html.en). Binaries at http://forum.xda-developers.com/attachment.php?attachmentid=1633711&d=1357842066, source at http://forum.xda-developers.com/attachment.php?attachmentid=1633715&d=1357842310
Unikey 3.6. Known issue: without RtfIO, the "Toolkit" and "Conversion on the fly" features won't work. Older 3.1 build posted below https://dl.dropbox.com/u/8557161/rt/unikeyNT3.62_arm.7z (Thanks minhtuan99bk)
CrystalBoy. Nintendo Gameboy emulator. Known issue: uses GDI+ instead of DirectX, may reduce performance. Conflicting reports as to whether it works. http://sdrv.ms/11kcXXL Thanks to DXA-Developers member daveoggy.
ClassicStartMenu. Provides a hierarchical Start menu on the desktop taskbar. Restart Explorer after you run it! http://forum.xda-developers.com/attachment.php?attachmentid=1640579&d=1358061318 (Thanks Netham45).
Quake 2. First-person shooter game. http://forum.xda-developers.com/attachment.php?attachmentid=1640830&d=1358070370
OpenTTD. Open-source clone of Transport Tycoon Deluxe (transportation simulation game). Known issues and download link HERE: http://forum.xda-developers.com/showpost.php?p=36674868&postcount=151
DOSBox. DOS on x86 emulator. Updated again with better performance. http://forum.xda-developers.com/showpost.php?p=36620852&postcount=117
Node.JS.: JavaScript program/web server execution environment. Will be slower than usual due to lack of v8 JIT. More info: http://forum.xda-developers.com/showpost.php?p=36694633&postcount=1
FAR Manager. 2-panel terminal-based File/Archive manager (think Total Commander, etc.). Updated with plugins. http://forum.xda-developers.com/showpost.php?p=36733772&postcount=1
Miranda IM. Multi-protocol chat/IM client. http://forum.xda-developers.com/attachment.php?attachmentid=1649674&d=1358334467
Vim, GVim, etc. Code and text editor. Info and download links here: http://forum.xda-developers.com/showthread.php?p=36930991
SumatraPDF. Document reader (PDFs, possibly some other formats). Read and download here: http://forum.xda-developers.com/showthread.php?t=2098594
Audacity. Digital audio recording and editing. Info and downloads: http://forum.xda-developers.com/showthread.php?t=2103779
VirtuaWin. Virtual desktop utility. http://forum.xda-developers.com/showthread.php?t=2110131
Mini vMac. Emulator for very early Macintosh computers. http://forum.xda-developers.com/attachment.php?attachmentid=1662947&d=1358737954
Rainmeter. Desktop customization / skinning tool. Many but not all features work: http://forum.xda-developers.com/showpost.php?p=37018422&postcount=282
OpenSSL. Crypto tool, can generate keys and certificates. May have some issues with large ECC keys. http://forum.xda-developers.com/showthread.php?t=2113595
MiKteX. LaTeX compiler (typesetting tool). Script is interpreted instead of JITed but works fine. http://forum.xda-developers.com/showthread.php?t=2113634
Greenshot. Advanced screenshot tool. http://forum.xda-developers.com/showthread.php?t=2114273
Iperf. Network performance testing tool. http://forum.xda-developers.com/showthread.php?p=37346221#post37346221
MongoDB. NoSQL database. Mongo shell doesn't work correctly locally, but the server works and other clients should as well. http://forum.xda-developers.com/showthread.php?p=37475852
ScummVM. Game platform for many older games. Known issues: many disabled features and some crashes reported in this early build. http://forum.xda-developers.com/showpost.php?p=37583092&postcount=402
ResidualVM. Platform for many old-ish 3D games. Known issues: many disabled features, most engines don't work yet. More info and download: http://forum.xda-developers.com/showpost.php?p=37632363&postcount=411
Superputty. Enhanced version of PuTTY Suite with more features. http://sdrv.ms/151FWzT (Thanks to Erwan12)
NZB-O-Matic. Newsgroup post downloader (NZB download tool). http://forum.xda-developers.com/showpost.php?p=37886354&postcount=438
WabbitEMU. Texas Instruments graphing calculator emulator and dev tools. http://forum.xda-developers.com/showpost.php?p=37928562&postcount=442
Regshot. Registry shapshot/comparison tool. http://forum.xda-developers.com/showpost.php?p=37933687&postcount=1
CorsixTH. Engine for the game Theme Hospital. Includes demo, easy to use full version if you have it: http://forum.xda-developers.com/showpost.php?p=38067653&postcount=466
FreeRA. Command & Conquer Red Alert (RTS game) engine. Requires game data files. http://forum.xda-developers.com/showpost.php?p=38072727&postcount=468
FreeSynd. Syndicate (game) engine. No cutscene sound, requires game files. https://www.dropbox.com/s/ca0n0atmfl74306/Freesynd.zip
Pentagram. Ultima VIII (game) engine. Required game files. http://forum.xda-developers.com/showpost.php?p=38295828&postcount=518
Free Download Manager. Standalone file downloader and bittorrent client. Has some known issues but works: http://forum.xda-developers.com/showthread.php?t=2170002
PrBoom. DOOM game engine (can use the included shareware WAD file or other game files). http://forum.xda-developers.com/showthread.php?t=2175449
ChocolateDuke3D. Duke Nukem 3D game engine. Requires game files. Has a known sound bug with workaround. http://forum.xda-developers.com/showpost.php?p=38752618&postcount=561
GemRG. Infinity game engine clone (used for games like Baldur's Gate, Icewind Dale, and Planescape: Torment). Runs pretty well although some of the newer games may stutter a little. Requires the game files from a standard install. http://forum.xda-developers.com/showthread.php?t=2177954
Process Hacker. Advanced process inspection / control tool similar to Sysinternals Process Monitor. Updated to 2.33! http://forum.xda-developers.com/windows-8-rt/rt-development/app-processhacker-2-33-t2865384
FinalBurn Alpha. Arcade game emulator. Port is still considered "alpha" quality. http://forum.xda-developers.com/showthread.php?t=2187370
SharpDevelop. C# IDE. Debugging is not yet supported and some setup work is required: http://forum.xda-developers.com/showpost.php?p=39276938&postcount=615
MAME. Arcade machine emulator (requires ROMs). Not yet fully tested; performance issues reported with some games. http://forum.xda-developers.com/showthread.php?t=2237754
WinDjVu. DjVu document viewer. http://forum.xda-developers.com/showpost.php?p=40931011&postcount=687
MFPDemo. A desktop player for video files. http://forum.xda-developers.com/showpost.php?p=40997441&postcount=691
Quake (original version) running in Direct3D (runs faster than the one that was listed here before). Instructions and downloads: http://forum.xda-developers.com/showthread.php?t=2312019
ioQuake3 (Quake 3 Arena). Requires game files. Instructions and download: http://forum.xda-developers.com/showpost.php?p=42338198&postcount=1
Coolplayer. Skinnable music player, now with FLAC support. Extra themes are available for download from the site. http://forum.xda-developers.com/showthread.php?t=2318000
Synergy. Use one mouse and keyboard across PCs (including Linux & Mac). Now with 1.4.12 beta. http://forum.xda-developers.com/showthread.php?p=37609926
Snes9x. Super Nintendo console emulator. Some features are disabled but games appear to work fine. http://forum.xda-developers.com/showthread.php?t=2339228
FileZilla. Graphical file transfer program. No support for encrypted protocols in this build, only plain FTP. http://forum.xda-developers.com/showthread.php?t=2340616
WinMerge. Diff(erencing) and merging tool. All features should work but this version is a little old; a newer one may come later. http://forum.xda-developers.com/showthread.php?t=2340560
QuiteRSS. Stand-alone RSS feed reader with embedded browser. http://forum.xda-developers.com/showthread.php?t=2355277
Single Player Game Transmitter client. Streams 3D apps with good quality and responsiveness. http://forum.xda-developers.com/showthread.php?t=2355051
QupZilla. WebKit-based web browser. Uses interpreted JS. http://forum.xda-developers.com/showthread.php?t=2353048
Lua. Scripting language, most commonly used for games. http://forum.xda-developers.com/showthread.php?p=43808775
Halite. Nice BitTorrent client somewhat like uTorrent. Currently only includes English support. Magnet links may not work...? http://forum.xda-developers.com/showthread.php?t=2372058
ffmpeg. Video player. May be very slow with some codecs. http://forum.xda-developers.com/showthread.php?t=2368706
Fossil SCM. Distributed version control software (sort of like Git or Mercurial). http://forum.xda-developers.com/showthread.php?t=2400099
Subversion. New update 1.8.5 with OpenSSL 1.0.1e. Widely used version control software. http://forum.xda-developers.com/showthread.php?t=2494931
AutoHotKey. Keyboard macros and powerful automation of Windows functions. http://forum.xda-developers.com/showthread.php?t=2408417
Paint.NET. Image manipulation program. http://forum.xda-developers.com/showthread.php?t=2411497
Alien vs. Predator Classic. First-person games based on the movies. Requires game files. http://forum.xda-developers.com/showthread.php?t=2414431
MicroEMACS. Small, EMACS-like text/code editor. Thanks to @acrossland! Binary available at Download link. https://bitbucket.org/adamcrossland/microemacs-for-surfacert
Nethack. The venerable and classic "roguelike" RPG. http://forum.xda-developers.com/showthread.php?t=2576998
TeXStudio. IDE for LaTeX documents. Requires a compiler such as MiKteX (linked above). http://forum.xda-developers.com/showthread.php?t=2493219
pForth. Interpreter for the Forth programming language. Docs and samples available as well as binary: http://forum.xda-developers.com/showthread.php?p=51795065
Python 2.7.3. Programming/scripting language and runtime. New: Experimental FFI should make much more code work. (Thanks @e13000!) Runtime: http://forum.xda-developers.com/showpost.php?p=50687352&postcount=921 LibFFI: https://drive.google.com/file/d/0ByNfJPIJQw6hRnlPMHM3b1FFUFU/edit?usp=sharing
Apps which run un-modified
Keepass Portable. Password storage wallet. http://downloads.sourceforge.net/keepass/KeePass-2.20.1.zip
Mouse Without Borders. Use one mouse across PCs (like Synergy). Install instructions here: http://forum.xda-developers.com/showpost.php?p=36428923&postcount=258
Transmission.Net Remote. Remote control of a Transmission BitTorrent service. http://forum.xda-developers.com/showthread.php?t=2101891
ShareX. Screen capture/upload utility. https://mega.co.nz/#!VxYVDZAS!KyyL8gGvjrcZWjEIOp3j_WnZqDsSucB_b3YcS0f-TbE
IceChat. IRC client. http://forum.xda-developers.com/attachment.php?attachmentid=3221171&stc=1&d=1426912901
IKVM. Java, implemented in .NET (can run many pure-Java apps). http://www.ikvm.net/
Fiddler 4. Advanced HTTP proxy. To install, unpack the .EXE as an archive using 7-Zip. To run correctly, copy the file Microsoft.JScript.dll from \Windows\Microsoft.NET\Framework\v4.0.30319\ on a Win8 machine (older Windows versions may also work) to the Fiddler "install" (unpacked) directory. http://www.fiddler2.com/fiddler2/version.asp
Boxie. Multipurpose utility (image conversion, file management stuff, etc.). http://boxie.codeplex.com/ (Info: http://boxie.codeplex.com/documentation)
DtPad. Text/code editor. You can use the installer; there will be a warning but it's reported to work after clickthrough. http://dtpad.codeplex.com/
BoxWorld. Sokoban game. Extract the binaries from the installer using 7-Zip. http://boxworld.codeplex.com/
AstroGrep. Regular expression file/text search tool (basically, Unix grep). http://sourceforge.net/projects/astrogrep/
Notepad Enhanced. Simple text editor with tabbed interface. http://forum.xda-developers.com/showpost.php?p=37370164&postcount=374 for info.
QuickSharp. C# IDE. Info at the same link as Notepad Enhanced, and also here: http://forum.xda-developers.com/showpost.php?p=37385385&postcount=378
Remote TrackPad Server. Allows controlling a PC using a Windows Phone as a server. Use the.NET 4.5 server build: http://www.luecho.com/trackpad/
ImageGlass. Image viewing program. Runs fine but crashes on exit. https://github.com/d2phap/ImageGlass (Thanks igator)
Be.HexEditor. Simple editor capable of opening any file, including binary, and editing in text or hexadecimal. Requires changing a config file. http://forum.xda-developers.com/showpost.php?p=39152904&postcount=611
WindowsAppBoss. Simplifies managing sideloaded or provisioned (i.e. not-from-the-store) Metro apps. http://windowsappboss.codeplex.com/
Perl 5.12.4. Popular scripting language, especially for working with strings. Official Microsoft-signed binary will run even without jailbreak: http://forum.xda-developers.com/showthread.php?t=2331691
Greenshot. Advanced screenshot tool. Plugins may not work. http://forum.xda-developers.com/showpost.php?p=48682150&postcount=905
Native-ported libraries (mostly for developers/porters)
LZMA (compression): DLL
SDL (Simple Directmedia Layer). Used for a lot of game software, among other things. http://forum.xda-developers.com/showpost.php?p=36620852&postcount=117
OpenSSL (cryptography toolkit). Used by a great many open source programs that do any crypto. May have some problems with elliptical curve crypto. http://forum.xda-developers.com/showthread.php?t=2113595
Zlib (compression). Used by many open-source libraries that need to handle compressed data. http://forum.xda-developers.com/showthread.php?t=2113684
libFLAC_static, libmad, libogg_static, libpng, libtheora_static, libvorbis_static, libvorbisfile_static (media codecs). Support popular audio and video compressed formats. https://www.dropbox.com/s/rhxn7pwygfh6pka/ARMlibs.zip
Boost. Commonly used C++ library/framework. Please do not download unless you need it, as doing so will use considerable bandwidth from the host. http://forum.xda-developers.com/showpost.php?p=38313568&postcount=524
wxWidgets. Common C++ library/framework for cross-platform graphical apps. https://dl.dropbox.com/u/39887/wxMSW-2.8.12-libs.7z
MFC (Microsoft Foundation Classes). C++ library/framework used by many older Windows programs. http://forum.xda-developers.com/showpost.php?p=40802296&postcount=59
GlDirect (OpenGL-DirectX wrapper). Adds support for OpenGL code by wrapping Direct3D 9. http://forum.xda-developers.com/showpost.php?p=42271138&postcount=4
QT 4.8.4 (C++ utility and graphics framework). Used by many cross-platform open-source programs. http://forum.xda-developers.com/showthread.php?t=2339014
Apps removed for known issues:
MonoTorrent Client. BitTorrent client, both GUI and CLI. Currently experimental/alpha quality, many people have reported that they can't download anything. GUI, CLI, More info.
Please recompile the Unikey (app helps typing Vietnamese on x86) since rt have no vietnamese keyboard. This is the app that everyone in Viet Nam is waiting to make the rt perfect for daily use. Thank you so much.
Here is its website: 'unikey.org'
http://ipmsg.org/index.html.en
a open source lan chat tool.I was able to compile it but it cant send message.you can have a try on it.
Netham45 posted a link to someones compiled notepad++ V6.2
http://forum.xda-developers.com/showpost.php?p=36516405&postcount=337
Thanks all. I'm looking at compiling UniKey (although it will be an old version, as the development 4.x branch is not yet open sourced). I'll also look into ipmsg. Appreciate the links.
EDIT: Ugh. The GPL for UniKey is a lie (ironic, since the author *****es about people violating the GPL with his code... yet doesn't comply with it himself). It relies on a library which is only distributed in binary form, RtfIO. I can probably build the 3.1 version (which is from 2006, and should be pre-RtfIO) since, aside from the occasional piece of truly awful code practices (lots of implicit types and improper use of variable scoping) that may have been permitted by older compilers but don't work in VS 2012, there's nothing difficult about building the app. I could even build 3.6 if the author would release an ARM version of RtfIO... I couldn't legally distribute it under the GPL at that point, but I could build it.
Unless you want me to give 3.1 a shot, you're going to have to ask the author for either the source to RtfIO or an ARM-compiled .LIB file of it.
Can you give a go at a TransmissionBT console as well?
http://www.transmissionbt.com/resources/
I've been looking into a bittorrent client already.
Transmission, unfortunately, is one of those many open source apps which technically compile on Windows, but only within a GNU-like environment, and in particular it expects to use GCC. While it may be possible to use MinGW to cross-compile for Windows on ARM, that's not the native behavior and will take more investigation.
EDIT: Hadouken, at hdkn.net, appears to be a pure .NET app. It's distributed as a .MSI which doesn't work on ARM< but it may be possible to build it for .NET 4.5 architecture-independent, in which case it should run on Windows RT. It's a BitTorrent client the runs as a Windows service rather than a normal desktop apps, and uses a web interface to control it. Should work fine, though...
GoodDayToDie said:
I've been looking into a bittorrent client already.
Transmission, unfortunately, is one of those many open source apps which technically compile on Windows, but only within a GNU-like environment, and in particular it expects to use GCC. While it may be possible to use MinGW to cross-compile for Windows on ARM, that's not the native behavior and will take more investigation.
EDIT: Hadouken, at hdkn.net, appears to be a pure .NET app. It's distributed as a .MSI which doesn't work on ARM< but it may be possible to build it for .NET 4.5 architecture-independent, in which case it should run on Windows RT. It's a BitTorrent client the runs as a Windows service rather than a normal desktop apps, and uses a web interface to control it. Should work fine, though...
Click to expand...
Click to collapse
http://sourceforge.net/projects/wintransmission/ seems to be a c# port of transmission. less dev than the QT version, but more suitable for us.
I will be taking a look at the effort involved in getting a dev environment working (either monodev or sharpdevelop)
@windowsrtc: I got IPMsg working, it's fine send and receive. I had to remove some platform-specific debug code (I could have written the ARM portion, but was feeling lazy) but it shouldn't matter except that crash logs won't be generated.
Binaries, including installer, are in the smaller ZIP file. Modified source code used to build them is in the _SRC archive.
Also, any pure .net 4.5 app will work on the RT too.
I've gotten Mouse without Borders, a MS-made synergy alternative running great on the Surface.
Check this post: http://forum.xda-developers.com/showpost.php?p=36428923&postcount=258
OK, got a build of Unikey 3.1 here. Better than nothing, right?
VLC - do you think Surface RT has all the OS components required for VLC? I would like mkv support on Surface RT and VLC would be a good step in that direction.
ok... as bad as this will sound... java... don't judge me!
@programabd: I think VLC uses some assembly in its decoders, which will make porting difficult. I know there are ARM build already, do it's possible, but there are lots of thing which build on Windows, and build for ARM, but don't build for WIndows on ARM.
@apatcas: Already looked into it. Getting Java support would give a huge number of apps ready-to-go, and however distasteful I find the language or however bad the browser plugin security is, it would be good to have. Unfortunately, the only ARM-ready versions of Java currently available are for Linux, not Windows. It's possible to port, of course, but it'll be a lot of work.
programabd said:
VLC - do you think Surface RT has all the OS components required for VLC? I would like mkv support on Surface RT and VLC would be a good step in that direction.
Click to expand...
Click to collapse
Haven't they started making their own port through the kickstarter campaign, they're making a windows 8 metro style app first then stating on an Rt version, probably not see it this side of Christmas though
Edit: here's the link:
http://www.kickstarter.com/projects/1061646928/vlc-for-the-new-windows-8-user-experience-metro
martyj999 said:
Haven't they started making their own port through the kickstarter campaign, they're making a windows 8 metro style app first then stating on an Rt version, probably not see it this side of Christmas though
Edit: here's the link:
http://www.kickstarter.com/projects/1061646928/vlc-for-the-new-windows-8-user-experience-metro
Click to expand...
Click to collapse
Thanks - I wish they would just bypass the handcuffed Metro environment, and just go for a full port to desktop ARM, but that's pretty unlikely
GoodDayToDie said:
Thanks all. I'm looking at compiling UniKey (although it will be an old version, as the development 4.x branch is not yet open sourced). I'll also look into ipmsg. Appreciate the links.
EDIT: Ugh. The GPL for UniKey is a lie (ironic, since the author *****es about people violating the GPL with his code... yet doesn't comply with it himself). It relies on a library which is only distributed in binary form, RtfIO. I can probably build the 3.1 version (which is from 2006, and should be pre-RtfIO) since, aside from the occasional piece of truly awful code practices (lots of implicit types and improper use of variable scoping) that may have been permitted by older compilers but don't work in VS 2012, there's nothing difficult about building the app. I could even build 3.6 if the author would release an ARM version of RtfIO... I couldn't legally distribute it under the GPL at that point, but I could build it.
Unless you want me to give 3.1 a shot, you're going to have to ask the author for either the source to RtfIO or an ARM-compiled .LIB file of it.
Click to expand...
Click to collapse
he leaves no contact information so I think there is no way to ask him for anything. In that case, if only you could help us building the 3.6 version which could be better with the open source on his website, I think 3.1 is enough for use. We, vietnamese, really appreciate your effort. Thank you.
apatcas said:
ok... as bad as this will sound... java... don't judge me!
Click to expand...
Click to collapse
This would be amazing as hard as it might be to get a port. Minecraft, people
GoodDayToDie said:
@windowsrtc: I got IPMsg working, it's fine send and receive. I had to remove some platform-specific debug code (I could have written the ARM portion, but was feeling lazy) but it shouldn't matter except that crash logs won't be generated.
Binaries, including installer, are in the smaller ZIP file. Modified source code used to build them is in the _SRC archive.
Click to expand...
Click to collapse
thank you
finally I found I didnt use it in the right way.I must select a "user"before sending a message and it works.
[Introduction]
So i wanted to poke around some android app and while at it get some idea about android/java reversing.
I've never dealt with java or android to any significant degree, all the more interesting stuff to discover.
I think what i discovered over past couple of day could be usefull to your community so i decided to share it.
Seems like it's a generally accepted fact on android scene that it's impossible to modify .class files at high level, as in by modifying their decompiled .java sources and everyone goes about it through disassembly to dalvik instructions(or perhaps smali is a bit higher level representation) and whatnot and then reassembling, using decompiled code just for reference...
When talking about programming languages/systems that compile to pseudo-code that's later jitted or translated into native code, i've dealt with something similar before
once before when i poked around flash/actionscript 3 reversing, while there were decompilers for actionscript 3 available and particular swf wasn't even obfuscated it wasn't really possible to use decompiled output to make some small changes to significally large project cause of decompiler errors, as in flash you have to compile it all at once or not at all.
There also existed tools that enabled disassembling to as3 AAVM opcodes level, making changes if you can wrap your head around that bytecode language and reassembling back.
But who is fluent in as3 or java or dalvik VM bytecode language except their creators and why would they be? Sure small changes are possible but a pain even at that...
When by some chance i ended up prodding some java i remembered hearing that people are making that Minecraft mods and they don't have original full sources, they just replace/add classfiles to minecraft.jar.
I though "hey that should be possible for android apps" and driven mostly with reverse-engineering curiousity set out to check my hypothesis.
Turns out there's no such thing as "android compiler", since android build process uses javac standard java sdk compiler and java allows compiling single class files and linking against .jar file containing compiled .class files as a library.
Requirements:
1. Dex2jar
2. Android adt bundle
3. Java jdk 1.7
4. Optional : apktool
The guide itself
1. Run dex2jar yourapp.apk
2. Use jd-gui or whatever to get source code of .class file you're interested in inside that apk.
Take note that decompilers don't always produce outright recompilable code
Simplest example jd-gui produces outputs that imports R.strings etc, while javac want it to be a single R import
You can try different java decompilers or fix up the code yourself. Some .class files most decomilers will fail to tackle but those are a minority.
If app is not proguarded it's mostly at your mercy.
3. Modify .java source code of class as you see fit.
4. (optional) You can also do some layout, drawable etc editing(obtained from apktool or whatnot) in a comfortable way if you re-import res folder contents into Eclipse project res.
5. Download android sdk stuff for android api version your app was made for with adt sdk manager tool You're interested particularly in android.jar library, perhaps andorid-support.jar. Maybe you can link against newer library versions, dunno. For my app developer stated minimum required android version so i linked against that jars, but as to how to find out what android version app requires, you can look at android folder in your undexed jar, android\support\v4
v4 = android api 4, android 1.6 version
6. javac -target 1.6(this is not android 1.6, it's java bytecode and source compliance, by default current jdk 1.7 produces "invalid magic cafebabe" error later from dx) -source 1.6 -classpath path_to\classes.jar(obtained from dex2jar);path_to_android_adt\sdk\platforms\android-(required version)\android.jar;(maybe include android-support classpath, worked for me without) path_to\your_modified_class(but named same as originally).java
Like
C:\Program Files\Java\jdk1.7.0_25\bin\javac -target 1.6 -source 1.6 -classpath C:\Users\User\Desktop\testapp\classes.jar;E:\adt-bundle-windows-x86-20130717\sdk\platforms\android-4\android.jar C:\Users\User\Desktop\testapp\someclass.java
If you fed javac valid java code it'll spit out valid .class file, otherwise read it's error output and perform steps to fix that errors.
7. Plug your newly created classfile back into it's jar, use winrar, windows explorer(by renaming it to zip) or whatever.
Javac can produce a differently fragmented classfile than one originally in jar so you may want to delete yourclassname.class
yourclassname$1.class yourclassname$2.class yourclassname$3$1.class ... from jar first.
8. Now it time for our java bytecode to go Dalvik
Dx your updated jar
E:\adt-bundle-windows-x86-20130717\sdk\build-tools\17.0.0\dx.bat --dex --no-optimize --output classes.dex classes.jar
9. Plug your updated classes.dex back into original apk
Delete META-INF folder from apk to "unsign" it while you're at it.
10. Re-sign apk with
C:\Program Files\Java\jdk1.7.0_25\bin\keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
C:\Program Files\Java\jdk1.7.0_25\bin\jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name
11. Zipalign
E:\adt-bundle-windows-x86-20130717\sdk\tools\zipalign\zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk
12. Install modified apk
This whole thing relies on the fact that while fully recompilable autmatic decompilation of java project of any complexity isn't feasible like always, decompilers are capable of producing large portion of mostly correct code, and java allows you to recompile exclusively that parts you're interested in which could very well end up being correctly decompiled outright or require just minor fixups and you don't have to deal with the fact that your decompiler produced thousands of errors in OTHER classfiles that your class depends on.
I guess even in case target app is obfuscated/proguarded having ability to deal with it on .java level and not disassemly level could still be of great benefit.
thankfull for your efforts dude ...!!!
You did great job...
I have one problem i know how to convert .dex to .smali
but dont get that how to convert .smali to .java source code
i have read ur post after 4th point i dont get ur post can u please explain it deeply
I m new at xda as well in android I want to modify online game for that i want to convert that apk into java source code and then modify it please help
thankyou....!!!
:good::good::good::good::good::good::good:
---------- Post added at 09:28 PM ---------- Previous post was at 09:24 PM ----------
can u make a video tutorial for this project????
i m pressing thank button for your efforts...!!!!
:laugh::laugh::laugh:
Thanks man! That's what i have been looking for
@aashishb4u It's a bit late to answer this question maybe, but anyways...
I don't think there is a smali to java convertor out there, but anyways, you would not need it.
You can get the .jar with "dex2jar" (and then get the .java file after decompiling it with "jd-gui", for example) directly from the classes.dex file, as for the smali code. Which means converting this outputed .smali to .java would not give you more information than the converting .dex to .java (as we usually do), if not less, since it would just add 1 more intermediate than needed.
By the way, thanks for this post @Wrongusername, it was really what I was looking for.
Hello
I am new to this , how do you extract classes.cdex from zip files of stock rom
I recommend using version without demo apps, its smaller. But if you want to try demo apps to test if is JRE working, use version with demo apps.
This app provides a complete Java Runtime Environment (JRE) for Android devices. This JRE include a Java Virtual Machine (JVM) and Java SE 7 class library APIs. This enables running standard Java SE 7 desktop applications on Android devices. This includes Java applications that use Swing and/or AWT graphical user interfaces.
You need to be logged in google account to run this app.
The JRE is capable of running any "pure Java" applications. If the Java application includes/requires application JNI libraries then these native libraries will need to be rebuilt (compiled/linked) with the Android Native Development Kit (NDK).
Using this App to successfully run a specific Java application, will require some basic knowledge of using a JRE. For example you will need to copy the application JAR files to the device's file system and then configure a command line to launch the Java Virtual Machine (JVM).
The following is a list of limitations in the current release.
- Java Applets embedded inside Android web browser are not supported. (There is an Applet viewer included that can be used to run Java Applets standalone)
- JavaFX is not supported.
- Only supported on Android devices with an ARMv7 processor.
The following is a subset of Java applications that currently will NOT run on this app due to missing JNI libraries.
- Minecraft for PC
** Java is a registered trademark of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Click to expand...
Click to collapse
Java JRE without demo apps
Java JRE with demo apps
Update: links removed. Moderators not allowed this app, because it is moded JRE4A with crack. I will upload it somewhere else, and here will be Tutorials what write to google, to find it.
Sony Xperia Z3 Stock 6.0.1 - Not working :crying:
gouster3 said:
I recommend using version without demo apps, its smaller. But if you want to try demo apps to test if is JRE working, use version with demo apps.
Click to expand...
Click to collapse
While this sounds great, could you give a few more details:
Did you write this yourself?
Why is a Google account required?
How do AWT/Swing work? Don't they usually use native widgets? What does your JRE use instead?
FD_ said:
While this sounds great, could you give a few more details:
Did you write this yourself?
Why is a Google account required?
How do AWT/Swing work? Don't they usually use native widgets? What does your JRE use instead?
Click to expand...
Click to collapse
It is JRE4A with removed trial limit, and moded popups to be more user friendly. For example popup with buy, reedem, tral is modded to: Welcome to JRE, OK button have trial button function, other buttons removed. Then dialog this is trial version and will work only one minute... is changed to press ok to start java app. Title changed from jre4a to java, and icon changed to java icon.
Google account is required because of jre4a licencie checking. You dont need to have buyed jre4a, but without account app crashes. It is a bug.
And please removed links from quotes.
Soon i will post guide how to find this files on google
No you will not. Cracked apps and warez are not allowed in anyway on xda. Nor are you allowed to tell people how to find it.
Thread closed