Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Post Reply

Build Android from Source with Superuser privileges

OP rotowsky

24th May 2014, 05:28 PM   |  #1  
OP Junior Member
Thanks Meter: 0
 
5 posts
Join Date:Joined: May 2014
Hello together,

following situation - I have got a Single Board Computer with Android support and the android source code from the manufacturer. It works to build an android image from it at all. Unfortunately, it's not rooted by default. I could manage to get a rooted shell. But I also need superuser privileges for the apps and that's the point where I am struggeling.

At first I tried to comment out following lines from system/extras/su/su.c:

Code:
//if (myuid != AID_ROOT && myuid != AID_SHELL) {
//    fprintf(stderr,"su: uid %d not allowed to su\n", myuid);
//    return 1;
//}

//if(setgid(gid) || setuid(uid)) {
//    fprintf(stderr,"su: permission denied\n");
//    return 1;
//}
As this didn't work, I found a thread on stackoverflow and tried this part of the suggestion:

Quote:

> To embed Superuser.apk in AOSP, you have to fetch and build:

> su-binary (e.g. in external/) and stub/remove system/extras/su package.
> Superuser (e.g. in packages/app/)

But I am running in errors while building android:

Code:
    ctarget Dex: core-tests-hostdex
../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/su.o: in function deny:external/su-binary-master/su.c:287: error: undefined reference to 'LOGW'
../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/su.o: in function allow:external/su-binary-master/su.c:319: error: undefined reference to 'LOGE'
../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/su.o: in function allow:external/su-binary-master/su.c:330: error: undefined reference to 'LOGE'
../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/su.o: in function allow:external/su-binary-master/su.c:338: error: undefined reference to 'LOGD'
../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/su.o: in function allow:external/su-binary-master/su.c:352: error: undefined reference to 'LOGE'
../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/su.o: in function main:external/su-binary-master/su.c:440: error: undefined reference to 'LOGE'
../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/su.o: in function main:external/su-binary-master/su.c:582: error: undefined reference to 'LOGW'
../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/db.o: in function database_check:external/su-binary-master/db.c:31: error: undefined reference to 'LOGD'
../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/db.o: in function database_check:external/su-binary-master/db.c:35: error: undefined reference to 'LOGD'
../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/db.o: in function database_check:external/su-binary-master/db.c:39: error: undefined reference to 'LOGD'
collect2: ld returned 1 exit status
make: *** [out/target/product/.../obj/EXECUTABLES/su_intermediates/LINKED/su] Error 1
Could anyone tell me how to fix this error or another way to get su privileges, please?

Thank you very much in advance.
Last edited by rotowsky; 24th May 2014 at 11:02 PM. Reason: Resolved
24th May 2014, 05:39 PM   |  #2  
philos64's Avatar
Recognized Contributor
Thanks Meter: 2,698
 
3,396 posts
Join Date:Joined: May 2010
More
Have you seen that we have a University for Development on xda. I think that your post had a better place on this forum than here.

So goto see here : General discussion > XDA-University


...and don't forget to search before to post

If you want to move your post, contact a mod by the "report button"
Last edited by philos64; 24th May 2014 at 05:42 PM.
24th May 2014, 05:47 PM   |  #3  
OP Junior Member
Thanks Meter: 0
 
5 posts
Join Date:Joined: May 2014
Lightbulb
Hi philos,

thank you for your answer. I tried to post the thread there at first, but I got following message:

Quote:

This is not a Q&A forum. By posting questions in this forum you are breaking the forum rules. Please only post questions in the Q&A forums.

I tried to find an already existing thread for this topic, but I couldn't find something helpful.
Last edited by rotowsky; 24th May 2014 at 05:51 PM. Reason: typo
24th May 2014, 09:30 PM   |  #4  
OP Junior Member
Thanks Meter: 0
 
5 posts
Join Date:Joined: May 2014
Thumbs up
Okay, I found the problem. For anyone who faces the same problem.

su.h

Remove the following if command:

#if 0
#undef LOGE
#define LOGE(fmt,args...) fprintf(stderr, fmt, ##args)
#undef LOGD
#define LOGD(fmt,args...) fprintf(stderr, fmt, ##args)
#undef LOGW
#define LOGW(fmt,args...) fprintf(stderr, fmt, ##args)
#endif
24th May 2014, 09:52 PM   |  #5  
philos64's Avatar
Recognized Contributor
Thanks Meter: 2,698
 
3,396 posts
Join Date:Joined: May 2010
More
Souds good
If it's good for you and your problem resolved, can you add on the title of your OP.
Thanks in advance
Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes