this is my NIRI config
GSettings
یک API / ابزار خط فرمان (gsettings) است برای خواندن و نوشتن تنظیمات برنامهها.
Backend واقعی آن معمولاً dconf است.
خودش پروتکل IPC ندارد، اما وقتی مقدار تغییر میکند، از dconf-service استفاده میکند.
dconf
یک دیمون/سرویس است که دادههای تنظیمات را ذخیره میکند (فایل باینری).
وقتی یک key تغییر میکند، signal broadcast روی D-Bus ارسال میکند تا برنامههای دیگر مطلع شوند.
برنامهها میتوانند listen کنند تا به محض تغییر config واکنش نشان دهند.
D-Bus
یک پروتکل ارتباط بین فرایندی (IPC) است.
کاربردش:
فراخوانی متد بین برنامهها (method call / RPC)
ارسال و دریافت سیگنال (signal)
در مورد dconf، این پروتکل برای اطلاعرسانی تغییرات استفاده میشود.
سلام
امروز ۲۸ آبان ۱۴۰۴
در مورد داکر کامپوز اومدم یه سری دستوارت رو بنویسم اینجا یادم نره.
after change sdk version in build.prop the apk has been installed, but when I opend it the app has been crashed
the error in logcat shows this
Failed to open dex file '/data/app/org.nikobox.store-1/base.apk' from memory: Unrecognized version number in /data/app/org.nikobox.store-1/base.apk: 0 3 9
it means the ART (Android Runtime) can not run dex file because the dex file has been compiled by newer version of dex compiler
to work with Amlogic Image file you need 2 different toolset. 1) to unpack image 2) to flash image on the device
we have 2 different type of amlogic. the old chipset such as s905x3 uses old protocol to flash image, and in newer version of amlogic such as S905Y4 introduce a new protocol called ADNL so we should use currect protocol to connect to device and flash image.
and in other hands to unpack system.img file we have 2 different aspect, for android 10 and above the super image introduced and the system.img had been deleted, so we should unpack super partition to access system.img and to unpack super parititon we have to use lpunpack program (from google) but in previous version of android (such as android 9 and older) the system.img is ready and we can mount it simply.
to Flash image on newer version of Amlogic such as S905Y4 (with ADNL protocol) and the older version you can use this repo (download the corresponding .zip file)
(note that because S905Y4 is newer so there is 2 script in aml-flash-tool-s905x4.zip adnl_flash_tool.sh and aml_flash_tool.sh so you don't need download S905X3 and you can use aml_flash_tool.sh for S905X3 and use adnl_flash_tool.sh for S905Y4
after test I found that when we use aml_flash_tool.sh in the aml_flash_tool_s905y4.zip file it can not flash correctly on device and get us this error : Initializing ddr [KO], so you should corresponding file for each chipset)
and for unpack amlogic image use this tools:
to root your device when you have access to image you can copy init_boot_a.PARTITION file from image and push it to your device then patch it with Magisk app. pull it from device and flash it on device. I replaced it with original init_boot_a.PARTITION and repack again and flash whole image.
this is step by step guid:
first we need set KODI as Launcher for Android so we need these changes:
you can do this with this helper text.
MODIFY ANDROIDMANIFEST.XML.IN TO MAKE KODI DETECTED AS A LAUNCHER
Modify tools/android/packaging/xbmc/AndroidManifest.xml.in to make Kodi a launcher so that:
Launcher intent filter is added to Main activity:
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>
Splash and Main activities have android:launchMode="singleTop"
Splash and Main activities have android:documentLaunchMode="never"
Splash and Main activities have android:excludeFromRecents="true"
The developer guidelines suggest setting android:launchMode="singleTask" and androidConfusedtateNotNeeded="true" for launchers but this causes significant load times (as it starts from scratch every time you go to the home screen) and I have found no issues running with singleTop and no stateNotNeeded.
MODIFY XBMCAPP.CPP TO CATCH HOME BUTTON INTENT
To react to "Home button press" add handling for android.intent.action.MAIN/android.intent.category.HOME in void CXBMCApp::onNewIntent(CJNIIntent intent) (found on line 1076 in xbmc/platform/android/activity/XBMCApp.cpp):
if(action == "android.intent.action.MAIN" && intent.hasCategory("android.intent.category.HOME"))
{
CApplicationMessenger::GetInstance().PostMsg(TMSG_GUI_ACTIVATE_WINDOW, WINDOW_HOME, 0, nullptr); // Sets Home window as active
} else // below is original code
if (!targetFile.empty() && (action == "android.intent.action.VIEW" || action == "android.intent.action.GET_CONTENT"))
{
CLog::Log(LOGDEBUG, "-- targetFile: %s", targetFile.c_str());
...
The above will send Kodi to Home.xml when the Home button is pressed (the key press doesn't generate a key press event, it only generates a MAIN/HOME intent). One could look at clearing the "Kodi window stack" as well (so that back button press after pressing home goes nowhere).
this instructions uses for unpack amlogic image file and unpack super.img file and then repack and flash on the device.
./bin/unpack ./path/to/image.img cd output/image ../../bin/simg2img super.PARTITION ./super.img lpunpack ./super.img supers cd supers resize2fs ./system_a.img 1300M e2fsck -E unshare_blocks ./system_a.imge2fsck -E unshare_blocks ./system_a.img e2fsck -f ./system_a.img mkdir sys sudo losetup -P /dev/loop0 ./system_a.img sudo mount /dev/loop0 ./sys -rw cd sys (make changes) cd .. sudo umount sys resize2fs -M ./system_a.img e2fsck -f ./system_a.img resize2fs -M ./system_a.img e2fsck -f ./system_a.img lpmake \ --metadata-size=65536 \ --metadata-slots=3 \ --device super:2097152000 \ --group amlogic_dynamic_partitions_a:2086666240 \ --group amlogic_dynamic_partitions_b:2086666240 \ --partition system_a:readonly:1156333568:amlogic_dynamic_partitions_a \ --image system_a=./system_a.img \ --partition system_b:readonly:0:amlogic_dynamic_partitions_b \ --partition vendor_a:readonly:157237248:amlogic_dynamic_partitions_a \ --image vendor_a=./vendor_a.img \ --partition vendor_b:readonly:0:amlogic_dynamic_partitions_b \ --partition product_a:readonly:455888896:amlogic_dynamic_partitions_a \ --image product_a=./product_a.img \ --partition product_b:readonly:0:amlogic_dynamic_partitions_b \ --partition odm_a:readonly:962560:amlogic_dynamic_partitions_a \ --image odm_a=./odm_a.img \ --partition odm_b:readonly:0:amlogic_dynamic_partitions_b \ --partition system_ext_a:readonly:173031424:amlogic_dynamic_partitions_a \ --image system_ext_a=./system_ext_a.img \ --partition system_ext_b:readonly:0:amlogic_dynamic_partitions_b \ --partition vendor_dlkm_a:readonly:59121664:amlogic_dynamic_partitions_a \ --image vendor_dlkm_a=./vendor_dlkm_a.img \ --partition vendor_dlkm_b:readonly:0:amlogic_dynamic_partitions_b \ --partition system_dlkm_a:readonly:348160:amlogic_dynamic_partitions_a \ --image system_dlkm_a=./system_dlkm_a.img \ --partition system_dlkm_b:readonly:0:amlogic_dynamic_partitions_b \ --partition odm_dlkm_a:readonly:348160:amlogic_dynamic_partitions_a \ --image odm_dlkm_a=./odm_dlkm_a.img \ --partition odm_dlkm_b:readonly:0:amlogic_dynamic_partitions_b \ --sparse \ --output ../super.PARTITION ./bin/repack ./name.img ./aml-burn-tool -b VIM4 -i /mnt/program/linux-amlogic-toolkit/name.img
first, download tools from this link:
in newer version of amlogic chip, introdueced a new protocl called ADNL so you can't use old tools to burn image on newer device
./aml-burn-tool -b VIM4 -i /path/to/file.img
also, to unpack image fie you can use Linux Amlogic toolkit this repo on github.
in new version of android (from Android 10) system.img is not exist and some partition is inside of super.PARTITION so you should extract super partitino again. first you need to use simg2img to convert sparce image to raw image:
./bin/simg2img ./output/image/super.PARTITION ./output/image/super.img
and then you can use lpunpack tool to unpack super partition:
lpunpack ./super.img supers
supers is a directory that I made.
the error in mounting is:
couldn't mount RDWR because of unsupported optional features (4000)
according to this source; I found out that Android 10's system images are formatted with EXT4_FEATURE_RO_COMPAT_SHARED_BLOCKS. It will deduplicate blocks in the filesystem to reduce the image size. On my Pixel XL, the partition is physically not large enough to successfully run 'e2fsck -E unshare_blocks'.
so to resolve this problem you can use:
e2fsck -E unshare_blocks
but before that you should resize and increase free size of image (because its need beeger than prevois) so you can use:
resize2fs ./system_a.img 1200M
and then
sudo losetup -P /dev/loop3 ./system_a.img sudo mount /dev/loop3 ./system -rw
https://android.stackexchange.com/questions/50085/android-x86-virtual-box-with-internet-and-connection-to-adb
set NAT and then make an portforwarding roll and then use adb connect localhost:port to connect to adb of virtual machine
to add new layout (in this case farsi) for keyborad you can add below lines to ~/.config/hypr/hyprland.conf
input {
kb_layout=us,ir
# kb_options=grp:ctrl_semi_toggle
# kb_options=grp:toggle
kb_options=grp:shifts_toggle
}
and also for swap workspace by swapping on touchpad you can add these lines to that file
gestures {
workspace_swipe = true
workspace_swipe_fingers = 3
# workspace_swipe_invert = true
#workspace_swipe_min_speed_to_force=5
}
first of all, you should pull some libraries from android device.
list of it:
ld-android.so libc.so libdl.so libdl_android.so liblog.so libm.so
after that you can compile your program with this command:
arm-none-linux-gnueabihf-gcc hello.c -fPIE -pie -o hello_android_gcc2 -Wall -Wl,--dynamic-linker=/system/bin/linker -nostdlib -nodefaultlibs -L. -I. ./ld-android.so ./libdl_android.so ./libc.so ./libm.so ./libdl.so ./libdl.so
we use dynamic-linker flag to force ELF file to use /system/bin/linker as interpreter linker because in android device the ld-linux.so is not exist.
we use -nostdlib because as default of arm-none-linux-gnueabihf-gcc compiler it use libc.so.6 that is glibc standard library that not exist on android instead of that bionic is standard c library in /system/lib/libc.so
for install flutter on linux desktop on x86 you should first install last flutter framework
to sync 2 or more postgresql database that exist on seprate server (with specific IP) we have some way.
First we should tell about replication. replication uses when we want to make an backup from current exist postgresql DB. not a fix backup, an streaming replication that replicate each changes in primary DB on others backup DB.
So we can use this to make a mirror server, but what happen if we use write query (e.g. insert, update) on the secondery db (backup db)? ok we should not allow to write on db because every change on backup db cause to dismiss data because new data has been written on that when update from primary db. So what should we do? we should forward write query to primary db and after primary DB changes the replication send new data to backup DB so the user think write on the DB really worked while the write query forwarded to primary DB.
به نام خدا.
سلام داستان از اونجا شروع شد که برای انجام یکی از تسک ها نیاز بود از دو دستور زیر استفاده کنم:
Physical Volumes (PVs): The actual disks or partitions (e.g., /dev/sda1).
Volume Groups (VGs): A pool of storage created from one or more physical volumes.
Logical Volumes (LVs): Flexible partitions created from the space in a volume group.
به نام خدا
در این پست قصد دارم توضیحاتی در مورد فرمت ELF خدمتتون ارائه کنم.
Once in the boot menu of grub, select the boot entry you want to boot with your Up/Down keys and press e to edit the entry.
Then navigate down to the line that starts with linux and append break or break=<run-time> to make the boot process stop in the initramfs.
به نام خدا
سلام.
یک سری توضیحات از مفاهیمی که یاد گرفتم رو میخوام اینجا یادداشت کنم.
this post I use to save only commands that uses in every day:
سلام
نزدیک ۲ ماه بود که درگیر سرعت پایین لینوکس بودم میدونستم که مشکل از منابع سیستم نیست چون سیستم من هم منابع خوبی داشت هم ویندوز که طبیعتا منابع بیشتری میخواد خیلی روون روش اجرا میشد.
سلام

طبق تصویر بالا ابتدا یک کانکشن TCP با سرور پروکسی ساکس انجام میشود سپس یک پیام که حاوی ورژن ساکس (که در حال حاضر ۵ است) به همراه نحوه ی احراز هویت (که میتواند نداشته باشد) به سرور ارسال میشود سرور در پاسخ به ما میگوید که درخواست با شرایطی که گفتی اوکی بود
به نام خدا سلام
وقتی که آرچ لینوکس رو نصب کردم در مراحل نصب وای فای به درستی شناخته میشد و کار میکرد اما هنگامی کمه آرچ لینوکس بالا میومد دیگه خبری از وایفای نبود
به کمک چت جی پی تی مشکل حل شد.
به نام خدا
سلام.
فلاگ -I برای معرفی مکان include ها کاربرد داره که به صورت زیر میشه ازش استفاده کرد
gcc test.c -o test -I/usr/include
و فلگ -L هم برای معرفی مکان Library ها کاربرد داره. لایبراری ها در واقع همون فایل های .a یا .so توی لینوکس و .lib و .dll توی ویندوز هستن که کد های از پیش کامپایل شده ان. میتونید چیز های بیشتر در مورد لایبراری ها رو توی این صفحه بخونید.
اگه اسم لایبراری که میخواهید اضافه کنید به پروژه libXX.a یا libXX.so باشه باید به صورت زیر لود کنید.
gcc test.c -o test -L$HOME/.usr/lib -lXX
در واقع با -L مکانش رو مشخص میکنید و با -l اسم لایبراری رو. توجه کنید تمام لایبراری ها اسمشون با lib شروع میشه برای همین دیگه توی معرفی اش اسم lib رو نمیارن. البته این اختیاری نیست و شما مجبورید که کلمه lib رو خط بزنید.
در حال حاضر، متداولترین روش کسب درآمد، ارایه خدمات به همراه یک محصول متنباز است. یک پروژه متن باز را به صورت تصادفی انتخاب کنید، به احتمال خیلـی زیـاد میبینید کـه به هرحال نوعـی خدمات همراهش ارایه میشود.
برنامه کامپایل شده: اگرچه شما کد برنامه را به صـورت رایـگان در اختیار قرار میدهید، اما همیشـه کاربرهایی هسـتند که میخواهند از نرم افزار استفاده کنند، اما دانش، زمان یا انرژی لازم برای کامپایل کردن آن را ندارند. این کاربرها معمولا حاضرند به شما پول بدهند تا شما کد خودتان را برای استفاده نهایی آنها آماده کنید.
خدمات نگهداری: شما از هر کسی بهتر نرم افزار خودتان را میشناسید. شما میتوانید این تخصص را به شـکل خدماتی که منجر بـه صرفه جویی در زمان و جلوگیـری از تلاش بی حاصل میشـود، به دیگران بفروشـید. بیشتر شـرکتها برای وقتشـان بیشتر از پول، ارزش قائل هستند و این راه بسیار خوبی است، به خصوص برای نرم افزارهای مبنی بر سـرور. نصب و راهاندازی پولی، یا پشتیبانی مدیریت سیستم همیشه در دسترس، دو نمونه اصلی هستند
سـخنرانی ها و کارگاه ها: اگـر نرم افزار خیلی پیچیده اسـت و یادگیری آن سـخت است، شرکتها ممکن اسـت شـما را اسـتخدام کنند تا به کارمندانشـان به صورت مستقیم آموزش دهید. یا اگر نرم افزار شما به قدر کافی محبوب باشـد، میتوانید کارگاه هایی برای افرادی برگزار کنید که میخواهند همه چیز را از پایه یاد بگیرند و به مراحل پیشرفته برسند.
به نام خدا
سلام
آخرین پروژه ای که روش کار کردم فیلیموکدی بود که مربوط میشه به تماشای فیلم های فیلیمو به وسیله مدیاسنتر قدرتمند Kodi
تا الان هیچ اسکین یا add-on ای ایرانی برای Kodi ندیده بودم
برای طراحی و پیاده سازی این چیزی که الان میبیند ۳ ماه وقت گذاشتم
وقتی میرم توی برنامه اش واقعا لذت میبرم
به نظر خودم که زیباست ![]()
به نام خدا
سلام
بالاخره بعد از چند وقت تونستم وقت کنم و به کار های مورد علاقه ام بپردازم
یکی از کار های مورد علاقه من کامپایل لینوکس برای برد خودم هست.
کلا اینکه برنامه های Bare-Metal بنویسم
یعنی برنامه ای به زبان سطح پایین که به صورت مستقیم روی سخت افزار اجرا بشه بدون هیچ سیستم عاملی
به نام خدا
سلام
سریع میرم سراغ اصل مطلب
اول بگم که منبع ما کتاب سازمان و معماری کامپیوتر ویلیام استالینگز هست ویراست 10 میتونید از اینجا دانلود کنید
توضیح ابتدایی کش اینه که بین حافظه و پردازنده قرار میگیره و کارش اینه که بخشی از رم رو بیاره و توی خودش ذخیره کنه تا پردازنده به سرعت به دستور العمل ها و داده ها دسترسی داشته باشه. سرعت کش خیلی بالاتر از رم هستش.
به نام خدا
سلام
یه مطلب کوتاه در مورد نحوه کامپایل این دو برنامه!
البته خود LibreElec توی خودش kodi داره! ولی من میخوام kodi رو هم کامپایل همینجوری!
به نام خدا
سلام
راستش برای تعیین عکس از طریق کد کمی با مشکل برخورد تا توی سایت StackOverFlow به این کد برخوردم امیدوارم به دردتون بخوره!
به نام خدا
سلام خدمت شما هموطنان عزیزم!
راستش اونجور که پیداست کیوت راه خاصی برای خروجی گرفتن از برنامه نداره که مثلا مثل یه عکس توی فتوشاپ بزنی Save as و هر جا دلت میخواد ذخیره کنی :)
به نام خدا
سلام!
میخوام چندتا از دسترسی های سریع رو که خیلی مورد استفاده قرار می گیرد را در اینجا قرار بدهم! امیدوارم برای شما مفید واقع شود!
به نام خدا
سلام خدمت شما هموطنان عزیزم!
برای دانلود سورس برنامه میتونید از لینک زیر اقدام کنید!
به نام خدا
سلام خدمت شما هموطنان عزیز!
راستش دنبال این بودم که ببینم لینوکس چجوری کار میکنه گفتم برم ببینم کد اولین نسخه لینوکس که linux 0.01 هست چجوریه؟! و چطوری میشه اونو کامپایل و اجرا کرد!
کدش رو به راحتی به دست آوردم و در سرتاسر اینترنت موجوده اما اینکه چجوری اجراش کنم خیلی وقتم رو گرفت شاید 2 یا 3 روز روش وقت گذاشتم نشد!
به نام خدا
سلام خدمت هموطنان عزیزی که به دنبال یادگیری مطالب جدید هستند!
امروز بعد از 4 روز کار میخوام نتیجه اونو در اختیارتون قرار بدم!
به نام خدا
سلام خدمت شما هموطنان عزیز...!
این اولین مطلب من بعد از کنکور هست :)
با ما همراه باشید ....
به نام خدا
سلام خدمت دوستان عزیز و هموطنان گرامی!
علاقه مندان به میکروکنترلر و الکترونیک :)
خوب من سعی کردم برنامه ای بنویسم که همه اش از وقفه استفاده بشه و حلقه while خالی بمونه، چون به نظرم این جور برنامه حرفه ای تره و کمتر خطا خواهد داشت!
به نام خدا
سلام!
خواستم یه برد برای میکرو STM8S003F3P6 بزنم که دیدم توی آلتیوم کتابخونه ای برای STM8S نداریم!
بعد از سرچ کردن چیز خاصی پیدا نکردم به جر این سایت که خداروشکر کارم با این سایت راه افتاد!
خیلی سایته خوبیه میتونید قطعاتتون رو توش سرچ کنید تا براتون بیاره! من رایگان دانلود کردم نمیدونم پولیه یا نه!
به نام خدا
سلام!
واقعا راست میگن که نابرده رنج گنج میسر نمیشود مزد آن گرفت جان برادر که کار کرد!
چند وقتی بود خیلی نارحت بودم که نمیتونم برای خودم برنامه بریزم که چه کار کنم! مثلا صبح از خواب بیدار میشدم میگفتم امروز فلان ماژول رو وصل میکردم! تا ظهر پا کامپیوتر میشستم موقع نماز میدیدم چیزی گیرم نیومد! (یعنی هیچ کاری نکردم) بعد از ظهر هم پا کامپیوتر میشستم تا شب دوباره وقت نماز شب میدیدم هیچ کاری نکردم! خیلی اعصابم خورد میشد! (دلیلش این بود که هر روز میخواستم یه کاری کنم ولی نمیشد!) امروز گفتم میرم سراغ PWM تا ظهر نشستم دوباره هیچ کاری نکردم! بعد از ظهر اومدم چند تا سرچ زدم تا به این فیلم در یوتیوب رسیدم! بعد نشستم هرچی نوشت رو منم نوشتم! نمیدونم چرا سورس رو نذاشته بود مثل آدم دانلود کنیم!
بالاخره خدا رو شکر درست شد!
به نام خدا
تصمیم گرفتم فایل های مهم رو اینجا براتون بزارم!
به نام خدا!
سلام
تصمیم گرفتم پروژه هایی رو که میسازم یا پیدا میکنم اینجا قرار بدم تا همه استفاده کنیم!
به نام خدا
سلام!
امروز برای اولین بار رفتم تا با ماژول بلوتوث HC05 کار کنم!
اولش که اصلا نمیدونستم چطور کار میکنه! فک میکردم مثل وایفای هست که میتونید بعد از اتصال بهش دستور های AT رو ارسال کنی!
به نام خدا
سلام!
امروز برد آموزشی STM8S003F3P6 که از کویر در این آدرس خریده بودم! به دستم رسید! برای پروگرم کردنش طبق یه آموزش فارسی از برنامه STVP استفاده کردم و با مشکل برخوردم بعد رفتم سراغ خود برنامه IAR و از اونجا فهمیدم که میشه علاوه بر پروگرم کردن به طرز زیبا و جالبی دیباگ هم کرد!
به نام خدا!
سلام....!
دیروز داشتم توی چند تا سایت میگشتم که به این موضوع برخورد کردم!
من روی ماژول NodeMCU فلش کرده بودم. بنابراین رفتم دنبال ربات تلگرام سازگار با NodeMCU. یکی هم پیدا کردم که خیلی کامل بود ولی نتوستم بریزم روی ماژول.
اینبار رفتم سراغ آردوینو و طبق آموزش زیر از robouav پیش رفتم و آردوینو رو روی برد رختم!