Crosscompiling glibc for the Note 2, native GNU tools on the phone, runnig problem? - Galaxy Note II Android Development

I've followed the steps from http://forum.xda-developers.com/showthread.php?t=1299962 basically, and crosscompiled glibc and some basic GNU tools, to run natively on the Note 2.
Now, I'm running into some problems, which I need help with from crosscompiling gurus...
Basically, what I did:
- Setup crosstool-ng on the PC.
- Downloaded the Note 2 source from Samsung.
- Got include/drm/exynos_drm.h elsewhere on the web, as it was bombing without it, and for some reason, it's not in Samsung sources.
- Built a crosscompiling toolchain. I set:
target architecture - arm
endianness - little
fpu - neon
instruction set mode - arm
eabi - enabled
vendor string - exynos
alias - arm-linux
os - linux
c library - glibc
threading - nptl
- With it, built glibc for the Note, built no prob. Built also GNU tar to start experimenting.
Now, I transfered glibc and the tar dirs to the Note.
As the author says at http://forum.xda-developers.com/showthread.php?t=1299962:
What I've found so far, the cross compiled executable (like simple Hello world), when dynamically linked, gives "no such file or directory" error when tried to be run at the device (WTF, right ). However, when when I do run it with the cross-compiled ld-linux.so (the linker of C library) it runs perfectly...
EUREKA! Found the solution! It's as simple as symbolically linking the library folder of your GlibC as /lib to root file system. You can edit ramdisk accordingly to do this process automatically.
Click to expand...
Click to collapse
Anyhow for me now, when I try to run the tar executable, I get:
Code:
No such file or directory
This even with the glibc lib dir symlinked to /lib, and/or setting LD_LIBRARY_PATH to the glibc lib dir.
file tar gives me:
ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.0.31, stripped
Click to expand...
Click to collapse
so all's looking right.
Why can't I get it to run?

This is proving to be a somewhat great course on crosscompiling for me.
So, messing with it, and making advances - was able to get the compiled executables to run after bindmounting arm-exynos-linux-gnueabi/sysroot/lib dir, which was built by the toolchain to the phone's /lib directory.
Now getting mixed errors and failures caused by ld etc when running GNU tools built against androids libc, so need to mess with terminal on the phone to get just the glibc to loaded on running, but it's progressing...
It seems I'll be able to do this.

Looking forward to that. Highly interested in php lighttpd mc busybox dropbear that kinda ****.
--
Sent from my N7100 with Perseus 25.4 Omega 5.0 and some stuff of Raubkatze

I'm almost there, I just need to crosscompile gcc and then I can build the necessary GNU tools natively.
I'm just figuring out how to crosscompile gcc, as it depends on mpc, gmp, and mpfr, and having no experience with crosstompiling I'm figuring out how to compile depends and link against them, whether they should be native or crosscompiled...
But I should be able to figure it out soon, very close now towards full working GNU tools on the Note 2.

OK, need help, have asked for it at http://stackoverflow.com/questions/...with-crosstool-ng-have-toolchain-which-archit also.
If anyone could assist, here goes:
I've built the crosscompiling toolchain with crosstools-ng.
I've cross compiled glibc, fine.
Have built a couple native arm (arm-exynos-linux-gnueabi) utils, like tar etc. and confirmed they work on the Android phone, when symlinking the built x-tools sysroot's lib directory to /lib on the android machine.
Now I need to build the native gcc, so I can develop on the machine. I'm having some philosophical problems with crosscompiling, as I'm relatively inexperienced in it.
I'd therefore like to ask how to proceed in steps exactly, as I've already spent two days with a trial-by-error approach, and so far no luck.
So: gcc depends on mpc, which depends on mpfr, which depends on gmp.
So, how do I proceed?
Which architecture deps do I build, with which host target and build options?
make a tools dir and build these deps there, so as not to mess with the functioning toolchain?
gmp (no host, build, target?)
mpfr (same?)
mpc (same?)
then gcc, how? --host=arm-exynos-linux-gnueabi --build=i686-build_pc-linux-gnu --target=arm-exynos-linux-gnueabi ?
Is this right, or am I messing up in some of the above steps?
Incidentally, I've followed this guide http://forum.xda-developers.com/showthread.php?t=1299962 to build the crosstool-ng toolchain, and it recommends compiling the native apps just with --host=arm...
I've been doing that, and they do work on the Android system, though it doesn't seem right to me, shouldn't it be --target=arm...?

