apk கோப்பில் கையொப்பமிடுங்கள். கூகுள் ப்ளேயில் அப்ளிகேஷன்களை வெளியிட்டு மில்லியன் கணக்கில் சம்பாதிக்கிறோம். சாவி தொலைந்துவிட்டால் அல்லது ஹேக் செய்யப்பட்டால் என்ன செய்வது

சில நேரங்களில் ஆண்ட்ராய்டில் உள்ள சில பயன்பாடுகள் சில காரணங்களால் பயனருக்கு பொருந்தாது. ஒரு உதாரணம் எரிச்சலூட்டும் விளம்பரங்கள். அது அப்படியே நடக்கும் - எல்லோரும் நிரலில் நல்லவர்கள், ஆனால் அதில் உள்ள மொழிபெயர்ப்பு மட்டுமே வளைந்திருக்கும், அல்லது முற்றிலும் இல்லை. அல்லது, எடுத்துக்காட்டாக, நிரல் சோதனை, ஆனால் முழு பதிப்பைப் பெற வழி இல்லை. நிலைமையை எப்படி மாற்றுவது?

அறிமுகம்

இந்த கட்டுரையில், ஒரு பயன்பாட்டுடன் APK ஐ எவ்வாறு பிரிப்பது, அதன் உள் கட்டமைப்பைப் பார்ப்பது, பைட்கோடை பிரித்தெடுப்பது மற்றும் சிதைப்பது எப்படி என்பதைப் பற்றி பேசுவோம், மேலும் இந்த அல்லது அந்த நன்மையைத் தரும் பயன்பாடுகளில் பல மாற்றங்களைச் செய்ய முயற்சிப்போம்.

இதையெல்லாம் நீங்களே செய்ய, ஆண்ட்ராய்டு பயன்பாடுகள் எழுதப்பட்ட ஜாவா மொழி மற்றும் ஆண்ட்ராய்டில் எல்லா இடங்களிலும் பயன்படுத்தப்படும் எக்ஸ்எம்எல் மொழி பற்றிய அடிப்படை அறிவு உங்களுக்குத் தேவைப்படும் - பயன்பாட்டை விவரிப்பது மற்றும் சரங்களை சேமிப்பது வரை அதன் அணுகல் உரிமைகள். என்று திரையில் காட்டப்படும். சிறப்பு கன்சோல் மென்பொருளைக் கையாளும் திறனும் உங்களுக்குத் தேவைப்படும்.

எனவே, ஆண்ட்ராய்டுக்கான அனைத்து மென்பொருட்களும் விநியோகிக்கப்படும் APK தொகுப்பு என்ன?

விண்ணப்ப சிதைவு

கட்டுரையில், நாங்கள் பிரித்தெடுக்கப்பட்ட பயன்பாட்டுக் குறியீட்டுடன் மட்டுமே பணிபுரிந்தோம், இருப்பினும், பெரிய பயன்பாடுகளில் நீங்கள் மிகவும் தீவிரமான மாற்றங்களைச் செய்தால், ஸ்மாலி குறியீட்டைப் புரிந்துகொள்வது மிகவும் கடினமாக இருக்கும். அதிர்ஷ்டவசமாக, நாம் டெக்ஸ் குறியீட்டை ஜாவா குறியீட்டில் சிதைக்கலாம், இது அசல் மற்றும் தொகுக்க முடியாதது என்றாலும், பயன்பாட்டின் தர்க்கத்தைப் படித்து புரிந்துகொள்வது மிகவும் எளிதானது. இதைச் செய்ய, எங்களுக்கு இரண்டு கருவிகள் தேவை:

  • dex2jar - ஜேவிஎம் பைட்கோடுக்கு டால்விக் பைட்கோடு மொழிபெயர்ப்பாளர், அதன் அடிப்படையில் நாம் ஜாவா குறியீட்டைப் பெறலாம்;
  • jd-gui என்பது ஒரு டிகம்பைலர் ஆகும், இது JVM பைட்கோடில் இருந்து படிக்கக்கூடிய ஜாவா குறியீட்டைப் பெற உங்களை அனுமதிக்கிறது. மாற்றாக, நீங்கள் Jad ஐப் பயன்படுத்தலாம் (www.varanecas.com/jad); இது மிகவும் பழையதாக இருந்தாலும், சில சமயங்களில் இது Jd-gui ஐ விட அதிகமாக படிக்கக்கூடிய குறியீட்டை உருவாக்குகிறது.

அவற்றை இப்படித்தான் பயன்படுத்த வேண்டும். முதலில், dex2jar ஐ துவக்குகிறோம், apk தொகுப்பிற்கான பாதையை ஒரு வாதமாக குறிப்பிடுகிறோம்:

%dex2jar.sh mail.apk

இதன் விளைவாக, mail.jar Java தொகுப்பு தற்போதைய கோப்பகத்தில் தோன்றும், இது ஏற்கனவே jd-gui இல் ஜாவா குறியீட்டைப் பார்க்க திறக்கப்படலாம்.

APK தொகுப்புகளை ஏற்பாடு செய்து அவற்றைப் பெறுதல்

ஆண்ட்ராய்டு அப்ளிகேஷன் பேக்கேஜ் என்பது ஒரு வழக்கமான ஜிப் கோப்பாகும், இது உள்ளடக்கங்களைப் பார்க்கவும் திறக்கவும் எந்த சிறப்புக் கருவிகளும் தேவையில்லை. விண்டோஸுக்கு archiver - 7zip அல்லது Linux இல் console unzip இருந்தால் போதும். ஆனால் அது போர்வையைப் பற்றியது. உள்ளே என்ன இருக்கிறது? உள்ளே, பொதுவாக பின்வரும் அமைப்பு உள்ளது:

  • META-INF/- பயன்பாட்டின் டிஜிட்டல் சான்றிதழ், அதை உருவாக்கியவருக்கு சான்றளிக்கும் மற்றும் தொகுப்பு கோப்புகளின் சரிபார்ப்பு ஆகியவற்றைக் கொண்டுள்ளது;
  • res/ - படங்கள், இடைமுகத்தின் அறிவிப்பு விளக்கம் மற்றும் பிற தரவு போன்ற பயன்பாடுகள் அதன் வேலையில் பயன்படுத்தும் பல்வேறு ஆதாரங்கள்;
  • AndroidManifest.xml- விண்ணப்பத்தின் விளக்கம். எடுத்துக்காட்டாக, தேவையான அனுமதிகளின் பட்டியல், Android இன் தேவையான பதிப்பு மற்றும் தேவையான திரை தெளிவுத்திறன் ஆகியவை இதில் அடங்கும்;
  • class.dex- டால்விக் மெய்நிகர் இயந்திரத்திற்கான தொகுக்கப்பட்ட பயன்பாட்டு பைட்கோடு;
  • வளங்கள்.arsc- வளங்களும், ஆனால் வேறு வகையான - குறிப்பாக, சரங்கள் (ஆம், இந்தக் கோப்பை ரஸ்ஸிஃபிகேஷனுக்குப் பயன்படுத்தலாம்!).

பட்டியலிடப்பட்ட கோப்புகள் மற்றும் கோப்பகங்கள் அனைத்தும் இல்லாவிட்டாலும், பெரும்பாலான APKகளில் இருக்கலாம். இருப்பினும், குறிப்பிடத் தகுந்த இன்னும் சில குறைவான பொதுவான கோப்புகள்/கோப்பகங்கள் உள்ளன:

  • சொத்துக்கள்- வளங்களின் அனலாக். முக்கிய வேறுபாடு என்னவென்றால், ஒரு ஆதாரத்தை அணுக, அதன் அடையாளங்காட்டியை நீங்கள் அறிந்து கொள்ள வேண்டும், அதே நேரத்தில் பயன்பாட்டுக் குறியீட்டில் உள்ள AssetManager.list() முறையைப் பயன்படுத்தி சொத்துகளின் பட்டியலை மாறும் வகையில் பெறலாம்;
  • லிப்- NDK (நேட்டிவ் டெவலப்மெண்ட் கிட்) உதவியுடன் எழுதப்பட்ட சொந்த லினக்ஸ் நூலகங்கள்.

இந்த கோப்பகம் கேம் உற்பத்தியாளர்களால் பயன்படுத்தப்படுகிறது, அங்கு அவர்கள் தங்கள் கேம் இன்ஜினை C/C++ இல் எழுதுகிறார்கள், அதே போல் அதிக செயல்திறன் கொண்ட பயன்பாடுகளை உருவாக்குபவர்கள் (உதாரணமாக, Google Chrome). சாதனத்தைப் புரிந்துகொண்டார். ஆனால் ஆர்வமுள்ள விண்ணப்பத்தின் தொகுப்பு கோப்பை எவ்வாறு பெறுவது? ரூட் செய்யாமல் சாதனத்திலிருந்து APK கோப்புகளைப் பெற முடியாது என்பதால் (அவை / தரவு / பயன்பாட்டு கோப்பகத்தில் உள்ளன), மற்றும் ரூட்டிங் எப்போதும் அறிவுறுத்தப்படாது, கணினியில் பயன்பாட்டு கோப்பைப் பெற குறைந்தது மூன்று வழிகள் உள்ளன:

  • Chrome க்கான APK பதிவிறக்கி நீட்டிப்பு;
  • உண்மையான APK Leecher பயன்பாடு;
  • பல்வேறு கோப்பு ஹோஸ்டிங் மற்றும் warezniki.

