[TUTORIAL]Icon Pack for Pixel Launcher

Search This thread
D

Deleted member 5545167

Guest
Hey everybody!
Today I'm gonna share something interesting I learned modding the Pixel Launcher Icons which is preloaded on the Pixel devices and has a few rounded icons applied to the Pixel Launcher.

For long the only solution for applying custom icons to a stock launcher, usually Google Launchers was Xposed. But all of that is over with the Pixel Launcher. See the launcher, when it sets up its SQLite databases, looks for icons that the OEM, in this case Google, wants to override. How does it do that? Well, Pixel Launcher Icons has a list of apps and drawables or icons assigned to them, and it sort of lets Pixel Launcher use them as icons for the apps. We're gonna do some modding and change it up a little. What you're gonna need is simple:

REQUIREMENTS:
1- A valid version of the Pixel Launcher Icons(com.google.android.nexusicons), since it supports android 7.1(API 25) only, but some devs managed to port it for android 5.0+, so please google that first
2- APKTOOL and its requirements
3- A set of icons, or in this case an icon pack which contains icons for all of your apps(There are a bunch of those online, doesn't matter which launcher or system it is for)

Now this can be done two ways, I'm gonna show you the best one, but a tricky one first, and then I'll post the second tutorial which is easier to do, but a bit unstable:
Tutorial 1:
First what you're gonna do is decompile the Pixel Launcher Icons apk you downloaded
Code:
apktool d PixelLauncherIcons.apk
Then navigate to PixelLauncherIcons folder which was generated afterwards and go to res
Delete all the mipmap-**** folders except for mipmap-xxxhdpi-v4 and then rename it to mipmap-nodpi, this essentially makes it way easier for you to add icons.
Then open the icon pack you downloaded with 7-Zip or any other archive viewer and go to res and find the directory with the largest size, which obviously is the only with the icons. Extract that directory and find the suitable icons you want for your apps and rename them to ic_*appname* , like ic_adm, or ic_facebook
The name of the icon file can be anything you want it to be, but it's neater to rename them this way. Then just copy the icons you found and renamed to mipmap-nodpi.
Then comes the tricky part.
You want to go to res/xml/ and open icons.xml
Then you see just a few lines of xml tags. Each tag represents an app which is shown by it's package name and launch-able activity name and it's drawable icon which is the same as the icon files.
You just have to write each line exactly like it is written for the rest of the apps and just replace the package name and drawable with the suitable ones. Like here's how I gave Greenify and IMDB each a good round icon:
Code:
<item component="com.oasisfeng.greenify/com.oasisfeng.greenify.GreenifyActivity" drawable="@mipmap/ic_greenify" />
<item component="com.imdb.mobile/com.imdb.mobile.HomeActivity" drawable="@mipmap/ic_imdb" />
The Package name is easy to figure out, just google them and if they're on play store, open up their play store page on your pc and you can see the Package Name in the url, or you could use quickshortcutmaker or MyAppSharer and some other Backup apps. The tricky part is finding the LAUNCHABLE activity name or the main activity from the package name. Like whichever way you go you can find out in seconds that IMDB's package name is com.imdb.mobile, but how do you figure out what imdb's Main activity name is? Use this command with ADB:
Code:
adb shell "cmd package resolve-activity --brief packagename | tail -n 1"
For example:
Code:
adb shell "cmd package resolve-activity --brief com.imdb.mobile | tail -n 1"
and it will show you:
Code:
.HomeActivity
which if like in this case, it types a dot first, and doesn't start with the package name, you should add the package name before the dot yourself and then place it in the zip.

After you do this, and I know, it can be really hard especially if you have a lot of apps installed and they're all "out of shape" :D , but if you want a kick-ass icon pack for your phone, or maybe even custom rom, this is the way.

After adding those stuff and saving icons.xml, you need to recompile
Code:
apktool b PixelLauncheIcons
BUT sign it yourself, and not with its original signature. So go ahead and google on how to manually sign an APK after recomipling it with APKTOOL.
Then just push it to /system/app/PixelLauncherIcons/PixelLauncherIcons.apk and set the correct permissions if you do it manually.
Reboot and then go to Settings and clear the app data for Pixel Launcher, and ENJOY!

NOTE that apps that target android 7.1 or higher meaning they are compiled with API 25 or more, if they're not round, they will never be, which means that in order to change them, you need to modify the pixel launcher. Check this article for more details:
https://sirhydarnes.com/projects/10-my-version-of-the-pixel-launcher

Screenshots are attached below.
 

Attachments

  • pixex.jpg
    pixex.jpg
    117.8 KB · Views: 11,043
Last edited by a moderator:
D

Deleted member 5545167

Guest
Tutorial 2:
The first tutorial works for almost every app, but in my experience, it doesn't apply the new icons to some apps, like VNC Viewer, Google Allo, Snapseed, etc. That is because the Launcher fails to load those icons, but no matter how hard I tried, it always fails. So the key here is to change them in another way which requires ROOT and access to /data.
So first, go to the following path
Code:
/data/data/com.google.android.apps.nexuslauncher/databases/
and pull the file "app_icons.db"
copy it to your PC and install the application "DB Browser for SQLite"
Open DB Browser and use it to open app_icons.db and browse the table "icons".
There you can not only change the app icons, but the app names as well!!
First things first, sort the table by app name(label).
Then for each app that you need the icon changed, just click on its row, and then icon cell(value is BLOB) and on the right side, you can import a new icon(click apply each time you import).
attachment.php

And then just Write Changes to the file.
After that, copy the app_icon.db to your device(if it fails, use adb push) and then replace it with the one in
Code:
/data/data/com.google.android.apps.nexuslauncher/databases/
and set the permissions to rw-rw---- and go to settings, apps and force stop Pixel Launcher. Then just tap home and enjoy!
 

Attachments

  • tut2.png
    tut2.png
    52.5 KB · Views: 7,535
Last edited by a moderator:

d3xt3r

Senior Member
Dec 22, 2012
322
101
Jamshedpur
OnePlus 8
OnePlus 8 Pro
Edit- Procedure 2 Works fine. Thanks!!!!

Edit 3: ScreenShots Attached!! Perfect. You completed my last remaining wish :highfive::good::victory::D
 

Attachments

  • Screenshot_20170405-140922.jpg
    Screenshot_20170405-140922.jpg
    196.7 KB · Views: 4,227
  • Screenshot_20170405-140929.jpg
    Screenshot_20170405-140929.jpg
    200.2 KB · Views: 4,171
  • Screenshot_20170405-140934.jpg
    Screenshot_20170405-140934.jpg
    193.5 KB · Views: 3,933
  • Screenshot_20170405-140938.jpg
    Screenshot_20170405-140938.jpg
    186.6 KB · Views: 3,730
  • Screenshot_20170405-140916.jpg
    Screenshot_20170405-140916.jpg
    251.5 KB · Views: 3,833
Last edited:
  • Like
Reactions: Mega Montana

AeonAegis

Member
Jul 10, 2012
8
0
Tutorial 2 Not Work for me

Hello, I've followed tutorial 2 steps but it still not working. I extract the file back and check by extracting the icon shows I changed it. But in launcher the icon remain same. Please help me.
 

mickrick

Senior Member
Sep 15, 2012
373
56
I like the Pixel launcher (I have AmirZ's version running on my LG G6), but I would like icons a bit more unique, given the bigger than normal size of the icons.
 

osa219

Member
Nov 13, 2015
19
2
Hi everyone one I found "com.google.android.nexusicons"
In data/data

But when I open the folder I can find "com.google.andeoid.nexusicons/databases", all what I found is two empty folders : "cache", "code_cache".

Can anyone one help please, and thanks for help!
 

Ra6idr0y

Senior Member
Nov 15, 2011
143
47
Using a moto z play for a while after my 6p battery poop. Looking up mods/Roms for my Pixel XL received as replacement returns a lot of posts about how dev isn't what it once was... This OP has thirty something likes??? The f()ck man. THATs the problem with Dev nowadays. Suppose I'm spoiled having the Dinc as my first Android...
 

vovasoft

Member
Apr 25, 2008
11
3
and pull the file "app_icons.db"
copy it to your PC and install the application "DB Browser for SQLite"
Open DB Browser and use it to open app_icons.db and browse the table "icons".
There you can not only change the app icons, but the app names as well!!
First things first, sort the table by app name(label).
Then for each app that you need the icon changed, just click on its row, and then icon cell(value is BLOB) and on the right side, you can import a new icon(click apply each time you import).
Now you can edit icons using this new SQLite database editor directly from your phone. Just use SqlitePrime. It supports blob data up to 1 MB. You can view, delete, import and export icons.
 

djide

Senior Member
Dec 19, 2005
419
37
Washington, DC
Now you can edit icons using this new SQLite database editor directly from your phone. Just use SqlitePrime. It supports blob data up to 1 MB. You can view, delete, import and export icons.


To insert the new icon for the blob, would you click on the three dots and choose insert new blob?
There seems to be no option to import image like the attached picture in the OP.

Thanks
 

vovasoft

Member
Apr 25, 2008
11
3
To insert the new icon for the blob, would you click on the three dots and choose insert new blob?
There seems to be no option to import image like the attached picture in the OP.
Exactly, You click on the three dots and choose insert new blob. Then you select your icon.
The insert new blob option is generic, you can use it to insert any file. I didn't want to create a menu for every existing file type.
Let me know if it works for icons. I didn't have the chance to try it yet.
 

Anubandh

New member
Jul 24, 2017
3
2
Tutoerial 2 Works but with flaws

Thanks for guide, Tutorial 2 is working fine on Xiaomi phones running miui 9 stable, but the problem which i faced was first setting permission to rw-rw---- dosen't change the icons, infact rw-rw-rw dose the trick. so anyone interseted can follow this trick.
The problem is once the app is updated it reverts to original icon. so i will go ahead with tutorial 1.
 
  • Like
Reactions: zipalign

xehed

Senior Member
Aug 5, 2010
748
173
geek's
(tutorial 1). I think it doesn't work for Pixel 2 launcher (8.1)
although, it's installed well but icon not changing!
is there a way to get it work on pixel 2 launcher??
 

chankruze

Senior Member
Jun 30, 2017
224
262
Balasore
chankruze.github.io
(tutorial 1). I think it doesn't work for Pixel 2 launcher (8.1)
although, it's installed well but icon not changing!
is there a way to get it work on pixel 2 launcher??
Same here,Going to try on old pixel launcher.

Edit:
I tried with com.google.android.apps.nexuslauncher_7.1.1-3624681-150_minAPI21(nodpi).apk & com.google.android.apps.nexuslauncher_7.1.1-3862848-151_minAPI21(nodpi).apk and it partially worked. Just 2 icon changed i both cases (camera & inbox).
Screenshot_20180517_043153.png
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 7
    D
    Deleted member 5545167
    Hey everybody!
    Today I'm gonna share something interesting I learned modding the Pixel Launcher Icons which is preloaded on the Pixel devices and has a few rounded icons applied to the Pixel Launcher.

    For long the only solution for applying custom icons to a stock launcher, usually Google Launchers was Xposed. But all of that is over with the Pixel Launcher. See the launcher, when it sets up its SQLite databases, looks for icons that the OEM, in this case Google, wants to override. How does it do that? Well, Pixel Launcher Icons has a list of apps and drawables or icons assigned to them, and it sort of lets Pixel Launcher use them as icons for the apps. We're gonna do some modding and change it up a little. What you're gonna need is simple:

    REQUIREMENTS:
    1- A valid version of the Pixel Launcher Icons(com.google.android.nexusicons), since it supports android 7.1(API 25) only, but some devs managed to port it for android 5.0+, so please google that first
    2- APKTOOL and its requirements
    3- A set of icons, or in this case an icon pack which contains icons for all of your apps(There are a bunch of those online, doesn't matter which launcher or system it is for)

    Now this can be done two ways, I'm gonna show you the best one, but a tricky one first, and then I'll post the second tutorial which is easier to do, but a bit unstable:
    Tutorial 1:
    First what you're gonna do is decompile the Pixel Launcher Icons apk you downloaded
    Code:
    apktool d PixelLauncherIcons.apk
    Then navigate to PixelLauncherIcons folder which was generated afterwards and go to res
    Delete all the mipmap-**** folders except for mipmap-xxxhdpi-v4 and then rename it to mipmap-nodpi, this essentially makes it way easier for you to add icons.
    Then open the icon pack you downloaded with 7-Zip or any other archive viewer and go to res and find the directory with the largest size, which obviously is the only with the icons. Extract that directory and find the suitable icons you want for your apps and rename them to ic_*appname* , like ic_adm, or ic_facebook
    The name of the icon file can be anything you want it to be, but it's neater to rename them this way. Then just copy the icons you found and renamed to mipmap-nodpi.
    Then comes the tricky part.
    You want to go to res/xml/ and open icons.xml
    Then you see just a few lines of xml tags. Each tag represents an app which is shown by it's package name and launch-able activity name and it's drawable icon which is the same as the icon files.
    You just have to write each line exactly like it is written for the rest of the apps and just replace the package name and drawable with the suitable ones. Like here's how I gave Greenify and IMDB each a good round icon:
    Code:
    <item component="com.oasisfeng.greenify/com.oasisfeng.greenify.GreenifyActivity" drawable="@mipmap/ic_greenify" />
    <item component="com.imdb.mobile/com.imdb.mobile.HomeActivity" drawable="@mipmap/ic_imdb" />
    The Package name is easy to figure out, just google them and if they're on play store, open up their play store page on your pc and you can see the Package Name in the url, or you could use quickshortcutmaker or MyAppSharer and some other Backup apps. The tricky part is finding the LAUNCHABLE activity name or the main activity from the package name. Like whichever way you go you can find out in seconds that IMDB's package name is com.imdb.mobile, but how do you figure out what imdb's Main activity name is? Use this command with ADB:
    Code:
    adb shell "cmd package resolve-activity --brief packagename | tail -n 1"
    For example:
    Code:
    adb shell "cmd package resolve-activity --brief com.imdb.mobile | tail -n 1"
    and it will show you:
    Code:
    .HomeActivity
    which if like in this case, it types a dot first, and doesn't start with the package name, you should add the package name before the dot yourself and then place it in the zip.

    After you do this, and I know, it can be really hard especially if you have a lot of apps installed and they're all "out of shape" :D , but if you want a kick-ass icon pack for your phone, or maybe even custom rom, this is the way.

    After adding those stuff and saving icons.xml, you need to recompile
    Code:
    apktool b PixelLauncheIcons
    BUT sign it yourself, and not with its original signature. So go ahead and google on how to manually sign an APK after recomipling it with APKTOOL.
    Then just push it to /system/app/PixelLauncherIcons/PixelLauncherIcons.apk and set the correct permissions if you do it manually.
    Reboot and then go to Settings and clear the app data for Pixel Launcher, and ENJOY!

    NOTE that apps that target android 7.1 or higher meaning they are compiled with API 25 or more, if they're not round, they will never be, which means that in order to change them, you need to modify the pixel launcher. Check this article for more details:
    https://sirhydarnes.com/projects/10-my-version-of-the-pixel-launcher

    Screenshots are attached below.
    7
    D
    Deleted member 5545167
    Tutorial 2:
    The first tutorial works for almost every app, but in my experience, it doesn't apply the new icons to some apps, like VNC Viewer, Google Allo, Snapseed, etc. That is because the Launcher fails to load those icons, but no matter how hard I tried, it always fails. So the key here is to change them in another way which requires ROOT and access to /data.
    So first, go to the following path
    Code:
    /data/data/com.google.android.apps.nexuslauncher/databases/
    and pull the file "app_icons.db"
    copy it to your PC and install the application "DB Browser for SQLite"
    Open DB Browser and use it to open app_icons.db and browse the table "icons".
    There you can not only change the app icons, but the app names as well!!
    First things first, sort the table by app name(label).
    Then for each app that you need the icon changed, just click on its row, and then icon cell(value is BLOB) and on the right side, you can import a new icon(click apply each time you import).
    attachment.php

    And then just Write Changes to the file.
    After that, copy the app_icon.db to your device(if it fails, use adb push) and then replace it with the one in
    Code:
    /data/data/com.google.android.apps.nexuslauncher/databases/
    and set the permissions to rw-rw---- and go to settings, apps and force stop Pixel Launcher. Then just tap home and enjoy!
    1
    Edit- Procedure 2 Works fine. Thanks!!!!

    Edit 3: ScreenShots Attached!! Perfect. You completed my last remaining wish :highfive::good::victory::D
    1
    and pull the file "app_icons.db"
    copy it to your PC and install the application "DB Browser for SQLite"
    Open DB Browser and use it to open app_icons.db and browse the table "icons".
    There you can not only change the app icons, but the app names as well!!
    First things first, sort the table by app name(label).
    Then for each app that you need the icon changed, just click on its row, and then icon cell(value is BLOB) and on the right side, you can import a new icon(click apply each time you import).
    Now you can edit icons using this new SQLite database editor directly from your phone. Just use SqlitePrime. It supports blob data up to 1 MB. You can view, delete, import and export icons.
    1
    Tutoerial 2 Works but with flaws

    Thanks for guide, Tutorial 2 is working fine on Xiaomi phones running miui 9 stable, but the problem which i faced was first setting permission to rw-rw---- dosen't change the icons, infact rw-rw-rw dose the trick. so anyone interseted can follow this trick.
    The problem is once the app is updated it reverts to original icon. so i will go ahead with tutorial 1.