从Android源代码恢复已删除的文件(Restore deleted file from Android source code)

我正在构建Android源代码并从框架中删除了一些.java文件。 我做了一个repo同步希望这可以恢复已删除的文件,但它没有发生。

如何从原始源树恢复此文件和其他已删除文件?

I'm building Android source and deleted some .java files from the framework. I made a repo sync hoping that this restore the deleted file but it didn't happen.

How can I restore this and other deleted files from original source tree?

原文:https://stackoverflow.com/questions/16406196

更新时间:2019-11-30 02:33

最满意答案

检查损坏:

$ repo status

project device/samsung/maguro/ (*** NO BRANCH ***)

-m full_maguro.mk

project frameworks/base/ (*** NO BRANCH ***)

-- media/java/android/media/#AudioSystem.java#

-d media/java/android/media/AudioManager.java

project frameworks/opt/telephony/ (*** NO BRANCH ***)

-d src/java/com/android/internal/telephony/CallManager.java

project packages/apps/Phone/ (*** NO BRANCH ***)

-d src/com/android/phone/InCallScreen.java

-d src/com/android/phone/PhoneUtils.java

恢复文件:

$ repo forall -c 'git reset --hard ; git clean -fdx'

Check damages:

$ repo status

project device/samsung/maguro/ (*** NO BRANCH ***)

-m full_maguro.mk

project frameworks/base/ (*** NO BRANCH ***)

-- media/java/android/media/#AudioSystem.java#

-d media/java/android/media/AudioManager.java

project frameworks/opt/telephony/ (*** NO BRANCH ***)

-d src/java/com/android/internal/telephony/CallManager.java

project packages/apps/Phone/ (*** NO BRANCH ***)

-d src/com/android/phone/InCallScreen.java

-d src/com/android/phone/PhoneUtils.java

restore files:

$ repo forall -c 'git reset --hard ; git clean -fdx'

2013-05-06

相关问答

对于Eclipse: 要从本地历史记录中恢复具有状态的已删除工作台资源: 在其中一个导航视图中,选择要将其恢复到本地历史记录状态的文件夹或项目 从资源的弹出式菜单中选择“从本地历史记录恢复...”。“从本地历史记录还原”对话框打开,显示先前包含在所选文件夹或项目及其所有子文件夹中的所有文件。 检查您想要恢复的文件 如果您不想仅恢复文件的最后一个状态,则可以从对话框右侧的“本地历史记录”列表中选择文件的任何其他状态。 对话框的底部窗格显示状态的内容。 如果完成了所有文件,请单击还原。 ( 来源 )

...

git checkout 提交可以由SHA1直接指定,也可以通过分支或标记指定。 确保在删除的文件仍然存在时表示存储库的状态。 如果省略commit参数,将使用当前签出的提交(HEAD)。 git checkout Commits may be specified directly by SHA1, or via a branch or tag. Make sure that the represents the state of t

...

如果您的bin文件夹中有apk,那么您很幸运:使用apktool并将您的反编译的 xml文件备份。 而且,在将来,随着键盘冲浪指出, 总要进行备份 。 If you have the apk in your bin folder, you're lucky: use apktool and get your decompiled xml files back. And, for the future, always make backups, as keyboardsurfer pointed o

...

是的,你需要在构建SDK / Library aar文件时使用proguard 在SDK / Library gradle中将minifyEnabled更改为true buildTypes {

release {

minifyEnabled true //enable proguard

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rul

...

检查损坏: $ repo status

project device/samsung/maguro/ (*** NO BRANCH ***)

-m full_maguro.mk

project frameworks/base/ (*** NO BRANCH ***)

-- media/java/android/media/#AudioSystem.java#

-d media/java/a

...

我假设这是platform/目录。 如果是这样,请查看frameworks/base/api 。 您将找到一个表示已提交的每个API级别的文本文件 - 在该目录中找到答案中编号最大的文件。 示例: https : //github.com/android/platform_frameworks_base/tree/master/api I assume that's the platform/ directory. If so, take a look in frameworks/base/api

...

只是为了扩大皮特的答案,如果有人真的想知道: indexOfKey在DefaultKeyVector的父类KeyedVector中定义。 对于类模板,函数调用在编译期间解析,而不是在运行期间解析。 发生错误是因为在调用indexOfKey时,编译器不知道模板函数可能位于何处。 以下是基类和派生类的外观: template

class KeyedVector

{

...

ssize_t indexOfKey(const KEY&

...

这是指向Messaging应用程序主屏幕最新代码的链接: https : //github.com/android/platform_packages_apps_mms/blob/master/src/com/android/mms/ui/ConversationList.java 这是它的布局文件: https : //github.com/android/platform_packages_apps_mms/blob/master/res/layout/conversation_list_sc

...

只要您拥有可以构建源的系统,这肯定是您可以做的事情。 我建议你看看这个: http : //developer.android.com/guide/developing/projects/projects-cmdline.html 当然,使用exec来运行这些实用程序: http : //php.net/manual/en/function.exec.php This is certainly something you can do as long as you have a system wh

...

您无法从APK恢复确切的源代码; 它不在那里。 您恢复的代码是您可以做的最好的代码 - 它是基于编译代码的近似值。 根据你已经恢复的截图,你很幸运能有一个高水平的东西。 You cannot recover the exact source code from an APK; it's not there. The code you have recovered is the best you can do -- it's an approximation based on the compile

...

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