LGSytemServer. The app responsible of unlocking the bootloader. - LG Optimus L9 P760, P765, P768, P769

Hi.
I was loking the system apps of my LG P769 with firmware v20f and found something interesting.
I think the LGSystemService app is responsable of unlocking the bootloader. I extracted the contents of The app and found a file called libunlock.so, wich oviously is the activity that perform the bootloader unlock.
So my idea is that if we are able to view se source of the app the can understand the bootloader unlock process and even find a better way. But i'm not good with android aps and reverse engineering.
This is a interesting thing what you see if you open the libunlock.so file with a text editor:
/dev/block/platform/omap/omap_hsmmc.1/by-name/nv Can't open NVDATA partition ret = %d
Cannot seek to real block device footer
Can't read unlock bit.
gsm.operator.numeric network connection is not set
00101 Test network is connected
network connection is set operator=%s
lock_state=%x, mnc=%d,mcc=%d
ro.build.target_operator bootloader_unlock_operator_bit_write: unlock_value=0x%04x
----------------------------------------------
boot loader unlock setup process is starting~~!!!
thread create error : return thread 0 %d
Device Unlock is permitted. But, unlock was not applied
Device is already unlocked
Bootloader Unlock is prohibited
Unlock bit is full!!!
Does anyone want to do something?

Look at this:
.bss:0000301C EXPORT value_con
.bss:0000301C value_con % 0x64 ; DATA XREF: bootloader_unlock_handler+24o
.bss:0000301C ; .textff_B98o
.bss:00003080 EXPORT mnc
.bss:00003080 mnc % 4 ; DATA XREF: bootloader_unlock_handler+8Co
.bss:00003080 ; bootloader_unlock_handler+C2o ...
.bss:00003084 EXPORT mcc
.bss:00003084 mcc % 4 ; DATA XREF: bootloader_unlock_handler+7Ao
.bss:00003084 ; .textff_BACo ...
.bss:00003088 EXPORT value_operator
.bss:00003088 value_operator % 0x64 ; DATA XREF: bootloader_unlock_handler+A2o
.bss:00003088 ; .textff_BC4o
.bss:000030EC EXPORT sim_state
.bss:000030EC sim_state % 4 ; DATA XREF: bootloader_unlock_handler+8Ao
.bss:000030EC ; bootloader_unlock_handler+CCo ...
.bss:000030F0 EXPORT __dso_handle
.bss:000030F0 __dso_handle % 1 ; DATA XREF: .textff_DA4o
Click to expand...
Click to collapse
It looks like the app checks the operator (Damn T-Mobile), sim state, etc. Any ideas?

This is the ActivityManifiest.xml file:
<?xml version="1.0" encoding="UTF-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.lge.systemservice" android:versionName="1.0" android:versionCode="1" android:sharedUserId="android.uid.system">
<uses-permission android:name="android.permission.DIAGNOSTIC"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.LGE_ACCESS_WIFI"/>
<uses-permission android:name="android.permission.NET_RAW"/>
<uses-permission android:name="android.permission.NET_ADMIN"/>
<uses-permission android:name="android.permission.HARDWARE_TEST"/>
<uses-permission android:name="com.lge.permission.SDENCRYPTION"/>
-<application android:name=".service.LGSystemServerApplication" androidrocess="com.lge.systemserver" androidersistent="true" android:icon="@drawable/icon" android:label="@string/app_name">
-<service android:name=".service.LGSystemServer">
-<intent-filter>
<action android:name="lge.android.intent.action.LGSYSTEM_SERVICE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</service>
-<service android:name=".service.LGSystemServerFactory">
-<intent-filter>
<action android:name="lge.android.intent.action.FACTORY_SERVICE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</service>
-<service android:name=".service.ClayboxLauncher">
-<intent-filter>
<action android:name="com.lge.intent.action.CLAYBOX_SERVICE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</service>
<uses-library android:name="com.lge.nfcaddon" android:required="false"/>
+<receiver android:name="com.lge.systemservice.service.unlockcheck.UnlockReceiver" android:enabled="true">
<service android:name="com.lge.systemservice.service.unlockcheck.UnlockService"/>
<service android:name=".service.SystemServicesProxy" android:exported="true"/>
</application>
</manifest>
Click to expand...
Click to collapse
The red lines (i think) confirm the bootloader unlock action.

Related

Can't debug [INSTALL_FAILED_INVALID_APK]