எதைப் பயன்படுத்துவது என்பது சுவையின் விஷயம்; நாங்கள் தனித்தனி பயன்பாடுகளைப் பயன்படுத்த விரும்புகிறோம், எனவே உண்மையான APK லீச்சரின் பயன்பாட்டை விவரிப்போம், குறிப்பாக இது ஜாவாவில் எழுதப்பட்டிருப்பதால், அதன்படி, இது விண்டோஸில் கூட, நிக்ஸில் கூட வேலை செய்யும்.

நிரலைத் தொடங்கிய பிறகு, நீங்கள் மூன்று புலங்களை நிரப்ப வேண்டும்: மின்னஞ்சல், கடவுச்சொல் மற்றும் சாதன ஐடி - மற்றும் ஒரு மொழியைத் தேர்ந்தெடுக்கவும். முதல் இரண்டு சாதனத்தில் நீங்கள் பயன்படுத்தும் உங்கள் Google கணக்கின் மின்னஞ்சல் மற்றும் கடவுச்சொல். மூன்றாவது சாதன ஐடி, டயலரில் உள்ள குறியீட்டை டயல் செய்வதன் மூலம் அதைப் பெறலாம் # #8255## பின்னர் வரி சாதன ஐடியைக் கண்டறிதல். நிரப்பும் போது, ​​android- முன்னொட்டு இல்லாமல் ஐடியை மட்டும் உள்ளிட வேண்டும்.

பூர்த்தி செய்து சேமித்த பிறகு, "சேவையகத்துடன் இணைக்கும்போது பிழை" என்ற செய்தி அடிக்கடி மேல்தோன்றும். இதற்கும் Google Play உடன் எந்த தொடர்பும் இல்லை, எனவே இதைப் புறக்கணித்து, உங்களுக்கு விருப்பமான தொகுப்புகளைத் தேடுங்கள்.

மதிப்பாய்வு மற்றும் திருத்தம்

நீங்கள் ஆர்வமுள்ள ஒரு தொகுப்பைக் கண்டுபிடித்து, அதைப் பதிவிறக்கம் செய்து, அதை அன்பேக் செய்தீர்கள்... மேலும் சில XML கோப்பைப் பார்க்க முயற்சித்தபோது, ​​அந்தக் கோப்பு உரைக் கோப்பு அல்ல என்பதைக் கண்டு நீங்கள் ஆச்சரியப்பட்டீர்கள். அதை எவ்வாறு சிதைப்பது மற்றும் பொதுவாக தொகுப்புகளுடன் எவ்வாறு வேலை செய்வது? SDK ஐ நிறுவுவது உண்மையில் அவசியமா? இல்லை, நீங்கள் SDKஐ நிறுவ வேண்டியதில்லை. உண்மையில், APK தொகுப்புகளைத் திறக்க, மாற்ற மற்றும் தொகுக்க, பின்வரும் கருவிகள் தேவைப்படுகின்றன:

  • ZIP காப்பகம்பேக்கிங் மற்றும் பேக்கிங்;
  • ஸ்மாலி- டால்விக் மெய்நிகர் இயந்திரத்தின் பைட்கோடு (code.google.com/p/smali);
  • aapt- ஆதாரங்களை பேக்கிங் செய்வதற்கான ஒரு கருவி (இயல்புநிலையாக, பயன்பாட்டின் செயல்திறனை மேம்படுத்த ஆதாரங்கள் பைனரி வடிவத்தில் சேமிக்கப்படும்). Android SDK உடன் சேர்க்கப்பட்டுள்ளது, ஆனால் தனித்தனியாகப் பெறலாம்;
  • கையொப்பமிட்டவர்- மாற்றியமைக்கப்பட்ட தொகுப்பில் டிஜிட்டல் கையொப்பமிடுவதற்கான ஒரு கருவி (bit.ly/Rmrv4M).

இந்த அனைத்து கருவிகளையும் நீங்கள் தனித்தனியாகப் பயன்படுத்தலாம், ஆனால் இது சிரமமாக உள்ளது, எனவே அவற்றின் அடிப்படையில் உருவாக்கப்பட்ட உயர்-நிலை மென்பொருளைப் பயன்படுத்துவது நல்லது. நீங்கள் Linux அல்லது Mac OS X இல் இருந்தால், apktool எனப்படும் ஒரு கருவி உள்ளது. இது ஆதாரங்களை அவற்றின் அசல் வடிவத்தில் (பைனரி XML மற்றும் arsc கோப்புகள் உட்பட) திறக்க உங்களை அனுமதிக்கிறது, மாற்றியமைக்கப்பட்ட ஆதாரங்களுடன் தொகுப்பை மீண்டும் உருவாக்குகிறது, ஆனால் தொகுப்புகளில் கையொப்பமிடுவது எப்படி என்று தெரியவில்லை, எனவே நீங்கள் கையொப்பமிடும் பயன்பாட்டை கைமுறையாக இயக்க வேண்டும். பயன்பாடு ஜாவாவில் எழுதப்பட்டிருந்தாலும், அதன் நிறுவல் தரமற்றது. முதலில் நீங்கள் ஜார் கோப்பைப் பெற வேண்டும்:

$ cd /tmp $ wget http://bit.ly/WC3OCz $ tar -xjf apktool1.5.1.tar.bz2

$ wget http://bit.ly/WRjEc7 $ tar -xjf apktool-install-linux-r05-ibot.tar.bz2

