[GUIDE/TIPS] How to Port OEM Apps / Vendor Apps to Your Current ROM

Search This thread

A. n. D.

Member
Dec 3, 2013
39
6
Nagpur(Orange city)
hii.. i'm a xperia pro mk16i(iyokan) user, n currently using Lx cm11 rom, so can anybody port keyboard from stock ics to jb(cm10) or kitkat(cm11)
i'm actually noob in such thing, so if anybody can make it possible so me n all iyokan user will b greatfull for him, i searched alot but found only a port of keyboard from stock ics rom to custom ics rom.
 

Bejda

Senior Member
Feb 12, 2011
2,869
1,946
I once had to find libs required to get a Samsung Photo Editor app running on aosp.
An app able to get real-time logs was of great help,was OsMonitor for me but there's probably many others.
For each app feature (crop,etc..) i could activate them one by one from the app and check real-time log to see which lib got called,was very useful and time saving :)
 
  • Like
Reactions: glenny buster

badboy21102000

Senior Member
Nov 14, 2012
246
47

Bejda

Senior Member
Feb 12, 2011
2,869
1,946
So what?
Was a /system/app using /system/libs.
AndroidManifest.xml shows needed /system/framework/*.jar and /system/etc/permissions/*.xml files and if i needed one of these files i already knew that it was twframework-res apk,twframework.jar and touchwiz.xml
Could have find needed libs plugged on PC while logcat the same way but was pretty fun,fast and handy to do this and the whole process directly on phone in the bus while going to work.
Could be useful for people not at ease with logcat also.
Was it something else you wanted to show me?
 

shanedd1123

Senior Member
Nov 14, 2008
59
2
Queens, New York
Htc tv app

i tryed to do this with the htc m7 tv app and had no luck if someone with more skills than me can give it a try and see if they can get it to work please let me know
 

cpaixao

Senior Member
Dec 3, 2010
533
121
Sete Lagoas
@Rizal Lovins I followed all steps but still unable to port Meizu MX3 Flyme OS 3 Launcher (Launcher2.apk). I have whole system dump but manifest doesn't has the lines you ask us to locate.

I would like to get help to port such amazing launcher to kitkat. :(
 

zenesis

Senior Member
Jan 13, 2012
548
151
Xiaomi Mi Mix 3
Hello @Rizal Lovins

I just wanna ask if it is possible to port Xperia Z1 Conversations.apk to Xperia C? I have the resources and the knowledge on compiling and decompiling apks. the thing is I don't know where to find the libs(if there is any) of the mms.apk or conversations.apk.
 

slekkas

Senior Member
Oct 25, 2007
686
113
Hi guys, very nice tutorial.

I have a MTK6592 device that comes with two roms, An aliyun rom based on android 4.2.2 en/cn language and a regular android 4.2.2 rom miltilingual. I'm trying to port a system app from the yunos to the other rom but when I try to run the app I get force close. I look in the logcat and the first error is this:

02-17 20:24:40.573: E/aui(12297): e:java.io.FileNotFoundException: aui-res.apk

Here's the whole logcat:

Code:
02-17 20:24:40.573: E/aui(12297): e:java.io.FileNotFoundException: aui-res.apk
02-17 20:24:40.577: E/AndroidRuntime(12297): FATAL EXCEPTION: main
02-17 20:24:40.577: E/AndroidRuntime(12297): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.vstar3d.gesturesetting/com.vstar3d.gesturesetting.ActivitySetting}: java.lang.RuntimeException: AuiResouces: copy Aui resouces error
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2483)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2535)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at android.app.ActivityThread.access$600(ActivityThread.java:178)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1390)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at android.os.Handler.dispatchMessage(Handler.java:107)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at android.os.Looper.loop(Looper.java:194)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at android.app.ActivityThread.main(ActivityThread.java:5560)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at java.lang.reflect.Method.invokeNative(Native Method)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at java.lang.reflect.Method.invoke(Method.java:525)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at dalvik.system.NativeStart.main(Native Method)
02-17 20:24:40.577: E/AndroidRuntime(12297): Caused by: java.lang.RuntimeException: AuiResouces: copy Aui resouces error
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at com.yunos.internal.AuiResouces.get(AuiResouces.java:48)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at yunos.app.SpiritActivity.getResources(SpiritActivity.java:1076)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at yunos.app.SpiritActivity.initializeTheme(SpiritActivity.java:1115)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at yunos.app.SpiritActivity.setTheme(SpiritActivity.java:1109)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2433)
02-17 20:24:40.577: E/AndroidRuntime(12297): 	... 11 more
02-17 20:24:40.623: E/AEE/LIBAEE(666): shell: cant create socket with aed: Connection refused
02-17 20:24:40.650: E/hwcomposer(152): [JOB] Timed out waiting for vsync...
02-17 20:24:40.754: E/AppErrorDialog(666): Failed to get ILowStorageHandle instance

The aui-res.apk is in the yunos framework directory and it's the secondary framework for that rom( if i decompile with apktool it's 2.apk). I bring it over to my rom in the framework directory but i still get the same error. I've spend 15 days on this without success.

Please help me out a little.
 

GalaxyUser

Senior Member
Jun 2, 2010
718
3,718
Aix-en-Provence
@Rizal Lovins, bro is it possible that u can make a tutorial also on how to port themes? specially 4.3 themes to 4.1.2? btw, great tutorial bro..congrats! :highfive:

Hi,

As it's a framework file i think you need to edit your bootclasspath to match with this files and others dependencies files.

So edit your boot.img and copy all necessary framework files to /system/framework and try again to port this app.

Do a backup of your rom and be carreful or you will just break your phone

Sent from my Nexus 5 using xda app-developers app
 

vindau

Member
Jun 16, 2011
23
2
It would be possible to port the samsung dialer with swipe left to call and right to sms, for all 4.4.2 roms ?
 

oracle01642

Senior Member
Nov 10, 2012
1,224
277
XDA
On average, how long would you say it takes to learn this stuff, decompiling and recompiling apps etc?

Rizal, could you or some other 'recognised contributor' or 'recognised developer' port the S5's apps to the S4? You seem to know a lot about this stuff, so I thought id ask you. :D
 

CNexus

Senior Member
May 17, 2012
9,010
14,000
~/android
Google Pixel 7
  • Like
Reactions: oracle01642

oracle01642

Senior Member
Nov 10, 2012
1,224
277
XDA

Thanks for the reply. I have most of those apps already installed. Some of them don't work perfectly, and need some work. There is also some apps that don't work at all, such as music player and TW launcher. Just thought id ask you guys, but you probably don't have an S4, so you wouldn't be interested in porting all of the S5 stuff to the S4. Oh well, I guess I will just have to wait and hope someone in the S4 forums gets them all working soon. :)
 
Last edited:

Aman_Arora

Senior Member
Jan 28, 2013
772
1,024
25
New Delhi
While trying to port Z2 conversations from its dump to n5
All permissions except 1 (for internet -->platform.xml) were not in dump.I have checked files thoroughly and didnot find any others.
BEcause of which Conversations couldn't be used to send & receive mms sms .
So how i get those perm files
 

qvgahub

Senior Member
Mar 26, 2012
128
35
new delhi
thanks for ur great guide :laugh::good::good: i was trying to port an app to gingerbread ....but when i searched the androidmanifest.xml it does not contain any line with minsdkversion...instead it uses <receiver ="com.adjust.sdk.ReferrerReceiver" ="true"> can anyone help me out ...i want to change the minsdkversion required by the app:confused:
 

Top Liked Posts

  • There are no posts matching your filters.
  • 153
    2a9zUsv.png

    INTRODUCING

    Hello XDA Community
    I just want to share TIPS how to port OEM/VENDOR Apps to your current ROM

    Requirement :

    1. Knowledge in decompile/recompile/sign/zipalign apk file (apps)
    - If you don't know how to do this, visit this thread http://xdaforums.com/showthread.php?t=2195680

    2. Knowledge to find library file (*.so file) and framework file (*.jar) whats needed from apps
    3. You should understand MANAGING APPLICTAIONS it help on making update into system like porting APPS
    - if you don't know how to do this, visit this post http://xdaforums.com/showpost.php?p=60829642&postcount=2
    4. Knowledge to use LogCat
    - if you don't know how to do this, visit this thread http://xdaforums.com/showthread.php?t=2274119

    What should i do now? :

    1. First times you need download Full ROM is there already deodexed so you can take some file you need to ported or you make it by yourself
    2. If you already understand what i said above, lets start to final section
    3. If you already take all file what you need to port, collect all the files, and prepare update.zip updater, add the file to zip with right folder

    *.Apk file must be in system>app or priv-app
    *.So file must be in system>lib
    *.jar file must be in system>framework
    *.xml file permissions framework must be in system>etc>permissions

    How can I know what's library is needed? :

    1. Knowledge is in need if the library doesn't exist in apk file, locate the name of the library file (*.so file) that may be related to the application (the file name may be a bit the same with the application) you can search in system>lib or use using a logcat after installing apps, you will see a missing library like :
    FATAL error can't find class blablabla something like that :D

    2. If library file already exist in apk file /folder lib>armeabi (You just need to extract it from apk file and take the file *.so)
    Moawj5V.png


    (Taking *.so files)
    Example for all applications

    NOTE For Lollipop : Google has change structure of an applications in system that every applications having lib folder itself, it make more easy to locate lib files

    - Open SemcAlbum.apk using winrar/rar and extract folder lib then remove folder lib from that app
    vwzTO3J.png

    - Rename com.sonyericsson.album.apk to SemcAlbum.apk
    - Create folder with same name with apk name (SemcAlbum)
    - Under that folder create folder lib
    - Under lib folder create folder arm
    - navigate to the extracted lib before, move *.so files from armeabi-v7a if exist or armeabi into SemcAlbum/lib/arm/
    xiSQsHB.png

    3. To see what's apps required library framework file :
    - Decompile apps with using file framework-res.apk from that ROM apps (Also maybe need framework 2 like SemcGenericUxpRes.apk etc)
    - Open AndroidManifest.xml using Text Editor (Like NotePad++) and see like this line
    2SZ4pl2.png

    <uses-library android:name="com.sony.device" android:required="true" />
    <uses-library android:name="com.sony.device" android:required="false" />
    Leave file has been decompiled and Take it file name (In list AndroidManifest) from the ROM file that you want to ported from system>framework also take permission framework file (*.xml) from system>etc>permissions

    Example :
    com.sonyericsson.navigationbar < it mean jar file, so you should take the file from system/framework

    framework files need xml file permissions
    com.sonyericsson.navigationbar.xml file, so you should take the file from system/etc/permissions


    Explaination :
    What The different true & false?
    true : the application is required that framework to work
    false : the application is still required that framework but without that framework the application can still work but some feature that need framework files will not work.

    This section is not modified the apps, first you can try flash it with Recovery and see its working or not, if not working (FC) you need to see whats wrong in logcat (FATAL ERROR)

    Or the problem apps parsing error because your Android Version is lower (e.g apps JB to ICS)

    Now you need to decompile that apps

    Go to smali folder and search whats wrong in logcat, if you already fix it (I will explain how to fix it in next post)

    Then open AndroidManifest.xml try to change minimal sdk version from Android_manifest or in apktool.yml
    Code:
    minSdkVersion: '[COLOR="Red"]16[/COLOR]'
    targetSdkVersion: '17'
    Change to this number
    Code:
    minSdkVersion: '[COLOR="Red"]14[/COLOR]'
    targetSdkVersion: '17'
    save all changes
    then recompile, sign and zipalign

    NOTE :
    1. Not any apps can be ported to lower Android Version by change minimal sdk
    59
    Analizing app force close and how to fix it

    Well in this post i will explain how to fix force close app that you are trying to port
    Typically applications that do not work is because several factors:
    1. Missing library framework
    2. Missing *.so files
    3. Java Method or function that do not match with your current ROM

    1. Missing library framework
    You should look at AndroidManifest.xml what app needed framework files, see screenshots!
    2SZ4pl2.png

    take the file name like on AndroidManifest.xml in system/framework and take xml permissions files from system/etc/permissions

    2. Missing *.so files
    This is really confused how to find what app is need *.so files
    The solution is install the app and take a logcat!

    The log will say something like this :
    example (can't find class libUXVisualizer blablabla)

    then you just search on system/lib for libUXVisualizer.so from the ROM you want to port and take it!

    3. Java Method or function that do not match with your current ROM
    There is many factors that make app force close, but in SONY Apps usually only error "GetString". if you are trying to port SONY Apps to your current ROM (E.g. CM Based ROM) you will face same issue like this.
    lxIbQpz.jpg


    What should i do now after i see this log?

    Ok let's start!!!
    1. Decompile apps with using file framework-res.apk from that ROM apps (Also maybe need framework 2 like SemcGenericUxpRes.apk etc)
    2. Go to folder smali/com/sonyericsson/metadatacleanup/util/
    3. Open StorageManagerIf.smali using text editor
    - Find .line 262 and see like this!
    tyTiMqL.png

    4. Decompile your framework-res.apk
    - Go to folder res/value/
    - Open Public.xml using text editor
    - Following StorageManagerIf.smali in .line 262 there is code look like this
    Code:
    const-string v2, "[COLOR="Red"]storage_internal[/COLOR]"
    RIGHT?
    - SO Search storage_internal in Public.xml in your framework-res.apk
    EqxeMSF.png

    copy the code and change the code look like this!
    Code:
        const-string v2, "[COLOR="Red"]storage_internal[/COLOR]"
    
        invoke-direct {p0, v1, v2}, Lcom/sonyericsson/metadatacleanup/util/StorageManagerIf;->getString(Landroid/content/res/Resources;Ljava/lang/String;)Ljava/lang/String;
    
        move-result-object v2
    
        invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    
        move-result v2
    
        if-eqz v2, :cond_0
    Shrink code to
    Code:
    const v2, [COLOR="Red"]0x10405ad[/COLOR]
    So it will look like this
    Code:
     .line 262
        .local v0, "description":Ljava/lang/String;
        const v2, 0x10405ad
    
        if-eqz v2, :cond_0

    In screenshot logcat say there is many error, you should search similar code like before "storage_sdcard" & "storage_usb" and follow changing code guide like before!!! also search in other smali that same error like that.

    If you are done, save all change then recompile apk and sign apk

    CONGRATZ YOU ARE DONE.
    39
    CREDITS :

    Thanks to @Lasan for the trick @ibanez7 for always helping me if i stuck
    6
    Thanks for it...... :good::good::good::good:
    but still waiting for more detil tuttor, give some example to port apk from sony to all android device
    because i wana be RC-RD like you:D:silly:

    you are realy great RC-RD here

    you are welcome my friend :)

    Yeah i will post with all detail later, now just uploaded some screenshots :)

    No!!! i'm not developer :D
    4
    Any tutorial for round switches in settings like homani framework
    And xperia u phone book port to tipo ????