nyarnon said:
Looking forward to that. Highly interested in php lighttpd mc busybox dropbear that kinda ****.
--
Sent from my N7100 with Perseus 25.4 Omega 5.0 and some stuff of Raubkatze
Click to expand...
Click to collapse
+1 ... I'm interested too, keep it up OP... So far I've only successfully build my own perl/libperl.so and runs great on my note2 from http://code.google.com/p/perldroid
{
"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"
}

I've proceeded further, have built glibc 2.14 for the N7100, works, compiled gcc and some utils. The problem for now is that there is a bug in glibc 2.14 making statically compiled binaries fail on dynamic calls to libraries... It should be fixed in glibc 2.16...
So am experimenting now, trying to figure out how to add the latest glibc version support to crosstool-ng... If anyone knows, chime in.

Related

[Bounty] Compiled Adreno drivers

I am offering a 25$ bounty to whoever can compile the adreno drivers for the huawei U8150. The device has a msm7225 which includes the Adreno 200 but no drivers have been written for it. I am including the kernel source and the Adreno driver source as well as the specs.
Phone Huawei U8150 Ideos
cpu msm7225 overclocked to 600 mhz in factory
256 mb of ram
froyo 2.2.1
.32 kernel
Kernel source (Please compile with the overclock frequency unlocked using the documentation that is included in the text file with this source) http://www.mediafire.com/?s2djub4571hjs
Adreno Source from GIT https://www.codeaurora.org/gitweb/qu...oid-msm-2.6.32
Thanks and I will be sharing this work with the rest of the U8150 users when it is completed! Starting with my build. Good luck and thank you!
Nice
Sent from my Desire HD using XDA Premium App
Found this in the android kernel source for my mobile. It's the Galaxy ace which also has an Adreno200.
Maybe it is of use to you.
The kernel module source for the gpu is attached.
That does help but I have no idea how to compile that driver, let alone how to tell the kernel to initialize it. That is why I am asking for someone to compile the kernel with the driver.
I will try to compile them for you, no guarantees It creates a xxxx.ko module so you can insmod xxxx.ko into your kernel.
Sounds great, I appreciate the effort. So in the kernel I just type Insmod in the init file? I have an extracted boot.img of my kernel but thats about the best I can do atm.
I downloaded the source and discovered that the MSM Ardeno drivers are already included in your kernel source. You just have to turn them on in the kernel makemenuconfig.
I compiled the 3d driver for your kernel source(2.6.32, critical only works for this kernel version). Now copy extracted file to your sdcard and try:
* insmod msm_kgsl.ko
in adb or terminal.
Don't know if it works, can't test it. I guess you just have to try and see. And hope you don't get a kernel panic.
I got a no such directory error when I tried to install it.
I copied the ko file to the root of my SD, went to my terminal on my phone and typed SU > cd sdcard and then insmod msm_kgsl.ko
Hmm that's weird, should work. Try and copy to a different path.
Are you sure your kernel version is 2.6.32?
It is indeed a .32 kernel. I am going to try baking the .ko file into my rom, as well as the kernel if I can figure out how.
I just opened the rom in my kitchen and saw that bash support wasn't enabled. I guess that would explain why I couldn't even get my odex script to work. Enabling bash and going to try again.
did you get the adreno to work? i have a similar problem with a XT300 from Motorola, the hardware is there but it's not functional...
If you eventually gonna compile your own kernel, you can build the drivers in the kernel yourself. This are the settings I copied from my own phone's kernel settings.
{
"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"
}
You find these settings under Device Drivers --> Graphics Support.
PS. Set the buildoptions for the driver to a * instead of M to include them natively in you kernel
PPS. You can instantly set all the correct settings for your device by issuing this command: make hw_msm7x25_defconfig (Huwai devices with MSM 7225 processor)
cant do insmod msm_kgsl.ko from anywhere ..
insmod: init_module 'msm_kgls.ko' failed (no such file or dir...)
tried sdcard, /system/lib/modules, various random plases. same thing.
Can anyone try: busybox insmod msm_kgls.ko
Busybox insmod gives more debugging data. Also try adding -v to be verbose and -p to test if the module can be inserted
I added busybox support to my build and when I typed busybox insmod -f -v msm_kgsl.ko I got can't insert msm_kgsl.ko : unknown symbol in module or invalid parameter. I am really hoping you might be able to compile a kernel for us with it already enabled so I can just throw it in the build. I can test a compiled kernel but I am not having any luck adding it through insmod.
It almost seems as if there is something wrong with that module.
I'm interested in that module for the XT300/Spice.
My kernel is the 2.6.29, 2.1-update1...
How do I compile the module ? What do I need?
Thanks for any help.
Is there possibility that these devices are made from chips with faulty gpu part?
Doubtful that there was any bad parts. Anyways, I am getting conflicting information as to whether it is an adreno 130 or adreno 200 inside of it. I read in the kernel mentions of msm7225 and other parts say 7201a.
Wouldn't it just be enough to get the libGLES and maybe gralloc files from another hardware, like htc buzz, which has the msm7225/adreno200 integration?
I tried it, but quadrant is not showing qcom as the renderer. I had to create the egl.cfg, which was not present. Perhaps it's not loading the egl.cfg:
0 0 android
0 1 qcom
with the files:
egl/libGLES_android.so
egl/libGLES_qcom.so(from htc buzz)
hw/gralloc.msm7k.so(from htc buzz)
hw/gralloc.default.so(from htc buzz)
On neocore the score is 3FPS...
EDIT:
CRAP, flashed the libEGL.so from htc buzz, stuck in bootloop... great, will try to recover =/