I have a sola, running the JB port from munjeni.
I'm devlopping an app and I get
Failure [INSTALL_FAILED_INVALID_APK] when trying to debug on the phone. USB debug activated of course.
I see this message as well DeviceMonitor: Adb rejected connection to client '21134': closed
My Nexus 7 when i did that, aksed me to autorize my PC. It seem the sola just deny acces ?
Is that some problem with the JB port ? Common problem with the sola ?? Invalid apk, not really a usefull message.
I'm using intelliJ, and here is the manifest, just in case :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.MyLauncher"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="14"/>
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
<activity android:name="LauncherScreen" android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen">
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
</manifest>
I did some test, put akp on SD, install, start -> all OK.
So apk is valid for sure, and compatible. Had to be some securitty thing bloking it.
EowynCarter said:
I did some test, put akp on SD, install, start -> all OK.
So apk is valid for sure, and compatible. Had to be some securitty thing bloking it.
Click to expand...
Click to collapse
Did you solve?
Yes, got myself a nexus 4
Joke aside, look around in the developer setting, at adb and all.
And the max / min sdk version.
You might also want to try adb install name.akp see what happens.
What phone and rom are you using exactly?
EowynCarter said:
Yes, got myself a nexus 4
Joke aside, look around in the developer setting, at adb and all.
And the max / min sdk version.
You might also want to try adb install name.akp see what happens.
What phone and rom are you using exactly?
Click to expand...
Click to collapse
No way....same extact error with adb install.
My phone is a Zopo zp998 with rom of 28/3/2014
Before the rom update it was working fine!

Android Custom Permission Issue

Hi I created a test android app that does two simple things, open the browswer and open the calculator
My main problem is that once I put a custom permission inside the mainfest, I can no longer open my own application. The app does appear on the launcher screen but when I launch it, it will say "App isn't installed". However using a second app and giving it the proper uses and making sure it's signed by the same signature it opens fine.
Here is the manifest for my main app:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.dms_test_app2"
android:versionCode="2"
android:versionName="1.1" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<permission
android:name="com.example.test"
androidrotectionLevel="signature" android:label="this is my custom permission" />
<uses-permission android:name="com.example.test"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
androidermission="com.example.test"
android:name="com.example.dms_test_app2.MainActivity"
android:label="@string/app_name"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
I understand from logcat that the issue is that the LAUNCHER does not have the proper permission:
E/Launcher( 1392): java.lang.SecurityException: Permission Denial: starting Inte
nt { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0
x10200000 cmp=com.example.dms_test_app2/.MainActivity } from ProcessRecord{b5430
118 1392:com.android.launcher/u0a10002} (pid=1392, uid=10002) requires com.examp
le.test
However if you check my manifest, I clearly declared the <uses-permission> tag.
How can I fix this?
Thanks for reading.
BR,
Ken
Doing this i think u should push it uisng adb or root explorer
I should root to
System apps cant install in package installer
It can only in adb or root explorer
Sent from my GT-S5300 using xda app-developers app
i can install fine through "adb install", my problem is executing the main application from the launcher screen

[Q] Open local KML file in Google Maps in offline mode

Hello all,
i just registered here to find out if opening a KML file on my SD card with Google maps in offline mode can work.
I am looking for an solution quite a time, but only found this thread on stackover...
To load kml into Google Maps on Android without writing an app, you can create a little html file somewhere with a geo-uri link to the kml file and then click on that link in any Android web browser.
For example: suppose your kml file is located in /sdcard/overlay.kml then you write a geo-uri link like this:
<html>
<head><title>Example KML link page using a geo-uri</title></head>
<body>
overlay.kml
</body>
</html>
Click to expand...
Click to collapse
Clicking on the link will launch Maps and then Maps will attempt to load and your kml.
Be warned however that the Android version of Maps does not appear to handle the same version/range of kml elements as the desktop version (or desktop Google Earth).
Click to expand...
Click to collapse
a other thread is about editing the manifest file to get maps to open local KML files
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="h**p://schemas.android.com/apk/res/android"
package="com.example.lyold"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.lyold.LoginActivity"
android:screenOrientation="landscape"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:screenOrientation="landscape"
android:name=".Home" />
<activity android:name="com.google.earth.EarthActivity" android:screenOrientation="landscape"/>
</application>
</manifest>
Click to expand...
Click to collapse
Don't know if this is already outdated solution or not, i just cant get it to work.
Does anybody know a way to open local KML files with google maps in offline mode ?
ThX in advance !
PS: i want to open kml ONLY in google maps, i know there are several apps out there that support kml files....
hello again,
before i start trying to finf out how to edit the manifest file.
I wanted to ask if adding the line
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Click to expand...
Click to collapse
could help me out here ?
ThX,
SA
Please Help !
Hello world !
Does someone know if editing the manifest file could solve the problem that google maps won't open KML file which are on the phones SD-card.
If not, i can give up to find an option..
ThX,
SA

