View Full Version : سوال: چکار کنم برنامه فقط روی یک گوشی بتونه نصب شه
asemaneiran
یک شنبه 23 خرداد 1395, 08:24 صبح
سلام من میخواهم وقتی کاربر برنامه ام رو دریافت کرد فقط روی گوشی خودش قابل نصب باشه و کپی نشه
کسی راهی بلده؟
پیشاپیش ممنون
vahid-p
یک شنبه 23 خرداد 1395, 09:01 صبح
اگر برنامت رو Decompile نکنن و تغییرش ندن. میتونی از MAC Address مربوط به Wifi دستگاه استفاده کنی.
یا Android device id دستگاه (که ممکنه بعضیا نداشته باشن).
در نتیجه فکر کنم بهتر باشه از MAC address استفاده کنی.
برای MAC Address:
WifiManager manager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = manager.getConnectionInfo();
String address = info.getMacAddress();
و دسترسی android.permission.ACCESS_WIFI_STATE
منبع کد: http://stackoverflow.com/a/11705949
asemaneiran
یک شنبه 23 خرداد 1395, 09:42 صبح
بازم ممنون
خوب میشه لطف کنید بگید
چکار کنم کدهای برنامه رو تغییر ندن؟؟؟
و اینکه درست نفهميدم آدرس مک رو گرفتم خوب چطور وقتی کاربر برنامه رو دان کرده بگم فقط رو دستگاه خودش اجرا شه و کپی نشه؟؟
یعنی چطور از این مک آدرس استفاده کنم ؟؟؟؟!!
ممنون میشم..راهنمایی بفرمایید
vahid-p
یک شنبه 23 خرداد 1395, 21:31 عصر
جلو تغییر دادن برنامه رو نمیتونید بگیرید.
تنها راه اینه که نذارید به راحتی تغییر بدن. بعضی برنامه ها هستن که لااقل قبل از کامپایل کردن تغییراتی جهت ناخوانا شدن سورس انجام میدن.
ولی بازم میشه تغییر داد، اگر میشد جلوش رو گرفت که این همه نرم افزارهای گرون قیمت براشون کرک نوشته نمیشد.
در نتیجه بهتره وقتتون رو زیاد رو این موضوع صرف نکنید و همین که از ناخوانا کردن سورس استفاده کنید کافیه. تازه خیلی از کاربرها هم که حرفه ای نیستن بخوان کد رو تغییر بدن.
ضمنا اگر برنامتون نیازمندی هایی باید از وب سرور داشته باشه، اینکار ساده تر خواهد بود چون شما هزینه خدمات از طریق ارتباط با سرور رو میگیرد نه نصب یا اجرای برنامه.
--------------------------------------------------------------
یکی از روشها (با فرض اینکه کاربرتون خیلی حرفه ای نباشه):
به ازای هر دستگاه یک کد سریال بدید. برای اینکار الگوریتمی بنویسید که مک آدرس رو رمز کنه و یک کد سریال تولید کنه. از اونجایی که کاربر این الگوریتم رو نمیدونه و شما میدونید، طی یک پیام به وب سرور شما مک آدرس رو میفرسته و شما کد سریال رو میدید. برنامه هم الگوریتم رو میدونه و چک میکنه اگر درست بود، تایید میکنه.
ولی خب اگر کاربرتون یکم حرفه ای باشه، به راحتی کد رو دیکامپایل میکنه و قسمتی که الگوریتم موجوده و از روی مک محاسبه میکنه رو بدست میاره.
خلاصه هر روش پیچیده تری هم استفاده کنید، سرنوشت چندان متفاوتی نخواهد داشت. ولی برای کاربرهای غیرحرفه ای کاملا جوابگو است.
asemaneiran
دوشنبه 24 خرداد 1395, 07:58 صبح
سپاس
نه برنامه ای که میخواهم روی یک گوشی اجرا شه تحت سرور نیست و افلاینه
من کد imei رو بگیرم و به چیزی بهش اضافه کنم
چطور باید ازش استفاده کنم که برنامه فقط رو همون گوشی اجرا شه یعنی چطور بگم روی همون گوشی؟؟؟
بازم ممنون
vahid-p
دوشنبه 24 خرداد 1395, 22:47 عصر
خب اگر سروری در کار نیست و همش یک برنامست، پس شما تمام فایل رو در اختیار کاربر میدید و به معنی این هست که سورس کد رو هم داره و اگر بلد باشه هر کاری دوست داره میتونه انجام بده.
چطور باید ازش استفاده کنم که برنامه فقط رو همون گوشی اجرا شه یعنی چطور بگم روی همون گوشی؟؟؟
به نظرم شما جواب سوال خودتون رو دادید. کد IMEI (که نمیدونم قابل تغییر از طریق روت کردن گوشی هست یا نه) یا MAC Address اون گوشی رو اول میگیرید، بعد یک apk مخصوص اون گوشی تولید میکنید که داخل برنامه برابری IMEI یا MAC Address گوشی اجرا کننده وIMEI یا MAC Address ای که قبلا داخل برنامه نوشتید رو با یک شرط ساده چک میکنید.
ولی اینکه انتظار داشته باشید هیچ کس نتونه به برنامتون دست بزنه این کار نشدنیه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.