Is it possible to change the app icon in an APK in Android apps? I have a tablet running Android 2.2 and the icons are too low-res, so I want to replace them. I tried unzipping the APK, changing the icon and re-zipping, but it didn't work. Is there any way I can change the icon, even programmatically, to reflect the higher-res icon?
APK files are actually nothing more than zip files. If you just want to replace images, then the easiest way is to open the apk file in 7-zip or winrar and replace the png files in there with your own. Just drag your new files to the 7-zip window.
Note that I said "open" and not "unzip". Once you decompress it, the signature will no longer be valid.
Another option is to use APKManager to do it. This way you do not need to install it in /system/app:
Download APK Manager
Put the .apk in "place-apk-here-for-modding"
Run the script.bat and extract it.
Drop the new PNG files in /res/drawable-?dpi overwriting the old ones.
Run ZIP .apk and select option 2 Regular APK
Sign the APK
Install
Summary
One the simplest ways is to change APK icons via user-friendly GUI tools:
APK Editor Studio – advanced but still easy-to-use APK editor.
APK Icon Editor – plain and simple APK editor.
Both tools are free and open-source (written in C++/Qt) with the Apktool used under the hood.
Features
Automatically pack, sign and optimize your APK.
Automatic conversion between PNG, BMP, JPEG, ICO, GIF, etc.
Available for Windows, macOS and Linux.
Disclaimer
I am the author of these tools.
If you want change android application icon programatically then you can set it into AndroidManifest.xml file, in the application tag by setting the android:icon property. But if you want to change the icon of third party applications then you cant.
See this solution
Please have a look at this one for designing icons for high, medium and low density phones:
http://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html
Related
Is it possible to install two instances of the same app on a rooted Android device?
I know, that the Android system distinguishes apps based on their package name.
It is possible to decompile apps with tools like apktool, change the Manifest file and recompile / sign them. However, for more sophisticated applications (e.g., if they have multiple apk files packed in a apkx file) or complex dependencies this not always works.
I do not want to work with third party applications like Dual Space, Titanium Backup and so on.
How would you approach this?
A few options:
Use lucky patcher's "clone" function in the tools menu (shouldn't be hard to find)
Copy the app apk out of system memory and edit it manually (good luck, text file "readers" read it fine, editors do not)
Use an apk editor to change the package name (I have a copy of one if necessary)
I'm tearing my hair out over here. I've developed applications with earlier versions of nativescript and this has never been issue... This is my last effort before I just downgrade to an older version
I have ran the command tns resources generate icons ../icon.png and it claims to have successfully generated the icons and I can see them in the directory... build and deployed to phone. Still has the default nativescript icon
I went to App_Resources/Android/src/main/res and manually updated the ic_launcher.png file in every mipmap directory... build and deployed to phone, same result! Default icon
Tried deleting the platform/android directory and rebuilding. No luck
I searched from the root directory and I cannot figure out how the heck this default icon is appearing still!!!
Note: I was able to change the splash screen
Any help... please, thank you
I ended up solving this issue eventually, so for anyone this might help in the future... In the newer versions of NativeScript there is now a new folder in res called "mipmap-anydpi-v26" which uses vector graphics. If your on SDK 26+ it will automatically use this vector graphic and IGNORE every other PNG icon in all the other folders.
Your options to remedy this are either:
A) Delete this folder from the directory, which will force it to fall back to the regular PNG icon that's appropriate for the device resolution
B) Edit the file in the folder and update the SVG to use yours
I had a similar issue on nativescript 8.1.1, nativescript/android 8.1.1 with svelte 3.44.0. After running ns resources generate icons <icon-path> and ns resources generate splashes <splash-path>as show in this stack post here. Only the splashes were generated successfully. However the icons didn't work as described, hence I had to generate my app launcher icons using this service. Then I downloaded the zip file, unzipped it and copied the contents of the 'res' directory in the unzipped file to <project-directory>/App_Resources/Android/src/main/res to replace all the directories with the same names (i.e. mipmap-anydpi-v26, mipmap-hdpi etc). Then rebuilt and reran my application and everything worked fine.
Since 8.x Nativescript ships with the adaptive icons - since the old icons are outdated on more recent android phones, and usually look weird
1.Open a project in Android Studio and in the Project Explorer pane right-click on the app directory or any of the directories inside the app directory. In the context menu that opens select New > Image Asset
2.Once Asset Studio opens you'll see the new default app icon
3.The main thing to know about adaptive icons is that there are two layers, a foreground and background. The default foreground will be titled ic_launcher_foreground.xml and it is an SVG. Go ahead and click the ... button next to the path (image below) and select your app icon that you're going to use.
4.Now you can go ahead and set the other settings for your icon such as trim and the resize percentage. You'll also be able to change the default green background layer, select the Background Layer tab and you can repeat the same process. From experience, in a lot of cases you can use the Color radio button to set the color you'd like to use for your background layer.
5.Once you are finished with your icon configuration you can complete the wizard which will generate the various resources needed for your app. The new files will be located under the android app directory in src/main/res/ where you should see several mipmap- directories.
6.Now move all the files in mipmap- directories to your Nativescript's App_Resources mipmap folder
7.Once you have copied over the newly created icon files to the NativeScript project there is one final change you need for your application. The only change is to set the android:icon value to #mipmap/ic_launcher which is the resource location of the new files we added from the Android project from Android Studio.
Hope this helps to solve your issue
I always use NativeScript Sidekick to generate my icons. I don't know if that will yield different results from the tns command, but at least it's something else to try.
Is there a way to extract the launcher icon of an apk file, even if it is an adaptive icon (vector drawable)?
I couldn't find a single batch or python script to achieve this.
There are many scripts which use aapt, but they all just work for png files.
Note: I don't want to run this on the Android device itself.
I have seen the below font used within several android applications, including Clean Master etc. What free font is closest to this image and how can I make use of it within Android? Thanks
The closest (most similar) font I could find was: Roboto
I dnt know what 'Clean Master' app you have there cause on play store there are tons of apps named so .Maybe you give me exact package name .And I can tell you what font they use.
Any way the idea is you to download the apk file from play store and open it with winrar or something and look into the assets folder , cause there ppls put the fonts most of the times and then they load fonts in app.
You can use this link to download apk's from google play.
http://apps.evozi.com/apk-downloader/?id=com.cleanmaster.mguard
I just downlaoded this and I see in apk's asset folder 6 font files. You can download yourself and see it
*UPDATE
They use this fonts in the apk : Spoon Number , Icomoon and Miso Unit .
you can download them from the link i give you
The font on the right of the image is likely to be Roboto but the large numbers are not. Have you tried using an identification tool such as: https://www.myfonts.com/WhatTheFont/ which allows you to upload an image. Failing that you could chance your luck emailing the developer of the app where you have seen it used.
Unbelievably enough, I couldn't find an answer when Googling for this very basic question!
I noticed that since I upgraded from Eclipse Helios to Eclipse Juno and updated the Android SDK, Eclipse places a file called ic_launcher-web.png in the project root whenever I create a new Android project. The file is the same as the application icon selected in the project creation dialog, but what does it do? As mentioned, it's in the project root, not in any of the /res/ folders. So is it included in the finished .apk file, and what is it's purpose?
It's for the Play Store, which accepts 512x512 high-resolution icons:
High Resolution Application Icon (Required):
Use: In various locations in Google Play.
Specs: 512x512, 32-bit PNG with alpha; Max size of 1024KB.
-- Google Support
(A more tutorial like explanation can be found here.)
It is not used in your actual app or the launcher, so it is not packaged in the APK.
This is the icon for the google play store. You need to provide a 512 x 512 icon.
There is a little bit of an explanation here on this page:
http://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html#size
If you keep this file make sure to change it to duplicate your regular launcher file. You manually add the regular launcher file to the play site when submitting your project anyway so the extra web launcher file may not be needed. My first project never had one.