Earn money from your huge uninsall

[Appjolt] Get money from uninstalls
Hello everybody, I just found a system allow you earn money from uninstalls, this is Appjolt, show advertisements when user uninstall your app. Sound’s good, right? I will guide you in detail:
1. Register your account with this link:
https://admin.appjolt.com/Landings/Monetize?rf=6F/+V7zzEdpJM73Iydu0EQ==
You will have 50$ in your account. The minium money to withdraw is 100$. You can use your paypal or bank account.
2. Download SDK in Android SDK or iOs SDK, it has unity plugin for android and ios, just 200kb
3. In Applications, click +Add Application
4. After submited your app, click +Add Campain to creat a campain (4 type):
- Monetize: show advertisements
- Winback: offer the user to re-install your app and win a prize (gem, gold, virtual item or something real)
- Cross Promote: present your another app
- Survey: asking the user why they are uninstalling your app
5. Analyze uninstall: mixpanel, omniata, appsee, coolaData
Example with Mixpanel, you register an Mixpanel account and copy the Token and paste to appjolt
6. Import Appjolt plugin to your unity game
- The first step of the integration is to import the appjolt Unity package. To do so, simply drag and drop Appjolt.unitypackage into the assets folder of your project in the Unity editor, and the following window will come up, Make sure all the resources are selected and press import:
- The next step is to add a GameObject to any scene that will integrated with Appjolt. To do so, create a new GameObject in the root of the scene’s hierarchy and rename it to “Appjolt”. Next, add an existing script component to the new Appjolt GameObject, select the AppjoltUnity.cs
script from your scripts. Your scene editor should then be configured to and look similar to the following screenshot:
Now, whenever you’ll need to call Appjolt in a Unity scene, to access the SDK’s main object, use the following code:
appjoltUnity = GameObject.Find ("Appjolt").GetComponent<AppjoltUnity> ();
That’s it. Your project’s now set up with Appjolt, now all that’s left is to implement specific
features.
End User License Agreement
(EULA)
We find great importance being in compliance with Google Play Developer Program Policies
If you are operating within Google's Play store and interacting with ads out of your application, it requires the user's consent in a form of an EULA. In the context of our service, if you're using Monetize or Ad
-Based Winback/Cross
-Promotion campaigns, please add the following code to your main menu or splash screen:
if (appjoltUnity.isGooglePlayInstall()) {
appjoltUnity.showEULA();
}
- Android manifest:
<!-- Appjolt - Required -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- Appjolt - Highly Recommended (Guaranteed $10 CPM US)-->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Trong tag <Application>
<!-- Appjolt -->
<!-- Appjolt Activity -->
<activity android:name="com.appjolt.sdk.AppjoltActivity"
android:taskAffinity="com.appjolt.sdk.twentyeight"
android:configChanges="orientation|keyboardHidden|screenSize"
android:hardwareAccelerated="false"/>
<!-- Appjolt Service -->
<service
android:name="com.appjolt.sdk.AppjoltService"
android:enabled="true"
androidrocess=":appjolt"
android:exported="true" />
<!-- Appjolt BOOT receiver -->
<receiver
android:name="com.appjolt.sdk.AppjoltReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
</intent-filter>
</receiver>
So simple. And now, lets earn money from the huge uninstall.
Cheers,

Deep linking with hash and key

Hello there!
I have a problem with my app. I am working on a website and it's associated android app.
If the system sends an email with a link within, I want the app to open to this specific content. The app opens but not where it's supposed to be. It stays on the main page of the app.
The links are supposed to auto connect the user, so he can access the app as he wishes automatically, so my links have this form:
https://www.mysite.com/autoconnect/stringHASH/stringKEY
I don't know in advance what will be put in the hash and key parts. So I don't know what to put in the manifest to make this work.
Here is what I currently have in my manifest file:
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
<data android:host="mysite.com" />
<data android:pathPrefix="/autoconnect/" />
</intent-filter>
Did I miss something? I need to add I have generated the well-known file and it is on my server.
Thank you for your help!

Categories

Resources