Some apps checking for root aren't working
- /e/ version: Fairphone/FP3/FP3:9/8901.2.A.0120.20200421/04211500:user/release-keys
- Device model: FP3
- When it started to occur: didn't try before
- Reproducible with the last /e/ version: yes
- Reproducible with LineageOS: I don't know
- Additional info : My phone is not rooted
Summary
-
The device is unusable -
The bug is the source of a data loss or a big waste of time -
The bug concerns a third-party application -
The bug concerns security -
The bug concerns privacy
The problem
Steps to reproduce
Download vianavigo > "achat" > "Sur mon passe Navigo"
What is the current behavior?
It says that the version of Android is modified (rooted)
What is the expected correct behavior?
Continue
Technical informations
1st : "Permission denied" instead of "No such file"
Relevant logs (adb logcat
)
2020-07-10 14:00:51.356 20645-20927/com.applidium.vianavigo W/System.err: java.io.IOException: Cannot run program "su": error=13, Permission denied
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at java.lang.Runtime.exec(Runtime.java:695)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at java.lang.Runtime.exec(Runtime.java:525)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at java.lang.Runtime.exec(Runtime.java:422)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.ad.<init>(Unknown Source:149)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.ad.startRootShell(Unknown Source:41)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.ad.startRootShell(Unknown Source:2)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.ad.startRootShell(Unknown Source:2)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.y.isAccessGiven(Unknown Source:24)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.af.isAccessGiven(Unknown Source:0)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.ar.performCheck(Unknown Source:6)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.dzaz.checkPrivilegesOverflow(Unknown Source:21)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.bh$a.isRootedDevice(Unknown Source:11)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.bh.<init>(Unknown Source:27)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.dx$a$1$1.invoke(Unknown Source:13)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.dx$a$1$1.invoke(Unknown Source:0)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.bz.<init>(Unknown Source:51)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.dx$a$1.invoke(Unknown Source:13)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.dx$a$1.invoke(Unknown Source:0)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.by.<init>(Unknown Source:44)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.dx$a.invoke(Unknown Source:13)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.dx$a.invoke(Unknown Source:0)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.br.<init>(Unknown Source:94)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.dx.start(Unknown Source:54)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at a.dz.init(Unknown Source:23)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at com.dejamobile.sdk.ugap.common.entrypoint.DelegateEntryPoint$c.invokeSuspend(Unknown Source:48)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:241)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:740)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: Caused by: java.io.IOException: error=13, Permission denied
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at java.lang.UNIXProcess.forkAndExec(Native Method)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at java.lang.UNIXProcess.<init>(UNIXProcess.java:133)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at java.lang.ProcessImpl.start(ProcessImpl.java:132)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
2020-07-10 14:00:51.357 20645-20927/com.applidium.vianavigo W/System.err: ... 30 more
2020-07-10 14:00:51.865 20645-20645/com.applidium.vianavigo I/TAG_SDK_EVENT: New event added : {"date":1594382451794,"event_client_unique_id":"6d582fbb374975d3db4c4ce38ac59b98","event_type":"ROOTED_DEVICE","informations":{"STATUS":"NOT_INITIALIZED","SOURCE_TYPE":"SE","CALYPSO_ID":"N/A"},"event_error":true}
2020-07-10 14:00:51.865 20645-20645/com.applidium.vianavigo I/TAG_SDK_EVENT: Number of events in queue :2
2020-07-10 14:00:51.866 20645-20645/com.applidium.vianavigo I/TAG_SDK_EVENT: SDK is now using provided OkHttpClient
2020-07-10 14:00:51.867 20645-20645/com.applidium.vianavigo I/TAG_SDK_EVENT: Try sending events to https://prod-ugap.ready2tap.eu/event/sdk/
I tried with a little app :
try {
val cmdArray = arrayOfNulls<String>(1)
//cmdArray[0] = "id" // OK
//cmdArray[0] = "su" // Not OK
cmdArray[0] = "Not_Existing" // Not OK
val process = Runtime.getRuntime().exec(cmdArray, null, null)
process.waitFor()
Log.i("TestExec",process.inputStream.bufferedReader().readLine())
} catch (ex: Exception) {
Log.i("TestExec",ex.message)
}
And I have this output :
Cannot run program "Not_Existing": error=13, Permission denied
I've tested with all the directories in the PATH /sbin:/system/sbin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin
and the problem come from /sbin
: it throws a permission denied. The other directories throws a file not found
Workaround for this part, to debug
FP3:/sdcard # mkdir tmp
FP3:/sdcard # cp /sbin/* tmp/
FP3:/sdcard # mount --bind -o ro tmp/ /sbin
FP3:/sdcard # cd tmp
FP3:/sdcard/tmp # chmod 660 *
2nd : Still not working with "No Such File"
Then I have a Cannot run program "su": error=2, No such file or directory
(as expected) but my device is still considered as rooted..
And now, I have no clue
Solutions
Workaround
None found
Possible fixes
- Make /sbin readable (755).
- ..?