$ mv apktool.jar ~/bin $ mv apktool-install-linux-r05-ibot/* ~/பின் $ ஏற்றுமதி PATH=~/bin:$PATH

நீங்கள் விண்டோஸில் பணிபுரிந்தால், விர்ச்சுவல் டென் ஸ்டுடியோ என்று அழைக்கப்படும் ஒரு சிறந்த கருவி உள்ளது, இது இந்த அனைத்து கருவிகளையும் (apktool உட்பட) குவிக்கிறது, ஆனால் CLI இடைமுகத்திற்கு பதிலாக, இது பயனருக்கு உள்ளுணர்வு வரைகலை இடைமுகத்தை வழங்குகிறது. ஒரு சில கிளிக்குகளில் அன்பேக்கிங், பிரித்தெடுத்தல் மற்றும் டிகம்பைல் செய்வதற்கான செயல்பாடுகளைச் செய்யவும். இந்த கருவி நன்கொடை-வேர், அதாவது, சில நேரங்களில் உரிமம் பெறுவதற்கான திட்டத்துடன் சாளரங்கள் தோன்றும், ஆனால் இது இறுதியில் பொறுத்துக்கொள்ளப்படலாம். அதை விவரிப்பதில் அர்த்தமில்லை, ஏனென்றால் சில நிமிடங்களில் இடைமுகத்தை நீங்கள் புரிந்து கொள்ளலாம். ஆனால் apktool, அதன் கன்சோல் தன்மை காரணமாக, இன்னும் விரிவாக விவாதிக்கப்பட வேண்டும்.


apktool விருப்பங்களைக் கவனியுங்கள். சுருக்கமாக, மூன்று முக்கிய கட்டளைகள் உள்ளன: d (டிகோட்), b (கட்டுமானம்) மற்றும் if (கட்டமைப்பை நிறுவவும்). முதல் இரண்டு கட்டளைகளுடன் எல்லாம் தெளிவாக இருந்தால், மூன்றாவது, நிபந்தனை ஆபரேட்டர் என்ன செய்கிறது? இது குறிப்பிட்ட UI கட்டமைப்பை திறக்கிறது, இது நீங்கள் கணினி தொகுப்பை பிரிக்கும் போது தேவைப்படும்.

முதல் கட்டளையின் மிகவும் சுவாரஸ்யமான விருப்பங்களைக் கவனியுங்கள்:

  • -கள்- dex கோப்புகளை பிரிக்க வேண்டாம்;
  • -ஆர்- வளங்களைத் திறக்க வேண்டாம்;
  • -பி- dex கோப்பை பிரித்தெடுப்பதன் முடிவுகளில் பிழைத்திருத்தத் தகவலைச் செருக வேண்டாம்;
  • --சட்ட பாதை- உள்ளமைக்கப்பட்ட apktoolக்குப் பதிலாக குறிப்பிட்ட UI கட்டமைப்பைப் பயன்படுத்தவும். இப்போது b கட்டளைக்கான இரண்டு விருப்பங்களைக் கவனியுங்கள்:
  • -எஃப்- மாற்றங்களை சரிபார்க்காமல் கட்டாய சட்டசபை;
  • -அ- சில காரணங்களால் நீங்கள் அதை வேறொரு மூலத்திலிருந்து பயன்படுத்த விரும்பினால், aaptக்கான பாதையைக் குறிப்பிடவும் (APK காப்பகத்தை உருவாக்குவதற்கான கருவி).

apktool ஐப் பயன்படுத்துவது மிகவும் எளிதானது, கட்டளைகளில் ஒன்றையும் APKக்கான பாதையையும் குறிப்பிடவும், எடுத்துக்காட்டாக:

$ apktool d mail.apk

அதன் பிறகு, பிரித்தெடுக்கப்பட்ட மற்றும் பிரிக்கப்பட்ட அனைத்து தொகுப்பு கோப்புகளும் அஞ்சல் கோப்பகத்தில் தோன்றும்.

தயாரிப்பு. விளம்பரங்களை முடக்கு

கோட்பாடு, நிச்சயமாக, நல்லது, ஆனால் தொகுக்கப்படாத தொகுப்பை என்ன செய்வது என்று எங்களுக்குத் தெரியாவிட்டால் அது ஏன் தேவைப்படுகிறது? நமது சொந்த நலனுக்காக கோட்பாட்டைப் பயன்படுத்த முயற்சிப்போம், அதாவது, சில மென்பொருட்களை நமக்கு விளம்பரங்களைக் காட்டாதபடி மாற்றியமைக்கிறோம். எடுத்துக்காட்டாக, இது மெய்நிகர் டார்ச்சாக இருக்கட்டும் - ஒரு மெய்நிகர் ஜோதி. எங்களைப் பொறுத்தவரை, இந்த மென்பொருள் சரியானது, ஏனெனில் இது எரிச்சலூட்டும் விளம்பரங்கள் நிறைந்தது மற்றும் குறியீட்டின் காடுகளில் தொலைந்து போகாத அளவுக்கு எளிமையானது.


எனவே, மேலே உள்ள முறைகளில் ஒன்றைப் பயன்படுத்தி, சந்தையில் இருந்து பயன்பாட்டைப் பதிவிறக்கவும். Virtuous Ten Studio ஐப் பயன்படுத்த முடிவு செய்தால், பயன்பாட்டில் உள்ள APK கோப்பைத் திறந்து அதை அன்சிப் செய்யவும், அதற்காக ஒரு திட்டத்தை உருவாக்கவும் (கோப்பு -> புதிய திட்டம்), பின்னர் திட்டத்தின் சூழல் மெனுவிலிருந்து கோப்பை இறக்குமதி செய்யவும். உங்கள் தேர்வு apktool மீது விழுந்தால், ஒரு கட்டளையை இயக்கினால் போதும்:

$ apktool d com.kauf.particle.virtualtorch.apk

அதன் பிறகு, com.kauf.particle.virtualtorch கோப்பகத்தில் ஒரு கோப்பு மரம் தோன்றும், இது முந்தைய பிரிவில் விவரிக்கப்பட்டதைப் போன்றது, ஆனால் dex கோப்புகளுக்குப் பதிலாக கூடுதல் smali கோப்பகம் மற்றும் apktool.yml கோப்புடன். முதலாவது பயன்பாட்டில் இயங்கக்கூடிய டெக்ஸ் கோப்பின் பிரித்தெடுக்கப்பட்ட குறியீட்டைக் கொண்டுள்ளது, இரண்டாவது தொகுப்பை மீண்டும் இணைக்க apktool க்கு தேவையான சேவைத் தகவலைக் கொண்டுள்ளது.

நாம் முதலில் பார்க்க வேண்டிய இடம், நிச்சயமாக, AndroidManifest.xml. இங்கே நாம் உடனடியாக பின்வரும் வரியை சந்திக்கிறோம்:

இணைய இணைப்பைப் பயன்படுத்துவதற்கான பயன்பாட்டு அனுமதிகளை வழங்குவதற்கு அவர் பொறுப்பு என்று யூகிக்க எளிதானது. உண்மையில், நாங்கள் விளம்பரங்களை அகற்ற விரும்பினால், இணையத்திலிருந்து பயன்பாட்டைத் தடைசெய்வது போதுமானதாக இருக்கும். அதை செய்ய முயற்சிப்போம். குறிப்பிட்ட வரியை நீக்கி, apktool ஐப் பயன்படுத்தி மென்பொருளைத் தொகுக்க முயற்சிக்கவும்:

$ apktool b com.kauf.particle.virtualtorch

இதன் விளைவாக வரும் APK கோப்பு com.kauf.particle.virtualtorch/build/ கோப்பகத்தில் தோன்றும். இருப்பினும், டிஜிட்டல் கையொப்பம் மற்றும் கோப்பு செக்சம்கள் இல்லாததால் இதை நிறுவ முடியாது (இது ஒரு META-INF/ அடைவு இல்லை). நாம் apk-signer பயன்பாட்டுடன் தொகுப்பில் கையொப்பமிட வேண்டும். தொடங்கப்பட்டது. இடைமுகம் இரண்டு தாவல்களைக் கொண்டுள்ளது - முதல் (விசை ஜெனரேட்டர்) விசைகளை உருவாக்குகிறோம், இரண்டாவது (APK கையொப்பமிடுபவர்) கையொப்பமிடுகிறோம். எங்கள் தனிப்பட்ட விசையை உருவாக்க, பின்வரும் புலங்களை நிரப்பவும்:

  • இலக்கு கோப்பு- கீஸ்டோர் வெளியீட்டு கோப்பு; இது வழக்கமாக ஒரு ஜோடி விசைகளை சேமிக்கிறது;
  • கடவுச்சொல்மற்றும் உறுதிப்படுத்தவும்- சேமிப்பிற்கான கடவுச்சொல்;
  • மாற்றுப்பெயர்- களஞ்சியத்தில் உள்ள விசையின் பெயர்;
  • மாற்று கடவுச்சொல்மற்றும் உறுதிப்படுத்தவும்- ரகசிய விசை கடவுச்சொல்;
  • செல்லுபடியாகும்- செல்லுபடியாகும் காலம் (ஆண்டுகளில்). இயல்புநிலை மதிப்பு உகந்தது.

மீதமுள்ள புலங்கள், பொதுவாக, விருப்பமானவை - ஆனால் நீங்கள் குறைந்தபட்சம் ஒன்றை நிரப்ப வேண்டும்.


எச்சரிக்கை

apk-signer உடன் விண்ணப்பத்தில் கையொப்பமிட, நீங்கள் Android SDK ஐ நிறுவ வேண்டும் மற்றும் பயன்பாட்டு அமைப்புகளில் அதற்கான முழு பாதையையும் குறிப்பிட வேண்டும்.

அனைத்து தகவல்களும் தகவல் நோக்கங்களுக்காக மட்டுமே வழங்கப்படுகின்றன. இந்தக் கட்டுரையின் பொருட்களால் ஏற்படக்கூடிய ஏதேனும் தீங்குகளுக்கு ஆசிரியர்களோ அல்லது ஆசிரியரோ பொறுப்பல்ல.

இப்போது நீங்கள் இந்த விசையுடன் APK இல் கையொப்பமிடலாம். APK Signer தாவலில், புதிதாக உருவாக்கப்பட்ட கோப்பைத் தேர்ந்தெடுத்து, கடவுச்சொல், முக்கிய மாற்றுப்பெயர் மற்றும் கடவுச்சொல்லை உள்ளிட்டு, APK கோப்பைக் கண்டுபிடித்து, "கையொப்பமிடு" பொத்தானை தைரியமாக கிளிக் செய்யவும். எல்லாம் சரியாக நடந்தால், தொகுப்பு கையொப்பமிடப்படும்.

தகவல்

நாங்கள் எங்கள் சொந்த விசையுடன் தொகுப்பில் கையொப்பமிட்டதால், இது அசல் பயன்பாட்டுடன் முரண்படும், அதாவது சந்தை மூலம் மென்பொருளைப் புதுப்பிக்க முயற்சிக்கும்போது, ​​​​எங்களுக்கு பிழை ஏற்படும்.

மூன்றாம் தரப்பு மென்பொருளுக்கு மட்டுமே டிஜிட்டல் கையொப்பம் தேவை, எனவே நீங்கள் நிறுவப்பட்ட கணினி பயன்பாடுகளை /system/app/ கோப்பகத்திற்கு நகலெடுத்து மாற்றினால், நீங்கள் அவற்றை கையொப்பமிடத் தேவையில்லை.

அதன் பிறகு, ஸ்மார்ட்போனில் தொகுப்பை கைவிட்டு, நிறுவி இயக்கவும். Voila, விளம்பரம் போய்விட்டது! இருப்பினும், அதற்கு பதிலாக, எங்களிடம் இணையம் இல்லை அல்லது பொருத்தமான அனுமதிகள் இல்லை என்று ஒரு செய்தி தோன்றியது. கோட்பாட்டில், இது போதுமானதாக இருக்கலாம், ஆனால் செய்தி எரிச்சலூட்டுவதாகத் தெரிகிறது, மேலும், உண்மையைச் சொல்வதானால், முட்டாள்தனமான பயன்பாட்டின் மூலம் நாங்கள் அதிர்ஷ்டசாலி. நன்கு எழுதப்பட்ட மென்பொருளானது அதன் நற்சான்றிதழ்களை தெளிவுபடுத்தும் அல்லது இணைய இணைப்பைச் சரிபார்த்து, இல்லையெனில் தொடங்க மறுக்கும். இந்த விஷயத்தில் எப்படி இருக்க வேண்டும்? நிச்சயமாக, குறியீட்டைத் திருத்தவும்.

பொதுவாக, பயன்பாடு அல்லது அதன் "செயல்பாடுகள்" (எளிமையான சொற்களில், பயன்பாட்டுத் திரைகள்) தொடங்கும் போது இந்த வகுப்புகளின் விளம்பரங்கள் மற்றும் அழைப்பு முறைகளைக் காண்பிப்பதற்கான சிறப்பு வகுப்புகளை பயன்பாட்டு ஆசிரியர்கள் உருவாக்குகின்றனர். இந்த வகுப்புகளைக் கண்டுபிடிக்க முயற்சிப்போம். நாங்கள் smali கோப்பகத்திற்குச் செல்கிறோம், பின்னர் com (org இல் திறந்திருக்கும் கிராஃபிக் லைப்ரரி cocos2d மட்டுமே உள்ளது), பின்னர் kauf (சரியாக உள்ளது, ஏனெனில் இது டெவலப்பரின் பெயர் மற்றும் அவரது அனைத்து குறியீடுகளும் உள்ளன) - இங்கே அது, சந்தைப்படுத்தல் அடைவு. உள்ளே ஸ்மாலி நீட்டிப்புடன் கூடிய சில கோப்புகளைக் காண்கிறோம். இவை வகுப்புகள், அவற்றில் மிகவும் குறிப்பிடத்தக்கது Ad.smali வகுப்பு ஆகும், இதன் பெயரால் இது விளம்பரங்களைக் காண்பிக்கும் என்று யூகிக்க எளிதானது.

அதன் வேலையின் தர்க்கத்தை நாம் மாற்றலாம், ஆனால் பயன்பாட்டிலிருந்தே அதன் எந்த முறைகளுக்கான அழைப்புகளையும் முட்டாள்தனமாக அகற்றுவது மிகவும் எளிதாக இருக்கும். எனவே, மார்க்கெட்டிங் கோப்பகத்திலிருந்து வெளியேறி, அண்டை துகள் கோப்பகத்திற்குச் சென்று, பின்னர் மெய்நிகர் டார்ச்சிற்குச் செல்கிறோம். MainActivity.smali கோப்பு இங்கே சிறப்பு கவனம் செலுத்த வேண்டும். இது நிலையான ஆண்ட்ராய்டு வகுப்பாகும், இது ஆண்ட்ராய்டு SDK ஆல் உருவாக்கப்பட்டு பயன்பாட்டிற்கான நுழைவுப் புள்ளியாக அமைக்கப்பட்டுள்ளது (C இல் உள்ள முக்கிய செயல்பாட்டிற்கு ஒப்பானது). திருத்துவதற்கு கோப்பைத் திறக்கவும்.

உள்ளே ஸ்மாலி குறியீடு (உள்ளூர் அசெம்பிளர்) உள்ளது. அதன் குறைந்த-நிலை தன்மை காரணமாக இது மிகவும் குழப்பமாகவும் கடினமாகவும் உள்ளது, எனவே நாங்கள் அதைப் படிக்க மாட்டோம், ஆனால் குறியீட்டில் உள்ள விளம்பர வகுப்பின் அனைத்து குறிப்புகளையும் கண்டுபிடித்து அவற்றைக் கருத்துத் தெரிவிக்கவும். தேடலில் "விளம்பரம்" என்ற சரத்தில் ஓட்டி 25 வது வரியைப் பெறுகிறோம்:

புல தனியார் விளம்பரம்:Lcom/kauf/மார்கெட்டிங்/Ad;

இங்கே, கிளாஸ் விளம்பரத்தின் பொருளைச் சேமிக்க ஒரு புல விளம்பரம் உருவாக்கப்பட்டது. வரியின் முன் ### குறியை அமைப்பதன் மூலம் நாங்கள் கருத்து தெரிவிக்கிறோம். நாங்கள் தேடலை தொடர்கிறோம். வரி 423:

New-instance v3, Lcom/kauf/marketing/Ad;

இங்குதான் பொருள் உருவாக்கப்படுகிறது. நாங்கள் கருத்து தெரிவிக்கிறோம். நாங்கள் தேடலைத் தொடர்கிறோம் மற்றும் 433, 435, 466, 468, 738, 740, 800 மற்றும் 802 ஆகிய வரிகளில் விளம்பர வகுப்பின் முறைகளுக்கான அழைப்புகளைக் கண்டறிகிறோம். நாங்கள் கருத்து தெரிவிக்கிறோம். அதுதான் போல இருக்கு. நாங்கள் சேமிக்கிறோம். இப்போது தொகுப்பு மீண்டும் கூடியிருக்க வேண்டும் மற்றும் அதன் செயல்திறன் மற்றும் விளம்பரம் இருப்பதை சரிபார்க்க வேண்டும். பரிசோதனையின் தூய்மைக்காக, AndroidManifest.xml இலிருந்து அகற்றப்பட்ட வரியைத் திருப்பி, தொகுப்பைச் சேகரித்து, கையொப்பமிட்டு நிறுவுவோம்.

எங்கள் கினிப் பன்றி. காணக்கூடிய விளம்பரம்

ஒப்-பா! பயன்பாடு இயங்கும் போது மட்டுமே விளம்பரம் மறைந்துவிட்டது, ஆனால் முக்கிய மெனுவில் இருந்தது, இது மென்பொருளைத் தொடங்கும்போது நாம் பார்க்கிறோம். எனவே, காத்திருங்கள், ஆனால் நுழைவு புள்ளி MainActivity வகுப்பு, மற்றும் பயன்பாடு இயங்கும் போது விளம்பரம் மறைந்து, ஆனால் முக்கிய மெனுவில் இருந்தது, எனவே நுழைவு புள்ளி வேறுபட்டதா? உண்மையான நுழைவுப் புள்ளியை வெளிப்படுத்த, AndroidManifest.xml கோப்பை மீண்டும் திறக்கிறோம். ஆம், இது பின்வரும் வரிகளைக் கொண்டுள்ளது:

android.intent.category.LAUNCHER வகையிலிருந்து android.intent.action.MAIN இன்டென்ட் (நிகழ்வு) தலைமுறைக்கு பதிலளிக்கும் வகையில் Start என்ற செயல்பாடு தொடங்கப்பட வேண்டும் என்று அவர்கள் எங்களிடம் (மேலும் முக்கியமாக, android) சொல்கிறார்கள். துவக்கியில் உள்ள பயன்பாட்டு ஐகானை நீங்கள் தட்டும்போது இந்த நிகழ்வு உருவாக்கப்படுகிறது, எனவே இது தொடக்க வகுப்பை, நுழைவு புள்ளியை வரையறுக்கிறது. பெரும்பாலும், புரோகிராமர் முதன்மை மெனு இல்லாமல் ஒரு பயன்பாட்டை எழுதினார், அதன் நுழைவுப் புள்ளி நிலையான மெயின் ஆக்டிவிட்டி வகுப்பாகும், பின்னர் மெனுவைக் கொண்ட புதிய சாளரத்தை (செயல்பாடு) சேர்த்தது மற்றும் தொடக்க வகுப்பில் விவரிக்கப்பட்டுள்ளது, மேலும் அதை கைமுறையாக ஒரு நுழைவாக்கினார். புள்ளி.

Start.smali கோப்பைத் திறந்து மீண்டும் "Ad" என்ற வரியைத் தேடுகிறோம், 153 மற்றும் 155 வரிகளில் FirstAd வகுப்பின் குறிப்பைக் காண்கிறோம். இது மூலக் குறியீட்டிலும் உள்ளது, மேலும் பெயரின் அடிப்படையில் ஆராயும்போது, ​​பிரதான திரையில் விளம்பரங்களைக் காண்பிக்கும் பொறுப்பாகும். நாங்கள் மேலும் பார்க்கிறோம், இந்த நிகழ்வுடன் தொடர்புடைய சூழலின் படி FirstAd வகுப்பின் ஒரு நிகழ்வு மற்றும் ஒரு உள்நோக்கம் உருவாக்கப்பட்டுள்ளது, பின்னர் cond_10 என்ற லேபிள், வகுப்பின் நிகழ்வை உருவாக்கும் முன் சரியாக மேற்கொள்ளப்படும் நிபந்தனை மாற்றம் :

If-ne p1, v0, :cond_10 .line 74 new-instance v0, Landroid/content/Intent; ... :cond_10

பெரும்பாலும், பிரதான திரையில் விளம்பரங்களைக் காட்டுவது அவசியமா என்பதை நிரல் எப்படியோ தோராயமாக கணக்கிடுகிறது, இல்லையெனில், நேரடியாக cond_10 க்கு தாவுகிறது. சரி, அவளுடைய பணியை எளிமையாக்குவோம் மற்றும் நிபந்தனையற்ற மாற்றத்தை நிபந்தனையற்ற ஒன்றை மாற்றுவோம்:

#if-ne p1, v0, :cond_10 goto:cond_10

குறியீட்டில் FirstAd பற்றிய குறிப்புகள் எதுவும் இல்லை, எனவே நாங்கள் கோப்பை மூடிவிட்டு apktool ஐப் பயன்படுத்தி எங்கள் மெய்நிகர் டார்ச்சை மீண்டும் இணைக்கிறோம். ஸ்மார்ட்போனில் நகலெடுக்கவும், நிறுவவும், இயக்கவும். Voila, எல்லா விளம்பரங்களும் போய்விட்டன, எங்கள் அனைவருக்கும் வாழ்த்துக்கள்.

முடிவுகள்

இந்த கட்டுரை ஆண்ட்ராய்டு பயன்பாடுகளைத் திறக்கும் மற்றும் மாற்றியமைக்கும் முறைகள் பற்றிய சுருக்கமான அறிமுகமாகும். பாதுகாப்பை அகற்றுதல், தெளிவற்ற குறியீட்டைப் பாகுபடுத்துதல், பயன்பாட்டு ஆதாரங்களை மொழிபெயர்த்தல் மற்றும் மாற்றுதல், அத்துடன் Android NDKஐப் பயன்படுத்தி எழுதப்பட்ட பயன்பாடுகளை மாற்றுதல் போன்ற பல சிக்கல்கள் திரைக்குப் பின்னால் இருந்தன. இருப்பினும், அடிப்படை அறிவு, இதையெல்லாம் புரிந்துகொள்வது காலத்தின் ஒரு விஷயம் மட்டுமே.

கடைசியாக புதுப்பித்தது: 10/30/2015

பயன்பாட்டை உருவாக்கி, சோதனை செய்து பிழைத்திருத்தம் செய்த பிறகு, அதை வெளியிடத் தொடங்கலாம். வெளியீட்டின் சாராம்சம் நீட்டிப்புடன் ஒரு கோப்பை உருவாக்குவதாகும் .apk, இது பயன்பாட்டைப் பிரதிநிதித்துவப்படுத்தும், மேலும் Google Play Market அல்லது பிற வெளிப்புறத் தளங்களில் அதன் அடுத்தடுத்த இட ஒதுக்கீடு. இயல்பாக, பிழைத்திருத்தம் மற்றும் பயன்பாட்டை உருவாக்கும் செயல்பாட்டின் போது, ​​apk கோப்பு ஏற்கனவே உருவாக்கப்பட்டது, மேலும் அதை பாதையில் உள்ள திட்ட கோப்புறையில் காணலாம். Project_name\app\build\outputs\apk. இயல்பாக, கோப்பு பெயரிடப்பட்டது app-debug.apkமற்றும் பிழைத்திருத்த பதிப்பைக் குறிக்கிறது.

ஆனால் இந்த கோப்பின் முழு வெளியீட்டிற்கு போதுமானதாக இருக்காது. மற்றும் வெளியீட்டிற்கான திட்டத்திற்கான சில தயாரிப்புகளை நாங்கள் இன்னும் செய்ய வேண்டும். இதைச் செய்ய, உறுப்புக்கான மேனிஃபெஸ்ட் கோப்பில் குறிப்பிடவும் android:versionCode மற்றும் android:versionName பண்புக்கூறுகள் அமைக்கப்பட்டுள்ளன. மேனிஃபெஸ்ட் கோப்பில் உறுப்பு android:debuggable attribute இருக்கக்கூடாது

கூடுதலாக, இந்த கட்டத்தில், கேஜெட்டின் முகப்புத் திரையில் காட்டப்படும் பயன்பாட்டிற்கான ஐகானை நீங்கள் அமைக்கலாம், பயன்பாட்டின் பெயர் (உறுப்பில் Android:லேபிள் பண்புக்கூறு), மேலும் நீங்கள் உரிம ஒப்பந்தத்தையும் அமைக்கலாம்.

மேனிஃபெஸ்ட் கோப்பு தொகுப்பின் பெயரையும் வரையறுக்க வேண்டும் (உறுப்பின் தொகுப்பு பண்பு ), இது பின்னர் பயன்பாட்டிற்குப் பயன்படுத்தப்படும். இயல்பாக, ஆண்ட்ராய்டு ஸ்டுடியோவில் உருவாக்கும்போது, ​​ஆப்ஸ் தொகுப்புகள் தொடங்கும் com.example. இந்தப் பெயரை நீங்கள் விட்டுவிடக்கூடாது, ஏனெனில் தொகுப்பின் பெயர் உங்கள் பயன்பாட்டிற்கான தனிப்பட்ட அடையாளங்காட்டியாக இருக்கும். எடுத்துக்காட்டாக, எனது விஷயத்தில் கீழே தொகுப்பின் பெயர் "com.maverics.eugene.telephonelist":

மேலும், ஜாவா குறியீடு கோப்புகளில் இருந்தால், கோப்பின் தொடக்கத்தில் உள்ள தொகுப்பு பெயரும் பயன்பாட்டுத் தொகுப்புடன் ஒத்திருக்க வேண்டும்.

தேவைகளை அமைத்தல்

வெளியீட்டிற்கு முந்தைய கட்டத்தில் நீங்கள் API தேவைகளையும் அமைக்கலாம். எடுத்துக்காட்டாக, எங்கள் பயன்பாட்டில் Android OS இன் குறிப்பிட்ட குறைந்தபட்ச பதிப்பு உள்ளது, எனவே மேனிஃபெஸ்ட் கோப்பில் உள்ள உறுப்புடன் தொடர்புடைய பண்புகளை அமைக்கலாம்.

    android:minSdkVersion - குறைந்தபட்ச ஆண்ட்ராய்டு பதிப்பு

    android:targetSdkVersion - உகந்த API பதிப்பு

    android:maxSdkVersion - அதிகபட்ச கணினி பதிப்பு

எடுத்துக்காட்டாக, ஜெல்லி பீன்ஸின் குறைந்தபட்ச பதிப்பு 4.1.2 என்றும், உகந்த பதிப்பு கிட்கேட் 4.4.4 என்றும் வைத்துக் கொள்வோம்:

//.............................

விண்ணப்ப கையொப்பம்

எல்லாம் தயாராக இருக்கும்போது, ​​​​Android பயன்பாடு ஒரு சான்றிதழுடன் கையொப்பமிடப்பட வேண்டும், இதற்கு நன்றி பயன்பாட்டின் ஆசிரியரை அடையாளம் காண முடியும். சாதனத்தில் ஆண்ட்ராய்டு ஸ்டுடியோ மூலம் பயன்பாட்டை நிறுவி அதைச் சோதிக்கும் போது, ​​அது தானாகவே கையொப்பமிடப்படும். ஆனால் வெளியீட்டு பதிப்பை உருவாக்க, நாம் கூடுதல் தொடர் செயல்களைச் செய்ய வேண்டும்.

ஒரு சான்றிதழை உருவாக்கும் போது, ​​நீங்கள் பயன்பாட்டைப் புதுப்பிக்கும்போது, ​​கணினி பழைய மற்றும் புதிய பதிப்புகளின் சான்றிதழ்களை ஒப்பிடும் என்பதை நினைவில் கொள்ளுங்கள். இரண்டு பதிப்புகளின் சான்றிதழ்களும் பொருந்தினால் புதுப்பிப்பு ஏற்படும். ஆனால் புதிய பதிப்பு புதிய சான்றிதழுடன் கையொப்பமிடப்பட்டிருந்தால், பயன்பாடு முற்றிலும் புதியதாகவும், பழைய பதிப்பிற்கு தொடர்பில்லாததாகவும், முற்றிலும் மாறுபட்ட பயன்பாட்டைக் குறிக்கும். இந்த வழக்கில், அதை நிறுவ, புதிய பதிப்பில் பழையதை விட வேறு தொகுப்பு பெயர் இருக்க வேண்டும்.

முதலில், ஆண்ட்ராய்டு ஸ்டுடியோவில், மெனுவிலிருந்து உருவாக்கு -> கையொப்பமிடப்பட்ட APK ஐ உருவாக்கு என்பதைத் தேர்ந்தெடுக்கவும். இது வழிகாட்டி சாளரத்தைத் திறக்கும்:

Create new... பட்டனை கிளிக் செய்யவும். அதன் பிறகு, ஒரு விசையை உருவாக்க ஒரு சாளரம் திறக்கும்:

கீ ஸ்டோர் பாதை புலத்தில் உருவாக்க வேண்டிய பிணைய சான்றிதழ் கோப்பிற்கான பாதையை உள்ளிடவும். குறிப்பிட்ட கோப்புறை இல்லை என்றால், அதை உருவாக்கவும் அல்லது ஏற்கனவே உள்ள கோப்புறையை வரையறுக்கவும்.

கடவுச்சொல்/உறுதிப்படுத்தல் புலத்தில் கடவுச்சொல்லை குறிப்பிடவும்.

மாற்றுப்பெயர் புலத்தில் மாற்றுப்பெயரைக் குறிப்பிடவும். நீங்கள் ஒரு தன்னிச்சையான பெயரை வைக்கலாம்.

முதல் மற்றும் கடைசி பெயர் புலத்தில், முதல் மற்றும் கடைசி பெயரை உள்ளிடவும். பின்னர் நாம் அலகு, அமைப்பு, நகரம், நாடு மற்றும் நாட்டின் குறியீட்டை எழுதுகிறோம்.

முடிவில், சரி என்பதைக் கிளிக் செய்யவும்.

அதன் பிறகு, முதல் சாளரம் தானாகவே புதுப்பிக்கப்படும்:

வெளியீட்டு பதிப்பில் கையொப்பமிடப்பட்ட apk பயன்பாடு அமைந்துள்ள கோப்பகத்திற்கான பாதையை இறுதி சாளரம் காண்பிக்கும். பினிஷ் என்பதைக் கிளிக் செய்யவும்.

இப்போது, ​​குறிப்பிட்ட பாதையில், கையொப்பமிடப்பட்ட apk ஐக் காணலாம், அதில் பெயர் இருக்கும் app-release.apk:

நாங்கள் கோப்பை மறுபெயரிடலாம், அதன் நீட்டிப்பை வைத்து அதை Play Market அல்லது எந்த தளத்திலும் பதிவேற்றலாம் அல்லது உங்கள் மொபைல் சாதனத்தில் நேரடியாக பதிவிறக்கலாம். உங்கள் தொலைபேசி / டேப்லெட்டில் பதிவிறக்கிய பிறகு, அதைக் கிளிக் செய்து, நிலையான தொகுப்பு நிறுவியைப் பயன்படுத்தி, பயன்பாடு நிறுவப்படும். உண்மை, இங்கே நாம் ப்ளே மார்க்கெட்டில் இருந்து பயன்பாட்டை நிறுவவில்லை என்றால், அமைப்புகளில் பிற மூலங்களிலிருந்து நிறுவலை அனுமதிக்க வேண்டும் என்பதையும் கணக்கில் எடுத்துக்கொள்ள வேண்டும் - பாதுகாப்பு->தெரியாத மூலங்கள் (பிற மூலங்களிலிருந்து பயன்பாடுகளை நிறுவ அனுமதிக்கவும்)

முந்தைய பிரிவில் விவரிக்கப்பட்ட கீடூல் பயன்பாடு டிஜிட்டல் சான்றிதழை உருவாக்குகிறது, இது ஜார்சிக்னர் விருப்பங்களில் ஒன்றாகும். மற்ற விருப்பம் கையொப்பமிட வேண்டிய Android தொகுப்பு ஆகும். ஒரு Android தொகுப்பை உருவாக்க, நீங்கள் Eclipse ADT தொகுதியிலிருந்து ஏற்றுமதி செய்யப்படாத பயன்பாட்டுத் தொகுப்பு பயன்பாட்டைப் பயன்படுத்த வேண்டும். இந்த பயன்பாட்டை அழைக்க, நீங்கள் Eclipse இல் உள்ள Android திட்டத்தில் வலது கிளிக் செய்து, சூழல் மெனுவிலிருந்து Android Tools என்பதைத் தேர்ந்தெடுத்து, பின்னர் ஏற்றுமதி செய்யப்படாத பயன்பாட்டுத் தொகுப்பு விருப்பத்தைத் தேர்ந்தெடுக்கவும். இயங்கும் போது, ​​இந்த பயன்பாடு பிழைத்திருத்த சான்றிதழுடன் கையொப்பமிடப்படாத .apk கோப்பை உருவாக்குகிறது.

அனைத்தையும் முயற்சிக்க, உங்கள் ஆண்ட்ராய்டு திட்டங்களில் ஒன்றில் கையொப்பமிடாத பயன்பாட்டுத் தொகுப்பு பயன்பாட்டை ஏற்றுமதி செய்து, உருவாக்கப்பட்ட .apk கோப்பை எங்காவது சேமிக்கவும். இந்த எடுத்துக்காட்டில், நாம் முன்பு உருவாக்கிய கீஸ்டோர் கோப்புறையைப் பயன்படுத்துவோம் மற்றும் C:\android\release\myappraw.apk என்ற .apk கோப்பை உருவாக்குவோம்.

இப்போது எங்களிடம் .apk கோப்பு மற்றும் ஒரு கீஸ்டோர் உருப்படி உள்ளது, மேலும் .apk கோப்பில் கையொப்பமிட ஜார்சிக்னர் கருவியை இயக்கலாம் (பார்க்க 14.2). இந்த வழக்கில், கீஸ்டோர் கோப்பு மற்றும் .apk கோப்புக்கான முழு பாதைகளும் குறிப்பிடப்பட வேண்டும்.

.apk கோப்பில் கையொப்பமிட, jarsigner ஆனது Keystore இருப்பிடம், Keystore கடவுச்சொல், தனிப்பட்ட விசை கடவுச்சொல், .apk கோப்பிற்கான பாதை மற்றும் கீஸ்டோர் உருப்படியின் மாற்றுப்பெயர் ஆகியவற்றை அனுப்புகிறது. ஜார்சிக்னர் .apk கோப்பில் கீஸ்டோர் உருப்படியிலிருந்து டிஜிட்டல் சான்றிதழுடன் கையொப்பமிடுகிறார். ஜார்சிக்னர் பயன்பாட்டை இயக்க, நீங்கள் ஒரு கருவி சாளரத்தைத் திறக்க வேண்டும் (அத்தியாயம் 2 ஐப் பார்க்கவும்), அல்லது கட்டளை வரி சாளரம் அல்லது டெர்மினல் சாளரத்தைத் திறந்து பின் கோப்புறையைத் திறக்கவும்

JDK (இந்த கோப்புறை PATH சூழல் மாறியில் அமைக்கப்படவில்லை என்றால்). பாதுகாப்பு காரணங்களுக்காக, கடவுச்சொற்களை கட்டளை வாதங்களாக அனுப்பாமல் இருப்பது நல்லது, பின்னர் இயக்க நேரத்தில் கடவுச்சொற்களை உள்ளிட ஜார்சிக்னர் உங்களைத் தூண்டும். அத்திப்பழத்தில். 14.3 ஜார்சிக்னர் பயன்பாட்டை அழைப்பதற்கான உதாரணத்தைக் காட்டுகிறது. படத்தில் நீங்கள் கவனித்திருக்கலாம். 14.3 ஜார்சிக்னர் ஒரு கடவுச்சொல்லை மட்டுமே கேட்கிறார். ஏனெனில் ஸ்டோர்பாஸும் கீபாஸும் பொருந்தினால் கீபாஸ் கடவுச்சொல் கோரப்படாது. கண்டிப்பாகச் சொன்னால், e14.2 இல் உள்ள jarsigner கட்டளையானது -storepass கடவுச்சொல்லில் இருந்து வேறுபட்டதாக இருக்கும் போது மட்டுமே -keypass கடவுச்சொல்லைக் குறிப்பிட வேண்டும்.

ஏற்கனவே குறிப்பிட்டுள்ளபடி, தீங்கிழைக்கும் புரோகிராமர்கள் உங்கள் பயன்பாட்டை அவர்களின் பதிப்பில் மாற்ற முடியாது என்பதற்காக, ஆண்ட்ராய்டு பயன்பாடு டிஜிட்டல் முறையில் கையொப்பமிடப்பட வேண்டும். இதைச் செய்ய, அசல் பயன்பாட்டின் அதே கையொப்பத்துடன் பயன்பாட்டு புதுப்பிப்புகள் கையொப்பமிடப்பட வேண்டும். ஒரு ஆப்ஸ் வேறு கையொப்பத்துடன் கையொப்பமிடப்பட்டிருந்தால், அந்த ஆப்ஸை Android வேறுபட்டதாகக் கருதுகிறது. எனவே, நாங்கள் உங்களுக்கு மீண்டும் ஒருமுறை நினைவூட்டுகிறோம்: கீஸ்டோர் கோப்பை கவனமாகக் கையாளவும், இதன் மூலம் நீங்கள் பயன்பாட்டு புதுப்பிப்பை வெளியிட வேண்டியிருக்கும் போது அது உங்களுக்குக் கிடைக்கும்.

எனவே, நீங்கள் பல நாட்களாக வேலை செய்துள்ளீர்கள் (மற்றும் இரவுகளில் இருக்கலாம்), இப்போது உங்கள் முதல் கலப்பின மொபைல் பயன்பாடு தயாராக உள்ளது. இது மிகவும் நிலையானது, பெரும்பாலான முக்கியமான பிழைகள் மூடப்பட்டுள்ளன. இன்னும் சிறியவை உள்ளன, ஆனால் பரிபூரணவாதம் தீயது என்பதை நினைவில் வைத்துக் கொண்டு, விண்ணப்பத்தை வெளியிடுவதற்கு நீங்கள் வலுவான விருப்பத்துடன் முடிவெடுக்கிறீர்கள்.

இதற்கு ஒரு முன்நிபந்தனை கையொப்பமிடப்பட்ட APK கோப்பு இருப்பது. apk கோப்பில் கையொப்பமிடுவது எப்படி, இந்த கட்டுரையிலிருந்து நீங்கள் கற்றுக் கொள்வீர்கள்.

சிறிய விலகல்

எனது செல்லப் பிராஜெக்ட் வெளியீட்டை நெருங்கியதும், ஒரு விண்ணப்பத்தை விரைவாகவும் வலியின்றியும் எவ்வாறு வெளியிடுவது என்பது குறித்த தகவலைத் தேட ஆரம்பித்தேன். கண்டுபிடிக்கப்பட்ட பல வழிமுறைகள் எளிமையானவை. பயன்பாடு உருவாக்கப்பட்ட அயனி கட்டமைப்பின் ஆசிரியர்களின் வழிமுறைகளை நான் தேர்ந்தெடுத்தேன். எல்லாம் முதல் முறையாக வேலை செய்யவில்லை, பல அம்சங்கள் உள்ளன. கையொப்பமிடும் செயல்முறை இந்த கட்டுரையில் விவரிக்கப்பட்டுள்ளது, முக்கியமான புள்ளிகள் முன்னிலைப்படுத்தப்பட்டுள்ளன.

ஆரம்ப தரவு

Apache Cordova உடன் ஹைப்ரிட் மொபைல் பயன்பாடுகளை உருவாக்க நீங்கள் அமைக்க வேண்டிய அனைத்தும் உங்களிடம் இருப்பதாக நான் கருதுகிறேன். நிறுவப்பட வேண்டும்:
  • அப்பாச்சி கோர்டோவா
  • ஜாவா டெவலப்மெண்ட் கிட்
  • Android SDK கருவிகள்
lcf என்பது திட்டம் மற்றும் பயன்பாட்டுப் பெயராகப் பயன்படுத்தப்படுகிறது. தேவைப்படும் இடங்களில் உங்கள் திட்டத்தின் பெயரை மாற்றவும்.

போ

முதலில் உங்கள் பயன்பாட்டின் வெளியீட்டு கட்டமைப்பை உருவாக்க வேண்டும். ஆனால் அதற்கு முன், அனைத்து தேவையற்ற செருகுநிரல்களும் அகற்றப்படுவதை உறுதி செய்வோம். எடுத்துக்காட்டாக, கன்சோலில் பிழைத்திருத்தத் தகவலை அச்சிடும் செருகுநிரல் எங்களுக்குத் தேவையில்லை. அதை அகற்றுவோம்:

$ cordova செருகுநிரல் rm cordova-plugin-console
Android க்கான வெளியீட்டு உருவாக்கத்தை உருவாக்க, கட்டளையைப் பயன்படுத்தவும் கட்டகொடியுடன் --விடுதலை:

$ cordova build --release android
இந்த கட்டளை உருவாக்கும் கையொப்பமிடாதகோப்பகத்தில் APK கோப்பு:

இயங்குதளங்கள்/ஆண்ட்ராய்டு/உருவாக்கம்/வெளியீடுகள்/apk
எடுத்துக்காட்டாக இயங்குதளங்கள்/ஆண்ட்ராய்டு/பில்ட்/அவுட்புட்ஸ்/ஏபிகே/ android-release-unsigned.apk. இந்த கோப்பில் கையொப்பமிட்டு பயன்பாட்டை இயக்க வேண்டும் zipalign Google Play க்காக கோப்பை மேம்படுத்தி தயார் செய்ய.

கோப்பில் கையொப்பமிட சான்றிதழ் தேவை. பயன்பாட்டைப் பயன்படுத்தி அதை உருவாக்குவோம் முக்கிய கருவிஇது JDK இல் சேர்க்கப்பட்டுள்ளது:

$ keytool -genkey -v -keystore lcf.keystore -alias lcf -keyalg RSA -keysize 2048 -validity 10000
முக்கியமான

-alias அளவுருவின் மதிப்பை நினைவில் கொள்ள வேண்டும், ஆனால் அதை எழுதுவது நல்லது. மேலே உள்ள எடுத்துக்காட்டில், இது lcf க்கு சமம் (லாயல் கிளையண்ட் இலவச பயன்பாட்டின் பெயரின் முதல் எழுத்துக்களால்). நான் இங்கே விவரங்களை கொடுக்க மாட்டேன், நீங்கள் ஆர்வமாக இருந்தால், கருத்துகளில் எழுதுங்கள், நான் உங்களுக்கு மேலும் கூறுவேன்.

ஒவ்வொரு முறையும் கையொப்பமிடும்போது மாற்றுப்பெயர் பயன்படுத்தப்படுகிறது * பயன்பாடுகள். நினைவில் கொள்வதை எளிதாக்க, கீஸ்டோர் கோப்பின் பெயரை மாற்றுப்பெயராகப் பயன்படுத்தவும், எடுத்துக்காட்டாக:


-keystore hello-world.keystore -alias hello-world -keystore weather-app.keystore -alias weather-app -keystore todo.keystore -alias todo
* ஒவ்வொரு புதுப்பிப்பு வெளியீட்டிலும் நீங்கள் விண்ணப்பத்தில் கையொப்பமிட வேண்டும்

பயன்பாடு முக்கிய கருவிதொடர் கேள்விகளைக் கேட்கிறார். அவற்றில் மொத்தம் 8 இருக்கும். கேள்விகள் மற்றும் தோராயமான பதில்களை முன்கூட்டியே தெரிந்துகொள்ள, அவை அனைத்தும் ஸ்பாய்லரின் கீழ் கொடுக்கப்பட்டுள்ளன.

keytool கேள்விகள் மற்றும் மாதிரி பதில்கள்

1. கீஸ்டோர் கடவுச்சொல்லை உள்ளிடவும்:
இங்கே நீங்கள் கோப்பிற்கான கடவுச்சொல்லை உள்ளிட வேண்டும் (குறைந்தது 6 எழுத்துகள்). உள்ளிடப்பட்ட கடவுச்சொல் பாதுகாப்பான இடத்தில் எழுதப்பட வேண்டும், ஒவ்வொரு முறையும் விண்ணப்பத்தில் கையொப்பமிடும்போது அது தேவைப்படுகிறது.

2. புதிய கடவுச்சொல்லை மீண்டும் உள்ளிடவும்:
கடவுச்சொல்லை மீண்டும் உள்ளிடவும்.

3. உங்கள் முதல் மற்றும் கடைசி பெயர் என்ன?
: இவான் பெட்ரோவ்
உங்கள் முதல் மற்றும் கடைசி பெயர். சதுர அடைப்புக்குறிக்குள் உள்ள மதிப்பு இயல்புநிலை மதிப்பாகும்.

4. உங்கள் நிறுவனப் பிரிவின் பெயர் என்ன?
: ஐ.டி
உங்கள் நிறுவனப் பிரிவின் பெயர். நீங்கள் அதை காலியாக விடலாம், நான் IT ஐ குறிப்பிடுகிறேன்.

5. உங்கள் அமைப்பின் பெயர் என்ன?
: 2 டெவலப்பர்கள்
உங்கள் அமைப்பின் பெயர். ஏதேனும் இருந்தால் குறிப்பிடவும்.

6. உங்கள் நகரம் அல்லது பகுதியின் பெயர் என்ன?
: மாஸ்கோ
நகரத்தின் பெயர்

7. உங்கள் மாநிலம் அல்லது மாகாணத்தின் பெயர் என்ன?
: MO
பிராந்தியத்தின் பெயர்

8. இந்த அலகுக்கான இரண்டு எழுத்து நாட்டுக் குறியீடு என்ன?
: EN
நாட்டின் குறியீடு. நான் RU ஐக் குறிப்பிடுகிறேன்.

: ஒய்

எல்லாம் சரியாக உள்ளதா என்பதை உறுதிப்படுத்தவும் அல்லது மீண்டும் உள்ளிட Enter ஐ அழுத்தவும்.


முடிவில், விசையின் வெற்றிகரமான தலைமுறை பற்றிய செய்தி தோன்றும். தனிப்பட்ட விசைக்கு கடவுச்சொல்லை அமைக்கும்படி கேட்கப்படுவீர்கள் (சான்றிதழில் உள்ளதைப் போலவே நீங்கள் வெளியேற விரும்பினால், Enter ஐ அழுத்தவும்):

10 000 நாட்கள் செல்லுபடியாகும் 2 048 பிட் RSA விசை ஜோடி மற்றும் சுய-கையொப்பமிட்ட சான்றிதழை (SHA256withRSA) உருவாக்குகிறது: CN=Ivan Petrov, OU=IT, O=2developers, L=Moscow, ST=MO, C=RU Enter key கடவுச்சொல் (கீஸ்டோர் கடவுச்சொல்லைப் போலவே திரும்பவும்):
கோப்பு தற்போதைய கோப்பகத்தில் உருவாக்கப்படும் lcf.keystore.

முக்கியமான

உருவாக்கப்பட்ட கோப்பு பாதுகாப்பான இடத்தில் சேமிக்கப்பட வேண்டும். நீங்கள் ஒரு தனிப்பட்ட களஞ்சியத்தைப் பயன்படுத்துகிறீர்கள் என்றால், பயன்பாட்டு மூலக் குறியீடுகளுடன் கோப்பினை உறுதிசெய்யலாம். பொதுவாக, சான்றிதழ்கள் தனித்தனியாக சேமிக்கப்படுவது சிறந்தது. உங்கள் சான்றிதழை இழந்தால், ஆப்ஸ் புதுப்பிப்புகளை வெளியிட முடியாது.

இன்னும் இரண்டு படிகள் உள்ளன, மேலும் உங்களிடம் APK கோப்பு விநியோகிக்க தயாராக இருக்கும். நாங்கள் நேரடியாக கையொப்பமிடுவதற்கு செல்கிறோம்.

உங்கள் apk கோப்பில் கையொப்பமிட, பயன்பாட்டைப் பயன்படுத்தவும் ஜார்சிக்னர், இது JDK யிலும் சேர்க்கப்பட்டுள்ளது.

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore lcf.keystore android-release-unsigned.apk lcf
சான்றிதழின் பெயர் அளவுருவுக்குப் பிறகு குறிப்பிடப்படுகிறது - கீஸ்டோர், மாற்றுப்பெயர் - கோப்பு பெயருக்குப் பிறகு.

இறுதியாக, apk கோப்பை மேம்படுத்த, நாங்கள் பயன்பாட்டைப் பயன்படுத்துவோம் zipalign:

$ zipalign -v 4 android-release-unsigned.apk LoyalClientFree.apk
கடைசி அளவுரு என்பது நீங்கள் Google Play இல் பதிவேற்றும் கோப்பின் பெயர்.

முக்கியமான.

பயன்பாடு zipalignஇது Android SDK கருவிகளின் ஒரு பகுதியாகும் மற்றும் இங்கே காணலாம்:

/path/to/Android/sdk/build-tools/VERSION/zipalign

முடிவுரை

Google Play இல் பதிவேற்றம் செய்யக்கூடிய விநியோகத்திற்கான apk கோப்பு இப்போது தயாராக உள்ளது. விளக்கத்தை நிரப்பவும், உங்கள் விண்ணப்பத்தின் மதிப்பீட்டைத் தீர்மானித்து, "வெளியிடு" என்பதைக் கிளிக் செய்யவும்.

கேள்வியை நானே கூகிளில் பார்த்ததால் apk கோப்பில் கையொப்பமிடுவது எப்படி?", எல்லாவற்றிலும் உண்மையில் வேலை செய்யும் மற்றும் புரிந்துகொள்ளக்கூடிய அறிவுறுத்தலைக் கண்டுபிடிப்பது அவ்வளவு எளிதானது அல்ல என்பதை நான் அறிவேன். அதனால்தான், உங்கள் நிரல் அல்லது ஆண்ட்ராய்டில் விளையாட்டை எவ்வாறு சரியாக கையொப்பமிடுவது என்பது பற்றிய தகவலை நானே எழுத முடிவு செய்தேன்.

இப்போது உங்களுக்குத் தெரியும், டிஜிட்டல் கையொப்பம் இல்லாமல், உங்கள் உருவாக்கத்தை சந்தையில் வைக்க முடியாது, இது ஏற்கனவே தீவிரமானது. நிறைய இளம் ஆண்ட்ராய்டு டெவலப்பர்கள் கவனித்திருக்கிறார்கள், பேசுவதற்கு, ஆரம்பநிலையாளர்கள் தங்கள் விண்ணப்பத்தில் கையொப்பமிடுவதை முற்றிலும் மறந்துவிட்டு ஏதாவது செய்ய முயற்சிக்கிறார்கள். அதைக் கொண்டு பின்னர் அவர்கள் ஏன் தங்கள் APK கோப்பில் சில செயல்களைச் செய்ய முடியவில்லை என்பது ஆச்சரியமாக இருக்கிறது.

எனவே, அதை இழுக்க வேண்டாம் மற்றும் உங்கள் apk கோப்பை எவ்வாறு கையொப்பமிடலாம் மற்றும் விரும்பிய முடிவை அடைய அதை எவ்வாறு பயன்படுத்துவது என்பதை இப்போதே தொடங்குவோம்.

பட்டியலிடப்பட்ட எல்லாவற்றிலும் இந்த முறை மிகவும் சரியானது, எனவே இந்த பொருளில் அதை விவரிப்போம். எங்கள் தரவு மற்றும் சான்றிதழ்களுடன் எங்களின் சொந்த விசைகளை உருவாக்கி, நீங்கள் உருவாக்கிய பயன்பாட்டில் கையொப்பமிட அவற்றைப் பயன்படுத்துவோம்.

வேலைக்கு நமக்குத் தேவை: OpenSSL மற்றும் SignApk.

முதலில், ஒரு சான்றிதழ் மற்றும் கையொப்ப விசையை உருவாக்குவோம். OpenSSL ஐ நிறுவவும். நிறுவலின் போது, ​​விண்டோஸ் கோப்புறையில் கூறுகளை நகலெடுக்க நிறுவி உங்களைத் தூண்டும், பின் கோப்புறையைத் தேர்ந்தெடுக்கவும், இது நீங்கள் முழு OpenSSL ஐ நிறுவும் இடமாக இருக்கும்.

இப்போது கணினி நிர்வாகியின் சார்பாக திறக்கவும் (இது மிகவும் முக்கியமானது!) கட்டளை வரி. பின்னர், கட்டளை வரியில், நீங்கள் OpenSSL ஐ நிறுவிய கோப்புறையில் அமைந்துள்ள பின் கோப்புறைக்குச் செல்லவும் (எடுத்துக்காட்டாக, சி:\OpenSSL\bin\அல்லது சி:\நிரல் கோப்புகள்\OpenSSL\bin\) உங்களுக்குத் தெரியாவிட்டால், மற்றொரு கோப்புறைக்கு நகர்த்துவது கட்டளையுடன் செய்யப்படுகிறது சிடி. அதாவது, விரும்பிய கோப்புறைக்குச் செல்ல, நீங்கள் பின்வரும் கட்டளையை இயக்க வேண்டும்:

cd C:\OpenSSL\bin\

நீங்கள் பின் கோப்புறையில் நுழைந்ததும், சான்றிதழ் மற்றும் விசையை உருவாக்குவதற்கு நேரடியாகச் செல்லலாம்.

படி 1(நாங்கள் 1024 பிட்கள் நீளத்துடன் முக்கிய உருவாக்கம் செய்கிறோம்)

கட்டளையை இயக்கவும்:

openssl genrsa -out key.pem 1024

படி 2(விசையின் அடிப்படையில், நாங்கள் ஒரு சான்றிதழ் கோரிக்கையை உருவாக்குகிறோம்)

கட்டளையை இயக்கவும்:

openssl req -new -key key.pem -out request.pem

இந்த கட்டத்தில், உங்கள் தரவை உள்ளிட வேண்டும், இது சான்றிதழில் உங்களை அடையாளம் காணும்.

படி 3 (சான்றிதழிலிருந்து தனிப்பட்ட விசையை உருவாக்கவும்)

கட்டளையை இயக்கவும்:

openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem

படி 4(பொது விசை உருவாக்கம் செய்யவும்)

கட்டளையை இயக்கவும்:

openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt

இந்த கட்டத்தில், உங்கள் கேம்கள் மற்றும் பயன்பாடுகளில் நாங்கள் கையொப்பமிட வேண்டிய கோப்புகளின் உருவாக்கம் முடிந்தது. உருவாக்கப்பட்ட விசை மற்றும் சான்றிதழைப் பயன்படுத்தி, Android இல் நீங்கள் விரும்பும் பல கேம்கள் மற்றும் பயன்பாடுகளில் கையொப்பமிடலாம்.

இப்போது உண்மையில், விண்ணப்பத்தில் கையொப்பமிட ஆரம்பிக்கலாம். மேலே உள்ள இணைப்பிலிருந்து பதிவிறக்கம் செய்யப்பட்ட SingApk இலிருந்து காப்பகத்தைத் திறக்கவும். நாங்கள் சான்றிதழ் மற்றும் முக்கிய 2 கோப்புகளை உருவாக்கிய பின் கோப்புறையிலிருந்து நகர்த்தவும்: சான்றிதழ்.பெம்மற்றும் key.pk8நீங்கள் SingApk ஐ அவிழ்த்த கோப்புறையில். விண்டோஸ் கோப்பு மாற்று உரையாடலைக் காண்பிக்க வேண்டும் - மாற்றவும்.

இப்போது, ​​நீங்களே உருவாக்கிய தனித்துவமான டிஜிட்டல் கையொப்பத்துடன் apk கோப்பில் கையொப்பமிட, உங்கள் apk கோப்பை இழுக்கவும் sign_APK.bat. கோப்பை ஒரு சாளரத்தில் இருந்து மற்றொரு சாளரத்திற்கு இழுக்காமல் இருக்க (இது வசதியாக இல்லை), உங்கள் apk கோப்பை SingApk உள்ள கோப்புறைக்கு நகர்த்தவும். செயல்படுத்திய பிறகு, SingApk உடன் கோப்புறையில் ஒரு கோப்பு தோன்றும் apk_signed.apk, இது உங்கள் கையொப்பமிடப்பட்ட விண்ணப்பம் அல்லது கேமாக இருக்கும்.