از آنجا که به تازگی دارم پایتون کار می کنم می خواستم تا به هسته اندروید تبلتم پایتون رو اضافه کنم تا بتونم براش اسکریپت پایتونی هم بنویسم. پس جست و جو کردم تا چطور می تونم این کار رو انجام بدم؛ تا این که یافتم چطور می تونم پایتون 3.4.2 رو به اندروید اضافه کنم. البته برای استفاده از پایتون بر روی اندروید راه های دیگری مانند استفاده از برنامه QPython هم هست که به روت هم فکر نکنم نیاز باشه ولی در این جا شما می تونید کد ها و اسکریپت ها را از شل اجرا کنید و حتی اسکریپت هایی برای سیستم بنویسید که به سادگی اجرا می شوند.

قبل از هر چیز باید بگم که این دستورالعمل نیاز به دسترسی روت داره و طبق گفته ی منبع فقط روی پردازشگر های ARM جواب میده. من این کار رو انجام دادم و به خوبی روی تبلت سامسونگ به مدل GT-P3100 جواب داد. استفاده از ARM هم برای سادگی کار پیشنهاد می شه که البته میشه از یک terminal emulator برای اندروید هم استفاده کرد.

1. دانلود فایل ها و استخراج فایل ها از حالت فشرده.

 

فایل ها را در آدرسی استخراج کنید و آدرس را مد نظر داشته باشید.

2. قابل ویرایش کردن سیستم.

قبل از انتقال فایل ها به سیستم شما نیاز دارید تا سیستم را remount کنید تا به ما دسترسی نوشتن بدهد.

اگر از adb استفاده می کنید دستور زیر را وارد کنید (در اکثر مواقع دیدم که کار نکرده!):

user@linuxsystem:~$ adb remount_

و یا با استفاده از دستور mount خودتون به صورت دستی این کار رو بکنید(در اکثر موارد کار کرده!!)(برای اجرای دستورات بدون adb باید قسمت adb shell را نادیده بگیرید و باقی دستور را وارد کنید):

user@linuxsystem:~$ adb shell mount

rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
/sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/secure tmpfs rw,relatime,mode=700 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/FACTORYFS /system ext4 ro,relatime,barrier=1,data=ordered 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/HIDDEN /preload ext4 ro,relatime,barrier=1,data=ordered 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/CACHE /cache ext4 rw,nosuid,nodev,noatime,barrier=1,journal_async_commit,data=ordered,noauto_da_alloc,discard 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/EFS /efs ext4 rw,nosuid,nodev,noatime,barrier=1,journal_async_commit,data=ordered,noauto_da_alloc,discard 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/DATAFS /data ext4 rw,nosuid,nodev,noatime,barrier=1,journal_async_commit,data=ordered,noauto_da_alloc,discard 0 0

user@linuxsystem:~$ adb shell su -c mount -r -w -o remount,noatime,commit=500 -t ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/FACTORYFS /system

user@linuxsystem:~$ adb shell su -c mount -r -w -o remount,noatime,commit=500 -t rootfs rootfs /

user@linuxsystem:~$ _

توجه کنید که برای گوشی های مختلف ممکن است بعضی خط ها فرق کنند ولی به هر حال همانند خطوط مشخص شده به دنبال خطوطی باشید که دو آدرس "/" و "system/" روی آن ها باشد.

 

3. انتقال فایل ها به سیستم.

در پوشه "AndroidPython3-master" پوشه "system" وجود دارد که محتویات آن باید به آدرس "system/" گوشی منقل شود. این کار را می توان با یک کپی ساده با نرم افزار های مدیریت فایل مثل x-plore و ... انجام داد و یا از دستورات زیر استفاده کرد

user@linuxsystem:~$ adb push [ADDRESS TO SYSTEM FOLDER OF PYTHON] /system

user@linuxsystem:~$ adb shell su -c cp [ADDRESS TO SYSTEM FOLDER OF PYTHON ON SD CARD] /system_

برای سبک ماندن سیستم می توانید به جای پوشه "python3.4.2" به خود آدرس سیستم، آن ها را به جایی غیر از "system/" انتقال داد و از آن یک لینک نرم (symlink/softlink) ساخت. برای این کار هم می توانید از یکی از دستورات زیر استفاده کنید.

user@linuxsystem:~$ adb shell ln -s [ADDRESS TO PYTHON3.4.2] /system/pyhton3.4.2

user@linuxsystem:~$ adb shell symlink [ADDRESS TO PYTHON3.4.2] /system/pyhton3.4.2

حال هر موقع خواستید از پایتون استفاده کنید دستور زیر را بزنید:

user@androidsystem:~$ su

user@androidsystem:~# python3

Python 3.4.2 (default, Dec  5 2014, 20:46:37)
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>_

laughتمام!