Use Apktool command line on Android - Android General

I have used the excellent ApktoolX, (https://androidfilehost.com/?a=show&w=files&flid=66185), and openJDK by dongfangxunlei, (https://github.com/dongfangxunlei/openjdk/wiki/How-to-play-with-apktool-on-android), posted by @pqy330 here - https://forum.xda-developers.com/showpost.php?p=77459735&postcount=386, and they both work well, but, for one, I ran into a problem where my current rom has some system configuration that makes the framework inaccessible when trying to recompile any apk besides framework-res, and I was able to work around it using this method in recovery terminal, and for two, some people feel more familiar and more control using the command line. I figured out how to do it, using files from the projects posted above.
I would like to give full credit, but, as far as I can tell, Androblack is not on XDA, and I don't know if pqy330 is the author of those files or not. pqy apktool for Android goes back several years, and I've never seen much on any American sites to indicate exactly where it's coming from. Anyone knows better, let me know.
Requirements:
- Openjdk installer for armv7/arm64 or for x86_64 from the link above, or same files from ApktoolX.
- Root
- Good file manager (I prefer Mixplorer)
Instructions:
- Download and install openjdk installer for armv7/arm64 or for x86_64, from the link above. Open app, and go through each screen, (openjdk, Apktool, and Tomcat), selecting 'check', then 'download', then 'install'. When all done, you will have a directory on your phone, /data/data/per.pqy.openjdk/.
- Copy the contents of /data/data/per.pqy.openjdk/openjdk/ to /system/usr/local/, (you may have to create /system/usr/local/).
- Copy the Apktool.jar from /data/data/per.pqy.openjdk/ to /system/usr/local/bin, (or just download latest from Apktool site - it's the same), and rename it if you want. You can also mess around with Apktool wrapper script if you want. It should work. I didn't bother with it, because I just made scripts.
- Chmod 0755 -R /usr/local/bin/
- Now you are set up to use Apktool as usual from command line.
Without the use of the wrapper script, you will have to use
Code:
java -jar apktool.jar
plus usual Apktool commands. I just made a script with those commands, and put it in /system/bin/.

Update here - now working for me without having to use terminal in recovery - https://forum.xda-developers.com/showpost.php?p=78984858&postcount=393

Related

[How To][Linux] Optware + ssh + samba + transmission + flexget

Yep, you read that correctly. I have optware, ssh, samba, transmission, and flexget working on my Minix X5 Mini. This should work for any rooted device which has an adb connection enabled. This will work on the original ROM. In fact, I use the stock ROM. For those not using a Minix device this should work on any ARM device. Sorry but all the binaries are built on ARM.
JUST AS EVERY OTHER DEVELOPER: I AM NOT RESPONSIBLE IF YOU BRICK YOUR DEVICE! MAKE A BACKUP!
Requirements:
Linux box with adb (don't ask me about windows, I don't support bad habits)
clockworkmod (for a backup)
root
internet connection
Process:
Make a backup of your ROM!
Download files (gitHub)
You have two options here:
Download the zip via https://github.com/erichlf/AndroidSeedBox/archive/master.zip and unzip it.
Clone the repo using git via 'git clone [email protected]:erichlf/AndroidSeedBox.git'
Make script executable
chmod +x optware-etc.sh
Obtain adb connection to device (covered in another thread)
Gain root access on local machine (adb seemed to require this for things to work)
sudo su
Run script and follow directions
./optware-etc.sh
Use SManager to run /opt/home/root/sysinit at every restart.
Notes:
The script can be modified to change the various programs that I install. You could exchange transmission for deluge for example.
Transmission can be accessed from the minix through localhost:9091 or from some other machine using your ip-address and the port 9091. If that doesn't work you should edit the config file located at /opt/home/root/.config/transmission-daemon/settings.json
username: root
password: you provided this in the install script
Without SManager nothing will start automatically. However, if you have a ROM which has init.d support you can move the scripts in /opt/etc/init.d to /etc/init.d I would suggest maybe linking the two instead of just moving the scripts or possibly adding a script to /etc/init.d which runs the items in /opt/etc/init.d The reason is because when installing things using ipkg the startup scripts will be placed in /opt/etc/init.d and not /etc/init.d However, it is extremely important that optware is started, and this is partly what sysinit accomplishes.
To list available packages
ipkg list
To install a new package use the command
ipkg install <new package>
To remove a package use the command
ipkg remove <package to remove>
cron is weird and I couldn't get it to work like it should, but I got it to work
While on the Android device (ssh or terminal emulator)
Create a .crond file in the home directory of your device (/opt/home/root/) with some schedule in it. Remember to leave a blank line at the end of the file.
Tell cron about the .crond file
crontab -u root /opt/home/root/.crond
Make sure cron sees the cron file
crontab -l
If you want to edit your cronfile use a text editor and edit the file directly and then tell cron about the file again.
Many things are installed in what seem like strange places, so use
which <binary you are looking for>
Feel free to help develop the code. I think what would be best is an update.zip or a CWM flashable zip. Right now I don't know how to do this, but once I get more time I will look into it. So, any help on this front is welcomed.
Enjoy!
I really wish you would have kept the repo up. It seems kind of pointless to go through all that trouble just to delete the repo and leave people wondering what you did.
I have been busy and didn't update this particular post, since there had been no activity on it.
git clone [email protected]:erichlf/androidseedbox.git
https://bitbucket.org/erichlf/androidseedbox/get/master.zip
Sorry, I didn't need to be rude. I was just excited to find this and then sad when it was gone. Thanks for pointing me in the right direction!

[GUIDE]Cross Compiling C/C++ for ARM on Linux

I wrote this guide to make it easy for everyone to be able to cross compile c/c++ for android, the easy way that I know. I admit, I am a total n00b to c/c++. I started learning to cross compile when I got my new nexus 9 for christmas. I, for some reason, couldnt get busybox installed on it. So, I had to manually compile and load it on there. After reading a hundred tutorials and none of them working, I got frustrated. Finally, I compiled a working version. And it was SO EASY. Anyway, Im specifically giving instructions for Ubuntu 14.04/14.10. First thing you need to do is download a package called binutils-arm-linux-gnueabi.
- sudo apt-get install binutils-arm-linux-gnueabi
- sudo apt-get install binutils-aarch64-linux-gnu (for aarch64, or arm 64bit, or armv8)
- sudo apt-get install binutils-arm-linux-gnueabihf (for armhf)
To compile busybox for your platform, you must download the source package you want to compile from http://busybox.net/downloads/. Then extract it
- tar xvf busybox.tar.gz
Then, cd into your root busybox folder.
- export ARCH=arm
- export CROSS_COMPILE=arm-linux-gnueabi- (dont forget the trailing dash(-))
This will setup your variables for compilation. Then
- make menuconfig (if you dont get a config menu, you need to "sudo apt-get install libncurses5-dev")
Now, go into the busybox settings -> Build options. Select the option "build busybox as static executable". You can select/deselect options by hitting the space bar. [ESC] key will take you back. Make sure to save your new configuration. Its almost time to compile! One last thing. If you want to add your name to it, go into the Makefile in the root busybox folder. At the top of the file, where it says EXTRAVERSION = .git, you can add something like -bynarie or whatever you want. That way when you run busybox on the terminal emulator on android, it will print out something like "BusyBox v1.24.0-bynarie". OK! Time to compile. Really simple:
- make install
This will compile every applet, and put everything in a folder called _Install. You will have busybox and busybox_unstripped in the root directory. Please, be aware that this busybox puts an applet named "su" in the bin folder in the _install folder. So, DO NOT COPY THE SU APPLET INTO YOUR ANDROID BIN FOLDER, OR YOU WILL LOSE ROOT!!! Now, to verify it compiled to the right architecture, do "file busybox" at the term and it should spit out something like "ELF 32bit ARM executable". If this is the case, congrats. We have successfully compiled busybox for android arm!! Copy the needed files over to your device and set permissions and you are done. The suggested way to move the busybox binary to your device is as follows:
- adb push busybox /data/local/tmp/busybox
- open adb shell and do "chmod 755 /data/local/tmp/busybox" or chmod it on your linux box before pushing.
- open file manager on device and move busybox to /system/xbin
- If properly done, should work.
For other nix programs like tar, the procedure is as follows:
- Open term, cd into root source folder
- ./configure CC="arm-linux-gnueabi-gcc" CPP="arm-linux-gnueabi-cpp" --host=arm-linux-gnueabi
- make
The CC variable is your C compiler command and the CPP variable is the C preprocessor, if you need to add a C++ compiler just add CXX="arm-linux-gnueabi-g++" but TAR is specifically C only. You can add all three variables I would assume to be safe. Most of the time, the readme or install documents will give you some guidance on cross compiling. But, this is how I successfully compiled TAR for arm and aarch64.
If you want to compile small/single source file c/c++, you will be using the same tools, but in a different way. Cd into your source file directory, and depending on which type of source it is (c or cpp), you will do the following:
- arm-linux-gnueabi-gcc helloWorld.c -static -o helloworld.out (for C)
- arm-linux-gnueabi-g++ helloWorld.cpp -static -o helloworld.out (C++)
Yep, its that easy. I cant guarantee 100% this will work on everything, but its a good starting point. And you dont even have to fool with the Android NDK. I find that the android ndk would mostly benefit "Apps" that need to integrate c/c++ code into them, not little console apps run from the terminal emulator. I hope someone finds this guide useful and if anyone has any problems trying to get somethin to work, you can respond and I will do my best to help.
thanks

[GUIDE/DEV] Microsoft Android "Emulator"

I can't find much of any information on hacking the microsoft android emulator. Ideally, I'd like to get it working with superuser, exposed, etc, so it can be a fully functional way to see how android itself and apps work in different environments, all from my desktop. Also, I can just play around with stuff that I wouldn't touch on my tablet for fear of bricking it. I like playing with things.
Disclaimer: I'm not interested in maintaining anything, but as mentioned above, I can't find any information. Therefore, I'm simply posting what information I have here, in the hopes it will interest someone else enough to take a harder look at it. My original post was over here, but I've expanded beyond simply adding supersu to the image.
Things I can't do:
- Install superuser
- Install Xposed
- Install Google Play for anything more recent than KitKat
- Install recovery scripts
Things I can do:
- Run commands as root.
- Install Google Play Services on KitKat
- Change the screen resolution
- Change the amount of internal disk space
- Change the amount of memory and cpu cores available.
- Install busybox
- Flash simple scripts that don't require recent versions of cwm/twrp/other modern recovery.
----------------------------------------
Background information: The Microsoft Android "Emulator" is actually a HyperV virtual machine. When you install it, it enables the HyperV virtualization service in windows*. The effect of this is that instead of running android by emulating an arm processor, it runs android natively, with far better performance, by using Microsoft's hypervisor that's built into windows (win8+). You can work with it with Visual Studio and with Android Studio, but I don't use either much, so I can't help you with that. You can download it from Visual Studio if you want to (VS 2015 is free), or you can download a standalone version. I don't know if there's a difference between the two.
* I'm not sure if it installs the HyperV GUI as well, as I already use HyperV for other things and had it already installed. If you need to do so, you can install the GUI by going to add-remove windows features in the control panel ('appwiz.cpl' from the control panel).
----------------------------------------
Modifying the properties of the emulated system.
Configuration file location: After you create a device, the .cfg file for it will be located in %localappdata%\Microsoft\VisualStudioEmulator\Android\Containers\Local\Devices
To change the resolution: So far, I haven't identified any supported resolutions other than those listed in the device profiles list. So far, supported resolutions that I've used successfully are 480x800, 720x1080. You can edit the .cfg file for the specific device that you want to change the resolution of, and change the `device.screen.resolution=` line to any supported (see previous) resolution.
To change the size of the internal storage, follow the instructions here. You'll need an ubuntu cd; minimal install cd is fine if you have slow internet/computer or low ram.
To change the amount of ram or processors allocated to the virtual machine: Open Hyper-V manager, right-click the appropriate VM and click settings.
- Change the ram allocation by clicking Memory in the list at left. I do not know what happens if you try using Dynamic Memory; if it works, it should be more memory-efficient, but I left that alone. Now update the `device.vm.ram.size=` line in the .cfg file.
- Change the cpu allocation by clicking the Processor field. Please note that if you have hyper-threading, you should only use half your logical processors as cpus; the hyperthreaded 'cores' won't work as well (according to information online; you can check number of logical processors in windows task manager's performance tab). Now update the 'device.vm.cpu.count=' line in the .cfg file
----------------------------------------
Info on "recovery" and "flashing" - Installing google play
So far, I have only managed to get Google Play Services working on KitKat. I can't get it to work on Lollipop or Marshmallow (and haven't tried earlier versions at all); the virtual machine does *not* have a recovery or fastboot because of the way it works, and I haven't figured out any way of installing such. Instead, there's a simple shell file called install_zip.sh. It does not work with modern flashable zips that require TWRP/CWM; it only works with the old style zip designed for a specific architecture. As such, opengapps flashable zips will not work.
To install Google Play Services on KitKat (4.4.4)
1. Inside the emulator, open the browser and go to http://www.teamandroid.com/gapps/ and download the file linked under Gapps CyanogenMod 11.
2. Open the window the the android VM from the Hyper-V Manager to get console access. If you have ADB installed locally, you can use that in the future, but getting the VM's shared IP requires terminal access anyways (run `ip addr` as root inside the emulator to get the list of IPs).
3. Run `adb shell` to get access to the root shell (yes, it's that easy).
4. Run `install_zip.sh /sdcard/Downloads/gapps-kk-20140105-signed.zip` (or whatever the name/path for the downloaded gapps file is).
5. It should complete successfully. Now type exit to exit the adb shell, and close the hyper-v console window (the android emulator will continue running).
6. Click the 'X' at the top right of the Emulator to shut down/close the VM
7. Start the emulator back up. You should now have access to Google Play Services.
----------------------------------------
Busybox
The emulator does not come with a preinstalled copy of busybox. It does come with the android toolbox, but this has only a very minimal amount of commands in it. The instructions below are for installing stericson's busybox.
1. Get a copy of stericson's busybox from somewhere--your personal device, etc, it doesn't matter. The easiest way is to either install it on a real android device and grab it with airdroid (or other), or to use a play store scanner to get it. The file name will probably be something like stericson.busybox.apk.
2. Rename it to .zip so you can access the contents.
3. Extract the busybox-x86.png file from the 'assets' folder inside the zip, and rename it to `busybox`.
4. In the Android Emulator, click the >> button for tools, and click the sdcard header. Choose a folder (a new one on your dekstop will do) and tell it to pull the contents of the sdcard to the folder.
5. Move the busybox file into the Download folder that you just pulled from the sdcard. If you created a folder for this, you can delete it now.
6. Back in the android emulator, push the folder structure back into the sdcard; this will move the busybox onto the emulator.
7. Open the HyperV console for the emulator or open a terminal app in the android emulator (installing it is up to you)
8. Run `adb shell` to get a root prompt.
9. Run `mount -o rw,remount /system` to remount the system partition as writable
10. Run `cp /sdcard/Download/busybox /system/xbin` to copy the busybox binary over
11. Run `chmod 777 /system/xbin/busybox` to make the busybox binary executable.
12. Run `busybox --install /system/xbin` to copy the busybox binary for all the included applets. I think the -s paramter will symlink the applets to the main binary instead, but I'm not sure.
13. Type exit in the adb shell.
14. You can now run busybox commands in the terminal, and use apps that require busybox to be installed.
Now that you have busybox installed, you can use unzip, etc.
----------------------------------------
Hacking the OS itself.
The android emulator uses a VHD file for the disks. I've mounted the vhd file inside an ubuntu server to play with, and discovered several things about the way it works. The first partition is the boot partition, it contains 3 files:
- kernel - the android/linux kernel
- ramdisk - the ramdisk for the root filesystem. gzipped cpio archive.
- cmdline - the kernel parameters(? not sure what to call this)
I've tried modifying the ramdisk to add the init files for the superuser, but this doesn't seem to work properly; when I boot up the vhd file, I can open the console with hyper-v manager (the android emulator machines show up there automatically), and when it gets to the ramdisk, it says so--then the caps/num/scroll lights start flashing and it hangs. I haven't gotten any further than that at this time.

perl 5.22 for android

if you really want perl for android, get the tar.gz from here http://corion.net/perl-andr-oid/
it seems to be the full perl distribution, but you can just grab the binary, that alone is more than enough for most
you have to manually extract the binary, copy it to /system/xbin and chmod 755
im on 5.1.1 and used twrp to copy
after you extract the tar the binary is /perl/bin/perl5.22
i dont know how to make a flashable zip
the only other working perl binaries for android, that i know of, were 5.20 from sl4a (wich i believe was posted here before as a flashable zip), one from zshaolin, and 5.7 from tinyutils
5.20 doesent work on android>5 cause of pie (position independent executables) security enforcement
5.7 works but its too old, from the year 2000
this one works on android>5 and is twice as fast as 5.7 (on my samsung galaxy s5 g901f at calculating prime numbers smaller than 100,000)
404
The link is down. I _need_ perl, and sl4a doesn't work on my new phone. Why can we get every language but perl on android? It lines up with the way I think, and it excels at parsing text. If anybody knows how to help get perl onto a late model Samsung. Please help!
http://www.2shared.com/file/fozbcZVV/aclp.html
click the smaller "download" button, wich is lower
this is a flashable zip made for my own usage,
it includes perl 5.22, curl, lua, aria2c, gnu grep, gnu sed, gnu awk
if you use any command line programs like these, on android please post them, i am interested
cheers
eternalMortality said:
The link is down.
Click to expand...
Click to collapse
Link works if you type correctly.
http://corion.net/perl-android/
I really appreciate the zip, but I am having difficulties importing anything. The documentation says I have to recompile perl to change @Inc so it points to a directory that exists. But that's a little beyond my abilities. Can someone please help with this?
Termux - Android terminal w/Perl (no root required)
There is an app called Termux which now seems to have perl working on it...
termux.com
perlmonks.org /?node_id=1211709
Once installed - I found these to be helpful (
Code:
pkg install perl
pkg install make
pkg install clang
pkg install curl
pkg install wget
pkg install lftp
pkg upgrade
termux-setup-storage
cpan
cpan install HTTP::TINY
cpan install (your other perl reference libraries here)

[ROOT] [FRAMEWORK-RES MOD] Optimize your WiFi [MARCH 2018]

Hello everyone. I am excited to announce I've found a successful method to edit the contents of the Android System, also known as framework-res. This method has allowed me to make a massive amount of modifications to the framework system, including unlocking several features and or settings Amazon blocks us from using or accessing. The guide I am writing today, is just one example of that.
I've been contacted a few times here and there, users asking if I knew how to improve their WiFi reception as some feared Amazon may be intentionally slowing down connections. Until now, I was unable to determine all of the features or settings related to WiFi, that we have been blocked from seeing/using/accessing. This guide will show you how to unlock those settings and features to improve your WiFi reception.
!!!!*****WARNING*****!!!!
Modifying the framework can be extremely damaging to your device. Making the wrong edit, even in the slightest, can result in permanent damage to your device. DO NOT MAKE ANY OTHER EDITS TO THE FRAMEWORK, OTHER THAN THE ONES OUTLINED IN THIS GUIDE. IF YOU BRICK YOUR DEVICE, OR DAMAGE IT IN ANY WAY, I CANNOT BE HELD RESPONSIBLE. If you choose to go forward from here, you are responsible for any and all actions. If you aren't prepared for the possibility you may brick your tablet, this guide is not for you. NOTE: I've NEVER permanently bricked a device, but everyone's devices are different.
I have tested this method extensively and made extensive edits to the framework. I have bricked my tablets many times, sometimes several times a day. I risked and continue to risk losing my devices to damages by bringing you these next several guides. Please thank me when you've successfully completed this guide
Requirements:
-Rooted HD 10 or Fire 7 tablet
-Desktop PC with Android SDK installed
-APKtool
-Java (APKtool requires Java)
-Notepad++ (Install this first)
-7-Zip or like minded program
-adbd Insecure application
-A lot of patience and time
Notes:
-Works really well on the HD 10. Extensively tested.
-Works on the Fire 7, but with a much lower success rate. For some reason the Fire 7 gets very irritated very quickly, more often than not.
Instructions:
1. Go to the Java website and download the two files, JDK and JRE (not the JRE server) and install them. When doing so, make sure the installation path is just inside C:\ directory NOT C:\Program Files etc. It's much easier to have all your tools in the same directory for easy access. NOTE: You won't be able to use this guide without installing Java as it's required by APKtool.
{
"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"
}
2. Go to the APKtool website and download the tool and required files. They will also be placed into the C:\ directory. Installation instructions are in the same place. PLEASE READ THEM VERY CAREFULLY!
3. When you've completed the above tasks, plug your tablet into your PC. On your PC, open an ADB window. You need to pull one file from your tablet, framework-res.apk and send it to the APKtool folder in C:\APKtool (assuming that's where you installed APKtool). For this guide, your file(s) MUST be pulled from your device using ADB. DO NOT manually place them into the folder(s).
Code:
adb pull /system/framework/framework-res.apk C:\APKtool
4. Once the framework apk is in the APKtool folder, open another command prompt window from the APKtool folder by holding down shift on the keyboard + right click on the mouse and select "open command window here." In this new command window type:
Code:
APKtool
If you installed everything correctly, text will appear with a few commands you can issue APKtool.
5. Now we need to decompile the framework. In APKtool command window type the following command:
Code:
apktool d framework-res.apk
6. The framework-res.apk should then decompile into a folder inside your APKtool folder. Open the framework folder and navigate to:
Code:
/res/values/
7. Open the bools.xml file by right clicking on it and selecting Notepad++ as the editor. At this point quite a bit of code, or configurations will appear. Please look for the list of items below and change the values of them from 'false' to 'true':
Code:
"config_wifi_dual_band_support"
"config_wifi_background_scan_support"
"config_wifi_enable_disconnection_debounce"
"config_wifi_enable_5GHz_preference"
"config_wifi_framework_enable_associated_autojoin_scan"
"config_wifi_framework_enable_associated_network_selection"
"config_wifi_only_link_same_credential_configurations"
"config_wifi_batched_scan_supported"
"config_wimaxEnabled"
8. Now save the file and close Notepad++. Back in the framework folder, open the arrays.xml file. Look for the following line of code:
Code:
<string-array name="networkAttributes">
<item>wifi,1,1,2,-1,true</item>
<item>tedongle,49,49,1,-1,true</item>
9. In the first line above, wifi,1,1,2,-1,true, change the '2' to a '1'. Delete the second line completely, but leave the 'item' tags. Replace it with the following line of code:
Code:
<item>wifi_p2p,13,1,0,-1,true</item>
I have personally marked each of these configurations as true to test battery drainage, and there was very little if any at all. Though the configuration for "background" scanning is enabled, I don't believe it's the same background scanning like the aggressive ones manufacturers and providers place in the general WiFi settings.
10. Save the files and close them. Head back to the APKtool folder and open the command window again, if you closed it. Type the following command:
Code:
apktool b framework-res
11. You might see a few errors, but they can be ignored as long as the window tells you the APK was successfully created. If it was, go to the APKtool folder, tap on the framework-res folder, then tap on the 'dist' folder. Your new framework is inside. Right click on the NEW framework-res.apk and select "open archive." Go back to the main APKtool folder and right click on the ORIGINAL framework-res.apk and open it as an archive too.
12. Drag the 'res' folder from the newly generated APK to the old APK. If using 7-Zip, just click ok when the window pops up. Now do the same for the resources.arsc file and if usong 7-Zip, just select ok. If using WinRAR, you have to set the compression to STORE before you click ok.
13. Place the framework-res.apk you just dragged those files to, into your adb folder on your PC and plug your tablet into it. Download and install adbd insecure and check the box to make adbd insecure. Now open an ADB window. It's time to install the framework. In two commands, you'll be done. First type:
Code:
adb remount
adb push framework-res.apk /system/framework/framework-res.apk
After you installed the framework, if you don't go into a bootloop within 10 seconds or less, you have most likely been successful, but you still have to reboot. Once you do, You'll notice a new toggle in your advanced WiFi settings. For an added bonus, you can edit your build.prop to specify the range of WiFi channels in your country. If in the US, you will add the number '11' and if in Europe and Asia, you want to put a 13 or 14.
Code:
ro.wifi.channels=11
OR
Code:
ro.wifi.channels=13
Keep an eye on me the for the next week or more. I have a lot more goodies to share, and I keep finding more
DragonFire1024 said:
Hello everyone. I am excited to announce I've found a successful method to edit the contents of the Android System, also known as framework-res. This method has allowed me to make a massive amount of modifications to the framework system, including unlocking several features and or settings Amazon blocks us from using or accessing. The guide I am writing today, is just one example of that.
I've been contacted a few times here and there, users asking if I knew how to improve their WiFi reception as some feared Amazon may be intentionally slowing down connections. Until now, I was unable to determine all of the features or settings related to WiFi, that we have been blocked from seeing/using/accessing. This guide will show you how to unlock those settings and features to improve your WiFi reception.
!!!!*****WARNING*****!!!!
Modifying the framework can be extremely damaging to your device. Making the wrong edit, even in the slightest, can result in permanent damage to your device. DO NOT MAKE ANY OTHER EDITS TO THE FRAMEWORK, OTHER THAN THE ONES OUTLINED IN THIS GUIDE. IF YOU BRICK YOUR DEVICE, OR DAMAGE IT IN ANY WAY, I CANNOT BE HELD RESPONSIBLE. If you choose to go forward from here, you are responsible for any and all actions. If you aren't prepared for the possibility you may brick your tablet, this guide is not for you. NOTE: I've NEVER permanently bricked a device, but everyone's devices are different.
I have tested this method extensively and made extensive edits to the framework. I have bricked my tablets many times, sometimes several times a day. I risked and continue to risk losing my devices to damages by bringing you these next several guides. Please thank me when you've successfully completed this guide
Requirements:
-Rooted HD 10 or Fire 7 tablet
-Desktop PC with Android SDK installed
-APKtool
-Java (APKtool requires Java)
-Notepad++ (Install this first)
-7-Zip or like minded program
-A lot of patience and time
Notes:
-Works really well on the HD 10. Extensively tested.
-Works on the Fire 7, but with a much lower success rate. For some reason the Fire 7 gets very irritated very quickly, more often than not.
Instructions:
1. Go to the Java website and download the two files, JDK and JRE (not the JRE server) and install them. When doing so, make sure the installation path is just inside C:\ directory NOT C:\Program Files etc. It's much easier to have all your tools in the same directory for easy access. NOTE: You won't be able to use this guide without installing Java as it's required by APKtool.
2. Go to the APKtool website and download the tool and required files. They will also be placed into the C:\ directory. Installation instructions are in the same place. PLEASE READ THEM VERY CAREFULLY!
3. When you've completed the above tasks, plug your tablet into your PC. On your PC, open an ADB window. You need to pull one file from your tablet, framework-res.apk and send it to the APKtool folder in C:\APKtool (assuming that's where you installed APKtool). For this guide, your file(s) MUST be pulled from your device using ADB. DO NOT manually place them into the folder(s).
Code:
adb pull /system/framework/framework-res.apk C:\APKtool
4. Once the framework apk is in the APKtool folder, open another command prompt window from the APKtool folder by holding down shift on the keyboard + right click on the mouse and select "open command window here." In this new command window type:
Code:
APKtool
If you installed everything correctly, text will appear with a few commands you can issue APKtool.
5. Now we need to decompile the framework. In APKtool command window type the following command:
Code:
apktool d framework-res.apk
6. The framework-res.apk should then decompile into a folder inside your APKtool folder. Open the framework folder and navigate to:
Code:
/res/values/
7. Open the bools.xml file by right clicking on it and selecting Notepad++ as the editor. At this point quite a bit of code, or configurations will appear. Please look for the list of items below and change the values of them from 'false' to 'true':
Code:
"config_wifi_dual_band_support"
"config_wifi_background_scan_support"
"config_wifi_enable_disconnection_debounce"
"config_wifi_enable_5GHz_preference"
"config_wifi_framework_enable_associated_autojoin_scan"
"config_wifi_framework_enable_associated_network_selection"
"config_wifi_only_link_same_credential_configurations"
"config_wifi_batched_scan_supported"
"config_wimaxEnabled"
8. Now save the file and close Notepad++. Back in the framework folder, open the arrays.xml file. Look for the following line of code:
Code:
<string-array name="networkAttributes">
<item>wifi,1,1,2,-1,true</item>
<item>tedongle,49,49,1,-1,true</item>
9. In the first line above, wifi,1,1,2,-1,true, change the '2' to a '1'. Delete the second line completely, but leave the 'item' tags. Replace it with the following line of code:
Code:
<item>wifi_p2p,13,1,0,-1,true</item>
I have personally marked each of these configurations as true to test battery drainage, and there was very little if any at all. Though the configuration for "background" scanning is enabled, I don't believe it's the same background scanning like the aggressive ones manufacturers and providers place in the general WiFi settings.
10. Save the files and close them. Head back to the APKtool folder and open the command window again, if you closed it. Type the following command:
Code:
apktool b framework-res
11. You might see a few errors, but they can be ignored as long as the window tells you the APK was successfully created. If it was, go to the APKtool folder, tap on the framework-res folder, then tap on the 'dist' folder. Your new framework is inside. Right click on the NEW framework-res.apk and select "open archive." Go back to the main APKtool folder and right click on the ORIGINAL framework-res.apk and open it as an archive too.
12. Drag the 'res' folder from the newly generated APK to the old APK. If using 7-Zip, just click ok when the window pops up. Now do the same for the resources.arsc file and if usong 7-Zip, just select ok. If using WinRAR, you have to set the compression to STORE before you click ok.
13. Now open an ADB window. It's time to install the framework. In two commands, you'll be done. First type:
Code:
adb remount
adb push C:\apktool\framework-res.apk /system/framework/framework-res.apk
After you installed the framework, if you don't go into a bootloop within 10 seconds or less, you have most likely been successful, but you still have to reboot. Once you do, You'll notice a new toggle in your advanced WiFi settings. For an added bonus, you can edit your build.prop to specify the range of WiFi channels in your country. If in the US, you will add the number '11' and if in Europe and Asia, you want to put a 13 or 14.
Code:
ro.wifi.channels=11
OR
Code:
ro.wifi.channels=13
Keep an eye on me the for the next week or more. I have a lot more goodies to share, and I keep finding more
Click to expand...
Click to collapse
Would it be possible for you to post your modified framework-res file so those of us less skilled could just push your tested and working file. I would assume you will need a version for each OS aka one for 5600, 5601 and 5610
adm1jtg said:
Would it be possible for you to post your modified framework-res file so those of us less skilled could just push your tested and working file. I would assume you will need a version for each OS aka one for 5600, 5601 and 5610
Click to expand...
Click to collapse
I'm not so sure that a framework-res.apk from one tablet is good for another, but there's no reason that it wouldn't work.
I experience a lot of wifi issues on the 7th Gen HD 10, but I'm not sure if messing with the framework is worth the risk...
I can tell that the 5GHz range of the tablet is extremely bad, I basically have to be in the ssame room where my router is
and that 2.4GHz is sometimes very slow, while it works fine on my phone
adm1jtg said:
4. Once the framework apk is in the APKtool folder, open another command prompt window from the APKtool folder by holding down shift on the keyboard + right click on the mouse and select "open command window here." In this new command window type:
If you installed everything correctly, text will appear with a few commands you can issue APKtool.
5. Now we need to decompile the framework. In APKtool command window type the following command:
6. The framework-res.apk should then decompile into a folder inside your APKtool folder. Open the framework folder and navigate to:
7. Open the bools.xml file by right clicking on it and selecting Notepad++ as the editor. At this point quite a bit of code, or configurations will appear. Please look for the list of items below and change the values of them from 'false' to 'true':
8. Now save the file and close Notepad++. Back in the framework folder, open the arrays.xml file. Look for the following line of code:
9. In the first line above, wifi,1,1,2,-1,true, change the '2' to a '1'. Delete the second line completely, but leave the 'item' tags. Replace it with the following line of code:
I have personally marked each of these configurations as true to test battery drainage, and there was very little if any at all. Though the configuration for "background" scanning is enabled, I don't believe it's the same background scanning like the aggressive ones manufacturers and providers place in the general WiFi settings.
10. Save the files and close them. Head back to the APKtool folder and open the command window again, if you closed it. Type the following command:
11. You might see a few errors, but they can be ignored as long as the window tells you the APK was successfully created. If it was, go to the APKtool folder, tap on the framework-res folder, then tap on the 'dist' folder. Your new framework is inside. Right click on the NEW framework-res.apk and select "open archive." Go back to the main APKtool folder and right click on the ORIGINAL framework-res.apk and open it as an archive too.
12. Drag the 'res' folder from the newly generated APK to the old APK. If using 7-Zip, just click ok when the window pops up. Now do the same for the resources.arsc file and if usong 7-Zip, just select ok. If using WinRAR, you have to set the compression to STORE before you click ok.
13. Now open an ADB window. It's time to install the framework. In two commands, you'll be done. First type:
After you installed the framework, if you don't go into a bootloop within 10 seconds or less, you have most likely been successful, but you still have to reboot. Once you do, You'll notice a new toggle in your advanced WiFi settings. For an added bonus, you can edit your build.prop to specify the range of WiFi channels in your country. If in the US, you will add the number '11' and if in Europe and Asia, you want to put a 13 or 14.
OR
Keep an eye on me the for the next week or more. I have a lot more goodies to share, and I keep finding more
Would it be possible for you to post your modified framework-res file so those of us less skilled could just push your tested and working file. I would assume you will need a version for each OS aka one for 5600, 5601 and 5610
Click to expand...
Click to collapse
I can yes. But be aware if you aren't on the same version 5.6.0.1, then just reinstalling that APK may not work. I'm not entirely sure if the framework APK relies on version specific settings or not. In which case the worst that could happen is when you go to reboot you would be stuck at the boot logo and you would need to reflash stock firmware. I'll do upload it when I get home from work later.
Sent from my Samsung Galaxy S4 using XDA Labs
I'm posting the framework now. There are other tweaks as well, I just don't remember some. You can toggle the Wi-Fi GHZ in advanced Wi-Fi settings. I warn you though, this may not work. I've not tested this method so I'm not responsible for any bricks!
Sent from my Amazon KFSUWI using XDA Labs
freaky2xd said:
I experience a lot of wifi issues on the 7th Gen HD 10, but I'm not sure if messing with the framework is worth the risk...
I can tell that the 5GHz range of the tablet is extremely bad, I basically have to be in the ssame room where my router is
and that 2.4GHz is sometimes very slow, while it works fine on my phone
Click to expand...
Click to collapse
Posted above this reply. I can make a special modification for you later. As of now the setting is set to a 5ghz preference. I can change that later and I'll upload the revised framework this afternoon.
Sent from my Amazon KFSUWI using XDA Labs
adm1jtg said:
Hello everyone. I am excited to announce I've found a successful method to edit the contents of the Android System, also known as framework-res. This method has allowed me to make a massive amount of modifications to the framework system, including unlocking several features and or settings Amazon blocks us from using or accessing. The guide I am writing today, is just one example of that.
I've been contacted a few times here and there, users asking if I knew how to improve their WiFi reception as some feared Amazon may be intentionally slowing down connections. Until now, I was unable to determine all of the features or settings related to WiFi, that we have been blocked from seeing/using/accessing. This guide will show you how to unlock those settings and features to improve your WiFi reception.
!!!!*****WARNING*****!!!!
Modifying the framework can be extremely damaging to your device. Making the wrong edit, even in the slightest, can result in permanent damage to your device. DO NOT MAKE ANY OTHER EDITS TO THE FRAMEWORK, OTHER THAN THE ONES OUTLINED IN THIS GUIDE. IF YOU BRICK YOUR DEVICE, OR DAMAGE IT IN ANY WAY, I CANNOT BE HELD RESPONSIBLE. If you choose to go forward from here, you are responsible for any and all actions. If you aren't prepared for the possibility you may brick your tablet, this guide is not for you. NOTE: I've NEVER permanently bricked a device, but everyone's devices are different.
I have tested this method extensively and made extensive edits to the framework. I have bricked my tablets many times, sometimes several times a day. I risked and continue to risk losing my devices to damages by bringing you these next several guides. Please thank me when you've successfully completed this guide
Requirements:
-Rooted HD 10 or Fire 7 tablet
-Desktop PC with Android SDK installed
-APKtool
-Java (APKtool requires Java)
-Notepad++ (Install this first)
-7-Zip or like minded program
-A lot of patience and time
Notes:
-Works really well on the HD 10. Extensively tested.
-Works on the Fire 7, but with a much lower success rate. For some reason the Fire 7 gets very irritated very quickly, more often than not.
Instructions:
1. Go to the Java website and download the two files, JDK and JRE (not the JRE server) and install them. When doing so, make sure the installation path is just inside C: directory NOT C:\Program Files etc. It's much easier to have all your tools in the same directory for easy access. NOTE: You won't be able to use this guide without installing Java as it's required by APKtool.
2. Go to the APKtool website and download the tool and required files. They will also be placed into the C: directory. Installation instructions are in the same place. PLEASE READ THEM VERY CAREFULLY!
3. When you've completed the above tasks, plug your tablet into your PC. On your PC, open an ADB window. You need to pull one file from your tablet, framework-res.apk and send it to the APKtool folder in C:\APKtool (assuming that's where you installed APKtool). For this guide, your file(s) MUST be pulled from your device using ADB. DO NOT manually place them into the folder(s).
4. Once the framework apk is in the APKtool folder, open another command prompt window from the APKtool folder by holding down shift on the keyboard + right click on the mouse and select "open command window here." In this new command window type:
If you installed everything correctly, text will appear with a few commands you can issue APKtool.
5. Now we need to decompile the framework. In APKtool command window type the following command:
6. The framework-res.apk should then decompile into a folder inside your APKtool folder. Open the framework folder and navigate to:
7. Open the bools.xml file by right clicking on it and selecting Notepad++ as the editor. At this point quite a bit of code, or configurations will appear. Please look for the list of items below and change the values of them from 'false' to 'true':
8. Now save the file and close Notepad++. Back in the framework folder, open the arrays.xml file. Look for the following line of code:
9. In the first line above, wifi,1,1,2,-1,true, change the '2' to a '1'. Delete the second line completely, but leave the 'item' tags. Replace it with the following line of code:
I have personally marked each of these configurations as true to test battery drainage, and there was very little if any at all. Though the configuration for "background" scanning is enabled, I don't believe it's the same background scanning like the aggressive ones manufacturers and providers place in the general WiFi settings.
10. Save the files and close them. Head back to the APKtool folder and open the command window again, if you closed it. Type the following command:
11. You might see a few errors, but they can be ignored as long as the window tells you the APK was successfully created. If it was, go to the APKtool folder, tap on the framework-res folder, then tap on the 'dist' folder. Your new framework is inside. Right click on the NEW framework-res.apk and select "open archive." Go back to the main APKtool folder and right click on the ORIGINAL framework-res.apk and open it as an archive too.
12. Drag the 'res' folder from the newly generated APK to the old APK. If using 7-Zip, just click ok when the window pops up. Now do the same for the resources.arsc file and if usong 7-Zip, just select ok. If using WinRAR, you have to set the compression to STORE before you click ok.
13. Now open an ADB window. It's time to install the framework. In two commands, you'll be done. First type:
After you installed the framework, if you don't go into a bootloop within 10 seconds or less, you have most likely been successful, but you still have to reboot. Once you do, You'll notice a new toggle in your advanced WiFi settings. For an added bonus, you can edit your build.prop to specify the range of WiFi channels in your country. If in the US, you will add the number '11' and if in Europe and Asia, you want to put a 13 or 14.
OR
Would it be possible for you to post your modified framework-res file so those of us less skilled could just push your tested and working file. I would assume you will need a version for each OS aka one for 5600, 5601 and 5610
Click to expand...
Click to collapse
Posted. Look above this reply
Sent from my Amazon KFSUWI using XDA Labs
Thanks can't wait to try, unfortunately I won't have access to my tablet for the next 2 weeks but will definitely try first thing when I get it back.
DragonFire1024 said:
I'm posting the framework now. There are other tweaks as well, I just don't remember some. You can toggle the Wi-Fi GHZ in advanced Wi-Fi settings. I warn you though, this may not work. I've not tested this method so I'm not responsible for any bricks!
Sent from my Amazon KFSUWI using XDA Labs
Click to expand...
Click to collapse
Installed this on my tablet, it seems to have definitely fixed my issue where the tablet would stop stop loading when streaming videos. Thanks
I can't install the apk on my fire hd 10 os 5.6
endleesss said:
I can't install the apk on my fire hd 10 os 5.6
Click to expand...
Click to collapse
Are you trying to install it like a regular APK?
Sent from my Samsung Galaxy S4 using XDA Labs
In step 13, when I type 'adb remount' on adb window, it keeps showing me 'permission denied'.
I'm using os 5.6.1.0 on rooted fire hd 10 by the way.
zxcvbnm76 said:
In step 13, when I type 'adb remount' on adb window, it keeps showing me 'permission denied'.
I'm using os 5.6.1.0 on rooted fire hd 10 by the way.
Click to expand...
Click to collapse
Make sure the box is checked in adb insecure. You have to recheck the box each time you run a command, whether successful or not.
Sent from my Samsung Galaxy S4 using XDA Labs
DragonFire1024 said:
Make sure the box is checked in adb insecure. You have to recheck the box each time you run a command, whether successful or not.
Sent from my Samsung Galaxy S4 using XDA Labs
Click to expand...
Click to collapse
It worked! Thanks for your help.
@DragonFire1024 just got my hd 10 up and running with TONS of help from retyre. Currently on his 5610 img thats pre rooted and pre xposed. If you would be willing to make a 5160 framework-res for me with all your goodies I would be happy to help you test anything you like. If needed I can even upload the framework-res off my install to you for modding.
adm1jtg said:
@DragonFire1024 just got my hd 10 up and running with TONS of help from retyre. Currently on his 5610 img thats pre rooted and pre xposed. If you would be willing to make a 5160 framework-res for me with all your goodies I would be happy to help you test anything you like. If needed I can even upload the framework-res off my install to you for modding.
Click to expand...
Click to collapse
You'll likely have to send me a copy of yours to be on the safe side. There are some parts I cannot change or it gets stuck at the boot logo. If any of those are different from 5.6.0.1 to 5.6.1.0, then it would also get stuck. Send me your framework APK and I'll work on it. Almost done with the FireTabletSettings apk and then I'll overhaul my framework to include all mods instead of single mods and make it available. So my take a little time, but I'll do it
Sent from my Moto E4 using XDA Labs
DragonFire1024 said:
You'll likely have to send me a copy of yours to be on the safe side. There are some parts I cannot change or it gets stuck at the boot logo. If any of those are different from 5.6.0.1 to 5.6.1.0, then it would also get stuck. Send me your framework APK and I'll work on it. Almost done with the FireTabletSettings apk and then I'll overhaul my framework to include all mods instead of single mods and make it available. So my take a little time, but I'll do it
Sent from my Moto E4 using XDA Labs
Click to expand...
Click to collapse
https://bit.ly/2HOv0Rw (framework-res from 5.6.1.0) do you want the settings file as well? If so would it be SettingsProvider.apk you need?
Also have been toying with an idea... If I loaded RETYRE's image for system, clean, then adb pushed your settings and framework files to my system, then used flashfire for a raw system backup and posted the resulting image file, woudn't that be a good way to easily distribute your changes and his... with his and your permission to do so of course.
adm1jtg said:
https://bit.ly/2HOv0Rw (framework-res from 5.6.1.0) do you want the settings file as well? If so would it be SettingsProvider.apk you need?
Also have been toying with an idea... If I loaded RETYRE's image for system, clean, then adb pushed your settings and framework files to my system, then used flashfire for a raw system backup and posted the resulting image file, woudn't that be a good way to easily distribute your changes and his... with his and your permission to do so of course.
Click to expand...
Click to collapse
I would need FireTabletSettings.apk. I suppose it could be done like that, but I honestly don't know. You have my permission to try though. I'm almost done with Version one. I just need to do a few more things.
Sent from my Moto E4 using XDA Labs
adm1jtg said:
Also have been toying with an idea... If I loaded RETYRE's image for system, clean, then adb pushed your settings and framework files to my system, then used flashfire for a raw system backup and posted the resulting image file, woudn't that be a good way to easily distribute your changes and his... with his and your permission to do so of course.
Click to expand...
Click to collapse
While I don't have an issue with using my 5.6.1.0 image, I'm not sure merging these tweaks into the system.img and uploading a new 5.6.1.0 image would be my preferred approach. Instead, DragonFire1024 should upload his/her tweaks as a flashable .zip that one can flash with FlashFire.
Let's say you put up a modified system.img today and DragonFire1024 comes up with a couple of tweaks tomorrow. Will you create another system.img? If you have a good /system, would you want to dump an entirely new system.img just to get a few new tweaks?

Categories

Resources