View Full Version : code کامپایل
ehsanirani20123456
یک شنبه 31 فروردین 1393, 01:51 صبح
سلام
آقا یکی راهنمای کنه مردونگی بگه من این کد را چطوری با چی کامپایل کنم که ازش یک binary در بیاد
فکر کنم تو لینوکس دستور make میخاد یا gcc
یکی بگه چه دستوری بزنم
فایل ضمیمه شده su.zip
rubiks.kde
یک شنبه 31 فروردین 1393, 09:51 صبح
شما این رو باید با ndk آندروید کامپایل کنی.
ehsanirani20123456
یک شنبه 31 فروردین 1393, 21:09 عصر
آقا دمت گرم یکی پیدا شد جواب بده
خیلی باهاش ور رفتم اما هنوز گیرم
بیا آقایی کن با مرامی
من هم
ndk for windows
ndk for linux
sdk for winodws
sdk for linux
دانلود کردم و دارم
الان باید چه کار کنم هم لینوکس دارم هم ویندوز
میشه کمکم کنی الان ٣ هفته گیرشم
rubiks.kde
یک شنبه 31 فروردین 1393, 21:41 عصر
ببین من خواستم این فایل که دادی رو کامپایل کنم و ایراد میگیره که ناقصه.
اگه شما این رو از جایی دانلود کردی لینک اصلی رو بده تا پروژه اصلی ببینم چطوره و بعد مراحل کامپایلش رو برات بگم
ehsanirani20123456
دوشنبه 01 اردیبهشت 1393, 00:19 صبح
آقا مردی دمت جیز
http://forum.xda-developers.com/attachment.php?attachmentid=133677&d=1227954857
http://forum.xda-developers.com/showthread.php?t=449536
rubiks.kde
دوشنبه 01 اردیبهشت 1393, 12:01 عصر
این کدی که شما دادی ناقصه و برای کامپایل نیاز به sqlite داره.
البته فایل باینری su رو خودش کامپایل کرده و نیاز ندارید که دوباره کامپایل کنید (البته اگه قصد تغییر کد رو ندارید) ، کامپایل کردن کد جاواش هم با اکلیپس صورت میگیره.
حالا من نمیدونم هدفتون چیه و میخوایید چیکار کنید ولی نسخه کامل برنامه supersu توی این لینک قرار داره : Super User (https://github.com/koush/Superuser)
پروژه کامل رو ببینید اگه به کارتون میاد کامپایل اون راحته و نیاز به دردسر هم نداره.
ehsanirani20123456
دوشنبه 01 اردیبهشت 1393, 13:51 عصر
این کدی که شما دادی ناقصه و برای کامپایل نیاز به sqlite داره.
البته فایل باینری su رو خودش کامپایل کرده و نیاز ندارید که دوباره کامپایل کنید (البته اگه قصد تغییر کد رو ندارید) ، کامپایل کردن کد جاواش هم با اکلیپس صورت میگیره.
حالا من نمیدونم هدفتون چیه و میخوایید چیکار کنید ولی نسخه کامل برنامه supersu توی این لینک قرار داره : Super User (https://github.com/koush/Superuser)
پروژه کامل رو ببینید اگه به کارتون میاد کامپایل اون راحته و نیاز به دردسر هم نداره.
بله درسته میدونم کامپایل شدش هست اما من خودم میخام کامپایل کنم
١-منظورتون از کامپایل کردن کد جاواش هم با اکلیپس صورت میگیره.یعنی چی ؟ و چطور امکان پذیره ؟
هم https://github.com/koush/Superuser
هم https://github.com/ChainsDD/Superuser
قبلا هر ٢ تا لینک رو بررسی کردم اما سر در نیاوردم آیا ٢ تا برنامه متفاوتان ؟
و با اون فایل زیپ که attach کردم فرق دارن؟ یعنی ٣ تا برنامه هست ؟
حالا با sqllite چطور کامپایل کنم
اگر https://github.com/koush/Superuser کامپایل کنم چکار کنم
باور کن ١ ماهه دارم google سرچ میکنم ی راهی پیدا کنم
تو eclipse
import کردم
ndk-build انجام دادم خیلی ور رفتم
تو eclipse
file-imporet-GIT چیه ?
rubiks.kde
دوشنبه 01 اردیبهشت 1393, 16:38 عصر
ببین اون کدی که دادی رو یه شخصی گذاشته به اسم koush که ظاهره نویسنده super su بوده و این لینکی هم که من بهت دادم هم واسه همون طرفه.(درواقع لینک اصلی پروژه است)
من هر جفتش رو کامپایل کردم هم کد شما رو هم لینکی که خودم معرفی کردم.تنها هر دو نیاز به یه سری تغییرات دارند.
اول اینکه توی کد شما نیاز به sqlite هست و من اون رو اضافه و بعد کامپایل کردم.
من هر دو کد رو بعد از تغییر آپلود کردم وشما میتونی به راحتی کامپایل کنی.
برای کامپایل هم وارد پوشه پروژه شو جایی که پوشه jni وجود داره (نمیخواد وارد این پوشه بشی) حالا توی cygwin (اگه از ویندوز استفاده میکنی ) و یا توی ترمینال (اگه از لینوکس استفاده میکنی) فایل ndk-build رو اجرا کن ، خودش شروع به کامپایل میشه و نتیجه توی پوشه libs ذخیره میشه.
دانلود کد (http://s5.picofile.com/file/8120794918/su.rar.html)
مثل تصویر زیر اول از طریق ترمینال یا سیجوین برو به محل پروژه جایی که jni وجود داره بعد هم ndk-build رو اجرا کن.
http://s5.picofile.com/file/8120795718/12222.png
ehsanirani20123456
دوشنبه 01 اردیبهشت 1393, 17:36 عصر
خیلی خیلی ممنون
گفتی تنها هر دو نیاز به یه سری تغییرات دارند.
اول اینکه گفتی توی کد شما نیاز به sqlite هست و من اون رو اضافه کردم
حالا میشه بگی کدوم فایل رو ادیت و چی اضافه کردی یا چی کار کردی که من انجام بدم
در ضمن آیا من نیاز به نصب java runtime یا java sdk ندارم ؟
آیا نیاز به نصب sqllite ندارم ؟
آیا نیاز به تنظیم environment variables ندارم برای دادن مسیر ndk-bulid یا java ...؟
this is my error
I:\Documents and Settings\Administrator.ETET-10DB0453EE>ndk-build O:\android-ndk
-r9d-windows-x86\android-ndk-r9d\u\su
Android NDK: Your Android application project path contains spaces: 'I:/ ./ Sett
ings/'
Android NDK: The Android NDK build cannot work here. Please move your project to
a different location.
ehsanirani20123456
دوشنبه 01 اردیبهشت 1393, 17:46 عصر
I:\>ndk-build O:\android-ndk-r9d-windows-x86\android-ndk-r9d\u\su\Superuser\Supe
ruser\src\jni
Android NDK: Could not find application project directory !
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.
O:\android-ndk-r9d-windows-x86\android-ndk-r9d\build/core/build-local.mk:148: **
* Android NDK: Aborting . Stop.
ehsanirani20123456
دوشنبه 01 اردیبهشت 1393, 17:50 عصر
میشه از کاری که انجام باید بدم عکس یا فیلم بزاری
rubiks.kde
دوشنبه 01 اردیبهشت 1393, 18:13 عصر
میشه از کاری که انجام باید بدم عکس یا فیلم بزاری
شما الان دارید درست عمل میکنید ولی منتها نباید مسیر پروژه رو به همراه پوشه jni بدید.
یعنی مسیر شاخه اصلی پروژه رو بدید (منظورم آدرس پروژه تا قبل از پوشه jni است)
ehsanirani20123456
دوشنبه 01 اردیبهشت 1393, 18:14 عصر
دمت گرم ایول با این ارور فکر میکنم نزدیک شدم به کامپایل
تو تنظیمات برای sqlite3.h مشکل داره
O:\android-ndk-r9d-windows-x86\android-ndk-r9d\u\su\Superuser\Superuser\src\jni>ndk-build
[armeabi] Compile thumb : su <= su.c
O:/android-ndk-r9d-windows-x86/android-ndk-r9d/u/su/Superuser/Superuser/src//jni/su.c:31:21: fatal
error: sqlite3.h: No such file or directory
compilation terminated.
make.exe: *** [O:/android-ndk-r9d-windows-x86/android-ndk-r9d/u/su/Superuser/Superuser/src//obj/loc
l/armeabi/objs/su/su.o] Error 1
ehsanirani20123456
دوشنبه 01 اردیبهشت 1393, 22:02 عصر
مشکل بالا رو چکار کنم
rubiks.kde
سه شنبه 02 اردیبهشت 1393, 09:26 صبح
شما مگه از کد من استفاده نمیکنید؟
من این مشکل رو حل کرده بودم توی اون کد
شما داخل پوشه su ، پوشه sqlite3 رو دارید؟
محتوای فایل Android.mk هم باید این طوری باشه.
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := su
LOCAL_FORCE_STATIC_EXECUTABLE := true
LOCAL_STATIC_LIBRARIES := sqlite3 libc
LOCAL_C_INCLUDES := $(LOCAL_PATH)/su/sqlite3
LOCAL_SRC_FILES := su/su.c
include $(BUILD_EXECUTABLE)
include $(CLEAR_VARS)
LOCAL_MODULE := sqlite3
LOCAL_SRC_FILES := su/sqlite3/sqlite3.c
LOCAL_CFLAGS := -DSQLITE_OMIT_LOAD_EXTENSION
include $(BUILD_STATIC_LIBRARY)
ehsanirani20123456
سه شنبه 02 اردیبهشت 1393, 16:31 عصر
آقا شرمنده من زیاد سوال میکنم
با عرض معزرت من تو اندروید آماتور هستم خواهشان به سوال ها تک تک جواب بدین
فایلهای sqlite3 یا sqlite مورد نظر چیا هستن و از کجا اوردی مثل shell.c یا sqlite3ext.h یا .
چرا ندارم و از کجا باید بیارم تو پوشه یا چرا توخود پوشه src نیستن در کل از کجا بیارم و کجا قرار بدم یا چکار کنم
محتوای فایل Android.mk رو باید مثل Android.mk شما ادیت کنم ؟ کجا هاشو ادیت کنم ؟
سورس superuser رو چطور از https://github.com/koush/Superuser یا
https://github.com/ChainsDD/Superuser دانلود کنم
و این ها چه تفاوتی با هم دارند ؟ شما میدونید ؟
یک سوال دیگه su که خودش کامپایل کرده ٦ kb در صورتی که مال شما که تو پوشه \libs هست از ٦٠٠ kb تا ٩٠٠ kb هست
این چرا اینجوریه و چه دلیلی دارد
٢ تا فایل gdb.setup و gdbserver که ساخته میشن چی هستن
ehsanirani20123456
چهارشنبه 03 اردیبهشت 1393, 14:14 عصر
آقا rubiks.kde دیگه جواب نمیدی ؟
rubiks.kde
چهارشنبه 03 اردیبهشت 1393, 14:38 عصر
آقا rubiks.kde دیگه جواب نمیدی ؟
دوست عزیز یه طومار سوال پرسیدی به کدومش جواب بدم؟
انگاری اصلا چیزی در مورد ndk و ساختار کامپایل نمیدونی من بدبخت از کجا برات شروع به توضیح کنم :گریه:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.