[BINARY] GNU Nano editor v2.2.6 for Android

I have managed to successfully cross-compile GNU Nano editor 2.2.6 to run on Android and decided to share it here.
Please note that you need to set up terminfo (if your ROM doesn't have it already), by running:
Code:
export TERMINFO=/system/etc/terminfo
export TERM=linux
Unfortunately, it doesn't fully work through adb shell due to the fact that [enter]-key can't be used (this is a bug of adb shell).
It works flawlessly over ssh, although.
{
"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"
}
EDIT: Fully working version is here.
You will need this patch to fix the enter key:
https://github.com/Evervolv/android...b568f0b417c1fe3fe8597c600bdbcda4837013f.patch
Great! Thanks for the information. :good:
As soon as I have time for that I will apply the patch and release a new binary.
bgcngm said:
Great! Thanks for the information. :good:
As soon as I have time for that I will apply the patch and release a new binary.
Click to expand...
Click to collapse
You are welcome.
I guess you will like this patch too:
http://www.faircode.eu/freexperia/update/terminfo.patch
(I have composed it for CM9, but I guess you known how to modify it, when needed)
Edit: use git apply instead of patch
how do i install this in my phone?
ARM cross-compiling how-to
Assuming a toolchain is already present on the build environment, here are the instructions on how to cross-compile Nano 2.2.6 for ARM devices:
Set the path to C compiler:
Code:
export CC=~/toolchain/bin/arm-none-linux-gnueabi-gcc
After you have unpacked the sources change to the source directory:
Code:
cd nano-2.2.6
Now configure the source:
Code:
./configure --host=arm-none-linux-gnueabi
To compile the sources (statically) type this:
Code:
make LDFLAGS=--static
Here is the fully working version of Nano 2.2.6 for Android (without the [enter]-key bug). Enjoy. :victory:
Great job!
I went ahead and packaged this in a flashable zip for people, it also adds a script to /sbin so you can (temporarily) use nano from the recovery console in AROMA Filemanager during that recovery session.
http://forum.xda-developers.com/showpost.php?p=47402916&postcount=133
Good idea! Thank you.
@bgcngm Any way to fix the output when used through AROMA Filemanager's Terminal Console? Scrolling borks things.
Mention me back when you get the chance.
bgcngm said:
I have managed to successfully cross-compile GNU Nano editor 2.2.6 to run on Android and decided to share it here.
Please note that you need to set up terminfo (if your ROM doesn't have it already), by running:
Code:
export TERMINFO=/system/etc/terminfo
export TERM=linux
Unfortunately, it doesn't fully work through adb shell due to the fact that [enter]-key can't be used (this is a bug of adb shell).
It works flawlessly over ssh, although.
EDIT: Fully working version is here.
Click to expand...
Click to collapse
How do I exit Nano in the android Terminal emulator
Edit: I found out hacker's keyboard's ctrl key helps with this problem
If anyone has this issue, let me help out:
In Windows, running nano and vim through ADB returns weird characters on the terminal, and you need ansicon.
Or better use ConEmu.
That's right. It is documented on the internet, that Ansicon is a requirement for Windows if you use command prompt. As you say, better go with a good terminal emulator.
@bgcngm will u update it to v2.4.2 plz?
Just tried to install through CWM on Cyanogenmod 10.1 Unofficial for Samsung Infuse, and got "installation aborted." Any idea what my problem might be?
The .zip that is available is not to be installed from recovery and that's why you are not able to do it.
osm0sis said:
@bgcngm Any way to fix the output when used through AROMA Filemanager's Terminal Console? Scrolling borks things.
Click to expand...
Click to collapse
bgcngm said:
The .zip that is available is not to be installed from recovery and that's why you are not able to do it.
Click to expand...
Click to collapse
Fixed both of these issues and compiled nano 2.5.0.
http://forum.xda-developers.com/showthread.php?p=64247691#post64247691
If you are a termux user and want to install a nano or vi or any other binaries of termux in Andriod su mode. Here is the link to Termux superuser.
Give it a star if it was helpful !!!
bgcngm said:
ARM cross-compiling how-to
Assuming a toolchain is already present on the build environment, here are the instructions on how to cross-compile Nano 2.2.6 for ARM devices:
Set the path to C compiler:
Code:
export CC=~/toolchain/bin/arm-none-linux-gnueabi-gcc
After you have unpacked the sources change to the source directory:
Code:
cd nano-2.2.6
Now configure the source:
Code:
./configure --host=arm-none-linux-gnueabi
To compile the sources (statically) type this:
Code:
make LDFLAGS=--static
Click to expand...
Click to collapse
How to do this on termux? @bgcngm I got the latest 6.4 tarball.

[APP] AROMA Installer

{
"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"
}
The World's First ANDROID Touch And Customizable ROM Installer
When you install Linux, Windows, Mac or applications on the PC
You can always customize your installation as you want.
WHY CAN'T WE DO THE SAME INSTALLING AN ANDROID ROM?
BECAUSE NOW
AROMA Installer
GIVES YOU THIS POSSIBILITY!​
BackgroundAndroid has an advanced system for installing the OS and updates, unlike other mobile OS's that distribute the contents of the OS in static ROM image(s), Android distributes the OS and updates in a plain .zip file that contains all of the packages, files, and the updater for processing the installation.
The updater splits in 2 types, the binary (update-binary) and script (updater-script), while the binary is an executable file, and the script was a configuration script that tells the binary executable what to do.
But this advanced technology never expanded into its highest potential ability. The update-binary was simply the linux executable wrote in C that runs in root mode, and can do anything to your system; including accessing the Display FrameBuffer, accessing keys and the touch screen, set vibrate, run programs, parse files, load png(s) and .zip's, and read and write to the filesystem.
The old update-binary only supported a few functions that can controlled only by the updater-script to instal the files. It didn't have a single function that allowed the installer to interact with the user. There is a program called "yesno" that shows a "Yes" or "No" interface, but it wasn't enough to create a more customizable updater.
Now with AROMA Installer update-binary, all of this limitation is gone, and this advanced technology is expanded to the highest level of its pontential.​Read More at amarullz.com [+]​
What is AROMA Installer"AROMA" was taken from Bahasa Indonesia (Indonesian Language) and it means "Scent", but it is also an abbreviation of "AMARULLZ ANDROID ROM MANIFESTATION". It is an advanced update-binary for Android that contains many features like Wizard Installation, Touch User Interface (AROMA UI), Customizable Packages, System Inspecting, Themeable, and User Interactive. All release versions will have "flower" codenames, for example, the 1st version is codenamed "Anggrek", which mean "Orchid".​
How AROMA Installer WorksHow can it work in recovery mode, and how can it so smooth when it scrolls? It works because I hired Chuck Norris to force the recovery to run the installer, and the phone is too afraid to show any lag .
No, seriously, when the user selects the .zip file to install it, the recovery will extract the update-binary and run it with a few arguments. All processes are handled by the update-binary, and the recovery will only show the information passed by update-binary via a custom pipe. The great thing is that the update-binary can do anything if we can code it in C/C++, but not all people can easily play with C/C++. Its also not very effective or fun to compile it every time we need to change the process. That's why the custom script is used in AROMA Installer, it is simply edify scripting that is used as the normal updater-script, but with expanded functions available.
It wasn't a simple thing to archive something like this, because the update-binary is simply the "linux executable" that doesn't even support dynamic links of libraries, basic drawing functions like drawrect, drawline, and I don't think it OpenGL can be included in it's binary. It runs on it's own. Even User Interface was wrote from scratch to manipulate directly into the display framebuffer, user input was read directly from the raw kernel input device, png and .zip was read with a static link library, and the configuration was parsed in it's own program. It is the result of one full month of developing, but you can learn it instantly, without any need to know how to manage memory usage and pointers.
The AROMA Installer will read, parse, and run the script commands to show it's UI, calculate partition sizes, create, read, and write temporary prop files, set & get variables, do simple integer comparisons and math sequences, do the if else or inline if conditions, configure the UI color scheme, configure rom information, and much more.
Because it was very complicated and needed a lot of time to develope, did I earn some reason to get donations?.​Donate To Me [+]​
Flowchart How It Works
​
more at amarullz.com [+]​​
XDA:DevDB Information
AROMA Installer, a App for the No Device
Contributors
amarullz
Version Information
Status: Beta
Current Stable Version: 2.56
Stable Release Date: 2012-10-04
Current Beta Version: 2.70 BETA-6
Beta Release Date: 2013-06-24
Created 2013-08-17
Last Updated 2013-08-17
Dear sir,
I am from Viet Nam: Dev Team VN.
At Viet Nam, We always use your AROMA for ROM.
AROMA's very perfect.
Millions of thank you. (Sorry, I am limited to 8 thanks per day so I can not thank to this thread)
Last time, I remember when we use 40a2sd script for SDCard_to_internal
we were very happy.
- Finally -
Thank you so much, I do not know what to say in addition of thanks
"Cảm ơn các bạn" This is a sentence of Vietnamese.
If you need anything from us, we are ready
“The Friendship” is one of the most beautiful affections of mankind.
“The Friendship”of Indonesia’s team and VietNam’s team in particular and all countries in the world in general.

[PROJECT][PORT] Go4Droid v1 | write,run,compile Go Lanuage codes on your phone !

{
"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"
}
about Go Language
Go, also called golang, is a programming language initially developed at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson.It is a statically-typed language with syntax loosely derived from that of C, adding automatic memory management, type safety, some dynamic-typing capabilities, additional built-in types such as variable-length arrays and key-value maps, and a large standard library. Beyond that broad category, Go is defined by:
-A syntax and environment adopting patterns more common in dynamic languages:
Concise variable declaration and initialization through type inference (x*:= 0 not int x = 0.
-Fast compilation times.
-Remote package management (go get).and online package documentation
-Distinctive approaches to particular problems.
-Built-in concurrency primitives: light-weight processes (goroutines), channels, and the select statement.
-An interface system in place of virtual inheritance, and type embedding instead of non-virtual inheritance.
-A toolchain that, by default, produces statically linked native binaries without external dependencies.
-A desire to keep the language specification simple enough to hold in a programmer's head,in part by omitting features common to similar languages:
no type inheritance
no method or operator overloading
no circular dependencies among packages
no pointer arithmetic
no assertions
no generic programming
about Go4Droid
Although Go is a Google project ,it has not option for building for Android !Also It has there is no way to use it on your Android device and do compiling(instead of cross-compiling) (beacuase it does not building for external host and target).All this reasons made me think about this project and finally I ported a complete set of Go compiler, Go linker, Go Packages and also net support !.
You can easily write go codes , compile them, run them and install them. There are lots of packages which let you write amazing programs.
prequisites
minimum :
- Root privilege
- ARMv7 (vfpv3) SoC.
- Android +1.6 (linux kernel +2.6)
- 80 MB free space in system partition
- CWM/TWRP installed
suggested :
- Root privilege
- ARMv7 (vfpv3) + NEON SoC.
- Android +4.2 (linux kernel +3.4)
-150 MB free space in system partition
- CWM/TWRP installed
installation
- Download zip file.
- Install CWM/TWRP.
- Ready !
usage
This thread is not supposed to be a GoLang tutorial , however I explain main options.
* Do not forget to get root before anything :
Code:
su
1- Use this command to run a .go file (file = helloworld.go):
Code:
go run helloworld.go
2- Use this command to compile a .go file and generate an executable :
Code:
go build helloworld.go
./helloworld
3- Use this command to compile & install a code file:
Code:
go install helloworld.go
helloworld
example
Code:
package main
import "fmt"
func main() {
fmt.Println("Hello, World")
}
download
Go4Droid v1
*intial release
help the project
Every single build takes +30 minutes on my Android device so it would be difficult to manage this project. You can help me by donating me a VPS/Dedicated server then I will be able to update and manage this project faster and better.
reserved
Well done man! I'm trying it now
Will report results soon
I 've spend +10 hours on this project for 0 people using it !
That's great, man. You beat Google to it!
This looks interesting, but without access to the UI or Android APIs, we're pretty limited, right?
raveur said:
That's great, man. You beat Google to it!
This looks interesting, but without access to the UI or Android APIs, we're pretty limited, right?
Click to expand...
Click to collapse
There is no Android JNI support yet (and unfortunately no plan to do it). However it has a great builtin API with net,archive,fs,os,image,... support.
Great project,
Thanks for that.
Still no NDK support for Go?
myfreeweb said:
Still no NDK support for Go?
Click to expand...
Click to collapse
Go has no Android JNI support thus there is no Go support in NDK .

[IDE][4.0.3] APK Studio - IDE for Reverse Engineering Android APKs

APK Studio​
A Cross-Platform IDE for Reverse-Engineering (Disassembling, Hacking & Rebuilding) Android applications (APKs) - featuring a friendly UI and Code editor which supports Syntax-highlighting for smali (dalvik bytecode) files.
APK Studio is powered by Qt Framework, ApkTool and uber-apk-signer
Click to expand...
Click to collapse
Screenshots:
{
"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"
}
​
Features:
Disassembling & Rebuilding APKs
Code Editor with Syntax Highlighting (java, smali, xml & yml)
Built-in Image viewer for Resources
Single-click APK Signing with embedded key-store (New)
Android Signing scheme v2 Support (New)
Flexible Keystore & Key-Alias import
Automatic Zip-Aligning with embedded zipalign (New)
Single-click App Install to device
Frameworks Support
What’s new?
v4.0.3
Added Browse Files under Project menu
Auto Save all opened files before building
Install button added in ToolBar
v4.0.2
Added Support for Android Signing scheme v2 (7.0+) (uber-apk-signer)
Dependency on zipalign binary removed (except for linux-x86) (uber-apk-signer)
KeyStore import made optional (APK will be signed with embedded KeyStore by default) (uber-apk-signer)
Fixed original APK being overwritten (modified apk will have ‘_mod’ in its name)
Minimum JDK 8 required (instead of JDK 7) (uber-apk-signer)
Replaced Post-Signing ‘Open folder’ button with ‘install’ button (for better automation)
Fixed and updated links, strings etc.
Optimized Portable Binaries (linux x64 and windows x86)
Bundled all Qt dependencies for better UI rendering
Links:
Project site
Download
Source
Bug Report
Credits:
vaibhavpandeyvpz for original apkstudio project
iBotPeaches, brutall and JesusFreke for ApkTool
patrickfav for uber-apk-signer
probonopd for linuxdeployqt
How To Use APK Studio​
Deassembling (Decoding):
Open an APK
and select Decode or
Open existing Project
and select apktool.yml file
Hacking the App:
Click on
to show/hide Project structure panel
Edit app_permissions etc. in AndroidManifest.xml file
Edit or replace strings, icon resources etc. in res directory
Edit application logic in smali language in smali directory
Save
before closing
the edited files
Rebuilding the APK:
Build
the modified app and Sign
it.
Then you can install
it on your device too.
Troubleshooting:
Make sure you satisfy these requirements of APK Studio.
Always check Console
output if anything goes wrong.
From that try to figure out what went wrong and how to fix it.
If nothing works, Upload Console output somewhere like Pastebin and then Open an issue here.
Great. Now downloading. Will try later.
knoacc said:
Great. Now downloading. Will try later.
Click to expand...
Click to collapse
Thanks and good luck with that. Will be happy to hear your thoughts on it.
can i reskin apk from playstore with this ?
Sent from my Redmi Note 4 using Tapatalk
tetranova said:
can i reskin apk from playstore with this ?
Click to expand...
Click to collapse
Yes. You can. It's a kind of purpose APK Studio serves well.
How to use for uber driver app.
clarkswalabis said:
How to use for uber driver app.
Click to expand...
Click to collapse
I'm not sure what you want modify in that app but the process is simple: You open the uber-driver-blah-blah.apk > decode it > edit smali code or replace resources > build > sign > install
Check out User Guide above in Post #2
Well, this is to inform you all that APK Studio has been updated recently. Grab the latest binary from GitHub.
Also, if anyone has access to MacOS and can compile APK Studio for Mac, please share it on GitHub repo. Source can be found on GitHub.
Code:
$ java -Xmx256m -jar C:/Users/aximo/.apkstudio/vendor/apktool.jar -f d C:/Users/aximo/Desktop/tjk351.apk -o C:/Users/aximo/Desktop/tjk351_mod
I: Using Apktool 2.3.1 on tjk351.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
S: WARNING: Could not write to (C:\Users\aximo\AppData\Local\apktool\framework), using C:\Users\aximo\AppData\Local\Temp\ instead...
S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable
I: Loading resource table from file: C:\Users\aximo\AppData\Local\Temp\1.apk
I: Regular manifest package...
I: Decoding file-resources...
Exception in thread "main" java.lang.NullPointerException
at brut.androlib.res.decoder.AXmlResourceParser.getNonDefaultNamespaceUri(AXmlResourceParser.java:312)
at brut.androlib.res.decoder.AXmlResourceParser.getAttributeNamespace(AXmlResourceParser.java:299)
at org.xmlpull.v1.wrapper.classic.XmlPullParserDelegate.getAttributeNamespace(XmlPullParserDelegate.java:176)
at org.xmlpull.v1.wrapper.classic.StaticXmlSerializerWrapper.writeStartTag(StaticXmlSerializerWrapper.java:267)
at org.xmlpull.v1.wrapper.classic.StaticXmlSerializerWrapper.event(StaticXmlSerializerWrapper.java:211)
at brut.androlib.res.decoder.XmlPullStreamDecoder$1.event(XmlPullStreamDecoder.java:83)
at brut.androlib.res.decoder.XmlPullStreamDecoder.decode(XmlPullStreamDecoder.java:141)
at brut.androlib.res.decoder.ResStreamDecoderContainer.decode(ResStreamDecoderContainer.java:33)
at brut.androlib.res.decoder.ResFileDecoder.decode(ResFileDecoder.java:124)
at brut.androlib.res.decoder.ResFileDecoder.decode(ResFileDecoder.java:109)
at brut.androlib.res.AndrolibResources.decode(AndrolibResources.java:264)
at brut.androlib.Androlib.decodeResourcesFull(Androlib.java:132)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:124)
at brut.apktool.Main.cmdDecode(Main.java:163)
at brut.apktool.Main.main(Main.java:72)
Process exited with code 1
whats wrong ?
tunxaximo said:
whats wrong ?
Click to expand...
Click to collapse
This is apktool related issue and I've no idea why it's failing to decode particular XML. Please open an issue in apktool thread with above logs.
Sorry I have some question:
How to install at windows 10?
can this open on android studio?
if can how to open it?
zeroyjk said:
Sorry I have some question:
How to install at windows 10?
can this open on android studio?
if can how to open it?
Click to expand...
Click to collapse
Questions are fine
First, you don't need to install APK Studio because it's portable, just follow download link, download apkstudio-v4.x.x-windows_x86.zip file and extract it. You can then simply run apk-studio.exe .
No. It can't be opened in android studio, it's a standalone app.
hi
first i want to say thx for this great tool!
i have a request for maybe next release, could you pls add a project tree in the view section, cause if i have 2-3 projects, i can only see the last one and im not able to choose other projects!!!
thx
this would be amazing for OSX, I have followed instruction to build but to be honest its above me!
Really like APK Studio for quick changes.
Having issue with a simple change in a java file (changing variable from false to true). No errors are reported in APK Studio console - apk builds and installs correctly, however, when looking at the java code after build, the variable doesn't change. It seems that the APK Studio build process is not recompiling the modified java code.
Is there a build setting required to recompile the apk (including the modified java code)?
Any assistance would be appreciated.
------------
How does one go about setting up the "signing" portion in the settings?
How do you set up the keystore, keystore password, alias, and alias password?
Also, should zipalign be checked?

Categories

Resources